From 9b9d63073331e6088e97590219fde5a010c52aed Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Wed, 16 Apr 2025 16:45:51 +0300 Subject: [PATCH 01/44] feat: uniswap v3 deployment and liquidity commands --- package.json | 5 +- packages/commands/src/index.ts | 3 +- packages/commands/src/pools/create.ts | 189 ++++++++++++++++++++++++++ packages/commands/src/pools/index.ts | 6 + yarn.lock | 31 +++++ 5 files changed, 232 insertions(+), 2 deletions(-) create mode 100644 packages/commands/src/pools/create.ts create mode 100644 packages/commands/src/pools/index.ts diff --git a/package.json b/package.json index 8c729afb..d5366ae7 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,8 @@ "copy-types": "npx cpx './typechain-types/**/*' ./dist/typechain-types", "test": "jest", "test:watch": "jest --watch", - "toolkit": "yarn build && node dist/packages/commands/src/program.js" + "toolkit": "yarn build && node dist/packages/commands/src/program.js", + "zetachain": "npx ts-node dist/packages/commands/src/program.js" }, "keywords": [], "author": "ZetaChain", @@ -111,6 +112,8 @@ "@solana/wallet-adapter-react": "^0.15.35", "@solana/web3.js": "1.95.8", "@uniswap/v2-periphery": "^1.1.0-beta.0", + "@uniswap/v3-core": "^1.0.1", + "@uniswap/v3-periphery": "^1.4.4", "@zetachain/faucet-cli": "^4.1.1", "@zetachain/networks": "^13.0.0", "@zetachain/protocol-contracts": "^12.0.0", diff --git a/packages/commands/src/index.ts b/packages/commands/src/index.ts index 653ae932..c4e635ed 100644 --- a/packages/commands/src/index.ts +++ b/packages/commands/src/index.ts @@ -1,9 +1,10 @@ import { Command } from "commander"; import { solanaEncodeCommand } from "./solanaEncode"; +import { poolsCommand } from "./pools/"; export const toolkitCommand = new Command("toolkit") .description("Local development environment") .helpCommand(false); -toolkitCommand.addCommand(solanaEncodeCommand); +toolkitCommand.addCommand(solanaEncodeCommand).addCommand(poolsCommand); diff --git a/packages/commands/src/pools/create.ts b/packages/commands/src/pools/create.ts new file mode 100644 index 00000000..083fc23b --- /dev/null +++ b/packages/commands/src/pools/create.ts @@ -0,0 +1,189 @@ +import { Command } from "commander"; +import * as UniswapV3Factory from "@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json"; +import * as UniswapV3Pool from "@uniswap/v3-core/artifacts/contracts/UniswapV3Pool.sol/UniswapV3Pool.json"; +import * as NonfungiblePositionManager from "@uniswap/v3-periphery/artifacts/contracts/NonfungiblePositionManager.sol/NonfungiblePositionManager.json"; +import * as SwapRouter from "@uniswap/v3-periphery/artifacts/contracts/SwapRouter.sol/SwapRouter.json"; +import { ethers } from "ethers"; + +const deployOpts = { + gasLimit: 8000000, +}; + +async function estimateGas( + contractFactory: ethers.ContractFactory, + args: any[] = [] +) { + try { + const deployment = await contractFactory.getDeployTransaction(...args); + const gasEstimate = await contractFactory.runner?.provider?.estimateGas( + deployment + ); + console.log("Estimated gas:", gasEstimate?.toString()); + return gasEstimate; + } catch (error) { + console.error("Gas estimation failed:", error); + return null; + } +} + +async function main(options: { + privateKey: string; + rpc: string; + wzeta: string; +}) { + try { + // Initialize provider and signer + const provider = new ethers.JsonRpcProvider(options.rpc); + const signer = new ethers.Wallet(options.privateKey, provider); + + console.log("Deploying Uniswap V3 contracts..."); + console.log("Deployer address:", await signer.getAddress()); + console.log("Network:", (await provider.getNetwork()).name); + console.log( + "Balance:", + ethers.formatEther(await provider.getBalance(await signer.getAddress())), + "ZETA" + ); + + // Deploy Uniswap V3 Factory + console.log("\nDeploying Uniswap V3 Factory..."); + const uniswapV3Factory = new ethers.ContractFactory( + UniswapV3Factory.abi, + UniswapV3Factory.bytecode, + signer + ); + + // Estimate gas for factory deployment + const factoryGasEstimate = await estimateGas(uniswapV3Factory); + if (factoryGasEstimate) { + deployOpts.gasLimit = Number(factoryGasEstimate * 2n); + } + + console.log("Using gas limit:", deployOpts.gasLimit.toString()); + + const uniswapV3FactoryInstance = await uniswapV3Factory.deploy(deployOpts); + console.log( + "Factory deployment transaction hash:", + uniswapV3FactoryInstance.deploymentTransaction()?.hash + ); + + await uniswapV3FactoryInstance.waitForDeployment(); + console.log( + "Uniswap V3 Factory deployed at:", + await uniswapV3FactoryInstance.getAddress() + ); + + // Deploy Swap Router + console.log("\nDeploying Swap Router..."); + const swapRouter = new ethers.ContractFactory( + SwapRouter.abi, + SwapRouter.bytecode, + signer + ); + + // Estimate gas for router deployment + const routerGasEstimate = await estimateGas(swapRouter, [ + await uniswapV3FactoryInstance.getAddress(), + options.wzeta, + ]); + if (routerGasEstimate) { + deployOpts.gasLimit = Number(routerGasEstimate * 2n); + } + + console.log("Using gas limit:", deployOpts.gasLimit.toString()); + + const swapRouterInstance = await swapRouter.deploy( + await uniswapV3FactoryInstance.getAddress(), + options.wzeta, + deployOpts + ); + console.log( + "Router deployment transaction hash:", + swapRouterInstance.deploymentTransaction()?.hash + ); + + await swapRouterInstance.waitForDeployment(); + console.log( + "Swap Router deployed at:", + await swapRouterInstance.getAddress() + ); + + // Deploy Nonfungible Position Manager + console.log("\nDeploying Nonfungible Position Manager..."); + const nonfungiblePositionManager = new ethers.ContractFactory( + NonfungiblePositionManager.abi, + NonfungiblePositionManager.bytecode, + signer + ); + + // Estimate gas for position manager deployment + const positionManagerGasEstimate = await estimateGas( + nonfungiblePositionManager, + [ + await uniswapV3FactoryInstance.getAddress(), + options.wzeta, + await swapRouterInstance.getAddress(), + ] + ); + if (positionManagerGasEstimate) { + deployOpts.gasLimit = Number(positionManagerGasEstimate * 2n); + } + + console.log("Using gas limit:", deployOpts.gasLimit.toString()); + + const nonfungiblePositionManagerInstance = + await nonfungiblePositionManager.deploy( + await uniswapV3FactoryInstance.getAddress(), + options.wzeta, + await swapRouterInstance.getAddress(), + deployOpts + ); + console.log( + "Position Manager deployment transaction hash:", + nonfungiblePositionManagerInstance.deploymentTransaction()?.hash + ); + + await nonfungiblePositionManagerInstance.waitForDeployment(); + console.log( + "Nonfungible Position Manager deployed at:", + await nonfungiblePositionManagerInstance.getAddress() + ); + + console.log("\nDeployment completed successfully!"); + console.log("\nContract addresses:"); + console.log( + "Uniswap V3 Factory:", + await uniswapV3FactoryInstance.getAddress() + ); + console.log("Swap Router:", await swapRouterInstance.getAddress()); + console.log( + "Nonfungible Position Manager:", + await nonfungiblePositionManagerInstance.getAddress() + ); + } catch (error: any) { + console.error("\nDeployment failed with error:"); + console.error("Error message:", error.message); + if (error.receipt) { + console.error("Transaction receipt:", error.receipt); + } + if (error.transaction) { + console.error("Transaction details:", error.transaction); + } + process.exit(1); + } +} + +export const createCommand = new Command("create") + .description("Deploy Uniswap V3 contracts") + .requiredOption("--private-key ", "Private key for deployment") + .option( + "--rpc ", + "RPC URL for the network", + "https://zetachain-athens-evm.blockpi.network/v1/rpc/public" + ) + .option( + "--wzeta ", + "WZETA token address", + "0x5F0b1a82749cb4E2278EC87F8BF6B618dC71a8bf" + ) + .action(main); diff --git a/packages/commands/src/pools/index.ts b/packages/commands/src/pools/index.ts new file mode 100644 index 00000000..cb9918aa --- /dev/null +++ b/packages/commands/src/pools/index.ts @@ -0,0 +1,6 @@ +import { Command } from "commander"; +import { createCommand } from "./create"; + +export const poolsCommand = new Command("pools") + .description("Manage Uniswap V3 pools") + .addCommand(createCommand); diff --git a/yarn.lock b/yarn.lock index f443087c..743aa2fd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1909,6 +1909,11 @@ resolved "https://registry.yarnpkg.com/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-5.0.2.tgz#3e5321a2ecdd0b206064356798c21225b6ec7105" integrity sha512-0MmkHSHiW2NRFiT9/r5Lu4eJq5UJ4/tzlOgYXNAIj/ONkQTVnz22pLxDvp4C4uZ9he7ZFvGn3Driptn1/iU7tQ== +"@openzeppelin/contracts@3.4.2-solc-0.7": + version "3.4.2-solc-0.7" + resolved "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-3.4.2-solc-0.7.tgz#38f4dbab672631034076ccdf2f3201fab1726635" + integrity sha512-W6QmqgkADuFcTLzHL8vVoNBtkwjvQRpYIAom7KiUNoLKghyx3FgH0GBjt8NRvigV1ZmMOBllvE1By1C+bi8WpA== + "@openzeppelin/contracts@^5.0.2": version "5.0.2" resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-5.0.2.tgz#b1d03075e49290d06570b2fd42154d76c2a5d210" @@ -2857,6 +2862,11 @@ resolved "https://registry.yarnpkg.com/@uniswap/lib/-/lib-1.1.1.tgz#0afd29601846c16e5d082866cbb24a9e0758e6bc" integrity sha512-2yK7sLpKIT91TiS5sewHtOa7YuM8IuBXVl4GZv2jZFys4D2sY7K5vZh6MqD25TPA95Od+0YzCVq6cTF2IKrOmg== +"@uniswap/lib@^4.0.1-alpha": + version "4.0.1-alpha" + resolved "https://registry.npmjs.org/@uniswap/lib/-/lib-4.0.1-alpha.tgz#2881008e55f075344675b3bca93f020b028fbd02" + integrity sha512-f6UIliwBbRsgVLxIaBANF6w09tYqc6Y/qXdsrbEmXHyFA7ILiKrIwRFXe1yOg8M3cksgVsO9N7yuL2DdCGQKBA== + "@uniswap/v2-core@1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@uniswap/v2-core/-/v2-core-1.0.0.tgz#e0fab91a7d53e8cafb5326ae4ca18351116b0844" @@ -2875,6 +2885,22 @@ "@uniswap/lib" "1.1.1" "@uniswap/v2-core" "1.0.0" +"@uniswap/v3-core@^1.0.0", "@uniswap/v3-core@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@uniswap/v3-core/-/v3-core-1.0.1.tgz#b6d2bdc6ba3c3fbd610bdc502395d86cd35264a0" + integrity sha512-7pVk4hEm00j9tc71Y9+ssYpO6ytkeI0y7WE9P6UcmNzhxPePwyAxImuhVsTqWK9YFvzgtvzJHi64pBl4jUzKMQ== + +"@uniswap/v3-periphery@^1.4.4": + version "1.4.4" + resolved "https://registry.npmjs.org/@uniswap/v3-periphery/-/v3-periphery-1.4.4.tgz#d2756c23b69718173c5874f37fd4ad57d2f021b7" + integrity sha512-S4+m+wh8HbWSO3DKk4LwUCPZJTpCugIsHrWR86m/OrUyvSqGDTXKFfc2sMuGXCZrD1ZqO3rhQsKgdWg3Hbb2Kw== + dependencies: + "@openzeppelin/contracts" "3.4.2-solc-0.7" + "@uniswap/lib" "^4.0.1-alpha" + "@uniswap/v2-core" "^1.0.1" + "@uniswap/v3-core" "^1.0.0" + base64-sol "1.0.1" + "@wallet-standard/app@^1.0.1", "@wallet-standard/app@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@wallet-standard/app/-/app-1.1.0.tgz#2ca32e4675536224ebe55a00ad533b7923d7380a" @@ -3486,6 +3512,11 @@ base64-js@^1.3.0, base64-js@^1.3.1: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== +base64-sol@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/base64-sol/-/base64-sol-1.0.1.tgz#91317aa341f0bc763811783c5729f1c2574600f6" + integrity sha512-ld3cCNMeXt4uJXmLZBHFGMvVpK9KsLVEhPpFRXnvSVAqABKbuNZg/+dsq3NuM+wxFLb/UrVkz7m1ciWmkMfTbg== + base@^0.11.1: version "0.11.2" resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" From 3d4725e57281d741f1132ad0a1dafaa66f8870a7 Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Thu, 17 Apr 2025 17:34:33 +0300 Subject: [PATCH 02/44] create pool command --- package.json | 2 +- packages/commands/src/pools/create.ts | 189 +++++++------------------- packages/commands/src/pools/deploy.ts | 189 ++++++++++++++++++++++++++ packages/commands/src/pools/index.ts | 2 + 4 files changed, 242 insertions(+), 140 deletions(-) create mode 100644 packages/commands/src/pools/deploy.ts diff --git a/package.json b/package.json index d5366ae7..aeb330cb 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "test": "jest", "test:watch": "jest --watch", "toolkit": "yarn build && node dist/packages/commands/src/program.js", - "zetachain": "npx ts-node dist/packages/commands/src/program.js" + "zetachain": "npx ts-node packages/commands/src/program.ts" }, "keywords": [], "author": "ZetaChain", diff --git a/packages/commands/src/pools/create.ts b/packages/commands/src/pools/create.ts index 083fc23b..6fc0f00e 100644 --- a/packages/commands/src/pools/create.ts +++ b/packages/commands/src/pools/create.ts @@ -1,43 +1,26 @@ import { Command } from "commander"; import * as UniswapV3Factory from "@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json"; import * as UniswapV3Pool from "@uniswap/v3-core/artifacts/contracts/UniswapV3Pool.sol/UniswapV3Pool.json"; -import * as NonfungiblePositionManager from "@uniswap/v3-periphery/artifacts/contracts/NonfungiblePositionManager.sol/NonfungiblePositionManager.json"; -import * as SwapRouter from "@uniswap/v3-periphery/artifacts/contracts/SwapRouter.sol/SwapRouter.json"; import { ethers } from "ethers"; -const deployOpts = { - gasLimit: 8000000, -}; - -async function estimateGas( - contractFactory: ethers.ContractFactory, - args: any[] = [] -) { - try { - const deployment = await contractFactory.getDeployTransaction(...args); - const gasEstimate = await contractFactory.runner?.provider?.estimateGas( - deployment - ); - console.log("Estimated gas:", gasEstimate?.toString()); - return gasEstimate; - } catch (error) { - console.error("Gas estimation failed:", error); - return null; - } -} - async function main(options: { privateKey: string; rpc: string; - wzeta: string; + factory: string; + tokens: string[]; + fee?: number; }) { try { + if (options.tokens.length !== 2) { + throw new Error("Exactly 2 token addresses must be provided"); + } + // Initialize provider and signer const provider = new ethers.JsonRpcProvider(options.rpc); const signer = new ethers.Wallet(options.privateKey, provider); - console.log("Deploying Uniswap V3 contracts..."); - console.log("Deployer address:", await signer.getAddress()); + console.log("Creating Uniswap V3 pool..."); + console.log("Signer address:", await signer.getAddress()); console.log("Network:", (await provider.getNetwork()).name); console.log( "Balance:", @@ -45,123 +28,43 @@ async function main(options: { "ZETA" ); - // Deploy Uniswap V3 Factory - console.log("\nDeploying Uniswap V3 Factory..."); - const uniswapV3Factory = new ethers.ContractFactory( + // Initialize factory contract + const uniswapV3FactoryInstance = new ethers.Contract( + options.factory, UniswapV3Factory.abi, - UniswapV3Factory.bytecode, signer ); - // Estimate gas for factory deployment - const factoryGasEstimate = await estimateGas(uniswapV3Factory); - if (factoryGasEstimate) { - deployOpts.gasLimit = Number(factoryGasEstimate * 2n); - } - - console.log("Using gas limit:", deployOpts.gasLimit.toString()); - - const uniswapV3FactoryInstance = await uniswapV3Factory.deploy(deployOpts); - console.log( - "Factory deployment transaction hash:", - uniswapV3FactoryInstance.deploymentTransaction()?.hash + // Create the pool + console.log("\nCreating pool..."); + const fee = options.fee || 3000; // Default to 0.3% fee tier + const tx = await uniswapV3FactoryInstance.createPool( + options.tokens[0], + options.tokens[1], + fee ); - - await uniswapV3FactoryInstance.waitForDeployment(); - console.log( - "Uniswap V3 Factory deployed at:", - await uniswapV3FactoryInstance.getAddress() - ); - - // Deploy Swap Router - console.log("\nDeploying Swap Router..."); - const swapRouter = new ethers.ContractFactory( - SwapRouter.abi, - SwapRouter.bytecode, - signer + console.log("Pool creation transaction hash:", tx.hash); + await tx.wait(); + + // Get the pool address + const poolAddress = await uniswapV3FactoryInstance.getPool( + options.tokens[0], + options.tokens[1], + fee ); + console.log("Pool deployed at:", poolAddress); - // Estimate gas for router deployment - const routerGasEstimate = await estimateGas(swapRouter, [ - await uniswapV3FactoryInstance.getAddress(), - options.wzeta, - ]); - if (routerGasEstimate) { - deployOpts.gasLimit = Number(routerGasEstimate * 2n); - } - - console.log("Using gas limit:", deployOpts.gasLimit.toString()); - - const swapRouterInstance = await swapRouter.deploy( - await uniswapV3FactoryInstance.getAddress(), - options.wzeta, - deployOpts - ); - console.log( - "Router deployment transaction hash:", - swapRouterInstance.deploymentTransaction()?.hash - ); + // Initialize the pool + const pool = new ethers.Contract(poolAddress, UniswapV3Pool.abi, signer); + const sqrtPriceX96 = ethers.toBigInt("79228162514264337593543950336"); // sqrt(1) * 2^96 + const initTx = await pool.initialize(sqrtPriceX96); + console.log("Pool initialization transaction hash:", initTx.hash); + await initTx.wait(); - await swapRouterInstance.waitForDeployment(); - console.log( - "Swap Router deployed at:", - await swapRouterInstance.getAddress() - ); - - // Deploy Nonfungible Position Manager - console.log("\nDeploying Nonfungible Position Manager..."); - const nonfungiblePositionManager = new ethers.ContractFactory( - NonfungiblePositionManager.abi, - NonfungiblePositionManager.bytecode, - signer - ); - - // Estimate gas for position manager deployment - const positionManagerGasEstimate = await estimateGas( - nonfungiblePositionManager, - [ - await uniswapV3FactoryInstance.getAddress(), - options.wzeta, - await swapRouterInstance.getAddress(), - ] - ); - if (positionManagerGasEstimate) { - deployOpts.gasLimit = Number(positionManagerGasEstimate * 2n); - } - - console.log("Using gas limit:", deployOpts.gasLimit.toString()); - - const nonfungiblePositionManagerInstance = - await nonfungiblePositionManager.deploy( - await uniswapV3FactoryInstance.getAddress(), - options.wzeta, - await swapRouterInstance.getAddress(), - deployOpts - ); - console.log( - "Position Manager deployment transaction hash:", - nonfungiblePositionManagerInstance.deploymentTransaction()?.hash - ); - - await nonfungiblePositionManagerInstance.waitForDeployment(); - console.log( - "Nonfungible Position Manager deployed at:", - await nonfungiblePositionManagerInstance.getAddress() - ); - - console.log("\nDeployment completed successfully!"); - console.log("\nContract addresses:"); - console.log( - "Uniswap V3 Factory:", - await uniswapV3FactoryInstance.getAddress() - ); - console.log("Swap Router:", await swapRouterInstance.getAddress()); - console.log( - "Nonfungible Position Manager:", - await nonfungiblePositionManagerInstance.getAddress() - ); + console.log("\nPool created and initialized successfully!"); + console.log("Pool address:", poolAddress); } catch (error: any) { - console.error("\nDeployment failed with error:"); + console.error("\nPool creation failed with error:"); console.error("Error message:", error.message); if (error.receipt) { console.error("Transaction receipt:", error.receipt); @@ -174,16 +77,24 @@ async function main(options: { } export const createCommand = new Command("create") - .description("Deploy Uniswap V3 contracts") - .requiredOption("--private-key ", "Private key for deployment") + .description("Create a new Uniswap V3 pool") + .requiredOption( + "--private-key ", + "Private key for signing transactions" + ) .option( "--rpc ", "RPC URL for the network", "https://zetachain-athens-evm.blockpi.network/v1/rpc/public" ) .option( - "--wzeta ", - "WZETA token address", - "0x5F0b1a82749cb4E2278EC87F8BF6B618dC71a8bf" + "--factory ", + "Uniswap V3 Factory contract address", + "0x7E032E349853178C233a2560d9Ea434ac82228e0" + ) + .requiredOption( + "--tokens ", + "Token addresses for the pool (exactly 2 required)" ) + .option("--fee ", "Fee tier for the pool (3000 = 0.3%)", "3000") .action(main); diff --git a/packages/commands/src/pools/deploy.ts b/packages/commands/src/pools/deploy.ts new file mode 100644 index 00000000..8704fbb3 --- /dev/null +++ b/packages/commands/src/pools/deploy.ts @@ -0,0 +1,189 @@ +import { Command } from "commander"; +import * as UniswapV3Factory from "@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json"; +import * as UniswapV3Pool from "@uniswap/v3-core/artifacts/contracts/UniswapV3Pool.sol/UniswapV3Pool.json"; +import * as NonfungiblePositionManager from "@uniswap/v3-periphery/artifacts/contracts/NonfungiblePositionManager.sol/NonfungiblePositionManager.json"; +import * as SwapRouter from "@uniswap/v3-periphery/artifacts/contracts/SwapRouter.sol/SwapRouter.json"; +import { ethers } from "ethers"; + +const deployOpts = { + gasLimit: 8000000, +}; + +async function estimateGas( + contractFactory: ethers.ContractFactory, + args: any[] = [] +) { + try { + const deployment = await contractFactory.getDeployTransaction(...args); + const gasEstimate = await contractFactory.runner?.provider?.estimateGas( + deployment + ); + console.log("Estimated gas:", gasEstimate?.toString()); + return gasEstimate; + } catch (error) { + console.error("Gas estimation failed:", error); + return null; + } +} + +async function main(options: { + privateKey: string; + rpc: string; + wzeta: string; +}) { + try { + // Initialize provider and signer + const provider = new ethers.JsonRpcProvider(options.rpc); + const signer = new ethers.Wallet(options.privateKey, provider); + + console.log("Deploying Uniswap V3 contracts..."); + console.log("Deployer address:", await signer.getAddress()); + console.log("Network:", (await provider.getNetwork()).name); + console.log( + "Balance:", + ethers.formatEther(await provider.getBalance(await signer.getAddress())), + "ZETA" + ); + + // Deploy Uniswap V3 Factory + console.log("\nDeploying Uniswap V3 Factory..."); + const uniswapV3Factory = new ethers.ContractFactory( + UniswapV3Factory.abi, + UniswapV3Factory.bytecode, + signer + ); + + // Estimate gas for factory deployment + const factoryGasEstimate = await estimateGas(uniswapV3Factory); + if (factoryGasEstimate) { + deployOpts.gasLimit = Number(factoryGasEstimate * 2n); + } + + console.log("Using gas limit:", deployOpts.gasLimit.toString()); + + const uniswapV3FactoryInstance = await uniswapV3Factory.deploy(deployOpts); + console.log( + "Factory deployment transaction hash:", + uniswapV3FactoryInstance.deploymentTransaction()?.hash + ); + + await uniswapV3FactoryInstance.waitForDeployment(); + console.log( + "Uniswap V3 Factory deployed at:", + await uniswapV3FactoryInstance.getAddress() + ); + + // Deploy Swap Router + console.log("\nDeploying Swap Router..."); + const swapRouter = new ethers.ContractFactory( + SwapRouter.abi, + SwapRouter.bytecode, + signer + ); + + // Estimate gas for router deployment + const routerGasEstimate = await estimateGas(swapRouter, [ + await uniswapV3FactoryInstance.getAddress(), + options.wzeta, + ]); + if (routerGasEstimate) { + deployOpts.gasLimit = Number(routerGasEstimate * 2n); + } + + console.log("Using gas limit:", deployOpts.gasLimit.toString()); + + const swapRouterInstance = await swapRouter.deploy( + await uniswapV3FactoryInstance.getAddress(), + options.wzeta, + deployOpts + ); + console.log( + "Router deployment transaction hash:", + swapRouterInstance.deploymentTransaction()?.hash + ); + + await swapRouterInstance.waitForDeployment(); + console.log( + "Swap Router deployed at:", + await swapRouterInstance.getAddress() + ); + + // Deploy Nonfungible Position Manager + console.log("\nDeploying Nonfungible Position Manager..."); + const nonfungiblePositionManager = new ethers.ContractFactory( + NonfungiblePositionManager.abi, + NonfungiblePositionManager.bytecode, + signer + ); + + // Estimate gas for position manager deployment + const positionManagerGasEstimate = await estimateGas( + nonfungiblePositionManager, + [ + await uniswapV3FactoryInstance.getAddress(), + options.wzeta, + await swapRouterInstance.getAddress(), + ] + ); + if (positionManagerGasEstimate) { + deployOpts.gasLimit = Number(positionManagerGasEstimate * 2n); + } + + console.log("Using gas limit:", deployOpts.gasLimit.toString()); + + const nonfungiblePositionManagerInstance = + await nonfungiblePositionManager.deploy( + await uniswapV3FactoryInstance.getAddress(), + options.wzeta, + await swapRouterInstance.getAddress(), + deployOpts + ); + console.log( + "Position Manager deployment transaction hash:", + nonfungiblePositionManagerInstance.deploymentTransaction()?.hash + ); + + await nonfungiblePositionManagerInstance.waitForDeployment(); + console.log( + "Nonfungible Position Manager deployed at:", + await nonfungiblePositionManagerInstance.getAddress() + ); + + console.log("\nDeployment completed successfully!"); + console.log("\nContract addresses:"); + console.log( + "Uniswap V3 Factory:", + await uniswapV3FactoryInstance.getAddress() + ); + console.log("Swap Router:", await swapRouterInstance.getAddress()); + console.log( + "Nonfungible Position Manager:", + await nonfungiblePositionManagerInstance.getAddress() + ); + } catch (error: any) { + console.error("\nDeployment failed with error:"); + console.error("Error message:", error.message); + if (error.receipt) { + console.error("Transaction receipt:", error.receipt); + } + if (error.transaction) { + console.error("Transaction details:", error.transaction); + } + process.exit(1); + } +} + +export const deployCommand = new Command("deploy") + .description("Deploy Uniswap V3 contracts") + .requiredOption("--private-key ", "Private key for deployment") + .option( + "--rpc ", + "RPC URL for the network", + "https://zetachain-athens-evm.blockpi.network/v1/rpc/public" + ) + .option( + "--wzeta ", + "WZETA token address", + "0x5F0b1a82749cb4E2278EC87F8BF6B618dC71a8bf" + ) + .action(main); diff --git a/packages/commands/src/pools/index.ts b/packages/commands/src/pools/index.ts index cb9918aa..4a305e8a 100644 --- a/packages/commands/src/pools/index.ts +++ b/packages/commands/src/pools/index.ts @@ -1,6 +1,8 @@ import { Command } from "commander"; +import { deployCommand } from "./deploy"; import { createCommand } from "./create"; export const poolsCommand = new Command("pools") .description("Manage Uniswap V3 pools") + .addCommand(deployCommand) .addCommand(createCommand); From 5c522489ce28d5d3245a3bc8fe29dfbb1f9de967 Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Thu, 17 Apr 2025 19:22:27 +0300 Subject: [PATCH 03/44] pools show --- packages/commands/src/pools/create.ts | 2 +- packages/commands/src/pools/deploy.ts | 2 +- packages/commands/src/pools/index.ts | 4 +- packages/commands/src/pools/show.ts | 55 +++++++++++++++++++++++++++ 4 files changed, 60 insertions(+), 3 deletions(-) create mode 100644 packages/commands/src/pools/show.ts diff --git a/packages/commands/src/pools/create.ts b/packages/commands/src/pools/create.ts index 6fc0f00e..23adf863 100644 --- a/packages/commands/src/pools/create.ts +++ b/packages/commands/src/pools/create.ts @@ -85,7 +85,7 @@ export const createCommand = new Command("create") .option( "--rpc ", "RPC URL for the network", - "https://zetachain-athens-evm.blockpi.network/v1/rpc/public" + "https://zetachain-athens.g.allthatnode.com/archive/evm" ) .option( "--factory ", diff --git a/packages/commands/src/pools/deploy.ts b/packages/commands/src/pools/deploy.ts index 8704fbb3..55fa6d93 100644 --- a/packages/commands/src/pools/deploy.ts +++ b/packages/commands/src/pools/deploy.ts @@ -179,7 +179,7 @@ export const deployCommand = new Command("deploy") .option( "--rpc ", "RPC URL for the network", - "https://zetachain-athens-evm.blockpi.network/v1/rpc/public" + "https://zetachain-athens.g.allthatnode.com/archive/evm" ) .option( "--wzeta ", diff --git a/packages/commands/src/pools/index.ts b/packages/commands/src/pools/index.ts index 4a305e8a..57af624c 100644 --- a/packages/commands/src/pools/index.ts +++ b/packages/commands/src/pools/index.ts @@ -1,8 +1,10 @@ import { Command } from "commander"; import { deployCommand } from "./deploy"; import { createCommand } from "./create"; +import { showCommand } from "./show"; export const poolsCommand = new Command("pools") .description("Manage Uniswap V3 pools") .addCommand(deployCommand) - .addCommand(createCommand); + .addCommand(createCommand) + .addCommand(showCommand); diff --git a/packages/commands/src/pools/show.ts b/packages/commands/src/pools/show.ts new file mode 100644 index 00000000..6c356714 --- /dev/null +++ b/packages/commands/src/pools/show.ts @@ -0,0 +1,55 @@ +import { Command } from "commander"; +import * as UniswapV3Pool from "@uniswap/v3-core/artifacts/contracts/UniswapV3Pool.sol/UniswapV3Pool.json"; +import { ethers } from "ethers"; + +async function main(options: { rpc: string; pool: string }) { + try { + // Initialize provider + const provider = new ethers.JsonRpcProvider(options.rpc); + + console.log("Fetching Uniswap V3 pool information..."); + console.log("Network:", (await provider.getNetwork()).name); + + // Initialize pool contract + const pool = new ethers.Contract(options.pool, UniswapV3Pool.abi, provider); + + // Get pool information + const [token0, token1, fee, tickSpacing, liquidity, slot0] = + await Promise.all([ + pool.token0(), + pool.token1(), + pool.fee(), + pool.tickSpacing(), + pool.liquidity(), + pool.slot0(), + ]); + + // Calculate price from sqrtPriceX96 + const sqrtPriceX96 = slot0[0]; + const price = (Number(sqrtPriceX96) / 2 ** 96) ** 2; + + console.log("\nPool Information:"); + console.log("Pool Address:", options.pool); + console.log("Token 0:", token0); + console.log("Token 1:", token1); + console.log("Fee Tier:", `${Number(fee) / 10000}%`); + console.log("Tick Spacing:", tickSpacing.toString()); + console.log("Current Price:", price.toFixed(6)); + console.log("Liquidity:", liquidity.toString()); + console.log("Current Tick:", slot0[1].toString()); + } catch (error: any) { + console.error("\nFailed to fetch pool information:"); + console.error("Error message:", error.message); + process.exit(1); + } +} + +export const showCommand = new Command("show") + .description("Show information about a Uniswap V3 pool") + .option( + "--rpc ", + "RPC URL for the network", + "https://zetachain-athens.g.allthatnode.com/archive/evm" + ) + .requiredOption("--pool ", "Pool contract address") + .action(main); From 220995133d836b3f901d02d00cbdf03de5957d46 Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Thu, 17 Apr 2025 19:26:14 +0300 Subject: [PATCH 04/44] pools show --- packages/commands/src/pools/show.ts | 61 ++++++++++++++++++++++++++--- 1 file changed, 56 insertions(+), 5 deletions(-) diff --git a/packages/commands/src/pools/show.ts b/packages/commands/src/pools/show.ts index 6c356714..064213a5 100644 --- a/packages/commands/src/pools/show.ts +++ b/packages/commands/src/pools/show.ts @@ -1,8 +1,15 @@ -import { Command } from "commander"; +import { Command, Option } from "commander"; import * as UniswapV3Pool from "@uniswap/v3-core/artifacts/contracts/UniswapV3Pool.sol/UniswapV3Pool.json"; +import * as UniswapV3Factory from "@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json"; import { ethers } from "ethers"; -async function main(options: { rpc: string; pool: string }) { +async function main(options: { + rpc: string; + pool?: string; + tokens?: string[]; + factory?: string; + fee?: number; +}) { try { // Initialize provider const provider = new ethers.JsonRpcProvider(options.rpc); @@ -10,8 +17,38 @@ async function main(options: { rpc: string; pool: string }) { console.log("Fetching Uniswap V3 pool information..."); console.log("Network:", (await provider.getNetwork()).name); + let poolAddress: string; + if (options.pool) { + poolAddress = options.pool; + } else if (options.tokens) { + if (options.tokens.length !== 2) { + throw new Error("Exactly 2 token addresses must be provided"); + } + + // Initialize factory contract + const factory = new ethers.Contract( + options.factory!, + UniswapV3Factory.abi, + provider + ); + + // Get pool address from factory + const fee = options.fee || 3000; // Default to 0.3% fee tier + poolAddress = await factory.getPool( + options.tokens[0], + options.tokens[1], + fee + ); + + if (poolAddress === ethers.ZeroAddress) { + throw new Error("Pool not found for the given tokens and fee tier"); + } + } else { + throw new Error("Either --pool or --tokens must be provided"); + } + // Initialize pool contract - const pool = new ethers.Contract(options.pool, UniswapV3Pool.abi, provider); + const pool = new ethers.Contract(poolAddress, UniswapV3Pool.abi, provider); // Get pool information const [token0, token1, fee, tickSpacing, liquidity, slot0] = @@ -29,7 +66,7 @@ async function main(options: { rpc: string; pool: string }) { const price = (Number(sqrtPriceX96) / 2 ** 96) ** 2; console.log("\nPool Information:"); - console.log("Pool Address:", options.pool); + console.log("Pool Address:", poolAddress); console.log("Token 0:", token0); console.log("Token 1:", token1); console.log("Fee Tier:", `${Number(fee) / 10000}%`); @@ -51,5 +88,19 @@ export const showCommand = new Command("show") "RPC URL for the network", "https://zetachain-athens.g.allthatnode.com/archive/evm" ) - .requiredOption("--pool ", "Pool contract address") + .addOption( + new Option("--pool ", "Pool contract address").conflicts("tokens") + ) + .addOption( + new Option( + "--tokens ", + "Token addresses for the pool (exactly 2 required)" + ).conflicts("pool") + ) + .option( + "--factory ", + "Uniswap V3 Factory contract address", + "0x7E032E349853178C233a2560d9Ea434ac82228e0" + ) + .option("--fee ", "Fee tier for the pool (3000 = 0.3%)", "3000") .action(main); From ba4ae4bd56add8cf21dabbf7a4778b847acdd8bc Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Thu, 17 Apr 2025 19:28:57 +0300 Subject: [PATCH 05/44] refactor --- packages/commands/src/pools/constants.ts | 5 +++++ packages/commands/src/pools/create.ts | 16 ++++++++-------- packages/commands/src/pools/deploy.ts | 13 +++---------- packages/commands/src/pools/show.ts | 19 ++++++++----------- 4 files changed, 24 insertions(+), 29 deletions(-) create mode 100644 packages/commands/src/pools/constants.ts diff --git a/packages/commands/src/pools/constants.ts b/packages/commands/src/pools/constants.ts new file mode 100644 index 00000000..d98df4d2 --- /dev/null +++ b/packages/commands/src/pools/constants.ts @@ -0,0 +1,5 @@ +export const DEFAULT_RPC = + "https://zetachain-athens.g.allthatnode.com/archive/evm"; +export const DEFAULT_FACTORY = "0x7E032E349853178C233a2560d9Ea434ac82228e0"; +export const DEFAULT_WZETA = "0x5F0b1a82749cb4E2278EC87F8BF6B618dC71a8bf"; +export const DEFAULT_FEE = 3000; // 0.3% diff --git a/packages/commands/src/pools/create.ts b/packages/commands/src/pools/create.ts index 23adf863..cba5ae1d 100644 --- a/packages/commands/src/pools/create.ts +++ b/packages/commands/src/pools/create.ts @@ -2,6 +2,7 @@ import { Command } from "commander"; import * as UniswapV3Factory from "@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json"; import * as UniswapV3Pool from "@uniswap/v3-core/artifacts/contracts/UniswapV3Pool.sol/UniswapV3Pool.json"; import { ethers } from "ethers"; +import { DEFAULT_RPC, DEFAULT_FACTORY, DEFAULT_FEE } from "./constants"; async function main(options: { privateKey: string; @@ -21,7 +22,6 @@ async function main(options: { console.log("Creating Uniswap V3 pool..."); console.log("Signer address:", await signer.getAddress()); - console.log("Network:", (await provider.getNetwork()).name); console.log( "Balance:", ethers.formatEther(await provider.getBalance(await signer.getAddress())), @@ -82,19 +82,19 @@ export const createCommand = new Command("create") "--private-key ", "Private key for signing transactions" ) - .option( - "--rpc ", - "RPC URL for the network", - "https://zetachain-athens.g.allthatnode.com/archive/evm" - ) + .option("--rpc ", "RPC URL for the network", DEFAULT_RPC) .option( "--factory ", "Uniswap V3 Factory contract address", - "0x7E032E349853178C233a2560d9Ea434ac82228e0" + DEFAULT_FACTORY ) .requiredOption( "--tokens ", "Token addresses for the pool (exactly 2 required)" ) - .option("--fee ", "Fee tier for the pool (3000 = 0.3%)", "3000") + .option( + "--fee ", + "Fee tier for the pool (3000 = 0.3%)", + DEFAULT_FEE.toString() + ) .action(main); diff --git a/packages/commands/src/pools/deploy.ts b/packages/commands/src/pools/deploy.ts index 55fa6d93..e04f598c 100644 --- a/packages/commands/src/pools/deploy.ts +++ b/packages/commands/src/pools/deploy.ts @@ -4,6 +4,7 @@ import * as UniswapV3Pool from "@uniswap/v3-core/artifacts/contracts/UniswapV3Po import * as NonfungiblePositionManager from "@uniswap/v3-periphery/artifacts/contracts/NonfungiblePositionManager.sol/NonfungiblePositionManager.json"; import * as SwapRouter from "@uniswap/v3-periphery/artifacts/contracts/SwapRouter.sol/SwapRouter.json"; import { ethers } from "ethers"; +import { DEFAULT_RPC, DEFAULT_WZETA } from "./constants"; const deployOpts = { gasLimit: 8000000, @@ -176,14 +177,6 @@ async function main(options: { export const deployCommand = new Command("deploy") .description("Deploy Uniswap V3 contracts") .requiredOption("--private-key ", "Private key for deployment") - .option( - "--rpc ", - "RPC URL for the network", - "https://zetachain-athens.g.allthatnode.com/archive/evm" - ) - .option( - "--wzeta ", - "WZETA token address", - "0x5F0b1a82749cb4E2278EC87F8BF6B618dC71a8bf" - ) + .option("--rpc ", "RPC URL for the network", DEFAULT_RPC) + .option("--wzeta ", "WZETA token address", DEFAULT_WZETA) .action(main); diff --git a/packages/commands/src/pools/show.ts b/packages/commands/src/pools/show.ts index 064213a5..8402fe4d 100644 --- a/packages/commands/src/pools/show.ts +++ b/packages/commands/src/pools/show.ts @@ -2,6 +2,7 @@ import { Command, Option } from "commander"; import * as UniswapV3Pool from "@uniswap/v3-core/artifacts/contracts/UniswapV3Pool.sol/UniswapV3Pool.json"; import * as UniswapV3Factory from "@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json"; import { ethers } from "ethers"; +import { DEFAULT_RPC, DEFAULT_FACTORY, DEFAULT_FEE } from "./constants"; async function main(options: { rpc: string; @@ -13,10 +14,6 @@ async function main(options: { try { // Initialize provider const provider = new ethers.JsonRpcProvider(options.rpc); - - console.log("Fetching Uniswap V3 pool information..."); - console.log("Network:", (await provider.getNetwork()).name); - let poolAddress: string; if (options.pool) { poolAddress = options.pool; @@ -83,11 +80,7 @@ async function main(options: { export const showCommand = new Command("show") .description("Show information about a Uniswap V3 pool") - .option( - "--rpc ", - "RPC URL for the network", - "https://zetachain-athens.g.allthatnode.com/archive/evm" - ) + .option("--rpc ", "RPC URL for the network", DEFAULT_RPC) .addOption( new Option("--pool ", "Pool contract address").conflicts("tokens") ) @@ -100,7 +93,11 @@ export const showCommand = new Command("show") .option( "--factory ", "Uniswap V3 Factory contract address", - "0x7E032E349853178C233a2560d9Ea434ac82228e0" + DEFAULT_FACTORY + ) + .option( + "--fee ", + "Fee tier for the pool (3000 = 0.3%)", + DEFAULT_FEE.toString() ) - .option("--fee ", "Fee tier for the pool (3000 = 0.3%)", "3000") .action(main); From dc308aef7f44d59c3f8add9fd43a66072ac24595 Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Fri, 18 Apr 2025 13:40:25 +0300 Subject: [PATCH 06/44] add liquidity --- packages/commands/src/pools/add.ts | 170 +++++++++++++++++++++++ packages/commands/src/pools/constants.ts | 2 + packages/commands/src/pools/index.ts | 4 +- 3 files changed, 175 insertions(+), 1 deletion(-) create mode 100644 packages/commands/src/pools/add.ts diff --git a/packages/commands/src/pools/add.ts b/packages/commands/src/pools/add.ts new file mode 100644 index 00000000..28489af8 --- /dev/null +++ b/packages/commands/src/pools/add.ts @@ -0,0 +1,170 @@ +import { Command, Option } from "commander"; +import { ethers } from "ethers"; +import * as NonfungiblePositionManager from "@uniswap/v3-periphery/artifacts/contracts/NonfungiblePositionManager.sol/NonfungiblePositionManager.json"; +import { + DEFAULT_RPC, + DEFAULT_FACTORY, + DEFAULT_FEE, + DEFAULT_POSITION_MANAGER, +} from "./constants"; + +async function main(options: { + rpc: string; + pool: string; + amount0: string; + amount1: string; + recipient?: string; + tickLower?: number; + tickUpper?: number; + privateKey: string; +}) { + try { + // Initialize provider and signer + const provider = new ethers.JsonRpcProvider(options.rpc); + const signer = new ethers.Wallet(options.privateKey, provider); + + // Initialize pool contract to get token addresses + const pool = new ethers.Contract( + options.pool, + [ + "function token0() view returns (address)", + "function token1() view returns (address)", + ], + provider + ); + + // Get token addresses + const [token0, token1] = await Promise.all([pool.token0(), pool.token1()]); + + // Initialize token contracts to get decimals + const token0Contract = new ethers.Contract( + token0, + [ + "function approve(address spender, uint256 amount) returns (bool)", + "function decimals() view returns (uint8)", + ], + signer + ); + const token1Contract = new ethers.Contract( + token1, + [ + "function approve(address spender, uint256 amount) returns (bool)", + "function decimals() view returns (uint8)", + ], + signer + ); + + // Get token decimals + const [decimals0, decimals1] = await Promise.all([ + token0Contract.decimals(), + token1Contract.decimals(), + ]); + + // Convert human-readable amounts to BigInt + const amount0 = ethers.parseUnits(options.amount0, decimals0); + const amount1 = ethers.parseUnits(options.amount1, decimals1); + + // Initialize position manager contract + const positionManager = new ethers.Contract( + DEFAULT_POSITION_MANAGER, + NonfungiblePositionManager.abi, + signer + ); + + // Approve tokens + console.log("Approving tokens..."); + const approve0Tx = await token0Contract.approve( + positionManager.target, + amount0 + ); + const approve1Tx = await token1Contract.approve( + positionManager.target, + amount1 + ); + + console.log("Waiting for approvals..."); + await Promise.all([approve0Tx.wait(), approve1Tx.wait()]); + console.log("Tokens approved successfully"); + + // Set default tick range if not provided + const tickLower = options.tickLower ?? -887220; + const tickUpper = options.tickUpper ?? 887220; + + // Use signer's address as recipient if not provided + const recipient = options.recipient ?? (await signer.getAddress()); + + // Prepare parameters for minting + const params = { + token0, + token1, + fee: DEFAULT_FEE, + tickLower, + tickUpper, + amount0Desired: amount0, + amount1Desired: amount1, + amount0Min: 0n, + amount1Min: 0n, + recipient, + deadline: Math.floor(Date.now() / 1000) + 60 * 20, // 20 minutes from now + }; + + // Send transaction + console.log("Adding liquidity..."); + const tx = await positionManager.mint(params); + const receipt = await tx.wait(); + + // Parse transaction receipt to get token ID + const iface = positionManager.interface; + const transferEvent = receipt.logs + .map((log: any) => { + try { + return iface.parseLog({ + data: log.data, + topics: log.topics, + }); + } catch (e) { + return null; + } + }) + .find((event: any) => event?.name === "Transfer"); + + if (!transferEvent) { + throw new Error("Could not find Transfer event in transaction receipt"); + } + + const tokenId = transferEvent.args[2]; + + console.log("\nLiquidity Added Successfully:"); + console.log("Transaction Hash:", tx.hash); + console.log("Position NFT ID:", tokenId.toString()); + console.log("Recipient Address:", recipient); + } catch (error: any) { + console.error("\nFailed to add liquidity:"); + console.error("Error message:", error.message); + process.exit(1); + } +} + +export const addCommand = new Command("add") + .description("Add liquidity to a Uniswap V3 pool") + .option("--rpc ", "RPC URL for the network", DEFAULT_RPC) + .requiredOption("--pool ", "Pool contract address") + .requiredOption( + "--amount0 ", + "Amount of token0 to add (in human-readable format)" + ) + .requiredOption( + "--amount1 ", + "Amount of token1 to add (in human-readable format)" + ) + .option( + "--recipient ", + "Address that will receive the liquidity position NFT (defaults to signer's address)" + ) + .requiredOption( + "--private-key ", + "Private key of the account that will send the transaction" + ) + .option("--tick-lower ", "Lower tick of the position", "-887220") + .option("--tick-upper ", "Upper tick of the position", "887220") + .action(main); diff --git a/packages/commands/src/pools/constants.ts b/packages/commands/src/pools/constants.ts index d98df4d2..41d7203c 100644 --- a/packages/commands/src/pools/constants.ts +++ b/packages/commands/src/pools/constants.ts @@ -3,3 +3,5 @@ export const DEFAULT_RPC = export const DEFAULT_FACTORY = "0x7E032E349853178C233a2560d9Ea434ac82228e0"; export const DEFAULT_WZETA = "0x5F0b1a82749cb4E2278EC87F8BF6B618dC71a8bf"; export const DEFAULT_FEE = 3000; // 0.3% +export const DEFAULT_POSITION_MANAGER = + "0xFc5D90f650cf46Cecf96C66a4993f97D2a49f93B"; diff --git a/packages/commands/src/pools/index.ts b/packages/commands/src/pools/index.ts index 57af624c..4b418563 100644 --- a/packages/commands/src/pools/index.ts +++ b/packages/commands/src/pools/index.ts @@ -2,9 +2,11 @@ import { Command } from "commander"; import { deployCommand } from "./deploy"; import { createCommand } from "./create"; import { showCommand } from "./show"; +import { addCommand } from "./add"; export const poolsCommand = new Command("pools") .description("Manage Uniswap V3 pools") .addCommand(deployCommand) .addCommand(createCommand) - .addCommand(showCommand); + .addCommand(showCommand) + .addCommand(addCommand); From 9fd0071af2c759ab94b54c66b55cdb38d7f48be8 Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Fri, 18 Apr 2025 13:46:31 +0300 Subject: [PATCH 07/44] refactor --- packages/commands/src/pools/index.ts | 4 ++-- .../commands/src/pools/{ => liquidity}/add.ts | 17 ++++++----------- packages/commands/src/pools/liquidity/index.ts | 6 ++++++ 3 files changed, 14 insertions(+), 13 deletions(-) rename packages/commands/src/pools/{ => liquidity}/add.ts (92%) create mode 100644 packages/commands/src/pools/liquidity/index.ts diff --git a/packages/commands/src/pools/index.ts b/packages/commands/src/pools/index.ts index 4b418563..72536905 100644 --- a/packages/commands/src/pools/index.ts +++ b/packages/commands/src/pools/index.ts @@ -2,11 +2,11 @@ import { Command } from "commander"; import { deployCommand } from "./deploy"; import { createCommand } from "./create"; import { showCommand } from "./show"; -import { addCommand } from "./add"; +import { liquidityCommand } from "./liquidity"; export const poolsCommand = new Command("pools") .description("Manage Uniswap V3 pools") .addCommand(deployCommand) .addCommand(createCommand) .addCommand(showCommand) - .addCommand(addCommand); + .addCommand(liquidityCommand); diff --git a/packages/commands/src/pools/add.ts b/packages/commands/src/pools/liquidity/add.ts similarity index 92% rename from packages/commands/src/pools/add.ts rename to packages/commands/src/pools/liquidity/add.ts index 28489af8..42157cda 100644 --- a/packages/commands/src/pools/add.ts +++ b/packages/commands/src/pools/liquidity/add.ts @@ -6,13 +6,12 @@ import { DEFAULT_FACTORY, DEFAULT_FEE, DEFAULT_POSITION_MANAGER, -} from "./constants"; +} from "../constants"; async function main(options: { rpc: string; pool: string; - amount0: string; - amount1: string; + amounts: string[]; recipient?: string; tickLower?: number; tickUpper?: number; @@ -61,8 +60,8 @@ async function main(options: { ]); // Convert human-readable amounts to BigInt - const amount0 = ethers.parseUnits(options.amount0, decimals0); - const amount1 = ethers.parseUnits(options.amount1, decimals1); + const amount0 = ethers.parseUnits(options.amounts[0], decimals0); + const amount1 = ethers.parseUnits(options.amounts[1], decimals1); // Initialize position manager contract const positionManager = new ethers.Contract( @@ -150,12 +149,8 @@ export const addCommand = new Command("add") .option("--rpc ", "RPC URL for the network", DEFAULT_RPC) .requiredOption("--pool ", "Pool contract address") .requiredOption( - "--amount0 ", - "Amount of token0 to add (in human-readable format)" - ) - .requiredOption( - "--amount1 ", - "Amount of token1 to add (in human-readable format)" + "--amounts ", + "Amounts of tokens to add (in human-readable format, e.g. 0.1 5)" ) .option( "--recipient ", diff --git a/packages/commands/src/pools/liquidity/index.ts b/packages/commands/src/pools/liquidity/index.ts new file mode 100644 index 00000000..1eada219 --- /dev/null +++ b/packages/commands/src/pools/liquidity/index.ts @@ -0,0 +1,6 @@ +import { Command } from "commander"; +import { addCommand } from "./add"; + +export const liquidityCommand = new Command("liquidity") + .description("Manage liquidity in Uniswap V3 pools") + .addCommand(addCommand); From 442977d7ac1c511f575858528d70de1c2b6b5a71 Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Fri, 18 Apr 2025 13:51:40 +0300 Subject: [PATCH 08/44] lint --- packages/commands/src/index.ts | 2 +- packages/commands/src/pools/create.ts | 61 +++++----- packages/commands/src/pools/deploy.ts | 60 +++++----- packages/commands/src/pools/index.ts | 5 +- packages/commands/src/pools/liquidity/add.ts | 104 +++++++++++------- .../commands/src/pools/liquidity/index.ts | 1 + packages/commands/src/pools/show.ts | 62 +++++++---- 7 files changed, 180 insertions(+), 115 deletions(-) diff --git a/packages/commands/src/index.ts b/packages/commands/src/index.ts index c4e635ed..4d3d136c 100644 --- a/packages/commands/src/index.ts +++ b/packages/commands/src/index.ts @@ -1,7 +1,7 @@ import { Command } from "commander"; -import { solanaEncodeCommand } from "./solanaEncode"; import { poolsCommand } from "./pools/"; +import { solanaEncodeCommand } from "./solanaEncode"; export const toolkitCommand = new Command("toolkit") .description("Local development environment") diff --git a/packages/commands/src/pools/create.ts b/packages/commands/src/pools/create.ts index cba5ae1d..905bf9a9 100644 --- a/packages/commands/src/pools/create.ts +++ b/packages/commands/src/pools/create.ts @@ -1,24 +1,32 @@ -import { Command } from "commander"; import * as UniswapV3Factory from "@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json"; import * as UniswapV3Pool from "@uniswap/v3-core/artifacts/contracts/UniswapV3Pool.sol/UniswapV3Pool.json"; -import { ethers } from "ethers"; -import { DEFAULT_RPC, DEFAULT_FACTORY, DEFAULT_FEE } from "./constants"; +import { Command } from "commander"; +import { Contract, ethers, JsonRpcProvider, Wallet } from "ethers"; -async function main(options: { +import { DEFAULT_FACTORY, DEFAULT_FEE, DEFAULT_RPC } from "./constants"; + +interface CreatePoolOptions { + factory: string; + fee?: number; privateKey: string; rpc: string; - factory: string; tokens: string[]; - fee?: number; -}) { +} + +interface PoolCreationError extends Error { + receipt?: ethers.TransactionReceipt; + transaction?: ethers.TransactionResponse; +} + +const main = async (options: CreatePoolOptions): Promise => { try { if (options.tokens.length !== 2) { throw new Error("Exactly 2 token addresses must be provided"); } // Initialize provider and signer - const provider = new ethers.JsonRpcProvider(options.rpc); - const signer = new ethers.Wallet(options.privateKey, provider); + const provider = new JsonRpcProvider(options.rpc); + const signer = new Wallet(options.privateKey, provider); console.log("Creating Uniswap V3 pool..."); console.log("Signer address:", await signer.getAddress()); @@ -29,7 +37,7 @@ async function main(options: { ); // Initialize factory contract - const uniswapV3FactoryInstance = new ethers.Contract( + const uniswapV3FactoryInstance = new Contract( options.factory, UniswapV3Factory.abi, signer @@ -38,43 +46,46 @@ async function main(options: { // Create the pool console.log("\nCreating pool..."); const fee = options.fee || 3000; // Default to 0.3% fee tier - const tx = await uniswapV3FactoryInstance.createPool( + const createPoolTx = (await uniswapV3FactoryInstance.createPool( options.tokens[0], options.tokens[1], fee - ); - console.log("Pool creation transaction hash:", tx.hash); - await tx.wait(); + )) as ethers.TransactionResponse; + console.log("Pool creation transaction hash:", createPoolTx.hash); + await createPoolTx.wait(); // Get the pool address - const poolAddress = await uniswapV3FactoryInstance.getPool( + const poolAddress = (await uniswapV3FactoryInstance.getPool( options.tokens[0], options.tokens[1], fee - ); + )) as string; console.log("Pool deployed at:", poolAddress); // Initialize the pool - const pool = new ethers.Contract(poolAddress, UniswapV3Pool.abi, signer); + const pool = new Contract(poolAddress, UniswapV3Pool.abi, signer); const sqrtPriceX96 = ethers.toBigInt("79228162514264337593543950336"); // sqrt(1) * 2^96 - const initTx = await pool.initialize(sqrtPriceX96); + const initTx = (await pool.initialize( + sqrtPriceX96 + )) as ethers.TransactionResponse; console.log("Pool initialization transaction hash:", initTx.hash); await initTx.wait(); console.log("\nPool created and initialized successfully!"); console.log("Pool address:", poolAddress); - } catch (error: any) { + } catch (error) { + const poolError = error as PoolCreationError; console.error("\nPool creation failed with error:"); - console.error("Error message:", error.message); - if (error.receipt) { - console.error("Transaction receipt:", error.receipt); + console.error("Error message:", poolError.message); + if (poolError.receipt) { + console.error("Transaction receipt:", poolError.receipt); } - if (error.transaction) { - console.error("Transaction details:", error.transaction); + if (poolError.transaction) { + console.error("Transaction details:", poolError.transaction); } process.exit(1); } -} +}; export const createCommand = new Command("create") .description("Create a new Uniswap V3 pool") diff --git a/packages/commands/src/pools/deploy.ts b/packages/commands/src/pools/deploy.ts index e04f598c..5f5ba9ae 100644 --- a/packages/commands/src/pools/deploy.ts +++ b/packages/commands/src/pools/deploy.ts @@ -1,41 +1,48 @@ -import { Command } from "commander"; import * as UniswapV3Factory from "@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json"; -import * as UniswapV3Pool from "@uniswap/v3-core/artifacts/contracts/UniswapV3Pool.sol/UniswapV3Pool.json"; import * as NonfungiblePositionManager from "@uniswap/v3-periphery/artifacts/contracts/NonfungiblePositionManager.sol/NonfungiblePositionManager.json"; import * as SwapRouter from "@uniswap/v3-periphery/artifacts/contracts/SwapRouter.sol/SwapRouter.json"; -import { ethers } from "ethers"; +import { Command } from "commander"; +import { ContractFactory, ethers, JsonRpcProvider, Wallet } from "ethers"; + import { DEFAULT_RPC, DEFAULT_WZETA } from "./constants"; +interface DeployOptions { + privateKey: string; + rpc: string; + wzeta: string; +} + +interface DeploymentError extends Error { + receipt?: ethers.TransactionReceipt; + transaction?: ethers.TransactionResponse; +} + const deployOpts = { gasLimit: 8000000, }; -async function estimateGas( - contractFactory: ethers.ContractFactory, - args: any[] = [] -) { +const estimateGas = async ( + contractFactory: ContractFactory, + args: unknown[] = [] +): Promise => { try { const deployment = await contractFactory.getDeployTransaction(...args); const gasEstimate = await contractFactory.runner?.provider?.estimateGas( deployment ); console.log("Estimated gas:", gasEstimate?.toString()); - return gasEstimate; + return gasEstimate ?? null; } catch (error) { console.error("Gas estimation failed:", error); return null; } -} +}; -async function main(options: { - privateKey: string; - rpc: string; - wzeta: string; -}) { +const main = async (options: DeployOptions): Promise => { try { // Initialize provider and signer - const provider = new ethers.JsonRpcProvider(options.rpc); - const signer = new ethers.Wallet(options.privateKey, provider); + const provider = new JsonRpcProvider(options.rpc); + const signer = new Wallet(options.privateKey, provider); console.log("Deploying Uniswap V3 contracts..."); console.log("Deployer address:", await signer.getAddress()); @@ -48,7 +55,7 @@ async function main(options: { // Deploy Uniswap V3 Factory console.log("\nDeploying Uniswap V3 Factory..."); - const uniswapV3Factory = new ethers.ContractFactory( + const uniswapV3Factory = new ContractFactory( UniswapV3Factory.abi, UniswapV3Factory.bytecode, signer @@ -76,7 +83,7 @@ async function main(options: { // Deploy Swap Router console.log("\nDeploying Swap Router..."); - const swapRouter = new ethers.ContractFactory( + const swapRouter = new ContractFactory( SwapRouter.abi, SwapRouter.bytecode, signer @@ -111,7 +118,7 @@ async function main(options: { // Deploy Nonfungible Position Manager console.log("\nDeploying Nonfungible Position Manager..."); - const nonfungiblePositionManager = new ethers.ContractFactory( + const nonfungiblePositionManager = new ContractFactory( NonfungiblePositionManager.abi, NonfungiblePositionManager.bytecode, signer @@ -161,18 +168,19 @@ async function main(options: { "Nonfungible Position Manager:", await nonfungiblePositionManagerInstance.getAddress() ); - } catch (error: any) { + } catch (error) { + const deploymentError = error as DeploymentError; console.error("\nDeployment failed with error:"); - console.error("Error message:", error.message); - if (error.receipt) { - console.error("Transaction receipt:", error.receipt); + console.error("Error message:", deploymentError.message); + if (deploymentError.receipt) { + console.error("Transaction receipt:", deploymentError.receipt); } - if (error.transaction) { - console.error("Transaction details:", error.transaction); + if (deploymentError.transaction) { + console.error("Transaction details:", deploymentError.transaction); } process.exit(1); } -} +}; export const deployCommand = new Command("deploy") .description("Deploy Uniswap V3 contracts") diff --git a/packages/commands/src/pools/index.ts b/packages/commands/src/pools/index.ts index 72536905..85bcb6fd 100644 --- a/packages/commands/src/pools/index.ts +++ b/packages/commands/src/pools/index.ts @@ -1,8 +1,9 @@ import { Command } from "commander"; -import { deployCommand } from "./deploy"; + import { createCommand } from "./create"; -import { showCommand } from "./show"; +import { deployCommand } from "./deploy"; import { liquidityCommand } from "./liquidity"; +import { showCommand } from "./show"; export const poolsCommand = new Command("pools") .description("Manage Uniswap V3 pools") diff --git a/packages/commands/src/pools/liquidity/add.ts b/packages/commands/src/pools/liquidity/add.ts index 42157cda..7daf2b97 100644 --- a/packages/commands/src/pools/liquidity/add.ts +++ b/packages/commands/src/pools/liquidity/add.ts @@ -1,29 +1,45 @@ -import { Command, Option } from "commander"; -import { ethers } from "ethers"; import * as NonfungiblePositionManager from "@uniswap/v3-periphery/artifacts/contracts/NonfungiblePositionManager.sol/NonfungiblePositionManager.json"; +import { Command } from "commander"; +import { Contract, ethers, JsonRpcProvider, Log, Wallet } from "ethers"; + import { - DEFAULT_RPC, - DEFAULT_FACTORY, DEFAULT_FEE, DEFAULT_POSITION_MANAGER, + DEFAULT_RPC, } from "../constants"; -async function main(options: { - rpc: string; - pool: string; +interface AddLiquidityOptions { amounts: string[]; + pool: string; + privateKey: string; recipient?: string; + rpc: string; tickLower?: number; tickUpper?: number; - privateKey: string; -}) { +} + +interface MintParams { + amount0Desired: bigint; + amount0Min: bigint; + amount1Desired: bigint; + amount1Min: bigint; + deadline: number; + fee: number; + recipient: string; + tickLower: number; + tickUpper: number; + token0: string; + token1: string; +} + +const main = async (options: AddLiquidityOptions): Promise => { try { // Initialize provider and signer - const provider = new ethers.JsonRpcProvider(options.rpc); - const signer = new ethers.Wallet(options.privateKey, provider); + const provider = new JsonRpcProvider(options.rpc); + const signer = new Wallet(options.privateKey, provider); // Initialize pool contract to get token addresses - const pool = new ethers.Contract( + const pool = new Contract( options.pool, [ "function token0() view returns (address)", @@ -33,10 +49,13 @@ async function main(options: { ); // Get token addresses - const [token0, token1] = await Promise.all([pool.token0(), pool.token1()]); + const [token0, token1] = (await Promise.all([ + pool.token0(), + pool.token1(), + ])) as [string, string]; // Initialize token contracts to get decimals - const token0Contract = new ethers.Contract( + const token0Contract = new Contract( token0, [ "function approve(address spender, uint256 amount) returns (bool)", @@ -44,7 +63,7 @@ async function main(options: { ], signer ); - const token1Contract = new ethers.Contract( + const token1Contract = new Contract( token1, [ "function approve(address spender, uint256 amount) returns (bool)", @@ -54,17 +73,17 @@ async function main(options: { ); // Get token decimals - const [decimals0, decimals1] = await Promise.all([ + const [decimals0, decimals1] = (await Promise.all([ token0Contract.decimals(), token1Contract.decimals(), - ]); + ])) as [number, number]; // Convert human-readable amounts to BigInt const amount0 = ethers.parseUnits(options.amounts[0], decimals0); const amount1 = ethers.parseUnits(options.amounts[1], decimals1); // Initialize position manager contract - const positionManager = new ethers.Contract( + const positionManager = new Contract( DEFAULT_POSITION_MANAGER, NonfungiblePositionManager.abi, signer @@ -72,14 +91,14 @@ async function main(options: { // Approve tokens console.log("Approving tokens..."); - const approve0Tx = await token0Contract.approve( + const approve0Tx = (await token0Contract.approve( positionManager.target, amount0 - ); - const approve1Tx = await token1Contract.approve( + )) as ethers.TransactionResponse; + const approve1Tx = (await token1Contract.approve( positionManager.target, amount1 - ); + )) as ethers.TransactionResponse; console.log("Waiting for approvals..."); await Promise.all([approve0Tx.wait(), approve1Tx.wait()]); @@ -93,56 +112,65 @@ async function main(options: { const recipient = options.recipient ?? (await signer.getAddress()); // Prepare parameters for minting - const params = { - token0, - token1, - fee: DEFAULT_FEE, - tickLower, - tickUpper, + const params: MintParams = { amount0Desired: amount0, - amount1Desired: amount1, amount0Min: 0n, + amount1Desired: amount1, amount1Min: 0n, + deadline: Math.floor(Date.now() / 1000) + 60 * 20, + fee: DEFAULT_FEE, recipient, - deadline: Math.floor(Date.now() / 1000) + 60 * 20, // 20 minutes from now + tickLower, + tickUpper, + token0, + token1, }; // Send transaction console.log("Adding liquidity..."); - const tx = await positionManager.mint(params); + const tx = (await positionManager.mint( + params + )) as ethers.TransactionResponse; const receipt = await tx.wait(); + if (!receipt) { + throw new Error("Transaction receipt is null"); + } + // Parse transaction receipt to get token ID const iface = positionManager.interface; const transferEvent = receipt.logs - .map((log: any) => { + .map((log: Log) => { try { return iface.parseLog({ data: log.data, topics: log.topics, }); - } catch (e) { + } catch { return null; } }) - .find((event: any) => event?.name === "Transfer"); + .find((event) => event?.name === "Transfer"); if (!transferEvent) { throw new Error("Could not find Transfer event in transaction receipt"); } - const tokenId = transferEvent.args[2]; + const tokenId = transferEvent.args[2] as bigint; console.log("\nLiquidity Added Successfully:"); console.log("Transaction Hash:", tx.hash); console.log("Position NFT ID:", tokenId.toString()); console.log("Recipient Address:", recipient); - } catch (error: any) { + } catch (error) { console.error("\nFailed to add liquidity:"); - console.error("Error message:", error.message); + console.error( + "Error message:", + error instanceof Error ? error.message : String(error) + ); process.exit(1); } -} +}; export const addCommand = new Command("add") .description("Add liquidity to a Uniswap V3 pool") diff --git a/packages/commands/src/pools/liquidity/index.ts b/packages/commands/src/pools/liquidity/index.ts index 1eada219..efe69f3a 100644 --- a/packages/commands/src/pools/liquidity/index.ts +++ b/packages/commands/src/pools/liquidity/index.ts @@ -1,4 +1,5 @@ import { Command } from "commander"; + import { addCommand } from "./add"; export const liquidityCommand = new Command("liquidity") diff --git a/packages/commands/src/pools/show.ts b/packages/commands/src/pools/show.ts index 8402fe4d..881b9694 100644 --- a/packages/commands/src/pools/show.ts +++ b/packages/commands/src/pools/show.ts @@ -1,19 +1,32 @@ -import { Command, Option } from "commander"; -import * as UniswapV3Pool from "@uniswap/v3-core/artifacts/contracts/UniswapV3Pool.sol/UniswapV3Pool.json"; import * as UniswapV3Factory from "@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json"; -import { ethers } from "ethers"; -import { DEFAULT_RPC, DEFAULT_FACTORY, DEFAULT_FEE } from "./constants"; +import * as UniswapV3Pool from "@uniswap/v3-core/artifacts/contracts/UniswapV3Pool.sol/UniswapV3Pool.json"; +import { Command, Option } from "commander"; +import { Contract, ethers, JsonRpcProvider } from "ethers"; -async function main(options: { - rpc: string; - pool?: string; - tokens?: string[]; +import { DEFAULT_FACTORY, DEFAULT_FEE, DEFAULT_RPC } from "./constants"; + +interface ShowPoolOptions { factory?: string; fee?: number; -}) { + pool?: string; + rpc: string; + tokens?: string[]; +} + +interface Slot0Result { + feeProtocol: number; + observationCardinality: number; + observationCardinalityNext: number; + observationIndex: number; + sqrtPriceX96: bigint; + tick: number; + unlocked: boolean; +} + +const main = async (options: ShowPoolOptions): Promise => { try { // Initialize provider - const provider = new ethers.JsonRpcProvider(options.rpc); + const provider = new JsonRpcProvider(options.rpc); let poolAddress: string; if (options.pool) { poolAddress = options.pool; @@ -23,19 +36,19 @@ async function main(options: { } // Initialize factory contract - const factory = new ethers.Contract( - options.factory!, + const factory = new Contract( + options.factory ?? DEFAULT_FACTORY, UniswapV3Factory.abi, provider ); // Get pool address from factory - const fee = options.fee || 3000; // Default to 0.3% fee tier - poolAddress = await factory.getPool( + const fee = options.fee ?? 3000; // Default to 0.3% fee tier + poolAddress = (await factory.getPool( options.tokens[0], options.tokens[1], fee - ); + )) as string; if (poolAddress === ethers.ZeroAddress) { throw new Error("Pool not found for the given tokens and fee tier"); @@ -45,21 +58,21 @@ async function main(options: { } // Initialize pool contract - const pool = new ethers.Contract(poolAddress, UniswapV3Pool.abi, provider); + const pool = new Contract(poolAddress, UniswapV3Pool.abi, provider); // Get pool information const [token0, token1, fee, tickSpacing, liquidity, slot0] = - await Promise.all([ + (await Promise.all([ pool.token0(), pool.token1(), pool.fee(), pool.tickSpacing(), pool.liquidity(), pool.slot0(), - ]); + ])) as [string, string, bigint, bigint, bigint, Slot0Result]; // Calculate price from sqrtPriceX96 - const sqrtPriceX96 = slot0[0]; + const sqrtPriceX96 = slot0.sqrtPriceX96; const price = (Number(sqrtPriceX96) / 2 ** 96) ** 2; console.log("\nPool Information:"); @@ -70,13 +83,16 @@ async function main(options: { console.log("Tick Spacing:", tickSpacing.toString()); console.log("Current Price:", price.toFixed(6)); console.log("Liquidity:", liquidity.toString()); - console.log("Current Tick:", slot0[1].toString()); - } catch (error: any) { + console.log("Current Tick:", slot0.tick.toString()); + } catch (error) { console.error("\nFailed to fetch pool information:"); - console.error("Error message:", error.message); + console.error( + "Error message:", + error instanceof Error ? error.message : String(error) + ); process.exit(1); } -} +}; export const showCommand = new Command("show") .description("Show information about a Uniswap V3 pool") From 50362ab618298c37189f29da25011242b3852716 Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Fri, 18 Apr 2025 13:56:57 +0300 Subject: [PATCH 09/44] refactor --- packages/commands/src/pools/liquidity/add.ts | 55 +++++++++++++------- 1 file changed, 37 insertions(+), 18 deletions(-) diff --git a/packages/commands/src/pools/liquidity/add.ts b/packages/commands/src/pools/liquidity/add.ts index 7daf2b97..f1dde7a9 100644 --- a/packages/commands/src/pools/liquidity/add.ts +++ b/packages/commands/src/pools/liquidity/add.ts @@ -1,5 +1,5 @@ import * as NonfungiblePositionManager from "@uniswap/v3-periphery/artifacts/contracts/NonfungiblePositionManager.sol/NonfungiblePositionManager.json"; -import { Command } from "commander"; +import { Command, Option } from "commander"; import { Contract, ethers, JsonRpcProvider, Log, Wallet } from "ethers"; import { @@ -10,7 +10,8 @@ import { interface AddLiquidityOptions { amounts: string[]; - pool: string; + pool?: string; + tokens?: string[]; privateKey: string; recipient?: string; rpc: string; @@ -38,21 +39,33 @@ const main = async (options: AddLiquidityOptions): Promise => { const provider = new JsonRpcProvider(options.rpc); const signer = new Wallet(options.privateKey, provider); - // Initialize pool contract to get token addresses - const pool = new Contract( - options.pool, - [ - "function token0() view returns (address)", - "function token1() view returns (address)", - ], - provider - ); - - // Get token addresses - const [token0, token1] = (await Promise.all([ - pool.token0(), - pool.token1(), - ])) as [string, string]; + let token0: string; + let token1: string; + + if (options.pool) { + // Initialize pool contract to get token addresses + const pool = new Contract( + options.pool, + [ + "function token0() view returns (address)", + "function token1() view returns (address)", + ], + provider + ); + + // Get token addresses from pool + [token0, token1] = (await Promise.all([ + pool.token0(), + pool.token1(), + ])) as [string, string]; + } else if (options.tokens && options.tokens.length === 2) { + // Use provided token addresses + [token0, token1] = options.tokens; + } else { + throw new Error( + "Either pool address or two token addresses must be provided" + ); + } // Initialize token contracts to get decimals const token0Contract = new Contract( @@ -175,7 +188,13 @@ const main = async (options: AddLiquidityOptions): Promise => { export const addCommand = new Command("add") .description("Add liquidity to a Uniswap V3 pool") .option("--rpc ", "RPC URL for the network", DEFAULT_RPC) - .requiredOption("--pool ", "Pool contract address") + .option("--pool ", "Pool contract address") + .addOption( + new Option( + "--tokens ", + "Token addresses for the pool (exactly 2 required)" + ).conflicts("pool") + ) .requiredOption( "--amounts ", "Amounts of tokens to add (in human-readable format, e.g. 0.1 5)" From fe543e4dfce9a2c610f76e5226ae2c000378820c Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Fri, 18 Apr 2025 13:57:12 +0300 Subject: [PATCH 10/44] lint --- packages/commands/src/pools/liquidity/add.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/commands/src/pools/liquidity/add.ts b/packages/commands/src/pools/liquidity/add.ts index f1dde7a9..7a6eb349 100644 --- a/packages/commands/src/pools/liquidity/add.ts +++ b/packages/commands/src/pools/liquidity/add.ts @@ -11,12 +11,12 @@ import { interface AddLiquidityOptions { amounts: string[]; pool?: string; - tokens?: string[]; privateKey: string; recipient?: string; rpc: string; tickLower?: number; tickUpper?: number; + tokens?: string[]; } interface MintParams { From 691b2fbf6a92b30b66d2c23a5b90530f2dc19e9d Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Fri, 18 Apr 2025 14:02:01 +0300 Subject: [PATCH 11/44] refactor --- packages/commands/src/pools/liquidity/add.ts | 77 ++++++++------------ 1 file changed, 29 insertions(+), 48 deletions(-) diff --git a/packages/commands/src/pools/liquidity/add.ts b/packages/commands/src/pools/liquidity/add.ts index 7a6eb349..d69e0f8b 100644 --- a/packages/commands/src/pools/liquidity/add.ts +++ b/packages/commands/src/pools/liquidity/add.ts @@ -1,5 +1,5 @@ import * as NonfungiblePositionManager from "@uniswap/v3-periphery/artifacts/contracts/NonfungiblePositionManager.sol/NonfungiblePositionManager.json"; -import { Command, Option } from "commander"; +import { Command } from "commander"; import { Contract, ethers, JsonRpcProvider, Log, Wallet } from "ethers"; import { @@ -10,13 +10,12 @@ import { interface AddLiquidityOptions { amounts: string[]; - pool?: string; privateKey: string; recipient?: string; rpc: string; tickLower?: number; tickUpper?: number; - tokens?: string[]; + tokens: string[]; } interface MintParams { @@ -39,50 +38,19 @@ const main = async (options: AddLiquidityOptions): Promise => { const provider = new JsonRpcProvider(options.rpc); const signer = new Wallet(options.privateKey, provider); - let token0: string; - let token1: string; - - if (options.pool) { - // Initialize pool contract to get token addresses - const pool = new Contract( - options.pool, - [ - "function token0() view returns (address)", - "function token1() view returns (address)", - ], - provider - ); - - // Get token addresses from pool - [token0, token1] = (await Promise.all([ - pool.token0(), - pool.token1(), - ])) as [string, string]; - } else if (options.tokens && options.tokens.length === 2) { - // Use provided token addresses - [token0, token1] = options.tokens; - } else { - throw new Error( - "Either pool address or two token addresses must be provided" - ); - } + // Get token addresses + const [token0, token1] = options.tokens; // Initialize token contracts to get decimals const token0Contract = new Contract( token0, - [ - "function approve(address spender, uint256 amount) returns (bool)", - "function decimals() view returns (uint8)", - ], - signer + ["function decimals() view returns (uint8)"], + provider ); const token1Contract = new Contract( token1, - [ - "function approve(address spender, uint256 amount) returns (bool)", - "function decimals() view returns (uint8)", - ], - signer + ["function decimals() view returns (uint8)"], + provider ); // Get token decimals @@ -95,6 +63,18 @@ const main = async (options: AddLiquidityOptions): Promise => { const amount0 = ethers.parseUnits(options.amounts[0], decimals0); const amount1 = ethers.parseUnits(options.amounts[1], decimals1); + // Initialize token contracts for approval + const token0ContractForApproval = new Contract( + token0, + ["function approve(address spender, uint256 amount) returns (bool)"], + signer + ); + const token1ContractForApproval = new Contract( + token1, + ["function approve(address spender, uint256 amount) returns (bool)"], + signer + ); + // Initialize position manager contract const positionManager = new Contract( DEFAULT_POSITION_MANAGER, @@ -104,11 +84,11 @@ const main = async (options: AddLiquidityOptions): Promise => { // Approve tokens console.log("Approving tokens..."); - const approve0Tx = (await token0Contract.approve( + const approve0Tx = (await token0ContractForApproval.approve( positionManager.target, amount0 )) as ethers.TransactionResponse; - const approve1Tx = (await token1Contract.approve( + const approve1Tx = (await token1ContractForApproval.approve( positionManager.target, amount1 )) as ethers.TransactionResponse; @@ -175,6 +155,10 @@ const main = async (options: AddLiquidityOptions): Promise => { console.log("Transaction Hash:", tx.hash); console.log("Position NFT ID:", tokenId.toString()); console.log("Recipient Address:", recipient); + console.log("Token0 Address:", token0); + console.log("Token1 Address:", token1); + console.log("Amount0:", options.amounts[0]); + console.log("Amount1:", options.amounts[1]); } catch (error) { console.error("\nFailed to add liquidity:"); console.error( @@ -188,12 +172,9 @@ const main = async (options: AddLiquidityOptions): Promise => { export const addCommand = new Command("add") .description("Add liquidity to a Uniswap V3 pool") .option("--rpc ", "RPC URL for the network", DEFAULT_RPC) - .option("--pool ", "Pool contract address") - .addOption( - new Option( - "--tokens ", - "Token addresses for the pool (exactly 2 required)" - ).conflicts("pool") + .requiredOption( + "--tokens ", + "Token addresses for the pool (exactly 2 required)" ) .requiredOption( "--amounts ", From f6a7c287aabce1a74d35f946e5729e402b83251a Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Fri, 18 Apr 2025 14:06:26 +0300 Subject: [PATCH 12/44] refactor --- package.json | 4 +- packages/commands/src/pools/liquidity/add.ts | 84 +++++++-- yarn.lock | 182 +++++++++++++++++++ 3 files changed, 249 insertions(+), 21 deletions(-) diff --git a/package.json b/package.json index aeb330cb..eef55ab7 100644 --- a/package.json +++ b/package.json @@ -111,6 +111,7 @@ "@openzeppelin/contracts-upgradeable": "^5.0.2", "@solana/wallet-adapter-react": "^0.15.35", "@solana/web3.js": "1.95.8", + "@types/inquirer": "^9.0.7", "@uniswap/v2-periphery": "^1.1.0-beta.0", "@uniswap/v3-core": "^1.0.1", "@uniswap/v3-periphery": "^1.4.4", @@ -132,6 +133,7 @@ "form-data": "^4.0.0", "handlebars": "4.7.7", "hardhat": "^2.22.8", + "inquirer": "^12.5.2", "lodash": "^4.17.21", "ora": "5.4.1", "spinnies": "^0.5.1", @@ -140,4 +142,4 @@ "zod": "^3.24.2" }, "packageManager": "yarn@1.22.21+sha1.1959a18351b811cdeedbd484a8f86c3cc3bbaf72" -} \ No newline at end of file +} diff --git a/packages/commands/src/pools/liquidity/add.ts b/packages/commands/src/pools/liquidity/add.ts index d69e0f8b..731d1b06 100644 --- a/packages/commands/src/pools/liquidity/add.ts +++ b/packages/commands/src/pools/liquidity/add.ts @@ -1,6 +1,7 @@ import * as NonfungiblePositionManager from "@uniswap/v3-periphery/artifacts/contracts/NonfungiblePositionManager.sol/NonfungiblePositionManager.json"; import { Command } from "commander"; import { Contract, ethers, JsonRpcProvider, Log, Wallet } from "ethers"; +import inquirer from "inquirer"; import { DEFAULT_FEE, @@ -39,29 +40,79 @@ const main = async (options: AddLiquidityOptions): Promise => { const signer = new Wallet(options.privateKey, provider); // Get token addresses - const [token0, token1] = options.tokens; + if (options.tokens.length !== 2) { + throw new Error("Exactly 2 token addresses must be provided"); + } + const [token0, token1]: [string, string] = [ + options.tokens[0], + options.tokens[1], + ]; - // Initialize token contracts to get decimals + // Initialize token contracts to get decimals and symbols const token0Contract = new Contract( token0, - ["function decimals() view returns (uint8)"], + [ + "function decimals() view returns (uint8)", + "function symbol() view returns (string)", + ], provider ); const token1Contract = new Contract( token1, - ["function decimals() view returns (uint8)"], + [ + "function decimals() view returns (uint8)", + "function symbol() view returns (string)", + ], provider ); - // Get token decimals - const [decimals0, decimals1] = (await Promise.all([ + // Get token decimals and symbols + const [decimals0, decimals1, symbol0, symbol1]: [ + number, + number, + string, + string + ] = await Promise.all([ token0Contract.decimals(), token1Contract.decimals(), - ])) as [number, number]; + token0Contract.symbol(), + token1Contract.symbol(), + ]); // Convert human-readable amounts to BigInt - const amount0 = ethers.parseUnits(options.amounts[0], decimals0); - const amount1 = ethers.parseUnits(options.amounts[1], decimals1); + const [amount0, amount1]: [bigint, bigint] = [ + ethers.parseUnits(options.amounts[0], decimals0), + ethers.parseUnits(options.amounts[1], decimals1), + ]; + + // Use signer's address as recipient if not provided + const recipient = options.recipient ?? (await signer.getAddress()); + + // Set default tick range if not provided + const tickLower = options.tickLower ?? -887220; + const tickUpper = options.tickUpper ?? 887220; + + // Show transaction details and get confirmation + console.log("\nTransaction Details:"); + console.log(`Token0 (${symbol0}): ${options.amounts[0]} (${token0})`); + console.log(`Token1 (${symbol1}): ${options.amounts[1]} (${token1})`); + console.log(`Recipient: ${recipient}`); + console.log(`Tick Range: [${tickLower}, ${tickUpper}]`); + console.log(`Fee: ${DEFAULT_FEE / 10000}%`); + + const { confirm } = await inquirer.prompt([ + { + default: false, + message: "Do you want to proceed with the transaction?", + name: "confirm", + type: "confirm", + }, + ]); + + if (!confirm) { + console.log("Transaction cancelled by user"); + process.exit(0); + } // Initialize token contracts for approval const token0ContractForApproval = new Contract( @@ -83,7 +134,7 @@ const main = async (options: AddLiquidityOptions): Promise => { ); // Approve tokens - console.log("Approving tokens..."); + console.log("\nApproving tokens..."); const approve0Tx = (await token0ContractForApproval.approve( positionManager.target, amount0 @@ -97,13 +148,6 @@ const main = async (options: AddLiquidityOptions): Promise => { await Promise.all([approve0Tx.wait(), approve1Tx.wait()]); console.log("Tokens approved successfully"); - // Set default tick range if not provided - const tickLower = options.tickLower ?? -887220; - const tickUpper = options.tickUpper ?? 887220; - - // Use signer's address as recipient if not provided - const recipient = options.recipient ?? (await signer.getAddress()); - // Prepare parameters for minting const params: MintParams = { amount0Desired: amount0, @@ -120,7 +164,7 @@ const main = async (options: AddLiquidityOptions): Promise => { }; // Send transaction - console.log("Adding liquidity..."); + console.log("\nAdding liquidity..."); const tx = (await positionManager.mint( params )) as ethers.TransactionResponse; @@ -155,8 +199,8 @@ const main = async (options: AddLiquidityOptions): Promise => { console.log("Transaction Hash:", tx.hash); console.log("Position NFT ID:", tokenId.toString()); console.log("Recipient Address:", recipient); - console.log("Token0 Address:", token0); - console.log("Token1 Address:", token1); + console.log("Token 0 Address:", token0); + console.log("Token 1 Address:", token1); console.log("Amount0:", options.amounts[0]); console.log("Amount1:", options.amounts[1]); } catch (error) { diff --git a/yarn.lock b/yarn.lock index 743aa2fd..59469fee 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1172,6 +1172,17 @@ chalk "^4.1.2" figures "^3.2.0" +"@inquirer/checkbox@^4.1.5": + version "4.1.5" + resolved "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.1.5.tgz#891bb32ca98eb6ee2889f71d79722705e2241161" + integrity sha512-swPczVU+at65xa5uPfNP9u3qx/alNwiaykiI/ExpsmMSQW55trmZcwhYWzw/7fj+n6Q8z1eENvR7vFfq9oPSAQ== + dependencies: + "@inquirer/core" "^10.1.10" + "@inquirer/figures" "^1.0.11" + "@inquirer/type" "^3.0.6" + ansi-escapes "^4.3.2" + yoctocolors-cjs "^2.1.2" + "@inquirer/confirm@^2.0.5": version "2.0.17" resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-2.0.17.tgz#a45eb1b973c51c993a3c093a0114e960b1cf09a4" @@ -1181,6 +1192,14 @@ "@inquirer/type" "^1.1.6" chalk "^4.1.2" +"@inquirer/confirm@^5.1.9": + version "5.1.9" + resolved "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.9.tgz#c858b6a3decb458241ec36ca9a9117477338076a" + integrity sha512-NgQCnHqFTjF7Ys2fsqK2WtnA8X1kHyInyG+nMIuHowVTIgIuS10T4AznI/PvbqSpJqjCUqNBlKGh1v3bwLFL4w== + dependencies: + "@inquirer/core" "^10.1.10" + "@inquirer/type" "^3.0.6" + "@inquirer/core@^1.1.3": version "1.3.0" resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-1.3.0.tgz#469427e51daa519f2b1332745a2222629c03c701" @@ -1198,6 +1217,20 @@ strip-ansi "^6.0.1" wrap-ansi "^6.0.1" +"@inquirer/core@^10.1.10": + version "10.1.10" + resolved "https://registry.npmjs.org/@inquirer/core/-/core-10.1.10.tgz#222a374e3768536a1eb0adf7516c436d5f4a291d" + integrity sha512-roDaKeY1PYY0aCqhRmXihrHjoSW2A00pV3Ke5fTpMCkzcGF64R8e0lw3dK+eLEHwS4vB5RnW1wuQmvzoRul8Mw== + dependencies: + "@inquirer/figures" "^1.0.11" + "@inquirer/type" "^3.0.6" + ansi-escapes "^4.3.2" + cli-width "^4.1.0" + mute-stream "^2.0.0" + signal-exit "^4.1.0" + wrap-ansi "^6.2.0" + yoctocolors-cjs "^2.1.2" + "@inquirer/core@^2.3.1": version "2.3.1" resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-2.3.1.tgz#b7a1563ef3830a20485f551257779657e843e53f" @@ -1248,6 +1281,15 @@ chalk "^4.1.2" external-editor "^3.1.0" +"@inquirer/editor@^4.2.10": + version "4.2.10" + resolved "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.10.tgz#45e399313ee857857248bd539b8e832aa0fb60b3" + integrity sha512-5GVWJ+qeI6BzR6TIInLP9SXhWCEcvgFQYmcRG6d6RIlhFjM5TyG18paTGBgRYyEouvCmzeco47x9zX9tQEofkw== + dependencies: + "@inquirer/core" "^10.1.10" + "@inquirer/type" "^3.0.6" + external-editor "^3.1.0" + "@inquirer/expand@^1.1.4": version "1.1.16" resolved "https://registry.yarnpkg.com/@inquirer/expand/-/expand-1.1.16.tgz#63dce81240e5f7b2b1d7942b3e3cae18f4f03d07" @@ -1258,6 +1300,20 @@ chalk "^4.1.2" figures "^3.2.0" +"@inquirer/expand@^4.0.12": + version "4.0.12" + resolved "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.12.tgz#1e4554f509a435f966e2b91395a503d77df35c17" + integrity sha512-jV8QoZE1fC0vPe6TnsOfig+qwu7Iza1pkXoUJ3SroRagrt2hxiL+RbM432YAihNR7m7XnU0HWl/WQ35RIGmXHw== + dependencies: + "@inquirer/core" "^10.1.10" + "@inquirer/type" "^3.0.6" + yoctocolors-cjs "^2.1.2" + +"@inquirer/figures@^1.0.11": + version "1.0.11" + resolved "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.11.tgz#4744e6db95288fea1dead779554859710a959a21" + integrity sha512-eOg92lvrn/aRUqbxRyvpEWnrvRuTYRifixHkYVpJiygTgVSBIHDqLh0SrMQXkafvULg3ck11V7xvR+zcgvpHFw== + "@inquirer/input@^1.2.4": version "1.2.16" resolved "https://registry.yarnpkg.com/@inquirer/input/-/input-1.2.16.tgz#94d8765a47689e799fd55ed0361dedc8f554341b" @@ -1267,6 +1323,22 @@ "@inquirer/type" "^1.1.6" chalk "^4.1.2" +"@inquirer/input@^4.1.9": + version "4.1.9" + resolved "https://registry.npmjs.org/@inquirer/input/-/input-4.1.9.tgz#e93888d48c89bdb7f8e10bdd94572b636375749a" + integrity sha512-mshNG24Ij5KqsQtOZMgj5TwEjIf+F2HOESk6bjMwGWgcH5UBe8UoljwzNFHqdMbGYbgAf6v2wU/X9CAdKJzgOA== + dependencies: + "@inquirer/core" "^10.1.10" + "@inquirer/type" "^3.0.6" + +"@inquirer/number@^3.0.12": + version "3.0.12" + resolved "https://registry.npmjs.org/@inquirer/number/-/number-3.0.12.tgz#e027d27425ee2a81a7ccb9fdc750129edd291067" + integrity sha512-7HRFHxbPCA4e4jMxTQglHJwP+v/kpFsCf2szzfBHy98Wlc3L08HL76UDiA87TOdX5fwj2HMOLWqRWv9Pnn+Z5Q== + dependencies: + "@inquirer/core" "^10.1.10" + "@inquirer/type" "^3.0.6" + "@inquirer/password@^1.1.4": version "1.1.16" resolved "https://registry.yarnpkg.com/@inquirer/password/-/password-1.1.16.tgz#37ddebbe37c6e76f8ad27d1f726aacdd7c423558" @@ -1277,6 +1349,15 @@ ansi-escapes "^4.3.2" chalk "^4.1.2" +"@inquirer/password@^4.0.12": + version "4.0.12" + resolved "https://registry.npmjs.org/@inquirer/password/-/password-4.0.12.tgz#f1a663bc5cf88699643cf6c83626a1ae77e580b5" + integrity sha512-FlOB0zvuELPEbnBYiPaOdJIaDzb2PmJ7ghi/SVwIHDDSQ2K4opGBkF+5kXOg6ucrtSUQdLhVVY5tycH0j0l+0g== + dependencies: + "@inquirer/core" "^10.1.10" + "@inquirer/type" "^3.0.6" + ansi-escapes "^4.3.2" + "@inquirer/prompts@^2.1.1": version "2.3.1" resolved "https://registry.yarnpkg.com/@inquirer/prompts/-/prompts-2.3.1.tgz#fe430f96e510cf352efeb77af2dbd6d3049e677c" @@ -1292,6 +1373,22 @@ "@inquirer/rawlist" "^1.2.4" "@inquirer/select" "^1.2.4" +"@inquirer/prompts@^7.4.1": + version "7.4.1" + resolved "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.4.1.tgz#b9bfbba7384305f1d632aca1b800b2b3c22fbcbf" + integrity sha512-UlmM5FVOZF0gpoe1PT/jN4vk8JmpIWBlMvTL8M+hlvPmzN89K6z03+IFmyeu/oFCenwdwHDr2gky7nIGSEVvlA== + dependencies: + "@inquirer/checkbox" "^4.1.5" + "@inquirer/confirm" "^5.1.9" + "@inquirer/editor" "^4.2.10" + "@inquirer/expand" "^4.0.12" + "@inquirer/input" "^4.1.9" + "@inquirer/number" "^3.0.12" + "@inquirer/password" "^4.0.12" + "@inquirer/rawlist" "^4.0.12" + "@inquirer/search" "^3.0.12" + "@inquirer/select" "^4.1.1" + "@inquirer/rawlist@^1.2.4": version "1.2.16" resolved "https://registry.yarnpkg.com/@inquirer/rawlist/-/rawlist-1.2.16.tgz#ac6cc0bb2a60d51dccdfe2c3ea624185f1fbd5bc" @@ -1301,6 +1398,25 @@ "@inquirer/type" "^1.1.6" chalk "^4.1.2" +"@inquirer/rawlist@^4.0.12": + version "4.0.12" + resolved "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.0.12.tgz#97b9540199590d2b197836ba3a5658addd406479" + integrity sha512-wNPJZy8Oc7RyGISPxp9/MpTOqX8lr0r+lCCWm7hQra+MDtYRgINv1hxw7R+vKP71Bu/3LszabxOodfV/uTfsaA== + dependencies: + "@inquirer/core" "^10.1.10" + "@inquirer/type" "^3.0.6" + yoctocolors-cjs "^2.1.2" + +"@inquirer/search@^3.0.12": + version "3.0.12" + resolved "https://registry.npmjs.org/@inquirer/search/-/search-3.0.12.tgz#e86f91ea598ccb39caf9a17762b839a9b950e16d" + integrity sha512-H/kDJA3kNlnNIjB8YsaXoQI0Qccgf0Na14K1h8ExWhNmUg2E941dyFPrZeugihEa9AZNW5NdsD/NcvUME83OPQ== + dependencies: + "@inquirer/core" "^10.1.10" + "@inquirer/figures" "^1.0.11" + "@inquirer/type" "^3.0.6" + yoctocolors-cjs "^2.1.2" + "@inquirer/select@1.1.3": version "1.1.3" resolved "https://registry.yarnpkg.com/@inquirer/select/-/select-1.1.3.tgz#7974d1beff6b87c981a9e25e1ef4cb237f03c1b2" @@ -1323,6 +1439,17 @@ chalk "^4.1.2" figures "^3.2.0" +"@inquirer/select@^4.1.1": + version "4.1.1" + resolved "https://registry.npmjs.org/@inquirer/select/-/select-4.1.1.tgz#0496b913514149171cf6351f0acb6d4243a39fdf" + integrity sha512-IUXzzTKVdiVNMA+2yUvPxWsSgOG4kfX93jOM4Zb5FgujeInotv5SPIJVeXQ+fO4xu7tW8VowFhdG5JRmmCyQ1Q== + dependencies: + "@inquirer/core" "^10.1.10" + "@inquirer/figures" "^1.0.11" + "@inquirer/type" "^3.0.6" + ansi-escapes "^4.3.2" + yoctocolors-cjs "^2.1.2" + "@inquirer/type@^1.0.3", "@inquirer/type@^1.0.5", "@inquirer/type@^1.1.1", "@inquirer/type@^1.1.6": version "1.5.3" resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-1.5.3.tgz#220ae9f3d5ae17dd3b2ce5ffd6b48c4a30c73181" @@ -1330,6 +1457,11 @@ dependencies: mute-stream "^1.0.0" +"@inquirer/type@^3.0.6": + version "3.0.6" + resolved "https://registry.npmjs.org/@inquirer/type/-/type-3.0.6.tgz#2500e435fc2014c5250eec3279f42b70b64089bd" + integrity sha512-/mKVCtVpyBu3IDarv0G+59KC4stsD5mDsGpYh+GKs1NZT88Jh52+cuoA1AtLk2Q0r/quNl+1cSUyLRHBFeD0XA== + "@isaacs/cliui@^8.0.2": version "8.0.2" resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" @@ -2522,6 +2654,14 @@ dependencies: "@types/unist" "*" +"@types/inquirer@^9.0.7": + version "9.0.7" + resolved "https://registry.npmjs.org/@types/inquirer/-/inquirer-9.0.7.tgz#61bb8d0e42f038b9a1738b08fba7fa98ad9b4b24" + integrity sha512-Q0zyBupO6NxGRZut/JdmqYKOnN95Eg5V8Csg3PGKkP+FnvsUZx1jAyK7fztIszxxMuoBA6E3KXWvdZVXIpx60g== + dependencies: + "@types/through" "*" + rxjs "^7.2.0" + "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": version "2.0.6" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" @@ -2668,6 +2808,13 @@ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== +"@types/through@*": + version "0.0.33" + resolved "https://registry.npmjs.org/@types/through/-/through-0.0.33.tgz#14ebf599320e1c7851e7d598149af183c6b9ea56" + integrity sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ== + dependencies: + "@types/node" "*" + "@types/unist@*": version "3.0.3" resolved "https://registry.yarnpkg.com/@types/unist/-/unist-3.0.3.tgz#acaab0f919ce69cce629c2d4ed2eb4adc1b6c20c" @@ -6340,6 +6487,19 @@ ini@^1.3.5: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== +inquirer@^12.5.2: + version "12.5.2" + resolved "https://registry.npmjs.org/inquirer/-/inquirer-12.5.2.tgz#8ef07eb4a9fee6c9f4ac701275308d3d30ae599c" + integrity sha512-qoDk/vdSTIaXNXAoNnlg7ubexpJfUo7t8GT2vylxvE49BrLhToFuPPdMViidG2boHV7+AcP1TCkJs/+PPoF2QQ== + dependencies: + "@inquirer/core" "^10.1.10" + "@inquirer/prompts" "^7.4.1" + "@inquirer/type" "^3.0.6" + ansi-escapes "^4.3.2" + mute-stream "^2.0.0" + run-async "^3.0.0" + rxjs "^7.8.2" + internal-slot@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" @@ -7755,6 +7915,11 @@ mute-stream@^1.0.0: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e" integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA== +mute-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz#a5446fc0c512b71c83c44d908d5c7b7b4c493b2b" + integrity sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA== + nan@^2.12.1: version "2.20.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.20.0.tgz#08c5ea813dd54ed16e5bd6505bf42af4f7838ca3" @@ -8703,6 +8868,13 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" +rxjs@^7.2.0, rxjs@^7.8.2: + version "7.8.2" + resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz#955bc473ed8af11a002a2be52071bf475638607b" + integrity sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA== + dependencies: + tslib "^2.1.0" + safe-array-concat@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb" @@ -9618,6 +9790,11 @@ tslib@^1.8.1, tslib@^1.9.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +tslib@^2.1.0: + version "2.8.1" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" + integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== + tsort@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/tsort/-/tsort-0.0.1.tgz#e2280f5e817f8bf4275657fd0f9aebd44f5a2786" @@ -10499,6 +10676,11 @@ yocto-queue@^0.1.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== +yoctocolors-cjs@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz#f4b905a840a37506813a7acaa28febe97767a242" + integrity sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA== + zod@3.22.4: version "3.22.4" resolved "https://registry.yarnpkg.com/zod/-/zod-3.22.4.tgz#f31c3a9386f61b1f228af56faa9255e845cf3fff" From 2f6a239986539fb0005e7a78f709c54a96dc5159 Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Fri, 18 Apr 2025 14:09:59 +0300 Subject: [PATCH 13/44] check pool exists --- packages/commands/src/pools/liquidity/add.ts | 43 ++++++++++++++------ 1 file changed, 31 insertions(+), 12 deletions(-) diff --git a/packages/commands/src/pools/liquidity/add.ts b/packages/commands/src/pools/liquidity/add.ts index 731d1b06..16013dfe 100644 --- a/packages/commands/src/pools/liquidity/add.ts +++ b/packages/commands/src/pools/liquidity/add.ts @@ -1,9 +1,11 @@ +import * as UniswapV3Factory from "@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json"; import * as NonfungiblePositionManager from "@uniswap/v3-periphery/artifacts/contracts/NonfungiblePositionManager.sol/NonfungiblePositionManager.json"; import { Command } from "commander"; import { Contract, ethers, JsonRpcProvider, Log, Wallet } from "ethers"; import inquirer from "inquirer"; import { + DEFAULT_FACTORY, DEFAULT_FEE, DEFAULT_POSITION_MANAGER, DEFAULT_RPC, @@ -67,23 +69,39 @@ const main = async (options: AddLiquidityOptions): Promise => { ); // Get token decimals and symbols - const [decimals0, decimals1, symbol0, symbol1]: [ - number, - number, - string, - string - ] = await Promise.all([ + const [decimals0, decimals1, symbol0, symbol1] = (await Promise.all([ token0Contract.decimals(), token1Contract.decimals(), token0Contract.symbol(), token1Contract.symbol(), - ]); + ])) as [number, number, string, string]; // Convert human-readable amounts to BigInt - const [amount0, amount1]: [bigint, bigint] = [ + const [amount0, amount1] = [ ethers.parseUnits(options.amounts[0], decimals0), ethers.parseUnits(options.amounts[1], decimals1), - ]; + ] as [bigint, bigint]; + + // Initialize factory contract to check if pool exists + const factory = new Contract( + DEFAULT_FACTORY, + UniswapV3Factory.abi, + provider + ); + + // Check if pool exists + const poolAddress = (await factory.getPool( + token0, + token1, + DEFAULT_FEE + )) as string; + if (poolAddress === ethers.ZeroAddress) { + throw new Error( + `No pool exists for token pair ${symbol0}/${symbol1} with fee ${ + DEFAULT_FEE / 10000 + }%` + ); + } // Use signer's address as recipient if not provided const recipient = options.recipient ?? (await signer.getAddress()); @@ -96,18 +114,19 @@ const main = async (options: AddLiquidityOptions): Promise => { console.log("\nTransaction Details:"); console.log(`Token0 (${symbol0}): ${options.amounts[0]} (${token0})`); console.log(`Token1 (${symbol1}): ${options.amounts[1]} (${token1})`); + console.log(`Pool Address: ${poolAddress}`); console.log(`Recipient: ${recipient}`); console.log(`Tick Range: [${tickLower}, ${tickUpper}]`); console.log(`Fee: ${DEFAULT_FEE / 10000}%`); - const { confirm } = await inquirer.prompt([ + const { confirm } = (await inquirer.prompt([ { default: false, message: "Do you want to proceed with the transaction?", name: "confirm", type: "confirm", }, - ]); + ])) as { confirm: boolean }; if (!confirm) { console.log("Transaction cancelled by user"); @@ -206,7 +225,7 @@ const main = async (options: AddLiquidityOptions): Promise => { } catch (error) { console.error("\nFailed to add liquidity:"); console.error( - "Error message:", + "Error:", error instanceof Error ? error.message : String(error) ); process.exit(1); From f49f22205c5dfa5c39c2e66083a85a88e82f51c2 Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Fri, 18 Apr 2025 14:10:25 +0300 Subject: [PATCH 14/44] check pool exists --- packages/commands/src/pools/liquidity/add.ts | 39 +++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/packages/commands/src/pools/liquidity/add.ts b/packages/commands/src/pools/liquidity/add.ts index 16013dfe..18a5f147 100644 --- a/packages/commands/src/pools/liquidity/add.ts +++ b/packages/commands/src/pools/liquidity/add.ts @@ -103,8 +103,42 @@ const main = async (options: AddLiquidityOptions): Promise => { ); } + // Check token balances + const token0ContractForBalance = new Contract( + token0, + ["function balanceOf(address) view returns (uint256)"], + provider + ); + const token1ContractForBalance = new Contract( + token1, + ["function balanceOf(address) view returns (uint256)"], + provider + ); + + const signerAddress = await signer.getAddress(); + const [balance0, balance1] = (await Promise.all([ + token0ContractForBalance.balanceOf(signerAddress), + token1ContractForBalance.balanceOf(signerAddress), + ])) as [bigint, bigint]; + + if (balance0 < amount0) { + throw new Error( + `Insufficient ${symbol0} balance. Required: ${ + options.amounts[0] + }, Available: ${ethers.formatUnits(balance0, decimals0)}` + ); + } + + if (balance1 < amount1) { + throw new Error( + `Insufficient ${symbol1} balance. Required: ${ + options.amounts[1] + }, Available: ${ethers.formatUnits(balance1, decimals1)}` + ); + } + // Use signer's address as recipient if not provided - const recipient = options.recipient ?? (await signer.getAddress()); + const recipient = options.recipient ?? signerAddress; // Set default tick range if not provided const tickLower = options.tickLower ?? -887220; @@ -118,6 +152,9 @@ const main = async (options: AddLiquidityOptions): Promise => { console.log(`Recipient: ${recipient}`); console.log(`Tick Range: [${tickLower}, ${tickUpper}]`); console.log(`Fee: ${DEFAULT_FEE / 10000}%`); + console.log("\nBalances:"); + console.log(`${symbol0}: ${ethers.formatUnits(balance0, decimals0)}`); + console.log(`${symbol1}: ${ethers.formatUnits(balance1, decimals1)}`); const { confirm } = (await inquirer.prompt([ { From 28cad957bc8d70612aba5fed5d8652eddb252ced Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Fri, 18 Apr 2025 14:11:51 +0300 Subject: [PATCH 15/44] balances --- packages/commands/src/pools/liquidity/add.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/commands/src/pools/liquidity/add.ts b/packages/commands/src/pools/liquidity/add.ts index 18a5f147..87264077 100644 --- a/packages/commands/src/pools/liquidity/add.ts +++ b/packages/commands/src/pools/liquidity/add.ts @@ -152,9 +152,6 @@ const main = async (options: AddLiquidityOptions): Promise => { console.log(`Recipient: ${recipient}`); console.log(`Tick Range: [${tickLower}, ${tickUpper}]`); console.log(`Fee: ${DEFAULT_FEE / 10000}%`); - console.log("\nBalances:"); - console.log(`${symbol0}: ${ethers.formatUnits(balance0, decimals0)}`); - console.log(`${symbol1}: ${ethers.formatUnits(balance1, decimals1)}`); const { confirm } = (await inquirer.prompt([ { From c6bfb859f34981cddd66469a5780c42971e5f6c3 Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Fri, 18 Apr 2025 14:19:08 +0300 Subject: [PATCH 16/44] zod --- packages/commands/src/index.ts | 2 +- packages/commands/src/pools/create.ts | 39 ++++----- packages/commands/src/pools/deploy.ts | 31 ++++---- packages/commands/src/pools/liquidity/add.ts | 68 +++++++--------- packages/commands/src/pools/show.ts | 44 ++++------ types/pools.ts | 84 ++++++++++++++++++++ 6 files changed, 161 insertions(+), 107 deletions(-) create mode 100644 types/pools.ts diff --git a/packages/commands/src/index.ts b/packages/commands/src/index.ts index a1faeb13..2c9737bc 100644 --- a/packages/commands/src/index.ts +++ b/packages/commands/src/index.ts @@ -1,7 +1,7 @@ import { Command } from "commander"; -import { poolsCommand } from "./pools/"; import { accountsCommand } from "./accounts"; +import { poolsCommand } from "./pools/"; import { solanaEncodeCommand } from "./solanaEncode"; export const toolkitCommand = new Command("toolkit") diff --git a/packages/commands/src/pools/create.ts b/packages/commands/src/pools/create.ts index 905bf9a9..4b1dad40 100644 --- a/packages/commands/src/pools/create.ts +++ b/packages/commands/src/pools/create.ts @@ -3,30 +3,25 @@ import * as UniswapV3Pool from "@uniswap/v3-core/artifacts/contracts/UniswapV3Po import { Command } from "commander"; import { Contract, ethers, JsonRpcProvider, Wallet } from "ethers"; +import { + type CreatePoolOptions, + createPoolOptionsSchema, + PoolCreationError, +} from "../../../../types/pools"; import { DEFAULT_FACTORY, DEFAULT_FEE, DEFAULT_RPC } from "./constants"; -interface CreatePoolOptions { - factory: string; - fee?: number; - privateKey: string; - rpc: string; - tokens: string[]; -} - -interface PoolCreationError extends Error { - receipt?: ethers.TransactionReceipt; - transaction?: ethers.TransactionResponse; -} - const main = async (options: CreatePoolOptions): Promise => { try { - if (options.tokens.length !== 2) { + // Validate options + const validatedOptions = createPoolOptionsSchema.parse(options); + + if (validatedOptions.tokens.length !== 2) { throw new Error("Exactly 2 token addresses must be provided"); } // Initialize provider and signer - const provider = new JsonRpcProvider(options.rpc); - const signer = new Wallet(options.privateKey, provider); + const provider = new JsonRpcProvider(validatedOptions.rpc); + const signer = new Wallet(validatedOptions.privateKey, provider); console.log("Creating Uniswap V3 pool..."); console.log("Signer address:", await signer.getAddress()); @@ -38,17 +33,17 @@ const main = async (options: CreatePoolOptions): Promise => { // Initialize factory contract const uniswapV3FactoryInstance = new Contract( - options.factory, + validatedOptions.factory, UniswapV3Factory.abi, signer ); // Create the pool console.log("\nCreating pool..."); - const fee = options.fee || 3000; // Default to 0.3% fee tier + const fee = validatedOptions.fee; const createPoolTx = (await uniswapV3FactoryInstance.createPool( - options.tokens[0], - options.tokens[1], + validatedOptions.tokens[0], + validatedOptions.tokens[1], fee )) as ethers.TransactionResponse; console.log("Pool creation transaction hash:", createPoolTx.hash); @@ -56,8 +51,8 @@ const main = async (options: CreatePoolOptions): Promise => { // Get the pool address const poolAddress = (await uniswapV3FactoryInstance.getPool( - options.tokens[0], - options.tokens[1], + validatedOptions.tokens[0], + validatedOptions.tokens[1], fee )) as string; console.log("Pool deployed at:", poolAddress); diff --git a/packages/commands/src/pools/deploy.ts b/packages/commands/src/pools/deploy.ts index 5f5ba9ae..635f336f 100644 --- a/packages/commands/src/pools/deploy.ts +++ b/packages/commands/src/pools/deploy.ts @@ -4,19 +4,13 @@ import * as SwapRouter from "@uniswap/v3-periphery/artifacts/contracts/SwapRoute import { Command } from "commander"; import { ContractFactory, ethers, JsonRpcProvider, Wallet } from "ethers"; +import { + DeploymentError, + type DeployOptions, + deployOptionsSchema, +} from "../../../../types/pools"; import { DEFAULT_RPC, DEFAULT_WZETA } from "./constants"; -interface DeployOptions { - privateKey: string; - rpc: string; - wzeta: string; -} - -interface DeploymentError extends Error { - receipt?: ethers.TransactionReceipt; - transaction?: ethers.TransactionResponse; -} - const deployOpts = { gasLimit: 8000000, }; @@ -40,9 +34,12 @@ const estimateGas = async ( const main = async (options: DeployOptions): Promise => { try { + // Validate options + const validatedOptions = deployOptionsSchema.parse(options); + // Initialize provider and signer - const provider = new JsonRpcProvider(options.rpc); - const signer = new Wallet(options.privateKey, provider); + const provider = new JsonRpcProvider(validatedOptions.rpc); + const signer = new Wallet(validatedOptions.privateKey, provider); console.log("Deploying Uniswap V3 contracts..."); console.log("Deployer address:", await signer.getAddress()); @@ -92,7 +89,7 @@ const main = async (options: DeployOptions): Promise => { // Estimate gas for router deployment const routerGasEstimate = await estimateGas(swapRouter, [ await uniswapV3FactoryInstance.getAddress(), - options.wzeta, + validatedOptions.wzeta, ]); if (routerGasEstimate) { deployOpts.gasLimit = Number(routerGasEstimate * 2n); @@ -102,7 +99,7 @@ const main = async (options: DeployOptions): Promise => { const swapRouterInstance = await swapRouter.deploy( await uniswapV3FactoryInstance.getAddress(), - options.wzeta, + validatedOptions.wzeta, deployOpts ); console.log( @@ -129,7 +126,7 @@ const main = async (options: DeployOptions): Promise => { nonfungiblePositionManager, [ await uniswapV3FactoryInstance.getAddress(), - options.wzeta, + validatedOptions.wzeta, await swapRouterInstance.getAddress(), ] ); @@ -142,7 +139,7 @@ const main = async (options: DeployOptions): Promise => { const nonfungiblePositionManagerInstance = await nonfungiblePositionManager.deploy( await uniswapV3FactoryInstance.getAddress(), - options.wzeta, + validatedOptions.wzeta, await swapRouterInstance.getAddress(), deployOpts ); diff --git a/packages/commands/src/pools/liquidity/add.ts b/packages/commands/src/pools/liquidity/add.ts index 87264077..102a0da8 100644 --- a/packages/commands/src/pools/liquidity/add.ts +++ b/packages/commands/src/pools/liquidity/add.ts @@ -4,6 +4,11 @@ import { Command } from "commander"; import { Contract, ethers, JsonRpcProvider, Log, Wallet } from "ethers"; import inquirer from "inquirer"; +import { + type AddLiquidityOptions, + addLiquidityOptionsSchema, + MintParams, +} from "../../../../../types/pools"; import { DEFAULT_FACTORY, DEFAULT_FEE, @@ -11,43 +16,22 @@ import { DEFAULT_RPC, } from "../constants"; -interface AddLiquidityOptions { - amounts: string[]; - privateKey: string; - recipient?: string; - rpc: string; - tickLower?: number; - tickUpper?: number; - tokens: string[]; -} - -interface MintParams { - amount0Desired: bigint; - amount0Min: bigint; - amount1Desired: bigint; - amount1Min: bigint; - deadline: number; - fee: number; - recipient: string; - tickLower: number; - tickUpper: number; - token0: string; - token1: string; -} - const main = async (options: AddLiquidityOptions): Promise => { try { + // Validate options + const validatedOptions = addLiquidityOptionsSchema.parse(options); + // Initialize provider and signer - const provider = new JsonRpcProvider(options.rpc); - const signer = new Wallet(options.privateKey, provider); + const provider = new JsonRpcProvider(validatedOptions.rpc); + const signer = new Wallet(validatedOptions.privateKey, provider); // Get token addresses - if (options.tokens.length !== 2) { + if (validatedOptions.tokens.length !== 2) { throw new Error("Exactly 2 token addresses must be provided"); } const [token0, token1]: [string, string] = [ - options.tokens[0], - options.tokens[1], + validatedOptions.tokens[0], + validatedOptions.tokens[1], ]; // Initialize token contracts to get decimals and symbols @@ -78,8 +62,8 @@ const main = async (options: AddLiquidityOptions): Promise => { // Convert human-readable amounts to BigInt const [amount0, amount1] = [ - ethers.parseUnits(options.amounts[0], decimals0), - ethers.parseUnits(options.amounts[1], decimals1), + ethers.parseUnits(validatedOptions.amounts[0], decimals0), + ethers.parseUnits(validatedOptions.amounts[1], decimals1), ] as [bigint, bigint]; // Initialize factory contract to check if pool exists @@ -124,7 +108,7 @@ const main = async (options: AddLiquidityOptions): Promise => { if (balance0 < amount0) { throw new Error( `Insufficient ${symbol0} balance. Required: ${ - options.amounts[0] + validatedOptions.amounts[0] }, Available: ${ethers.formatUnits(balance0, decimals0)}` ); } @@ -132,22 +116,26 @@ const main = async (options: AddLiquidityOptions): Promise => { if (balance1 < amount1) { throw new Error( `Insufficient ${symbol1} balance. Required: ${ - options.amounts[1] + validatedOptions.amounts[1] }, Available: ${ethers.formatUnits(balance1, decimals1)}` ); } // Use signer's address as recipient if not provided - const recipient = options.recipient ?? signerAddress; + const recipient = validatedOptions.recipient ?? signerAddress; // Set default tick range if not provided - const tickLower = options.tickLower ?? -887220; - const tickUpper = options.tickUpper ?? 887220; + const tickLower = validatedOptions.tickLower ?? -887220; + const tickUpper = validatedOptions.tickUpper ?? 887220; // Show transaction details and get confirmation console.log("\nTransaction Details:"); - console.log(`Token0 (${symbol0}): ${options.amounts[0]} (${token0})`); - console.log(`Token1 (${symbol1}): ${options.amounts[1]} (${token1})`); + console.log( + `Token0 (${symbol0}): ${validatedOptions.amounts[0]} (${token0})` + ); + console.log( + `Token1 (${symbol1}): ${validatedOptions.amounts[1]} (${token1})` + ); console.log(`Pool Address: ${poolAddress}`); console.log(`Recipient: ${recipient}`); console.log(`Tick Range: [${tickLower}, ${tickUpper}]`); @@ -254,8 +242,8 @@ const main = async (options: AddLiquidityOptions): Promise => { console.log("Recipient Address:", recipient); console.log("Token 0 Address:", token0); console.log("Token 1 Address:", token1); - console.log("Amount0:", options.amounts[0]); - console.log("Amount1:", options.amounts[1]); + console.log("Amount0:", validatedOptions.amounts[0]); + console.log("Amount1:", validatedOptions.amounts[1]); } catch (error) { console.error("\nFailed to add liquidity:"); console.error( diff --git a/packages/commands/src/pools/show.ts b/packages/commands/src/pools/show.ts index 881b9694..6c0b428c 100644 --- a/packages/commands/src/pools/show.ts +++ b/packages/commands/src/pools/show.ts @@ -3,50 +3,40 @@ import * as UniswapV3Pool from "@uniswap/v3-core/artifacts/contracts/UniswapV3Po import { Command, Option } from "commander"; import { Contract, ethers, JsonRpcProvider } from "ethers"; +import { + type ShowPoolOptions, + showPoolOptionsSchema, + Slot0Result, +} from "../../../../types/pools"; import { DEFAULT_FACTORY, DEFAULT_FEE, DEFAULT_RPC } from "./constants"; -interface ShowPoolOptions { - factory?: string; - fee?: number; - pool?: string; - rpc: string; - tokens?: string[]; -} - -interface Slot0Result { - feeProtocol: number; - observationCardinality: number; - observationCardinalityNext: number; - observationIndex: number; - sqrtPriceX96: bigint; - tick: number; - unlocked: boolean; -} - const main = async (options: ShowPoolOptions): Promise => { try { + // Validate options + const validatedOptions = showPoolOptionsSchema.parse(options); + // Initialize provider - const provider = new JsonRpcProvider(options.rpc); + const provider = new JsonRpcProvider(validatedOptions.rpc); let poolAddress: string; - if (options.pool) { - poolAddress = options.pool; - } else if (options.tokens) { - if (options.tokens.length !== 2) { + if (validatedOptions.pool) { + poolAddress = validatedOptions.pool; + } else if (validatedOptions.tokens) { + if (validatedOptions.tokens.length !== 2) { throw new Error("Exactly 2 token addresses must be provided"); } // Initialize factory contract const factory = new Contract( - options.factory ?? DEFAULT_FACTORY, + validatedOptions.factory, UniswapV3Factory.abi, provider ); // Get pool address from factory - const fee = options.fee ?? 3000; // Default to 0.3% fee tier + const fee = validatedOptions.fee; poolAddress = (await factory.getPool( - options.tokens[0], - options.tokens[1], + validatedOptions.tokens[0], + validatedOptions.tokens[1], fee )) as string; diff --git a/types/pools.ts b/types/pools.ts new file mode 100644 index 00000000..6a50d78a --- /dev/null +++ b/types/pools.ts @@ -0,0 +1,84 @@ +import { ethers } from "ethers"; +import { z } from "zod"; + +import { + DEFAULT_FACTORY, + DEFAULT_FEE, + DEFAULT_RPC, + DEFAULT_WZETA, +} from "../packages/commands/src/pools/constants"; + +export interface MintParams { + amount0Desired: bigint; + amount0Min: bigint; + amount1Desired: bigint; + amount1Min: bigint; + deadline: number; + fee: number; + recipient: string; + tickLower: number; + tickUpper: number; + token0: string; + token1: string; +} + +export interface PoolCreationError extends Error { + receipt?: ethers.TransactionReceipt; + transaction?: ethers.TransactionResponse; +} + +export interface DeploymentError extends Error { + receipt?: ethers.TransactionReceipt; + transaction?: ethers.TransactionResponse; +} + +export interface Slot0Result { + feeProtocol: number; + observationCardinality: number; + observationCardinalityNext: number; + observationIndex: number; + sqrtPriceX96: bigint; + tick: number; + unlocked: boolean; +} + +export const evmAddressSchema = z + .string() + .refine((val) => ethers.isAddress(val), "Must be a valid EVM address"); + +export const showPoolOptionsSchema = z.object({ + factory: z.string().default(DEFAULT_FACTORY), + fee: z.number().default(DEFAULT_FEE), + pool: z.string().optional(), + rpc: z.string().default(DEFAULT_RPC), + tokens: z.array(z.string()).optional(), +}); + +export const addLiquidityOptionsSchema = z.object({ + amounts: z.array(z.string()).min(2).max(2), + privateKey: z.string(), + recipient: z.string().optional(), + rpc: z.string().default(DEFAULT_RPC), + tickLower: z.number().optional(), + tickUpper: z.number().optional(), + tokens: z.array(z.string()).min(2).max(2), +}); + +export const createPoolOptionsSchema = z.object({ + factory: z.string().default(DEFAULT_FACTORY), + fee: z.number().default(DEFAULT_FEE), + privateKey: z.string(), + rpc: z.string().default(DEFAULT_RPC), + tokens: z.array(z.string()).min(2).max(2), +}); + +export const deployOptionsSchema = z.object({ + privateKey: z.string(), + rpc: z.string().default(DEFAULT_RPC), + wzeta: z.string().default(DEFAULT_WZETA), +}); + +export type ShowPoolOptions = z.infer; +export type AddLiquidityOptions = z.infer; +export type CreatePoolOptions = z.infer; +export type DeployOptions = z.infer; From d16debfcd12323110074ed865061c4698c9f29b1 Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Fri, 18 Apr 2025 17:15:34 +0300 Subject: [PATCH 17/44] remove duplicate cmd --- packages/commands/src/index.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/commands/src/index.ts b/packages/commands/src/index.ts index 2c9737bc..0243bd14 100644 --- a/packages/commands/src/index.ts +++ b/packages/commands/src/index.ts @@ -11,5 +11,4 @@ export const toolkitCommand = new Command("toolkit") toolkitCommand .addCommand(solanaEncodeCommand) .addCommand(poolsCommand) - .addCommand(solanaEncodeCommand) .addCommand(accountsCommand); From b15c2dbd373c2209b113ed7c26192ab46a4d9dd0 Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Fri, 18 Apr 2025 17:19:42 +0300 Subject: [PATCH 18/44] custom price --- packages/commands/src/pools/create.ts | 16 +++++++++++++++- types/pools.ts | 5 +++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/packages/commands/src/pools/create.ts b/packages/commands/src/pools/create.ts index 4b1dad40..4b6c87e0 100644 --- a/packages/commands/src/pools/create.ts +++ b/packages/commands/src/pools/create.ts @@ -59,7 +59,20 @@ const main = async (options: CreatePoolOptions): Promise => { // Initialize the pool const pool = new Contract(poolAddress, UniswapV3Pool.abi, signer); - const sqrtPriceX96 = ethers.toBigInt("79228162514264337593543950336"); // sqrt(1) * 2^96 + + // Default sqrt price represents 1:1 ratio + let sqrtPriceX96 = ethers.toBigInt("79228162514264337593543950336"); // sqrt(1) * 2^96 + + // If initial price was provided, calculate the sqrtPriceX96 + if (validatedOptions.initialPrice) { + const price = parseFloat(validatedOptions.initialPrice); + if (price <= 0) + throw new Error("Initial price must be greater than zero"); + sqrtPriceX96 = ethers.toBigInt( + Math.floor(Math.sqrt(price) * 2 ** 96).toString() + ); + } + const initTx = (await pool.initialize( sqrtPriceX96 )) as ethers.TransactionResponse; @@ -103,4 +116,5 @@ export const createCommand = new Command("create") "Fee tier for the pool (3000 = 0.3%)", DEFAULT_FEE.toString() ) + .option("--initial-price ", "Initial price for the pool") .action(main); diff --git a/types/pools.ts b/types/pools.ts index 6a50d78a..c589e508 100644 --- a/types/pools.ts +++ b/types/pools.ts @@ -66,10 +66,11 @@ export const addLiquidityOptionsSchema = z.object({ export const createPoolOptionsSchema = z.object({ factory: z.string().default(DEFAULT_FACTORY), - fee: z.number().default(DEFAULT_FEE), + fee: z.string().default(DEFAULT_FEE.toString()), + initialPrice: z.string().optional(), privateKey: z.string(), rpc: z.string().default(DEFAULT_RPC), - tokens: z.array(z.string()).min(2).max(2), + tokens: z.array(evmAddressSchema).length(2), }); export const deployOptionsSchema = z.object({ From 27a00620023fe7f912b04cf490602f03a5310c71 Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Fri, 18 Apr 2025 18:00:13 +0300 Subject: [PATCH 19/44] refactor --- packages/commands/src/pools/liquidity/add.ts | 9 +++++++++ types/pools.ts | 10 ++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/packages/commands/src/pools/liquidity/add.ts b/packages/commands/src/pools/liquidity/add.ts index 102a0da8..01562549 100644 --- a/packages/commands/src/pools/liquidity/add.ts +++ b/packages/commands/src/pools/liquidity/add.ts @@ -217,7 +217,16 @@ const main = async (options: AddLiquidityOptions): Promise => { // Parse transaction receipt to get token ID const iface = positionManager.interface; + const positionManagerAddress = ethers.getAddress( + String(positionManager.target) + ); const transferEvent = receipt.logs + .filter((log: Log) => { + // Only try to parse logs from the position manager contract + return ( + ethers.getAddress(log.address.toString()) === positionManagerAddress + ); + }) .map((log: Log) => { try { return iface.parseLog({ diff --git a/types/pools.ts b/types/pools.ts index c589e508..71c1a84f 100644 --- a/types/pools.ts +++ b/types/pools.ts @@ -59,8 +59,14 @@ export const addLiquidityOptionsSchema = z.object({ privateKey: z.string(), recipient: z.string().optional(), rpc: z.string().default(DEFAULT_RPC), - tickLower: z.number().optional(), - tickUpper: z.number().optional(), + tickLower: z + .string() + .transform((val) => Number(val)) + .optional(), + tickUpper: z + .string() + .transform((val) => Number(val)) + .optional(), tokens: z.array(z.string()).min(2).max(2), }); From 0234c46f4c5551407377a91a7d53e530c4af7e8a Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Fri, 18 Apr 2025 18:04:41 +0300 Subject: [PATCH 20/44] fix show --- types/pools.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/types/pools.ts b/types/pools.ts index 71c1a84f..000ca274 100644 --- a/types/pools.ts +++ b/types/pools.ts @@ -48,7 +48,10 @@ export const evmAddressSchema = z export const showPoolOptionsSchema = z.object({ factory: z.string().default(DEFAULT_FACTORY), - fee: z.number().default(DEFAULT_FEE), + fee: z + .string() + .transform((val) => Number(val)) + .default(DEFAULT_FEE.toString()), pool: z.string().optional(), rpc: z.string().default(DEFAULT_RPC), tokens: z.array(z.string()).optional(), From 6f1553bd0640ef87fe8b3940635de25794ca9f4a Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Mon, 5 May 2025 15:54:38 +0300 Subject: [PATCH 21/44] price --- packages/commands/src/pools/create.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/commands/src/pools/create.ts b/packages/commands/src/pools/create.ts index 4b6c87e0..20564046 100644 --- a/packages/commands/src/pools/create.ts +++ b/packages/commands/src/pools/create.ts @@ -65,12 +65,12 @@ const main = async (options: CreatePoolOptions): Promise => { // If initial price was provided, calculate the sqrtPriceX96 if (validatedOptions.initialPrice) { - const price = parseFloat(validatedOptions.initialPrice); - if (price <= 0) - throw new Error("Initial price must be greater than zero"); - sqrtPriceX96 = ethers.toBigInt( - Math.floor(Math.sqrt(price) * 2 ** 96).toString() - ); + const price = Number(validatedOptions.initialPrice); + if (isNaN(price) || price <= 0) + throw new Error("Initial price must be a positive number"); + + const sqrtPrice = Math.sqrt(price); + sqrtPriceX96 = BigInt(Math.floor(sqrtPrice * 2 ** 96)); } const initTx = (await pool.initialize( From 2985c00318f98e50065a098b0a3211a63bd24cad Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Mon, 5 May 2025 15:56:37 +0300 Subject: [PATCH 22/44] updated factory --- packages/commands/src/pools/constants.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/commands/src/pools/constants.ts b/packages/commands/src/pools/constants.ts index 41d7203c..03e06488 100644 --- a/packages/commands/src/pools/constants.ts +++ b/packages/commands/src/pools/constants.ts @@ -1,7 +1,7 @@ export const DEFAULT_RPC = "https://zetachain-athens.g.allthatnode.com/archive/evm"; -export const DEFAULT_FACTORY = "0x7E032E349853178C233a2560d9Ea434ac82228e0"; +export const DEFAULT_FACTORY = "0xdE7BecC9e313Ef0fD684A2826d5C506Ae75644Df"; export const DEFAULT_WZETA = "0x5F0b1a82749cb4E2278EC87F8BF6B618dC71a8bf"; export const DEFAULT_FEE = 3000; // 0.3% export const DEFAULT_POSITION_MANAGER = - "0xFc5D90f650cf46Cecf96C66a4993f97D2a49f93B"; + "0xB497bdD833f1395AB8cF50591Bd313d607465d70"; From e09172a678572cca573bd444f1c530aa712ed112 Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Mon, 5 May 2025 18:39:45 +0300 Subject: [PATCH 23/44] update constants --- packages/commands/src/pools/constants.ts | 4 ++-- packages/commands/src/pools/liquidity/add.ts | 16 +++++++++++----- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/packages/commands/src/pools/constants.ts b/packages/commands/src/pools/constants.ts index 03e06488..60af0d5b 100644 --- a/packages/commands/src/pools/constants.ts +++ b/packages/commands/src/pools/constants.ts @@ -1,7 +1,7 @@ export const DEFAULT_RPC = "https://zetachain-athens.g.allthatnode.com/archive/evm"; -export const DEFAULT_FACTORY = "0xdE7BecC9e313Ef0fD684A2826d5C506Ae75644Df"; +export const DEFAULT_FACTORY = "0xFd7416c0B1e397514C7a5fAE6750E19025ecC349"; export const DEFAULT_WZETA = "0x5F0b1a82749cb4E2278EC87F8BF6B618dC71a8bf"; export const DEFAULT_FEE = 3000; // 0.3% export const DEFAULT_POSITION_MANAGER = - "0xB497bdD833f1395AB8cF50591Bd313d607465d70"; + "0x125C5598D6EFA41D9736cC868a0923435F66A3D0"; diff --git a/packages/commands/src/pools/liquidity/add.ts b/packages/commands/src/pools/liquidity/add.ts index 01562549..6b394169 100644 --- a/packages/commands/src/pools/liquidity/add.ts +++ b/packages/commands/src/pools/liquidity/add.ts @@ -14,6 +14,7 @@ import { DEFAULT_FEE, DEFAULT_POSITION_MANAGER, DEFAULT_RPC, + DEFAULT_WZETA, } from "../constants"; const main = async (options: AddLiquidityOptions): Promise => { @@ -60,11 +61,8 @@ const main = async (options: AddLiquidityOptions): Promise => { token1Contract.symbol(), ])) as [number, number, string, string]; - // Convert human-readable amounts to BigInt - const [amount0, amount1] = [ - ethers.parseUnits(validatedOptions.amounts[0], decimals0), - ethers.parseUnits(validatedOptions.amounts[1], decimals1), - ] as [bigint, bigint]; + const amount0 = ethers.parseUnits(validatedOptions.amounts[0], decimals0); + const amount1 = ethers.parseUnits(validatedOptions.amounts[1], decimals1); // Initialize factory contract to check if pool exists const factory = new Contract( @@ -204,6 +202,14 @@ const main = async (options: AddLiquidityOptions): Promise => { token1, }; + console.log("\nMint parameters:"); + console.log("token0:", token0); + console.log("token1:", token1); + console.log("amount0Desired:", amount0.toString()); + console.log("amount1Desired:", amount1.toString()); + console.log("tickLower:", tickLower); + console.log("tickUpper:", tickUpper); + // Send transaction console.log("\nAdding liquidity..."); const tx = (await positionManager.mint( From 1aa83e7f1bd5b07662827564e922611451377a4a Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Mon, 5 May 2025 19:07:59 +0300 Subject: [PATCH 24/44] wip --- packages/commands/src/pools/create.ts | 35 ++++++++++++++------------- types/pools.ts | 2 +- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/packages/commands/src/pools/create.ts b/packages/commands/src/pools/create.ts index 20564046..3741769e 100644 --- a/packages/commands/src/pools/create.ts +++ b/packages/commands/src/pools/create.ts @@ -12,13 +12,21 @@ import { DEFAULT_FACTORY, DEFAULT_FEE, DEFAULT_RPC } from "./constants"; const main = async (options: CreatePoolOptions): Promise => { try { - // Validate options const validatedOptions = createPoolOptionsSchema.parse(options); if (validatedOptions.tokens.length !== 2) { throw new Error("Exactly 2 token addresses must be provided"); } + if (!validatedOptions.prices || validatedOptions.prices.length !== 2) { + throw new Error("Exactly 2 prices must be provided using --prices"); + } + + const [price0, price1] = validatedOptions.prices.map(Number); + if (price0 <= 0 || price1 <= 0 || isNaN(price0) || isNaN(price1)) { + throw new Error("Both prices must be valid positive numbers"); + } + // Initialize provider and signer const provider = new JsonRpcProvider(validatedOptions.rpc); const signer = new Wallet(validatedOptions.privateKey, provider); @@ -60,22 +68,12 @@ const main = async (options: CreatePoolOptions): Promise => { // Initialize the pool const pool = new Contract(poolAddress, UniswapV3Pool.abi, signer); - // Default sqrt price represents 1:1 ratio - let sqrtPriceX96 = ethers.toBigInt("79228162514264337593543950336"); // sqrt(1) * 2^96 - - // If initial price was provided, calculate the sqrtPriceX96 - if (validatedOptions.initialPrice) { - const price = Number(validatedOptions.initialPrice); - if (isNaN(price) || price <= 0) - throw new Error("Initial price must be a positive number"); + // Calculate sqrtPriceX96 from USD prices + const initialPrice = price1 / price0; + const sqrtPrice = Math.sqrt(initialPrice); + const sqrtPriceX96 = BigInt(Math.floor(sqrtPrice * 2 ** 96)); - const sqrtPrice = Math.sqrt(price); - sqrtPriceX96 = BigInt(Math.floor(sqrtPrice * 2 ** 96)); - } - - const initTx = (await pool.initialize( - sqrtPriceX96 - )) as ethers.TransactionResponse; + const initTx = (await pool.initialize(sqrtPriceX96)) as ethers.TransactionResponse; console.log("Pool initialization transaction hash:", initTx.hash); await initTx.wait(); @@ -116,5 +114,8 @@ export const createCommand = new Command("create") "Fee tier for the pool (3000 = 0.3%)", DEFAULT_FEE.toString() ) - .option("--initial-price ", "Initial price for the pool") + .requiredOption( + "--prices ", + "USD prices of the two tokens in the same order as --tokens" + ) .action(main); diff --git a/types/pools.ts b/types/pools.ts index 000ca274..86eb8878 100644 --- a/types/pools.ts +++ b/types/pools.ts @@ -76,7 +76,7 @@ export const addLiquidityOptionsSchema = z.object({ export const createPoolOptionsSchema = z.object({ factory: z.string().default(DEFAULT_FACTORY), fee: z.string().default(DEFAULT_FEE.toString()), - initialPrice: z.string().optional(), + prices: z.array(z.string()).length(2), privateKey: z.string(), rpc: z.string().default(DEFAULT_RPC), tokens: z.array(evmAddressSchema).length(2), From 653ad1f027282a5cc3d827868037957ee0bfbef8 Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Mon, 7 Jul 2025 09:24:25 +0300 Subject: [PATCH 25/44] lint --- packages/commands/src/pools/create.ts | 4 +++- packages/commands/src/pools/liquidity/add.ts | 1 - 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/commands/src/pools/create.ts b/packages/commands/src/pools/create.ts index 3741769e..c492df43 100644 --- a/packages/commands/src/pools/create.ts +++ b/packages/commands/src/pools/create.ts @@ -73,7 +73,9 @@ const main = async (options: CreatePoolOptions): Promise => { const sqrtPrice = Math.sqrt(initialPrice); const sqrtPriceX96 = BigInt(Math.floor(sqrtPrice * 2 ** 96)); - const initTx = (await pool.initialize(sqrtPriceX96)) as ethers.TransactionResponse; + const initTx = (await pool.initialize( + sqrtPriceX96 + )) as ethers.TransactionResponse; console.log("Pool initialization transaction hash:", initTx.hash); await initTx.wait(); diff --git a/packages/commands/src/pools/liquidity/add.ts b/packages/commands/src/pools/liquidity/add.ts index 6b394169..ae445756 100644 --- a/packages/commands/src/pools/liquidity/add.ts +++ b/packages/commands/src/pools/liquidity/add.ts @@ -14,7 +14,6 @@ import { DEFAULT_FEE, DEFAULT_POSITION_MANAGER, DEFAULT_RPC, - DEFAULT_WZETA, } from "../constants"; const main = async (options: AddLiquidityOptions): Promise => { From cfea79da7f9b5bddcb9c6d74a48fce373c8caeaf Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Mon, 7 Jul 2025 09:26:10 +0300 Subject: [PATCH 26/44] node 22 --- .github/workflows/build.yaml | 2 +- .github/workflows/lint.yaml | 2 +- .github/workflows/publish-npm.yaml | 2 +- .github/workflows/test.yaml | 2 +- .../access/AccessControlUpgradeable.ts | 359 - .../contracts-upgradeable/access/index.ts | 4 - .../contracts-upgradeable/index.ts | 9 - .../contracts-upgradeable/proxy/index.ts | 5 - .../proxy/utils/Initializable.ts | 105 - .../proxy/utils/UUPSUpgradeable.ts | 196 - .../proxy/utils/index.ts | 5 - .../utils/ContextUpgradeable.ts | 105 - .../utils/PausableUpgradeable.ts | 183 - .../utils/ReentrancyGuardUpgradeable.ts | 105 - .../contracts-upgradeable/utils/index.ts | 8 - .../utils/introspection/ERC165Upgradeable.ts | 130 - .../utils/introspection/index.ts | 4 - .../contracts/access/IAccessControl.ts | 292 - .../@openzeppelin/contracts/access/index.ts | 4 - .../@openzeppelin/contracts/index.ts | 13 - .../contracts/interfaces/IERC1363.ts | 412 - .../contracts/interfaces/IERC1967.ts | 168 - .../draft-IERC1822.sol/IERC1822Proxiable.ts | 90 - .../interfaces/draft-IERC1822.sol/index.ts | 4 - .../draft-IERC6093.sol/IERC1155Errors.ts | 69 - .../draft-IERC6093.sol/IERC20Errors.ts | 69 - .../draft-IERC6093.sol/IERC721Errors.ts | 69 - .../interfaces/draft-IERC6093.sol/index.ts | 6 - .../contracts/interfaces/index.ts | 9 - .../contracts/proxy/ERC1967/ERC1967Proxy.ts | 105 - .../contracts/proxy/ERC1967/ERC1967Utils.ts | 69 - .../contracts/proxy/ERC1967/index.ts | 5 - .../@openzeppelin/contracts/proxy/Proxy.ts | 69 - .../contracts/proxy/beacon/IBeacon.ts | 90 - .../contracts/proxy/beacon/index.ts | 4 - .../@openzeppelin/contracts/proxy/index.ts | 8 - .../contracts/token/ERC20/ERC20.ts | 286 - .../contracts/token/ERC20/IERC20.ts | 262 - .../token/ERC20/extensions/IERC20Metadata.ts | 286 - .../contracts/token/ERC20/extensions/index.ts | 4 - .../contracts/token/ERC20/index.ts | 9 - .../contracts/token/ERC20/utils/SafeERC20.ts | 69 - .../contracts/token/ERC20/utils/index.ts | 4 - .../@openzeppelin/contracts/token/index.ts | 5 - .../@openzeppelin/contracts/utils/Address.ts | 69 - .../@openzeppelin/contracts/utils/Errors.ts | 69 - .../@openzeppelin/contracts/utils/index.ts | 7 - .../contracts/utils/introspection/IERC165.ts | 94 - .../contracts/utils/introspection/index.ts | 4 - typechain-types/@openzeppelin/index.ts | 7 - typechain-types/@uniswap/index.ts | 11 - .../v2-core/contracts/UniswapV2ERC20.ts | 365 - .../v2-core/contracts/UniswapV2Factory.ts | 243 - .../v2-core/contracts/UniswapV2Pair.ts | 728 - .../@uniswap/v2-core/contracts/index.ts | 8 - .../v2-core/contracts/interfaces/IERC20.ts | 286 - .../contracts/interfaces/IUniswapV2Callee.ts | 110 - .../contracts/interfaces/IUniswapV2ERC20.ts | 365 - .../contracts/interfaces/IUniswapV2Factory.ts | 243 - .../contracts/interfaces/IUniswapV2Pair.ts | 728 - .../v2-core/contracts/interfaces/index.ts | 8 - typechain-types/@uniswap/v2-core/index.ts | 5 - .../contracts/UniswapV2Router02.ts | 964 -- .../@uniswap/v2-periphery/contracts/index.ts | 6 - .../contracts/interfaces/IERC20.ts | 286 - .../interfaces/IUniswapV2Router01.ts | 754 - .../interfaces/IUniswapV2Router02.ts | 964 -- .../contracts/interfaces/IWETH.ts | 116 - .../contracts/interfaces/index.ts | 7 - .../@uniswap/v2-periphery/index.ts | 5 - .../@uniswap/v3-core/contracts/index.ts | 5 - .../callback/IUniswapV3SwapCallback.ts | 99 - .../contracts/interfaces/callback/index.ts | 4 - .../v3-core/contracts/interfaces/index.ts | 5 - typechain-types/@uniswap/v3-core/index.ts | 5 - .../@uniswap/v3-periphery/contracts/index.ts | 5 - .../contracts/interfaces/ISwapRouter.ts | 296 - .../contracts/interfaces/index.ts | 4 - .../@uniswap/v3-periphery/index.ts | 5 - typechain-types/@zetachain/index.ts | 5 - .../Errors.sol/INotSupportedMethods.ts | 69 - .../contracts/Errors.sol/index.ts | 4 - .../contracts/Revert.sol/Abortable.ts | 122 - .../contracts/Revert.sol/Revertable.ts | 111 - .../contracts/Revert.sol/index.ts | 5 - .../contracts/evm/ERC20Custody.ts | 1110 -- .../contracts/evm/GatewayEVM.ts | 1322 -- .../contracts/evm/ZetaConnectorBase.ts | 919 -- .../contracts/evm/ZetaConnectorNative.ts | 919 -- .../contracts/evm/ZetaConnectorNonNative.ts | 976 -- .../protocol-contracts/contracts/evm/index.ts | 10 - .../IERC20Custody.sol/IERC20Custody.ts | 488 - .../IERC20Custody.sol/IERC20CustodyErrors.ts | 69 - .../IERC20Custody.sol/IERC20CustodyEvents.ts | 362 - .../evm/interfaces/IERC20Custody.sol/index.ts | 6 - .../interfaces/IGatewayEVM.sol/Callable.ts | 100 - .../interfaces/IGatewayEVM.sol/IGatewayEVM.ts | 723 - .../IGatewayEVM.sol/IGatewayEVMErrors.ts | 69 - .../IGatewayEVM.sol/IGatewayEVMEvents.ts | 422 - .../evm/interfaces/IGatewayEVM.sol/index.ts | 7 - .../IZetaConnectorEvents.ts | 241 - .../interfaces/IZetaConnector.sol/index.ts | 4 - .../evm/interfaces/IZetaNonEthNew.ts | 300 - .../contracts/evm/interfaces/index.ts | 10 - .../protocol-contracts/contracts/index.ts | 11 - .../contracts/zevm/GatewayZEVM.ts | 1243 -- .../zevm/SystemContract.sol/SystemContract.ts | 569 - .../SystemContractErrors.ts | 69 - .../zevm/SystemContract.sol/index.ts | 5 - .../contracts/zevm/WZETA.sol/WETH9.ts | 369 - .../contracts/zevm/WZETA.sol/index.ts | 4 - .../contracts/zevm/ZRC20.sol/ZRC20.ts | 748 - .../contracts/zevm/ZRC20.sol/ZRC20Errors.ts | 69 - .../contracts/zevm/ZRC20.sol/index.ts | 5 - .../contracts/zevm/index.ts | 12 - .../IGatewayZEVM.sol/IGatewayZEVM.ts | 686 - .../IGatewayZEVM.sol/IGatewayZEVMErrors.ts | 69 - .../IGatewayZEVM.sol/IGatewayZEVMEvents.ts | 282 - .../zevm/interfaces/IGatewayZEVM.sol/index.ts | 6 - .../contracts/zevm/interfaces/ISystem.ts | 176 - .../zevm/interfaces/IWZETA.sol/IWETH9.ts | 345 - .../zevm/interfaces/IWZETA.sol/index.ts | 4 - .../zevm/interfaces/IZRC20.sol/IZRC20.ts | 301 - .../interfaces/IZRC20.sol/IZRC20Metadata.ts | 325 - .../zevm/interfaces/IZRC20.sol/ZRC20Events.ts | 361 - .../zevm/interfaces/IZRC20.sol/index.ts | 6 - .../UniversalContract.ts | 119 - .../UniversalContract.sol/ZContract.ts | 122 - .../interfaces/UniversalContract.sol/index.ts | 5 - .../contracts/zevm/interfaces/index.ts | 12 - .../@zetachain/protocol-contracts/index.ts | 5 - typechain-types/common.ts | 131 - typechain-types/contracts/BytesHelperLib.ts | 69 - .../contracts/EthZetaMock.sol/ZetaEthMock.ts | 286 - .../contracts/EthZetaMock.sol/index.ts | 4 - typechain-types/contracts/OnlySystem.ts | 69 - .../contracts/Revert.sol/Revertable.ts | 109 - typechain-types/contracts/Revert.sol/index.ts | 4 - typechain-types/contracts/SwapHelperLib.ts | 133 - .../contracts/SwapHelpers.sol/SwapLibrary.ts | 69 - .../contracts/SwapHelpers.sol/index.ts | 4 - .../SystemContract.sol/SystemContract.ts | 569 - .../SystemContractErrors.ts | 69 - .../contracts/SystemContract.sol/index.ts | 5 - typechain-types/contracts/TestZRC20.ts | 360 - .../UniversalContract.ts | 154 - .../UniversalContract.sol/ZContract.ts | 122 - .../contracts/UniversalContract.sol/index.ts | 5 - typechain-types/contracts/index.ts | 21 - typechain-types/contracts/shared/MockZRC20.ts | 459 - .../contracts/shared/TestUniswapRouter.ts | 497 - typechain-types/contracts/shared/WZETA.ts | 369 - typechain-types/contracts/shared/index.ts | 10 - .../contracts/shared/interfaces/IERC20.ts | 286 - .../contracts/shared/interfaces/IWETH.ts | 116 - .../shared/interfaces/IZRC20.sol/IZRC20.ts | 301 - .../interfaces/IZRC20.sol/IZRC20Metadata.ts | 325 - .../interfaces/IZRC20.sol/ZRC20Events.ts | 361 - .../shared/interfaces/IZRC20.sol/index.ts | 6 - .../contracts/shared/interfaces/index.ts | 7 - .../shared/libraries/SafeMath.sol/Math.ts | 69 - .../shared/libraries/SafeMath.sol/index.ts | 4 - .../shared/libraries/UniswapV2Library.ts | 69 - .../contracts/shared/libraries/index.ts | 6 - .../testing/EVMSetup.t.sol/EVMSetup.ts | 1111 -- .../testing/EVMSetup.t.sol/ITestERC20.ts | 97 - .../testing/EVMSetup.t.sol/IZetaNonEth.ts | 101 - .../contracts/testing/EVMSetup.t.sol/index.ts | 6 - .../FoundrySetup.t.sol/FoundrySetup.ts | 1225 -- .../testing/FoundrySetup.t.sol/index.ts | 4 - .../testing/TokenSetup.t.sol/TokenSetup.ts | 1186 -- .../testing/TokenSetup.t.sol/index.ts | 4 - .../IUniswapV2Factory.ts | 114 - .../IUniswapV2Router02.ts | 139 - .../UniswapV2SetupLib.ts | 1034 -- .../testing/UniswapV2SetupLib.sol/index.ts | 6 - .../INonfungiblePositionManager.ts | 239 - .../IUniswapV3Factory.ts | 115 - .../UniswapV3SetupLib.sol/IUniswapV3Pool.ts | 150 - .../UniswapV3SetupLib.ts | 966 -- .../testing/UniswapV3SetupLib.sol/index.ts | 7 - .../testing/ZetaSetup.t.sol/ZetaSetup.ts | 1190 -- .../testing/ZetaSetup.t.sol/index.ts | 4 - typechain-types/contracts/testing/index.ts | 19 - .../contracts/testing/mock/ERC20Mock.ts | 324 - .../testing/mock/ZRC20Mock.sol/IZRC20Mock.ts | 352 - .../testing/mock/ZRC20Mock.sol/ZRC20Mock.ts | 799 -- .../testing/mock/ZRC20Mock.sol/index.ts | 5 - .../contracts/testing/mock/index.ts | 6 - .../testing/mockGateway/NodeLogicMock.ts | 1542 --- .../testing/mockGateway/WrapGatewayEVM.ts | 109 - .../testing/mockGateway/WrapGatewayZEVM.ts | 102 - .../contracts/testing/mockGateway/index.ts | 6 - .../AccessControlUpgradeable__factory.ts | 277 - .../contracts-upgradeable/access/index.ts | 4 - .../contracts-upgradeable/index.ts | 6 - .../contracts-upgradeable/proxy/index.ts | 4 - .../proxy/utils/Initializable__factory.ts | 48 - .../proxy/utils/UUPSUpgradeable__factory.ts | 153 - .../proxy/utils/index.ts | 5 - .../utils/ContextUpgradeable__factory.ts | 48 - .../utils/PausableUpgradeable__factory.ts | 101 - .../ReentrancyGuardUpgradeable__factory.ts | 57 - .../contracts-upgradeable/utils/index.ts | 7 - .../ERC165Upgradeable__factory.ts | 67 - .../utils/introspection/index.ts | 4 - .../access/IAccessControl__factory.ts | 218 - .../@openzeppelin/contracts/access/index.ts | 4 - .../@openzeppelin/contracts/index.ts | 8 - .../contracts/interfaces/IERC1363__factory.ts | 393 - .../contracts/interfaces/IERC1967__factory.ts | 67 - .../IERC1822Proxiable__factory.ts | 38 - .../interfaces/draft-IERC1822.sol/index.ts | 4 - .../IERC1155Errors__factory.ts | 127 - .../IERC20Errors__factory.ts | 111 - .../IERC721Errors__factory.ts | 128 - .../interfaces/draft-IERC6093.sol/index.ts | 6 - .../contracts/interfaces/index.ts | 7 - .../proxy/ERC1967/ERC1967Proxy__factory.ts | 144 - .../proxy/ERC1967/ERC1967Utils__factory.ts | 105 - .../contracts/proxy/ERC1967/index.ts | 5 - .../contracts/proxy/Proxy__factory.ts | 26 - .../proxy/beacon/IBeacon__factory.ts | 35 - .../contracts/proxy/beacon/index.ts | 4 - .../@openzeppelin/contracts/proxy/index.ts | 6 - .../contracts/token/ERC20/ERC20__factory.ts | 330 - .../contracts/token/ERC20/IERC20__factory.ts | 205 - .../extensions/IERC20Metadata__factory.ts | 247 - .../contracts/token/ERC20/extensions/index.ts | 4 - .../contracts/token/ERC20/index.ts | 7 - .../token/ERC20/utils/SafeERC20__factory.ts | 96 - .../contracts/token/ERC20/utils/index.ts | 4 - .../@openzeppelin/contracts/token/index.ts | 4 - .../contracts/utils/Address__factory.ts | 75 - .../contracts/utils/Errors__factory.ts | 101 - .../@openzeppelin/contracts/utils/index.ts | 6 - .../utils/introspection/IERC165__factory.ts | 41 - .../contracts/utils/introspection/index.ts | 4 - .../factories/@openzeppelin/index.ts | 5 - typechain-types/factories/@uniswap/index.ts | 7 - .../contracts/UniswapV2ERC20__factory.ts | 409 - .../contracts/UniswapV2Factory__factory.ts | 267 - .../contracts/UniswapV2Pair__factory.ts | 778 -- .../@uniswap/v2-core/contracts/index.ts | 7 - .../contracts/interfaces/IERC20__factory.ts | 244 - .../interfaces/IUniswapV2Callee__factory.ts | 53 - .../interfaces/IUniswapV2ERC20__factory.ts | 335 - .../interfaces/IUniswapV2Factory__factory.ts | 188 - .../interfaces/IUniswapV2Pair__factory.ts | 676 - .../v2-core/contracts/interfaces/index.ts | 8 - .../factories/@uniswap/v2-core/index.ts | 4 - .../contracts/UniswapV2Router02__factory.ts | 1049 -- .../@uniswap/v2-periphery/contracts/index.ts | 5 - .../contracts/interfaces/IERC20__factory.ts | 244 - .../interfaces/IUniswapV2Router01__factory.ts | 774 -- .../interfaces/IUniswapV2Router02__factory.ts | 976 -- .../contracts/interfaces/IWETH__factory.ts | 66 - .../contracts/interfaces/index.ts | 7 - .../factories/@uniswap/v2-periphery/index.ts | 4 - .../@uniswap/v3-core/contracts/index.ts | 4 - .../IUniswapV3SwapCallback__factory.ts | 52 - .../contracts/interfaces/callback/index.ts | 4 - .../v3-core/contracts/interfaces/index.ts | 4 - .../factories/@uniswap/v3-core/index.ts | 4 - .../@uniswap/v3-periphery/contracts/index.ts | 4 - .../interfaces/ISwapRouter__factory.ts | 259 - .../contracts/interfaces/index.ts | 4 - .../factories/@uniswap/v3-periphery/index.ts | 4 - typechain-types/factories/@zetachain/index.ts | 4 - .../INotSupportedMethods__factory.ts | 39 - .../contracts/Errors.sol/index.ts | 4 - .../Revert.sol/Abortable__factory.ts | 67 - .../Revert.sol/Revertable__factory.ts | 57 - .../contracts/Revert.sol/index.ts | 5 - .../contracts/evm/ERC20Custody__factory.ts | 1023 -- .../contracts/evm/GatewayEVM__factory.ts | 1533 --- .../evm/ZetaConnectorBase__factory.ts | 817 -- .../evm/ZetaConnectorNative__factory.ts | 876 -- .../evm/ZetaConnectorNonNative__factory.ts | 909 -- .../protocol-contracts/contracts/evm/index.ts | 9 - .../IERC20CustodyErrors__factory.ts | 44 - .../IERC20CustodyEvents__factory.ts | 220 - .../IERC20Custody__factory.ts | 368 - .../evm/interfaces/IERC20Custody.sol/index.ts | 6 - .../IGatewayEVM.sol/Callable__factory.ts | 53 - .../IGatewayEVMErrors__factory.ts | 113 - .../IGatewayEVMEvents__factory.ts | 357 - .../IGatewayEVM.sol/IGatewayEVM__factory.ts | 878 -- .../evm/interfaces/IGatewayEVM.sol/index.ts | 7 - .../IZetaConnectorEvents__factory.ts | 145 - .../interfaces/IZetaConnector.sol/index.ts | 4 - .../evm/interfaces/IZetaNonEthNew__factory.ts | 249 - .../contracts/evm/interfaces/index.ts | 7 - .../protocol-contracts/contracts/index.ts | 7 - .../contracts/zevm/GatewayZEVM__factory.ts | 1684 --- .../SystemContractErrors__factory.ts | 54 - .../SystemContract__factory.ts | 506 - .../zevm/SystemContract.sol/index.ts | 5 - .../zevm/WZETA.sol/WETH9__factory.ts | 348 - .../contracts/zevm/WZETA.sol/index.ts | 4 - .../zevm/ZRC20.sol/ZRC20Errors__factory.ts | 62 - .../zevm/ZRC20.sol/ZRC20__factory.ts | 808 -- .../contracts/zevm/ZRC20.sol/index.ts | 5 - .../contracts/zevm/index.ts | 8 - .../IGatewayZEVMErrors__factory.ts | 192 - .../IGatewayZEVMEvents__factory.ts | 319 - .../IGatewayZEVM.sol/IGatewayZEVM__factory.ts | 1080 -- .../zevm/interfaces/IGatewayZEVM.sol/index.ts | 6 - .../zevm/interfaces/ISystem__factory.ts | 118 - .../interfaces/IWZETA.sol/IWETH9__factory.ts | 263 - .../zevm/interfaces/IWZETA.sol/index.ts | 4 - .../IZRC20.sol/IZRC20Metadata__factory.ts | 358 - .../interfaces/IZRC20.sol/IZRC20__factory.ts | 316 - .../IZRC20.sol/ZRC20Events__factory.ts | 186 - .../zevm/interfaces/IZRC20.sol/index.ts | 6 - .../UniversalContract__factory.ts | 70 - .../ZContract__factory.ts | 67 - .../interfaces/UniversalContract.sol/index.ts | 5 - .../contracts/zevm/interfaces/index.ts | 8 - .../@zetachain/protocol-contracts/index.ts | 4 - .../contracts/BytesHelperLib__factory.ts | 72 - .../EthZetaMock.sol/ZetaEthMock__factory.ts | 400 - .../contracts/EthZetaMock.sol/index.ts | 4 - .../contracts/OnlySystem__factory.ts | 75 - .../Revert.sol/Revertable__factory.ts | 52 - .../factories/contracts/Revert.sol/index.ts | 4 - .../contracts/SwapHelperLib__factory.ts | 190 - .../SwapHelpers.sol/SwapLibrary__factory.ts | 69 - .../contracts/SwapHelpers.sol/index.ts | 4 - .../SystemContractErrors__factory.ts | 54 - .../SystemContract__factory.ts | 506 - .../contracts/SystemContract.sol/index.ts | 5 - .../factories/contracts/TestZRC20__factory.ts | 508 - .../UniversalContract__factory.ts | 100 - .../ZContract__factory.ts | 67 - .../contracts/UniversalContract.sol/index.ts | 5 - typechain-types/factories/contracts/index.ts | 14 - .../contracts/shared/MockZRC20__factory.ts | 600 - .../shared/TestUniswapRouter__factory.ts | 623 - .../contracts/shared/WZETA__factory.ts | 345 - .../factories/contracts/shared/index.ts | 8 - .../shared/interfaces/IERC20__factory.ts | 244 - .../shared/interfaces/IWETH__factory.ts | 66 - .../IZRC20.sol/IZRC20Metadata__factory.ts | 358 - .../interfaces/IZRC20.sol/IZRC20__factory.ts | 316 - .../IZRC20.sol/ZRC20Events__factory.ts | 186 - .../shared/interfaces/IZRC20.sol/index.ts | 6 - .../contracts/shared/interfaces/index.ts | 6 - .../libraries/SafeMath.sol/Math__factory.ts | 79 - .../shared/libraries/SafeMath.sol/index.ts | 4 - .../libraries/UniswapV2Library__factory.ts | 102 - .../contracts/shared/libraries/index.ts | 5 - .../EVMSetup.t.sol/EVMSetup__factory.ts | 883 -- .../EVMSetup.t.sol/ITestERC20__factory.ts | 40 - .../EVMSetup.t.sol/IZetaNonEth__factory.ts | 40 - .../contracts/testing/EVMSetup.t.sol/index.ts | 6 - .../FoundrySetup__factory.ts | 944 -- .../testing/FoundrySetup.t.sol/index.ts | 4 - .../TokenSetup.t.sol/TokenSetup__factory.ts | 906 -- .../testing/TokenSetup.t.sol/index.ts | 4 - .../IUniswapV2Factory__factory.ts | 73 - .../IUniswapV2Router02__factory.ts | 89 - .../UniswapV2SetupLib__factory.ts | 707 - .../testing/UniswapV2SetupLib.sol/index.ts | 6 - .../INonfungiblePositionManager__factory.ts | 213 - .../IUniswapV3Factory__factory.ts | 83 - .../IUniswapV3Pool__factory.ts | 120 - .../UniswapV3SetupLib__factory.ts | 635 - .../testing/UniswapV3SetupLib.sol/index.ts | 7 - .../ZetaSetup.t.sol/ZetaSetup__factory.ts | 889 -- .../testing/ZetaSetup.t.sol/index.ts | 4 - .../factories/contracts/testing/index.ts | 11 - .../testing/mock/ERC20Mock__factory.ts | 430 - .../mock/ZRC20Mock.sol/IZRC20Mock__factory.ts | 352 - .../mock/ZRC20Mock.sol/ZRC20Mock__factory.ts | 844 -- .../testing/mock/ZRC20Mock.sol/index.ts | 5 - .../factories/contracts/testing/mock/index.ts | 5 - .../mockGateway/NodeLogicMock__factory.ts | 1340 -- .../mockGateway/WrapGatewayEVM__factory.ts | 155 - .../mockGateway/WrapGatewayZEVM__factory.ts | 124 - .../contracts/testing/mockGateway/index.ts | 6 - .../forge-std/StdAssertions__factory.ts | 402 - .../StdError.sol/StdError__factory.ts | 181 - .../factories/forge-std/StdError.sol/index.ts | 4 - .../forge-std/StdInvariant__factory.ts | 203 - .../StdStorage.sol/StdStorageSafe__factory.ts | 117 - .../forge-std/StdStorage.sol/index.ts | 4 - .../factories/forge-std/Test__factory.ts | 587 - .../forge-std/Vm.sol/VmSafe__factory.ts | 9077 ------------ .../factories/forge-std/Vm.sol/Vm__factory.ts | 11477 ---------------- .../factories/forge-std/Vm.sol/index.ts | 5 - typechain-types/factories/forge-std/index.ts | 10 - .../interfaces/IMulticall3__factory.ts | 460 - .../factories/forge-std/interfaces/index.ts | 4 - typechain-types/factories/index.ts | 8 - typechain-types/forge-std/StdAssertions.ts | 762 - .../forge-std/StdError.sol/StdError.ts | 199 - .../forge-std/StdError.sol/index.ts | 4 - typechain-types/forge-std/StdInvariant.ts | 273 - .../StdStorage.sol/StdStorageSafe.ts | 153 - .../forge-std/StdStorage.sol/index.ts | 4 - typechain-types/forge-std/Test.ts | 966 -- typechain-types/forge-std/Vm.sol/Vm.ts | 10534 -------------- typechain-types/forge-std/Vm.sol/VmSafe.ts | 7888 ----------- typechain-types/forge-std/Vm.sol/index.ts | 5 - typechain-types/forge-std/index.ts | 14 - .../forge-std/interfaces/IMulticall3.ts | 416 - typechain-types/forge-std/interfaces/index.ts | 4 - typechain-types/hardhat.d.ts | 2223 --- typechain-types/index.ts | 228 - 410 files changed, 4 insertions(+), 125200 deletions(-) delete mode 100644 typechain-types/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.ts delete mode 100644 typechain-types/@openzeppelin/contracts-upgradeable/access/index.ts delete mode 100644 typechain-types/@openzeppelin/contracts-upgradeable/index.ts delete mode 100644 typechain-types/@openzeppelin/contracts-upgradeable/proxy/index.ts delete mode 100644 typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.ts delete mode 100644 typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.ts delete mode 100644 typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/index.ts delete mode 100644 typechain-types/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.ts delete mode 100644 typechain-types/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.ts delete mode 100644 typechain-types/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.ts delete mode 100644 typechain-types/@openzeppelin/contracts-upgradeable/utils/index.ts delete mode 100644 typechain-types/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.ts delete mode 100644 typechain-types/@openzeppelin/contracts-upgradeable/utils/introspection/index.ts delete mode 100644 typechain-types/@openzeppelin/contracts/access/IAccessControl.ts delete mode 100644 typechain-types/@openzeppelin/contracts/access/index.ts delete mode 100644 typechain-types/@openzeppelin/contracts/index.ts delete mode 100644 typechain-types/@openzeppelin/contracts/interfaces/IERC1363.ts delete mode 100644 typechain-types/@openzeppelin/contracts/interfaces/IERC1967.ts delete mode 100644 typechain-types/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.ts delete mode 100644 typechain-types/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.ts delete mode 100644 typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.ts delete mode 100644 typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.ts delete mode 100644 typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.ts delete mode 100644 typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts delete mode 100644 typechain-types/@openzeppelin/contracts/interfaces/index.ts delete mode 100644 typechain-types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.ts delete mode 100644 typechain-types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.ts delete mode 100644 typechain-types/@openzeppelin/contracts/proxy/ERC1967/index.ts delete mode 100644 typechain-types/@openzeppelin/contracts/proxy/Proxy.ts delete mode 100644 typechain-types/@openzeppelin/contracts/proxy/beacon/IBeacon.ts delete mode 100644 typechain-types/@openzeppelin/contracts/proxy/beacon/index.ts delete mode 100644 typechain-types/@openzeppelin/contracts/proxy/index.ts delete mode 100644 typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.ts delete mode 100644 typechain-types/@openzeppelin/contracts/token/ERC20/IERC20.ts delete mode 100644 typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.ts delete mode 100644 typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.ts delete mode 100644 typechain-types/@openzeppelin/contracts/token/ERC20/index.ts delete mode 100644 typechain-types/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.ts delete mode 100644 typechain-types/@openzeppelin/contracts/token/ERC20/utils/index.ts delete mode 100644 typechain-types/@openzeppelin/contracts/token/index.ts delete mode 100644 typechain-types/@openzeppelin/contracts/utils/Address.ts delete mode 100644 typechain-types/@openzeppelin/contracts/utils/Errors.ts delete mode 100644 typechain-types/@openzeppelin/contracts/utils/index.ts delete mode 100644 typechain-types/@openzeppelin/contracts/utils/introspection/IERC165.ts delete mode 100644 typechain-types/@openzeppelin/contracts/utils/introspection/index.ts delete mode 100644 typechain-types/@openzeppelin/index.ts delete mode 100644 typechain-types/@uniswap/index.ts delete mode 100644 typechain-types/@uniswap/v2-core/contracts/UniswapV2ERC20.ts delete mode 100644 typechain-types/@uniswap/v2-core/contracts/UniswapV2Factory.ts delete mode 100644 typechain-types/@uniswap/v2-core/contracts/UniswapV2Pair.ts delete mode 100644 typechain-types/@uniswap/v2-core/contracts/index.ts delete mode 100644 typechain-types/@uniswap/v2-core/contracts/interfaces/IERC20.ts delete mode 100644 typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2Callee.ts delete mode 100644 typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2ERC20.ts delete mode 100644 typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.ts delete mode 100644 typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair.ts delete mode 100644 typechain-types/@uniswap/v2-core/contracts/interfaces/index.ts delete mode 100644 typechain-types/@uniswap/v2-core/index.ts delete mode 100644 typechain-types/@uniswap/v2-periphery/contracts/UniswapV2Router02.ts delete mode 100644 typechain-types/@uniswap/v2-periphery/contracts/index.ts delete mode 100644 typechain-types/@uniswap/v2-periphery/contracts/interfaces/IERC20.ts delete mode 100644 typechain-types/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.ts delete mode 100644 typechain-types/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.ts delete mode 100644 typechain-types/@uniswap/v2-periphery/contracts/interfaces/IWETH.ts delete mode 100644 typechain-types/@uniswap/v2-periphery/contracts/interfaces/index.ts delete mode 100644 typechain-types/@uniswap/v2-periphery/index.ts delete mode 100644 typechain-types/@uniswap/v3-core/contracts/index.ts delete mode 100644 typechain-types/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.ts delete mode 100644 typechain-types/@uniswap/v3-core/contracts/interfaces/callback/index.ts delete mode 100644 typechain-types/@uniswap/v3-core/contracts/interfaces/index.ts delete mode 100644 typechain-types/@uniswap/v3-core/index.ts delete mode 100644 typechain-types/@uniswap/v3-periphery/contracts/index.ts delete mode 100644 typechain-types/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter.ts delete mode 100644 typechain-types/@uniswap/v3-periphery/contracts/interfaces/index.ts delete mode 100644 typechain-types/@uniswap/v3-periphery/index.ts delete mode 100644 typechain-types/@zetachain/index.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/Errors.sol/INotSupportedMethods.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/Errors.sol/index.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/Revert.sol/Abortable.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/Revert.sol/Revertable.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/Revert.sol/index.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/ERC20Custody.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/GatewayEVM.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorBase.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNative.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNonNative.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/index.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20Custody.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyErrors.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyEvents.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/index.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/Callable.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVM.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMErrors.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMEvents.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/index.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/IZetaConnectorEvents.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/index.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaNonEthNew.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/index.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/index.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/GatewayZEVM.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContract.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContractErrors.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/index.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/WETH9.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/index.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20Errors.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/index.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/index.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVM.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMErrors.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMEvents.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/index.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/ISystem.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/IWETH9.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/index.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/ZRC20Events.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/index.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/UniversalContract.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/ZContract.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/index.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/index.ts delete mode 100644 typechain-types/@zetachain/protocol-contracts/index.ts delete mode 100644 typechain-types/common.ts delete mode 100644 typechain-types/contracts/BytesHelperLib.ts delete mode 100644 typechain-types/contracts/EthZetaMock.sol/ZetaEthMock.ts delete mode 100644 typechain-types/contracts/EthZetaMock.sol/index.ts delete mode 100644 typechain-types/contracts/OnlySystem.ts delete mode 100644 typechain-types/contracts/Revert.sol/Revertable.ts delete mode 100644 typechain-types/contracts/Revert.sol/index.ts delete mode 100644 typechain-types/contracts/SwapHelperLib.ts delete mode 100644 typechain-types/contracts/SwapHelpers.sol/SwapLibrary.ts delete mode 100644 typechain-types/contracts/SwapHelpers.sol/index.ts delete mode 100644 typechain-types/contracts/SystemContract.sol/SystemContract.ts delete mode 100644 typechain-types/contracts/SystemContract.sol/SystemContractErrors.ts delete mode 100644 typechain-types/contracts/SystemContract.sol/index.ts delete mode 100644 typechain-types/contracts/TestZRC20.ts delete mode 100644 typechain-types/contracts/UniversalContract.sol/UniversalContract.ts delete mode 100644 typechain-types/contracts/UniversalContract.sol/ZContract.ts delete mode 100644 typechain-types/contracts/UniversalContract.sol/index.ts delete mode 100644 typechain-types/contracts/index.ts delete mode 100644 typechain-types/contracts/shared/MockZRC20.ts delete mode 100644 typechain-types/contracts/shared/TestUniswapRouter.ts delete mode 100644 typechain-types/contracts/shared/WZETA.ts delete mode 100644 typechain-types/contracts/shared/index.ts delete mode 100644 typechain-types/contracts/shared/interfaces/IERC20.ts delete mode 100644 typechain-types/contracts/shared/interfaces/IWETH.ts delete mode 100644 typechain-types/contracts/shared/interfaces/IZRC20.sol/IZRC20.ts delete mode 100644 typechain-types/contracts/shared/interfaces/IZRC20.sol/IZRC20Metadata.ts delete mode 100644 typechain-types/contracts/shared/interfaces/IZRC20.sol/ZRC20Events.ts delete mode 100644 typechain-types/contracts/shared/interfaces/IZRC20.sol/index.ts delete mode 100644 typechain-types/contracts/shared/interfaces/index.ts delete mode 100644 typechain-types/contracts/shared/libraries/SafeMath.sol/Math.ts delete mode 100644 typechain-types/contracts/shared/libraries/SafeMath.sol/index.ts delete mode 100644 typechain-types/contracts/shared/libraries/UniswapV2Library.ts delete mode 100644 typechain-types/contracts/shared/libraries/index.ts delete mode 100644 typechain-types/contracts/testing/EVMSetup.t.sol/EVMSetup.ts delete mode 100644 typechain-types/contracts/testing/EVMSetup.t.sol/ITestERC20.ts delete mode 100644 typechain-types/contracts/testing/EVMSetup.t.sol/IZetaNonEth.ts delete mode 100644 typechain-types/contracts/testing/EVMSetup.t.sol/index.ts delete mode 100644 typechain-types/contracts/testing/FoundrySetup.t.sol/FoundrySetup.ts delete mode 100644 typechain-types/contracts/testing/FoundrySetup.t.sol/index.ts delete mode 100644 typechain-types/contracts/testing/TokenSetup.t.sol/TokenSetup.ts delete mode 100644 typechain-types/contracts/testing/TokenSetup.t.sol/index.ts delete mode 100644 typechain-types/contracts/testing/UniswapV2SetupLib.sol/IUniswapV2Factory.ts delete mode 100644 typechain-types/contracts/testing/UniswapV2SetupLib.sol/IUniswapV2Router02.ts delete mode 100644 typechain-types/contracts/testing/UniswapV2SetupLib.sol/UniswapV2SetupLib.ts delete mode 100644 typechain-types/contracts/testing/UniswapV2SetupLib.sol/index.ts delete mode 100644 typechain-types/contracts/testing/UniswapV3SetupLib.sol/INonfungiblePositionManager.ts delete mode 100644 typechain-types/contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Factory.ts delete mode 100644 typechain-types/contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Pool.ts delete mode 100644 typechain-types/contracts/testing/UniswapV3SetupLib.sol/UniswapV3SetupLib.ts delete mode 100644 typechain-types/contracts/testing/UniswapV3SetupLib.sol/index.ts delete mode 100644 typechain-types/contracts/testing/ZetaSetup.t.sol/ZetaSetup.ts delete mode 100644 typechain-types/contracts/testing/ZetaSetup.t.sol/index.ts delete mode 100644 typechain-types/contracts/testing/index.ts delete mode 100644 typechain-types/contracts/testing/mock/ERC20Mock.ts delete mode 100644 typechain-types/contracts/testing/mock/ZRC20Mock.sol/IZRC20Mock.ts delete mode 100644 typechain-types/contracts/testing/mock/ZRC20Mock.sol/ZRC20Mock.ts delete mode 100644 typechain-types/contracts/testing/mock/ZRC20Mock.sol/index.ts delete mode 100644 typechain-types/contracts/testing/mock/index.ts delete mode 100644 typechain-types/contracts/testing/mockGateway/NodeLogicMock.ts delete mode 100644 typechain-types/contracts/testing/mockGateway/WrapGatewayEVM.ts delete mode 100644 typechain-types/contracts/testing/mockGateway/WrapGatewayZEVM.ts delete mode 100644 typechain-types/contracts/testing/mockGateway/index.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable__factory.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts-upgradeable/access/index.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts-upgradeable/index.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/index.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable__factory.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/index.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable__factory.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable__factory.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/index.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable__factory.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/introspection/index.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts/access/IAccessControl__factory.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts/access/index.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts/index.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts/interfaces/IERC1363__factory.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts/interfaces/IERC1967__factory.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors__factory.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors__factory.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors__factory.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts/interfaces/index.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils__factory.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/index.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts/proxy/Proxy__factory.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts/proxy/beacon/index.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts/proxy/index.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts/token/ERC20/index.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts/token/ERC20/utils/SafeERC20__factory.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts/token/ERC20/utils/index.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts/token/index.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts/utils/Address__factory.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts/utils/Errors__factory.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts/utils/index.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts/utils/introspection/IERC165__factory.ts delete mode 100644 typechain-types/factories/@openzeppelin/contracts/utils/introspection/index.ts delete mode 100644 typechain-types/factories/@openzeppelin/index.ts delete mode 100644 typechain-types/factories/@uniswap/index.ts delete mode 100644 typechain-types/factories/@uniswap/v2-core/contracts/UniswapV2ERC20__factory.ts delete mode 100644 typechain-types/factories/@uniswap/v2-core/contracts/UniswapV2Factory__factory.ts delete mode 100644 typechain-types/factories/@uniswap/v2-core/contracts/UniswapV2Pair__factory.ts delete mode 100644 typechain-types/factories/@uniswap/v2-core/contracts/index.ts delete mode 100644 typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IERC20__factory.ts delete mode 100644 typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Callee__factory.ts delete mode 100644 typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2ERC20__factory.ts delete mode 100644 typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory__factory.ts delete mode 100644 typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair__factory.ts delete mode 100644 typechain-types/factories/@uniswap/v2-core/contracts/interfaces/index.ts delete mode 100644 typechain-types/factories/@uniswap/v2-core/index.ts delete mode 100644 typechain-types/factories/@uniswap/v2-periphery/contracts/UniswapV2Router02__factory.ts delete mode 100644 typechain-types/factories/@uniswap/v2-periphery/contracts/index.ts delete mode 100644 typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IERC20__factory.ts delete mode 100644 typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01__factory.ts delete mode 100644 typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02__factory.ts delete mode 100644 typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IWETH__factory.ts delete mode 100644 typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/index.ts delete mode 100644 typechain-types/factories/@uniswap/v2-periphery/index.ts delete mode 100644 typechain-types/factories/@uniswap/v3-core/contracts/index.ts delete mode 100644 typechain-types/factories/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback__factory.ts delete mode 100644 typechain-types/factories/@uniswap/v3-core/contracts/interfaces/callback/index.ts delete mode 100644 typechain-types/factories/@uniswap/v3-core/contracts/interfaces/index.ts delete mode 100644 typechain-types/factories/@uniswap/v3-core/index.ts delete mode 100644 typechain-types/factories/@uniswap/v3-periphery/contracts/index.ts delete mode 100644 typechain-types/factories/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter__factory.ts delete mode 100644 typechain-types/factories/@uniswap/v3-periphery/contracts/interfaces/index.ts delete mode 100644 typechain-types/factories/@uniswap/v3-periphery/index.ts delete mode 100644 typechain-types/factories/@zetachain/index.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/Errors.sol/INotSupportedMethods__factory.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/Errors.sol/index.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/Revert.sol/Abortable__factory.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/Revert.sol/Revertable__factory.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/Revert.sol/index.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ERC20Custody__factory.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/GatewayEVM__factory.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorBase__factory.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNative__factory.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNonNative__factory.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/index.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyErrors__factory.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyEvents__factory.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20Custody__factory.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/index.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/Callable__factory.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMErrors__factory.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMEvents__factory.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVM__factory.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/index.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/IZetaConnectorEvents__factory.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/index.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaNonEthNew__factory.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/index.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/index.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/GatewayZEVM__factory.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContractErrors__factory.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContract__factory.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/index.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/WETH9__factory.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/index.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20Errors__factory.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20__factory.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/index.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/index.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMErrors__factory.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMEvents__factory.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVM__factory.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/index.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/ISystem__factory.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/IWETH9__factory.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/index.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata__factory.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20__factory.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/ZRC20Events__factory.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/index.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/UniversalContract__factory.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/ZContract__factory.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/index.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/index.ts delete mode 100644 typechain-types/factories/@zetachain/protocol-contracts/index.ts delete mode 100644 typechain-types/factories/contracts/BytesHelperLib__factory.ts delete mode 100644 typechain-types/factories/contracts/EthZetaMock.sol/ZetaEthMock__factory.ts delete mode 100644 typechain-types/factories/contracts/EthZetaMock.sol/index.ts delete mode 100644 typechain-types/factories/contracts/OnlySystem__factory.ts delete mode 100644 typechain-types/factories/contracts/Revert.sol/Revertable__factory.ts delete mode 100644 typechain-types/factories/contracts/Revert.sol/index.ts delete mode 100644 typechain-types/factories/contracts/SwapHelperLib__factory.ts delete mode 100644 typechain-types/factories/contracts/SwapHelpers.sol/SwapLibrary__factory.ts delete mode 100644 typechain-types/factories/contracts/SwapHelpers.sol/index.ts delete mode 100644 typechain-types/factories/contracts/SystemContract.sol/SystemContractErrors__factory.ts delete mode 100644 typechain-types/factories/contracts/SystemContract.sol/SystemContract__factory.ts delete mode 100644 typechain-types/factories/contracts/SystemContract.sol/index.ts delete mode 100644 typechain-types/factories/contracts/TestZRC20__factory.ts delete mode 100644 typechain-types/factories/contracts/UniversalContract.sol/UniversalContract__factory.ts delete mode 100644 typechain-types/factories/contracts/UniversalContract.sol/ZContract__factory.ts delete mode 100644 typechain-types/factories/contracts/UniversalContract.sol/index.ts delete mode 100644 typechain-types/factories/contracts/index.ts delete mode 100644 typechain-types/factories/contracts/shared/MockZRC20__factory.ts delete mode 100644 typechain-types/factories/contracts/shared/TestUniswapRouter__factory.ts delete mode 100644 typechain-types/factories/contracts/shared/WZETA__factory.ts delete mode 100644 typechain-types/factories/contracts/shared/index.ts delete mode 100644 typechain-types/factories/contracts/shared/interfaces/IERC20__factory.ts delete mode 100644 typechain-types/factories/contracts/shared/interfaces/IWETH__factory.ts delete mode 100644 typechain-types/factories/contracts/shared/interfaces/IZRC20.sol/IZRC20Metadata__factory.ts delete mode 100644 typechain-types/factories/contracts/shared/interfaces/IZRC20.sol/IZRC20__factory.ts delete mode 100644 typechain-types/factories/contracts/shared/interfaces/IZRC20.sol/ZRC20Events__factory.ts delete mode 100644 typechain-types/factories/contracts/shared/interfaces/IZRC20.sol/index.ts delete mode 100644 typechain-types/factories/contracts/shared/interfaces/index.ts delete mode 100644 typechain-types/factories/contracts/shared/libraries/SafeMath.sol/Math__factory.ts delete mode 100644 typechain-types/factories/contracts/shared/libraries/SafeMath.sol/index.ts delete mode 100644 typechain-types/factories/contracts/shared/libraries/UniswapV2Library__factory.ts delete mode 100644 typechain-types/factories/contracts/shared/libraries/index.ts delete mode 100644 typechain-types/factories/contracts/testing/EVMSetup.t.sol/EVMSetup__factory.ts delete mode 100644 typechain-types/factories/contracts/testing/EVMSetup.t.sol/ITestERC20__factory.ts delete mode 100644 typechain-types/factories/contracts/testing/EVMSetup.t.sol/IZetaNonEth__factory.ts delete mode 100644 typechain-types/factories/contracts/testing/EVMSetup.t.sol/index.ts delete mode 100644 typechain-types/factories/contracts/testing/FoundrySetup.t.sol/FoundrySetup__factory.ts delete mode 100644 typechain-types/factories/contracts/testing/FoundrySetup.t.sol/index.ts delete mode 100644 typechain-types/factories/contracts/testing/TokenSetup.t.sol/TokenSetup__factory.ts delete mode 100644 typechain-types/factories/contracts/testing/TokenSetup.t.sol/index.ts delete mode 100644 typechain-types/factories/contracts/testing/UniswapV2SetupLib.sol/IUniswapV2Factory__factory.ts delete mode 100644 typechain-types/factories/contracts/testing/UniswapV2SetupLib.sol/IUniswapV2Router02__factory.ts delete mode 100644 typechain-types/factories/contracts/testing/UniswapV2SetupLib.sol/UniswapV2SetupLib__factory.ts delete mode 100644 typechain-types/factories/contracts/testing/UniswapV2SetupLib.sol/index.ts delete mode 100644 typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/INonfungiblePositionManager__factory.ts delete mode 100644 typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Factory__factory.ts delete mode 100644 typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Pool__factory.ts delete mode 100644 typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/UniswapV3SetupLib__factory.ts delete mode 100644 typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/index.ts delete mode 100644 typechain-types/factories/contracts/testing/ZetaSetup.t.sol/ZetaSetup__factory.ts delete mode 100644 typechain-types/factories/contracts/testing/ZetaSetup.t.sol/index.ts delete mode 100644 typechain-types/factories/contracts/testing/index.ts delete mode 100644 typechain-types/factories/contracts/testing/mock/ERC20Mock__factory.ts delete mode 100644 typechain-types/factories/contracts/testing/mock/ZRC20Mock.sol/IZRC20Mock__factory.ts delete mode 100644 typechain-types/factories/contracts/testing/mock/ZRC20Mock.sol/ZRC20Mock__factory.ts delete mode 100644 typechain-types/factories/contracts/testing/mock/ZRC20Mock.sol/index.ts delete mode 100644 typechain-types/factories/contracts/testing/mock/index.ts delete mode 100644 typechain-types/factories/contracts/testing/mockGateway/NodeLogicMock__factory.ts delete mode 100644 typechain-types/factories/contracts/testing/mockGateway/WrapGatewayEVM__factory.ts delete mode 100644 typechain-types/factories/contracts/testing/mockGateway/WrapGatewayZEVM__factory.ts delete mode 100644 typechain-types/factories/contracts/testing/mockGateway/index.ts delete mode 100644 typechain-types/factories/forge-std/StdAssertions__factory.ts delete mode 100644 typechain-types/factories/forge-std/StdError.sol/StdError__factory.ts delete mode 100644 typechain-types/factories/forge-std/StdError.sol/index.ts delete mode 100644 typechain-types/factories/forge-std/StdInvariant__factory.ts delete mode 100644 typechain-types/factories/forge-std/StdStorage.sol/StdStorageSafe__factory.ts delete mode 100644 typechain-types/factories/forge-std/StdStorage.sol/index.ts delete mode 100644 typechain-types/factories/forge-std/Test__factory.ts delete mode 100644 typechain-types/factories/forge-std/Vm.sol/VmSafe__factory.ts delete mode 100644 typechain-types/factories/forge-std/Vm.sol/Vm__factory.ts delete mode 100644 typechain-types/factories/forge-std/Vm.sol/index.ts delete mode 100644 typechain-types/factories/forge-std/index.ts delete mode 100644 typechain-types/factories/forge-std/interfaces/IMulticall3__factory.ts delete mode 100644 typechain-types/factories/forge-std/interfaces/index.ts delete mode 100644 typechain-types/factories/index.ts delete mode 100644 typechain-types/forge-std/StdAssertions.ts delete mode 100644 typechain-types/forge-std/StdError.sol/StdError.ts delete mode 100644 typechain-types/forge-std/StdError.sol/index.ts delete mode 100644 typechain-types/forge-std/StdInvariant.ts delete mode 100644 typechain-types/forge-std/StdStorage.sol/StdStorageSafe.ts delete mode 100644 typechain-types/forge-std/StdStorage.sol/index.ts delete mode 100644 typechain-types/forge-std/Test.ts delete mode 100644 typechain-types/forge-std/Vm.sol/Vm.ts delete mode 100644 typechain-types/forge-std/Vm.sol/VmSafe.ts delete mode 100644 typechain-types/forge-std/Vm.sol/index.ts delete mode 100644 typechain-types/forge-std/index.ts delete mode 100644 typechain-types/forge-std/interfaces/IMulticall3.ts delete mode 100644 typechain-types/forge-std/interfaces/index.ts delete mode 100644 typechain-types/hardhat.d.ts delete mode 100644 typechain-types/index.ts diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index a743b941..d73f6031 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -15,7 +15,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v3 with: - node-version: "21" + node-version: "22" registry-url: "https://registry.npmjs.org" - name: Install Foundry diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index a2a94576..e9387a74 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -15,7 +15,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v3 with: - node-version: "21" + node-version: "22" registry-url: "https://registry.npmjs.org" - name: Install Dependencies diff --git a/.github/workflows/publish-npm.yaml b/.github/workflows/publish-npm.yaml index 728ae84b..9aa5b35a 100644 --- a/.github/workflows/publish-npm.yaml +++ b/.github/workflows/publish-npm.yaml @@ -15,7 +15,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v3 with: - node-version: "21" + node-version: "22" registry-url: "https://registry.npmjs.org" - name: Install Dependencies diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 62f01454..d48212fd 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -15,7 +15,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v3 with: - node-version: "21" + node-version: "22" registry-url: "https://registry.npmjs.org" - name: Install Dependencies diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.ts b/typechain-types/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.ts deleted file mode 100644 index 5408b5bc..00000000 --- a/typechain-types/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.ts +++ /dev/null @@ -1,359 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../common"; - -export interface AccessControlUpgradeableInterface extends Interface { - getFunction( - nameOrSignature: - | "DEFAULT_ADMIN_ROLE" - | "getRoleAdmin" - | "grantRole" - | "hasRole" - | "renounceRole" - | "revokeRole" - | "supportsInterface" - ): FunctionFragment; - - getEvent( - nameOrSignatureOrTopic: - | "Initialized" - | "RoleAdminChanged" - | "RoleGranted" - | "RoleRevoked" - ): EventFragment; - - encodeFunctionData( - functionFragment: "DEFAULT_ADMIN_ROLE", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getRoleAdmin", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "grantRole", - values: [BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "hasRole", - values: [BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "renounceRole", - values: [BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "revokeRole", - values: [BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "supportsInterface", - values: [BytesLike] - ): string; - - decodeFunctionResult( - functionFragment: "DEFAULT_ADMIN_ROLE", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getRoleAdmin", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "renounceRole", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "supportsInterface", - data: BytesLike - ): Result; -} - -export namespace InitializedEvent { - export type InputTuple = [version: BigNumberish]; - export type OutputTuple = [version: bigint]; - export interface OutputObject { - version: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace RoleAdminChangedEvent { - export type InputTuple = [ - role: BytesLike, - previousAdminRole: BytesLike, - newAdminRole: BytesLike - ]; - export type OutputTuple = [ - role: string, - previousAdminRole: string, - newAdminRole: string - ]; - export interface OutputObject { - role: string; - previousAdminRole: string; - newAdminRole: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace RoleGrantedEvent { - export type InputTuple = [ - role: BytesLike, - account: AddressLike, - sender: AddressLike - ]; - export type OutputTuple = [role: string, account: string, sender: string]; - export interface OutputObject { - role: string; - account: string; - sender: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace RoleRevokedEvent { - export type InputTuple = [ - role: BytesLike, - account: AddressLike, - sender: AddressLike - ]; - export type OutputTuple = [role: string, account: string, sender: string]; - export interface OutputObject { - role: string; - account: string; - sender: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface AccessControlUpgradeable extends BaseContract { - connect(runner?: ContractRunner | null): AccessControlUpgradeable; - waitForDeployment(): Promise; - - interface: AccessControlUpgradeableInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - DEFAULT_ADMIN_ROLE: TypedContractMethod<[], [string], "view">; - - getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">; - - grantRole: TypedContractMethod< - [role: BytesLike, account: AddressLike], - [void], - "nonpayable" - >; - - hasRole: TypedContractMethod< - [role: BytesLike, account: AddressLike], - [boolean], - "view" - >; - - renounceRole: TypedContractMethod< - [role: BytesLike, callerConfirmation: AddressLike], - [void], - "nonpayable" - >; - - revokeRole: TypedContractMethod< - [role: BytesLike, account: AddressLike], - [void], - "nonpayable" - >; - - supportsInterface: TypedContractMethod< - [interfaceId: BytesLike], - [boolean], - "view" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "DEFAULT_ADMIN_ROLE" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "getRoleAdmin" - ): TypedContractMethod<[role: BytesLike], [string], "view">; - getFunction( - nameOrSignature: "grantRole" - ): TypedContractMethod< - [role: BytesLike, account: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "hasRole" - ): TypedContractMethod< - [role: BytesLike, account: AddressLike], - [boolean], - "view" - >; - getFunction( - nameOrSignature: "renounceRole" - ): TypedContractMethod< - [role: BytesLike, callerConfirmation: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "revokeRole" - ): TypedContractMethod< - [role: BytesLike, account: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "supportsInterface" - ): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; - - getEvent( - key: "Initialized" - ): TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - getEvent( - key: "RoleAdminChanged" - ): TypedContractEvent< - RoleAdminChangedEvent.InputTuple, - RoleAdminChangedEvent.OutputTuple, - RoleAdminChangedEvent.OutputObject - >; - getEvent( - key: "RoleGranted" - ): TypedContractEvent< - RoleGrantedEvent.InputTuple, - RoleGrantedEvent.OutputTuple, - RoleGrantedEvent.OutputObject - >; - getEvent( - key: "RoleRevoked" - ): TypedContractEvent< - RoleRevokedEvent.InputTuple, - RoleRevokedEvent.OutputTuple, - RoleRevokedEvent.OutputObject - >; - - filters: { - "Initialized(uint64)": TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - Initialized: TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - - "RoleAdminChanged(bytes32,bytes32,bytes32)": TypedContractEvent< - RoleAdminChangedEvent.InputTuple, - RoleAdminChangedEvent.OutputTuple, - RoleAdminChangedEvent.OutputObject - >; - RoleAdminChanged: TypedContractEvent< - RoleAdminChangedEvent.InputTuple, - RoleAdminChangedEvent.OutputTuple, - RoleAdminChangedEvent.OutputObject - >; - - "RoleGranted(bytes32,address,address)": TypedContractEvent< - RoleGrantedEvent.InputTuple, - RoleGrantedEvent.OutputTuple, - RoleGrantedEvent.OutputObject - >; - RoleGranted: TypedContractEvent< - RoleGrantedEvent.InputTuple, - RoleGrantedEvent.OutputTuple, - RoleGrantedEvent.OutputObject - >; - - "RoleRevoked(bytes32,address,address)": TypedContractEvent< - RoleRevokedEvent.InputTuple, - RoleRevokedEvent.OutputTuple, - RoleRevokedEvent.OutputObject - >; - RoleRevoked: TypedContractEvent< - RoleRevokedEvent.InputTuple, - RoleRevokedEvent.OutputTuple, - RoleRevokedEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/access/index.ts b/typechain-types/@openzeppelin/contracts-upgradeable/access/index.ts deleted file mode 100644 index 6fe0d909..00000000 --- a/typechain-types/@openzeppelin/contracts-upgradeable/access/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { AccessControlUpgradeable } from "./AccessControlUpgradeable"; diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/index.ts b/typechain-types/@openzeppelin/contracts-upgradeable/index.ts deleted file mode 100644 index cb37af6a..00000000 --- a/typechain-types/@openzeppelin/contracts-upgradeable/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as access from "./access"; -export type { access }; -import type * as proxy from "./proxy"; -export type { proxy }; -import type * as utils from "./utils"; -export type { utils }; diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/proxy/index.ts b/typechain-types/@openzeppelin/contracts-upgradeable/proxy/index.ts deleted file mode 100644 index 74cdc5fa..00000000 --- a/typechain-types/@openzeppelin/contracts-upgradeable/proxy/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as utils from "./utils"; -export type { utils }; diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.ts b/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.ts deleted file mode 100644 index b449ea2c..00000000 --- a/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.ts +++ /dev/null @@ -1,105 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - FunctionFragment, - Interface, - EventFragment, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, -} from "../../../../common"; - -export interface InitializableInterface extends Interface { - getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; -} - -export namespace InitializedEvent { - export type InputTuple = [version: BigNumberish]; - export type OutputTuple = [version: bigint]; - export interface OutputObject { - version: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface Initializable extends BaseContract { - connect(runner?: ContractRunner | null): Initializable; - waitForDeployment(): Promise; - - interface: InitializableInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - getEvent( - key: "Initialized" - ): TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - - filters: { - "Initialized(uint64)": TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - Initialized: TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.ts b/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.ts deleted file mode 100644 index fd0c2543..00000000 --- a/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.ts +++ /dev/null @@ -1,196 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../../common"; - -export interface UUPSUpgradeableInterface extends Interface { - getFunction( - nameOrSignature: - | "UPGRADE_INTERFACE_VERSION" - | "proxiableUUID" - | "upgradeToAndCall" - ): FunctionFragment; - - getEvent(nameOrSignatureOrTopic: "Initialized" | "Upgraded"): EventFragment; - - encodeFunctionData( - functionFragment: "UPGRADE_INTERFACE_VERSION", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "proxiableUUID", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "upgradeToAndCall", - values: [AddressLike, BytesLike] - ): string; - - decodeFunctionResult( - functionFragment: "UPGRADE_INTERFACE_VERSION", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "proxiableUUID", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "upgradeToAndCall", - data: BytesLike - ): Result; -} - -export namespace InitializedEvent { - export type InputTuple = [version: BigNumberish]; - export type OutputTuple = [version: bigint]; - export interface OutputObject { - version: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UpgradedEvent { - export type InputTuple = [implementation: AddressLike]; - export type OutputTuple = [implementation: string]; - export interface OutputObject { - implementation: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface UUPSUpgradeable extends BaseContract { - connect(runner?: ContractRunner | null): UUPSUpgradeable; - waitForDeployment(): Promise; - - interface: UUPSUpgradeableInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - UPGRADE_INTERFACE_VERSION: TypedContractMethod<[], [string], "view">; - - proxiableUUID: TypedContractMethod<[], [string], "view">; - - upgradeToAndCall: TypedContractMethod< - [newImplementation: AddressLike, data: BytesLike], - [void], - "payable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "UPGRADE_INTERFACE_VERSION" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "proxiableUUID" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "upgradeToAndCall" - ): TypedContractMethod< - [newImplementation: AddressLike, data: BytesLike], - [void], - "payable" - >; - - getEvent( - key: "Initialized" - ): TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - getEvent( - key: "Upgraded" - ): TypedContractEvent< - UpgradedEvent.InputTuple, - UpgradedEvent.OutputTuple, - UpgradedEvent.OutputObject - >; - - filters: { - "Initialized(uint64)": TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - Initialized: TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - - "Upgraded(address)": TypedContractEvent< - UpgradedEvent.InputTuple, - UpgradedEvent.OutputTuple, - UpgradedEvent.OutputObject - >; - Upgraded: TypedContractEvent< - UpgradedEvent.InputTuple, - UpgradedEvent.OutputTuple, - UpgradedEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/index.ts b/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/index.ts deleted file mode 100644 index f23837ba..00000000 --- a/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { Initializable } from "./Initializable"; -export type { UUPSUpgradeable } from "./UUPSUpgradeable"; diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.ts b/typechain-types/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.ts deleted file mode 100644 index a6af1bed..00000000 --- a/typechain-types/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.ts +++ /dev/null @@ -1,105 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - FunctionFragment, - Interface, - EventFragment, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, -} from "../../../common"; - -export interface ContextUpgradeableInterface extends Interface { - getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; -} - -export namespace InitializedEvent { - export type InputTuple = [version: BigNumberish]; - export type OutputTuple = [version: bigint]; - export interface OutputObject { - version: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface ContextUpgradeable extends BaseContract { - connect(runner?: ContractRunner | null): ContextUpgradeable; - waitForDeployment(): Promise; - - interface: ContextUpgradeableInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - getEvent( - key: "Initialized" - ): TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - - filters: { - "Initialized(uint64)": TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - Initialized: TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.ts b/typechain-types/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.ts deleted file mode 100644 index 4f3ad279..00000000 --- a/typechain-types/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.ts +++ /dev/null @@ -1,183 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../common"; - -export interface PausableUpgradeableInterface extends Interface { - getFunction(nameOrSignature: "paused"): FunctionFragment; - - getEvent( - nameOrSignatureOrTopic: "Initialized" | "Paused" | "Unpaused" - ): EventFragment; - - encodeFunctionData(functionFragment: "paused", values?: undefined): string; - - decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result; -} - -export namespace InitializedEvent { - export type InputTuple = [version: BigNumberish]; - export type OutputTuple = [version: bigint]; - export interface OutputObject { - version: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace PausedEvent { - export type InputTuple = [account: AddressLike]; - export type OutputTuple = [account: string]; - export interface OutputObject { - account: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UnpausedEvent { - export type InputTuple = [account: AddressLike]; - export type OutputTuple = [account: string]; - export interface OutputObject { - account: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface PausableUpgradeable extends BaseContract { - connect(runner?: ContractRunner | null): PausableUpgradeable; - waitForDeployment(): Promise; - - interface: PausableUpgradeableInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - paused: TypedContractMethod<[], [boolean], "view">; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "paused" - ): TypedContractMethod<[], [boolean], "view">; - - getEvent( - key: "Initialized" - ): TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - getEvent( - key: "Paused" - ): TypedContractEvent< - PausedEvent.InputTuple, - PausedEvent.OutputTuple, - PausedEvent.OutputObject - >; - getEvent( - key: "Unpaused" - ): TypedContractEvent< - UnpausedEvent.InputTuple, - UnpausedEvent.OutputTuple, - UnpausedEvent.OutputObject - >; - - filters: { - "Initialized(uint64)": TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - Initialized: TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - - "Paused(address)": TypedContractEvent< - PausedEvent.InputTuple, - PausedEvent.OutputTuple, - PausedEvent.OutputObject - >; - Paused: TypedContractEvent< - PausedEvent.InputTuple, - PausedEvent.OutputTuple, - PausedEvent.OutputObject - >; - - "Unpaused(address)": TypedContractEvent< - UnpausedEvent.InputTuple, - UnpausedEvent.OutputTuple, - UnpausedEvent.OutputObject - >; - Unpaused: TypedContractEvent< - UnpausedEvent.InputTuple, - UnpausedEvent.OutputTuple, - UnpausedEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.ts b/typechain-types/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.ts deleted file mode 100644 index f78ba69e..00000000 --- a/typechain-types/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.ts +++ /dev/null @@ -1,105 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - FunctionFragment, - Interface, - EventFragment, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, -} from "../../../common"; - -export interface ReentrancyGuardUpgradeableInterface extends Interface { - getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; -} - -export namespace InitializedEvent { - export type InputTuple = [version: BigNumberish]; - export type OutputTuple = [version: bigint]; - export interface OutputObject { - version: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface ReentrancyGuardUpgradeable extends BaseContract { - connect(runner?: ContractRunner | null): ReentrancyGuardUpgradeable; - waitForDeployment(): Promise; - - interface: ReentrancyGuardUpgradeableInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - getEvent( - key: "Initialized" - ): TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - - filters: { - "Initialized(uint64)": TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - Initialized: TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/utils/index.ts b/typechain-types/@openzeppelin/contracts-upgradeable/utils/index.ts deleted file mode 100644 index c1dd9cf4..00000000 --- a/typechain-types/@openzeppelin/contracts-upgradeable/utils/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as introspection from "./introspection"; -export type { introspection }; -export type { ContextUpgradeable } from "./ContextUpgradeable"; -export type { PausableUpgradeable } from "./PausableUpgradeable"; -export type { ReentrancyGuardUpgradeable } from "./ReentrancyGuardUpgradeable"; diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.ts b/typechain-types/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.ts deleted file mode 100644 index b39c00c6..00000000 --- a/typechain-types/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.ts +++ /dev/null @@ -1,130 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../../common"; - -export interface ERC165UpgradeableInterface extends Interface { - getFunction(nameOrSignature: "supportsInterface"): FunctionFragment; - - getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; - - encodeFunctionData( - functionFragment: "supportsInterface", - values: [BytesLike] - ): string; - - decodeFunctionResult( - functionFragment: "supportsInterface", - data: BytesLike - ): Result; -} - -export namespace InitializedEvent { - export type InputTuple = [version: BigNumberish]; - export type OutputTuple = [version: bigint]; - export interface OutputObject { - version: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface ERC165Upgradeable extends BaseContract { - connect(runner?: ContractRunner | null): ERC165Upgradeable; - waitForDeployment(): Promise; - - interface: ERC165UpgradeableInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - supportsInterface: TypedContractMethod< - [interfaceId: BytesLike], - [boolean], - "view" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "supportsInterface" - ): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; - - getEvent( - key: "Initialized" - ): TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - - filters: { - "Initialized(uint64)": TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - Initialized: TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/utils/introspection/index.ts b/typechain-types/@openzeppelin/contracts-upgradeable/utils/introspection/index.ts deleted file mode 100644 index dd989106..00000000 --- a/typechain-types/@openzeppelin/contracts-upgradeable/utils/introspection/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { ERC165Upgradeable } from "./ERC165Upgradeable"; diff --git a/typechain-types/@openzeppelin/contracts/access/IAccessControl.ts b/typechain-types/@openzeppelin/contracts/access/IAccessControl.ts deleted file mode 100644 index 1f0c8cfb..00000000 --- a/typechain-types/@openzeppelin/contracts/access/IAccessControl.ts +++ /dev/null @@ -1,292 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../common"; - -export interface IAccessControlInterface extends Interface { - getFunction( - nameOrSignature: - | "getRoleAdmin" - | "grantRole" - | "hasRole" - | "renounceRole" - | "revokeRole" - ): FunctionFragment; - - getEvent( - nameOrSignatureOrTopic: "RoleAdminChanged" | "RoleGranted" | "RoleRevoked" - ): EventFragment; - - encodeFunctionData( - functionFragment: "getRoleAdmin", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "grantRole", - values: [BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "hasRole", - values: [BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "renounceRole", - values: [BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "revokeRole", - values: [BytesLike, AddressLike] - ): string; - - decodeFunctionResult( - functionFragment: "getRoleAdmin", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "renounceRole", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result; -} - -export namespace RoleAdminChangedEvent { - export type InputTuple = [ - role: BytesLike, - previousAdminRole: BytesLike, - newAdminRole: BytesLike - ]; - export type OutputTuple = [ - role: string, - previousAdminRole: string, - newAdminRole: string - ]; - export interface OutputObject { - role: string; - previousAdminRole: string; - newAdminRole: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace RoleGrantedEvent { - export type InputTuple = [ - role: BytesLike, - account: AddressLike, - sender: AddressLike - ]; - export type OutputTuple = [role: string, account: string, sender: string]; - export interface OutputObject { - role: string; - account: string; - sender: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace RoleRevokedEvent { - export type InputTuple = [ - role: BytesLike, - account: AddressLike, - sender: AddressLike - ]; - export type OutputTuple = [role: string, account: string, sender: string]; - export interface OutputObject { - role: string; - account: string; - sender: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface IAccessControl extends BaseContract { - connect(runner?: ContractRunner | null): IAccessControl; - waitForDeployment(): Promise; - - interface: IAccessControlInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">; - - grantRole: TypedContractMethod< - [role: BytesLike, account: AddressLike], - [void], - "nonpayable" - >; - - hasRole: TypedContractMethod< - [role: BytesLike, account: AddressLike], - [boolean], - "view" - >; - - renounceRole: TypedContractMethod< - [role: BytesLike, callerConfirmation: AddressLike], - [void], - "nonpayable" - >; - - revokeRole: TypedContractMethod< - [role: BytesLike, account: AddressLike], - [void], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "getRoleAdmin" - ): TypedContractMethod<[role: BytesLike], [string], "view">; - getFunction( - nameOrSignature: "grantRole" - ): TypedContractMethod< - [role: BytesLike, account: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "hasRole" - ): TypedContractMethod< - [role: BytesLike, account: AddressLike], - [boolean], - "view" - >; - getFunction( - nameOrSignature: "renounceRole" - ): TypedContractMethod< - [role: BytesLike, callerConfirmation: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "revokeRole" - ): TypedContractMethod< - [role: BytesLike, account: AddressLike], - [void], - "nonpayable" - >; - - getEvent( - key: "RoleAdminChanged" - ): TypedContractEvent< - RoleAdminChangedEvent.InputTuple, - RoleAdminChangedEvent.OutputTuple, - RoleAdminChangedEvent.OutputObject - >; - getEvent( - key: "RoleGranted" - ): TypedContractEvent< - RoleGrantedEvent.InputTuple, - RoleGrantedEvent.OutputTuple, - RoleGrantedEvent.OutputObject - >; - getEvent( - key: "RoleRevoked" - ): TypedContractEvent< - RoleRevokedEvent.InputTuple, - RoleRevokedEvent.OutputTuple, - RoleRevokedEvent.OutputObject - >; - - filters: { - "RoleAdminChanged(bytes32,bytes32,bytes32)": TypedContractEvent< - RoleAdminChangedEvent.InputTuple, - RoleAdminChangedEvent.OutputTuple, - RoleAdminChangedEvent.OutputObject - >; - RoleAdminChanged: TypedContractEvent< - RoleAdminChangedEvent.InputTuple, - RoleAdminChangedEvent.OutputTuple, - RoleAdminChangedEvent.OutputObject - >; - - "RoleGranted(bytes32,address,address)": TypedContractEvent< - RoleGrantedEvent.InputTuple, - RoleGrantedEvent.OutputTuple, - RoleGrantedEvent.OutputObject - >; - RoleGranted: TypedContractEvent< - RoleGrantedEvent.InputTuple, - RoleGrantedEvent.OutputTuple, - RoleGrantedEvent.OutputObject - >; - - "RoleRevoked(bytes32,address,address)": TypedContractEvent< - RoleRevokedEvent.InputTuple, - RoleRevokedEvent.OutputTuple, - RoleRevokedEvent.OutputObject - >; - RoleRevoked: TypedContractEvent< - RoleRevokedEvent.InputTuple, - RoleRevokedEvent.OutputTuple, - RoleRevokedEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@openzeppelin/contracts/access/index.ts b/typechain-types/@openzeppelin/contracts/access/index.ts deleted file mode 100644 index 9ad8b51e..00000000 --- a/typechain-types/@openzeppelin/contracts/access/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { IAccessControl } from "./IAccessControl"; diff --git a/typechain-types/@openzeppelin/contracts/index.ts b/typechain-types/@openzeppelin/contracts/index.ts deleted file mode 100644 index b570e960..00000000 --- a/typechain-types/@openzeppelin/contracts/index.ts +++ /dev/null @@ -1,13 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as access from "./access"; -export type { access }; -import type * as interfaces from "./interfaces"; -export type { interfaces }; -import type * as proxy from "./proxy"; -export type { proxy }; -import type * as token from "./token"; -export type { token }; -import type * as utils from "./utils"; -export type { utils }; diff --git a/typechain-types/@openzeppelin/contracts/interfaces/IERC1363.ts b/typechain-types/@openzeppelin/contracts/interfaces/IERC1363.ts deleted file mode 100644 index 9f620e7b..00000000 --- a/typechain-types/@openzeppelin/contracts/interfaces/IERC1363.ts +++ /dev/null @@ -1,412 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../common"; - -export interface IERC1363Interface extends Interface { - getFunction( - nameOrSignature: - | "allowance" - | "approve" - | "approveAndCall(address,uint256)" - | "approveAndCall(address,uint256,bytes)" - | "balanceOf" - | "supportsInterface" - | "totalSupply" - | "transfer" - | "transferAndCall(address,uint256)" - | "transferAndCall(address,uint256,bytes)" - | "transferFrom" - | "transferFromAndCall(address,address,uint256,bytes)" - | "transferFromAndCall(address,address,uint256)" - ): FunctionFragment; - - getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; - - encodeFunctionData( - functionFragment: "allowance", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "approveAndCall(address,uint256)", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "approveAndCall(address,uint256,bytes)", - values: [AddressLike, BigNumberish, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "supportsInterface", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferAndCall(address,uint256)", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferAndCall(address,uint256,bytes)", - values: [AddressLike, BigNumberish, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFromAndCall(address,address,uint256,bytes)", - values: [AddressLike, AddressLike, BigNumberish, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "transferFromAndCall(address,address,uint256)", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "approveAndCall(address,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "approveAndCall(address,uint256,bytes)", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "supportsInterface", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferAndCall(address,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "transferAndCall(address,uint256,bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "transferFromAndCall(address,address,uint256,bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "transferFromAndCall(address,address,uint256)", - data: BytesLike - ): Result; -} - -export namespace ApprovalEvent { - export type InputTuple = [ - owner: AddressLike, - spender: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [owner: string, spender: string, value: bigint]; - export interface OutputObject { - owner: string; - spender: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace TransferEvent { - export type InputTuple = [ - from: AddressLike, - to: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [from: string, to: string, value: bigint]; - export interface OutputObject { - from: string; - to: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface IERC1363 extends BaseContract { - connect(runner?: ContractRunner | null): IERC1363; - waitForDeployment(): Promise; - - interface: IERC1363Interface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - allowance: TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - - approve: TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - "approveAndCall(address,uint256)": TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - "approveAndCall(address,uint256,bytes)": TypedContractMethod< - [spender: AddressLike, value: BigNumberish, data: BytesLike], - [boolean], - "nonpayable" - >; - - balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; - - supportsInterface: TypedContractMethod< - [interfaceId: BytesLike], - [boolean], - "view" - >; - - totalSupply: TypedContractMethod<[], [bigint], "view">; - - transfer: TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - "transferAndCall(address,uint256)": TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - "transferAndCall(address,uint256,bytes)": TypedContractMethod< - [to: AddressLike, value: BigNumberish, data: BytesLike], - [boolean], - "nonpayable" - >; - - transferFrom: TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - "transferFromAndCall(address,address,uint256,bytes)": TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish, data: BytesLike], - [boolean], - "nonpayable" - >; - - "transferFromAndCall(address,address,uint256)": TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "allowance" - ): TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "approve" - ): TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "approveAndCall(address,uint256)" - ): TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "approveAndCall(address,uint256,bytes)" - ): TypedContractMethod< - [spender: AddressLike, value: BigNumberish, data: BytesLike], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "balanceOf" - ): TypedContractMethod<[account: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "supportsInterface" - ): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; - getFunction( - nameOrSignature: "totalSupply" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "transfer" - ): TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "transferAndCall(address,uint256)" - ): TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "transferAndCall(address,uint256,bytes)" - ): TypedContractMethod< - [to: AddressLike, value: BigNumberish, data: BytesLike], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "transferFrom" - ): TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "transferFromAndCall(address,address,uint256,bytes)" - ): TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish, data: BytesLike], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "transferFromAndCall(address,address,uint256)" - ): TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getEvent( - key: "Approval" - ): TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - getEvent( - key: "Transfer" - ): TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - - filters: { - "Approval(address,address,uint256)": TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - Approval: TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - - "Transfer(address,address,uint256)": TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - Transfer: TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@openzeppelin/contracts/interfaces/IERC1967.ts b/typechain-types/@openzeppelin/contracts/interfaces/IERC1967.ts deleted file mode 100644 index 4a317bdb..00000000 --- a/typechain-types/@openzeppelin/contracts/interfaces/IERC1967.ts +++ /dev/null @@ -1,168 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - FunctionFragment, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, -} from "../../../common"; - -export interface IERC1967Interface extends Interface { - getEvent( - nameOrSignatureOrTopic: "AdminChanged" | "BeaconUpgraded" | "Upgraded" - ): EventFragment; -} - -export namespace AdminChangedEvent { - export type InputTuple = [previousAdmin: AddressLike, newAdmin: AddressLike]; - export type OutputTuple = [previousAdmin: string, newAdmin: string]; - export interface OutputObject { - previousAdmin: string; - newAdmin: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace BeaconUpgradedEvent { - export type InputTuple = [beacon: AddressLike]; - export type OutputTuple = [beacon: string]; - export interface OutputObject { - beacon: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UpgradedEvent { - export type InputTuple = [implementation: AddressLike]; - export type OutputTuple = [implementation: string]; - export interface OutputObject { - implementation: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface IERC1967 extends BaseContract { - connect(runner?: ContractRunner | null): IERC1967; - waitForDeployment(): Promise; - - interface: IERC1967Interface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - getEvent( - key: "AdminChanged" - ): TypedContractEvent< - AdminChangedEvent.InputTuple, - AdminChangedEvent.OutputTuple, - AdminChangedEvent.OutputObject - >; - getEvent( - key: "BeaconUpgraded" - ): TypedContractEvent< - BeaconUpgradedEvent.InputTuple, - BeaconUpgradedEvent.OutputTuple, - BeaconUpgradedEvent.OutputObject - >; - getEvent( - key: "Upgraded" - ): TypedContractEvent< - UpgradedEvent.InputTuple, - UpgradedEvent.OutputTuple, - UpgradedEvent.OutputObject - >; - - filters: { - "AdminChanged(address,address)": TypedContractEvent< - AdminChangedEvent.InputTuple, - AdminChangedEvent.OutputTuple, - AdminChangedEvent.OutputObject - >; - AdminChanged: TypedContractEvent< - AdminChangedEvent.InputTuple, - AdminChangedEvent.OutputTuple, - AdminChangedEvent.OutputObject - >; - - "BeaconUpgraded(address)": TypedContractEvent< - BeaconUpgradedEvent.InputTuple, - BeaconUpgradedEvent.OutputTuple, - BeaconUpgradedEvent.OutputObject - >; - BeaconUpgraded: TypedContractEvent< - BeaconUpgradedEvent.InputTuple, - BeaconUpgradedEvent.OutputTuple, - BeaconUpgradedEvent.OutputObject - >; - - "Upgraded(address)": TypedContractEvent< - UpgradedEvent.InputTuple, - UpgradedEvent.OutputTuple, - UpgradedEvent.OutputObject - >; - Upgraded: TypedContractEvent< - UpgradedEvent.InputTuple, - UpgradedEvent.OutputTuple, - UpgradedEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.ts b/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.ts deleted file mode 100644 index f822039b..00000000 --- a/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.ts +++ /dev/null @@ -1,90 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BytesLike, - FunctionFragment, - Result, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../../../common"; - -export interface IERC1822ProxiableInterface extends Interface { - getFunction(nameOrSignature: "proxiableUUID"): FunctionFragment; - - encodeFunctionData( - functionFragment: "proxiableUUID", - values?: undefined - ): string; - - decodeFunctionResult( - functionFragment: "proxiableUUID", - data: BytesLike - ): Result; -} - -export interface IERC1822Proxiable extends BaseContract { - connect(runner?: ContractRunner | null): IERC1822Proxiable; - waitForDeployment(): Promise; - - interface: IERC1822ProxiableInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - proxiableUUID: TypedContractMethod<[], [string], "view">; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "proxiableUUID" - ): TypedContractMethod<[], [string], "view">; - - filters: {}; -} diff --git a/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.ts b/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.ts deleted file mode 100644 index daec45bb..00000000 --- a/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { IERC1822Proxiable } from "./IERC1822Proxiable"; diff --git a/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.ts b/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.ts deleted file mode 100644 index 959e42d8..00000000 --- a/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - FunctionFragment, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, -} from "../../../../common"; - -export interface IERC1155ErrorsInterface extends Interface {} - -export interface IERC1155Errors extends BaseContract { - connect(runner?: ContractRunner | null): IERC1155Errors; - waitForDeployment(): Promise; - - interface: IERC1155ErrorsInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - filters: {}; -} diff --git a/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.ts b/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.ts deleted file mode 100644 index 04699221..00000000 --- a/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - FunctionFragment, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, -} from "../../../../common"; - -export interface IERC20ErrorsInterface extends Interface {} - -export interface IERC20Errors extends BaseContract { - connect(runner?: ContractRunner | null): IERC20Errors; - waitForDeployment(): Promise; - - interface: IERC20ErrorsInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - filters: {}; -} diff --git a/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.ts b/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.ts deleted file mode 100644 index 39b0d2b5..00000000 --- a/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - FunctionFragment, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, -} from "../../../../common"; - -export interface IERC721ErrorsInterface extends Interface {} - -export interface IERC721Errors extends BaseContract { - connect(runner?: ContractRunner | null): IERC721Errors; - waitForDeployment(): Promise; - - interface: IERC721ErrorsInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - filters: {}; -} diff --git a/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts b/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts deleted file mode 100644 index 9415fdf5..00000000 --- a/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { IERC1155Errors } from "./IERC1155Errors"; -export type { IERC20Errors } from "./IERC20Errors"; -export type { IERC721Errors } from "./IERC721Errors"; diff --git a/typechain-types/@openzeppelin/contracts/interfaces/index.ts b/typechain-types/@openzeppelin/contracts/interfaces/index.ts deleted file mode 100644 index 110573ea..00000000 --- a/typechain-types/@openzeppelin/contracts/interfaces/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as draftIerc1822Sol from "./draft-IERC1822.sol"; -export type { draftIerc1822Sol }; -import type * as draftIerc6093Sol from "./draft-IERC6093.sol"; -export type { draftIerc6093Sol }; -export type { IERC1363 } from "./IERC1363"; -export type { IERC1967 } from "./IERC1967"; diff --git a/typechain-types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.ts b/typechain-types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.ts deleted file mode 100644 index 9d43c748..00000000 --- a/typechain-types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.ts +++ /dev/null @@ -1,105 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - FunctionFragment, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, -} from "../../../../common"; - -export interface ERC1967ProxyInterface extends Interface { - getEvent(nameOrSignatureOrTopic: "Upgraded"): EventFragment; -} - -export namespace UpgradedEvent { - export type InputTuple = [implementation: AddressLike]; - export type OutputTuple = [implementation: string]; - export interface OutputObject { - implementation: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface ERC1967Proxy extends BaseContract { - connect(runner?: ContractRunner | null): ERC1967Proxy; - waitForDeployment(): Promise; - - interface: ERC1967ProxyInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - getEvent( - key: "Upgraded" - ): TypedContractEvent< - UpgradedEvent.InputTuple, - UpgradedEvent.OutputTuple, - UpgradedEvent.OutputObject - >; - - filters: { - "Upgraded(address)": TypedContractEvent< - UpgradedEvent.InputTuple, - UpgradedEvent.OutputTuple, - UpgradedEvent.OutputObject - >; - Upgraded: TypedContractEvent< - UpgradedEvent.InputTuple, - UpgradedEvent.OutputTuple, - UpgradedEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.ts b/typechain-types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.ts deleted file mode 100644 index cba1ba06..00000000 --- a/typechain-types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - FunctionFragment, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, -} from "../../../../common"; - -export interface ERC1967UtilsInterface extends Interface {} - -export interface ERC1967Utils extends BaseContract { - connect(runner?: ContractRunner | null): ERC1967Utils; - waitForDeployment(): Promise; - - interface: ERC1967UtilsInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - filters: {}; -} diff --git a/typechain-types/@openzeppelin/contracts/proxy/ERC1967/index.ts b/typechain-types/@openzeppelin/contracts/proxy/ERC1967/index.ts deleted file mode 100644 index 1e96104c..00000000 --- a/typechain-types/@openzeppelin/contracts/proxy/ERC1967/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { ERC1967Proxy } from "./ERC1967Proxy"; -export type { ERC1967Utils } from "./ERC1967Utils"; diff --git a/typechain-types/@openzeppelin/contracts/proxy/Proxy.ts b/typechain-types/@openzeppelin/contracts/proxy/Proxy.ts deleted file mode 100644 index 1cff7a06..00000000 --- a/typechain-types/@openzeppelin/contracts/proxy/Proxy.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - FunctionFragment, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, -} from "../../../common"; - -export interface ProxyInterface extends Interface {} - -export interface Proxy extends BaseContract { - connect(runner?: ContractRunner | null): Proxy; - waitForDeployment(): Promise; - - interface: ProxyInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - filters: {}; -} diff --git a/typechain-types/@openzeppelin/contracts/proxy/beacon/IBeacon.ts b/typechain-types/@openzeppelin/contracts/proxy/beacon/IBeacon.ts deleted file mode 100644 index 27a21e39..00000000 --- a/typechain-types/@openzeppelin/contracts/proxy/beacon/IBeacon.ts +++ /dev/null @@ -1,90 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BytesLike, - FunctionFragment, - Result, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../../../common"; - -export interface IBeaconInterface extends Interface { - getFunction(nameOrSignature: "implementation"): FunctionFragment; - - encodeFunctionData( - functionFragment: "implementation", - values?: undefined - ): string; - - decodeFunctionResult( - functionFragment: "implementation", - data: BytesLike - ): Result; -} - -export interface IBeacon extends BaseContract { - connect(runner?: ContractRunner | null): IBeacon; - waitForDeployment(): Promise; - - interface: IBeaconInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - implementation: TypedContractMethod<[], [string], "view">; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "implementation" - ): TypedContractMethod<[], [string], "view">; - - filters: {}; -} diff --git a/typechain-types/@openzeppelin/contracts/proxy/beacon/index.ts b/typechain-types/@openzeppelin/contracts/proxy/beacon/index.ts deleted file mode 100644 index 9224b1ea..00000000 --- a/typechain-types/@openzeppelin/contracts/proxy/beacon/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { IBeacon } from "./IBeacon"; diff --git a/typechain-types/@openzeppelin/contracts/proxy/index.ts b/typechain-types/@openzeppelin/contracts/proxy/index.ts deleted file mode 100644 index a6b7130e..00000000 --- a/typechain-types/@openzeppelin/contracts/proxy/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as erc1967 from "./ERC1967"; -export type { erc1967 }; -import type * as beacon from "./beacon"; -export type { beacon }; -export type { Proxy } from "./Proxy"; diff --git a/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.ts b/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.ts deleted file mode 100644 index 46736897..00000000 --- a/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.ts +++ /dev/null @@ -1,286 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../../common"; - -export interface ERC20Interface extends Interface { - getFunction( - nameOrSignature: - | "allowance" - | "approve" - | "balanceOf" - | "decimals" - | "name" - | "symbol" - | "totalSupply" - | "transfer" - | "transferFrom" - ): FunctionFragment; - - getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; - - encodeFunctionData( - functionFragment: "allowance", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [AddressLike] - ): string; - encodeFunctionData(functionFragment: "decimals", values?: undefined): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData(functionFragment: "symbol", values?: undefined): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; -} - -export namespace ApprovalEvent { - export type InputTuple = [ - owner: AddressLike, - spender: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [owner: string, spender: string, value: bigint]; - export interface OutputObject { - owner: string; - spender: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace TransferEvent { - export type InputTuple = [ - from: AddressLike, - to: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [from: string, to: string, value: bigint]; - export interface OutputObject { - from: string; - to: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface ERC20 extends BaseContract { - connect(runner?: ContractRunner | null): ERC20; - waitForDeployment(): Promise; - - interface: ERC20Interface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - allowance: TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - - approve: TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; - - decimals: TypedContractMethod<[], [bigint], "view">; - - name: TypedContractMethod<[], [string], "view">; - - symbol: TypedContractMethod<[], [string], "view">; - - totalSupply: TypedContractMethod<[], [bigint], "view">; - - transfer: TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - transferFrom: TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "allowance" - ): TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "approve" - ): TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "balanceOf" - ): TypedContractMethod<[account: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "decimals" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "name" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "symbol" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "totalSupply" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "transfer" - ): TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "transferFrom" - ): TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getEvent( - key: "Approval" - ): TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - getEvent( - key: "Transfer" - ): TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - - filters: { - "Approval(address,address,uint256)": TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - Approval: TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - - "Transfer(address,address,uint256)": TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - Transfer: TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@openzeppelin/contracts/token/ERC20/IERC20.ts b/typechain-types/@openzeppelin/contracts/token/ERC20/IERC20.ts deleted file mode 100644 index d800ff34..00000000 --- a/typechain-types/@openzeppelin/contracts/token/ERC20/IERC20.ts +++ /dev/null @@ -1,262 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../../common"; - -export interface IERC20Interface extends Interface { - getFunction( - nameOrSignature: - | "allowance" - | "approve" - | "balanceOf" - | "totalSupply" - | "transfer" - | "transferFrom" - ): FunctionFragment; - - getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; - - encodeFunctionData( - functionFragment: "allowance", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; -} - -export namespace ApprovalEvent { - export type InputTuple = [ - owner: AddressLike, - spender: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [owner: string, spender: string, value: bigint]; - export interface OutputObject { - owner: string; - spender: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace TransferEvent { - export type InputTuple = [ - from: AddressLike, - to: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [from: string, to: string, value: bigint]; - export interface OutputObject { - from: string; - to: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface IERC20 extends BaseContract { - connect(runner?: ContractRunner | null): IERC20; - waitForDeployment(): Promise; - - interface: IERC20Interface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - allowance: TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - - approve: TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; - - totalSupply: TypedContractMethod<[], [bigint], "view">; - - transfer: TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - transferFrom: TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "allowance" - ): TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "approve" - ): TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "balanceOf" - ): TypedContractMethod<[account: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "totalSupply" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "transfer" - ): TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "transferFrom" - ): TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getEvent( - key: "Approval" - ): TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - getEvent( - key: "Transfer" - ): TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - - filters: { - "Approval(address,address,uint256)": TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - Approval: TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - - "Transfer(address,address,uint256)": TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - Transfer: TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.ts b/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.ts deleted file mode 100644 index 6b509353..00000000 --- a/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.ts +++ /dev/null @@ -1,286 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../../../common"; - -export interface IERC20MetadataInterface extends Interface { - getFunction( - nameOrSignature: - | "allowance" - | "approve" - | "balanceOf" - | "decimals" - | "name" - | "symbol" - | "totalSupply" - | "transfer" - | "transferFrom" - ): FunctionFragment; - - getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; - - encodeFunctionData( - functionFragment: "allowance", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [AddressLike] - ): string; - encodeFunctionData(functionFragment: "decimals", values?: undefined): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData(functionFragment: "symbol", values?: undefined): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; -} - -export namespace ApprovalEvent { - export type InputTuple = [ - owner: AddressLike, - spender: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [owner: string, spender: string, value: bigint]; - export interface OutputObject { - owner: string; - spender: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace TransferEvent { - export type InputTuple = [ - from: AddressLike, - to: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [from: string, to: string, value: bigint]; - export interface OutputObject { - from: string; - to: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface IERC20Metadata extends BaseContract { - connect(runner?: ContractRunner | null): IERC20Metadata; - waitForDeployment(): Promise; - - interface: IERC20MetadataInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - allowance: TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - - approve: TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; - - decimals: TypedContractMethod<[], [bigint], "view">; - - name: TypedContractMethod<[], [string], "view">; - - symbol: TypedContractMethod<[], [string], "view">; - - totalSupply: TypedContractMethod<[], [bigint], "view">; - - transfer: TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - transferFrom: TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "allowance" - ): TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "approve" - ): TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "balanceOf" - ): TypedContractMethod<[account: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "decimals" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "name" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "symbol" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "totalSupply" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "transfer" - ): TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "transferFrom" - ): TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getEvent( - key: "Approval" - ): TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - getEvent( - key: "Transfer" - ): TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - - filters: { - "Approval(address,address,uint256)": TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - Approval: TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - - "Transfer(address,address,uint256)": TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - Transfer: TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.ts b/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.ts deleted file mode 100644 index 6044cdef..00000000 --- a/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { IERC20Metadata } from "./IERC20Metadata"; diff --git a/typechain-types/@openzeppelin/contracts/token/ERC20/index.ts b/typechain-types/@openzeppelin/contracts/token/ERC20/index.ts deleted file mode 100644 index 588dd9bf..00000000 --- a/typechain-types/@openzeppelin/contracts/token/ERC20/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as extensions from "./extensions"; -export type { extensions }; -import type * as utils from "./utils"; -export type { utils }; -export type { ERC20 } from "./ERC20"; -export type { IERC20 } from "./IERC20"; diff --git a/typechain-types/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.ts b/typechain-types/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.ts deleted file mode 100644 index 90d8f8c8..00000000 --- a/typechain-types/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - FunctionFragment, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, -} from "../../../../../common"; - -export interface SafeERC20Interface extends Interface {} - -export interface SafeERC20 extends BaseContract { - connect(runner?: ContractRunner | null): SafeERC20; - waitForDeployment(): Promise; - - interface: SafeERC20Interface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - filters: {}; -} diff --git a/typechain-types/@openzeppelin/contracts/token/ERC20/utils/index.ts b/typechain-types/@openzeppelin/contracts/token/ERC20/utils/index.ts deleted file mode 100644 index 915f5b87..00000000 --- a/typechain-types/@openzeppelin/contracts/token/ERC20/utils/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { SafeERC20 } from "./SafeERC20"; diff --git a/typechain-types/@openzeppelin/contracts/token/index.ts b/typechain-types/@openzeppelin/contracts/token/index.ts deleted file mode 100644 index 5c4062a9..00000000 --- a/typechain-types/@openzeppelin/contracts/token/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as erc20 from "./ERC20"; -export type { erc20 }; diff --git a/typechain-types/@openzeppelin/contracts/utils/Address.ts b/typechain-types/@openzeppelin/contracts/utils/Address.ts deleted file mode 100644 index eaaadeb4..00000000 --- a/typechain-types/@openzeppelin/contracts/utils/Address.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - FunctionFragment, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, -} from "../../../common"; - -export interface AddressInterface extends Interface {} - -export interface Address extends BaseContract { - connect(runner?: ContractRunner | null): Address; - waitForDeployment(): Promise; - - interface: AddressInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - filters: {}; -} diff --git a/typechain-types/@openzeppelin/contracts/utils/Errors.ts b/typechain-types/@openzeppelin/contracts/utils/Errors.ts deleted file mode 100644 index 961498f5..00000000 --- a/typechain-types/@openzeppelin/contracts/utils/Errors.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - FunctionFragment, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, -} from "../../../common"; - -export interface ErrorsInterface extends Interface {} - -export interface Errors extends BaseContract { - connect(runner?: ContractRunner | null): Errors; - waitForDeployment(): Promise; - - interface: ErrorsInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - filters: {}; -} diff --git a/typechain-types/@openzeppelin/contracts/utils/index.ts b/typechain-types/@openzeppelin/contracts/utils/index.ts deleted file mode 100644 index 2787cda6..00000000 --- a/typechain-types/@openzeppelin/contracts/utils/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as introspection from "./introspection"; -export type { introspection }; -export type { Address } from "./Address"; -export type { Errors } from "./Errors"; diff --git a/typechain-types/@openzeppelin/contracts/utils/introspection/IERC165.ts b/typechain-types/@openzeppelin/contracts/utils/introspection/IERC165.ts deleted file mode 100644 index c943112c..00000000 --- a/typechain-types/@openzeppelin/contracts/utils/introspection/IERC165.ts +++ /dev/null @@ -1,94 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BytesLike, - FunctionFragment, - Result, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../../../common"; - -export interface IERC165Interface extends Interface { - getFunction(nameOrSignature: "supportsInterface"): FunctionFragment; - - encodeFunctionData( - functionFragment: "supportsInterface", - values: [BytesLike] - ): string; - - decodeFunctionResult( - functionFragment: "supportsInterface", - data: BytesLike - ): Result; -} - -export interface IERC165 extends BaseContract { - connect(runner?: ContractRunner | null): IERC165; - waitForDeployment(): Promise; - - interface: IERC165Interface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - supportsInterface: TypedContractMethod< - [interfaceId: BytesLike], - [boolean], - "view" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "supportsInterface" - ): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; - - filters: {}; -} diff --git a/typechain-types/@openzeppelin/contracts/utils/introspection/index.ts b/typechain-types/@openzeppelin/contracts/utils/introspection/index.ts deleted file mode 100644 index 3fcca5c2..00000000 --- a/typechain-types/@openzeppelin/contracts/utils/introspection/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { IERC165 } from "./IERC165"; diff --git a/typechain-types/@openzeppelin/index.ts b/typechain-types/@openzeppelin/index.ts deleted file mode 100644 index f34b8770..00000000 --- a/typechain-types/@openzeppelin/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as contracts from "./contracts"; -export type { contracts }; -import type * as contractsUpgradeable from "./contracts-upgradeable"; -export type { contractsUpgradeable }; diff --git a/typechain-types/@uniswap/index.ts b/typechain-types/@uniswap/index.ts deleted file mode 100644 index 7a53629e..00000000 --- a/typechain-types/@uniswap/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as v2Core from "./v2-core"; -export type { v2Core }; -import type * as v2Periphery from "./v2-periphery"; -export type { v2Periphery }; -import type * as v3Core from "./v3-core"; -export type { v3Core }; -import type * as v3Periphery from "./v3-periphery"; -export type { v3Periphery }; diff --git a/typechain-types/@uniswap/v2-core/contracts/UniswapV2ERC20.ts b/typechain-types/@uniswap/v2-core/contracts/UniswapV2ERC20.ts deleted file mode 100644 index 0b95ec20..00000000 --- a/typechain-types/@uniswap/v2-core/contracts/UniswapV2ERC20.ts +++ /dev/null @@ -1,365 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../common"; - -export interface UniswapV2ERC20Interface extends Interface { - getFunction( - nameOrSignature: - | "DOMAIN_SEPARATOR" - | "PERMIT_TYPEHASH" - | "allowance" - | "approve" - | "balanceOf" - | "decimals" - | "name" - | "nonces" - | "permit" - | "symbol" - | "totalSupply" - | "transfer" - | "transferFrom" - ): FunctionFragment; - - getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; - - encodeFunctionData( - functionFragment: "DOMAIN_SEPARATOR", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "PERMIT_TYPEHASH", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "allowance", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [AddressLike] - ): string; - encodeFunctionData(functionFragment: "decimals", values?: undefined): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData(functionFragment: "nonces", values: [AddressLike]): string; - encodeFunctionData( - functionFragment: "permit", - values: [ - AddressLike, - AddressLike, - BigNumberish, - BigNumberish, - BigNumberish, - BytesLike, - BytesLike - ] - ): string; - encodeFunctionData(functionFragment: "symbol", values?: undefined): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - - decodeFunctionResult( - functionFragment: "DOMAIN_SEPARATOR", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "PERMIT_TYPEHASH", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "nonces", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "permit", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; -} - -export namespace ApprovalEvent { - export type InputTuple = [ - owner: AddressLike, - spender: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [owner: string, spender: string, value: bigint]; - export interface OutputObject { - owner: string; - spender: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace TransferEvent { - export type InputTuple = [ - from: AddressLike, - to: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [from: string, to: string, value: bigint]; - export interface OutputObject { - from: string; - to: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface UniswapV2ERC20 extends BaseContract { - connect(runner?: ContractRunner | null): UniswapV2ERC20; - waitForDeployment(): Promise; - - interface: UniswapV2ERC20Interface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - DOMAIN_SEPARATOR: TypedContractMethod<[], [string], "view">; - - PERMIT_TYPEHASH: TypedContractMethod<[], [string], "view">; - - allowance: TypedContractMethod< - [arg0: AddressLike, arg1: AddressLike], - [bigint], - "view" - >; - - approve: TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - balanceOf: TypedContractMethod<[arg0: AddressLike], [bigint], "view">; - - decimals: TypedContractMethod<[], [bigint], "view">; - - name: TypedContractMethod<[], [string], "view">; - - nonces: TypedContractMethod<[arg0: AddressLike], [bigint], "view">; - - permit: TypedContractMethod< - [ - owner: AddressLike, - spender: AddressLike, - value: BigNumberish, - deadline: BigNumberish, - v: BigNumberish, - r: BytesLike, - s: BytesLike - ], - [void], - "nonpayable" - >; - - symbol: TypedContractMethod<[], [string], "view">; - - totalSupply: TypedContractMethod<[], [bigint], "view">; - - transfer: TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - transferFrom: TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "DOMAIN_SEPARATOR" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "PERMIT_TYPEHASH" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "allowance" - ): TypedContractMethod< - [arg0: AddressLike, arg1: AddressLike], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "approve" - ): TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "balanceOf" - ): TypedContractMethod<[arg0: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "decimals" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "name" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "nonces" - ): TypedContractMethod<[arg0: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "permit" - ): TypedContractMethod< - [ - owner: AddressLike, - spender: AddressLike, - value: BigNumberish, - deadline: BigNumberish, - v: BigNumberish, - r: BytesLike, - s: BytesLike - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "symbol" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "totalSupply" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "transfer" - ): TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "transferFrom" - ): TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getEvent( - key: "Approval" - ): TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - getEvent( - key: "Transfer" - ): TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - - filters: { - "Approval(address,address,uint256)": TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - Approval: TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - - "Transfer(address,address,uint256)": TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - Transfer: TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@uniswap/v2-core/contracts/UniswapV2Factory.ts b/typechain-types/@uniswap/v2-core/contracts/UniswapV2Factory.ts deleted file mode 100644 index 35f6d1e2..00000000 --- a/typechain-types/@uniswap/v2-core/contracts/UniswapV2Factory.ts +++ /dev/null @@ -1,243 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../common"; - -export interface UniswapV2FactoryInterface extends Interface { - getFunction( - nameOrSignature: - | "allPairs" - | "allPairsLength" - | "createPair" - | "feeTo" - | "feeToSetter" - | "getPair" - | "setFeeTo" - | "setFeeToSetter" - ): FunctionFragment; - - getEvent(nameOrSignatureOrTopic: "PairCreated"): EventFragment; - - encodeFunctionData( - functionFragment: "allPairs", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "allPairsLength", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "createPair", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData(functionFragment: "feeTo", values?: undefined): string; - encodeFunctionData( - functionFragment: "feeToSetter", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getPair", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "setFeeTo", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "setFeeToSetter", - values: [AddressLike] - ): string; - - decodeFunctionResult(functionFragment: "allPairs", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "allPairsLength", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "createPair", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "feeTo", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "feeToSetter", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "getPair", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "setFeeTo", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "setFeeToSetter", - data: BytesLike - ): Result; -} - -export namespace PairCreatedEvent { - export type InputTuple = [ - token0: AddressLike, - token1: AddressLike, - pair: AddressLike, - arg3: BigNumberish - ]; - export type OutputTuple = [ - token0: string, - token1: string, - pair: string, - arg3: bigint - ]; - export interface OutputObject { - token0: string; - token1: string; - pair: string; - arg3: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface UniswapV2Factory extends BaseContract { - connect(runner?: ContractRunner | null): UniswapV2Factory; - waitForDeployment(): Promise; - - interface: UniswapV2FactoryInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - allPairs: TypedContractMethod<[arg0: BigNumberish], [string], "view">; - - allPairsLength: TypedContractMethod<[], [bigint], "view">; - - createPair: TypedContractMethod< - [tokenA: AddressLike, tokenB: AddressLike], - [string], - "nonpayable" - >; - - feeTo: TypedContractMethod<[], [string], "view">; - - feeToSetter: TypedContractMethod<[], [string], "view">; - - getPair: TypedContractMethod< - [arg0: AddressLike, arg1: AddressLike], - [string], - "view" - >; - - setFeeTo: TypedContractMethod<[_feeTo: AddressLike], [void], "nonpayable">; - - setFeeToSetter: TypedContractMethod< - [_feeToSetter: AddressLike], - [void], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "allPairs" - ): TypedContractMethod<[arg0: BigNumberish], [string], "view">; - getFunction( - nameOrSignature: "allPairsLength" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "createPair" - ): TypedContractMethod< - [tokenA: AddressLike, tokenB: AddressLike], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "feeTo" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "feeToSetter" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "getPair" - ): TypedContractMethod< - [arg0: AddressLike, arg1: AddressLike], - [string], - "view" - >; - getFunction( - nameOrSignature: "setFeeTo" - ): TypedContractMethod<[_feeTo: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "setFeeToSetter" - ): TypedContractMethod<[_feeToSetter: AddressLike], [void], "nonpayable">; - - getEvent( - key: "PairCreated" - ): TypedContractEvent< - PairCreatedEvent.InputTuple, - PairCreatedEvent.OutputTuple, - PairCreatedEvent.OutputObject - >; - - filters: { - "PairCreated(address,address,address,uint256)": TypedContractEvent< - PairCreatedEvent.InputTuple, - PairCreatedEvent.OutputTuple, - PairCreatedEvent.OutputObject - >; - PairCreated: TypedContractEvent< - PairCreatedEvent.InputTuple, - PairCreatedEvent.OutputTuple, - PairCreatedEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@uniswap/v2-core/contracts/UniswapV2Pair.ts b/typechain-types/@uniswap/v2-core/contracts/UniswapV2Pair.ts deleted file mode 100644 index 692de8bc..00000000 --- a/typechain-types/@uniswap/v2-core/contracts/UniswapV2Pair.ts +++ /dev/null @@ -1,728 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../common"; - -export interface UniswapV2PairInterface extends Interface { - getFunction( - nameOrSignature: - | "DOMAIN_SEPARATOR" - | "MINIMUM_LIQUIDITY" - | "PERMIT_TYPEHASH" - | "allowance" - | "approve" - | "balanceOf" - | "burn" - | "decimals" - | "factory" - | "getReserves" - | "initialize" - | "kLast" - | "mint" - | "name" - | "nonces" - | "permit" - | "price0CumulativeLast" - | "price1CumulativeLast" - | "skim" - | "swap" - | "symbol" - | "sync" - | "token0" - | "token1" - | "totalSupply" - | "transfer" - | "transferFrom" - ): FunctionFragment; - - getEvent( - nameOrSignatureOrTopic: - | "Approval" - | "Burn" - | "Mint" - | "Swap" - | "Sync" - | "Transfer" - ): EventFragment; - - encodeFunctionData( - functionFragment: "DOMAIN_SEPARATOR", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "MINIMUM_LIQUIDITY", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "PERMIT_TYPEHASH", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "allowance", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [AddressLike] - ): string; - encodeFunctionData(functionFragment: "burn", values: [AddressLike]): string; - encodeFunctionData(functionFragment: "decimals", values?: undefined): string; - encodeFunctionData(functionFragment: "factory", values?: undefined): string; - encodeFunctionData( - functionFragment: "getReserves", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "initialize", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData(functionFragment: "kLast", values?: undefined): string; - encodeFunctionData(functionFragment: "mint", values: [AddressLike]): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData(functionFragment: "nonces", values: [AddressLike]): string; - encodeFunctionData( - functionFragment: "permit", - values: [ - AddressLike, - AddressLike, - BigNumberish, - BigNumberish, - BigNumberish, - BytesLike, - BytesLike - ] - ): string; - encodeFunctionData( - functionFragment: "price0CumulativeLast", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "price1CumulativeLast", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "skim", values: [AddressLike]): string; - encodeFunctionData( - functionFragment: "swap", - values: [BigNumberish, BigNumberish, AddressLike, BytesLike] - ): string; - encodeFunctionData(functionFragment: "symbol", values?: undefined): string; - encodeFunctionData(functionFragment: "sync", values?: undefined): string; - encodeFunctionData(functionFragment: "token0", values?: undefined): string; - encodeFunctionData(functionFragment: "token1", values?: undefined): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - - decodeFunctionResult( - functionFragment: "DOMAIN_SEPARATOR", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "MINIMUM_LIQUIDITY", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "PERMIT_TYPEHASH", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "getReserves", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "kLast", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "nonces", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "permit", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "price0CumulativeLast", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "price1CumulativeLast", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "skim", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "swap", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "sync", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "token0", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "token1", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; -} - -export namespace ApprovalEvent { - export type InputTuple = [ - owner: AddressLike, - spender: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [owner: string, spender: string, value: bigint]; - export interface OutputObject { - owner: string; - spender: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace BurnEvent { - export type InputTuple = [ - sender: AddressLike, - amount0: BigNumberish, - amount1: BigNumberish, - to: AddressLike - ]; - export type OutputTuple = [ - sender: string, - amount0: bigint, - amount1: bigint, - to: string - ]; - export interface OutputObject { - sender: string; - amount0: bigint; - amount1: bigint; - to: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace MintEvent { - export type InputTuple = [ - sender: AddressLike, - amount0: BigNumberish, - amount1: BigNumberish - ]; - export type OutputTuple = [sender: string, amount0: bigint, amount1: bigint]; - export interface OutputObject { - sender: string; - amount0: bigint; - amount1: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace SwapEvent { - export type InputTuple = [ - sender: AddressLike, - amount0In: BigNumberish, - amount1In: BigNumberish, - amount0Out: BigNumberish, - amount1Out: BigNumberish, - to: AddressLike - ]; - export type OutputTuple = [ - sender: string, - amount0In: bigint, - amount1In: bigint, - amount0Out: bigint, - amount1Out: bigint, - to: string - ]; - export interface OutputObject { - sender: string; - amount0In: bigint; - amount1In: bigint; - amount0Out: bigint; - amount1Out: bigint; - to: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace SyncEvent { - export type InputTuple = [reserve0: BigNumberish, reserve1: BigNumberish]; - export type OutputTuple = [reserve0: bigint, reserve1: bigint]; - export interface OutputObject { - reserve0: bigint; - reserve1: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace TransferEvent { - export type InputTuple = [ - from: AddressLike, - to: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [from: string, to: string, value: bigint]; - export interface OutputObject { - from: string; - to: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface UniswapV2Pair extends BaseContract { - connect(runner?: ContractRunner | null): UniswapV2Pair; - waitForDeployment(): Promise; - - interface: UniswapV2PairInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - DOMAIN_SEPARATOR: TypedContractMethod<[], [string], "view">; - - MINIMUM_LIQUIDITY: TypedContractMethod<[], [bigint], "view">; - - PERMIT_TYPEHASH: TypedContractMethod<[], [string], "view">; - - allowance: TypedContractMethod< - [arg0: AddressLike, arg1: AddressLike], - [bigint], - "view" - >; - - approve: TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - balanceOf: TypedContractMethod<[arg0: AddressLike], [bigint], "view">; - - burn: TypedContractMethod< - [to: AddressLike], - [[bigint, bigint] & { amount0: bigint; amount1: bigint }], - "nonpayable" - >; - - decimals: TypedContractMethod<[], [bigint], "view">; - - factory: TypedContractMethod<[], [string], "view">; - - getReserves: TypedContractMethod< - [], - [ - [bigint, bigint, bigint] & { - _reserve0: bigint; - _reserve1: bigint; - _blockTimestampLast: bigint; - } - ], - "view" - >; - - initialize: TypedContractMethod< - [_token0: AddressLike, _token1: AddressLike], - [void], - "nonpayable" - >; - - kLast: TypedContractMethod<[], [bigint], "view">; - - mint: TypedContractMethod<[to: AddressLike], [bigint], "nonpayable">; - - name: TypedContractMethod<[], [string], "view">; - - nonces: TypedContractMethod<[arg0: AddressLike], [bigint], "view">; - - permit: TypedContractMethod< - [ - owner: AddressLike, - spender: AddressLike, - value: BigNumberish, - deadline: BigNumberish, - v: BigNumberish, - r: BytesLike, - s: BytesLike - ], - [void], - "nonpayable" - >; - - price0CumulativeLast: TypedContractMethod<[], [bigint], "view">; - - price1CumulativeLast: TypedContractMethod<[], [bigint], "view">; - - skim: TypedContractMethod<[to: AddressLike], [void], "nonpayable">; - - swap: TypedContractMethod< - [ - amount0Out: BigNumberish, - amount1Out: BigNumberish, - to: AddressLike, - data: BytesLike - ], - [void], - "nonpayable" - >; - - symbol: TypedContractMethod<[], [string], "view">; - - sync: TypedContractMethod<[], [void], "nonpayable">; - - token0: TypedContractMethod<[], [string], "view">; - - token1: TypedContractMethod<[], [string], "view">; - - totalSupply: TypedContractMethod<[], [bigint], "view">; - - transfer: TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - transferFrom: TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "DOMAIN_SEPARATOR" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "MINIMUM_LIQUIDITY" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "PERMIT_TYPEHASH" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "allowance" - ): TypedContractMethod< - [arg0: AddressLike, arg1: AddressLike], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "approve" - ): TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "balanceOf" - ): TypedContractMethod<[arg0: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "burn" - ): TypedContractMethod< - [to: AddressLike], - [[bigint, bigint] & { amount0: bigint; amount1: bigint }], - "nonpayable" - >; - getFunction( - nameOrSignature: "decimals" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "factory" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "getReserves" - ): TypedContractMethod< - [], - [ - [bigint, bigint, bigint] & { - _reserve0: bigint; - _reserve1: bigint; - _blockTimestampLast: bigint; - } - ], - "view" - >; - getFunction( - nameOrSignature: "initialize" - ): TypedContractMethod< - [_token0: AddressLike, _token1: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "kLast" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "mint" - ): TypedContractMethod<[to: AddressLike], [bigint], "nonpayable">; - getFunction( - nameOrSignature: "name" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "nonces" - ): TypedContractMethod<[arg0: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "permit" - ): TypedContractMethod< - [ - owner: AddressLike, - spender: AddressLike, - value: BigNumberish, - deadline: BigNumberish, - v: BigNumberish, - r: BytesLike, - s: BytesLike - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "price0CumulativeLast" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "price1CumulativeLast" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "skim" - ): TypedContractMethod<[to: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "swap" - ): TypedContractMethod< - [ - amount0Out: BigNumberish, - amount1Out: BigNumberish, - to: AddressLike, - data: BytesLike - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "symbol" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "sync" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "token0" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "token1" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "totalSupply" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "transfer" - ): TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "transferFrom" - ): TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getEvent( - key: "Approval" - ): TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - getEvent( - key: "Burn" - ): TypedContractEvent< - BurnEvent.InputTuple, - BurnEvent.OutputTuple, - BurnEvent.OutputObject - >; - getEvent( - key: "Mint" - ): TypedContractEvent< - MintEvent.InputTuple, - MintEvent.OutputTuple, - MintEvent.OutputObject - >; - getEvent( - key: "Swap" - ): TypedContractEvent< - SwapEvent.InputTuple, - SwapEvent.OutputTuple, - SwapEvent.OutputObject - >; - getEvent( - key: "Sync" - ): TypedContractEvent< - SyncEvent.InputTuple, - SyncEvent.OutputTuple, - SyncEvent.OutputObject - >; - getEvent( - key: "Transfer" - ): TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - - filters: { - "Approval(address,address,uint256)": TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - Approval: TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - - "Burn(address,uint256,uint256,address)": TypedContractEvent< - BurnEvent.InputTuple, - BurnEvent.OutputTuple, - BurnEvent.OutputObject - >; - Burn: TypedContractEvent< - BurnEvent.InputTuple, - BurnEvent.OutputTuple, - BurnEvent.OutputObject - >; - - "Mint(address,uint256,uint256)": TypedContractEvent< - MintEvent.InputTuple, - MintEvent.OutputTuple, - MintEvent.OutputObject - >; - Mint: TypedContractEvent< - MintEvent.InputTuple, - MintEvent.OutputTuple, - MintEvent.OutputObject - >; - - "Swap(address,uint256,uint256,uint256,uint256,address)": TypedContractEvent< - SwapEvent.InputTuple, - SwapEvent.OutputTuple, - SwapEvent.OutputObject - >; - Swap: TypedContractEvent< - SwapEvent.InputTuple, - SwapEvent.OutputTuple, - SwapEvent.OutputObject - >; - - "Sync(uint112,uint112)": TypedContractEvent< - SyncEvent.InputTuple, - SyncEvent.OutputTuple, - SyncEvent.OutputObject - >; - Sync: TypedContractEvent< - SyncEvent.InputTuple, - SyncEvent.OutputTuple, - SyncEvent.OutputObject - >; - - "Transfer(address,address,uint256)": TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - Transfer: TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@uniswap/v2-core/contracts/index.ts b/typechain-types/@uniswap/v2-core/contracts/index.ts deleted file mode 100644 index 45757d7b..00000000 --- a/typechain-types/@uniswap/v2-core/contracts/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as interfaces from "./interfaces"; -export type { interfaces }; -export type { UniswapV2ERC20 } from "./UniswapV2ERC20"; -export type { UniswapV2Factory } from "./UniswapV2Factory"; -export type { UniswapV2Pair } from "./UniswapV2Pair"; diff --git a/typechain-types/@uniswap/v2-core/contracts/interfaces/IERC20.ts b/typechain-types/@uniswap/v2-core/contracts/interfaces/IERC20.ts deleted file mode 100644 index ef222e7f..00000000 --- a/typechain-types/@uniswap/v2-core/contracts/interfaces/IERC20.ts +++ /dev/null @@ -1,286 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../../common"; - -export interface IERC20Interface extends Interface { - getFunction( - nameOrSignature: - | "allowance" - | "approve" - | "balanceOf" - | "decimals" - | "name" - | "symbol" - | "totalSupply" - | "transfer" - | "transferFrom" - ): FunctionFragment; - - getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; - - encodeFunctionData( - functionFragment: "allowance", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [AddressLike] - ): string; - encodeFunctionData(functionFragment: "decimals", values?: undefined): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData(functionFragment: "symbol", values?: undefined): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; -} - -export namespace ApprovalEvent { - export type InputTuple = [ - owner: AddressLike, - spender: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [owner: string, spender: string, value: bigint]; - export interface OutputObject { - owner: string; - spender: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace TransferEvent { - export type InputTuple = [ - from: AddressLike, - to: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [from: string, to: string, value: bigint]; - export interface OutputObject { - from: string; - to: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface IERC20 extends BaseContract { - connect(runner?: ContractRunner | null): IERC20; - waitForDeployment(): Promise; - - interface: IERC20Interface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - allowance: TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - - approve: TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - balanceOf: TypedContractMethod<[owner: AddressLike], [bigint], "view">; - - decimals: TypedContractMethod<[], [bigint], "view">; - - name: TypedContractMethod<[], [string], "view">; - - symbol: TypedContractMethod<[], [string], "view">; - - totalSupply: TypedContractMethod<[], [bigint], "view">; - - transfer: TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - transferFrom: TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "allowance" - ): TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "approve" - ): TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "balanceOf" - ): TypedContractMethod<[owner: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "decimals" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "name" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "symbol" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "totalSupply" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "transfer" - ): TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "transferFrom" - ): TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getEvent( - key: "Approval" - ): TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - getEvent( - key: "Transfer" - ): TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - - filters: { - "Approval(address,address,uint256)": TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - Approval: TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - - "Transfer(address,address,uint256)": TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - Transfer: TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2Callee.ts b/typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2Callee.ts deleted file mode 100644 index 79c1d18e..00000000 --- a/typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2Callee.ts +++ /dev/null @@ -1,110 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../../../common"; - -export interface IUniswapV2CalleeInterface extends Interface { - getFunction(nameOrSignature: "uniswapV2Call"): FunctionFragment; - - encodeFunctionData( - functionFragment: "uniswapV2Call", - values: [AddressLike, BigNumberish, BigNumberish, BytesLike] - ): string; - - decodeFunctionResult( - functionFragment: "uniswapV2Call", - data: BytesLike - ): Result; -} - -export interface IUniswapV2Callee extends BaseContract { - connect(runner?: ContractRunner | null): IUniswapV2Callee; - waitForDeployment(): Promise; - - interface: IUniswapV2CalleeInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - uniswapV2Call: TypedContractMethod< - [ - sender: AddressLike, - amount0: BigNumberish, - amount1: BigNumberish, - data: BytesLike - ], - [void], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "uniswapV2Call" - ): TypedContractMethod< - [ - sender: AddressLike, - amount0: BigNumberish, - amount1: BigNumberish, - data: BytesLike - ], - [void], - "nonpayable" - >; - - filters: {}; -} diff --git a/typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2ERC20.ts b/typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2ERC20.ts deleted file mode 100644 index 5ba7f82c..00000000 --- a/typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2ERC20.ts +++ /dev/null @@ -1,365 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../../common"; - -export interface IUniswapV2ERC20Interface extends Interface { - getFunction( - nameOrSignature: - | "DOMAIN_SEPARATOR" - | "PERMIT_TYPEHASH" - | "allowance" - | "approve" - | "balanceOf" - | "decimals" - | "name" - | "nonces" - | "permit" - | "symbol" - | "totalSupply" - | "transfer" - | "transferFrom" - ): FunctionFragment; - - getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; - - encodeFunctionData( - functionFragment: "DOMAIN_SEPARATOR", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "PERMIT_TYPEHASH", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "allowance", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [AddressLike] - ): string; - encodeFunctionData(functionFragment: "decimals", values?: undefined): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData(functionFragment: "nonces", values: [AddressLike]): string; - encodeFunctionData( - functionFragment: "permit", - values: [ - AddressLike, - AddressLike, - BigNumberish, - BigNumberish, - BigNumberish, - BytesLike, - BytesLike - ] - ): string; - encodeFunctionData(functionFragment: "symbol", values?: undefined): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - - decodeFunctionResult( - functionFragment: "DOMAIN_SEPARATOR", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "PERMIT_TYPEHASH", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "nonces", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "permit", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; -} - -export namespace ApprovalEvent { - export type InputTuple = [ - owner: AddressLike, - spender: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [owner: string, spender: string, value: bigint]; - export interface OutputObject { - owner: string; - spender: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace TransferEvent { - export type InputTuple = [ - from: AddressLike, - to: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [from: string, to: string, value: bigint]; - export interface OutputObject { - from: string; - to: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface IUniswapV2ERC20 extends BaseContract { - connect(runner?: ContractRunner | null): IUniswapV2ERC20; - waitForDeployment(): Promise; - - interface: IUniswapV2ERC20Interface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - DOMAIN_SEPARATOR: TypedContractMethod<[], [string], "view">; - - PERMIT_TYPEHASH: TypedContractMethod<[], [string], "view">; - - allowance: TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - - approve: TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - balanceOf: TypedContractMethod<[owner: AddressLike], [bigint], "view">; - - decimals: TypedContractMethod<[], [bigint], "view">; - - name: TypedContractMethod<[], [string], "view">; - - nonces: TypedContractMethod<[owner: AddressLike], [bigint], "view">; - - permit: TypedContractMethod< - [ - owner: AddressLike, - spender: AddressLike, - value: BigNumberish, - deadline: BigNumberish, - v: BigNumberish, - r: BytesLike, - s: BytesLike - ], - [void], - "nonpayable" - >; - - symbol: TypedContractMethod<[], [string], "view">; - - totalSupply: TypedContractMethod<[], [bigint], "view">; - - transfer: TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - transferFrom: TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "DOMAIN_SEPARATOR" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "PERMIT_TYPEHASH" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "allowance" - ): TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "approve" - ): TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "balanceOf" - ): TypedContractMethod<[owner: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "decimals" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "name" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "nonces" - ): TypedContractMethod<[owner: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "permit" - ): TypedContractMethod< - [ - owner: AddressLike, - spender: AddressLike, - value: BigNumberish, - deadline: BigNumberish, - v: BigNumberish, - r: BytesLike, - s: BytesLike - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "symbol" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "totalSupply" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "transfer" - ): TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "transferFrom" - ): TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getEvent( - key: "Approval" - ): TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - getEvent( - key: "Transfer" - ): TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - - filters: { - "Approval(address,address,uint256)": TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - Approval: TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - - "Transfer(address,address,uint256)": TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - Transfer: TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.ts b/typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.ts deleted file mode 100644 index 1738b032..00000000 --- a/typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.ts +++ /dev/null @@ -1,243 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../../common"; - -export interface IUniswapV2FactoryInterface extends Interface { - getFunction( - nameOrSignature: - | "allPairs" - | "allPairsLength" - | "createPair" - | "feeTo" - | "feeToSetter" - | "getPair" - | "setFeeTo" - | "setFeeToSetter" - ): FunctionFragment; - - getEvent(nameOrSignatureOrTopic: "PairCreated"): EventFragment; - - encodeFunctionData( - functionFragment: "allPairs", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "allPairsLength", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "createPair", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData(functionFragment: "feeTo", values?: undefined): string; - encodeFunctionData( - functionFragment: "feeToSetter", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getPair", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "setFeeTo", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "setFeeToSetter", - values: [AddressLike] - ): string; - - decodeFunctionResult(functionFragment: "allPairs", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "allPairsLength", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "createPair", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "feeTo", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "feeToSetter", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "getPair", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "setFeeTo", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "setFeeToSetter", - data: BytesLike - ): Result; -} - -export namespace PairCreatedEvent { - export type InputTuple = [ - token0: AddressLike, - token1: AddressLike, - pair: AddressLike, - arg3: BigNumberish - ]; - export type OutputTuple = [ - token0: string, - token1: string, - pair: string, - arg3: bigint - ]; - export interface OutputObject { - token0: string; - token1: string; - pair: string; - arg3: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface IUniswapV2Factory extends BaseContract { - connect(runner?: ContractRunner | null): IUniswapV2Factory; - waitForDeployment(): Promise; - - interface: IUniswapV2FactoryInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - allPairs: TypedContractMethod<[arg0: BigNumberish], [string], "view">; - - allPairsLength: TypedContractMethod<[], [bigint], "view">; - - createPair: TypedContractMethod< - [tokenA: AddressLike, tokenB: AddressLike], - [string], - "nonpayable" - >; - - feeTo: TypedContractMethod<[], [string], "view">; - - feeToSetter: TypedContractMethod<[], [string], "view">; - - getPair: TypedContractMethod< - [tokenA: AddressLike, tokenB: AddressLike], - [string], - "view" - >; - - setFeeTo: TypedContractMethod<[arg0: AddressLike], [void], "nonpayable">; - - setFeeToSetter: TypedContractMethod< - [arg0: AddressLike], - [void], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "allPairs" - ): TypedContractMethod<[arg0: BigNumberish], [string], "view">; - getFunction( - nameOrSignature: "allPairsLength" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "createPair" - ): TypedContractMethod< - [tokenA: AddressLike, tokenB: AddressLike], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "feeTo" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "feeToSetter" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "getPair" - ): TypedContractMethod< - [tokenA: AddressLike, tokenB: AddressLike], - [string], - "view" - >; - getFunction( - nameOrSignature: "setFeeTo" - ): TypedContractMethod<[arg0: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "setFeeToSetter" - ): TypedContractMethod<[arg0: AddressLike], [void], "nonpayable">; - - getEvent( - key: "PairCreated" - ): TypedContractEvent< - PairCreatedEvent.InputTuple, - PairCreatedEvent.OutputTuple, - PairCreatedEvent.OutputObject - >; - - filters: { - "PairCreated(address,address,address,uint256)": TypedContractEvent< - PairCreatedEvent.InputTuple, - PairCreatedEvent.OutputTuple, - PairCreatedEvent.OutputObject - >; - PairCreated: TypedContractEvent< - PairCreatedEvent.InputTuple, - PairCreatedEvent.OutputTuple, - PairCreatedEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair.ts b/typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair.ts deleted file mode 100644 index 5219c61c..00000000 --- a/typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair.ts +++ /dev/null @@ -1,728 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../../common"; - -export interface IUniswapV2PairInterface extends Interface { - getFunction( - nameOrSignature: - | "DOMAIN_SEPARATOR" - | "MINIMUM_LIQUIDITY" - | "PERMIT_TYPEHASH" - | "allowance" - | "approve" - | "balanceOf" - | "burn" - | "decimals" - | "factory" - | "getReserves" - | "initialize" - | "kLast" - | "mint" - | "name" - | "nonces" - | "permit" - | "price0CumulativeLast" - | "price1CumulativeLast" - | "skim" - | "swap" - | "symbol" - | "sync" - | "token0" - | "token1" - | "totalSupply" - | "transfer" - | "transferFrom" - ): FunctionFragment; - - getEvent( - nameOrSignatureOrTopic: - | "Approval" - | "Burn" - | "Mint" - | "Swap" - | "Sync" - | "Transfer" - ): EventFragment; - - encodeFunctionData( - functionFragment: "DOMAIN_SEPARATOR", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "MINIMUM_LIQUIDITY", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "PERMIT_TYPEHASH", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "allowance", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [AddressLike] - ): string; - encodeFunctionData(functionFragment: "burn", values: [AddressLike]): string; - encodeFunctionData(functionFragment: "decimals", values?: undefined): string; - encodeFunctionData(functionFragment: "factory", values?: undefined): string; - encodeFunctionData( - functionFragment: "getReserves", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "initialize", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData(functionFragment: "kLast", values?: undefined): string; - encodeFunctionData(functionFragment: "mint", values: [AddressLike]): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData(functionFragment: "nonces", values: [AddressLike]): string; - encodeFunctionData( - functionFragment: "permit", - values: [ - AddressLike, - AddressLike, - BigNumberish, - BigNumberish, - BigNumberish, - BytesLike, - BytesLike - ] - ): string; - encodeFunctionData( - functionFragment: "price0CumulativeLast", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "price1CumulativeLast", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "skim", values: [AddressLike]): string; - encodeFunctionData( - functionFragment: "swap", - values: [BigNumberish, BigNumberish, AddressLike, BytesLike] - ): string; - encodeFunctionData(functionFragment: "symbol", values?: undefined): string; - encodeFunctionData(functionFragment: "sync", values?: undefined): string; - encodeFunctionData(functionFragment: "token0", values?: undefined): string; - encodeFunctionData(functionFragment: "token1", values?: undefined): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - - decodeFunctionResult( - functionFragment: "DOMAIN_SEPARATOR", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "MINIMUM_LIQUIDITY", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "PERMIT_TYPEHASH", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "getReserves", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "kLast", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "nonces", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "permit", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "price0CumulativeLast", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "price1CumulativeLast", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "skim", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "swap", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "sync", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "token0", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "token1", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; -} - -export namespace ApprovalEvent { - export type InputTuple = [ - owner: AddressLike, - spender: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [owner: string, spender: string, value: bigint]; - export interface OutputObject { - owner: string; - spender: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace BurnEvent { - export type InputTuple = [ - sender: AddressLike, - amount0: BigNumberish, - amount1: BigNumberish, - to: AddressLike - ]; - export type OutputTuple = [ - sender: string, - amount0: bigint, - amount1: bigint, - to: string - ]; - export interface OutputObject { - sender: string; - amount0: bigint; - amount1: bigint; - to: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace MintEvent { - export type InputTuple = [ - sender: AddressLike, - amount0: BigNumberish, - amount1: BigNumberish - ]; - export type OutputTuple = [sender: string, amount0: bigint, amount1: bigint]; - export interface OutputObject { - sender: string; - amount0: bigint; - amount1: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace SwapEvent { - export type InputTuple = [ - sender: AddressLike, - amount0In: BigNumberish, - amount1In: BigNumberish, - amount0Out: BigNumberish, - amount1Out: BigNumberish, - to: AddressLike - ]; - export type OutputTuple = [ - sender: string, - amount0In: bigint, - amount1In: bigint, - amount0Out: bigint, - amount1Out: bigint, - to: string - ]; - export interface OutputObject { - sender: string; - amount0In: bigint; - amount1In: bigint; - amount0Out: bigint; - amount1Out: bigint; - to: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace SyncEvent { - export type InputTuple = [reserve0: BigNumberish, reserve1: BigNumberish]; - export type OutputTuple = [reserve0: bigint, reserve1: bigint]; - export interface OutputObject { - reserve0: bigint; - reserve1: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace TransferEvent { - export type InputTuple = [ - from: AddressLike, - to: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [from: string, to: string, value: bigint]; - export interface OutputObject { - from: string; - to: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface IUniswapV2Pair extends BaseContract { - connect(runner?: ContractRunner | null): IUniswapV2Pair; - waitForDeployment(): Promise; - - interface: IUniswapV2PairInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - DOMAIN_SEPARATOR: TypedContractMethod<[], [string], "view">; - - MINIMUM_LIQUIDITY: TypedContractMethod<[], [bigint], "view">; - - PERMIT_TYPEHASH: TypedContractMethod<[], [string], "view">; - - allowance: TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - - approve: TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - balanceOf: TypedContractMethod<[owner: AddressLike], [bigint], "view">; - - burn: TypedContractMethod< - [to: AddressLike], - [[bigint, bigint] & { amount0: bigint; amount1: bigint }], - "nonpayable" - >; - - decimals: TypedContractMethod<[], [bigint], "view">; - - factory: TypedContractMethod<[], [string], "view">; - - getReserves: TypedContractMethod< - [], - [ - [bigint, bigint, bigint] & { - reserve0: bigint; - reserve1: bigint; - blockTimestampLast: bigint; - } - ], - "view" - >; - - initialize: TypedContractMethod< - [arg0: AddressLike, arg1: AddressLike], - [void], - "nonpayable" - >; - - kLast: TypedContractMethod<[], [bigint], "view">; - - mint: TypedContractMethod<[to: AddressLike], [bigint], "nonpayable">; - - name: TypedContractMethod<[], [string], "view">; - - nonces: TypedContractMethod<[owner: AddressLike], [bigint], "view">; - - permit: TypedContractMethod< - [ - owner: AddressLike, - spender: AddressLike, - value: BigNumberish, - deadline: BigNumberish, - v: BigNumberish, - r: BytesLike, - s: BytesLike - ], - [void], - "nonpayable" - >; - - price0CumulativeLast: TypedContractMethod<[], [bigint], "view">; - - price1CumulativeLast: TypedContractMethod<[], [bigint], "view">; - - skim: TypedContractMethod<[to: AddressLike], [void], "nonpayable">; - - swap: TypedContractMethod< - [ - amount0Out: BigNumberish, - amount1Out: BigNumberish, - to: AddressLike, - data: BytesLike - ], - [void], - "nonpayable" - >; - - symbol: TypedContractMethod<[], [string], "view">; - - sync: TypedContractMethod<[], [void], "nonpayable">; - - token0: TypedContractMethod<[], [string], "view">; - - token1: TypedContractMethod<[], [string], "view">; - - totalSupply: TypedContractMethod<[], [bigint], "view">; - - transfer: TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - transferFrom: TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "DOMAIN_SEPARATOR" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "MINIMUM_LIQUIDITY" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "PERMIT_TYPEHASH" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "allowance" - ): TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "approve" - ): TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "balanceOf" - ): TypedContractMethod<[owner: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "burn" - ): TypedContractMethod< - [to: AddressLike], - [[bigint, bigint] & { amount0: bigint; amount1: bigint }], - "nonpayable" - >; - getFunction( - nameOrSignature: "decimals" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "factory" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "getReserves" - ): TypedContractMethod< - [], - [ - [bigint, bigint, bigint] & { - reserve0: bigint; - reserve1: bigint; - blockTimestampLast: bigint; - } - ], - "view" - >; - getFunction( - nameOrSignature: "initialize" - ): TypedContractMethod< - [arg0: AddressLike, arg1: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "kLast" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "mint" - ): TypedContractMethod<[to: AddressLike], [bigint], "nonpayable">; - getFunction( - nameOrSignature: "name" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "nonces" - ): TypedContractMethod<[owner: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "permit" - ): TypedContractMethod< - [ - owner: AddressLike, - spender: AddressLike, - value: BigNumberish, - deadline: BigNumberish, - v: BigNumberish, - r: BytesLike, - s: BytesLike - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "price0CumulativeLast" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "price1CumulativeLast" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "skim" - ): TypedContractMethod<[to: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "swap" - ): TypedContractMethod< - [ - amount0Out: BigNumberish, - amount1Out: BigNumberish, - to: AddressLike, - data: BytesLike - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "symbol" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "sync" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "token0" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "token1" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "totalSupply" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "transfer" - ): TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "transferFrom" - ): TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getEvent( - key: "Approval" - ): TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - getEvent( - key: "Burn" - ): TypedContractEvent< - BurnEvent.InputTuple, - BurnEvent.OutputTuple, - BurnEvent.OutputObject - >; - getEvent( - key: "Mint" - ): TypedContractEvent< - MintEvent.InputTuple, - MintEvent.OutputTuple, - MintEvent.OutputObject - >; - getEvent( - key: "Swap" - ): TypedContractEvent< - SwapEvent.InputTuple, - SwapEvent.OutputTuple, - SwapEvent.OutputObject - >; - getEvent( - key: "Sync" - ): TypedContractEvent< - SyncEvent.InputTuple, - SyncEvent.OutputTuple, - SyncEvent.OutputObject - >; - getEvent( - key: "Transfer" - ): TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - - filters: { - "Approval(address,address,uint256)": TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - Approval: TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - - "Burn(address,uint256,uint256,address)": TypedContractEvent< - BurnEvent.InputTuple, - BurnEvent.OutputTuple, - BurnEvent.OutputObject - >; - Burn: TypedContractEvent< - BurnEvent.InputTuple, - BurnEvent.OutputTuple, - BurnEvent.OutputObject - >; - - "Mint(address,uint256,uint256)": TypedContractEvent< - MintEvent.InputTuple, - MintEvent.OutputTuple, - MintEvent.OutputObject - >; - Mint: TypedContractEvent< - MintEvent.InputTuple, - MintEvent.OutputTuple, - MintEvent.OutputObject - >; - - "Swap(address,uint256,uint256,uint256,uint256,address)": TypedContractEvent< - SwapEvent.InputTuple, - SwapEvent.OutputTuple, - SwapEvent.OutputObject - >; - Swap: TypedContractEvent< - SwapEvent.InputTuple, - SwapEvent.OutputTuple, - SwapEvent.OutputObject - >; - - "Sync(uint112,uint112)": TypedContractEvent< - SyncEvent.InputTuple, - SyncEvent.OutputTuple, - SyncEvent.OutputObject - >; - Sync: TypedContractEvent< - SyncEvent.InputTuple, - SyncEvent.OutputTuple, - SyncEvent.OutputObject - >; - - "Transfer(address,address,uint256)": TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - Transfer: TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@uniswap/v2-core/contracts/interfaces/index.ts b/typechain-types/@uniswap/v2-core/contracts/interfaces/index.ts deleted file mode 100644 index d0e021d7..00000000 --- a/typechain-types/@uniswap/v2-core/contracts/interfaces/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { IERC20 } from "./IERC20"; -export type { IUniswapV2Callee } from "./IUniswapV2Callee"; -export type { IUniswapV2ERC20 } from "./IUniswapV2ERC20"; -export type { IUniswapV2Factory } from "./IUniswapV2Factory"; -export type { IUniswapV2Pair } from "./IUniswapV2Pair"; diff --git a/typechain-types/@uniswap/v2-core/index.ts b/typechain-types/@uniswap/v2-core/index.ts deleted file mode 100644 index a11e4ca2..00000000 --- a/typechain-types/@uniswap/v2-core/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as contracts from "./contracts"; -export type { contracts }; diff --git a/typechain-types/@uniswap/v2-periphery/contracts/UniswapV2Router02.ts b/typechain-types/@uniswap/v2-periphery/contracts/UniswapV2Router02.ts deleted file mode 100644 index dd6417a6..00000000 --- a/typechain-types/@uniswap/v2-periphery/contracts/UniswapV2Router02.ts +++ /dev/null @@ -1,964 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../../common"; - -export interface UniswapV2Router02Interface extends Interface { - getFunction( - nameOrSignature: - | "WETH" - | "addLiquidity" - | "addLiquidityETH" - | "factory" - | "getAmountIn" - | "getAmountOut" - | "getAmountsIn" - | "getAmountsOut" - | "quote" - | "removeLiquidity" - | "removeLiquidityETH" - | "removeLiquidityETHSupportingFeeOnTransferTokens" - | "removeLiquidityETHWithPermit" - | "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens" - | "removeLiquidityWithPermit" - | "swapETHForExactTokens" - | "swapExactETHForTokens" - | "swapExactETHForTokensSupportingFeeOnTransferTokens" - | "swapExactTokensForETH" - | "swapExactTokensForETHSupportingFeeOnTransferTokens" - | "swapExactTokensForTokens" - | "swapExactTokensForTokensSupportingFeeOnTransferTokens" - | "swapTokensForExactETH" - | "swapTokensForExactTokens" - ): FunctionFragment; - - encodeFunctionData(functionFragment: "WETH", values?: undefined): string; - encodeFunctionData( - functionFragment: "addLiquidity", - values: [ - AddressLike, - AddressLike, - BigNumberish, - BigNumberish, - BigNumberish, - BigNumberish, - AddressLike, - BigNumberish - ] - ): string; - encodeFunctionData( - functionFragment: "addLiquidityETH", - values: [ - AddressLike, - BigNumberish, - BigNumberish, - BigNumberish, - AddressLike, - BigNumberish - ] - ): string; - encodeFunctionData(functionFragment: "factory", values?: undefined): string; - encodeFunctionData( - functionFragment: "getAmountIn", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "getAmountOut", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "getAmountsIn", - values: [BigNumberish, AddressLike[]] - ): string; - encodeFunctionData( - functionFragment: "getAmountsOut", - values: [BigNumberish, AddressLike[]] - ): string; - encodeFunctionData( - functionFragment: "quote", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "removeLiquidity", - values: [ - AddressLike, - AddressLike, - BigNumberish, - BigNumberish, - BigNumberish, - AddressLike, - BigNumberish - ] - ): string; - encodeFunctionData( - functionFragment: "removeLiquidityETH", - values: [ - AddressLike, - BigNumberish, - BigNumberish, - BigNumberish, - AddressLike, - BigNumberish - ] - ): string; - encodeFunctionData( - functionFragment: "removeLiquidityETHSupportingFeeOnTransferTokens", - values: [ - AddressLike, - BigNumberish, - BigNumberish, - BigNumberish, - AddressLike, - BigNumberish - ] - ): string; - encodeFunctionData( - functionFragment: "removeLiquidityETHWithPermit", - values: [ - AddressLike, - BigNumberish, - BigNumberish, - BigNumberish, - AddressLike, - BigNumberish, - boolean, - BigNumberish, - BytesLike, - BytesLike - ] - ): string; - encodeFunctionData( - functionFragment: "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", - values: [ - AddressLike, - BigNumberish, - BigNumberish, - BigNumberish, - AddressLike, - BigNumberish, - boolean, - BigNumberish, - BytesLike, - BytesLike - ] - ): string; - encodeFunctionData( - functionFragment: "removeLiquidityWithPermit", - values: [ - AddressLike, - AddressLike, - BigNumberish, - BigNumberish, - BigNumberish, - AddressLike, - BigNumberish, - boolean, - BigNumberish, - BytesLike, - BytesLike - ] - ): string; - encodeFunctionData( - functionFragment: "swapETHForExactTokens", - values: [BigNumberish, AddressLike[], AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "swapExactETHForTokens", - values: [BigNumberish, AddressLike[], AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "swapExactETHForTokensSupportingFeeOnTransferTokens", - values: [BigNumberish, AddressLike[], AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "swapExactTokensForETH", - values: [ - BigNumberish, - BigNumberish, - AddressLike[], - AddressLike, - BigNumberish - ] - ): string; - encodeFunctionData( - functionFragment: "swapExactTokensForETHSupportingFeeOnTransferTokens", - values: [ - BigNumberish, - BigNumberish, - AddressLike[], - AddressLike, - BigNumberish - ] - ): string; - encodeFunctionData( - functionFragment: "swapExactTokensForTokens", - values: [ - BigNumberish, - BigNumberish, - AddressLike[], - AddressLike, - BigNumberish - ] - ): string; - encodeFunctionData( - functionFragment: "swapExactTokensForTokensSupportingFeeOnTransferTokens", - values: [ - BigNumberish, - BigNumberish, - AddressLike[], - AddressLike, - BigNumberish - ] - ): string; - encodeFunctionData( - functionFragment: "swapTokensForExactETH", - values: [ - BigNumberish, - BigNumberish, - AddressLike[], - AddressLike, - BigNumberish - ] - ): string; - encodeFunctionData( - functionFragment: "swapTokensForExactTokens", - values: [ - BigNumberish, - BigNumberish, - AddressLike[], - AddressLike, - BigNumberish - ] - ): string; - - decodeFunctionResult(functionFragment: "WETH", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "addLiquidity", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "addLiquidityETH", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "getAmountIn", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getAmountOut", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getAmountsIn", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getAmountsOut", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "quote", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "removeLiquidity", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "removeLiquidityETH", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "removeLiquidityETHSupportingFeeOnTransferTokens", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "removeLiquidityETHWithPermit", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "removeLiquidityWithPermit", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "swapETHForExactTokens", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "swapExactETHForTokens", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "swapExactETHForTokensSupportingFeeOnTransferTokens", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "swapExactTokensForETH", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "swapExactTokensForETHSupportingFeeOnTransferTokens", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "swapExactTokensForTokens", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "swapExactTokensForTokensSupportingFeeOnTransferTokens", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "swapTokensForExactETH", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "swapTokensForExactTokens", - data: BytesLike - ): Result; -} - -export interface UniswapV2Router02 extends BaseContract { - connect(runner?: ContractRunner | null): UniswapV2Router02; - waitForDeployment(): Promise; - - interface: UniswapV2Router02Interface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - WETH: TypedContractMethod<[], [string], "view">; - - addLiquidity: TypedContractMethod< - [ - tokenA: AddressLike, - tokenB: AddressLike, - amountADesired: BigNumberish, - amountBDesired: BigNumberish, - amountAMin: BigNumberish, - amountBMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [ - [bigint, bigint, bigint] & { - amountA: bigint; - amountB: bigint; - liquidity: bigint; - } - ], - "nonpayable" - >; - - addLiquidityETH: TypedContractMethod< - [ - token: AddressLike, - amountTokenDesired: BigNumberish, - amountTokenMin: BigNumberish, - amountETHMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [ - [bigint, bigint, bigint] & { - amountToken: bigint; - amountETH: bigint; - liquidity: bigint; - } - ], - "payable" - >; - - factory: TypedContractMethod<[], [string], "view">; - - getAmountIn: TypedContractMethod< - [ - amountOut: BigNumberish, - reserveIn: BigNumberish, - reserveOut: BigNumberish - ], - [bigint], - "view" - >; - - getAmountOut: TypedContractMethod< - [amountIn: BigNumberish, reserveIn: BigNumberish, reserveOut: BigNumberish], - [bigint], - "view" - >; - - getAmountsIn: TypedContractMethod< - [amountOut: BigNumberish, path: AddressLike[]], - [bigint[]], - "view" - >; - - getAmountsOut: TypedContractMethod< - [amountIn: BigNumberish, path: AddressLike[]], - [bigint[]], - "view" - >; - - quote: TypedContractMethod< - [amountA: BigNumberish, reserveA: BigNumberish, reserveB: BigNumberish], - [bigint], - "view" - >; - - removeLiquidity: TypedContractMethod< - [ - tokenA: AddressLike, - tokenB: AddressLike, - liquidity: BigNumberish, - amountAMin: BigNumberish, - amountBMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [[bigint, bigint] & { amountA: bigint; amountB: bigint }], - "nonpayable" - >; - - removeLiquidityETH: TypedContractMethod< - [ - token: AddressLike, - liquidity: BigNumberish, - amountTokenMin: BigNumberish, - amountETHMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [[bigint, bigint] & { amountToken: bigint; amountETH: bigint }], - "nonpayable" - >; - - removeLiquidityETHSupportingFeeOnTransferTokens: TypedContractMethod< - [ - token: AddressLike, - liquidity: BigNumberish, - amountTokenMin: BigNumberish, - amountETHMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [bigint], - "nonpayable" - >; - - removeLiquidityETHWithPermit: TypedContractMethod< - [ - token: AddressLike, - liquidity: BigNumberish, - amountTokenMin: BigNumberish, - amountETHMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish, - approveMax: boolean, - v: BigNumberish, - r: BytesLike, - s: BytesLike - ], - [[bigint, bigint] & { amountToken: bigint; amountETH: bigint }], - "nonpayable" - >; - - removeLiquidityETHWithPermitSupportingFeeOnTransferTokens: TypedContractMethod< - [ - token: AddressLike, - liquidity: BigNumberish, - amountTokenMin: BigNumberish, - amountETHMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish, - approveMax: boolean, - v: BigNumberish, - r: BytesLike, - s: BytesLike - ], - [bigint], - "nonpayable" - >; - - removeLiquidityWithPermit: TypedContractMethod< - [ - tokenA: AddressLike, - tokenB: AddressLike, - liquidity: BigNumberish, - amountAMin: BigNumberish, - amountBMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish, - approveMax: boolean, - v: BigNumberish, - r: BytesLike, - s: BytesLike - ], - [[bigint, bigint] & { amountA: bigint; amountB: bigint }], - "nonpayable" - >; - - swapETHForExactTokens: TypedContractMethod< - [ - amountOut: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "payable" - >; - - swapExactETHForTokens: TypedContractMethod< - [ - amountOutMin: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "payable" - >; - - swapExactETHForTokensSupportingFeeOnTransferTokens: TypedContractMethod< - [ - amountOutMin: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [void], - "payable" - >; - - swapExactTokensForETH: TypedContractMethod< - [ - amountIn: BigNumberish, - amountOutMin: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "nonpayable" - >; - - swapExactTokensForETHSupportingFeeOnTransferTokens: TypedContractMethod< - [ - amountIn: BigNumberish, - amountOutMin: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [void], - "nonpayable" - >; - - swapExactTokensForTokens: TypedContractMethod< - [ - amountIn: BigNumberish, - amountOutMin: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "nonpayable" - >; - - swapExactTokensForTokensSupportingFeeOnTransferTokens: TypedContractMethod< - [ - amountIn: BigNumberish, - amountOutMin: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [void], - "nonpayable" - >; - - swapTokensForExactETH: TypedContractMethod< - [ - amountOut: BigNumberish, - amountInMax: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "nonpayable" - >; - - swapTokensForExactTokens: TypedContractMethod< - [ - amountOut: BigNumberish, - amountInMax: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "WETH" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "addLiquidity" - ): TypedContractMethod< - [ - tokenA: AddressLike, - tokenB: AddressLike, - amountADesired: BigNumberish, - amountBDesired: BigNumberish, - amountAMin: BigNumberish, - amountBMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [ - [bigint, bigint, bigint] & { - amountA: bigint; - amountB: bigint; - liquidity: bigint; - } - ], - "nonpayable" - >; - getFunction( - nameOrSignature: "addLiquidityETH" - ): TypedContractMethod< - [ - token: AddressLike, - amountTokenDesired: BigNumberish, - amountTokenMin: BigNumberish, - amountETHMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [ - [bigint, bigint, bigint] & { - amountToken: bigint; - amountETH: bigint; - liquidity: bigint; - } - ], - "payable" - >; - getFunction( - nameOrSignature: "factory" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "getAmountIn" - ): TypedContractMethod< - [ - amountOut: BigNumberish, - reserveIn: BigNumberish, - reserveOut: BigNumberish - ], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "getAmountOut" - ): TypedContractMethod< - [amountIn: BigNumberish, reserveIn: BigNumberish, reserveOut: BigNumberish], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "getAmountsIn" - ): TypedContractMethod< - [amountOut: BigNumberish, path: AddressLike[]], - [bigint[]], - "view" - >; - getFunction( - nameOrSignature: "getAmountsOut" - ): TypedContractMethod< - [amountIn: BigNumberish, path: AddressLike[]], - [bigint[]], - "view" - >; - getFunction( - nameOrSignature: "quote" - ): TypedContractMethod< - [amountA: BigNumberish, reserveA: BigNumberish, reserveB: BigNumberish], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "removeLiquidity" - ): TypedContractMethod< - [ - tokenA: AddressLike, - tokenB: AddressLike, - liquidity: BigNumberish, - amountAMin: BigNumberish, - amountBMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [[bigint, bigint] & { amountA: bigint; amountB: bigint }], - "nonpayable" - >; - getFunction( - nameOrSignature: "removeLiquidityETH" - ): TypedContractMethod< - [ - token: AddressLike, - liquidity: BigNumberish, - amountTokenMin: BigNumberish, - amountETHMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [[bigint, bigint] & { amountToken: bigint; amountETH: bigint }], - "nonpayable" - >; - getFunction( - nameOrSignature: "removeLiquidityETHSupportingFeeOnTransferTokens" - ): TypedContractMethod< - [ - token: AddressLike, - liquidity: BigNumberish, - amountTokenMin: BigNumberish, - amountETHMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [bigint], - "nonpayable" - >; - getFunction( - nameOrSignature: "removeLiquidityETHWithPermit" - ): TypedContractMethod< - [ - token: AddressLike, - liquidity: BigNumberish, - amountTokenMin: BigNumberish, - amountETHMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish, - approveMax: boolean, - v: BigNumberish, - r: BytesLike, - s: BytesLike - ], - [[bigint, bigint] & { amountToken: bigint; amountETH: bigint }], - "nonpayable" - >; - getFunction( - nameOrSignature: "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens" - ): TypedContractMethod< - [ - token: AddressLike, - liquidity: BigNumberish, - amountTokenMin: BigNumberish, - amountETHMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish, - approveMax: boolean, - v: BigNumberish, - r: BytesLike, - s: BytesLike - ], - [bigint], - "nonpayable" - >; - getFunction( - nameOrSignature: "removeLiquidityWithPermit" - ): TypedContractMethod< - [ - tokenA: AddressLike, - tokenB: AddressLike, - liquidity: BigNumberish, - amountAMin: BigNumberish, - amountBMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish, - approveMax: boolean, - v: BigNumberish, - r: BytesLike, - s: BytesLike - ], - [[bigint, bigint] & { amountA: bigint; amountB: bigint }], - "nonpayable" - >; - getFunction( - nameOrSignature: "swapETHForExactTokens" - ): TypedContractMethod< - [ - amountOut: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "payable" - >; - getFunction( - nameOrSignature: "swapExactETHForTokens" - ): TypedContractMethod< - [ - amountOutMin: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "payable" - >; - getFunction( - nameOrSignature: "swapExactETHForTokensSupportingFeeOnTransferTokens" - ): TypedContractMethod< - [ - amountOutMin: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [void], - "payable" - >; - getFunction( - nameOrSignature: "swapExactTokensForETH" - ): TypedContractMethod< - [ - amountIn: BigNumberish, - amountOutMin: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "nonpayable" - >; - getFunction( - nameOrSignature: "swapExactTokensForETHSupportingFeeOnTransferTokens" - ): TypedContractMethod< - [ - amountIn: BigNumberish, - amountOutMin: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "swapExactTokensForTokens" - ): TypedContractMethod< - [ - amountIn: BigNumberish, - amountOutMin: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "nonpayable" - >; - getFunction( - nameOrSignature: "swapExactTokensForTokensSupportingFeeOnTransferTokens" - ): TypedContractMethod< - [ - amountIn: BigNumberish, - amountOutMin: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "swapTokensForExactETH" - ): TypedContractMethod< - [ - amountOut: BigNumberish, - amountInMax: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "nonpayable" - >; - getFunction( - nameOrSignature: "swapTokensForExactTokens" - ): TypedContractMethod< - [ - amountOut: BigNumberish, - amountInMax: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "nonpayable" - >; - - filters: {}; -} diff --git a/typechain-types/@uniswap/v2-periphery/contracts/index.ts b/typechain-types/@uniswap/v2-periphery/contracts/index.ts deleted file mode 100644 index 33335590..00000000 --- a/typechain-types/@uniswap/v2-periphery/contracts/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as interfaces from "./interfaces"; -export type { interfaces }; -export type { UniswapV2Router02 } from "./UniswapV2Router02"; diff --git a/typechain-types/@uniswap/v2-periphery/contracts/interfaces/IERC20.ts b/typechain-types/@uniswap/v2-periphery/contracts/interfaces/IERC20.ts deleted file mode 100644 index ef222e7f..00000000 --- a/typechain-types/@uniswap/v2-periphery/contracts/interfaces/IERC20.ts +++ /dev/null @@ -1,286 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../../common"; - -export interface IERC20Interface extends Interface { - getFunction( - nameOrSignature: - | "allowance" - | "approve" - | "balanceOf" - | "decimals" - | "name" - | "symbol" - | "totalSupply" - | "transfer" - | "transferFrom" - ): FunctionFragment; - - getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; - - encodeFunctionData( - functionFragment: "allowance", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [AddressLike] - ): string; - encodeFunctionData(functionFragment: "decimals", values?: undefined): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData(functionFragment: "symbol", values?: undefined): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; -} - -export namespace ApprovalEvent { - export type InputTuple = [ - owner: AddressLike, - spender: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [owner: string, spender: string, value: bigint]; - export interface OutputObject { - owner: string; - spender: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace TransferEvent { - export type InputTuple = [ - from: AddressLike, - to: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [from: string, to: string, value: bigint]; - export interface OutputObject { - from: string; - to: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface IERC20 extends BaseContract { - connect(runner?: ContractRunner | null): IERC20; - waitForDeployment(): Promise; - - interface: IERC20Interface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - allowance: TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - - approve: TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - balanceOf: TypedContractMethod<[owner: AddressLike], [bigint], "view">; - - decimals: TypedContractMethod<[], [bigint], "view">; - - name: TypedContractMethod<[], [string], "view">; - - symbol: TypedContractMethod<[], [string], "view">; - - totalSupply: TypedContractMethod<[], [bigint], "view">; - - transfer: TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - transferFrom: TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "allowance" - ): TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "approve" - ): TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "balanceOf" - ): TypedContractMethod<[owner: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "decimals" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "name" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "symbol" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "totalSupply" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "transfer" - ): TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "transferFrom" - ): TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getEvent( - key: "Approval" - ): TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - getEvent( - key: "Transfer" - ): TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - - filters: { - "Approval(address,address,uint256)": TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - Approval: TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - - "Transfer(address,address,uint256)": TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - Transfer: TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.ts b/typechain-types/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.ts deleted file mode 100644 index 63fad112..00000000 --- a/typechain-types/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.ts +++ /dev/null @@ -1,754 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../../../common"; - -export interface IUniswapV2Router01Interface extends Interface { - getFunction( - nameOrSignature: - | "WETH" - | "addLiquidity" - | "addLiquidityETH" - | "factory" - | "getAmountIn" - | "getAmountOut" - | "getAmountsIn" - | "getAmountsOut" - | "quote" - | "removeLiquidity" - | "removeLiquidityETH" - | "removeLiquidityETHWithPermit" - | "removeLiquidityWithPermit" - | "swapETHForExactTokens" - | "swapExactETHForTokens" - | "swapExactTokensForETH" - | "swapExactTokensForTokens" - | "swapTokensForExactETH" - | "swapTokensForExactTokens" - ): FunctionFragment; - - encodeFunctionData(functionFragment: "WETH", values?: undefined): string; - encodeFunctionData( - functionFragment: "addLiquidity", - values: [ - AddressLike, - AddressLike, - BigNumberish, - BigNumberish, - BigNumberish, - BigNumberish, - AddressLike, - BigNumberish - ] - ): string; - encodeFunctionData( - functionFragment: "addLiquidityETH", - values: [ - AddressLike, - BigNumberish, - BigNumberish, - BigNumberish, - AddressLike, - BigNumberish - ] - ): string; - encodeFunctionData(functionFragment: "factory", values?: undefined): string; - encodeFunctionData( - functionFragment: "getAmountIn", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "getAmountOut", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "getAmountsIn", - values: [BigNumberish, AddressLike[]] - ): string; - encodeFunctionData( - functionFragment: "getAmountsOut", - values: [BigNumberish, AddressLike[]] - ): string; - encodeFunctionData( - functionFragment: "quote", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "removeLiquidity", - values: [ - AddressLike, - AddressLike, - BigNumberish, - BigNumberish, - BigNumberish, - AddressLike, - BigNumberish - ] - ): string; - encodeFunctionData( - functionFragment: "removeLiquidityETH", - values: [ - AddressLike, - BigNumberish, - BigNumberish, - BigNumberish, - AddressLike, - BigNumberish - ] - ): string; - encodeFunctionData( - functionFragment: "removeLiquidityETHWithPermit", - values: [ - AddressLike, - BigNumberish, - BigNumberish, - BigNumberish, - AddressLike, - BigNumberish, - boolean, - BigNumberish, - BytesLike, - BytesLike - ] - ): string; - encodeFunctionData( - functionFragment: "removeLiquidityWithPermit", - values: [ - AddressLike, - AddressLike, - BigNumberish, - BigNumberish, - BigNumberish, - AddressLike, - BigNumberish, - boolean, - BigNumberish, - BytesLike, - BytesLike - ] - ): string; - encodeFunctionData( - functionFragment: "swapETHForExactTokens", - values: [BigNumberish, AddressLike[], AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "swapExactETHForTokens", - values: [BigNumberish, AddressLike[], AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "swapExactTokensForETH", - values: [ - BigNumberish, - BigNumberish, - AddressLike[], - AddressLike, - BigNumberish - ] - ): string; - encodeFunctionData( - functionFragment: "swapExactTokensForTokens", - values: [ - BigNumberish, - BigNumberish, - AddressLike[], - AddressLike, - BigNumberish - ] - ): string; - encodeFunctionData( - functionFragment: "swapTokensForExactETH", - values: [ - BigNumberish, - BigNumberish, - AddressLike[], - AddressLike, - BigNumberish - ] - ): string; - encodeFunctionData( - functionFragment: "swapTokensForExactTokens", - values: [ - BigNumberish, - BigNumberish, - AddressLike[], - AddressLike, - BigNumberish - ] - ): string; - - decodeFunctionResult(functionFragment: "WETH", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "addLiquidity", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "addLiquidityETH", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "getAmountIn", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getAmountOut", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getAmountsIn", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getAmountsOut", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "quote", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "removeLiquidity", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "removeLiquidityETH", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "removeLiquidityETHWithPermit", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "removeLiquidityWithPermit", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "swapETHForExactTokens", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "swapExactETHForTokens", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "swapExactTokensForETH", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "swapExactTokensForTokens", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "swapTokensForExactETH", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "swapTokensForExactTokens", - data: BytesLike - ): Result; -} - -export interface IUniswapV2Router01 extends BaseContract { - connect(runner?: ContractRunner | null): IUniswapV2Router01; - waitForDeployment(): Promise; - - interface: IUniswapV2Router01Interface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - WETH: TypedContractMethod<[], [string], "view">; - - addLiquidity: TypedContractMethod< - [ - tokenA: AddressLike, - tokenB: AddressLike, - amountADesired: BigNumberish, - amountBDesired: BigNumberish, - amountAMin: BigNumberish, - amountBMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [ - [bigint, bigint, bigint] & { - amountA: bigint; - amountB: bigint; - liquidity: bigint; - } - ], - "nonpayable" - >; - - addLiquidityETH: TypedContractMethod< - [ - token: AddressLike, - amountTokenDesired: BigNumberish, - amountTokenMin: BigNumberish, - amountETHMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [ - [bigint, bigint, bigint] & { - amountToken: bigint; - amountETH: bigint; - liquidity: bigint; - } - ], - "payable" - >; - - factory: TypedContractMethod<[], [string], "view">; - - getAmountIn: TypedContractMethod< - [ - amountOut: BigNumberish, - reserveIn: BigNumberish, - reserveOut: BigNumberish - ], - [bigint], - "view" - >; - - getAmountOut: TypedContractMethod< - [amountIn: BigNumberish, reserveIn: BigNumberish, reserveOut: BigNumberish], - [bigint], - "view" - >; - - getAmountsIn: TypedContractMethod< - [amountOut: BigNumberish, path: AddressLike[]], - [bigint[]], - "view" - >; - - getAmountsOut: TypedContractMethod< - [amountIn: BigNumberish, path: AddressLike[]], - [bigint[]], - "view" - >; - - quote: TypedContractMethod< - [amountA: BigNumberish, reserveA: BigNumberish, reserveB: BigNumberish], - [bigint], - "view" - >; - - removeLiquidity: TypedContractMethod< - [ - tokenA: AddressLike, - tokenB: AddressLike, - liquidity: BigNumberish, - amountAMin: BigNumberish, - amountBMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [[bigint, bigint] & { amountA: bigint; amountB: bigint }], - "nonpayable" - >; - - removeLiquidityETH: TypedContractMethod< - [ - token: AddressLike, - liquidity: BigNumberish, - amountTokenMin: BigNumberish, - amountETHMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [[bigint, bigint] & { amountToken: bigint; amountETH: bigint }], - "nonpayable" - >; - - removeLiquidityETHWithPermit: TypedContractMethod< - [ - token: AddressLike, - liquidity: BigNumberish, - amountTokenMin: BigNumberish, - amountETHMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish, - approveMax: boolean, - v: BigNumberish, - r: BytesLike, - s: BytesLike - ], - [[bigint, bigint] & { amountToken: bigint; amountETH: bigint }], - "nonpayable" - >; - - removeLiquidityWithPermit: TypedContractMethod< - [ - tokenA: AddressLike, - tokenB: AddressLike, - liquidity: BigNumberish, - amountAMin: BigNumberish, - amountBMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish, - approveMax: boolean, - v: BigNumberish, - r: BytesLike, - s: BytesLike - ], - [[bigint, bigint] & { amountA: bigint; amountB: bigint }], - "nonpayable" - >; - - swapETHForExactTokens: TypedContractMethod< - [ - amountOut: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "payable" - >; - - swapExactETHForTokens: TypedContractMethod< - [ - amountOutMin: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "payable" - >; - - swapExactTokensForETH: TypedContractMethod< - [ - amountIn: BigNumberish, - amountOutMin: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "nonpayable" - >; - - swapExactTokensForTokens: TypedContractMethod< - [ - amountIn: BigNumberish, - amountOutMin: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "nonpayable" - >; - - swapTokensForExactETH: TypedContractMethod< - [ - amountOut: BigNumberish, - amountInMax: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "nonpayable" - >; - - swapTokensForExactTokens: TypedContractMethod< - [ - amountOut: BigNumberish, - amountInMax: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "WETH" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "addLiquidity" - ): TypedContractMethod< - [ - tokenA: AddressLike, - tokenB: AddressLike, - amountADesired: BigNumberish, - amountBDesired: BigNumberish, - amountAMin: BigNumberish, - amountBMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [ - [bigint, bigint, bigint] & { - amountA: bigint; - amountB: bigint; - liquidity: bigint; - } - ], - "nonpayable" - >; - getFunction( - nameOrSignature: "addLiquidityETH" - ): TypedContractMethod< - [ - token: AddressLike, - amountTokenDesired: BigNumberish, - amountTokenMin: BigNumberish, - amountETHMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [ - [bigint, bigint, bigint] & { - amountToken: bigint; - amountETH: bigint; - liquidity: bigint; - } - ], - "payable" - >; - getFunction( - nameOrSignature: "factory" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "getAmountIn" - ): TypedContractMethod< - [ - amountOut: BigNumberish, - reserveIn: BigNumberish, - reserveOut: BigNumberish - ], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "getAmountOut" - ): TypedContractMethod< - [amountIn: BigNumberish, reserveIn: BigNumberish, reserveOut: BigNumberish], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "getAmountsIn" - ): TypedContractMethod< - [amountOut: BigNumberish, path: AddressLike[]], - [bigint[]], - "view" - >; - getFunction( - nameOrSignature: "getAmountsOut" - ): TypedContractMethod< - [amountIn: BigNumberish, path: AddressLike[]], - [bigint[]], - "view" - >; - getFunction( - nameOrSignature: "quote" - ): TypedContractMethod< - [amountA: BigNumberish, reserveA: BigNumberish, reserveB: BigNumberish], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "removeLiquidity" - ): TypedContractMethod< - [ - tokenA: AddressLike, - tokenB: AddressLike, - liquidity: BigNumberish, - amountAMin: BigNumberish, - amountBMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [[bigint, bigint] & { amountA: bigint; amountB: bigint }], - "nonpayable" - >; - getFunction( - nameOrSignature: "removeLiquidityETH" - ): TypedContractMethod< - [ - token: AddressLike, - liquidity: BigNumberish, - amountTokenMin: BigNumberish, - amountETHMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [[bigint, bigint] & { amountToken: bigint; amountETH: bigint }], - "nonpayable" - >; - getFunction( - nameOrSignature: "removeLiquidityETHWithPermit" - ): TypedContractMethod< - [ - token: AddressLike, - liquidity: BigNumberish, - amountTokenMin: BigNumberish, - amountETHMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish, - approveMax: boolean, - v: BigNumberish, - r: BytesLike, - s: BytesLike - ], - [[bigint, bigint] & { amountToken: bigint; amountETH: bigint }], - "nonpayable" - >; - getFunction( - nameOrSignature: "removeLiquidityWithPermit" - ): TypedContractMethod< - [ - tokenA: AddressLike, - tokenB: AddressLike, - liquidity: BigNumberish, - amountAMin: BigNumberish, - amountBMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish, - approveMax: boolean, - v: BigNumberish, - r: BytesLike, - s: BytesLike - ], - [[bigint, bigint] & { amountA: bigint; amountB: bigint }], - "nonpayable" - >; - getFunction( - nameOrSignature: "swapETHForExactTokens" - ): TypedContractMethod< - [ - amountOut: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "payable" - >; - getFunction( - nameOrSignature: "swapExactETHForTokens" - ): TypedContractMethod< - [ - amountOutMin: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "payable" - >; - getFunction( - nameOrSignature: "swapExactTokensForETH" - ): TypedContractMethod< - [ - amountIn: BigNumberish, - amountOutMin: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "nonpayable" - >; - getFunction( - nameOrSignature: "swapExactTokensForTokens" - ): TypedContractMethod< - [ - amountIn: BigNumberish, - amountOutMin: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "nonpayable" - >; - getFunction( - nameOrSignature: "swapTokensForExactETH" - ): TypedContractMethod< - [ - amountOut: BigNumberish, - amountInMax: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "nonpayable" - >; - getFunction( - nameOrSignature: "swapTokensForExactTokens" - ): TypedContractMethod< - [ - amountOut: BigNumberish, - amountInMax: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "nonpayable" - >; - - filters: {}; -} diff --git a/typechain-types/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.ts b/typechain-types/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.ts deleted file mode 100644 index e9a5a3e1..00000000 --- a/typechain-types/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.ts +++ /dev/null @@ -1,964 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../../../common"; - -export interface IUniswapV2Router02Interface extends Interface { - getFunction( - nameOrSignature: - | "WETH" - | "addLiquidity" - | "addLiquidityETH" - | "factory" - | "getAmountIn" - | "getAmountOut" - | "getAmountsIn" - | "getAmountsOut" - | "quote" - | "removeLiquidity" - | "removeLiquidityETH" - | "removeLiquidityETHSupportingFeeOnTransferTokens" - | "removeLiquidityETHWithPermit" - | "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens" - | "removeLiquidityWithPermit" - | "swapETHForExactTokens" - | "swapExactETHForTokens" - | "swapExactETHForTokensSupportingFeeOnTransferTokens" - | "swapExactTokensForETH" - | "swapExactTokensForETHSupportingFeeOnTransferTokens" - | "swapExactTokensForTokens" - | "swapExactTokensForTokensSupportingFeeOnTransferTokens" - | "swapTokensForExactETH" - | "swapTokensForExactTokens" - ): FunctionFragment; - - encodeFunctionData(functionFragment: "WETH", values?: undefined): string; - encodeFunctionData( - functionFragment: "addLiquidity", - values: [ - AddressLike, - AddressLike, - BigNumberish, - BigNumberish, - BigNumberish, - BigNumberish, - AddressLike, - BigNumberish - ] - ): string; - encodeFunctionData( - functionFragment: "addLiquidityETH", - values: [ - AddressLike, - BigNumberish, - BigNumberish, - BigNumberish, - AddressLike, - BigNumberish - ] - ): string; - encodeFunctionData(functionFragment: "factory", values?: undefined): string; - encodeFunctionData( - functionFragment: "getAmountIn", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "getAmountOut", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "getAmountsIn", - values: [BigNumberish, AddressLike[]] - ): string; - encodeFunctionData( - functionFragment: "getAmountsOut", - values: [BigNumberish, AddressLike[]] - ): string; - encodeFunctionData( - functionFragment: "quote", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "removeLiquidity", - values: [ - AddressLike, - AddressLike, - BigNumberish, - BigNumberish, - BigNumberish, - AddressLike, - BigNumberish - ] - ): string; - encodeFunctionData( - functionFragment: "removeLiquidityETH", - values: [ - AddressLike, - BigNumberish, - BigNumberish, - BigNumberish, - AddressLike, - BigNumberish - ] - ): string; - encodeFunctionData( - functionFragment: "removeLiquidityETHSupportingFeeOnTransferTokens", - values: [ - AddressLike, - BigNumberish, - BigNumberish, - BigNumberish, - AddressLike, - BigNumberish - ] - ): string; - encodeFunctionData( - functionFragment: "removeLiquidityETHWithPermit", - values: [ - AddressLike, - BigNumberish, - BigNumberish, - BigNumberish, - AddressLike, - BigNumberish, - boolean, - BigNumberish, - BytesLike, - BytesLike - ] - ): string; - encodeFunctionData( - functionFragment: "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", - values: [ - AddressLike, - BigNumberish, - BigNumberish, - BigNumberish, - AddressLike, - BigNumberish, - boolean, - BigNumberish, - BytesLike, - BytesLike - ] - ): string; - encodeFunctionData( - functionFragment: "removeLiquidityWithPermit", - values: [ - AddressLike, - AddressLike, - BigNumberish, - BigNumberish, - BigNumberish, - AddressLike, - BigNumberish, - boolean, - BigNumberish, - BytesLike, - BytesLike - ] - ): string; - encodeFunctionData( - functionFragment: "swapETHForExactTokens", - values: [BigNumberish, AddressLike[], AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "swapExactETHForTokens", - values: [BigNumberish, AddressLike[], AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "swapExactETHForTokensSupportingFeeOnTransferTokens", - values: [BigNumberish, AddressLike[], AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "swapExactTokensForETH", - values: [ - BigNumberish, - BigNumberish, - AddressLike[], - AddressLike, - BigNumberish - ] - ): string; - encodeFunctionData( - functionFragment: "swapExactTokensForETHSupportingFeeOnTransferTokens", - values: [ - BigNumberish, - BigNumberish, - AddressLike[], - AddressLike, - BigNumberish - ] - ): string; - encodeFunctionData( - functionFragment: "swapExactTokensForTokens", - values: [ - BigNumberish, - BigNumberish, - AddressLike[], - AddressLike, - BigNumberish - ] - ): string; - encodeFunctionData( - functionFragment: "swapExactTokensForTokensSupportingFeeOnTransferTokens", - values: [ - BigNumberish, - BigNumberish, - AddressLike[], - AddressLike, - BigNumberish - ] - ): string; - encodeFunctionData( - functionFragment: "swapTokensForExactETH", - values: [ - BigNumberish, - BigNumberish, - AddressLike[], - AddressLike, - BigNumberish - ] - ): string; - encodeFunctionData( - functionFragment: "swapTokensForExactTokens", - values: [ - BigNumberish, - BigNumberish, - AddressLike[], - AddressLike, - BigNumberish - ] - ): string; - - decodeFunctionResult(functionFragment: "WETH", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "addLiquidity", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "addLiquidityETH", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "getAmountIn", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getAmountOut", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getAmountsIn", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getAmountsOut", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "quote", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "removeLiquidity", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "removeLiquidityETH", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "removeLiquidityETHSupportingFeeOnTransferTokens", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "removeLiquidityETHWithPermit", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "removeLiquidityWithPermit", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "swapETHForExactTokens", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "swapExactETHForTokens", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "swapExactETHForTokensSupportingFeeOnTransferTokens", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "swapExactTokensForETH", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "swapExactTokensForETHSupportingFeeOnTransferTokens", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "swapExactTokensForTokens", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "swapExactTokensForTokensSupportingFeeOnTransferTokens", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "swapTokensForExactETH", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "swapTokensForExactTokens", - data: BytesLike - ): Result; -} - -export interface IUniswapV2Router02 extends BaseContract { - connect(runner?: ContractRunner | null): IUniswapV2Router02; - waitForDeployment(): Promise; - - interface: IUniswapV2Router02Interface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - WETH: TypedContractMethod<[], [string], "view">; - - addLiquidity: TypedContractMethod< - [ - tokenA: AddressLike, - tokenB: AddressLike, - amountADesired: BigNumberish, - amountBDesired: BigNumberish, - amountAMin: BigNumberish, - amountBMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [ - [bigint, bigint, bigint] & { - amountA: bigint; - amountB: bigint; - liquidity: bigint; - } - ], - "nonpayable" - >; - - addLiquidityETH: TypedContractMethod< - [ - token: AddressLike, - amountTokenDesired: BigNumberish, - amountTokenMin: BigNumberish, - amountETHMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [ - [bigint, bigint, bigint] & { - amountToken: bigint; - amountETH: bigint; - liquidity: bigint; - } - ], - "payable" - >; - - factory: TypedContractMethod<[], [string], "view">; - - getAmountIn: TypedContractMethod< - [ - amountOut: BigNumberish, - reserveIn: BigNumberish, - reserveOut: BigNumberish - ], - [bigint], - "view" - >; - - getAmountOut: TypedContractMethod< - [amountIn: BigNumberish, reserveIn: BigNumberish, reserveOut: BigNumberish], - [bigint], - "view" - >; - - getAmountsIn: TypedContractMethod< - [amountOut: BigNumberish, path: AddressLike[]], - [bigint[]], - "view" - >; - - getAmountsOut: TypedContractMethod< - [amountIn: BigNumberish, path: AddressLike[]], - [bigint[]], - "view" - >; - - quote: TypedContractMethod< - [amountA: BigNumberish, reserveA: BigNumberish, reserveB: BigNumberish], - [bigint], - "view" - >; - - removeLiquidity: TypedContractMethod< - [ - tokenA: AddressLike, - tokenB: AddressLike, - liquidity: BigNumberish, - amountAMin: BigNumberish, - amountBMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [[bigint, bigint] & { amountA: bigint; amountB: bigint }], - "nonpayable" - >; - - removeLiquidityETH: TypedContractMethod< - [ - token: AddressLike, - liquidity: BigNumberish, - amountTokenMin: BigNumberish, - amountETHMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [[bigint, bigint] & { amountToken: bigint; amountETH: bigint }], - "nonpayable" - >; - - removeLiquidityETHSupportingFeeOnTransferTokens: TypedContractMethod< - [ - token: AddressLike, - liquidity: BigNumberish, - amountTokenMin: BigNumberish, - amountETHMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [bigint], - "nonpayable" - >; - - removeLiquidityETHWithPermit: TypedContractMethod< - [ - token: AddressLike, - liquidity: BigNumberish, - amountTokenMin: BigNumberish, - amountETHMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish, - approveMax: boolean, - v: BigNumberish, - r: BytesLike, - s: BytesLike - ], - [[bigint, bigint] & { amountToken: bigint; amountETH: bigint }], - "nonpayable" - >; - - removeLiquidityETHWithPermitSupportingFeeOnTransferTokens: TypedContractMethod< - [ - token: AddressLike, - liquidity: BigNumberish, - amountTokenMin: BigNumberish, - amountETHMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish, - approveMax: boolean, - v: BigNumberish, - r: BytesLike, - s: BytesLike - ], - [bigint], - "nonpayable" - >; - - removeLiquidityWithPermit: TypedContractMethod< - [ - tokenA: AddressLike, - tokenB: AddressLike, - liquidity: BigNumberish, - amountAMin: BigNumberish, - amountBMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish, - approveMax: boolean, - v: BigNumberish, - r: BytesLike, - s: BytesLike - ], - [[bigint, bigint] & { amountA: bigint; amountB: bigint }], - "nonpayable" - >; - - swapETHForExactTokens: TypedContractMethod< - [ - amountOut: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "payable" - >; - - swapExactETHForTokens: TypedContractMethod< - [ - amountOutMin: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "payable" - >; - - swapExactETHForTokensSupportingFeeOnTransferTokens: TypedContractMethod< - [ - amountOutMin: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [void], - "payable" - >; - - swapExactTokensForETH: TypedContractMethod< - [ - amountIn: BigNumberish, - amountOutMin: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "nonpayable" - >; - - swapExactTokensForETHSupportingFeeOnTransferTokens: TypedContractMethod< - [ - amountIn: BigNumberish, - amountOutMin: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [void], - "nonpayable" - >; - - swapExactTokensForTokens: TypedContractMethod< - [ - amountIn: BigNumberish, - amountOutMin: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "nonpayable" - >; - - swapExactTokensForTokensSupportingFeeOnTransferTokens: TypedContractMethod< - [ - amountIn: BigNumberish, - amountOutMin: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [void], - "nonpayable" - >; - - swapTokensForExactETH: TypedContractMethod< - [ - amountOut: BigNumberish, - amountInMax: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "nonpayable" - >; - - swapTokensForExactTokens: TypedContractMethod< - [ - amountOut: BigNumberish, - amountInMax: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "WETH" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "addLiquidity" - ): TypedContractMethod< - [ - tokenA: AddressLike, - tokenB: AddressLike, - amountADesired: BigNumberish, - amountBDesired: BigNumberish, - amountAMin: BigNumberish, - amountBMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [ - [bigint, bigint, bigint] & { - amountA: bigint; - amountB: bigint; - liquidity: bigint; - } - ], - "nonpayable" - >; - getFunction( - nameOrSignature: "addLiquidityETH" - ): TypedContractMethod< - [ - token: AddressLike, - amountTokenDesired: BigNumberish, - amountTokenMin: BigNumberish, - amountETHMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [ - [bigint, bigint, bigint] & { - amountToken: bigint; - amountETH: bigint; - liquidity: bigint; - } - ], - "payable" - >; - getFunction( - nameOrSignature: "factory" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "getAmountIn" - ): TypedContractMethod< - [ - amountOut: BigNumberish, - reserveIn: BigNumberish, - reserveOut: BigNumberish - ], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "getAmountOut" - ): TypedContractMethod< - [amountIn: BigNumberish, reserveIn: BigNumberish, reserveOut: BigNumberish], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "getAmountsIn" - ): TypedContractMethod< - [amountOut: BigNumberish, path: AddressLike[]], - [bigint[]], - "view" - >; - getFunction( - nameOrSignature: "getAmountsOut" - ): TypedContractMethod< - [amountIn: BigNumberish, path: AddressLike[]], - [bigint[]], - "view" - >; - getFunction( - nameOrSignature: "quote" - ): TypedContractMethod< - [amountA: BigNumberish, reserveA: BigNumberish, reserveB: BigNumberish], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "removeLiquidity" - ): TypedContractMethod< - [ - tokenA: AddressLike, - tokenB: AddressLike, - liquidity: BigNumberish, - amountAMin: BigNumberish, - amountBMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [[bigint, bigint] & { amountA: bigint; amountB: bigint }], - "nonpayable" - >; - getFunction( - nameOrSignature: "removeLiquidityETH" - ): TypedContractMethod< - [ - token: AddressLike, - liquidity: BigNumberish, - amountTokenMin: BigNumberish, - amountETHMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [[bigint, bigint] & { amountToken: bigint; amountETH: bigint }], - "nonpayable" - >; - getFunction( - nameOrSignature: "removeLiquidityETHSupportingFeeOnTransferTokens" - ): TypedContractMethod< - [ - token: AddressLike, - liquidity: BigNumberish, - amountTokenMin: BigNumberish, - amountETHMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [bigint], - "nonpayable" - >; - getFunction( - nameOrSignature: "removeLiquidityETHWithPermit" - ): TypedContractMethod< - [ - token: AddressLike, - liquidity: BigNumberish, - amountTokenMin: BigNumberish, - amountETHMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish, - approveMax: boolean, - v: BigNumberish, - r: BytesLike, - s: BytesLike - ], - [[bigint, bigint] & { amountToken: bigint; amountETH: bigint }], - "nonpayable" - >; - getFunction( - nameOrSignature: "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens" - ): TypedContractMethod< - [ - token: AddressLike, - liquidity: BigNumberish, - amountTokenMin: BigNumberish, - amountETHMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish, - approveMax: boolean, - v: BigNumberish, - r: BytesLike, - s: BytesLike - ], - [bigint], - "nonpayable" - >; - getFunction( - nameOrSignature: "removeLiquidityWithPermit" - ): TypedContractMethod< - [ - tokenA: AddressLike, - tokenB: AddressLike, - liquidity: BigNumberish, - amountAMin: BigNumberish, - amountBMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish, - approveMax: boolean, - v: BigNumberish, - r: BytesLike, - s: BytesLike - ], - [[bigint, bigint] & { amountA: bigint; amountB: bigint }], - "nonpayable" - >; - getFunction( - nameOrSignature: "swapETHForExactTokens" - ): TypedContractMethod< - [ - amountOut: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "payable" - >; - getFunction( - nameOrSignature: "swapExactETHForTokens" - ): TypedContractMethod< - [ - amountOutMin: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "payable" - >; - getFunction( - nameOrSignature: "swapExactETHForTokensSupportingFeeOnTransferTokens" - ): TypedContractMethod< - [ - amountOutMin: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [void], - "payable" - >; - getFunction( - nameOrSignature: "swapExactTokensForETH" - ): TypedContractMethod< - [ - amountIn: BigNumberish, - amountOutMin: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "nonpayable" - >; - getFunction( - nameOrSignature: "swapExactTokensForETHSupportingFeeOnTransferTokens" - ): TypedContractMethod< - [ - amountIn: BigNumberish, - amountOutMin: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "swapExactTokensForTokens" - ): TypedContractMethod< - [ - amountIn: BigNumberish, - amountOutMin: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "nonpayable" - >; - getFunction( - nameOrSignature: "swapExactTokensForTokensSupportingFeeOnTransferTokens" - ): TypedContractMethod< - [ - amountIn: BigNumberish, - amountOutMin: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "swapTokensForExactETH" - ): TypedContractMethod< - [ - amountOut: BigNumberish, - amountInMax: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "nonpayable" - >; - getFunction( - nameOrSignature: "swapTokensForExactTokens" - ): TypedContractMethod< - [ - amountOut: BigNumberish, - amountInMax: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "nonpayable" - >; - - filters: {}; -} diff --git a/typechain-types/@uniswap/v2-periphery/contracts/interfaces/IWETH.ts b/typechain-types/@uniswap/v2-periphery/contracts/interfaces/IWETH.ts deleted file mode 100644 index 1131a201..00000000 --- a/typechain-types/@uniswap/v2-periphery/contracts/interfaces/IWETH.ts +++ /dev/null @@ -1,116 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../../../common"; - -export interface IWETHInterface extends Interface { - getFunction( - nameOrSignature: "deposit" | "transfer" | "withdraw" - ): FunctionFragment; - - encodeFunctionData(functionFragment: "deposit", values?: undefined): string; - encodeFunctionData( - functionFragment: "transfer", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "withdraw", - values: [BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; -} - -export interface IWETH extends BaseContract { - connect(runner?: ContractRunner | null): IWETH; - waitForDeployment(): Promise; - - interface: IWETHInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - deposit: TypedContractMethod<[], [void], "payable">; - - transfer: TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - withdraw: TypedContractMethod<[arg0: BigNumberish], [void], "nonpayable">; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "deposit" - ): TypedContractMethod<[], [void], "payable">; - getFunction( - nameOrSignature: "transfer" - ): TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdraw" - ): TypedContractMethod<[arg0: BigNumberish], [void], "nonpayable">; - - filters: {}; -} diff --git a/typechain-types/@uniswap/v2-periphery/contracts/interfaces/index.ts b/typechain-types/@uniswap/v2-periphery/contracts/interfaces/index.ts deleted file mode 100644 index d7c00510..00000000 --- a/typechain-types/@uniswap/v2-periphery/contracts/interfaces/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { IERC20 } from "./IERC20"; -export type { IUniswapV2Router01 } from "./IUniswapV2Router01"; -export type { IUniswapV2Router02 } from "./IUniswapV2Router02"; -export type { IWETH } from "./IWETH"; diff --git a/typechain-types/@uniswap/v2-periphery/index.ts b/typechain-types/@uniswap/v2-periphery/index.ts deleted file mode 100644 index a11e4ca2..00000000 --- a/typechain-types/@uniswap/v2-periphery/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as contracts from "./contracts"; -export type { contracts }; diff --git a/typechain-types/@uniswap/v3-core/contracts/index.ts b/typechain-types/@uniswap/v3-core/contracts/index.ts deleted file mode 100644 index 92159233..00000000 --- a/typechain-types/@uniswap/v3-core/contracts/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as interfaces from "./interfaces"; -export type { interfaces }; diff --git a/typechain-types/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.ts b/typechain-types/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.ts deleted file mode 100644 index 7ad62fc2..00000000 --- a/typechain-types/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.ts +++ /dev/null @@ -1,99 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../../../../common"; - -export interface IUniswapV3SwapCallbackInterface extends Interface { - getFunction(nameOrSignature: "uniswapV3SwapCallback"): FunctionFragment; - - encodeFunctionData( - functionFragment: "uniswapV3SwapCallback", - values: [BigNumberish, BigNumberish, BytesLike] - ): string; - - decodeFunctionResult( - functionFragment: "uniswapV3SwapCallback", - data: BytesLike - ): Result; -} - -export interface IUniswapV3SwapCallback extends BaseContract { - connect(runner?: ContractRunner | null): IUniswapV3SwapCallback; - waitForDeployment(): Promise; - - interface: IUniswapV3SwapCallbackInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - uniswapV3SwapCallback: TypedContractMethod< - [amount0Delta: BigNumberish, amount1Delta: BigNumberish, data: BytesLike], - [void], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "uniswapV3SwapCallback" - ): TypedContractMethod< - [amount0Delta: BigNumberish, amount1Delta: BigNumberish, data: BytesLike], - [void], - "nonpayable" - >; - - filters: {}; -} diff --git a/typechain-types/@uniswap/v3-core/contracts/interfaces/callback/index.ts b/typechain-types/@uniswap/v3-core/contracts/interfaces/callback/index.ts deleted file mode 100644 index c552691c..00000000 --- a/typechain-types/@uniswap/v3-core/contracts/interfaces/callback/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { IUniswapV3SwapCallback } from "./IUniswapV3SwapCallback"; diff --git a/typechain-types/@uniswap/v3-core/contracts/interfaces/index.ts b/typechain-types/@uniswap/v3-core/contracts/interfaces/index.ts deleted file mode 100644 index 3b69c538..00000000 --- a/typechain-types/@uniswap/v3-core/contracts/interfaces/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as callback from "./callback"; -export type { callback }; diff --git a/typechain-types/@uniswap/v3-core/index.ts b/typechain-types/@uniswap/v3-core/index.ts deleted file mode 100644 index a11e4ca2..00000000 --- a/typechain-types/@uniswap/v3-core/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as contracts from "./contracts"; -export type { contracts }; diff --git a/typechain-types/@uniswap/v3-periphery/contracts/index.ts b/typechain-types/@uniswap/v3-periphery/contracts/index.ts deleted file mode 100644 index 92159233..00000000 --- a/typechain-types/@uniswap/v3-periphery/contracts/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as interfaces from "./interfaces"; -export type { interfaces }; diff --git a/typechain-types/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter.ts b/typechain-types/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter.ts deleted file mode 100644 index 22e1bc3f..00000000 --- a/typechain-types/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter.ts +++ /dev/null @@ -1,296 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../../../common"; - -export declare namespace ISwapRouter { - export type ExactInputParamsStruct = { - path: BytesLike; - recipient: AddressLike; - deadline: BigNumberish; - amountIn: BigNumberish; - amountOutMinimum: BigNumberish; - }; - - export type ExactInputParamsStructOutput = [ - path: string, - recipient: string, - deadline: bigint, - amountIn: bigint, - amountOutMinimum: bigint - ] & { - path: string; - recipient: string; - deadline: bigint; - amountIn: bigint; - amountOutMinimum: bigint; - }; - - export type ExactInputSingleParamsStruct = { - tokenIn: AddressLike; - tokenOut: AddressLike; - fee: BigNumberish; - recipient: AddressLike; - deadline: BigNumberish; - amountIn: BigNumberish; - amountOutMinimum: BigNumberish; - sqrtPriceLimitX96: BigNumberish; - }; - - export type ExactInputSingleParamsStructOutput = [ - tokenIn: string, - tokenOut: string, - fee: bigint, - recipient: string, - deadline: bigint, - amountIn: bigint, - amountOutMinimum: bigint, - sqrtPriceLimitX96: bigint - ] & { - tokenIn: string; - tokenOut: string; - fee: bigint; - recipient: string; - deadline: bigint; - amountIn: bigint; - amountOutMinimum: bigint; - sqrtPriceLimitX96: bigint; - }; - - export type ExactOutputParamsStruct = { - path: BytesLike; - recipient: AddressLike; - deadline: BigNumberish; - amountOut: BigNumberish; - amountInMaximum: BigNumberish; - }; - - export type ExactOutputParamsStructOutput = [ - path: string, - recipient: string, - deadline: bigint, - amountOut: bigint, - amountInMaximum: bigint - ] & { - path: string; - recipient: string; - deadline: bigint; - amountOut: bigint; - amountInMaximum: bigint; - }; - - export type ExactOutputSingleParamsStruct = { - tokenIn: AddressLike; - tokenOut: AddressLike; - fee: BigNumberish; - recipient: AddressLike; - deadline: BigNumberish; - amountOut: BigNumberish; - amountInMaximum: BigNumberish; - sqrtPriceLimitX96: BigNumberish; - }; - - export type ExactOutputSingleParamsStructOutput = [ - tokenIn: string, - tokenOut: string, - fee: bigint, - recipient: string, - deadline: bigint, - amountOut: bigint, - amountInMaximum: bigint, - sqrtPriceLimitX96: bigint - ] & { - tokenIn: string; - tokenOut: string; - fee: bigint; - recipient: string; - deadline: bigint; - amountOut: bigint; - amountInMaximum: bigint; - sqrtPriceLimitX96: bigint; - }; -} - -export interface ISwapRouterInterface extends Interface { - getFunction( - nameOrSignature: - | "exactInput" - | "exactInputSingle" - | "exactOutput" - | "exactOutputSingle" - | "uniswapV3SwapCallback" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "exactInput", - values: [ISwapRouter.ExactInputParamsStruct] - ): string; - encodeFunctionData( - functionFragment: "exactInputSingle", - values: [ISwapRouter.ExactInputSingleParamsStruct] - ): string; - encodeFunctionData( - functionFragment: "exactOutput", - values: [ISwapRouter.ExactOutputParamsStruct] - ): string; - encodeFunctionData( - functionFragment: "exactOutputSingle", - values: [ISwapRouter.ExactOutputSingleParamsStruct] - ): string; - encodeFunctionData( - functionFragment: "uniswapV3SwapCallback", - values: [BigNumberish, BigNumberish, BytesLike] - ): string; - - decodeFunctionResult(functionFragment: "exactInput", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "exactInputSingle", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "exactOutput", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "exactOutputSingle", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "uniswapV3SwapCallback", - data: BytesLike - ): Result; -} - -export interface ISwapRouter extends BaseContract { - connect(runner?: ContractRunner | null): ISwapRouter; - waitForDeployment(): Promise; - - interface: ISwapRouterInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - exactInput: TypedContractMethod< - [params: ISwapRouter.ExactInputParamsStruct], - [bigint], - "payable" - >; - - exactInputSingle: TypedContractMethod< - [params: ISwapRouter.ExactInputSingleParamsStruct], - [bigint], - "payable" - >; - - exactOutput: TypedContractMethod< - [params: ISwapRouter.ExactOutputParamsStruct], - [bigint], - "payable" - >; - - exactOutputSingle: TypedContractMethod< - [params: ISwapRouter.ExactOutputSingleParamsStruct], - [bigint], - "payable" - >; - - uniswapV3SwapCallback: TypedContractMethod< - [amount0Delta: BigNumberish, amount1Delta: BigNumberish, data: BytesLike], - [void], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "exactInput" - ): TypedContractMethod< - [params: ISwapRouter.ExactInputParamsStruct], - [bigint], - "payable" - >; - getFunction( - nameOrSignature: "exactInputSingle" - ): TypedContractMethod< - [params: ISwapRouter.ExactInputSingleParamsStruct], - [bigint], - "payable" - >; - getFunction( - nameOrSignature: "exactOutput" - ): TypedContractMethod< - [params: ISwapRouter.ExactOutputParamsStruct], - [bigint], - "payable" - >; - getFunction( - nameOrSignature: "exactOutputSingle" - ): TypedContractMethod< - [params: ISwapRouter.ExactOutputSingleParamsStruct], - [bigint], - "payable" - >; - getFunction( - nameOrSignature: "uniswapV3SwapCallback" - ): TypedContractMethod< - [amount0Delta: BigNumberish, amount1Delta: BigNumberish, data: BytesLike], - [void], - "nonpayable" - >; - - filters: {}; -} diff --git a/typechain-types/@uniswap/v3-periphery/contracts/interfaces/index.ts b/typechain-types/@uniswap/v3-periphery/contracts/interfaces/index.ts deleted file mode 100644 index 0286eebb..00000000 --- a/typechain-types/@uniswap/v3-periphery/contracts/interfaces/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { ISwapRouter } from "./ISwapRouter"; diff --git a/typechain-types/@uniswap/v3-periphery/index.ts b/typechain-types/@uniswap/v3-periphery/index.ts deleted file mode 100644 index a11e4ca2..00000000 --- a/typechain-types/@uniswap/v3-periphery/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as contracts from "./contracts"; -export type { contracts }; diff --git a/typechain-types/@zetachain/index.ts b/typechain-types/@zetachain/index.ts deleted file mode 100644 index 98ac4539..00000000 --- a/typechain-types/@zetachain/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as protocolContracts from "./protocol-contracts"; -export type { protocolContracts }; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/Errors.sol/INotSupportedMethods.ts b/typechain-types/@zetachain/protocol-contracts/contracts/Errors.sol/INotSupportedMethods.ts deleted file mode 100644 index 364a47e0..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/Errors.sol/INotSupportedMethods.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - FunctionFragment, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, -} from "../../../../common"; - -export interface INotSupportedMethodsInterface extends Interface {} - -export interface INotSupportedMethods extends BaseContract { - connect(runner?: ContractRunner | null): INotSupportedMethods; - waitForDeployment(): Promise; - - interface: INotSupportedMethodsInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - filters: {}; -} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/Errors.sol/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/Errors.sol/index.ts deleted file mode 100644 index 83223141..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/Errors.sol/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { INotSupportedMethods } from "./INotSupportedMethods"; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/Revert.sol/Abortable.ts b/typechain-types/@zetachain/protocol-contracts/contracts/Revert.sol/Abortable.ts deleted file mode 100644 index b5e28e8e..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/Revert.sol/Abortable.ts +++ /dev/null @@ -1,122 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../../../common"; - -export type AbortContextStruct = { - sender: BytesLike; - asset: AddressLike; - amount: BigNumberish; - outgoing: boolean; - chainID: BigNumberish; - revertMessage: BytesLike; -}; - -export type AbortContextStructOutput = [ - sender: string, - asset: string, - amount: bigint, - outgoing: boolean, - chainID: bigint, - revertMessage: string -] & { - sender: string; - asset: string; - amount: bigint; - outgoing: boolean; - chainID: bigint; - revertMessage: string; -}; - -export interface AbortableInterface extends Interface { - getFunction(nameOrSignature: "onAbort"): FunctionFragment; - - encodeFunctionData( - functionFragment: "onAbort", - values: [AbortContextStruct] - ): string; - - decodeFunctionResult(functionFragment: "onAbort", data: BytesLike): Result; -} - -export interface Abortable extends BaseContract { - connect(runner?: ContractRunner | null): Abortable; - waitForDeployment(): Promise; - - interface: AbortableInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - onAbort: TypedContractMethod< - [abortContext: AbortContextStruct], - [void], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "onAbort" - ): TypedContractMethod< - [abortContext: AbortContextStruct], - [void], - "nonpayable" - >; - - filters: {}; -} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/Revert.sol/Revertable.ts b/typechain-types/@zetachain/protocol-contracts/contracts/Revert.sol/Revertable.ts deleted file mode 100644 index 072e91fe..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/Revert.sol/Revertable.ts +++ /dev/null @@ -1,111 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../../../common"; - -export type RevertContextStruct = { - sender: AddressLike; - asset: AddressLike; - amount: BigNumberish; - revertMessage: BytesLike; -}; - -export type RevertContextStructOutput = [ - sender: string, - asset: string, - amount: bigint, - revertMessage: string -] & { sender: string; asset: string; amount: bigint; revertMessage: string }; - -export interface RevertableInterface extends Interface { - getFunction(nameOrSignature: "onRevert"): FunctionFragment; - - encodeFunctionData( - functionFragment: "onRevert", - values: [RevertContextStruct] - ): string; - - decodeFunctionResult(functionFragment: "onRevert", data: BytesLike): Result; -} - -export interface Revertable extends BaseContract { - connect(runner?: ContractRunner | null): Revertable; - waitForDeployment(): Promise; - - interface: RevertableInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - onRevert: TypedContractMethod< - [revertContext: RevertContextStruct], - [void], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "onRevert" - ): TypedContractMethod< - [revertContext: RevertContextStruct], - [void], - "nonpayable" - >; - - filters: {}; -} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/Revert.sol/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/Revert.sol/index.ts deleted file mode 100644 index 8900c08a..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/Revert.sol/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { Abortable } from "./Abortable"; -export type { Revertable } from "./Revertable"; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/ERC20Custody.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/ERC20Custody.ts deleted file mode 100644 index fe4207af..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/evm/ERC20Custody.ts +++ /dev/null @@ -1,1110 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../../common"; - -export type RevertContextStruct = { - sender: AddressLike; - asset: AddressLike; - amount: BigNumberish; - revertMessage: BytesLike; -}; - -export type RevertContextStructOutput = [ - sender: string, - asset: string, - amount: bigint, - revertMessage: string -] & { sender: string; asset: string; amount: bigint; revertMessage: string }; - -export type MessageContextStruct = { sender: AddressLike }; - -export type MessageContextStructOutput = [sender: string] & { sender: string }; - -export interface ERC20CustodyInterface extends Interface { - getFunction( - nameOrSignature: - | "DEFAULT_ADMIN_ROLE" - | "PAUSER_ROLE" - | "UPGRADE_INTERFACE_VERSION" - | "WHITELISTER_ROLE" - | "WITHDRAWER_ROLE" - | "deposit" - | "gateway" - | "getRoleAdmin" - | "grantRole" - | "hasRole" - | "initialize" - | "pause" - | "paused" - | "proxiableUUID" - | "renounceRole" - | "revokeRole" - | "setSupportsLegacy" - | "supportsInterface" - | "supportsLegacy" - | "tssAddress" - | "unpause" - | "unwhitelist" - | "updateTSSAddress" - | "upgradeToAndCall" - | "whitelist" - | "whitelisted" - | "withdraw" - | "withdrawAndCall" - | "withdrawAndRevert" - ): FunctionFragment; - - getEvent( - nameOrSignatureOrTopic: - | "Deposited" - | "Initialized" - | "Paused" - | "RoleAdminChanged" - | "RoleGranted" - | "RoleRevoked" - | "Unpaused" - | "Unwhitelisted" - | "UpdatedCustodyTSSAddress" - | "Upgraded" - | "Whitelisted" - | "Withdrawn" - | "WithdrawnAndCalled" - | "WithdrawnAndReverted" - ): EventFragment; - - encodeFunctionData( - functionFragment: "DEFAULT_ADMIN_ROLE", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "PAUSER_ROLE", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "UPGRADE_INTERFACE_VERSION", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "WHITELISTER_ROLE", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "WITHDRAWER_ROLE", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "deposit", - values: [BytesLike, AddressLike, BigNumberish, BytesLike] - ): string; - encodeFunctionData(functionFragment: "gateway", values?: undefined): string; - encodeFunctionData( - functionFragment: "getRoleAdmin", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "grantRole", - values: [BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "hasRole", - values: [BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "initialize", - values: [AddressLike, AddressLike, AddressLike] - ): string; - encodeFunctionData(functionFragment: "pause", values?: undefined): string; - encodeFunctionData(functionFragment: "paused", values?: undefined): string; - encodeFunctionData( - functionFragment: "proxiableUUID", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "renounceRole", - values: [BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "revokeRole", - values: [BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "setSupportsLegacy", - values: [boolean] - ): string; - encodeFunctionData( - functionFragment: "supportsInterface", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "supportsLegacy", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "tssAddress", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "unpause", values?: undefined): string; - encodeFunctionData( - functionFragment: "unwhitelist", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "updateTSSAddress", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "upgradeToAndCall", - values: [AddressLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "whitelist", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "whitelisted", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "withdraw", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "withdrawAndCall", - values: [ - MessageContextStruct, - AddressLike, - AddressLike, - BigNumberish, - BytesLike - ] - ): string; - encodeFunctionData( - functionFragment: "withdrawAndRevert", - values: [ - AddressLike, - AddressLike, - BigNumberish, - BytesLike, - RevertContextStruct - ] - ): string; - - decodeFunctionResult( - functionFragment: "DEFAULT_ADMIN_ROLE", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "PAUSER_ROLE", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "UPGRADE_INTERFACE_VERSION", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "WHITELISTER_ROLE", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "WITHDRAWER_ROLE", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "gateway", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "getRoleAdmin", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "pause", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "proxiableUUID", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "renounceRole", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "setSupportsLegacy", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "supportsInterface", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "supportsLegacy", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "tssAddress", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "unpause", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "unwhitelist", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "updateTSSAddress", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "upgradeToAndCall", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "whitelist", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "whitelisted", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "withdrawAndCall", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "withdrawAndRevert", - data: BytesLike - ): Result; -} - -export namespace DepositedEvent { - export type InputTuple = [ - recipient: BytesLike, - asset: AddressLike, - amount: BigNumberish, - message: BytesLike - ]; - export type OutputTuple = [ - recipient: string, - asset: string, - amount: bigint, - message: string - ]; - export interface OutputObject { - recipient: string; - asset: string; - amount: bigint; - message: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace InitializedEvent { - export type InputTuple = [version: BigNumberish]; - export type OutputTuple = [version: bigint]; - export interface OutputObject { - version: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace PausedEvent { - export type InputTuple = [account: AddressLike]; - export type OutputTuple = [account: string]; - export interface OutputObject { - account: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace RoleAdminChangedEvent { - export type InputTuple = [ - role: BytesLike, - previousAdminRole: BytesLike, - newAdminRole: BytesLike - ]; - export type OutputTuple = [ - role: string, - previousAdminRole: string, - newAdminRole: string - ]; - export interface OutputObject { - role: string; - previousAdminRole: string; - newAdminRole: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace RoleGrantedEvent { - export type InputTuple = [ - role: BytesLike, - account: AddressLike, - sender: AddressLike - ]; - export type OutputTuple = [role: string, account: string, sender: string]; - export interface OutputObject { - role: string; - account: string; - sender: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace RoleRevokedEvent { - export type InputTuple = [ - role: BytesLike, - account: AddressLike, - sender: AddressLike - ]; - export type OutputTuple = [role: string, account: string, sender: string]; - export interface OutputObject { - role: string; - account: string; - sender: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UnpausedEvent { - export type InputTuple = [account: AddressLike]; - export type OutputTuple = [account: string]; - export interface OutputObject { - account: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UnwhitelistedEvent { - export type InputTuple = [token: AddressLike]; - export type OutputTuple = [token: string]; - export interface OutputObject { - token: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UpdatedCustodyTSSAddressEvent { - export type InputTuple = [ - oldTSSAddress: AddressLike, - newTSSAddress: AddressLike - ]; - export type OutputTuple = [oldTSSAddress: string, newTSSAddress: string]; - export interface OutputObject { - oldTSSAddress: string; - newTSSAddress: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UpgradedEvent { - export type InputTuple = [implementation: AddressLike]; - export type OutputTuple = [implementation: string]; - export interface OutputObject { - implementation: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WhitelistedEvent { - export type InputTuple = [token: AddressLike]; - export type OutputTuple = [token: string]; - export interface OutputObject { - token: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WithdrawnEvent { - export type InputTuple = [ - to: AddressLike, - token: AddressLike, - amount: BigNumberish - ]; - export type OutputTuple = [to: string, token: string, amount: bigint]; - export interface OutputObject { - to: string; - token: string; - amount: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WithdrawnAndCalledEvent { - export type InputTuple = [ - to: AddressLike, - token: AddressLike, - amount: BigNumberish, - data: BytesLike - ]; - export type OutputTuple = [ - to: string, - token: string, - amount: bigint, - data: string - ]; - export interface OutputObject { - to: string; - token: string; - amount: bigint; - data: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WithdrawnAndRevertedEvent { - export type InputTuple = [ - to: AddressLike, - token: AddressLike, - amount: BigNumberish, - data: BytesLike, - revertContext: RevertContextStruct - ]; - export type OutputTuple = [ - to: string, - token: string, - amount: bigint, - data: string, - revertContext: RevertContextStructOutput - ]; - export interface OutputObject { - to: string; - token: string; - amount: bigint; - data: string; - revertContext: RevertContextStructOutput; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface ERC20Custody extends BaseContract { - connect(runner?: ContractRunner | null): ERC20Custody; - waitForDeployment(): Promise; - - interface: ERC20CustodyInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - DEFAULT_ADMIN_ROLE: TypedContractMethod<[], [string], "view">; - - PAUSER_ROLE: TypedContractMethod<[], [string], "view">; - - UPGRADE_INTERFACE_VERSION: TypedContractMethod<[], [string], "view">; - - WHITELISTER_ROLE: TypedContractMethod<[], [string], "view">; - - WITHDRAWER_ROLE: TypedContractMethod<[], [string], "view">; - - deposit: TypedContractMethod< - [ - recipient: BytesLike, - asset: AddressLike, - amount: BigNumberish, - message: BytesLike - ], - [void], - "nonpayable" - >; - - gateway: TypedContractMethod<[], [string], "view">; - - getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">; - - grantRole: TypedContractMethod< - [role: BytesLike, account: AddressLike], - [void], - "nonpayable" - >; - - hasRole: TypedContractMethod< - [role: BytesLike, account: AddressLike], - [boolean], - "view" - >; - - initialize: TypedContractMethod< - [gateway_: AddressLike, tssAddress_: AddressLike, admin_: AddressLike], - [void], - "nonpayable" - >; - - pause: TypedContractMethod<[], [void], "nonpayable">; - - paused: TypedContractMethod<[], [boolean], "view">; - - proxiableUUID: TypedContractMethod<[], [string], "view">; - - renounceRole: TypedContractMethod< - [role: BytesLike, callerConfirmation: AddressLike], - [void], - "nonpayable" - >; - - revokeRole: TypedContractMethod< - [role: BytesLike, account: AddressLike], - [void], - "nonpayable" - >; - - setSupportsLegacy: TypedContractMethod< - [_supportsLegacy: boolean], - [void], - "nonpayable" - >; - - supportsInterface: TypedContractMethod< - [interfaceId: BytesLike], - [boolean], - "view" - >; - - supportsLegacy: TypedContractMethod<[], [boolean], "view">; - - tssAddress: TypedContractMethod<[], [string], "view">; - - unpause: TypedContractMethod<[], [void], "nonpayable">; - - unwhitelist: TypedContractMethod<[token: AddressLike], [void], "nonpayable">; - - updateTSSAddress: TypedContractMethod< - [newTSSAddress: AddressLike], - [void], - "nonpayable" - >; - - upgradeToAndCall: TypedContractMethod< - [newImplementation: AddressLike, data: BytesLike], - [void], - "payable" - >; - - whitelist: TypedContractMethod<[token: AddressLike], [void], "nonpayable">; - - whitelisted: TypedContractMethod<[arg0: AddressLike], [boolean], "view">; - - withdraw: TypedContractMethod< - [to: AddressLike, token: AddressLike, amount: BigNumberish], - [void], - "nonpayable" - >; - - withdrawAndCall: TypedContractMethod< - [ - messageContext: MessageContextStruct, - to: AddressLike, - token: AddressLike, - amount: BigNumberish, - data: BytesLike - ], - [void], - "nonpayable" - >; - - withdrawAndRevert: TypedContractMethod< - [ - to: AddressLike, - token: AddressLike, - amount: BigNumberish, - data: BytesLike, - revertContext: RevertContextStruct - ], - [void], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "DEFAULT_ADMIN_ROLE" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "PAUSER_ROLE" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "UPGRADE_INTERFACE_VERSION" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "WHITELISTER_ROLE" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "WITHDRAWER_ROLE" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "deposit" - ): TypedContractMethod< - [ - recipient: BytesLike, - asset: AddressLike, - amount: BigNumberish, - message: BytesLike - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "gateway" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "getRoleAdmin" - ): TypedContractMethod<[role: BytesLike], [string], "view">; - getFunction( - nameOrSignature: "grantRole" - ): TypedContractMethod< - [role: BytesLike, account: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "hasRole" - ): TypedContractMethod< - [role: BytesLike, account: AddressLike], - [boolean], - "view" - >; - getFunction( - nameOrSignature: "initialize" - ): TypedContractMethod< - [gateway_: AddressLike, tssAddress_: AddressLike, admin_: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "pause" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "paused" - ): TypedContractMethod<[], [boolean], "view">; - getFunction( - nameOrSignature: "proxiableUUID" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "renounceRole" - ): TypedContractMethod< - [role: BytesLike, callerConfirmation: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "revokeRole" - ): TypedContractMethod< - [role: BytesLike, account: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "setSupportsLegacy" - ): TypedContractMethod<[_supportsLegacy: boolean], [void], "nonpayable">; - getFunction( - nameOrSignature: "supportsInterface" - ): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; - getFunction( - nameOrSignature: "supportsLegacy" - ): TypedContractMethod<[], [boolean], "view">; - getFunction( - nameOrSignature: "tssAddress" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "unpause" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "unwhitelist" - ): TypedContractMethod<[token: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "updateTSSAddress" - ): TypedContractMethod<[newTSSAddress: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "upgradeToAndCall" - ): TypedContractMethod< - [newImplementation: AddressLike, data: BytesLike], - [void], - "payable" - >; - getFunction( - nameOrSignature: "whitelist" - ): TypedContractMethod<[token: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "whitelisted" - ): TypedContractMethod<[arg0: AddressLike], [boolean], "view">; - getFunction( - nameOrSignature: "withdraw" - ): TypedContractMethod< - [to: AddressLike, token: AddressLike, amount: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdrawAndCall" - ): TypedContractMethod< - [ - messageContext: MessageContextStruct, - to: AddressLike, - token: AddressLike, - amount: BigNumberish, - data: BytesLike - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdrawAndRevert" - ): TypedContractMethod< - [ - to: AddressLike, - token: AddressLike, - amount: BigNumberish, - data: BytesLike, - revertContext: RevertContextStruct - ], - [void], - "nonpayable" - >; - - getEvent( - key: "Deposited" - ): TypedContractEvent< - DepositedEvent.InputTuple, - DepositedEvent.OutputTuple, - DepositedEvent.OutputObject - >; - getEvent( - key: "Initialized" - ): TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - getEvent( - key: "Paused" - ): TypedContractEvent< - PausedEvent.InputTuple, - PausedEvent.OutputTuple, - PausedEvent.OutputObject - >; - getEvent( - key: "RoleAdminChanged" - ): TypedContractEvent< - RoleAdminChangedEvent.InputTuple, - RoleAdminChangedEvent.OutputTuple, - RoleAdminChangedEvent.OutputObject - >; - getEvent( - key: "RoleGranted" - ): TypedContractEvent< - RoleGrantedEvent.InputTuple, - RoleGrantedEvent.OutputTuple, - RoleGrantedEvent.OutputObject - >; - getEvent( - key: "RoleRevoked" - ): TypedContractEvent< - RoleRevokedEvent.InputTuple, - RoleRevokedEvent.OutputTuple, - RoleRevokedEvent.OutputObject - >; - getEvent( - key: "Unpaused" - ): TypedContractEvent< - UnpausedEvent.InputTuple, - UnpausedEvent.OutputTuple, - UnpausedEvent.OutputObject - >; - getEvent( - key: "Unwhitelisted" - ): TypedContractEvent< - UnwhitelistedEvent.InputTuple, - UnwhitelistedEvent.OutputTuple, - UnwhitelistedEvent.OutputObject - >; - getEvent( - key: "UpdatedCustodyTSSAddress" - ): TypedContractEvent< - UpdatedCustodyTSSAddressEvent.InputTuple, - UpdatedCustodyTSSAddressEvent.OutputTuple, - UpdatedCustodyTSSAddressEvent.OutputObject - >; - getEvent( - key: "Upgraded" - ): TypedContractEvent< - UpgradedEvent.InputTuple, - UpgradedEvent.OutputTuple, - UpgradedEvent.OutputObject - >; - getEvent( - key: "Whitelisted" - ): TypedContractEvent< - WhitelistedEvent.InputTuple, - WhitelistedEvent.OutputTuple, - WhitelistedEvent.OutputObject - >; - getEvent( - key: "Withdrawn" - ): TypedContractEvent< - WithdrawnEvent.InputTuple, - WithdrawnEvent.OutputTuple, - WithdrawnEvent.OutputObject - >; - getEvent( - key: "WithdrawnAndCalled" - ): TypedContractEvent< - WithdrawnAndCalledEvent.InputTuple, - WithdrawnAndCalledEvent.OutputTuple, - WithdrawnAndCalledEvent.OutputObject - >; - getEvent( - key: "WithdrawnAndReverted" - ): TypedContractEvent< - WithdrawnAndRevertedEvent.InputTuple, - WithdrawnAndRevertedEvent.OutputTuple, - WithdrawnAndRevertedEvent.OutputObject - >; - - filters: { - "Deposited(bytes,address,uint256,bytes)": TypedContractEvent< - DepositedEvent.InputTuple, - DepositedEvent.OutputTuple, - DepositedEvent.OutputObject - >; - Deposited: TypedContractEvent< - DepositedEvent.InputTuple, - DepositedEvent.OutputTuple, - DepositedEvent.OutputObject - >; - - "Initialized(uint64)": TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - Initialized: TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - - "Paused(address)": TypedContractEvent< - PausedEvent.InputTuple, - PausedEvent.OutputTuple, - PausedEvent.OutputObject - >; - Paused: TypedContractEvent< - PausedEvent.InputTuple, - PausedEvent.OutputTuple, - PausedEvent.OutputObject - >; - - "RoleAdminChanged(bytes32,bytes32,bytes32)": TypedContractEvent< - RoleAdminChangedEvent.InputTuple, - RoleAdminChangedEvent.OutputTuple, - RoleAdminChangedEvent.OutputObject - >; - RoleAdminChanged: TypedContractEvent< - RoleAdminChangedEvent.InputTuple, - RoleAdminChangedEvent.OutputTuple, - RoleAdminChangedEvent.OutputObject - >; - - "RoleGranted(bytes32,address,address)": TypedContractEvent< - RoleGrantedEvent.InputTuple, - RoleGrantedEvent.OutputTuple, - RoleGrantedEvent.OutputObject - >; - RoleGranted: TypedContractEvent< - RoleGrantedEvent.InputTuple, - RoleGrantedEvent.OutputTuple, - RoleGrantedEvent.OutputObject - >; - - "RoleRevoked(bytes32,address,address)": TypedContractEvent< - RoleRevokedEvent.InputTuple, - RoleRevokedEvent.OutputTuple, - RoleRevokedEvent.OutputObject - >; - RoleRevoked: TypedContractEvent< - RoleRevokedEvent.InputTuple, - RoleRevokedEvent.OutputTuple, - RoleRevokedEvent.OutputObject - >; - - "Unpaused(address)": TypedContractEvent< - UnpausedEvent.InputTuple, - UnpausedEvent.OutputTuple, - UnpausedEvent.OutputObject - >; - Unpaused: TypedContractEvent< - UnpausedEvent.InputTuple, - UnpausedEvent.OutputTuple, - UnpausedEvent.OutputObject - >; - - "Unwhitelisted(address)": TypedContractEvent< - UnwhitelistedEvent.InputTuple, - UnwhitelistedEvent.OutputTuple, - UnwhitelistedEvent.OutputObject - >; - Unwhitelisted: TypedContractEvent< - UnwhitelistedEvent.InputTuple, - UnwhitelistedEvent.OutputTuple, - UnwhitelistedEvent.OutputObject - >; - - "UpdatedCustodyTSSAddress(address,address)": TypedContractEvent< - UpdatedCustodyTSSAddressEvent.InputTuple, - UpdatedCustodyTSSAddressEvent.OutputTuple, - UpdatedCustodyTSSAddressEvent.OutputObject - >; - UpdatedCustodyTSSAddress: TypedContractEvent< - UpdatedCustodyTSSAddressEvent.InputTuple, - UpdatedCustodyTSSAddressEvent.OutputTuple, - UpdatedCustodyTSSAddressEvent.OutputObject - >; - - "Upgraded(address)": TypedContractEvent< - UpgradedEvent.InputTuple, - UpgradedEvent.OutputTuple, - UpgradedEvent.OutputObject - >; - Upgraded: TypedContractEvent< - UpgradedEvent.InputTuple, - UpgradedEvent.OutputTuple, - UpgradedEvent.OutputObject - >; - - "Whitelisted(address)": TypedContractEvent< - WhitelistedEvent.InputTuple, - WhitelistedEvent.OutputTuple, - WhitelistedEvent.OutputObject - >; - Whitelisted: TypedContractEvent< - WhitelistedEvent.InputTuple, - WhitelistedEvent.OutputTuple, - WhitelistedEvent.OutputObject - >; - - "Withdrawn(address,address,uint256)": TypedContractEvent< - WithdrawnEvent.InputTuple, - WithdrawnEvent.OutputTuple, - WithdrawnEvent.OutputObject - >; - Withdrawn: TypedContractEvent< - WithdrawnEvent.InputTuple, - WithdrawnEvent.OutputTuple, - WithdrawnEvent.OutputObject - >; - - "WithdrawnAndCalled(address,address,uint256,bytes)": TypedContractEvent< - WithdrawnAndCalledEvent.InputTuple, - WithdrawnAndCalledEvent.OutputTuple, - WithdrawnAndCalledEvent.OutputObject - >; - WithdrawnAndCalled: TypedContractEvent< - WithdrawnAndCalledEvent.InputTuple, - WithdrawnAndCalledEvent.OutputTuple, - WithdrawnAndCalledEvent.OutputObject - >; - - "WithdrawnAndReverted(address,address,uint256,bytes,tuple)": TypedContractEvent< - WithdrawnAndRevertedEvent.InputTuple, - WithdrawnAndRevertedEvent.OutputTuple, - WithdrawnAndRevertedEvent.OutputObject - >; - WithdrawnAndReverted: TypedContractEvent< - WithdrawnAndRevertedEvent.InputTuple, - WithdrawnAndRevertedEvent.OutputTuple, - WithdrawnAndRevertedEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/GatewayEVM.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/GatewayEVM.ts deleted file mode 100644 index 46a3fe54..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/evm/GatewayEVM.ts +++ /dev/null @@ -1,1322 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../../common"; - -export type RevertOptionsStruct = { - revertAddress: AddressLike; - callOnRevert: boolean; - abortAddress: AddressLike; - revertMessage: BytesLike; - onRevertGasLimit: BigNumberish; -}; - -export type RevertOptionsStructOutput = [ - revertAddress: string, - callOnRevert: boolean, - abortAddress: string, - revertMessage: string, - onRevertGasLimit: bigint -] & { - revertAddress: string; - callOnRevert: boolean; - abortAddress: string; - revertMessage: string; - onRevertGasLimit: bigint; -}; - -export type RevertContextStruct = { - sender: AddressLike; - asset: AddressLike; - amount: BigNumberish; - revertMessage: BytesLike; -}; - -export type RevertContextStructOutput = [ - sender: string, - asset: string, - amount: bigint, - revertMessage: string -] & { sender: string; asset: string; amount: bigint; revertMessage: string }; - -export type MessageContextStruct = { sender: AddressLike }; - -export type MessageContextStructOutput = [sender: string] & { sender: string }; - -export interface GatewayEVMInterface extends Interface { - getFunction( - nameOrSignature: - | "ASSET_HANDLER_ROLE" - | "DEFAULT_ADMIN_ROLE" - | "MAX_PAYLOAD_SIZE" - | "PAUSER_ROLE" - | "TSS_ROLE" - | "UPGRADE_INTERFACE_VERSION" - | "call" - | "custody" - | "deposit(address,uint256,address,(address,bool,address,bytes,uint256))" - | "deposit(address,(address,bool,address,bytes,uint256))" - | "depositAndCall(address,bytes,(address,bool,address,bytes,uint256))" - | "depositAndCall(address,uint256,address,bytes,(address,bool,address,bytes,uint256))" - | "execute" - | "executeRevert" - | "executeWithERC20" - | "getRoleAdmin" - | "grantRole" - | "hasRole" - | "initialize" - | "pause" - | "paused" - | "proxiableUUID" - | "renounceRole" - | "revertWithERC20" - | "revokeRole" - | "setConnector" - | "setCustody" - | "supportsInterface" - | "tssAddress" - | "unpause" - | "updateTSSAddress" - | "upgradeToAndCall" - | "zetaConnector" - | "zetaToken" - ): FunctionFragment; - - getEvent( - nameOrSignatureOrTopic: - | "Called" - | "Deposited" - | "DepositedAndCalled" - | "Executed" - | "ExecutedWithERC20" - | "Initialized" - | "Paused" - | "Reverted" - | "RoleAdminChanged" - | "RoleGranted" - | "RoleRevoked" - | "Unpaused" - | "UpdatedGatewayTSSAddress" - | "Upgraded" - ): EventFragment; - - encodeFunctionData( - functionFragment: "ASSET_HANDLER_ROLE", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "DEFAULT_ADMIN_ROLE", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "MAX_PAYLOAD_SIZE", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "PAUSER_ROLE", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "TSS_ROLE", values?: undefined): string; - encodeFunctionData( - functionFragment: "UPGRADE_INTERFACE_VERSION", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "call", - values: [AddressLike, BytesLike, RevertOptionsStruct] - ): string; - encodeFunctionData(functionFragment: "custody", values?: undefined): string; - encodeFunctionData( - functionFragment: "deposit(address,uint256,address,(address,bool,address,bytes,uint256))", - values: [AddressLike, BigNumberish, AddressLike, RevertOptionsStruct] - ): string; - encodeFunctionData( - functionFragment: "deposit(address,(address,bool,address,bytes,uint256))", - values: [AddressLike, RevertOptionsStruct] - ): string; - encodeFunctionData( - functionFragment: "depositAndCall(address,bytes,(address,bool,address,bytes,uint256))", - values: [AddressLike, BytesLike, RevertOptionsStruct] - ): string; - encodeFunctionData( - functionFragment: "depositAndCall(address,uint256,address,bytes,(address,bool,address,bytes,uint256))", - values: [ - AddressLike, - BigNumberish, - AddressLike, - BytesLike, - RevertOptionsStruct - ] - ): string; - encodeFunctionData( - functionFragment: "execute", - values: [MessageContextStruct, AddressLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "executeRevert", - values: [AddressLike, BytesLike, RevertContextStruct] - ): string; - encodeFunctionData( - functionFragment: "executeWithERC20", - values: [ - MessageContextStruct, - AddressLike, - AddressLike, - BigNumberish, - BytesLike - ] - ): string; - encodeFunctionData( - functionFragment: "getRoleAdmin", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "grantRole", - values: [BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "hasRole", - values: [BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "initialize", - values: [AddressLike, AddressLike, AddressLike] - ): string; - encodeFunctionData(functionFragment: "pause", values?: undefined): string; - encodeFunctionData(functionFragment: "paused", values?: undefined): string; - encodeFunctionData( - functionFragment: "proxiableUUID", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "renounceRole", - values: [BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "revertWithERC20", - values: [ - AddressLike, - AddressLike, - BigNumberish, - BytesLike, - RevertContextStruct - ] - ): string; - encodeFunctionData( - functionFragment: "revokeRole", - values: [BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "setConnector", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "setCustody", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "supportsInterface", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "tssAddress", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "unpause", values?: undefined): string; - encodeFunctionData( - functionFragment: "updateTSSAddress", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "upgradeToAndCall", - values: [AddressLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "zetaConnector", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "zetaToken", values?: undefined): string; - - decodeFunctionResult( - functionFragment: "ASSET_HANDLER_ROLE", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "DEFAULT_ADMIN_ROLE", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "MAX_PAYLOAD_SIZE", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "PAUSER_ROLE", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "TSS_ROLE", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "UPGRADE_INTERFACE_VERSION", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "call", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "custody", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "deposit(address,uint256,address,(address,bool,address,bytes,uint256))", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "deposit(address,(address,bool,address,bytes,uint256))", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "depositAndCall(address,bytes,(address,bool,address,bytes,uint256))", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "depositAndCall(address,uint256,address,bytes,(address,bool,address,bytes,uint256))", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "execute", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "executeRevert", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "executeWithERC20", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getRoleAdmin", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "pause", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "proxiableUUID", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "renounceRole", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "revertWithERC20", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "setConnector", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "setCustody", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "supportsInterface", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "tssAddress", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "unpause", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "updateTSSAddress", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "upgradeToAndCall", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "zetaConnector", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "zetaToken", data: BytesLike): Result; -} - -export namespace CalledEvent { - export type InputTuple = [ - sender: AddressLike, - receiver: AddressLike, - payload: BytesLike, - revertOptions: RevertOptionsStruct - ]; - export type OutputTuple = [ - sender: string, - receiver: string, - payload: string, - revertOptions: RevertOptionsStructOutput - ]; - export interface OutputObject { - sender: string; - receiver: string; - payload: string; - revertOptions: RevertOptionsStructOutput; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace DepositedEvent { - export type InputTuple = [ - sender: AddressLike, - receiver: AddressLike, - amount: BigNumberish, - asset: AddressLike, - payload: BytesLike, - revertOptions: RevertOptionsStruct - ]; - export type OutputTuple = [ - sender: string, - receiver: string, - amount: bigint, - asset: string, - payload: string, - revertOptions: RevertOptionsStructOutput - ]; - export interface OutputObject { - sender: string; - receiver: string; - amount: bigint; - asset: string; - payload: string; - revertOptions: RevertOptionsStructOutput; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace DepositedAndCalledEvent { - export type InputTuple = [ - sender: AddressLike, - receiver: AddressLike, - amount: BigNumberish, - asset: AddressLike, - payload: BytesLike, - revertOptions: RevertOptionsStruct - ]; - export type OutputTuple = [ - sender: string, - receiver: string, - amount: bigint, - asset: string, - payload: string, - revertOptions: RevertOptionsStructOutput - ]; - export interface OutputObject { - sender: string; - receiver: string; - amount: bigint; - asset: string; - payload: string; - revertOptions: RevertOptionsStructOutput; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace ExecutedEvent { - export type InputTuple = [ - destination: AddressLike, - value: BigNumberish, - data: BytesLike - ]; - export type OutputTuple = [destination: string, value: bigint, data: string]; - export interface OutputObject { - destination: string; - value: bigint; - data: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace ExecutedWithERC20Event { - export type InputTuple = [ - token: AddressLike, - to: AddressLike, - amount: BigNumberish, - data: BytesLike - ]; - export type OutputTuple = [ - token: string, - to: string, - amount: bigint, - data: string - ]; - export interface OutputObject { - token: string; - to: string; - amount: bigint; - data: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace InitializedEvent { - export type InputTuple = [version: BigNumberish]; - export type OutputTuple = [version: bigint]; - export interface OutputObject { - version: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace PausedEvent { - export type InputTuple = [account: AddressLike]; - export type OutputTuple = [account: string]; - export interface OutputObject { - account: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace RevertedEvent { - export type InputTuple = [ - to: AddressLike, - token: AddressLike, - amount: BigNumberish, - data: BytesLike, - revertContext: RevertContextStruct - ]; - export type OutputTuple = [ - to: string, - token: string, - amount: bigint, - data: string, - revertContext: RevertContextStructOutput - ]; - export interface OutputObject { - to: string; - token: string; - amount: bigint; - data: string; - revertContext: RevertContextStructOutput; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace RoleAdminChangedEvent { - export type InputTuple = [ - role: BytesLike, - previousAdminRole: BytesLike, - newAdminRole: BytesLike - ]; - export type OutputTuple = [ - role: string, - previousAdminRole: string, - newAdminRole: string - ]; - export interface OutputObject { - role: string; - previousAdminRole: string; - newAdminRole: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace RoleGrantedEvent { - export type InputTuple = [ - role: BytesLike, - account: AddressLike, - sender: AddressLike - ]; - export type OutputTuple = [role: string, account: string, sender: string]; - export interface OutputObject { - role: string; - account: string; - sender: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace RoleRevokedEvent { - export type InputTuple = [ - role: BytesLike, - account: AddressLike, - sender: AddressLike - ]; - export type OutputTuple = [role: string, account: string, sender: string]; - export interface OutputObject { - role: string; - account: string; - sender: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UnpausedEvent { - export type InputTuple = [account: AddressLike]; - export type OutputTuple = [account: string]; - export interface OutputObject { - account: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UpdatedGatewayTSSAddressEvent { - export type InputTuple = [ - oldTSSAddress: AddressLike, - newTSSAddress: AddressLike - ]; - export type OutputTuple = [oldTSSAddress: string, newTSSAddress: string]; - export interface OutputObject { - oldTSSAddress: string; - newTSSAddress: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UpgradedEvent { - export type InputTuple = [implementation: AddressLike]; - export type OutputTuple = [implementation: string]; - export interface OutputObject { - implementation: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface GatewayEVM extends BaseContract { - connect(runner?: ContractRunner | null): GatewayEVM; - waitForDeployment(): Promise; - - interface: GatewayEVMInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - ASSET_HANDLER_ROLE: TypedContractMethod<[], [string], "view">; - - DEFAULT_ADMIN_ROLE: TypedContractMethod<[], [string], "view">; - - MAX_PAYLOAD_SIZE: TypedContractMethod<[], [bigint], "view">; - - PAUSER_ROLE: TypedContractMethod<[], [string], "view">; - - TSS_ROLE: TypedContractMethod<[], [string], "view">; - - UPGRADE_INTERFACE_VERSION: TypedContractMethod<[], [string], "view">; - - call: TypedContractMethod< - [ - receiver: AddressLike, - payload: BytesLike, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - - custody: TypedContractMethod<[], [string], "view">; - - "deposit(address,uint256,address,(address,bool,address,bytes,uint256))": TypedContractMethod< - [ - receiver: AddressLike, - amount: BigNumberish, - asset: AddressLike, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - - "deposit(address,(address,bool,address,bytes,uint256))": TypedContractMethod< - [receiver: AddressLike, revertOptions: RevertOptionsStruct], - [void], - "payable" - >; - - "depositAndCall(address,bytes,(address,bool,address,bytes,uint256))": TypedContractMethod< - [ - receiver: AddressLike, - payload: BytesLike, - revertOptions: RevertOptionsStruct - ], - [void], - "payable" - >; - - "depositAndCall(address,uint256,address,bytes,(address,bool,address,bytes,uint256))": TypedContractMethod< - [ - receiver: AddressLike, - amount: BigNumberish, - asset: AddressLike, - payload: BytesLike, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - - execute: TypedContractMethod< - [ - messageContext: MessageContextStruct, - destination: AddressLike, - data: BytesLike - ], - [string], - "payable" - >; - - executeRevert: TypedContractMethod< - [ - destination: AddressLike, - data: BytesLike, - revertContext: RevertContextStruct - ], - [void], - "payable" - >; - - executeWithERC20: TypedContractMethod< - [ - messageContext: MessageContextStruct, - token: AddressLike, - to: AddressLike, - amount: BigNumberish, - data: BytesLike - ], - [void], - "nonpayable" - >; - - getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">; - - grantRole: TypedContractMethod< - [role: BytesLike, account: AddressLike], - [void], - "nonpayable" - >; - - hasRole: TypedContractMethod< - [role: BytesLike, account: AddressLike], - [boolean], - "view" - >; - - initialize: TypedContractMethod< - [tssAddress_: AddressLike, zetaToken_: AddressLike, admin_: AddressLike], - [void], - "nonpayable" - >; - - pause: TypedContractMethod<[], [void], "nonpayable">; - - paused: TypedContractMethod<[], [boolean], "view">; - - proxiableUUID: TypedContractMethod<[], [string], "view">; - - renounceRole: TypedContractMethod< - [role: BytesLike, callerConfirmation: AddressLike], - [void], - "nonpayable" - >; - - revertWithERC20: TypedContractMethod< - [ - token: AddressLike, - to: AddressLike, - amount: BigNumberish, - data: BytesLike, - revertContext: RevertContextStruct - ], - [void], - "nonpayable" - >; - - revokeRole: TypedContractMethod< - [role: BytesLike, account: AddressLike], - [void], - "nonpayable" - >; - - setConnector: TypedContractMethod< - [zetaConnector_: AddressLike], - [void], - "nonpayable" - >; - - setCustody: TypedContractMethod< - [custody_: AddressLike], - [void], - "nonpayable" - >; - - supportsInterface: TypedContractMethod< - [interfaceId: BytesLike], - [boolean], - "view" - >; - - tssAddress: TypedContractMethod<[], [string], "view">; - - unpause: TypedContractMethod<[], [void], "nonpayable">; - - updateTSSAddress: TypedContractMethod< - [newTSSAddress: AddressLike], - [void], - "nonpayable" - >; - - upgradeToAndCall: TypedContractMethod< - [newImplementation: AddressLike, data: BytesLike], - [void], - "payable" - >; - - zetaConnector: TypedContractMethod<[], [string], "view">; - - zetaToken: TypedContractMethod<[], [string], "view">; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "ASSET_HANDLER_ROLE" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "DEFAULT_ADMIN_ROLE" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "MAX_PAYLOAD_SIZE" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "PAUSER_ROLE" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "TSS_ROLE" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "UPGRADE_INTERFACE_VERSION" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "call" - ): TypedContractMethod< - [ - receiver: AddressLike, - payload: BytesLike, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "custody" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "deposit(address,uint256,address,(address,bool,address,bytes,uint256))" - ): TypedContractMethod< - [ - receiver: AddressLike, - amount: BigNumberish, - asset: AddressLike, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "deposit(address,(address,bool,address,bytes,uint256))" - ): TypedContractMethod< - [receiver: AddressLike, revertOptions: RevertOptionsStruct], - [void], - "payable" - >; - getFunction( - nameOrSignature: "depositAndCall(address,bytes,(address,bool,address,bytes,uint256))" - ): TypedContractMethod< - [ - receiver: AddressLike, - payload: BytesLike, - revertOptions: RevertOptionsStruct - ], - [void], - "payable" - >; - getFunction( - nameOrSignature: "depositAndCall(address,uint256,address,bytes,(address,bool,address,bytes,uint256))" - ): TypedContractMethod< - [ - receiver: AddressLike, - amount: BigNumberish, - asset: AddressLike, - payload: BytesLike, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "execute" - ): TypedContractMethod< - [ - messageContext: MessageContextStruct, - destination: AddressLike, - data: BytesLike - ], - [string], - "payable" - >; - getFunction( - nameOrSignature: "executeRevert" - ): TypedContractMethod< - [ - destination: AddressLike, - data: BytesLike, - revertContext: RevertContextStruct - ], - [void], - "payable" - >; - getFunction( - nameOrSignature: "executeWithERC20" - ): TypedContractMethod< - [ - messageContext: MessageContextStruct, - token: AddressLike, - to: AddressLike, - amount: BigNumberish, - data: BytesLike - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "getRoleAdmin" - ): TypedContractMethod<[role: BytesLike], [string], "view">; - getFunction( - nameOrSignature: "grantRole" - ): TypedContractMethod< - [role: BytesLike, account: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "hasRole" - ): TypedContractMethod< - [role: BytesLike, account: AddressLike], - [boolean], - "view" - >; - getFunction( - nameOrSignature: "initialize" - ): TypedContractMethod< - [tssAddress_: AddressLike, zetaToken_: AddressLike, admin_: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "pause" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "paused" - ): TypedContractMethod<[], [boolean], "view">; - getFunction( - nameOrSignature: "proxiableUUID" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "renounceRole" - ): TypedContractMethod< - [role: BytesLike, callerConfirmation: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "revertWithERC20" - ): TypedContractMethod< - [ - token: AddressLike, - to: AddressLike, - amount: BigNumberish, - data: BytesLike, - revertContext: RevertContextStruct - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "revokeRole" - ): TypedContractMethod< - [role: BytesLike, account: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "setConnector" - ): TypedContractMethod<[zetaConnector_: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "setCustody" - ): TypedContractMethod<[custody_: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "supportsInterface" - ): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; - getFunction( - nameOrSignature: "tssAddress" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "unpause" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "updateTSSAddress" - ): TypedContractMethod<[newTSSAddress: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "upgradeToAndCall" - ): TypedContractMethod< - [newImplementation: AddressLike, data: BytesLike], - [void], - "payable" - >; - getFunction( - nameOrSignature: "zetaConnector" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "zetaToken" - ): TypedContractMethod<[], [string], "view">; - - getEvent( - key: "Called" - ): TypedContractEvent< - CalledEvent.InputTuple, - CalledEvent.OutputTuple, - CalledEvent.OutputObject - >; - getEvent( - key: "Deposited" - ): TypedContractEvent< - DepositedEvent.InputTuple, - DepositedEvent.OutputTuple, - DepositedEvent.OutputObject - >; - getEvent( - key: "DepositedAndCalled" - ): TypedContractEvent< - DepositedAndCalledEvent.InputTuple, - DepositedAndCalledEvent.OutputTuple, - DepositedAndCalledEvent.OutputObject - >; - getEvent( - key: "Executed" - ): TypedContractEvent< - ExecutedEvent.InputTuple, - ExecutedEvent.OutputTuple, - ExecutedEvent.OutputObject - >; - getEvent( - key: "ExecutedWithERC20" - ): TypedContractEvent< - ExecutedWithERC20Event.InputTuple, - ExecutedWithERC20Event.OutputTuple, - ExecutedWithERC20Event.OutputObject - >; - getEvent( - key: "Initialized" - ): TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - getEvent( - key: "Paused" - ): TypedContractEvent< - PausedEvent.InputTuple, - PausedEvent.OutputTuple, - PausedEvent.OutputObject - >; - getEvent( - key: "Reverted" - ): TypedContractEvent< - RevertedEvent.InputTuple, - RevertedEvent.OutputTuple, - RevertedEvent.OutputObject - >; - getEvent( - key: "RoleAdminChanged" - ): TypedContractEvent< - RoleAdminChangedEvent.InputTuple, - RoleAdminChangedEvent.OutputTuple, - RoleAdminChangedEvent.OutputObject - >; - getEvent( - key: "RoleGranted" - ): TypedContractEvent< - RoleGrantedEvent.InputTuple, - RoleGrantedEvent.OutputTuple, - RoleGrantedEvent.OutputObject - >; - getEvent( - key: "RoleRevoked" - ): TypedContractEvent< - RoleRevokedEvent.InputTuple, - RoleRevokedEvent.OutputTuple, - RoleRevokedEvent.OutputObject - >; - getEvent( - key: "Unpaused" - ): TypedContractEvent< - UnpausedEvent.InputTuple, - UnpausedEvent.OutputTuple, - UnpausedEvent.OutputObject - >; - getEvent( - key: "UpdatedGatewayTSSAddress" - ): TypedContractEvent< - UpdatedGatewayTSSAddressEvent.InputTuple, - UpdatedGatewayTSSAddressEvent.OutputTuple, - UpdatedGatewayTSSAddressEvent.OutputObject - >; - getEvent( - key: "Upgraded" - ): TypedContractEvent< - UpgradedEvent.InputTuple, - UpgradedEvent.OutputTuple, - UpgradedEvent.OutputObject - >; - - filters: { - "Called(address,address,bytes,tuple)": TypedContractEvent< - CalledEvent.InputTuple, - CalledEvent.OutputTuple, - CalledEvent.OutputObject - >; - Called: TypedContractEvent< - CalledEvent.InputTuple, - CalledEvent.OutputTuple, - CalledEvent.OutputObject - >; - - "Deposited(address,address,uint256,address,bytes,tuple)": TypedContractEvent< - DepositedEvent.InputTuple, - DepositedEvent.OutputTuple, - DepositedEvent.OutputObject - >; - Deposited: TypedContractEvent< - DepositedEvent.InputTuple, - DepositedEvent.OutputTuple, - DepositedEvent.OutputObject - >; - - "DepositedAndCalled(address,address,uint256,address,bytes,tuple)": TypedContractEvent< - DepositedAndCalledEvent.InputTuple, - DepositedAndCalledEvent.OutputTuple, - DepositedAndCalledEvent.OutputObject - >; - DepositedAndCalled: TypedContractEvent< - DepositedAndCalledEvent.InputTuple, - DepositedAndCalledEvent.OutputTuple, - DepositedAndCalledEvent.OutputObject - >; - - "Executed(address,uint256,bytes)": TypedContractEvent< - ExecutedEvent.InputTuple, - ExecutedEvent.OutputTuple, - ExecutedEvent.OutputObject - >; - Executed: TypedContractEvent< - ExecutedEvent.InputTuple, - ExecutedEvent.OutputTuple, - ExecutedEvent.OutputObject - >; - - "ExecutedWithERC20(address,address,uint256,bytes)": TypedContractEvent< - ExecutedWithERC20Event.InputTuple, - ExecutedWithERC20Event.OutputTuple, - ExecutedWithERC20Event.OutputObject - >; - ExecutedWithERC20: TypedContractEvent< - ExecutedWithERC20Event.InputTuple, - ExecutedWithERC20Event.OutputTuple, - ExecutedWithERC20Event.OutputObject - >; - - "Initialized(uint64)": TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - Initialized: TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - - "Paused(address)": TypedContractEvent< - PausedEvent.InputTuple, - PausedEvent.OutputTuple, - PausedEvent.OutputObject - >; - Paused: TypedContractEvent< - PausedEvent.InputTuple, - PausedEvent.OutputTuple, - PausedEvent.OutputObject - >; - - "Reverted(address,address,uint256,bytes,tuple)": TypedContractEvent< - RevertedEvent.InputTuple, - RevertedEvent.OutputTuple, - RevertedEvent.OutputObject - >; - Reverted: TypedContractEvent< - RevertedEvent.InputTuple, - RevertedEvent.OutputTuple, - RevertedEvent.OutputObject - >; - - "RoleAdminChanged(bytes32,bytes32,bytes32)": TypedContractEvent< - RoleAdminChangedEvent.InputTuple, - RoleAdminChangedEvent.OutputTuple, - RoleAdminChangedEvent.OutputObject - >; - RoleAdminChanged: TypedContractEvent< - RoleAdminChangedEvent.InputTuple, - RoleAdminChangedEvent.OutputTuple, - RoleAdminChangedEvent.OutputObject - >; - - "RoleGranted(bytes32,address,address)": TypedContractEvent< - RoleGrantedEvent.InputTuple, - RoleGrantedEvent.OutputTuple, - RoleGrantedEvent.OutputObject - >; - RoleGranted: TypedContractEvent< - RoleGrantedEvent.InputTuple, - RoleGrantedEvent.OutputTuple, - RoleGrantedEvent.OutputObject - >; - - "RoleRevoked(bytes32,address,address)": TypedContractEvent< - RoleRevokedEvent.InputTuple, - RoleRevokedEvent.OutputTuple, - RoleRevokedEvent.OutputObject - >; - RoleRevoked: TypedContractEvent< - RoleRevokedEvent.InputTuple, - RoleRevokedEvent.OutputTuple, - RoleRevokedEvent.OutputObject - >; - - "Unpaused(address)": TypedContractEvent< - UnpausedEvent.InputTuple, - UnpausedEvent.OutputTuple, - UnpausedEvent.OutputObject - >; - Unpaused: TypedContractEvent< - UnpausedEvent.InputTuple, - UnpausedEvent.OutputTuple, - UnpausedEvent.OutputObject - >; - - "UpdatedGatewayTSSAddress(address,address)": TypedContractEvent< - UpdatedGatewayTSSAddressEvent.InputTuple, - UpdatedGatewayTSSAddressEvent.OutputTuple, - UpdatedGatewayTSSAddressEvent.OutputObject - >; - UpdatedGatewayTSSAddress: TypedContractEvent< - UpdatedGatewayTSSAddressEvent.InputTuple, - UpdatedGatewayTSSAddressEvent.OutputTuple, - UpdatedGatewayTSSAddressEvent.OutputObject - >; - - "Upgraded(address)": TypedContractEvent< - UpgradedEvent.InputTuple, - UpgradedEvent.OutputTuple, - UpgradedEvent.OutputObject - >; - Upgraded: TypedContractEvent< - UpgradedEvent.InputTuple, - UpgradedEvent.OutputTuple, - UpgradedEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorBase.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorBase.ts deleted file mode 100644 index e3e648f9..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorBase.ts +++ /dev/null @@ -1,919 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../../common"; - -export type RevertContextStruct = { - sender: AddressLike; - asset: AddressLike; - amount: BigNumberish; - revertMessage: BytesLike; -}; - -export type RevertContextStructOutput = [ - sender: string, - asset: string, - amount: bigint, - revertMessage: string -] & { sender: string; asset: string; amount: bigint; revertMessage: string }; - -export type MessageContextStruct = { sender: AddressLike }; - -export type MessageContextStructOutput = [sender: string] & { sender: string }; - -export interface ZetaConnectorBaseInterface extends Interface { - getFunction( - nameOrSignature: - | "DEFAULT_ADMIN_ROLE" - | "PAUSER_ROLE" - | "TSS_ROLE" - | "UPGRADE_INTERFACE_VERSION" - | "WITHDRAWER_ROLE" - | "gateway" - | "getRoleAdmin" - | "grantRole" - | "hasRole" - | "initialize" - | "pause" - | "paused" - | "proxiableUUID" - | "receiveTokens" - | "renounceRole" - | "revokeRole" - | "supportsInterface" - | "tssAddress" - | "unpause" - | "updateTSSAddress" - | "upgradeToAndCall" - | "withdraw" - | "withdrawAndCall" - | "withdrawAndRevert" - | "zetaToken" - ): FunctionFragment; - - getEvent( - nameOrSignatureOrTopic: - | "Initialized" - | "Paused" - | "RoleAdminChanged" - | "RoleGranted" - | "RoleRevoked" - | "Unpaused" - | "UpdatedZetaConnectorTSSAddress" - | "Upgraded" - | "Withdrawn" - | "WithdrawnAndCalled" - | "WithdrawnAndReverted" - ): EventFragment; - - encodeFunctionData( - functionFragment: "DEFAULT_ADMIN_ROLE", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "PAUSER_ROLE", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "TSS_ROLE", values?: undefined): string; - encodeFunctionData( - functionFragment: "UPGRADE_INTERFACE_VERSION", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "WITHDRAWER_ROLE", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "gateway", values?: undefined): string; - encodeFunctionData( - functionFragment: "getRoleAdmin", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "grantRole", - values: [BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "hasRole", - values: [BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "initialize", - values: [AddressLike, AddressLike, AddressLike, AddressLike] - ): string; - encodeFunctionData(functionFragment: "pause", values?: undefined): string; - encodeFunctionData(functionFragment: "paused", values?: undefined): string; - encodeFunctionData( - functionFragment: "proxiableUUID", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "receiveTokens", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "renounceRole", - values: [BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "revokeRole", - values: [BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "supportsInterface", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "tssAddress", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "unpause", values?: undefined): string; - encodeFunctionData( - functionFragment: "updateTSSAddress", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "upgradeToAndCall", - values: [AddressLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "withdraw", - values: [AddressLike, BigNumberish, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "withdrawAndCall", - values: [ - MessageContextStruct, - AddressLike, - BigNumberish, - BytesLike, - BytesLike - ] - ): string; - encodeFunctionData( - functionFragment: "withdrawAndRevert", - values: [ - AddressLike, - BigNumberish, - BytesLike, - BytesLike, - RevertContextStruct - ] - ): string; - encodeFunctionData(functionFragment: "zetaToken", values?: undefined): string; - - decodeFunctionResult( - functionFragment: "DEFAULT_ADMIN_ROLE", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "PAUSER_ROLE", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "TSS_ROLE", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "UPGRADE_INTERFACE_VERSION", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "WITHDRAWER_ROLE", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "gateway", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "getRoleAdmin", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "pause", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "proxiableUUID", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "receiveTokens", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "renounceRole", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "supportsInterface", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "tssAddress", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "unpause", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "updateTSSAddress", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "upgradeToAndCall", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "withdrawAndCall", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "withdrawAndRevert", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "zetaToken", data: BytesLike): Result; -} - -export namespace InitializedEvent { - export type InputTuple = [version: BigNumberish]; - export type OutputTuple = [version: bigint]; - export interface OutputObject { - version: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace PausedEvent { - export type InputTuple = [account: AddressLike]; - export type OutputTuple = [account: string]; - export interface OutputObject { - account: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace RoleAdminChangedEvent { - export type InputTuple = [ - role: BytesLike, - previousAdminRole: BytesLike, - newAdminRole: BytesLike - ]; - export type OutputTuple = [ - role: string, - previousAdminRole: string, - newAdminRole: string - ]; - export interface OutputObject { - role: string; - previousAdminRole: string; - newAdminRole: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace RoleGrantedEvent { - export type InputTuple = [ - role: BytesLike, - account: AddressLike, - sender: AddressLike - ]; - export type OutputTuple = [role: string, account: string, sender: string]; - export interface OutputObject { - role: string; - account: string; - sender: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace RoleRevokedEvent { - export type InputTuple = [ - role: BytesLike, - account: AddressLike, - sender: AddressLike - ]; - export type OutputTuple = [role: string, account: string, sender: string]; - export interface OutputObject { - role: string; - account: string; - sender: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UnpausedEvent { - export type InputTuple = [account: AddressLike]; - export type OutputTuple = [account: string]; - export interface OutputObject { - account: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UpdatedZetaConnectorTSSAddressEvent { - export type InputTuple = [ - oldTSSAddress: AddressLike, - newTSSAddress: AddressLike - ]; - export type OutputTuple = [oldTSSAddress: string, newTSSAddress: string]; - export interface OutputObject { - oldTSSAddress: string; - newTSSAddress: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UpgradedEvent { - export type InputTuple = [implementation: AddressLike]; - export type OutputTuple = [implementation: string]; - export interface OutputObject { - implementation: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WithdrawnEvent { - export type InputTuple = [to: AddressLike, amount: BigNumberish]; - export type OutputTuple = [to: string, amount: bigint]; - export interface OutputObject { - to: string; - amount: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WithdrawnAndCalledEvent { - export type InputTuple = [ - to: AddressLike, - amount: BigNumberish, - data: BytesLike - ]; - export type OutputTuple = [to: string, amount: bigint, data: string]; - export interface OutputObject { - to: string; - amount: bigint; - data: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WithdrawnAndRevertedEvent { - export type InputTuple = [ - to: AddressLike, - amount: BigNumberish, - data: BytesLike, - revertContext: RevertContextStruct - ]; - export type OutputTuple = [ - to: string, - amount: bigint, - data: string, - revertContext: RevertContextStructOutput - ]; - export interface OutputObject { - to: string; - amount: bigint; - data: string; - revertContext: RevertContextStructOutput; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface ZetaConnectorBase extends BaseContract { - connect(runner?: ContractRunner | null): ZetaConnectorBase; - waitForDeployment(): Promise; - - interface: ZetaConnectorBaseInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - DEFAULT_ADMIN_ROLE: TypedContractMethod<[], [string], "view">; - - PAUSER_ROLE: TypedContractMethod<[], [string], "view">; - - TSS_ROLE: TypedContractMethod<[], [string], "view">; - - UPGRADE_INTERFACE_VERSION: TypedContractMethod<[], [string], "view">; - - WITHDRAWER_ROLE: TypedContractMethod<[], [string], "view">; - - gateway: TypedContractMethod<[], [string], "view">; - - getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">; - - grantRole: TypedContractMethod< - [role: BytesLike, account: AddressLike], - [void], - "nonpayable" - >; - - hasRole: TypedContractMethod< - [role: BytesLike, account: AddressLike], - [boolean], - "view" - >; - - initialize: TypedContractMethod< - [ - gateway_: AddressLike, - zetaToken_: AddressLike, - tssAddress_: AddressLike, - admin_: AddressLike - ], - [void], - "nonpayable" - >; - - pause: TypedContractMethod<[], [void], "nonpayable">; - - paused: TypedContractMethod<[], [boolean], "view">; - - proxiableUUID: TypedContractMethod<[], [string], "view">; - - receiveTokens: TypedContractMethod< - [amount: BigNumberish], - [void], - "nonpayable" - >; - - renounceRole: TypedContractMethod< - [role: BytesLike, callerConfirmation: AddressLike], - [void], - "nonpayable" - >; - - revokeRole: TypedContractMethod< - [role: BytesLike, account: AddressLike], - [void], - "nonpayable" - >; - - supportsInterface: TypedContractMethod< - [interfaceId: BytesLike], - [boolean], - "view" - >; - - tssAddress: TypedContractMethod<[], [string], "view">; - - unpause: TypedContractMethod<[], [void], "nonpayable">; - - updateTSSAddress: TypedContractMethod< - [newTSSAddress: AddressLike], - [void], - "nonpayable" - >; - - upgradeToAndCall: TypedContractMethod< - [newImplementation: AddressLike, data: BytesLike], - [void], - "payable" - >; - - withdraw: TypedContractMethod< - [to: AddressLike, amount: BigNumberish, internalSendHash: BytesLike], - [void], - "nonpayable" - >; - - withdrawAndCall: TypedContractMethod< - [ - messageContext: MessageContextStruct, - to: AddressLike, - amount: BigNumberish, - data: BytesLike, - internalSendHash: BytesLike - ], - [void], - "nonpayable" - >; - - withdrawAndRevert: TypedContractMethod< - [ - to: AddressLike, - amount: BigNumberish, - data: BytesLike, - internalSendHash: BytesLike, - revertContext: RevertContextStruct - ], - [void], - "nonpayable" - >; - - zetaToken: TypedContractMethod<[], [string], "view">; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "DEFAULT_ADMIN_ROLE" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "PAUSER_ROLE" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "TSS_ROLE" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "UPGRADE_INTERFACE_VERSION" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "WITHDRAWER_ROLE" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "gateway" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "getRoleAdmin" - ): TypedContractMethod<[role: BytesLike], [string], "view">; - getFunction( - nameOrSignature: "grantRole" - ): TypedContractMethod< - [role: BytesLike, account: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "hasRole" - ): TypedContractMethod< - [role: BytesLike, account: AddressLike], - [boolean], - "view" - >; - getFunction( - nameOrSignature: "initialize" - ): TypedContractMethod< - [ - gateway_: AddressLike, - zetaToken_: AddressLike, - tssAddress_: AddressLike, - admin_: AddressLike - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "pause" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "paused" - ): TypedContractMethod<[], [boolean], "view">; - getFunction( - nameOrSignature: "proxiableUUID" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "receiveTokens" - ): TypedContractMethod<[amount: BigNumberish], [void], "nonpayable">; - getFunction( - nameOrSignature: "renounceRole" - ): TypedContractMethod< - [role: BytesLike, callerConfirmation: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "revokeRole" - ): TypedContractMethod< - [role: BytesLike, account: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "supportsInterface" - ): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; - getFunction( - nameOrSignature: "tssAddress" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "unpause" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "updateTSSAddress" - ): TypedContractMethod<[newTSSAddress: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "upgradeToAndCall" - ): TypedContractMethod< - [newImplementation: AddressLike, data: BytesLike], - [void], - "payable" - >; - getFunction( - nameOrSignature: "withdraw" - ): TypedContractMethod< - [to: AddressLike, amount: BigNumberish, internalSendHash: BytesLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdrawAndCall" - ): TypedContractMethod< - [ - messageContext: MessageContextStruct, - to: AddressLike, - amount: BigNumberish, - data: BytesLike, - internalSendHash: BytesLike - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdrawAndRevert" - ): TypedContractMethod< - [ - to: AddressLike, - amount: BigNumberish, - data: BytesLike, - internalSendHash: BytesLike, - revertContext: RevertContextStruct - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "zetaToken" - ): TypedContractMethod<[], [string], "view">; - - getEvent( - key: "Initialized" - ): TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - getEvent( - key: "Paused" - ): TypedContractEvent< - PausedEvent.InputTuple, - PausedEvent.OutputTuple, - PausedEvent.OutputObject - >; - getEvent( - key: "RoleAdminChanged" - ): TypedContractEvent< - RoleAdminChangedEvent.InputTuple, - RoleAdminChangedEvent.OutputTuple, - RoleAdminChangedEvent.OutputObject - >; - getEvent( - key: "RoleGranted" - ): TypedContractEvent< - RoleGrantedEvent.InputTuple, - RoleGrantedEvent.OutputTuple, - RoleGrantedEvent.OutputObject - >; - getEvent( - key: "RoleRevoked" - ): TypedContractEvent< - RoleRevokedEvent.InputTuple, - RoleRevokedEvent.OutputTuple, - RoleRevokedEvent.OutputObject - >; - getEvent( - key: "Unpaused" - ): TypedContractEvent< - UnpausedEvent.InputTuple, - UnpausedEvent.OutputTuple, - UnpausedEvent.OutputObject - >; - getEvent( - key: "UpdatedZetaConnectorTSSAddress" - ): TypedContractEvent< - UpdatedZetaConnectorTSSAddressEvent.InputTuple, - UpdatedZetaConnectorTSSAddressEvent.OutputTuple, - UpdatedZetaConnectorTSSAddressEvent.OutputObject - >; - getEvent( - key: "Upgraded" - ): TypedContractEvent< - UpgradedEvent.InputTuple, - UpgradedEvent.OutputTuple, - UpgradedEvent.OutputObject - >; - getEvent( - key: "Withdrawn" - ): TypedContractEvent< - WithdrawnEvent.InputTuple, - WithdrawnEvent.OutputTuple, - WithdrawnEvent.OutputObject - >; - getEvent( - key: "WithdrawnAndCalled" - ): TypedContractEvent< - WithdrawnAndCalledEvent.InputTuple, - WithdrawnAndCalledEvent.OutputTuple, - WithdrawnAndCalledEvent.OutputObject - >; - getEvent( - key: "WithdrawnAndReverted" - ): TypedContractEvent< - WithdrawnAndRevertedEvent.InputTuple, - WithdrawnAndRevertedEvent.OutputTuple, - WithdrawnAndRevertedEvent.OutputObject - >; - - filters: { - "Initialized(uint64)": TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - Initialized: TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - - "Paused(address)": TypedContractEvent< - PausedEvent.InputTuple, - PausedEvent.OutputTuple, - PausedEvent.OutputObject - >; - Paused: TypedContractEvent< - PausedEvent.InputTuple, - PausedEvent.OutputTuple, - PausedEvent.OutputObject - >; - - "RoleAdminChanged(bytes32,bytes32,bytes32)": TypedContractEvent< - RoleAdminChangedEvent.InputTuple, - RoleAdminChangedEvent.OutputTuple, - RoleAdminChangedEvent.OutputObject - >; - RoleAdminChanged: TypedContractEvent< - RoleAdminChangedEvent.InputTuple, - RoleAdminChangedEvent.OutputTuple, - RoleAdminChangedEvent.OutputObject - >; - - "RoleGranted(bytes32,address,address)": TypedContractEvent< - RoleGrantedEvent.InputTuple, - RoleGrantedEvent.OutputTuple, - RoleGrantedEvent.OutputObject - >; - RoleGranted: TypedContractEvent< - RoleGrantedEvent.InputTuple, - RoleGrantedEvent.OutputTuple, - RoleGrantedEvent.OutputObject - >; - - "RoleRevoked(bytes32,address,address)": TypedContractEvent< - RoleRevokedEvent.InputTuple, - RoleRevokedEvent.OutputTuple, - RoleRevokedEvent.OutputObject - >; - RoleRevoked: TypedContractEvent< - RoleRevokedEvent.InputTuple, - RoleRevokedEvent.OutputTuple, - RoleRevokedEvent.OutputObject - >; - - "Unpaused(address)": TypedContractEvent< - UnpausedEvent.InputTuple, - UnpausedEvent.OutputTuple, - UnpausedEvent.OutputObject - >; - Unpaused: TypedContractEvent< - UnpausedEvent.InputTuple, - UnpausedEvent.OutputTuple, - UnpausedEvent.OutputObject - >; - - "UpdatedZetaConnectorTSSAddress(address,address)": TypedContractEvent< - UpdatedZetaConnectorTSSAddressEvent.InputTuple, - UpdatedZetaConnectorTSSAddressEvent.OutputTuple, - UpdatedZetaConnectorTSSAddressEvent.OutputObject - >; - UpdatedZetaConnectorTSSAddress: TypedContractEvent< - UpdatedZetaConnectorTSSAddressEvent.InputTuple, - UpdatedZetaConnectorTSSAddressEvent.OutputTuple, - UpdatedZetaConnectorTSSAddressEvent.OutputObject - >; - - "Upgraded(address)": TypedContractEvent< - UpgradedEvent.InputTuple, - UpgradedEvent.OutputTuple, - UpgradedEvent.OutputObject - >; - Upgraded: TypedContractEvent< - UpgradedEvent.InputTuple, - UpgradedEvent.OutputTuple, - UpgradedEvent.OutputObject - >; - - "Withdrawn(address,uint256)": TypedContractEvent< - WithdrawnEvent.InputTuple, - WithdrawnEvent.OutputTuple, - WithdrawnEvent.OutputObject - >; - Withdrawn: TypedContractEvent< - WithdrawnEvent.InputTuple, - WithdrawnEvent.OutputTuple, - WithdrawnEvent.OutputObject - >; - - "WithdrawnAndCalled(address,uint256,bytes)": TypedContractEvent< - WithdrawnAndCalledEvent.InputTuple, - WithdrawnAndCalledEvent.OutputTuple, - WithdrawnAndCalledEvent.OutputObject - >; - WithdrawnAndCalled: TypedContractEvent< - WithdrawnAndCalledEvent.InputTuple, - WithdrawnAndCalledEvent.OutputTuple, - WithdrawnAndCalledEvent.OutputObject - >; - - "WithdrawnAndReverted(address,uint256,bytes,tuple)": TypedContractEvent< - WithdrawnAndRevertedEvent.InputTuple, - WithdrawnAndRevertedEvent.OutputTuple, - WithdrawnAndRevertedEvent.OutputObject - >; - WithdrawnAndReverted: TypedContractEvent< - WithdrawnAndRevertedEvent.InputTuple, - WithdrawnAndRevertedEvent.OutputTuple, - WithdrawnAndRevertedEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNative.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNative.ts deleted file mode 100644 index 2a1aecb3..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNative.ts +++ /dev/null @@ -1,919 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../../common"; - -export type RevertContextStruct = { - sender: AddressLike; - asset: AddressLike; - amount: BigNumberish; - revertMessage: BytesLike; -}; - -export type RevertContextStructOutput = [ - sender: string, - asset: string, - amount: bigint, - revertMessage: string -] & { sender: string; asset: string; amount: bigint; revertMessage: string }; - -export type MessageContextStruct = { sender: AddressLike }; - -export type MessageContextStructOutput = [sender: string] & { sender: string }; - -export interface ZetaConnectorNativeInterface extends Interface { - getFunction( - nameOrSignature: - | "DEFAULT_ADMIN_ROLE" - | "PAUSER_ROLE" - | "TSS_ROLE" - | "UPGRADE_INTERFACE_VERSION" - | "WITHDRAWER_ROLE" - | "gateway" - | "getRoleAdmin" - | "grantRole" - | "hasRole" - | "initialize" - | "pause" - | "paused" - | "proxiableUUID" - | "receiveTokens" - | "renounceRole" - | "revokeRole" - | "supportsInterface" - | "tssAddress" - | "unpause" - | "updateTSSAddress" - | "upgradeToAndCall" - | "withdraw" - | "withdrawAndCall" - | "withdrawAndRevert" - | "zetaToken" - ): FunctionFragment; - - getEvent( - nameOrSignatureOrTopic: - | "Initialized" - | "Paused" - | "RoleAdminChanged" - | "RoleGranted" - | "RoleRevoked" - | "Unpaused" - | "UpdatedZetaConnectorTSSAddress" - | "Upgraded" - | "Withdrawn" - | "WithdrawnAndCalled" - | "WithdrawnAndReverted" - ): EventFragment; - - encodeFunctionData( - functionFragment: "DEFAULT_ADMIN_ROLE", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "PAUSER_ROLE", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "TSS_ROLE", values?: undefined): string; - encodeFunctionData( - functionFragment: "UPGRADE_INTERFACE_VERSION", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "WITHDRAWER_ROLE", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "gateway", values?: undefined): string; - encodeFunctionData( - functionFragment: "getRoleAdmin", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "grantRole", - values: [BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "hasRole", - values: [BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "initialize", - values: [AddressLike, AddressLike, AddressLike, AddressLike] - ): string; - encodeFunctionData(functionFragment: "pause", values?: undefined): string; - encodeFunctionData(functionFragment: "paused", values?: undefined): string; - encodeFunctionData( - functionFragment: "proxiableUUID", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "receiveTokens", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "renounceRole", - values: [BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "revokeRole", - values: [BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "supportsInterface", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "tssAddress", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "unpause", values?: undefined): string; - encodeFunctionData( - functionFragment: "updateTSSAddress", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "upgradeToAndCall", - values: [AddressLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "withdraw", - values: [AddressLike, BigNumberish, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "withdrawAndCall", - values: [ - MessageContextStruct, - AddressLike, - BigNumberish, - BytesLike, - BytesLike - ] - ): string; - encodeFunctionData( - functionFragment: "withdrawAndRevert", - values: [ - AddressLike, - BigNumberish, - BytesLike, - BytesLike, - RevertContextStruct - ] - ): string; - encodeFunctionData(functionFragment: "zetaToken", values?: undefined): string; - - decodeFunctionResult( - functionFragment: "DEFAULT_ADMIN_ROLE", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "PAUSER_ROLE", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "TSS_ROLE", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "UPGRADE_INTERFACE_VERSION", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "WITHDRAWER_ROLE", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "gateway", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "getRoleAdmin", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "pause", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "proxiableUUID", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "receiveTokens", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "renounceRole", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "supportsInterface", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "tssAddress", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "unpause", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "updateTSSAddress", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "upgradeToAndCall", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "withdrawAndCall", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "withdrawAndRevert", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "zetaToken", data: BytesLike): Result; -} - -export namespace InitializedEvent { - export type InputTuple = [version: BigNumberish]; - export type OutputTuple = [version: bigint]; - export interface OutputObject { - version: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace PausedEvent { - export type InputTuple = [account: AddressLike]; - export type OutputTuple = [account: string]; - export interface OutputObject { - account: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace RoleAdminChangedEvent { - export type InputTuple = [ - role: BytesLike, - previousAdminRole: BytesLike, - newAdminRole: BytesLike - ]; - export type OutputTuple = [ - role: string, - previousAdminRole: string, - newAdminRole: string - ]; - export interface OutputObject { - role: string; - previousAdminRole: string; - newAdminRole: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace RoleGrantedEvent { - export type InputTuple = [ - role: BytesLike, - account: AddressLike, - sender: AddressLike - ]; - export type OutputTuple = [role: string, account: string, sender: string]; - export interface OutputObject { - role: string; - account: string; - sender: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace RoleRevokedEvent { - export type InputTuple = [ - role: BytesLike, - account: AddressLike, - sender: AddressLike - ]; - export type OutputTuple = [role: string, account: string, sender: string]; - export interface OutputObject { - role: string; - account: string; - sender: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UnpausedEvent { - export type InputTuple = [account: AddressLike]; - export type OutputTuple = [account: string]; - export interface OutputObject { - account: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UpdatedZetaConnectorTSSAddressEvent { - export type InputTuple = [ - oldTSSAddress: AddressLike, - newTSSAddress: AddressLike - ]; - export type OutputTuple = [oldTSSAddress: string, newTSSAddress: string]; - export interface OutputObject { - oldTSSAddress: string; - newTSSAddress: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UpgradedEvent { - export type InputTuple = [implementation: AddressLike]; - export type OutputTuple = [implementation: string]; - export interface OutputObject { - implementation: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WithdrawnEvent { - export type InputTuple = [to: AddressLike, amount: BigNumberish]; - export type OutputTuple = [to: string, amount: bigint]; - export interface OutputObject { - to: string; - amount: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WithdrawnAndCalledEvent { - export type InputTuple = [ - to: AddressLike, - amount: BigNumberish, - data: BytesLike - ]; - export type OutputTuple = [to: string, amount: bigint, data: string]; - export interface OutputObject { - to: string; - amount: bigint; - data: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WithdrawnAndRevertedEvent { - export type InputTuple = [ - to: AddressLike, - amount: BigNumberish, - data: BytesLike, - revertContext: RevertContextStruct - ]; - export type OutputTuple = [ - to: string, - amount: bigint, - data: string, - revertContext: RevertContextStructOutput - ]; - export interface OutputObject { - to: string; - amount: bigint; - data: string; - revertContext: RevertContextStructOutput; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface ZetaConnectorNative extends BaseContract { - connect(runner?: ContractRunner | null): ZetaConnectorNative; - waitForDeployment(): Promise; - - interface: ZetaConnectorNativeInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - DEFAULT_ADMIN_ROLE: TypedContractMethod<[], [string], "view">; - - PAUSER_ROLE: TypedContractMethod<[], [string], "view">; - - TSS_ROLE: TypedContractMethod<[], [string], "view">; - - UPGRADE_INTERFACE_VERSION: TypedContractMethod<[], [string], "view">; - - WITHDRAWER_ROLE: TypedContractMethod<[], [string], "view">; - - gateway: TypedContractMethod<[], [string], "view">; - - getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">; - - grantRole: TypedContractMethod< - [role: BytesLike, account: AddressLike], - [void], - "nonpayable" - >; - - hasRole: TypedContractMethod< - [role: BytesLike, account: AddressLike], - [boolean], - "view" - >; - - initialize: TypedContractMethod< - [ - gateway_: AddressLike, - zetaToken_: AddressLike, - tssAddress_: AddressLike, - admin_: AddressLike - ], - [void], - "nonpayable" - >; - - pause: TypedContractMethod<[], [void], "nonpayable">; - - paused: TypedContractMethod<[], [boolean], "view">; - - proxiableUUID: TypedContractMethod<[], [string], "view">; - - receiveTokens: TypedContractMethod< - [amount: BigNumberish], - [void], - "nonpayable" - >; - - renounceRole: TypedContractMethod< - [role: BytesLike, callerConfirmation: AddressLike], - [void], - "nonpayable" - >; - - revokeRole: TypedContractMethod< - [role: BytesLike, account: AddressLike], - [void], - "nonpayable" - >; - - supportsInterface: TypedContractMethod< - [interfaceId: BytesLike], - [boolean], - "view" - >; - - tssAddress: TypedContractMethod<[], [string], "view">; - - unpause: TypedContractMethod<[], [void], "nonpayable">; - - updateTSSAddress: TypedContractMethod< - [newTSSAddress: AddressLike], - [void], - "nonpayable" - >; - - upgradeToAndCall: TypedContractMethod< - [newImplementation: AddressLike, data: BytesLike], - [void], - "payable" - >; - - withdraw: TypedContractMethod< - [to: AddressLike, amount: BigNumberish, arg2: BytesLike], - [void], - "nonpayable" - >; - - withdrawAndCall: TypedContractMethod< - [ - messageContext: MessageContextStruct, - to: AddressLike, - amount: BigNumberish, - data: BytesLike, - arg4: BytesLike - ], - [void], - "nonpayable" - >; - - withdrawAndRevert: TypedContractMethod< - [ - to: AddressLike, - amount: BigNumberish, - data: BytesLike, - arg3: BytesLike, - revertContext: RevertContextStruct - ], - [void], - "nonpayable" - >; - - zetaToken: TypedContractMethod<[], [string], "view">; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "DEFAULT_ADMIN_ROLE" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "PAUSER_ROLE" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "TSS_ROLE" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "UPGRADE_INTERFACE_VERSION" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "WITHDRAWER_ROLE" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "gateway" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "getRoleAdmin" - ): TypedContractMethod<[role: BytesLike], [string], "view">; - getFunction( - nameOrSignature: "grantRole" - ): TypedContractMethod< - [role: BytesLike, account: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "hasRole" - ): TypedContractMethod< - [role: BytesLike, account: AddressLike], - [boolean], - "view" - >; - getFunction( - nameOrSignature: "initialize" - ): TypedContractMethod< - [ - gateway_: AddressLike, - zetaToken_: AddressLike, - tssAddress_: AddressLike, - admin_: AddressLike - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "pause" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "paused" - ): TypedContractMethod<[], [boolean], "view">; - getFunction( - nameOrSignature: "proxiableUUID" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "receiveTokens" - ): TypedContractMethod<[amount: BigNumberish], [void], "nonpayable">; - getFunction( - nameOrSignature: "renounceRole" - ): TypedContractMethod< - [role: BytesLike, callerConfirmation: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "revokeRole" - ): TypedContractMethod< - [role: BytesLike, account: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "supportsInterface" - ): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; - getFunction( - nameOrSignature: "tssAddress" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "unpause" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "updateTSSAddress" - ): TypedContractMethod<[newTSSAddress: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "upgradeToAndCall" - ): TypedContractMethod< - [newImplementation: AddressLike, data: BytesLike], - [void], - "payable" - >; - getFunction( - nameOrSignature: "withdraw" - ): TypedContractMethod< - [to: AddressLike, amount: BigNumberish, arg2: BytesLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdrawAndCall" - ): TypedContractMethod< - [ - messageContext: MessageContextStruct, - to: AddressLike, - amount: BigNumberish, - data: BytesLike, - arg4: BytesLike - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdrawAndRevert" - ): TypedContractMethod< - [ - to: AddressLike, - amount: BigNumberish, - data: BytesLike, - arg3: BytesLike, - revertContext: RevertContextStruct - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "zetaToken" - ): TypedContractMethod<[], [string], "view">; - - getEvent( - key: "Initialized" - ): TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - getEvent( - key: "Paused" - ): TypedContractEvent< - PausedEvent.InputTuple, - PausedEvent.OutputTuple, - PausedEvent.OutputObject - >; - getEvent( - key: "RoleAdminChanged" - ): TypedContractEvent< - RoleAdminChangedEvent.InputTuple, - RoleAdminChangedEvent.OutputTuple, - RoleAdminChangedEvent.OutputObject - >; - getEvent( - key: "RoleGranted" - ): TypedContractEvent< - RoleGrantedEvent.InputTuple, - RoleGrantedEvent.OutputTuple, - RoleGrantedEvent.OutputObject - >; - getEvent( - key: "RoleRevoked" - ): TypedContractEvent< - RoleRevokedEvent.InputTuple, - RoleRevokedEvent.OutputTuple, - RoleRevokedEvent.OutputObject - >; - getEvent( - key: "Unpaused" - ): TypedContractEvent< - UnpausedEvent.InputTuple, - UnpausedEvent.OutputTuple, - UnpausedEvent.OutputObject - >; - getEvent( - key: "UpdatedZetaConnectorTSSAddress" - ): TypedContractEvent< - UpdatedZetaConnectorTSSAddressEvent.InputTuple, - UpdatedZetaConnectorTSSAddressEvent.OutputTuple, - UpdatedZetaConnectorTSSAddressEvent.OutputObject - >; - getEvent( - key: "Upgraded" - ): TypedContractEvent< - UpgradedEvent.InputTuple, - UpgradedEvent.OutputTuple, - UpgradedEvent.OutputObject - >; - getEvent( - key: "Withdrawn" - ): TypedContractEvent< - WithdrawnEvent.InputTuple, - WithdrawnEvent.OutputTuple, - WithdrawnEvent.OutputObject - >; - getEvent( - key: "WithdrawnAndCalled" - ): TypedContractEvent< - WithdrawnAndCalledEvent.InputTuple, - WithdrawnAndCalledEvent.OutputTuple, - WithdrawnAndCalledEvent.OutputObject - >; - getEvent( - key: "WithdrawnAndReverted" - ): TypedContractEvent< - WithdrawnAndRevertedEvent.InputTuple, - WithdrawnAndRevertedEvent.OutputTuple, - WithdrawnAndRevertedEvent.OutputObject - >; - - filters: { - "Initialized(uint64)": TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - Initialized: TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - - "Paused(address)": TypedContractEvent< - PausedEvent.InputTuple, - PausedEvent.OutputTuple, - PausedEvent.OutputObject - >; - Paused: TypedContractEvent< - PausedEvent.InputTuple, - PausedEvent.OutputTuple, - PausedEvent.OutputObject - >; - - "RoleAdminChanged(bytes32,bytes32,bytes32)": TypedContractEvent< - RoleAdminChangedEvent.InputTuple, - RoleAdminChangedEvent.OutputTuple, - RoleAdminChangedEvent.OutputObject - >; - RoleAdminChanged: TypedContractEvent< - RoleAdminChangedEvent.InputTuple, - RoleAdminChangedEvent.OutputTuple, - RoleAdminChangedEvent.OutputObject - >; - - "RoleGranted(bytes32,address,address)": TypedContractEvent< - RoleGrantedEvent.InputTuple, - RoleGrantedEvent.OutputTuple, - RoleGrantedEvent.OutputObject - >; - RoleGranted: TypedContractEvent< - RoleGrantedEvent.InputTuple, - RoleGrantedEvent.OutputTuple, - RoleGrantedEvent.OutputObject - >; - - "RoleRevoked(bytes32,address,address)": TypedContractEvent< - RoleRevokedEvent.InputTuple, - RoleRevokedEvent.OutputTuple, - RoleRevokedEvent.OutputObject - >; - RoleRevoked: TypedContractEvent< - RoleRevokedEvent.InputTuple, - RoleRevokedEvent.OutputTuple, - RoleRevokedEvent.OutputObject - >; - - "Unpaused(address)": TypedContractEvent< - UnpausedEvent.InputTuple, - UnpausedEvent.OutputTuple, - UnpausedEvent.OutputObject - >; - Unpaused: TypedContractEvent< - UnpausedEvent.InputTuple, - UnpausedEvent.OutputTuple, - UnpausedEvent.OutputObject - >; - - "UpdatedZetaConnectorTSSAddress(address,address)": TypedContractEvent< - UpdatedZetaConnectorTSSAddressEvent.InputTuple, - UpdatedZetaConnectorTSSAddressEvent.OutputTuple, - UpdatedZetaConnectorTSSAddressEvent.OutputObject - >; - UpdatedZetaConnectorTSSAddress: TypedContractEvent< - UpdatedZetaConnectorTSSAddressEvent.InputTuple, - UpdatedZetaConnectorTSSAddressEvent.OutputTuple, - UpdatedZetaConnectorTSSAddressEvent.OutputObject - >; - - "Upgraded(address)": TypedContractEvent< - UpgradedEvent.InputTuple, - UpgradedEvent.OutputTuple, - UpgradedEvent.OutputObject - >; - Upgraded: TypedContractEvent< - UpgradedEvent.InputTuple, - UpgradedEvent.OutputTuple, - UpgradedEvent.OutputObject - >; - - "Withdrawn(address,uint256)": TypedContractEvent< - WithdrawnEvent.InputTuple, - WithdrawnEvent.OutputTuple, - WithdrawnEvent.OutputObject - >; - Withdrawn: TypedContractEvent< - WithdrawnEvent.InputTuple, - WithdrawnEvent.OutputTuple, - WithdrawnEvent.OutputObject - >; - - "WithdrawnAndCalled(address,uint256,bytes)": TypedContractEvent< - WithdrawnAndCalledEvent.InputTuple, - WithdrawnAndCalledEvent.OutputTuple, - WithdrawnAndCalledEvent.OutputObject - >; - WithdrawnAndCalled: TypedContractEvent< - WithdrawnAndCalledEvent.InputTuple, - WithdrawnAndCalledEvent.OutputTuple, - WithdrawnAndCalledEvent.OutputObject - >; - - "WithdrawnAndReverted(address,uint256,bytes,tuple)": TypedContractEvent< - WithdrawnAndRevertedEvent.InputTuple, - WithdrawnAndRevertedEvent.OutputTuple, - WithdrawnAndRevertedEvent.OutputObject - >; - WithdrawnAndReverted: TypedContractEvent< - WithdrawnAndRevertedEvent.InputTuple, - WithdrawnAndRevertedEvent.OutputTuple, - WithdrawnAndRevertedEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNonNative.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNonNative.ts deleted file mode 100644 index 06b564bd..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNonNative.ts +++ /dev/null @@ -1,976 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../../common"; - -export type RevertContextStruct = { - sender: AddressLike; - asset: AddressLike; - amount: BigNumberish; - revertMessage: BytesLike; -}; - -export type RevertContextStructOutput = [ - sender: string, - asset: string, - amount: bigint, - revertMessage: string -] & { sender: string; asset: string; amount: bigint; revertMessage: string }; - -export type MessageContextStruct = { sender: AddressLike }; - -export type MessageContextStructOutput = [sender: string] & { sender: string }; - -export interface ZetaConnectorNonNativeInterface extends Interface { - getFunction( - nameOrSignature: - | "DEFAULT_ADMIN_ROLE" - | "PAUSER_ROLE" - | "TSS_ROLE" - | "UPGRADE_INTERFACE_VERSION" - | "WITHDRAWER_ROLE" - | "gateway" - | "getRoleAdmin" - | "grantRole" - | "hasRole" - | "initialize" - | "maxSupply" - | "pause" - | "paused" - | "proxiableUUID" - | "receiveTokens" - | "renounceRole" - | "revokeRole" - | "setMaxSupply" - | "supportsInterface" - | "tssAddress" - | "unpause" - | "updateTSSAddress" - | "upgradeToAndCall" - | "withdraw" - | "withdrawAndCall" - | "withdrawAndRevert" - | "zetaToken" - ): FunctionFragment; - - getEvent( - nameOrSignatureOrTopic: - | "Initialized" - | "MaxSupplyUpdated" - | "Paused" - | "RoleAdminChanged" - | "RoleGranted" - | "RoleRevoked" - | "Unpaused" - | "UpdatedZetaConnectorTSSAddress" - | "Upgraded" - | "Withdrawn" - | "WithdrawnAndCalled" - | "WithdrawnAndReverted" - ): EventFragment; - - encodeFunctionData( - functionFragment: "DEFAULT_ADMIN_ROLE", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "PAUSER_ROLE", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "TSS_ROLE", values?: undefined): string; - encodeFunctionData( - functionFragment: "UPGRADE_INTERFACE_VERSION", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "WITHDRAWER_ROLE", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "gateway", values?: undefined): string; - encodeFunctionData( - functionFragment: "getRoleAdmin", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "grantRole", - values: [BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "hasRole", - values: [BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "initialize", - values: [AddressLike, AddressLike, AddressLike, AddressLike] - ): string; - encodeFunctionData(functionFragment: "maxSupply", values?: undefined): string; - encodeFunctionData(functionFragment: "pause", values?: undefined): string; - encodeFunctionData(functionFragment: "paused", values?: undefined): string; - encodeFunctionData( - functionFragment: "proxiableUUID", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "receiveTokens", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "renounceRole", - values: [BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "revokeRole", - values: [BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "setMaxSupply", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "supportsInterface", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "tssAddress", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "unpause", values?: undefined): string; - encodeFunctionData( - functionFragment: "updateTSSAddress", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "upgradeToAndCall", - values: [AddressLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "withdraw", - values: [AddressLike, BigNumberish, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "withdrawAndCall", - values: [ - MessageContextStruct, - AddressLike, - BigNumberish, - BytesLike, - BytesLike - ] - ): string; - encodeFunctionData( - functionFragment: "withdrawAndRevert", - values: [ - AddressLike, - BigNumberish, - BytesLike, - BytesLike, - RevertContextStruct - ] - ): string; - encodeFunctionData(functionFragment: "zetaToken", values?: undefined): string; - - decodeFunctionResult( - functionFragment: "DEFAULT_ADMIN_ROLE", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "PAUSER_ROLE", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "TSS_ROLE", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "UPGRADE_INTERFACE_VERSION", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "WITHDRAWER_ROLE", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "gateway", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "getRoleAdmin", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "maxSupply", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "pause", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "proxiableUUID", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "receiveTokens", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "renounceRole", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "setMaxSupply", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "supportsInterface", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "tssAddress", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "unpause", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "updateTSSAddress", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "upgradeToAndCall", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "withdrawAndCall", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "withdrawAndRevert", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "zetaToken", data: BytesLike): Result; -} - -export namespace InitializedEvent { - export type InputTuple = [version: BigNumberish]; - export type OutputTuple = [version: bigint]; - export interface OutputObject { - version: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace MaxSupplyUpdatedEvent { - export type InputTuple = [maxSupply: BigNumberish]; - export type OutputTuple = [maxSupply: bigint]; - export interface OutputObject { - maxSupply: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace PausedEvent { - export type InputTuple = [account: AddressLike]; - export type OutputTuple = [account: string]; - export interface OutputObject { - account: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace RoleAdminChangedEvent { - export type InputTuple = [ - role: BytesLike, - previousAdminRole: BytesLike, - newAdminRole: BytesLike - ]; - export type OutputTuple = [ - role: string, - previousAdminRole: string, - newAdminRole: string - ]; - export interface OutputObject { - role: string; - previousAdminRole: string; - newAdminRole: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace RoleGrantedEvent { - export type InputTuple = [ - role: BytesLike, - account: AddressLike, - sender: AddressLike - ]; - export type OutputTuple = [role: string, account: string, sender: string]; - export interface OutputObject { - role: string; - account: string; - sender: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace RoleRevokedEvent { - export type InputTuple = [ - role: BytesLike, - account: AddressLike, - sender: AddressLike - ]; - export type OutputTuple = [role: string, account: string, sender: string]; - export interface OutputObject { - role: string; - account: string; - sender: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UnpausedEvent { - export type InputTuple = [account: AddressLike]; - export type OutputTuple = [account: string]; - export interface OutputObject { - account: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UpdatedZetaConnectorTSSAddressEvent { - export type InputTuple = [ - oldTSSAddress: AddressLike, - newTSSAddress: AddressLike - ]; - export type OutputTuple = [oldTSSAddress: string, newTSSAddress: string]; - export interface OutputObject { - oldTSSAddress: string; - newTSSAddress: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UpgradedEvent { - export type InputTuple = [implementation: AddressLike]; - export type OutputTuple = [implementation: string]; - export interface OutputObject { - implementation: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WithdrawnEvent { - export type InputTuple = [to: AddressLike, amount: BigNumberish]; - export type OutputTuple = [to: string, amount: bigint]; - export interface OutputObject { - to: string; - amount: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WithdrawnAndCalledEvent { - export type InputTuple = [ - to: AddressLike, - amount: BigNumberish, - data: BytesLike - ]; - export type OutputTuple = [to: string, amount: bigint, data: string]; - export interface OutputObject { - to: string; - amount: bigint; - data: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WithdrawnAndRevertedEvent { - export type InputTuple = [ - to: AddressLike, - amount: BigNumberish, - data: BytesLike, - revertContext: RevertContextStruct - ]; - export type OutputTuple = [ - to: string, - amount: bigint, - data: string, - revertContext: RevertContextStructOutput - ]; - export interface OutputObject { - to: string; - amount: bigint; - data: string; - revertContext: RevertContextStructOutput; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface ZetaConnectorNonNative extends BaseContract { - connect(runner?: ContractRunner | null): ZetaConnectorNonNative; - waitForDeployment(): Promise; - - interface: ZetaConnectorNonNativeInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - DEFAULT_ADMIN_ROLE: TypedContractMethod<[], [string], "view">; - - PAUSER_ROLE: TypedContractMethod<[], [string], "view">; - - TSS_ROLE: TypedContractMethod<[], [string], "view">; - - UPGRADE_INTERFACE_VERSION: TypedContractMethod<[], [string], "view">; - - WITHDRAWER_ROLE: TypedContractMethod<[], [string], "view">; - - gateway: TypedContractMethod<[], [string], "view">; - - getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">; - - grantRole: TypedContractMethod< - [role: BytesLike, account: AddressLike], - [void], - "nonpayable" - >; - - hasRole: TypedContractMethod< - [role: BytesLike, account: AddressLike], - [boolean], - "view" - >; - - initialize: TypedContractMethod< - [ - gateway_: AddressLike, - zetaToken_: AddressLike, - tssAddress_: AddressLike, - admin_: AddressLike - ], - [void], - "nonpayable" - >; - - maxSupply: TypedContractMethod<[], [bigint], "view">; - - pause: TypedContractMethod<[], [void], "nonpayable">; - - paused: TypedContractMethod<[], [boolean], "view">; - - proxiableUUID: TypedContractMethod<[], [string], "view">; - - receiveTokens: TypedContractMethod< - [amount: BigNumberish], - [void], - "nonpayable" - >; - - renounceRole: TypedContractMethod< - [role: BytesLike, callerConfirmation: AddressLike], - [void], - "nonpayable" - >; - - revokeRole: TypedContractMethod< - [role: BytesLike, account: AddressLike], - [void], - "nonpayable" - >; - - setMaxSupply: TypedContractMethod< - [maxSupply_: BigNumberish], - [void], - "nonpayable" - >; - - supportsInterface: TypedContractMethod< - [interfaceId: BytesLike], - [boolean], - "view" - >; - - tssAddress: TypedContractMethod<[], [string], "view">; - - unpause: TypedContractMethod<[], [void], "nonpayable">; - - updateTSSAddress: TypedContractMethod< - [newTSSAddress: AddressLike], - [void], - "nonpayable" - >; - - upgradeToAndCall: TypedContractMethod< - [newImplementation: AddressLike, data: BytesLike], - [void], - "payable" - >; - - withdraw: TypedContractMethod< - [to: AddressLike, amount: BigNumberish, internalSendHash: BytesLike], - [void], - "nonpayable" - >; - - withdrawAndCall: TypedContractMethod< - [ - messageContext: MessageContextStruct, - to: AddressLike, - amount: BigNumberish, - data: BytesLike, - internalSendHash: BytesLike - ], - [void], - "nonpayable" - >; - - withdrawAndRevert: TypedContractMethod< - [ - to: AddressLike, - amount: BigNumberish, - data: BytesLike, - internalSendHash: BytesLike, - revertContext: RevertContextStruct - ], - [void], - "nonpayable" - >; - - zetaToken: TypedContractMethod<[], [string], "view">; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "DEFAULT_ADMIN_ROLE" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "PAUSER_ROLE" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "TSS_ROLE" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "UPGRADE_INTERFACE_VERSION" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "WITHDRAWER_ROLE" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "gateway" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "getRoleAdmin" - ): TypedContractMethod<[role: BytesLike], [string], "view">; - getFunction( - nameOrSignature: "grantRole" - ): TypedContractMethod< - [role: BytesLike, account: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "hasRole" - ): TypedContractMethod< - [role: BytesLike, account: AddressLike], - [boolean], - "view" - >; - getFunction( - nameOrSignature: "initialize" - ): TypedContractMethod< - [ - gateway_: AddressLike, - zetaToken_: AddressLike, - tssAddress_: AddressLike, - admin_: AddressLike - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "maxSupply" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "pause" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "paused" - ): TypedContractMethod<[], [boolean], "view">; - getFunction( - nameOrSignature: "proxiableUUID" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "receiveTokens" - ): TypedContractMethod<[amount: BigNumberish], [void], "nonpayable">; - getFunction( - nameOrSignature: "renounceRole" - ): TypedContractMethod< - [role: BytesLike, callerConfirmation: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "revokeRole" - ): TypedContractMethod< - [role: BytesLike, account: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "setMaxSupply" - ): TypedContractMethod<[maxSupply_: BigNumberish], [void], "nonpayable">; - getFunction( - nameOrSignature: "supportsInterface" - ): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; - getFunction( - nameOrSignature: "tssAddress" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "unpause" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "updateTSSAddress" - ): TypedContractMethod<[newTSSAddress: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "upgradeToAndCall" - ): TypedContractMethod< - [newImplementation: AddressLike, data: BytesLike], - [void], - "payable" - >; - getFunction( - nameOrSignature: "withdraw" - ): TypedContractMethod< - [to: AddressLike, amount: BigNumberish, internalSendHash: BytesLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdrawAndCall" - ): TypedContractMethod< - [ - messageContext: MessageContextStruct, - to: AddressLike, - amount: BigNumberish, - data: BytesLike, - internalSendHash: BytesLike - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdrawAndRevert" - ): TypedContractMethod< - [ - to: AddressLike, - amount: BigNumberish, - data: BytesLike, - internalSendHash: BytesLike, - revertContext: RevertContextStruct - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "zetaToken" - ): TypedContractMethod<[], [string], "view">; - - getEvent( - key: "Initialized" - ): TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - getEvent( - key: "MaxSupplyUpdated" - ): TypedContractEvent< - MaxSupplyUpdatedEvent.InputTuple, - MaxSupplyUpdatedEvent.OutputTuple, - MaxSupplyUpdatedEvent.OutputObject - >; - getEvent( - key: "Paused" - ): TypedContractEvent< - PausedEvent.InputTuple, - PausedEvent.OutputTuple, - PausedEvent.OutputObject - >; - getEvent( - key: "RoleAdminChanged" - ): TypedContractEvent< - RoleAdminChangedEvent.InputTuple, - RoleAdminChangedEvent.OutputTuple, - RoleAdminChangedEvent.OutputObject - >; - getEvent( - key: "RoleGranted" - ): TypedContractEvent< - RoleGrantedEvent.InputTuple, - RoleGrantedEvent.OutputTuple, - RoleGrantedEvent.OutputObject - >; - getEvent( - key: "RoleRevoked" - ): TypedContractEvent< - RoleRevokedEvent.InputTuple, - RoleRevokedEvent.OutputTuple, - RoleRevokedEvent.OutputObject - >; - getEvent( - key: "Unpaused" - ): TypedContractEvent< - UnpausedEvent.InputTuple, - UnpausedEvent.OutputTuple, - UnpausedEvent.OutputObject - >; - getEvent( - key: "UpdatedZetaConnectorTSSAddress" - ): TypedContractEvent< - UpdatedZetaConnectorTSSAddressEvent.InputTuple, - UpdatedZetaConnectorTSSAddressEvent.OutputTuple, - UpdatedZetaConnectorTSSAddressEvent.OutputObject - >; - getEvent( - key: "Upgraded" - ): TypedContractEvent< - UpgradedEvent.InputTuple, - UpgradedEvent.OutputTuple, - UpgradedEvent.OutputObject - >; - getEvent( - key: "Withdrawn" - ): TypedContractEvent< - WithdrawnEvent.InputTuple, - WithdrawnEvent.OutputTuple, - WithdrawnEvent.OutputObject - >; - getEvent( - key: "WithdrawnAndCalled" - ): TypedContractEvent< - WithdrawnAndCalledEvent.InputTuple, - WithdrawnAndCalledEvent.OutputTuple, - WithdrawnAndCalledEvent.OutputObject - >; - getEvent( - key: "WithdrawnAndReverted" - ): TypedContractEvent< - WithdrawnAndRevertedEvent.InputTuple, - WithdrawnAndRevertedEvent.OutputTuple, - WithdrawnAndRevertedEvent.OutputObject - >; - - filters: { - "Initialized(uint64)": TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - Initialized: TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - - "MaxSupplyUpdated(uint256)": TypedContractEvent< - MaxSupplyUpdatedEvent.InputTuple, - MaxSupplyUpdatedEvent.OutputTuple, - MaxSupplyUpdatedEvent.OutputObject - >; - MaxSupplyUpdated: TypedContractEvent< - MaxSupplyUpdatedEvent.InputTuple, - MaxSupplyUpdatedEvent.OutputTuple, - MaxSupplyUpdatedEvent.OutputObject - >; - - "Paused(address)": TypedContractEvent< - PausedEvent.InputTuple, - PausedEvent.OutputTuple, - PausedEvent.OutputObject - >; - Paused: TypedContractEvent< - PausedEvent.InputTuple, - PausedEvent.OutputTuple, - PausedEvent.OutputObject - >; - - "RoleAdminChanged(bytes32,bytes32,bytes32)": TypedContractEvent< - RoleAdminChangedEvent.InputTuple, - RoleAdminChangedEvent.OutputTuple, - RoleAdminChangedEvent.OutputObject - >; - RoleAdminChanged: TypedContractEvent< - RoleAdminChangedEvent.InputTuple, - RoleAdminChangedEvent.OutputTuple, - RoleAdminChangedEvent.OutputObject - >; - - "RoleGranted(bytes32,address,address)": TypedContractEvent< - RoleGrantedEvent.InputTuple, - RoleGrantedEvent.OutputTuple, - RoleGrantedEvent.OutputObject - >; - RoleGranted: TypedContractEvent< - RoleGrantedEvent.InputTuple, - RoleGrantedEvent.OutputTuple, - RoleGrantedEvent.OutputObject - >; - - "RoleRevoked(bytes32,address,address)": TypedContractEvent< - RoleRevokedEvent.InputTuple, - RoleRevokedEvent.OutputTuple, - RoleRevokedEvent.OutputObject - >; - RoleRevoked: TypedContractEvent< - RoleRevokedEvent.InputTuple, - RoleRevokedEvent.OutputTuple, - RoleRevokedEvent.OutputObject - >; - - "Unpaused(address)": TypedContractEvent< - UnpausedEvent.InputTuple, - UnpausedEvent.OutputTuple, - UnpausedEvent.OutputObject - >; - Unpaused: TypedContractEvent< - UnpausedEvent.InputTuple, - UnpausedEvent.OutputTuple, - UnpausedEvent.OutputObject - >; - - "UpdatedZetaConnectorTSSAddress(address,address)": TypedContractEvent< - UpdatedZetaConnectorTSSAddressEvent.InputTuple, - UpdatedZetaConnectorTSSAddressEvent.OutputTuple, - UpdatedZetaConnectorTSSAddressEvent.OutputObject - >; - UpdatedZetaConnectorTSSAddress: TypedContractEvent< - UpdatedZetaConnectorTSSAddressEvent.InputTuple, - UpdatedZetaConnectorTSSAddressEvent.OutputTuple, - UpdatedZetaConnectorTSSAddressEvent.OutputObject - >; - - "Upgraded(address)": TypedContractEvent< - UpgradedEvent.InputTuple, - UpgradedEvent.OutputTuple, - UpgradedEvent.OutputObject - >; - Upgraded: TypedContractEvent< - UpgradedEvent.InputTuple, - UpgradedEvent.OutputTuple, - UpgradedEvent.OutputObject - >; - - "Withdrawn(address,uint256)": TypedContractEvent< - WithdrawnEvent.InputTuple, - WithdrawnEvent.OutputTuple, - WithdrawnEvent.OutputObject - >; - Withdrawn: TypedContractEvent< - WithdrawnEvent.InputTuple, - WithdrawnEvent.OutputTuple, - WithdrawnEvent.OutputObject - >; - - "WithdrawnAndCalled(address,uint256,bytes)": TypedContractEvent< - WithdrawnAndCalledEvent.InputTuple, - WithdrawnAndCalledEvent.OutputTuple, - WithdrawnAndCalledEvent.OutputObject - >; - WithdrawnAndCalled: TypedContractEvent< - WithdrawnAndCalledEvent.InputTuple, - WithdrawnAndCalledEvent.OutputTuple, - WithdrawnAndCalledEvent.OutputObject - >; - - "WithdrawnAndReverted(address,uint256,bytes,tuple)": TypedContractEvent< - WithdrawnAndRevertedEvent.InputTuple, - WithdrawnAndRevertedEvent.OutputTuple, - WithdrawnAndRevertedEvent.OutputObject - >; - WithdrawnAndReverted: TypedContractEvent< - WithdrawnAndRevertedEvent.InputTuple, - WithdrawnAndRevertedEvent.OutputTuple, - WithdrawnAndRevertedEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/index.ts deleted file mode 100644 index 1c621303..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/evm/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as interfaces from "./interfaces"; -export type { interfaces }; -export type { ERC20Custody } from "./ERC20Custody"; -export type { GatewayEVM } from "./GatewayEVM"; -export type { ZetaConnectorBase } from "./ZetaConnectorBase"; -export type { ZetaConnectorNative } from "./ZetaConnectorNative"; -export type { ZetaConnectorNonNative } from "./ZetaConnectorNonNative"; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20Custody.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20Custody.ts deleted file mode 100644 index c36a69df..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20Custody.ts +++ /dev/null @@ -1,488 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../../../../common"; - -export type RevertContextStruct = { - sender: AddressLike; - asset: AddressLike; - amount: BigNumberish; - revertMessage: BytesLike; -}; - -export type RevertContextStructOutput = [ - sender: string, - asset: string, - amount: bigint, - revertMessage: string -] & { sender: string; asset: string; amount: bigint; revertMessage: string }; - -export type MessageContextStruct = { sender: AddressLike }; - -export type MessageContextStructOutput = [sender: string] & { sender: string }; - -export interface IERC20CustodyInterface extends Interface { - getFunction( - nameOrSignature: - | "whitelisted" - | "withdraw" - | "withdrawAndCall" - | "withdrawAndRevert" - ): FunctionFragment; - - getEvent( - nameOrSignatureOrTopic: - | "Deposited" - | "Unwhitelisted" - | "UpdatedCustodyTSSAddress" - | "Whitelisted" - | "Withdrawn" - | "WithdrawnAndCalled" - | "WithdrawnAndReverted" - ): EventFragment; - - encodeFunctionData( - functionFragment: "whitelisted", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "withdraw", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "withdrawAndCall", - values: [ - MessageContextStruct, - AddressLike, - AddressLike, - BigNumberish, - BytesLike - ] - ): string; - encodeFunctionData( - functionFragment: "withdrawAndRevert", - values: [ - AddressLike, - AddressLike, - BigNumberish, - BytesLike, - RevertContextStruct - ] - ): string; - - decodeFunctionResult( - functionFragment: "whitelisted", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "withdrawAndCall", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "withdrawAndRevert", - data: BytesLike - ): Result; -} - -export namespace DepositedEvent { - export type InputTuple = [ - recipient: BytesLike, - asset: AddressLike, - amount: BigNumberish, - message: BytesLike - ]; - export type OutputTuple = [ - recipient: string, - asset: string, - amount: bigint, - message: string - ]; - export interface OutputObject { - recipient: string; - asset: string; - amount: bigint; - message: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UnwhitelistedEvent { - export type InputTuple = [token: AddressLike]; - export type OutputTuple = [token: string]; - export interface OutputObject { - token: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UpdatedCustodyTSSAddressEvent { - export type InputTuple = [ - oldTSSAddress: AddressLike, - newTSSAddress: AddressLike - ]; - export type OutputTuple = [oldTSSAddress: string, newTSSAddress: string]; - export interface OutputObject { - oldTSSAddress: string; - newTSSAddress: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WhitelistedEvent { - export type InputTuple = [token: AddressLike]; - export type OutputTuple = [token: string]; - export interface OutputObject { - token: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WithdrawnEvent { - export type InputTuple = [ - to: AddressLike, - token: AddressLike, - amount: BigNumberish - ]; - export type OutputTuple = [to: string, token: string, amount: bigint]; - export interface OutputObject { - to: string; - token: string; - amount: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WithdrawnAndCalledEvent { - export type InputTuple = [ - to: AddressLike, - token: AddressLike, - amount: BigNumberish, - data: BytesLike - ]; - export type OutputTuple = [ - to: string, - token: string, - amount: bigint, - data: string - ]; - export interface OutputObject { - to: string; - token: string; - amount: bigint; - data: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WithdrawnAndRevertedEvent { - export type InputTuple = [ - to: AddressLike, - token: AddressLike, - amount: BigNumberish, - data: BytesLike, - revertContext: RevertContextStruct - ]; - export type OutputTuple = [ - to: string, - token: string, - amount: bigint, - data: string, - revertContext: RevertContextStructOutput - ]; - export interface OutputObject { - to: string; - token: string; - amount: bigint; - data: string; - revertContext: RevertContextStructOutput; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface IERC20Custody extends BaseContract { - connect(runner?: ContractRunner | null): IERC20Custody; - waitForDeployment(): Promise; - - interface: IERC20CustodyInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - whitelisted: TypedContractMethod<[token: AddressLike], [boolean], "view">; - - withdraw: TypedContractMethod< - [token: AddressLike, to: AddressLike, amount: BigNumberish], - [void], - "nonpayable" - >; - - withdrawAndCall: TypedContractMethod< - [ - messageContext: MessageContextStruct, - token: AddressLike, - to: AddressLike, - amount: BigNumberish, - data: BytesLike - ], - [void], - "nonpayable" - >; - - withdrawAndRevert: TypedContractMethod< - [ - token: AddressLike, - to: AddressLike, - amount: BigNumberish, - data: BytesLike, - revertContext: RevertContextStruct - ], - [void], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "whitelisted" - ): TypedContractMethod<[token: AddressLike], [boolean], "view">; - getFunction( - nameOrSignature: "withdraw" - ): TypedContractMethod< - [token: AddressLike, to: AddressLike, amount: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdrawAndCall" - ): TypedContractMethod< - [ - messageContext: MessageContextStruct, - token: AddressLike, - to: AddressLike, - amount: BigNumberish, - data: BytesLike - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdrawAndRevert" - ): TypedContractMethod< - [ - token: AddressLike, - to: AddressLike, - amount: BigNumberish, - data: BytesLike, - revertContext: RevertContextStruct - ], - [void], - "nonpayable" - >; - - getEvent( - key: "Deposited" - ): TypedContractEvent< - DepositedEvent.InputTuple, - DepositedEvent.OutputTuple, - DepositedEvent.OutputObject - >; - getEvent( - key: "Unwhitelisted" - ): TypedContractEvent< - UnwhitelistedEvent.InputTuple, - UnwhitelistedEvent.OutputTuple, - UnwhitelistedEvent.OutputObject - >; - getEvent( - key: "UpdatedCustodyTSSAddress" - ): TypedContractEvent< - UpdatedCustodyTSSAddressEvent.InputTuple, - UpdatedCustodyTSSAddressEvent.OutputTuple, - UpdatedCustodyTSSAddressEvent.OutputObject - >; - getEvent( - key: "Whitelisted" - ): TypedContractEvent< - WhitelistedEvent.InputTuple, - WhitelistedEvent.OutputTuple, - WhitelistedEvent.OutputObject - >; - getEvent( - key: "Withdrawn" - ): TypedContractEvent< - WithdrawnEvent.InputTuple, - WithdrawnEvent.OutputTuple, - WithdrawnEvent.OutputObject - >; - getEvent( - key: "WithdrawnAndCalled" - ): TypedContractEvent< - WithdrawnAndCalledEvent.InputTuple, - WithdrawnAndCalledEvent.OutputTuple, - WithdrawnAndCalledEvent.OutputObject - >; - getEvent( - key: "WithdrawnAndReverted" - ): TypedContractEvent< - WithdrawnAndRevertedEvent.InputTuple, - WithdrawnAndRevertedEvent.OutputTuple, - WithdrawnAndRevertedEvent.OutputObject - >; - - filters: { - "Deposited(bytes,address,uint256,bytes)": TypedContractEvent< - DepositedEvent.InputTuple, - DepositedEvent.OutputTuple, - DepositedEvent.OutputObject - >; - Deposited: TypedContractEvent< - DepositedEvent.InputTuple, - DepositedEvent.OutputTuple, - DepositedEvent.OutputObject - >; - - "Unwhitelisted(address)": TypedContractEvent< - UnwhitelistedEvent.InputTuple, - UnwhitelistedEvent.OutputTuple, - UnwhitelistedEvent.OutputObject - >; - Unwhitelisted: TypedContractEvent< - UnwhitelistedEvent.InputTuple, - UnwhitelistedEvent.OutputTuple, - UnwhitelistedEvent.OutputObject - >; - - "UpdatedCustodyTSSAddress(address,address)": TypedContractEvent< - UpdatedCustodyTSSAddressEvent.InputTuple, - UpdatedCustodyTSSAddressEvent.OutputTuple, - UpdatedCustodyTSSAddressEvent.OutputObject - >; - UpdatedCustodyTSSAddress: TypedContractEvent< - UpdatedCustodyTSSAddressEvent.InputTuple, - UpdatedCustodyTSSAddressEvent.OutputTuple, - UpdatedCustodyTSSAddressEvent.OutputObject - >; - - "Whitelisted(address)": TypedContractEvent< - WhitelistedEvent.InputTuple, - WhitelistedEvent.OutputTuple, - WhitelistedEvent.OutputObject - >; - Whitelisted: TypedContractEvent< - WhitelistedEvent.InputTuple, - WhitelistedEvent.OutputTuple, - WhitelistedEvent.OutputObject - >; - - "Withdrawn(address,address,uint256)": TypedContractEvent< - WithdrawnEvent.InputTuple, - WithdrawnEvent.OutputTuple, - WithdrawnEvent.OutputObject - >; - Withdrawn: TypedContractEvent< - WithdrawnEvent.InputTuple, - WithdrawnEvent.OutputTuple, - WithdrawnEvent.OutputObject - >; - - "WithdrawnAndCalled(address,address,uint256,bytes)": TypedContractEvent< - WithdrawnAndCalledEvent.InputTuple, - WithdrawnAndCalledEvent.OutputTuple, - WithdrawnAndCalledEvent.OutputObject - >; - WithdrawnAndCalled: TypedContractEvent< - WithdrawnAndCalledEvent.InputTuple, - WithdrawnAndCalledEvent.OutputTuple, - WithdrawnAndCalledEvent.OutputObject - >; - - "WithdrawnAndReverted(address,address,uint256,bytes,tuple)": TypedContractEvent< - WithdrawnAndRevertedEvent.InputTuple, - WithdrawnAndRevertedEvent.OutputTuple, - WithdrawnAndRevertedEvent.OutputObject - >; - WithdrawnAndReverted: TypedContractEvent< - WithdrawnAndRevertedEvent.InputTuple, - WithdrawnAndRevertedEvent.OutputTuple, - WithdrawnAndRevertedEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyErrors.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyErrors.ts deleted file mode 100644 index 0c616ee9..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyErrors.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - FunctionFragment, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, -} from "../../../../../../common"; - -export interface IERC20CustodyErrorsInterface extends Interface {} - -export interface IERC20CustodyErrors extends BaseContract { - connect(runner?: ContractRunner | null): IERC20CustodyErrors; - waitForDeployment(): Promise; - - interface: IERC20CustodyErrorsInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - filters: {}; -} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyEvents.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyEvents.ts deleted file mode 100644 index dd837919..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyEvents.ts +++ /dev/null @@ -1,362 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, -} from "../../../../../../common"; - -export type RevertContextStruct = { - sender: AddressLike; - asset: AddressLike; - amount: BigNumberish; - revertMessage: BytesLike; -}; - -export type RevertContextStructOutput = [ - sender: string, - asset: string, - amount: bigint, - revertMessage: string -] & { sender: string; asset: string; amount: bigint; revertMessage: string }; - -export interface IERC20CustodyEventsInterface extends Interface { - getEvent( - nameOrSignatureOrTopic: - | "Deposited" - | "Unwhitelisted" - | "UpdatedCustodyTSSAddress" - | "Whitelisted" - | "Withdrawn" - | "WithdrawnAndCalled" - | "WithdrawnAndReverted" - ): EventFragment; -} - -export namespace DepositedEvent { - export type InputTuple = [ - recipient: BytesLike, - asset: AddressLike, - amount: BigNumberish, - message: BytesLike - ]; - export type OutputTuple = [ - recipient: string, - asset: string, - amount: bigint, - message: string - ]; - export interface OutputObject { - recipient: string; - asset: string; - amount: bigint; - message: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UnwhitelistedEvent { - export type InputTuple = [token: AddressLike]; - export type OutputTuple = [token: string]; - export interface OutputObject { - token: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UpdatedCustodyTSSAddressEvent { - export type InputTuple = [ - oldTSSAddress: AddressLike, - newTSSAddress: AddressLike - ]; - export type OutputTuple = [oldTSSAddress: string, newTSSAddress: string]; - export interface OutputObject { - oldTSSAddress: string; - newTSSAddress: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WhitelistedEvent { - export type InputTuple = [token: AddressLike]; - export type OutputTuple = [token: string]; - export interface OutputObject { - token: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WithdrawnEvent { - export type InputTuple = [ - to: AddressLike, - token: AddressLike, - amount: BigNumberish - ]; - export type OutputTuple = [to: string, token: string, amount: bigint]; - export interface OutputObject { - to: string; - token: string; - amount: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WithdrawnAndCalledEvent { - export type InputTuple = [ - to: AddressLike, - token: AddressLike, - amount: BigNumberish, - data: BytesLike - ]; - export type OutputTuple = [ - to: string, - token: string, - amount: bigint, - data: string - ]; - export interface OutputObject { - to: string; - token: string; - amount: bigint; - data: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WithdrawnAndRevertedEvent { - export type InputTuple = [ - to: AddressLike, - token: AddressLike, - amount: BigNumberish, - data: BytesLike, - revertContext: RevertContextStruct - ]; - export type OutputTuple = [ - to: string, - token: string, - amount: bigint, - data: string, - revertContext: RevertContextStructOutput - ]; - export interface OutputObject { - to: string; - token: string; - amount: bigint; - data: string; - revertContext: RevertContextStructOutput; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface IERC20CustodyEvents extends BaseContract { - connect(runner?: ContractRunner | null): IERC20CustodyEvents; - waitForDeployment(): Promise; - - interface: IERC20CustodyEventsInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - getEvent( - key: "Deposited" - ): TypedContractEvent< - DepositedEvent.InputTuple, - DepositedEvent.OutputTuple, - DepositedEvent.OutputObject - >; - getEvent( - key: "Unwhitelisted" - ): TypedContractEvent< - UnwhitelistedEvent.InputTuple, - UnwhitelistedEvent.OutputTuple, - UnwhitelistedEvent.OutputObject - >; - getEvent( - key: "UpdatedCustodyTSSAddress" - ): TypedContractEvent< - UpdatedCustodyTSSAddressEvent.InputTuple, - UpdatedCustodyTSSAddressEvent.OutputTuple, - UpdatedCustodyTSSAddressEvent.OutputObject - >; - getEvent( - key: "Whitelisted" - ): TypedContractEvent< - WhitelistedEvent.InputTuple, - WhitelistedEvent.OutputTuple, - WhitelistedEvent.OutputObject - >; - getEvent( - key: "Withdrawn" - ): TypedContractEvent< - WithdrawnEvent.InputTuple, - WithdrawnEvent.OutputTuple, - WithdrawnEvent.OutputObject - >; - getEvent( - key: "WithdrawnAndCalled" - ): TypedContractEvent< - WithdrawnAndCalledEvent.InputTuple, - WithdrawnAndCalledEvent.OutputTuple, - WithdrawnAndCalledEvent.OutputObject - >; - getEvent( - key: "WithdrawnAndReverted" - ): TypedContractEvent< - WithdrawnAndRevertedEvent.InputTuple, - WithdrawnAndRevertedEvent.OutputTuple, - WithdrawnAndRevertedEvent.OutputObject - >; - - filters: { - "Deposited(bytes,address,uint256,bytes)": TypedContractEvent< - DepositedEvent.InputTuple, - DepositedEvent.OutputTuple, - DepositedEvent.OutputObject - >; - Deposited: TypedContractEvent< - DepositedEvent.InputTuple, - DepositedEvent.OutputTuple, - DepositedEvent.OutputObject - >; - - "Unwhitelisted(address)": TypedContractEvent< - UnwhitelistedEvent.InputTuple, - UnwhitelistedEvent.OutputTuple, - UnwhitelistedEvent.OutputObject - >; - Unwhitelisted: TypedContractEvent< - UnwhitelistedEvent.InputTuple, - UnwhitelistedEvent.OutputTuple, - UnwhitelistedEvent.OutputObject - >; - - "UpdatedCustodyTSSAddress(address,address)": TypedContractEvent< - UpdatedCustodyTSSAddressEvent.InputTuple, - UpdatedCustodyTSSAddressEvent.OutputTuple, - UpdatedCustodyTSSAddressEvent.OutputObject - >; - UpdatedCustodyTSSAddress: TypedContractEvent< - UpdatedCustodyTSSAddressEvent.InputTuple, - UpdatedCustodyTSSAddressEvent.OutputTuple, - UpdatedCustodyTSSAddressEvent.OutputObject - >; - - "Whitelisted(address)": TypedContractEvent< - WhitelistedEvent.InputTuple, - WhitelistedEvent.OutputTuple, - WhitelistedEvent.OutputObject - >; - Whitelisted: TypedContractEvent< - WhitelistedEvent.InputTuple, - WhitelistedEvent.OutputTuple, - WhitelistedEvent.OutputObject - >; - - "Withdrawn(address,address,uint256)": TypedContractEvent< - WithdrawnEvent.InputTuple, - WithdrawnEvent.OutputTuple, - WithdrawnEvent.OutputObject - >; - Withdrawn: TypedContractEvent< - WithdrawnEvent.InputTuple, - WithdrawnEvent.OutputTuple, - WithdrawnEvent.OutputObject - >; - - "WithdrawnAndCalled(address,address,uint256,bytes)": TypedContractEvent< - WithdrawnAndCalledEvent.InputTuple, - WithdrawnAndCalledEvent.OutputTuple, - WithdrawnAndCalledEvent.OutputObject - >; - WithdrawnAndCalled: TypedContractEvent< - WithdrawnAndCalledEvent.InputTuple, - WithdrawnAndCalledEvent.OutputTuple, - WithdrawnAndCalledEvent.OutputObject - >; - - "WithdrawnAndReverted(address,address,uint256,bytes,tuple)": TypedContractEvent< - WithdrawnAndRevertedEvent.InputTuple, - WithdrawnAndRevertedEvent.OutputTuple, - WithdrawnAndRevertedEvent.OutputObject - >; - WithdrawnAndReverted: TypedContractEvent< - WithdrawnAndRevertedEvent.InputTuple, - WithdrawnAndRevertedEvent.OutputTuple, - WithdrawnAndRevertedEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/index.ts deleted file mode 100644 index 26e32f74..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { IERC20Custody } from "./IERC20Custody"; -export type { IERC20CustodyErrors } from "./IERC20CustodyErrors"; -export type { IERC20CustodyEvents } from "./IERC20CustodyEvents"; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/Callable.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/Callable.ts deleted file mode 100644 index 4e7c128f..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/Callable.ts +++ /dev/null @@ -1,100 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BytesLike, - FunctionFragment, - Result, - Interface, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../../../../../common"; - -export type MessageContextStruct = { sender: AddressLike }; - -export type MessageContextStructOutput = [sender: string] & { sender: string }; - -export interface CallableInterface extends Interface { - getFunction(nameOrSignature: "onCall"): FunctionFragment; - - encodeFunctionData( - functionFragment: "onCall", - values: [MessageContextStruct, BytesLike] - ): string; - - decodeFunctionResult(functionFragment: "onCall", data: BytesLike): Result; -} - -export interface Callable extends BaseContract { - connect(runner?: ContractRunner | null): Callable; - waitForDeployment(): Promise; - - interface: CallableInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - onCall: TypedContractMethod< - [context: MessageContextStruct, message: BytesLike], - [string], - "payable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "onCall" - ): TypedContractMethod< - [context: MessageContextStruct, message: BytesLike], - [string], - "payable" - >; - - filters: {}; -} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVM.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVM.ts deleted file mode 100644 index 853f7ab9..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVM.ts +++ /dev/null @@ -1,723 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../../../../common"; - -export type RevertOptionsStruct = { - revertAddress: AddressLike; - callOnRevert: boolean; - abortAddress: AddressLike; - revertMessage: BytesLike; - onRevertGasLimit: BigNumberish; -}; - -export type RevertOptionsStructOutput = [ - revertAddress: string, - callOnRevert: boolean, - abortAddress: string, - revertMessage: string, - onRevertGasLimit: bigint -] & { - revertAddress: string; - callOnRevert: boolean; - abortAddress: string; - revertMessage: string; - onRevertGasLimit: bigint; -}; - -export type RevertContextStruct = { - sender: AddressLike; - asset: AddressLike; - amount: BigNumberish; - revertMessage: BytesLike; -}; - -export type RevertContextStructOutput = [ - sender: string, - asset: string, - amount: bigint, - revertMessage: string -] & { sender: string; asset: string; amount: bigint; revertMessage: string }; - -export type MessageContextStruct = { sender: AddressLike }; - -export type MessageContextStructOutput = [sender: string] & { sender: string }; - -export interface IGatewayEVMInterface extends Interface { - getFunction( - nameOrSignature: - | "call" - | "deposit(address,uint256,address,(address,bool,address,bytes,uint256))" - | "deposit(address,(address,bool,address,bytes,uint256))" - | "depositAndCall(address,bytes,(address,bool,address,bytes,uint256))" - | "depositAndCall(address,uint256,address,bytes,(address,bool,address,bytes,uint256))" - | "execute" - | "executeRevert" - | "executeWithERC20" - | "revertWithERC20" - ): FunctionFragment; - - getEvent( - nameOrSignatureOrTopic: - | "Called" - | "Deposited" - | "DepositedAndCalled" - | "Executed" - | "ExecutedWithERC20" - | "Reverted" - | "UpdatedGatewayTSSAddress" - ): EventFragment; - - encodeFunctionData( - functionFragment: "call", - values: [AddressLike, BytesLike, RevertOptionsStruct] - ): string; - encodeFunctionData( - functionFragment: "deposit(address,uint256,address,(address,bool,address,bytes,uint256))", - values: [AddressLike, BigNumberish, AddressLike, RevertOptionsStruct] - ): string; - encodeFunctionData( - functionFragment: "deposit(address,(address,bool,address,bytes,uint256))", - values: [AddressLike, RevertOptionsStruct] - ): string; - encodeFunctionData( - functionFragment: "depositAndCall(address,bytes,(address,bool,address,bytes,uint256))", - values: [AddressLike, BytesLike, RevertOptionsStruct] - ): string; - encodeFunctionData( - functionFragment: "depositAndCall(address,uint256,address,bytes,(address,bool,address,bytes,uint256))", - values: [ - AddressLike, - BigNumberish, - AddressLike, - BytesLike, - RevertOptionsStruct - ] - ): string; - encodeFunctionData( - functionFragment: "execute", - values: [MessageContextStruct, AddressLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "executeRevert", - values: [AddressLike, BytesLike, RevertContextStruct] - ): string; - encodeFunctionData( - functionFragment: "executeWithERC20", - values: [ - MessageContextStruct, - AddressLike, - AddressLike, - BigNumberish, - BytesLike - ] - ): string; - encodeFunctionData( - functionFragment: "revertWithERC20", - values: [ - AddressLike, - AddressLike, - BigNumberish, - BytesLike, - RevertContextStruct - ] - ): string; - - decodeFunctionResult(functionFragment: "call", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "deposit(address,uint256,address,(address,bool,address,bytes,uint256))", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "deposit(address,(address,bool,address,bytes,uint256))", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "depositAndCall(address,bytes,(address,bool,address,bytes,uint256))", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "depositAndCall(address,uint256,address,bytes,(address,bool,address,bytes,uint256))", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "execute", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "executeRevert", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "executeWithERC20", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "revertWithERC20", - data: BytesLike - ): Result; -} - -export namespace CalledEvent { - export type InputTuple = [ - sender: AddressLike, - receiver: AddressLike, - payload: BytesLike, - revertOptions: RevertOptionsStruct - ]; - export type OutputTuple = [ - sender: string, - receiver: string, - payload: string, - revertOptions: RevertOptionsStructOutput - ]; - export interface OutputObject { - sender: string; - receiver: string; - payload: string; - revertOptions: RevertOptionsStructOutput; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace DepositedEvent { - export type InputTuple = [ - sender: AddressLike, - receiver: AddressLike, - amount: BigNumberish, - asset: AddressLike, - payload: BytesLike, - revertOptions: RevertOptionsStruct - ]; - export type OutputTuple = [ - sender: string, - receiver: string, - amount: bigint, - asset: string, - payload: string, - revertOptions: RevertOptionsStructOutput - ]; - export interface OutputObject { - sender: string; - receiver: string; - amount: bigint; - asset: string; - payload: string; - revertOptions: RevertOptionsStructOutput; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace DepositedAndCalledEvent { - export type InputTuple = [ - sender: AddressLike, - receiver: AddressLike, - amount: BigNumberish, - asset: AddressLike, - payload: BytesLike, - revertOptions: RevertOptionsStruct - ]; - export type OutputTuple = [ - sender: string, - receiver: string, - amount: bigint, - asset: string, - payload: string, - revertOptions: RevertOptionsStructOutput - ]; - export interface OutputObject { - sender: string; - receiver: string; - amount: bigint; - asset: string; - payload: string; - revertOptions: RevertOptionsStructOutput; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace ExecutedEvent { - export type InputTuple = [ - destination: AddressLike, - value: BigNumberish, - data: BytesLike - ]; - export type OutputTuple = [destination: string, value: bigint, data: string]; - export interface OutputObject { - destination: string; - value: bigint; - data: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace ExecutedWithERC20Event { - export type InputTuple = [ - token: AddressLike, - to: AddressLike, - amount: BigNumberish, - data: BytesLike - ]; - export type OutputTuple = [ - token: string, - to: string, - amount: bigint, - data: string - ]; - export interface OutputObject { - token: string; - to: string; - amount: bigint; - data: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace RevertedEvent { - export type InputTuple = [ - to: AddressLike, - token: AddressLike, - amount: BigNumberish, - data: BytesLike, - revertContext: RevertContextStruct - ]; - export type OutputTuple = [ - to: string, - token: string, - amount: bigint, - data: string, - revertContext: RevertContextStructOutput - ]; - export interface OutputObject { - to: string; - token: string; - amount: bigint; - data: string; - revertContext: RevertContextStructOutput; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UpdatedGatewayTSSAddressEvent { - export type InputTuple = [ - oldTSSAddress: AddressLike, - newTSSAddress: AddressLike - ]; - export type OutputTuple = [oldTSSAddress: string, newTSSAddress: string]; - export interface OutputObject { - oldTSSAddress: string; - newTSSAddress: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface IGatewayEVM extends BaseContract { - connect(runner?: ContractRunner | null): IGatewayEVM; - waitForDeployment(): Promise; - - interface: IGatewayEVMInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - call: TypedContractMethod< - [ - receiver: AddressLike, - payload: BytesLike, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - - "deposit(address,uint256,address,(address,bool,address,bytes,uint256))": TypedContractMethod< - [ - receiver: AddressLike, - amount: BigNumberish, - asset: AddressLike, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - - "deposit(address,(address,bool,address,bytes,uint256))": TypedContractMethod< - [receiver: AddressLike, revertOptions: RevertOptionsStruct], - [void], - "payable" - >; - - "depositAndCall(address,bytes,(address,bool,address,bytes,uint256))": TypedContractMethod< - [ - receiver: AddressLike, - payload: BytesLike, - revertOptions: RevertOptionsStruct - ], - [void], - "payable" - >; - - "depositAndCall(address,uint256,address,bytes,(address,bool,address,bytes,uint256))": TypedContractMethod< - [ - receiver: AddressLike, - amount: BigNumberish, - asset: AddressLike, - payload: BytesLike, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - - execute: TypedContractMethod< - [ - messageContext: MessageContextStruct, - destination: AddressLike, - data: BytesLike - ], - [string], - "payable" - >; - - executeRevert: TypedContractMethod< - [ - destination: AddressLike, - data: BytesLike, - revertContext: RevertContextStruct - ], - [void], - "payable" - >; - - executeWithERC20: TypedContractMethod< - [ - messageContext: MessageContextStruct, - token: AddressLike, - to: AddressLike, - amount: BigNumberish, - data: BytesLike - ], - [void], - "nonpayable" - >; - - revertWithERC20: TypedContractMethod< - [ - token: AddressLike, - to: AddressLike, - amount: BigNumberish, - data: BytesLike, - revertContext: RevertContextStruct - ], - [void], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "call" - ): TypedContractMethod< - [ - receiver: AddressLike, - payload: BytesLike, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "deposit(address,uint256,address,(address,bool,address,bytes,uint256))" - ): TypedContractMethod< - [ - receiver: AddressLike, - amount: BigNumberish, - asset: AddressLike, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "deposit(address,(address,bool,address,bytes,uint256))" - ): TypedContractMethod< - [receiver: AddressLike, revertOptions: RevertOptionsStruct], - [void], - "payable" - >; - getFunction( - nameOrSignature: "depositAndCall(address,bytes,(address,bool,address,bytes,uint256))" - ): TypedContractMethod< - [ - receiver: AddressLike, - payload: BytesLike, - revertOptions: RevertOptionsStruct - ], - [void], - "payable" - >; - getFunction( - nameOrSignature: "depositAndCall(address,uint256,address,bytes,(address,bool,address,bytes,uint256))" - ): TypedContractMethod< - [ - receiver: AddressLike, - amount: BigNumberish, - asset: AddressLike, - payload: BytesLike, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "execute" - ): TypedContractMethod< - [ - messageContext: MessageContextStruct, - destination: AddressLike, - data: BytesLike - ], - [string], - "payable" - >; - getFunction( - nameOrSignature: "executeRevert" - ): TypedContractMethod< - [ - destination: AddressLike, - data: BytesLike, - revertContext: RevertContextStruct - ], - [void], - "payable" - >; - getFunction( - nameOrSignature: "executeWithERC20" - ): TypedContractMethod< - [ - messageContext: MessageContextStruct, - token: AddressLike, - to: AddressLike, - amount: BigNumberish, - data: BytesLike - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "revertWithERC20" - ): TypedContractMethod< - [ - token: AddressLike, - to: AddressLike, - amount: BigNumberish, - data: BytesLike, - revertContext: RevertContextStruct - ], - [void], - "nonpayable" - >; - - getEvent( - key: "Called" - ): TypedContractEvent< - CalledEvent.InputTuple, - CalledEvent.OutputTuple, - CalledEvent.OutputObject - >; - getEvent( - key: "Deposited" - ): TypedContractEvent< - DepositedEvent.InputTuple, - DepositedEvent.OutputTuple, - DepositedEvent.OutputObject - >; - getEvent( - key: "DepositedAndCalled" - ): TypedContractEvent< - DepositedAndCalledEvent.InputTuple, - DepositedAndCalledEvent.OutputTuple, - DepositedAndCalledEvent.OutputObject - >; - getEvent( - key: "Executed" - ): TypedContractEvent< - ExecutedEvent.InputTuple, - ExecutedEvent.OutputTuple, - ExecutedEvent.OutputObject - >; - getEvent( - key: "ExecutedWithERC20" - ): TypedContractEvent< - ExecutedWithERC20Event.InputTuple, - ExecutedWithERC20Event.OutputTuple, - ExecutedWithERC20Event.OutputObject - >; - getEvent( - key: "Reverted" - ): TypedContractEvent< - RevertedEvent.InputTuple, - RevertedEvent.OutputTuple, - RevertedEvent.OutputObject - >; - getEvent( - key: "UpdatedGatewayTSSAddress" - ): TypedContractEvent< - UpdatedGatewayTSSAddressEvent.InputTuple, - UpdatedGatewayTSSAddressEvent.OutputTuple, - UpdatedGatewayTSSAddressEvent.OutputObject - >; - - filters: { - "Called(address,address,bytes,tuple)": TypedContractEvent< - CalledEvent.InputTuple, - CalledEvent.OutputTuple, - CalledEvent.OutputObject - >; - Called: TypedContractEvent< - CalledEvent.InputTuple, - CalledEvent.OutputTuple, - CalledEvent.OutputObject - >; - - "Deposited(address,address,uint256,address,bytes,tuple)": TypedContractEvent< - DepositedEvent.InputTuple, - DepositedEvent.OutputTuple, - DepositedEvent.OutputObject - >; - Deposited: TypedContractEvent< - DepositedEvent.InputTuple, - DepositedEvent.OutputTuple, - DepositedEvent.OutputObject - >; - - "DepositedAndCalled(address,address,uint256,address,bytes,tuple)": TypedContractEvent< - DepositedAndCalledEvent.InputTuple, - DepositedAndCalledEvent.OutputTuple, - DepositedAndCalledEvent.OutputObject - >; - DepositedAndCalled: TypedContractEvent< - DepositedAndCalledEvent.InputTuple, - DepositedAndCalledEvent.OutputTuple, - DepositedAndCalledEvent.OutputObject - >; - - "Executed(address,uint256,bytes)": TypedContractEvent< - ExecutedEvent.InputTuple, - ExecutedEvent.OutputTuple, - ExecutedEvent.OutputObject - >; - Executed: TypedContractEvent< - ExecutedEvent.InputTuple, - ExecutedEvent.OutputTuple, - ExecutedEvent.OutputObject - >; - - "ExecutedWithERC20(address,address,uint256,bytes)": TypedContractEvent< - ExecutedWithERC20Event.InputTuple, - ExecutedWithERC20Event.OutputTuple, - ExecutedWithERC20Event.OutputObject - >; - ExecutedWithERC20: TypedContractEvent< - ExecutedWithERC20Event.InputTuple, - ExecutedWithERC20Event.OutputTuple, - ExecutedWithERC20Event.OutputObject - >; - - "Reverted(address,address,uint256,bytes,tuple)": TypedContractEvent< - RevertedEvent.InputTuple, - RevertedEvent.OutputTuple, - RevertedEvent.OutputObject - >; - Reverted: TypedContractEvent< - RevertedEvent.InputTuple, - RevertedEvent.OutputTuple, - RevertedEvent.OutputObject - >; - - "UpdatedGatewayTSSAddress(address,address)": TypedContractEvent< - UpdatedGatewayTSSAddressEvent.InputTuple, - UpdatedGatewayTSSAddressEvent.OutputTuple, - UpdatedGatewayTSSAddressEvent.OutputObject - >; - UpdatedGatewayTSSAddress: TypedContractEvent< - UpdatedGatewayTSSAddressEvent.InputTuple, - UpdatedGatewayTSSAddressEvent.OutputTuple, - UpdatedGatewayTSSAddressEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMErrors.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMErrors.ts deleted file mode 100644 index c7624d90..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMErrors.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - FunctionFragment, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, -} from "../../../../../../common"; - -export interface IGatewayEVMErrorsInterface extends Interface {} - -export interface IGatewayEVMErrors extends BaseContract { - connect(runner?: ContractRunner | null): IGatewayEVMErrors; - waitForDeployment(): Promise; - - interface: IGatewayEVMErrorsInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - filters: {}; -} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMEvents.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMEvents.ts deleted file mode 100644 index af5c311a..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMEvents.ts +++ /dev/null @@ -1,422 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, -} from "../../../../../../common"; - -export type RevertOptionsStruct = { - revertAddress: AddressLike; - callOnRevert: boolean; - abortAddress: AddressLike; - revertMessage: BytesLike; - onRevertGasLimit: BigNumberish; -}; - -export type RevertOptionsStructOutput = [ - revertAddress: string, - callOnRevert: boolean, - abortAddress: string, - revertMessage: string, - onRevertGasLimit: bigint -] & { - revertAddress: string; - callOnRevert: boolean; - abortAddress: string; - revertMessage: string; - onRevertGasLimit: bigint; -}; - -export type RevertContextStruct = { - sender: AddressLike; - asset: AddressLike; - amount: BigNumberish; - revertMessage: BytesLike; -}; - -export type RevertContextStructOutput = [ - sender: string, - asset: string, - amount: bigint, - revertMessage: string -] & { sender: string; asset: string; amount: bigint; revertMessage: string }; - -export interface IGatewayEVMEventsInterface extends Interface { - getEvent( - nameOrSignatureOrTopic: - | "Called" - | "Deposited" - | "DepositedAndCalled" - | "Executed" - | "ExecutedWithERC20" - | "Reverted" - | "UpdatedGatewayTSSAddress" - ): EventFragment; -} - -export namespace CalledEvent { - export type InputTuple = [ - sender: AddressLike, - receiver: AddressLike, - payload: BytesLike, - revertOptions: RevertOptionsStruct - ]; - export type OutputTuple = [ - sender: string, - receiver: string, - payload: string, - revertOptions: RevertOptionsStructOutput - ]; - export interface OutputObject { - sender: string; - receiver: string; - payload: string; - revertOptions: RevertOptionsStructOutput; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace DepositedEvent { - export type InputTuple = [ - sender: AddressLike, - receiver: AddressLike, - amount: BigNumberish, - asset: AddressLike, - payload: BytesLike, - revertOptions: RevertOptionsStruct - ]; - export type OutputTuple = [ - sender: string, - receiver: string, - amount: bigint, - asset: string, - payload: string, - revertOptions: RevertOptionsStructOutput - ]; - export interface OutputObject { - sender: string; - receiver: string; - amount: bigint; - asset: string; - payload: string; - revertOptions: RevertOptionsStructOutput; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace DepositedAndCalledEvent { - export type InputTuple = [ - sender: AddressLike, - receiver: AddressLike, - amount: BigNumberish, - asset: AddressLike, - payload: BytesLike, - revertOptions: RevertOptionsStruct - ]; - export type OutputTuple = [ - sender: string, - receiver: string, - amount: bigint, - asset: string, - payload: string, - revertOptions: RevertOptionsStructOutput - ]; - export interface OutputObject { - sender: string; - receiver: string; - amount: bigint; - asset: string; - payload: string; - revertOptions: RevertOptionsStructOutput; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace ExecutedEvent { - export type InputTuple = [ - destination: AddressLike, - value: BigNumberish, - data: BytesLike - ]; - export type OutputTuple = [destination: string, value: bigint, data: string]; - export interface OutputObject { - destination: string; - value: bigint; - data: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace ExecutedWithERC20Event { - export type InputTuple = [ - token: AddressLike, - to: AddressLike, - amount: BigNumberish, - data: BytesLike - ]; - export type OutputTuple = [ - token: string, - to: string, - amount: bigint, - data: string - ]; - export interface OutputObject { - token: string; - to: string; - amount: bigint; - data: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace RevertedEvent { - export type InputTuple = [ - to: AddressLike, - token: AddressLike, - amount: BigNumberish, - data: BytesLike, - revertContext: RevertContextStruct - ]; - export type OutputTuple = [ - to: string, - token: string, - amount: bigint, - data: string, - revertContext: RevertContextStructOutput - ]; - export interface OutputObject { - to: string; - token: string; - amount: bigint; - data: string; - revertContext: RevertContextStructOutput; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UpdatedGatewayTSSAddressEvent { - export type InputTuple = [ - oldTSSAddress: AddressLike, - newTSSAddress: AddressLike - ]; - export type OutputTuple = [oldTSSAddress: string, newTSSAddress: string]; - export interface OutputObject { - oldTSSAddress: string; - newTSSAddress: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface IGatewayEVMEvents extends BaseContract { - connect(runner?: ContractRunner | null): IGatewayEVMEvents; - waitForDeployment(): Promise; - - interface: IGatewayEVMEventsInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - getEvent( - key: "Called" - ): TypedContractEvent< - CalledEvent.InputTuple, - CalledEvent.OutputTuple, - CalledEvent.OutputObject - >; - getEvent( - key: "Deposited" - ): TypedContractEvent< - DepositedEvent.InputTuple, - DepositedEvent.OutputTuple, - DepositedEvent.OutputObject - >; - getEvent( - key: "DepositedAndCalled" - ): TypedContractEvent< - DepositedAndCalledEvent.InputTuple, - DepositedAndCalledEvent.OutputTuple, - DepositedAndCalledEvent.OutputObject - >; - getEvent( - key: "Executed" - ): TypedContractEvent< - ExecutedEvent.InputTuple, - ExecutedEvent.OutputTuple, - ExecutedEvent.OutputObject - >; - getEvent( - key: "ExecutedWithERC20" - ): TypedContractEvent< - ExecutedWithERC20Event.InputTuple, - ExecutedWithERC20Event.OutputTuple, - ExecutedWithERC20Event.OutputObject - >; - getEvent( - key: "Reverted" - ): TypedContractEvent< - RevertedEvent.InputTuple, - RevertedEvent.OutputTuple, - RevertedEvent.OutputObject - >; - getEvent( - key: "UpdatedGatewayTSSAddress" - ): TypedContractEvent< - UpdatedGatewayTSSAddressEvent.InputTuple, - UpdatedGatewayTSSAddressEvent.OutputTuple, - UpdatedGatewayTSSAddressEvent.OutputObject - >; - - filters: { - "Called(address,address,bytes,tuple)": TypedContractEvent< - CalledEvent.InputTuple, - CalledEvent.OutputTuple, - CalledEvent.OutputObject - >; - Called: TypedContractEvent< - CalledEvent.InputTuple, - CalledEvent.OutputTuple, - CalledEvent.OutputObject - >; - - "Deposited(address,address,uint256,address,bytes,tuple)": TypedContractEvent< - DepositedEvent.InputTuple, - DepositedEvent.OutputTuple, - DepositedEvent.OutputObject - >; - Deposited: TypedContractEvent< - DepositedEvent.InputTuple, - DepositedEvent.OutputTuple, - DepositedEvent.OutputObject - >; - - "DepositedAndCalled(address,address,uint256,address,bytes,tuple)": TypedContractEvent< - DepositedAndCalledEvent.InputTuple, - DepositedAndCalledEvent.OutputTuple, - DepositedAndCalledEvent.OutputObject - >; - DepositedAndCalled: TypedContractEvent< - DepositedAndCalledEvent.InputTuple, - DepositedAndCalledEvent.OutputTuple, - DepositedAndCalledEvent.OutputObject - >; - - "Executed(address,uint256,bytes)": TypedContractEvent< - ExecutedEvent.InputTuple, - ExecutedEvent.OutputTuple, - ExecutedEvent.OutputObject - >; - Executed: TypedContractEvent< - ExecutedEvent.InputTuple, - ExecutedEvent.OutputTuple, - ExecutedEvent.OutputObject - >; - - "ExecutedWithERC20(address,address,uint256,bytes)": TypedContractEvent< - ExecutedWithERC20Event.InputTuple, - ExecutedWithERC20Event.OutputTuple, - ExecutedWithERC20Event.OutputObject - >; - ExecutedWithERC20: TypedContractEvent< - ExecutedWithERC20Event.InputTuple, - ExecutedWithERC20Event.OutputTuple, - ExecutedWithERC20Event.OutputObject - >; - - "Reverted(address,address,uint256,bytes,tuple)": TypedContractEvent< - RevertedEvent.InputTuple, - RevertedEvent.OutputTuple, - RevertedEvent.OutputObject - >; - Reverted: TypedContractEvent< - RevertedEvent.InputTuple, - RevertedEvent.OutputTuple, - RevertedEvent.OutputObject - >; - - "UpdatedGatewayTSSAddress(address,address)": TypedContractEvent< - UpdatedGatewayTSSAddressEvent.InputTuple, - UpdatedGatewayTSSAddressEvent.OutputTuple, - UpdatedGatewayTSSAddressEvent.OutputObject - >; - UpdatedGatewayTSSAddress: TypedContractEvent< - UpdatedGatewayTSSAddressEvent.InputTuple, - UpdatedGatewayTSSAddressEvent.OutputTuple, - UpdatedGatewayTSSAddressEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/index.ts deleted file mode 100644 index 35717632..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { Callable } from "./Callable"; -export type { IGatewayEVM } from "./IGatewayEVM"; -export type { IGatewayEVMErrors } from "./IGatewayEVMErrors"; -export type { IGatewayEVMEvents } from "./IGatewayEVMEvents"; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/IZetaConnectorEvents.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/IZetaConnectorEvents.ts deleted file mode 100644 index bdf342f4..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/IZetaConnectorEvents.ts +++ /dev/null @@ -1,241 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, -} from "../../../../../../common"; - -export type RevertContextStruct = { - sender: AddressLike; - asset: AddressLike; - amount: BigNumberish; - revertMessage: BytesLike; -}; - -export type RevertContextStructOutput = [ - sender: string, - asset: string, - amount: bigint, - revertMessage: string -] & { sender: string; asset: string; amount: bigint; revertMessage: string }; - -export interface IZetaConnectorEventsInterface extends Interface { - getEvent( - nameOrSignatureOrTopic: - | "UpdatedZetaConnectorTSSAddress" - | "Withdrawn" - | "WithdrawnAndCalled" - | "WithdrawnAndReverted" - ): EventFragment; -} - -export namespace UpdatedZetaConnectorTSSAddressEvent { - export type InputTuple = [ - oldTSSAddress: AddressLike, - newTSSAddress: AddressLike - ]; - export type OutputTuple = [oldTSSAddress: string, newTSSAddress: string]; - export interface OutputObject { - oldTSSAddress: string; - newTSSAddress: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WithdrawnEvent { - export type InputTuple = [to: AddressLike, amount: BigNumberish]; - export type OutputTuple = [to: string, amount: bigint]; - export interface OutputObject { - to: string; - amount: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WithdrawnAndCalledEvent { - export type InputTuple = [ - to: AddressLike, - amount: BigNumberish, - data: BytesLike - ]; - export type OutputTuple = [to: string, amount: bigint, data: string]; - export interface OutputObject { - to: string; - amount: bigint; - data: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WithdrawnAndRevertedEvent { - export type InputTuple = [ - to: AddressLike, - amount: BigNumberish, - data: BytesLike, - revertContext: RevertContextStruct - ]; - export type OutputTuple = [ - to: string, - amount: bigint, - data: string, - revertContext: RevertContextStructOutput - ]; - export interface OutputObject { - to: string; - amount: bigint; - data: string; - revertContext: RevertContextStructOutput; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface IZetaConnectorEvents extends BaseContract { - connect(runner?: ContractRunner | null): IZetaConnectorEvents; - waitForDeployment(): Promise; - - interface: IZetaConnectorEventsInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - getEvent( - key: "UpdatedZetaConnectorTSSAddress" - ): TypedContractEvent< - UpdatedZetaConnectorTSSAddressEvent.InputTuple, - UpdatedZetaConnectorTSSAddressEvent.OutputTuple, - UpdatedZetaConnectorTSSAddressEvent.OutputObject - >; - getEvent( - key: "Withdrawn" - ): TypedContractEvent< - WithdrawnEvent.InputTuple, - WithdrawnEvent.OutputTuple, - WithdrawnEvent.OutputObject - >; - getEvent( - key: "WithdrawnAndCalled" - ): TypedContractEvent< - WithdrawnAndCalledEvent.InputTuple, - WithdrawnAndCalledEvent.OutputTuple, - WithdrawnAndCalledEvent.OutputObject - >; - getEvent( - key: "WithdrawnAndReverted" - ): TypedContractEvent< - WithdrawnAndRevertedEvent.InputTuple, - WithdrawnAndRevertedEvent.OutputTuple, - WithdrawnAndRevertedEvent.OutputObject - >; - - filters: { - "UpdatedZetaConnectorTSSAddress(address,address)": TypedContractEvent< - UpdatedZetaConnectorTSSAddressEvent.InputTuple, - UpdatedZetaConnectorTSSAddressEvent.OutputTuple, - UpdatedZetaConnectorTSSAddressEvent.OutputObject - >; - UpdatedZetaConnectorTSSAddress: TypedContractEvent< - UpdatedZetaConnectorTSSAddressEvent.InputTuple, - UpdatedZetaConnectorTSSAddressEvent.OutputTuple, - UpdatedZetaConnectorTSSAddressEvent.OutputObject - >; - - "Withdrawn(address,uint256)": TypedContractEvent< - WithdrawnEvent.InputTuple, - WithdrawnEvent.OutputTuple, - WithdrawnEvent.OutputObject - >; - Withdrawn: TypedContractEvent< - WithdrawnEvent.InputTuple, - WithdrawnEvent.OutputTuple, - WithdrawnEvent.OutputObject - >; - - "WithdrawnAndCalled(address,uint256,bytes)": TypedContractEvent< - WithdrawnAndCalledEvent.InputTuple, - WithdrawnAndCalledEvent.OutputTuple, - WithdrawnAndCalledEvent.OutputObject - >; - WithdrawnAndCalled: TypedContractEvent< - WithdrawnAndCalledEvent.InputTuple, - WithdrawnAndCalledEvent.OutputTuple, - WithdrawnAndCalledEvent.OutputObject - >; - - "WithdrawnAndReverted(address,uint256,bytes,tuple)": TypedContractEvent< - WithdrawnAndRevertedEvent.InputTuple, - WithdrawnAndRevertedEvent.OutputTuple, - WithdrawnAndRevertedEvent.OutputObject - >; - WithdrawnAndReverted: TypedContractEvent< - WithdrawnAndRevertedEvent.InputTuple, - WithdrawnAndRevertedEvent.OutputTuple, - WithdrawnAndRevertedEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/index.ts deleted file mode 100644 index eb97bbe0..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { IZetaConnectorEvents } from "./IZetaConnectorEvents"; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaNonEthNew.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaNonEthNew.ts deleted file mode 100644 index 04968b39..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaNonEthNew.ts +++ /dev/null @@ -1,300 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../../../common"; - -export interface IZetaNonEthNewInterface extends Interface { - getFunction( - nameOrSignature: - | "allowance" - | "approve" - | "balanceOf" - | "burnFrom" - | "mint" - | "totalSupply" - | "transfer" - | "transferFrom" - ): FunctionFragment; - - getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; - - encodeFunctionData( - functionFragment: "allowance", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "burnFrom", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "mint", - values: [AddressLike, BigNumberish, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "burnFrom", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; -} - -export namespace ApprovalEvent { - export type InputTuple = [ - owner: AddressLike, - spender: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [owner: string, spender: string, value: bigint]; - export interface OutputObject { - owner: string; - spender: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace TransferEvent { - export type InputTuple = [ - from: AddressLike, - to: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [from: string, to: string, value: bigint]; - export interface OutputObject { - from: string; - to: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface IZetaNonEthNew extends BaseContract { - connect(runner?: ContractRunner | null): IZetaNonEthNew; - waitForDeployment(): Promise; - - interface: IZetaNonEthNewInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - allowance: TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - - approve: TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; - - burnFrom: TypedContractMethod< - [account: AddressLike, amount: BigNumberish], - [void], - "nonpayable" - >; - - mint: TypedContractMethod< - [mintee: AddressLike, value: BigNumberish, internalSendHash: BytesLike], - [void], - "nonpayable" - >; - - totalSupply: TypedContractMethod<[], [bigint], "view">; - - transfer: TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - transferFrom: TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "allowance" - ): TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "approve" - ): TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "balanceOf" - ): TypedContractMethod<[account: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "burnFrom" - ): TypedContractMethod< - [account: AddressLike, amount: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "mint" - ): TypedContractMethod< - [mintee: AddressLike, value: BigNumberish, internalSendHash: BytesLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "totalSupply" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "transfer" - ): TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "transferFrom" - ): TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getEvent( - key: "Approval" - ): TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - getEvent( - key: "Transfer" - ): TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - - filters: { - "Approval(address,address,uint256)": TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - Approval: TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - - "Transfer(address,address,uint256)": TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - Transfer: TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/index.ts deleted file mode 100644 index 437efc45..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as ierc20CustodySol from "./IERC20Custody.sol"; -export type { ierc20CustodySol }; -import type * as iGatewayEvmSol from "./IGatewayEVM.sol"; -export type { iGatewayEvmSol }; -import type * as iZetaConnectorSol from "./IZetaConnector.sol"; -export type { iZetaConnectorSol }; -export type { IZetaNonEthNew } from "./IZetaNonEthNew"; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/index.ts deleted file mode 100644 index 4c40819e..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as errorsSol from "./Errors.sol"; -export type { errorsSol }; -import type * as revertSol from "./Revert.sol"; -export type { revertSol }; -import type * as evm from "./evm"; -export type { evm }; -import type * as zevm from "./zevm"; -export type { zevm }; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/GatewayZEVM.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/GatewayZEVM.ts deleted file mode 100644 index ce43c203..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/GatewayZEVM.ts +++ /dev/null @@ -1,1243 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../../common"; - -export type CallOptionsStruct = { - gasLimit: BigNumberish; - isArbitraryCall: boolean; -}; - -export type CallOptionsStructOutput = [ - gasLimit: bigint, - isArbitraryCall: boolean -] & { gasLimit: bigint; isArbitraryCall: boolean }; - -export type RevertOptionsStruct = { - revertAddress: AddressLike; - callOnRevert: boolean; - abortAddress: AddressLike; - revertMessage: BytesLike; - onRevertGasLimit: BigNumberish; -}; - -export type RevertOptionsStructOutput = [ - revertAddress: string, - callOnRevert: boolean, - abortAddress: string, - revertMessage: string, - onRevertGasLimit: bigint -] & { - revertAddress: string; - callOnRevert: boolean; - abortAddress: string; - revertMessage: string; - onRevertGasLimit: bigint; -}; - -export type MessageContextStruct = { - sender: BytesLike; - senderEVM: AddressLike; - chainID: BigNumberish; -}; - -export type MessageContextStructOutput = [ - sender: string, - senderEVM: string, - chainID: bigint -] & { sender: string; senderEVM: string; chainID: bigint }; - -export type RevertContextStruct = { - sender: AddressLike; - asset: AddressLike; - amount: BigNumberish; - revertMessage: BytesLike; -}; - -export type RevertContextStructOutput = [ - sender: string, - asset: string, - amount: bigint, - revertMessage: string -] & { sender: string; asset: string; amount: bigint; revertMessage: string }; - -export type AbortContextStruct = { - sender: BytesLike; - asset: AddressLike; - amount: BigNumberish; - outgoing: boolean; - chainID: BigNumberish; - revertMessage: BytesLike; -}; - -export type AbortContextStructOutput = [ - sender: string, - asset: string, - amount: bigint, - outgoing: boolean, - chainID: bigint, - revertMessage: string -] & { - sender: string; - asset: string; - amount: bigint; - outgoing: boolean; - chainID: bigint; - revertMessage: string; -}; - -export interface GatewayZEVMInterface extends Interface { - getFunction( - nameOrSignature: - | "DEFAULT_ADMIN_ROLE" - | "MAX_MESSAGE_SIZE" - | "PAUSER_ROLE" - | "PROTOCOL_ADDRESS" - | "UPGRADE_INTERFACE_VERSION" - | "call" - | "deposit" - | "depositAndCall((bytes,address,uint256),uint256,address,bytes)" - | "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)" - | "depositAndRevert" - | "execute" - | "executeAbort" - | "executeRevert" - | "getRoleAdmin" - | "grantRole" - | "hasRole" - | "initialize" - | "pause" - | "paused" - | "proxiableUUID" - | "renounceRole" - | "revokeRole" - | "supportsInterface" - | "unpause" - | "upgradeToAndCall" - | "withdraw(bytes,uint256,address,(address,bool,address,bytes,uint256))" - | "withdraw(bytes,uint256,uint256,(address,bool,address,bytes,uint256))" - | "withdrawAndCall(bytes,uint256,uint256,bytes,(uint256,bool),(address,bool,address,bytes,uint256))" - | "withdrawAndCall(bytes,uint256,address,bytes,(uint256,bool),(address,bool,address,bytes,uint256))" - | "zetaToken" - ): FunctionFragment; - - getEvent( - nameOrSignatureOrTopic: - | "Called" - | "Initialized" - | "Paused" - | "RoleAdminChanged" - | "RoleGranted" - | "RoleRevoked" - | "Unpaused" - | "Upgraded" - | "Withdrawn" - | "WithdrawnAndCalled" - ): EventFragment; - - encodeFunctionData( - functionFragment: "DEFAULT_ADMIN_ROLE", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "MAX_MESSAGE_SIZE", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "PAUSER_ROLE", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "PROTOCOL_ADDRESS", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "UPGRADE_INTERFACE_VERSION", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "call", - values: [ - BytesLike, - AddressLike, - BytesLike, - CallOptionsStruct, - RevertOptionsStruct - ] - ): string; - encodeFunctionData( - functionFragment: "deposit", - values: [AddressLike, BigNumberish, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "depositAndCall((bytes,address,uint256),uint256,address,bytes)", - values: [MessageContextStruct, BigNumberish, AddressLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)", - values: [ - MessageContextStruct, - AddressLike, - BigNumberish, - AddressLike, - BytesLike - ] - ): string; - encodeFunctionData( - functionFragment: "depositAndRevert", - values: [AddressLike, BigNumberish, AddressLike, RevertContextStruct] - ): string; - encodeFunctionData( - functionFragment: "execute", - values: [ - MessageContextStruct, - AddressLike, - BigNumberish, - AddressLike, - BytesLike - ] - ): string; - encodeFunctionData( - functionFragment: "executeAbort", - values: [AddressLike, AbortContextStruct] - ): string; - encodeFunctionData( - functionFragment: "executeRevert", - values: [AddressLike, RevertContextStruct] - ): string; - encodeFunctionData( - functionFragment: "getRoleAdmin", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "grantRole", - values: [BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "hasRole", - values: [BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "initialize", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData(functionFragment: "pause", values?: undefined): string; - encodeFunctionData(functionFragment: "paused", values?: undefined): string; - encodeFunctionData( - functionFragment: "proxiableUUID", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "renounceRole", - values: [BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "revokeRole", - values: [BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "supportsInterface", - values: [BytesLike] - ): string; - encodeFunctionData(functionFragment: "unpause", values?: undefined): string; - encodeFunctionData( - functionFragment: "upgradeToAndCall", - values: [AddressLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "withdraw(bytes,uint256,address,(address,bool,address,bytes,uint256))", - values: [BytesLike, BigNumberish, AddressLike, RevertOptionsStruct] - ): string; - encodeFunctionData( - functionFragment: "withdraw(bytes,uint256,uint256,(address,bool,address,bytes,uint256))", - values: [BytesLike, BigNumberish, BigNumberish, RevertOptionsStruct] - ): string; - encodeFunctionData( - functionFragment: "withdrawAndCall(bytes,uint256,uint256,bytes,(uint256,bool),(address,bool,address,bytes,uint256))", - values: [ - BytesLike, - BigNumberish, - BigNumberish, - BytesLike, - CallOptionsStruct, - RevertOptionsStruct - ] - ): string; - encodeFunctionData( - functionFragment: "withdrawAndCall(bytes,uint256,address,bytes,(uint256,bool),(address,bool,address,bytes,uint256))", - values: [ - BytesLike, - BigNumberish, - AddressLike, - BytesLike, - CallOptionsStruct, - RevertOptionsStruct - ] - ): string; - encodeFunctionData(functionFragment: "zetaToken", values?: undefined): string; - - decodeFunctionResult( - functionFragment: "DEFAULT_ADMIN_ROLE", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "MAX_MESSAGE_SIZE", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "PAUSER_ROLE", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "PROTOCOL_ADDRESS", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "UPGRADE_INTERFACE_VERSION", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "call", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "depositAndCall((bytes,address,uint256),uint256,address,bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "depositAndRevert", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "execute", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "executeAbort", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "executeRevert", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getRoleAdmin", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "pause", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "proxiableUUID", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "renounceRole", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "supportsInterface", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "unpause", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "upgradeToAndCall", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "withdraw(bytes,uint256,address,(address,bool,address,bytes,uint256))", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "withdraw(bytes,uint256,uint256,(address,bool,address,bytes,uint256))", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "withdrawAndCall(bytes,uint256,uint256,bytes,(uint256,bool),(address,bool,address,bytes,uint256))", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "withdrawAndCall(bytes,uint256,address,bytes,(uint256,bool),(address,bool,address,bytes,uint256))", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "zetaToken", data: BytesLike): Result; -} - -export namespace CalledEvent { - export type InputTuple = [ - sender: AddressLike, - zrc20: AddressLike, - receiver: BytesLike, - message: BytesLike, - callOptions: CallOptionsStruct, - revertOptions: RevertOptionsStruct - ]; - export type OutputTuple = [ - sender: string, - zrc20: string, - receiver: string, - message: string, - callOptions: CallOptionsStructOutput, - revertOptions: RevertOptionsStructOutput - ]; - export interface OutputObject { - sender: string; - zrc20: string; - receiver: string; - message: string; - callOptions: CallOptionsStructOutput; - revertOptions: RevertOptionsStructOutput; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace InitializedEvent { - export type InputTuple = [version: BigNumberish]; - export type OutputTuple = [version: bigint]; - export interface OutputObject { - version: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace PausedEvent { - export type InputTuple = [account: AddressLike]; - export type OutputTuple = [account: string]; - export interface OutputObject { - account: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace RoleAdminChangedEvent { - export type InputTuple = [ - role: BytesLike, - previousAdminRole: BytesLike, - newAdminRole: BytesLike - ]; - export type OutputTuple = [ - role: string, - previousAdminRole: string, - newAdminRole: string - ]; - export interface OutputObject { - role: string; - previousAdminRole: string; - newAdminRole: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace RoleGrantedEvent { - export type InputTuple = [ - role: BytesLike, - account: AddressLike, - sender: AddressLike - ]; - export type OutputTuple = [role: string, account: string, sender: string]; - export interface OutputObject { - role: string; - account: string; - sender: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace RoleRevokedEvent { - export type InputTuple = [ - role: BytesLike, - account: AddressLike, - sender: AddressLike - ]; - export type OutputTuple = [role: string, account: string, sender: string]; - export interface OutputObject { - role: string; - account: string; - sender: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UnpausedEvent { - export type InputTuple = [account: AddressLike]; - export type OutputTuple = [account: string]; - export interface OutputObject { - account: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UpgradedEvent { - export type InputTuple = [implementation: AddressLike]; - export type OutputTuple = [implementation: string]; - export interface OutputObject { - implementation: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WithdrawnEvent { - export type InputTuple = [ - sender: AddressLike, - chainId: BigNumberish, - receiver: BytesLike, - zrc20: AddressLike, - value: BigNumberish, - gasfee: BigNumberish, - protocolFlatFee: BigNumberish, - message: BytesLike, - callOptions: CallOptionsStruct, - revertOptions: RevertOptionsStruct - ]; - export type OutputTuple = [ - sender: string, - chainId: bigint, - receiver: string, - zrc20: string, - value: bigint, - gasfee: bigint, - protocolFlatFee: bigint, - message: string, - callOptions: CallOptionsStructOutput, - revertOptions: RevertOptionsStructOutput - ]; - export interface OutputObject { - sender: string; - chainId: bigint; - receiver: string; - zrc20: string; - value: bigint; - gasfee: bigint; - protocolFlatFee: bigint; - message: string; - callOptions: CallOptionsStructOutput; - revertOptions: RevertOptionsStructOutput; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WithdrawnAndCalledEvent { - export type InputTuple = [ - sender: AddressLike, - chainId: BigNumberish, - receiver: BytesLike, - zrc20: AddressLike, - value: BigNumberish, - gasfee: BigNumberish, - protocolFlatFee: BigNumberish, - message: BytesLike, - callOptions: CallOptionsStruct, - revertOptions: RevertOptionsStruct - ]; - export type OutputTuple = [ - sender: string, - chainId: bigint, - receiver: string, - zrc20: string, - value: bigint, - gasfee: bigint, - protocolFlatFee: bigint, - message: string, - callOptions: CallOptionsStructOutput, - revertOptions: RevertOptionsStructOutput - ]; - export interface OutputObject { - sender: string; - chainId: bigint; - receiver: string; - zrc20: string; - value: bigint; - gasfee: bigint; - protocolFlatFee: bigint; - message: string; - callOptions: CallOptionsStructOutput; - revertOptions: RevertOptionsStructOutput; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface GatewayZEVM extends BaseContract { - connect(runner?: ContractRunner | null): GatewayZEVM; - waitForDeployment(): Promise; - - interface: GatewayZEVMInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - DEFAULT_ADMIN_ROLE: TypedContractMethod<[], [string], "view">; - - MAX_MESSAGE_SIZE: TypedContractMethod<[], [bigint], "view">; - - PAUSER_ROLE: TypedContractMethod<[], [string], "view">; - - PROTOCOL_ADDRESS: TypedContractMethod<[], [string], "view">; - - UPGRADE_INTERFACE_VERSION: TypedContractMethod<[], [string], "view">; - - call: TypedContractMethod< - [ - receiver: BytesLike, - zrc20: AddressLike, - message: BytesLike, - callOptions: CallOptionsStruct, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - - deposit: TypedContractMethod< - [zrc20: AddressLike, amount: BigNumberish, target: AddressLike], - [void], - "nonpayable" - >; - - "depositAndCall((bytes,address,uint256),uint256,address,bytes)": TypedContractMethod< - [ - context: MessageContextStruct, - amount: BigNumberish, - target: AddressLike, - message: BytesLike - ], - [void], - "nonpayable" - >; - - "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)": TypedContractMethod< - [ - context: MessageContextStruct, - zrc20: AddressLike, - amount: BigNumberish, - target: AddressLike, - message: BytesLike - ], - [void], - "nonpayable" - >; - - depositAndRevert: TypedContractMethod< - [ - zrc20: AddressLike, - amount: BigNumberish, - target: AddressLike, - revertContext: RevertContextStruct - ], - [void], - "nonpayable" - >; - - execute: TypedContractMethod< - [ - context: MessageContextStruct, - zrc20: AddressLike, - amount: BigNumberish, - target: AddressLike, - message: BytesLike - ], - [void], - "nonpayable" - >; - - executeAbort: TypedContractMethod< - [target: AddressLike, abortContext: AbortContextStruct], - [void], - "nonpayable" - >; - - executeRevert: TypedContractMethod< - [target: AddressLike, revertContext: RevertContextStruct], - [void], - "nonpayable" - >; - - getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">; - - grantRole: TypedContractMethod< - [role: BytesLike, account: AddressLike], - [void], - "nonpayable" - >; - - hasRole: TypedContractMethod< - [role: BytesLike, account: AddressLike], - [boolean], - "view" - >; - - initialize: TypedContractMethod< - [zetaToken_: AddressLike, admin_: AddressLike], - [void], - "nonpayable" - >; - - pause: TypedContractMethod<[], [void], "nonpayable">; - - paused: TypedContractMethod<[], [boolean], "view">; - - proxiableUUID: TypedContractMethod<[], [string], "view">; - - renounceRole: TypedContractMethod< - [role: BytesLike, callerConfirmation: AddressLike], - [void], - "nonpayable" - >; - - revokeRole: TypedContractMethod< - [role: BytesLike, account: AddressLike], - [void], - "nonpayable" - >; - - supportsInterface: TypedContractMethod< - [interfaceId: BytesLike], - [boolean], - "view" - >; - - unpause: TypedContractMethod<[], [void], "nonpayable">; - - upgradeToAndCall: TypedContractMethod< - [newImplementation: AddressLike, data: BytesLike], - [void], - "payable" - >; - - "withdraw(bytes,uint256,address,(address,bool,address,bytes,uint256))": TypedContractMethod< - [ - receiver: BytesLike, - amount: BigNumberish, - zrc20: AddressLike, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - - "withdraw(bytes,uint256,uint256,(address,bool,address,bytes,uint256))": TypedContractMethod< - [ - arg0: BytesLike, - arg1: BigNumberish, - arg2: BigNumberish, - arg3: RevertOptionsStruct - ], - [void], - "view" - >; - - "withdrawAndCall(bytes,uint256,uint256,bytes,(uint256,bool),(address,bool,address,bytes,uint256))": TypedContractMethod< - [ - arg0: BytesLike, - arg1: BigNumberish, - arg2: BigNumberish, - arg3: BytesLike, - arg4: CallOptionsStruct, - arg5: RevertOptionsStruct - ], - [void], - "view" - >; - - "withdrawAndCall(bytes,uint256,address,bytes,(uint256,bool),(address,bool,address,bytes,uint256))": TypedContractMethod< - [ - receiver: BytesLike, - amount: BigNumberish, - zrc20: AddressLike, - message: BytesLike, - callOptions: CallOptionsStruct, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - - zetaToken: TypedContractMethod<[], [string], "view">; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "DEFAULT_ADMIN_ROLE" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "MAX_MESSAGE_SIZE" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "PAUSER_ROLE" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "PROTOCOL_ADDRESS" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "UPGRADE_INTERFACE_VERSION" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "call" - ): TypedContractMethod< - [ - receiver: BytesLike, - zrc20: AddressLike, - message: BytesLike, - callOptions: CallOptionsStruct, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "deposit" - ): TypedContractMethod< - [zrc20: AddressLike, amount: BigNumberish, target: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "depositAndCall((bytes,address,uint256),uint256,address,bytes)" - ): TypedContractMethod< - [ - context: MessageContextStruct, - amount: BigNumberish, - target: AddressLike, - message: BytesLike - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)" - ): TypedContractMethod< - [ - context: MessageContextStruct, - zrc20: AddressLike, - amount: BigNumberish, - target: AddressLike, - message: BytesLike - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "depositAndRevert" - ): TypedContractMethod< - [ - zrc20: AddressLike, - amount: BigNumberish, - target: AddressLike, - revertContext: RevertContextStruct - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "execute" - ): TypedContractMethod< - [ - context: MessageContextStruct, - zrc20: AddressLike, - amount: BigNumberish, - target: AddressLike, - message: BytesLike - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "executeAbort" - ): TypedContractMethod< - [target: AddressLike, abortContext: AbortContextStruct], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "executeRevert" - ): TypedContractMethod< - [target: AddressLike, revertContext: RevertContextStruct], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "getRoleAdmin" - ): TypedContractMethod<[role: BytesLike], [string], "view">; - getFunction( - nameOrSignature: "grantRole" - ): TypedContractMethod< - [role: BytesLike, account: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "hasRole" - ): TypedContractMethod< - [role: BytesLike, account: AddressLike], - [boolean], - "view" - >; - getFunction( - nameOrSignature: "initialize" - ): TypedContractMethod< - [zetaToken_: AddressLike, admin_: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "pause" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "paused" - ): TypedContractMethod<[], [boolean], "view">; - getFunction( - nameOrSignature: "proxiableUUID" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "renounceRole" - ): TypedContractMethod< - [role: BytesLike, callerConfirmation: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "revokeRole" - ): TypedContractMethod< - [role: BytesLike, account: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "supportsInterface" - ): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; - getFunction( - nameOrSignature: "unpause" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "upgradeToAndCall" - ): TypedContractMethod< - [newImplementation: AddressLike, data: BytesLike], - [void], - "payable" - >; - getFunction( - nameOrSignature: "withdraw(bytes,uint256,address,(address,bool,address,bytes,uint256))" - ): TypedContractMethod< - [ - receiver: BytesLike, - amount: BigNumberish, - zrc20: AddressLike, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdraw(bytes,uint256,uint256,(address,bool,address,bytes,uint256))" - ): TypedContractMethod< - [ - arg0: BytesLike, - arg1: BigNumberish, - arg2: BigNumberish, - arg3: RevertOptionsStruct - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "withdrawAndCall(bytes,uint256,uint256,bytes,(uint256,bool),(address,bool,address,bytes,uint256))" - ): TypedContractMethod< - [ - arg0: BytesLike, - arg1: BigNumberish, - arg2: BigNumberish, - arg3: BytesLike, - arg4: CallOptionsStruct, - arg5: RevertOptionsStruct - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "withdrawAndCall(bytes,uint256,address,bytes,(uint256,bool),(address,bool,address,bytes,uint256))" - ): TypedContractMethod< - [ - receiver: BytesLike, - amount: BigNumberish, - zrc20: AddressLike, - message: BytesLike, - callOptions: CallOptionsStruct, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "zetaToken" - ): TypedContractMethod<[], [string], "view">; - - getEvent( - key: "Called" - ): TypedContractEvent< - CalledEvent.InputTuple, - CalledEvent.OutputTuple, - CalledEvent.OutputObject - >; - getEvent( - key: "Initialized" - ): TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - getEvent( - key: "Paused" - ): TypedContractEvent< - PausedEvent.InputTuple, - PausedEvent.OutputTuple, - PausedEvent.OutputObject - >; - getEvent( - key: "RoleAdminChanged" - ): TypedContractEvent< - RoleAdminChangedEvent.InputTuple, - RoleAdminChangedEvent.OutputTuple, - RoleAdminChangedEvent.OutputObject - >; - getEvent( - key: "RoleGranted" - ): TypedContractEvent< - RoleGrantedEvent.InputTuple, - RoleGrantedEvent.OutputTuple, - RoleGrantedEvent.OutputObject - >; - getEvent( - key: "RoleRevoked" - ): TypedContractEvent< - RoleRevokedEvent.InputTuple, - RoleRevokedEvent.OutputTuple, - RoleRevokedEvent.OutputObject - >; - getEvent( - key: "Unpaused" - ): TypedContractEvent< - UnpausedEvent.InputTuple, - UnpausedEvent.OutputTuple, - UnpausedEvent.OutputObject - >; - getEvent( - key: "Upgraded" - ): TypedContractEvent< - UpgradedEvent.InputTuple, - UpgradedEvent.OutputTuple, - UpgradedEvent.OutputObject - >; - getEvent( - key: "Withdrawn" - ): TypedContractEvent< - WithdrawnEvent.InputTuple, - WithdrawnEvent.OutputTuple, - WithdrawnEvent.OutputObject - >; - getEvent( - key: "WithdrawnAndCalled" - ): TypedContractEvent< - WithdrawnAndCalledEvent.InputTuple, - WithdrawnAndCalledEvent.OutputTuple, - WithdrawnAndCalledEvent.OutputObject - >; - - filters: { - "Called(address,address,bytes,bytes,tuple,tuple)": TypedContractEvent< - CalledEvent.InputTuple, - CalledEvent.OutputTuple, - CalledEvent.OutputObject - >; - Called: TypedContractEvent< - CalledEvent.InputTuple, - CalledEvent.OutputTuple, - CalledEvent.OutputObject - >; - - "Initialized(uint64)": TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - Initialized: TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - - "Paused(address)": TypedContractEvent< - PausedEvent.InputTuple, - PausedEvent.OutputTuple, - PausedEvent.OutputObject - >; - Paused: TypedContractEvent< - PausedEvent.InputTuple, - PausedEvent.OutputTuple, - PausedEvent.OutputObject - >; - - "RoleAdminChanged(bytes32,bytes32,bytes32)": TypedContractEvent< - RoleAdminChangedEvent.InputTuple, - RoleAdminChangedEvent.OutputTuple, - RoleAdminChangedEvent.OutputObject - >; - RoleAdminChanged: TypedContractEvent< - RoleAdminChangedEvent.InputTuple, - RoleAdminChangedEvent.OutputTuple, - RoleAdminChangedEvent.OutputObject - >; - - "RoleGranted(bytes32,address,address)": TypedContractEvent< - RoleGrantedEvent.InputTuple, - RoleGrantedEvent.OutputTuple, - RoleGrantedEvent.OutputObject - >; - RoleGranted: TypedContractEvent< - RoleGrantedEvent.InputTuple, - RoleGrantedEvent.OutputTuple, - RoleGrantedEvent.OutputObject - >; - - "RoleRevoked(bytes32,address,address)": TypedContractEvent< - RoleRevokedEvent.InputTuple, - RoleRevokedEvent.OutputTuple, - RoleRevokedEvent.OutputObject - >; - RoleRevoked: TypedContractEvent< - RoleRevokedEvent.InputTuple, - RoleRevokedEvent.OutputTuple, - RoleRevokedEvent.OutputObject - >; - - "Unpaused(address)": TypedContractEvent< - UnpausedEvent.InputTuple, - UnpausedEvent.OutputTuple, - UnpausedEvent.OutputObject - >; - Unpaused: TypedContractEvent< - UnpausedEvent.InputTuple, - UnpausedEvent.OutputTuple, - UnpausedEvent.OutputObject - >; - - "Upgraded(address)": TypedContractEvent< - UpgradedEvent.InputTuple, - UpgradedEvent.OutputTuple, - UpgradedEvent.OutputObject - >; - Upgraded: TypedContractEvent< - UpgradedEvent.InputTuple, - UpgradedEvent.OutputTuple, - UpgradedEvent.OutputObject - >; - - "Withdrawn(address,uint256,bytes,address,uint256,uint256,uint256,bytes,tuple,tuple)": TypedContractEvent< - WithdrawnEvent.InputTuple, - WithdrawnEvent.OutputTuple, - WithdrawnEvent.OutputObject - >; - Withdrawn: TypedContractEvent< - WithdrawnEvent.InputTuple, - WithdrawnEvent.OutputTuple, - WithdrawnEvent.OutputObject - >; - - "WithdrawnAndCalled(address,uint256,bytes,address,uint256,uint256,uint256,bytes,tuple,tuple)": TypedContractEvent< - WithdrawnAndCalledEvent.InputTuple, - WithdrawnAndCalledEvent.OutputTuple, - WithdrawnAndCalledEvent.OutputObject - >; - WithdrawnAndCalled: TypedContractEvent< - WithdrawnAndCalledEvent.InputTuple, - WithdrawnAndCalledEvent.OutputTuple, - WithdrawnAndCalledEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContract.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContract.ts deleted file mode 100644 index ef4704d1..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContract.ts +++ /dev/null @@ -1,569 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../../../common"; - -export type ZContextStruct = { - origin: BytesLike; - sender: AddressLike; - chainID: BigNumberish; -}; - -export type ZContextStructOutput = [ - origin: string, - sender: string, - chainID: bigint -] & { origin: string; sender: string; chainID: bigint }; - -export interface SystemContractInterface extends Interface { - getFunction( - nameOrSignature: - | "FUNGIBLE_MODULE_ADDRESS" - | "depositAndCall" - | "gasCoinZRC20ByChainId" - | "gasPriceByChainId" - | "gasZetaPoolByChainId" - | "setConnectorZEVMAddress" - | "setGasCoinZRC20" - | "setGasPrice" - | "setGasZetaPool" - | "setWZETAContractAddress" - | "uniswapv2FactoryAddress" - | "uniswapv2PairFor" - | "uniswapv2Router02Address" - | "wZetaContractAddress" - | "zetaConnectorZEVMAddress" - ): FunctionFragment; - - getEvent( - nameOrSignatureOrTopic: - | "SetConnectorZEVM" - | "SetGasCoin" - | "SetGasPrice" - | "SetGasZetaPool" - | "SetWZeta" - | "SystemContractDeployed" - ): EventFragment; - - encodeFunctionData( - functionFragment: "FUNGIBLE_MODULE_ADDRESS", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "depositAndCall", - values: [ZContextStruct, AddressLike, BigNumberish, AddressLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "gasCoinZRC20ByChainId", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "gasPriceByChainId", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "gasZetaPoolByChainId", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "setConnectorZEVMAddress", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "setGasCoinZRC20", - values: [BigNumberish, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "setGasPrice", - values: [BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "setGasZetaPool", - values: [BigNumberish, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "setWZETAContractAddress", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "uniswapv2FactoryAddress", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "uniswapv2PairFor", - values: [AddressLike, AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "uniswapv2Router02Address", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "wZetaContractAddress", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "zetaConnectorZEVMAddress", - values?: undefined - ): string; - - decodeFunctionResult( - functionFragment: "FUNGIBLE_MODULE_ADDRESS", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "depositAndCall", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "gasCoinZRC20ByChainId", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "gasPriceByChainId", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "gasZetaPoolByChainId", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "setConnectorZEVMAddress", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "setGasCoinZRC20", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "setGasPrice", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "setGasZetaPool", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "setWZETAContractAddress", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "uniswapv2FactoryAddress", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "uniswapv2PairFor", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "uniswapv2Router02Address", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "wZetaContractAddress", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "zetaConnectorZEVMAddress", - data: BytesLike - ): Result; -} - -export namespace SetConnectorZEVMEvent { - export type InputTuple = [arg0: AddressLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace SetGasCoinEvent { - export type InputTuple = [arg0: BigNumberish, arg1: AddressLike]; - export type OutputTuple = [arg0: bigint, arg1: string]; - export interface OutputObject { - arg0: bigint; - arg1: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace SetGasPriceEvent { - export type InputTuple = [arg0: BigNumberish, arg1: BigNumberish]; - export type OutputTuple = [arg0: bigint, arg1: bigint]; - export interface OutputObject { - arg0: bigint; - arg1: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace SetGasZetaPoolEvent { - export type InputTuple = [arg0: BigNumberish, arg1: AddressLike]; - export type OutputTuple = [arg0: bigint, arg1: string]; - export interface OutputObject { - arg0: bigint; - arg1: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace SetWZetaEvent { - export type InputTuple = [arg0: AddressLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace SystemContractDeployedEvent { - export type InputTuple = []; - export type OutputTuple = []; - export interface OutputObject {} - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface SystemContract extends BaseContract { - connect(runner?: ContractRunner | null): SystemContract; - waitForDeployment(): Promise; - - interface: SystemContractInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - FUNGIBLE_MODULE_ADDRESS: TypedContractMethod<[], [string], "view">; - - depositAndCall: TypedContractMethod< - [ - context: ZContextStruct, - zrc20: AddressLike, - amount: BigNumberish, - target: AddressLike, - message: BytesLike - ], - [void], - "nonpayable" - >; - - gasCoinZRC20ByChainId: TypedContractMethod< - [arg0: BigNumberish], - [string], - "view" - >; - - gasPriceByChainId: TypedContractMethod< - [arg0: BigNumberish], - [bigint], - "view" - >; - - gasZetaPoolByChainId: TypedContractMethod< - [arg0: BigNumberish], - [string], - "view" - >; - - setConnectorZEVMAddress: TypedContractMethod< - [addr: AddressLike], - [void], - "nonpayable" - >; - - setGasCoinZRC20: TypedContractMethod< - [chainID: BigNumberish, zrc20: AddressLike], - [void], - "nonpayable" - >; - - setGasPrice: TypedContractMethod< - [chainID: BigNumberish, price: BigNumberish], - [void], - "nonpayable" - >; - - setGasZetaPool: TypedContractMethod< - [chainID: BigNumberish, erc20: AddressLike], - [void], - "nonpayable" - >; - - setWZETAContractAddress: TypedContractMethod< - [addr: AddressLike], - [void], - "nonpayable" - >; - - uniswapv2FactoryAddress: TypedContractMethod<[], [string], "view">; - - uniswapv2PairFor: TypedContractMethod< - [factory: AddressLike, tokenA: AddressLike, tokenB: AddressLike], - [string], - "view" - >; - - uniswapv2Router02Address: TypedContractMethod<[], [string], "view">; - - wZetaContractAddress: TypedContractMethod<[], [string], "view">; - - zetaConnectorZEVMAddress: TypedContractMethod<[], [string], "view">; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "FUNGIBLE_MODULE_ADDRESS" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "depositAndCall" - ): TypedContractMethod< - [ - context: ZContextStruct, - zrc20: AddressLike, - amount: BigNumberish, - target: AddressLike, - message: BytesLike - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "gasCoinZRC20ByChainId" - ): TypedContractMethod<[arg0: BigNumberish], [string], "view">; - getFunction( - nameOrSignature: "gasPriceByChainId" - ): TypedContractMethod<[arg0: BigNumberish], [bigint], "view">; - getFunction( - nameOrSignature: "gasZetaPoolByChainId" - ): TypedContractMethod<[arg0: BigNumberish], [string], "view">; - getFunction( - nameOrSignature: "setConnectorZEVMAddress" - ): TypedContractMethod<[addr: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "setGasCoinZRC20" - ): TypedContractMethod< - [chainID: BigNumberish, zrc20: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "setGasPrice" - ): TypedContractMethod< - [chainID: BigNumberish, price: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "setGasZetaPool" - ): TypedContractMethod< - [chainID: BigNumberish, erc20: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "setWZETAContractAddress" - ): TypedContractMethod<[addr: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "uniswapv2FactoryAddress" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "uniswapv2PairFor" - ): TypedContractMethod< - [factory: AddressLike, tokenA: AddressLike, tokenB: AddressLike], - [string], - "view" - >; - getFunction( - nameOrSignature: "uniswapv2Router02Address" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "wZetaContractAddress" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "zetaConnectorZEVMAddress" - ): TypedContractMethod<[], [string], "view">; - - getEvent( - key: "SetConnectorZEVM" - ): TypedContractEvent< - SetConnectorZEVMEvent.InputTuple, - SetConnectorZEVMEvent.OutputTuple, - SetConnectorZEVMEvent.OutputObject - >; - getEvent( - key: "SetGasCoin" - ): TypedContractEvent< - SetGasCoinEvent.InputTuple, - SetGasCoinEvent.OutputTuple, - SetGasCoinEvent.OutputObject - >; - getEvent( - key: "SetGasPrice" - ): TypedContractEvent< - SetGasPriceEvent.InputTuple, - SetGasPriceEvent.OutputTuple, - SetGasPriceEvent.OutputObject - >; - getEvent( - key: "SetGasZetaPool" - ): TypedContractEvent< - SetGasZetaPoolEvent.InputTuple, - SetGasZetaPoolEvent.OutputTuple, - SetGasZetaPoolEvent.OutputObject - >; - getEvent( - key: "SetWZeta" - ): TypedContractEvent< - SetWZetaEvent.InputTuple, - SetWZetaEvent.OutputTuple, - SetWZetaEvent.OutputObject - >; - getEvent( - key: "SystemContractDeployed" - ): TypedContractEvent< - SystemContractDeployedEvent.InputTuple, - SystemContractDeployedEvent.OutputTuple, - SystemContractDeployedEvent.OutputObject - >; - - filters: { - "SetConnectorZEVM(address)": TypedContractEvent< - SetConnectorZEVMEvent.InputTuple, - SetConnectorZEVMEvent.OutputTuple, - SetConnectorZEVMEvent.OutputObject - >; - SetConnectorZEVM: TypedContractEvent< - SetConnectorZEVMEvent.InputTuple, - SetConnectorZEVMEvent.OutputTuple, - SetConnectorZEVMEvent.OutputObject - >; - - "SetGasCoin(uint256,address)": TypedContractEvent< - SetGasCoinEvent.InputTuple, - SetGasCoinEvent.OutputTuple, - SetGasCoinEvent.OutputObject - >; - SetGasCoin: TypedContractEvent< - SetGasCoinEvent.InputTuple, - SetGasCoinEvent.OutputTuple, - SetGasCoinEvent.OutputObject - >; - - "SetGasPrice(uint256,uint256)": TypedContractEvent< - SetGasPriceEvent.InputTuple, - SetGasPriceEvent.OutputTuple, - SetGasPriceEvent.OutputObject - >; - SetGasPrice: TypedContractEvent< - SetGasPriceEvent.InputTuple, - SetGasPriceEvent.OutputTuple, - SetGasPriceEvent.OutputObject - >; - - "SetGasZetaPool(uint256,address)": TypedContractEvent< - SetGasZetaPoolEvent.InputTuple, - SetGasZetaPoolEvent.OutputTuple, - SetGasZetaPoolEvent.OutputObject - >; - SetGasZetaPool: TypedContractEvent< - SetGasZetaPoolEvent.InputTuple, - SetGasZetaPoolEvent.OutputTuple, - SetGasZetaPoolEvent.OutputObject - >; - - "SetWZeta(address)": TypedContractEvent< - SetWZetaEvent.InputTuple, - SetWZetaEvent.OutputTuple, - SetWZetaEvent.OutputObject - >; - SetWZeta: TypedContractEvent< - SetWZetaEvent.InputTuple, - SetWZetaEvent.OutputTuple, - SetWZetaEvent.OutputObject - >; - - "SystemContractDeployed()": TypedContractEvent< - SystemContractDeployedEvent.InputTuple, - SystemContractDeployedEvent.OutputTuple, - SystemContractDeployedEvent.OutputObject - >; - SystemContractDeployed: TypedContractEvent< - SystemContractDeployedEvent.InputTuple, - SystemContractDeployedEvent.OutputTuple, - SystemContractDeployedEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContractErrors.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContractErrors.ts deleted file mode 100644 index c80098ab..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContractErrors.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - FunctionFragment, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, -} from "../../../../../common"; - -export interface SystemContractErrorsInterface extends Interface {} - -export interface SystemContractErrors extends BaseContract { - connect(runner?: ContractRunner | null): SystemContractErrors; - waitForDeployment(): Promise; - - interface: SystemContractErrorsInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - filters: {}; -} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/index.ts deleted file mode 100644 index d5591cc5..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { SystemContract } from "./SystemContract"; -export type { SystemContractErrors } from "./SystemContractErrors"; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/WETH9.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/WETH9.ts deleted file mode 100644 index 4fd6c83c..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/WETH9.ts +++ /dev/null @@ -1,369 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../../../common"; - -export interface WETH9Interface extends Interface { - getFunction( - nameOrSignature: - | "allowance" - | "approve" - | "balanceOf" - | "decimals" - | "deposit" - | "name" - | "symbol" - | "totalSupply" - | "transfer" - | "transferFrom" - | "withdraw" - ): FunctionFragment; - - getEvent( - nameOrSignatureOrTopic: "Approval" | "Deposit" | "Transfer" | "Withdrawal" - ): EventFragment; - - encodeFunctionData( - functionFragment: "allowance", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [AddressLike] - ): string; - encodeFunctionData(functionFragment: "decimals", values?: undefined): string; - encodeFunctionData(functionFragment: "deposit", values?: undefined): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData(functionFragment: "symbol", values?: undefined): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "withdraw", - values: [BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; -} - -export namespace ApprovalEvent { - export type InputTuple = [ - src: AddressLike, - guy: AddressLike, - wad: BigNumberish - ]; - export type OutputTuple = [src: string, guy: string, wad: bigint]; - export interface OutputObject { - src: string; - guy: string; - wad: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace DepositEvent { - export type InputTuple = [dst: AddressLike, wad: BigNumberish]; - export type OutputTuple = [dst: string, wad: bigint]; - export interface OutputObject { - dst: string; - wad: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace TransferEvent { - export type InputTuple = [ - src: AddressLike, - dst: AddressLike, - wad: BigNumberish - ]; - export type OutputTuple = [src: string, dst: string, wad: bigint]; - export interface OutputObject { - src: string; - dst: string; - wad: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WithdrawalEvent { - export type InputTuple = [src: AddressLike, wad: BigNumberish]; - export type OutputTuple = [src: string, wad: bigint]; - export interface OutputObject { - src: string; - wad: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface WETH9 extends BaseContract { - connect(runner?: ContractRunner | null): WETH9; - waitForDeployment(): Promise; - - interface: WETH9Interface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - allowance: TypedContractMethod< - [arg0: AddressLike, arg1: AddressLike], - [bigint], - "view" - >; - - approve: TypedContractMethod< - [guy: AddressLike, wad: BigNumberish], - [boolean], - "nonpayable" - >; - - balanceOf: TypedContractMethod<[arg0: AddressLike], [bigint], "view">; - - decimals: TypedContractMethod<[], [bigint], "view">; - - deposit: TypedContractMethod<[], [void], "payable">; - - name: TypedContractMethod<[], [string], "view">; - - symbol: TypedContractMethod<[], [string], "view">; - - totalSupply: TypedContractMethod<[], [bigint], "view">; - - transfer: TypedContractMethod< - [dst: AddressLike, wad: BigNumberish], - [boolean], - "nonpayable" - >; - - transferFrom: TypedContractMethod< - [src: AddressLike, dst: AddressLike, wad: BigNumberish], - [boolean], - "nonpayable" - >; - - withdraw: TypedContractMethod<[wad: BigNumberish], [void], "nonpayable">; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "allowance" - ): TypedContractMethod< - [arg0: AddressLike, arg1: AddressLike], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "approve" - ): TypedContractMethod< - [guy: AddressLike, wad: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "balanceOf" - ): TypedContractMethod<[arg0: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "decimals" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "deposit" - ): TypedContractMethod<[], [void], "payable">; - getFunction( - nameOrSignature: "name" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "symbol" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "totalSupply" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "transfer" - ): TypedContractMethod< - [dst: AddressLike, wad: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "transferFrom" - ): TypedContractMethod< - [src: AddressLike, dst: AddressLike, wad: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdraw" - ): TypedContractMethod<[wad: BigNumberish], [void], "nonpayable">; - - getEvent( - key: "Approval" - ): TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - getEvent( - key: "Deposit" - ): TypedContractEvent< - DepositEvent.InputTuple, - DepositEvent.OutputTuple, - DepositEvent.OutputObject - >; - getEvent( - key: "Transfer" - ): TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - getEvent( - key: "Withdrawal" - ): TypedContractEvent< - WithdrawalEvent.InputTuple, - WithdrawalEvent.OutputTuple, - WithdrawalEvent.OutputObject - >; - - filters: { - "Approval(address,address,uint256)": TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - Approval: TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - - "Deposit(address,uint256)": TypedContractEvent< - DepositEvent.InputTuple, - DepositEvent.OutputTuple, - DepositEvent.OutputObject - >; - Deposit: TypedContractEvent< - DepositEvent.InputTuple, - DepositEvent.OutputTuple, - DepositEvent.OutputObject - >; - - "Transfer(address,address,uint256)": TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - Transfer: TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - - "Withdrawal(address,uint256)": TypedContractEvent< - WithdrawalEvent.InputTuple, - WithdrawalEvent.OutputTuple, - WithdrawalEvent.OutputObject - >; - Withdrawal: TypedContractEvent< - WithdrawalEvent.InputTuple, - WithdrawalEvent.OutputTuple, - WithdrawalEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/index.ts deleted file mode 100644 index 3f031232..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { WETH9 } from "./WETH9"; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20.ts deleted file mode 100644 index 9becf37e..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20.ts +++ /dev/null @@ -1,748 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../../../common"; - -export interface ZRC20Interface extends Interface { - getFunction( - nameOrSignature: - | "CHAIN_ID" - | "COIN_TYPE" - | "FUNGIBLE_MODULE_ADDRESS" - | "GAS_LIMIT" - | "PROTOCOL_FLAT_FEE" - | "SYSTEM_CONTRACT_ADDRESS" - | "allowance" - | "approve" - | "balanceOf" - | "burn" - | "decimals" - | "deposit" - | "gatewayAddress" - | "name" - | "setName" - | "setSymbol" - | "symbol" - | "totalSupply" - | "transfer" - | "transferFrom" - | "updateGasLimit" - | "updateGatewayAddress" - | "updateProtocolFlatFee" - | "updateSystemContractAddress" - | "withdraw" - | "withdrawGasFee" - | "withdrawGasFeeWithGasLimit" - ): FunctionFragment; - - getEvent( - nameOrSignatureOrTopic: - | "Approval" - | "Deposit" - | "Transfer" - | "UpdatedGasLimit" - | "UpdatedGateway" - | "UpdatedProtocolFlatFee" - | "UpdatedSystemContract" - | "Withdrawal" - ): EventFragment; - - encodeFunctionData(functionFragment: "CHAIN_ID", values?: undefined): string; - encodeFunctionData(functionFragment: "COIN_TYPE", values?: undefined): string; - encodeFunctionData( - functionFragment: "FUNGIBLE_MODULE_ADDRESS", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "GAS_LIMIT", values?: undefined): string; - encodeFunctionData( - functionFragment: "PROTOCOL_FLAT_FEE", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "SYSTEM_CONTRACT_ADDRESS", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "allowance", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [AddressLike] - ): string; - encodeFunctionData(functionFragment: "burn", values: [BigNumberish]): string; - encodeFunctionData(functionFragment: "decimals", values?: undefined): string; - encodeFunctionData( - functionFragment: "deposit", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "gatewayAddress", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData(functionFragment: "setName", values: [string]): string; - encodeFunctionData(functionFragment: "setSymbol", values: [string]): string; - encodeFunctionData(functionFragment: "symbol", values?: undefined): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "updateGasLimit", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "updateGatewayAddress", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "updateProtocolFlatFee", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "updateSystemContractAddress", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "withdraw", - values: [BytesLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "withdrawGasFee", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "withdrawGasFeeWithGasLimit", - values: [BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "CHAIN_ID", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "COIN_TYPE", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "FUNGIBLE_MODULE_ADDRESS", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "GAS_LIMIT", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "PROTOCOL_FLAT_FEE", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "SYSTEM_CONTRACT_ADDRESS", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "gatewayAddress", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "setName", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "setSymbol", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "updateGasLimit", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "updateGatewayAddress", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "updateProtocolFlatFee", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "updateSystemContractAddress", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "withdrawGasFee", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "withdrawGasFeeWithGasLimit", - data: BytesLike - ): Result; -} - -export namespace ApprovalEvent { - export type InputTuple = [ - owner: AddressLike, - spender: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [owner: string, spender: string, value: bigint]; - export interface OutputObject { - owner: string; - spender: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace DepositEvent { - export type InputTuple = [ - from: BytesLike, - to: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [from: string, to: string, value: bigint]; - export interface OutputObject { - from: string; - to: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace TransferEvent { - export type InputTuple = [ - from: AddressLike, - to: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [from: string, to: string, value: bigint]; - export interface OutputObject { - from: string; - to: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UpdatedGasLimitEvent { - export type InputTuple = [gasLimit: BigNumberish]; - export type OutputTuple = [gasLimit: bigint]; - export interface OutputObject { - gasLimit: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UpdatedGatewayEvent { - export type InputTuple = [gateway: AddressLike]; - export type OutputTuple = [gateway: string]; - export interface OutputObject { - gateway: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UpdatedProtocolFlatFeeEvent { - export type InputTuple = [protocolFlatFee: BigNumberish]; - export type OutputTuple = [protocolFlatFee: bigint]; - export interface OutputObject { - protocolFlatFee: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UpdatedSystemContractEvent { - export type InputTuple = [systemContract: AddressLike]; - export type OutputTuple = [systemContract: string]; - export interface OutputObject { - systemContract: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WithdrawalEvent { - export type InputTuple = [ - from: AddressLike, - to: BytesLike, - value: BigNumberish, - gasFee: BigNumberish, - protocolFlatFee: BigNumberish - ]; - export type OutputTuple = [ - from: string, - to: string, - value: bigint, - gasFee: bigint, - protocolFlatFee: bigint - ]; - export interface OutputObject { - from: string; - to: string; - value: bigint; - gasFee: bigint; - protocolFlatFee: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface ZRC20 extends BaseContract { - connect(runner?: ContractRunner | null): ZRC20; - waitForDeployment(): Promise; - - interface: ZRC20Interface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - CHAIN_ID: TypedContractMethod<[], [bigint], "view">; - - COIN_TYPE: TypedContractMethod<[], [bigint], "view">; - - FUNGIBLE_MODULE_ADDRESS: TypedContractMethod<[], [string], "view">; - - GAS_LIMIT: TypedContractMethod<[], [bigint], "view">; - - PROTOCOL_FLAT_FEE: TypedContractMethod<[], [bigint], "view">; - - SYSTEM_CONTRACT_ADDRESS: TypedContractMethod<[], [string], "view">; - - allowance: TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - - approve: TypedContractMethod< - [spender: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; - - burn: TypedContractMethod<[amount: BigNumberish], [boolean], "nonpayable">; - - decimals: TypedContractMethod<[], [bigint], "view">; - - deposit: TypedContractMethod< - [to: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - gatewayAddress: TypedContractMethod<[], [string], "view">; - - name: TypedContractMethod<[], [string], "view">; - - setName: TypedContractMethod<[newName: string], [void], "nonpayable">; - - setSymbol: TypedContractMethod<[newSymbol: string], [void], "nonpayable">; - - symbol: TypedContractMethod<[], [string], "view">; - - totalSupply: TypedContractMethod<[], [bigint], "view">; - - transfer: TypedContractMethod< - [recipient: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - transferFrom: TypedContractMethod< - [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - updateGasLimit: TypedContractMethod< - [gasLimit_: BigNumberish], - [void], - "nonpayable" - >; - - updateGatewayAddress: TypedContractMethod< - [addr: AddressLike], - [void], - "nonpayable" - >; - - updateProtocolFlatFee: TypedContractMethod< - [protocolFlatFee_: BigNumberish], - [void], - "nonpayable" - >; - - updateSystemContractAddress: TypedContractMethod< - [addr: AddressLike], - [void], - "nonpayable" - >; - - withdraw: TypedContractMethod< - [to: BytesLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - withdrawGasFee: TypedContractMethod<[], [[string, bigint]], "view">; - - withdrawGasFeeWithGasLimit: TypedContractMethod< - [gasLimit: BigNumberish], - [[string, bigint]], - "view" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "CHAIN_ID" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "COIN_TYPE" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "FUNGIBLE_MODULE_ADDRESS" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "GAS_LIMIT" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "PROTOCOL_FLAT_FEE" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "SYSTEM_CONTRACT_ADDRESS" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "allowance" - ): TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "approve" - ): TypedContractMethod< - [spender: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "balanceOf" - ): TypedContractMethod<[account: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "burn" - ): TypedContractMethod<[amount: BigNumberish], [boolean], "nonpayable">; - getFunction( - nameOrSignature: "decimals" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "deposit" - ): TypedContractMethod< - [to: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "gatewayAddress" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "name" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "setName" - ): TypedContractMethod<[newName: string], [void], "nonpayable">; - getFunction( - nameOrSignature: "setSymbol" - ): TypedContractMethod<[newSymbol: string], [void], "nonpayable">; - getFunction( - nameOrSignature: "symbol" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "totalSupply" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "transfer" - ): TypedContractMethod< - [recipient: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "transferFrom" - ): TypedContractMethod< - [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "updateGasLimit" - ): TypedContractMethod<[gasLimit_: BigNumberish], [void], "nonpayable">; - getFunction( - nameOrSignature: "updateGatewayAddress" - ): TypedContractMethod<[addr: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "updateProtocolFlatFee" - ): TypedContractMethod< - [protocolFlatFee_: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "updateSystemContractAddress" - ): TypedContractMethod<[addr: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "withdraw" - ): TypedContractMethod< - [to: BytesLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdrawGasFee" - ): TypedContractMethod<[], [[string, bigint]], "view">; - getFunction( - nameOrSignature: "withdrawGasFeeWithGasLimit" - ): TypedContractMethod<[gasLimit: BigNumberish], [[string, bigint]], "view">; - - getEvent( - key: "Approval" - ): TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - getEvent( - key: "Deposit" - ): TypedContractEvent< - DepositEvent.InputTuple, - DepositEvent.OutputTuple, - DepositEvent.OutputObject - >; - getEvent( - key: "Transfer" - ): TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - getEvent( - key: "UpdatedGasLimit" - ): TypedContractEvent< - UpdatedGasLimitEvent.InputTuple, - UpdatedGasLimitEvent.OutputTuple, - UpdatedGasLimitEvent.OutputObject - >; - getEvent( - key: "UpdatedGateway" - ): TypedContractEvent< - UpdatedGatewayEvent.InputTuple, - UpdatedGatewayEvent.OutputTuple, - UpdatedGatewayEvent.OutputObject - >; - getEvent( - key: "UpdatedProtocolFlatFee" - ): TypedContractEvent< - UpdatedProtocolFlatFeeEvent.InputTuple, - UpdatedProtocolFlatFeeEvent.OutputTuple, - UpdatedProtocolFlatFeeEvent.OutputObject - >; - getEvent( - key: "UpdatedSystemContract" - ): TypedContractEvent< - UpdatedSystemContractEvent.InputTuple, - UpdatedSystemContractEvent.OutputTuple, - UpdatedSystemContractEvent.OutputObject - >; - getEvent( - key: "Withdrawal" - ): TypedContractEvent< - WithdrawalEvent.InputTuple, - WithdrawalEvent.OutputTuple, - WithdrawalEvent.OutputObject - >; - - filters: { - "Approval(address,address,uint256)": TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - Approval: TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - - "Deposit(bytes,address,uint256)": TypedContractEvent< - DepositEvent.InputTuple, - DepositEvent.OutputTuple, - DepositEvent.OutputObject - >; - Deposit: TypedContractEvent< - DepositEvent.InputTuple, - DepositEvent.OutputTuple, - DepositEvent.OutputObject - >; - - "Transfer(address,address,uint256)": TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - Transfer: TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - - "UpdatedGasLimit(uint256)": TypedContractEvent< - UpdatedGasLimitEvent.InputTuple, - UpdatedGasLimitEvent.OutputTuple, - UpdatedGasLimitEvent.OutputObject - >; - UpdatedGasLimit: TypedContractEvent< - UpdatedGasLimitEvent.InputTuple, - UpdatedGasLimitEvent.OutputTuple, - UpdatedGasLimitEvent.OutputObject - >; - - "UpdatedGateway(address)": TypedContractEvent< - UpdatedGatewayEvent.InputTuple, - UpdatedGatewayEvent.OutputTuple, - UpdatedGatewayEvent.OutputObject - >; - UpdatedGateway: TypedContractEvent< - UpdatedGatewayEvent.InputTuple, - UpdatedGatewayEvent.OutputTuple, - UpdatedGatewayEvent.OutputObject - >; - - "UpdatedProtocolFlatFee(uint256)": TypedContractEvent< - UpdatedProtocolFlatFeeEvent.InputTuple, - UpdatedProtocolFlatFeeEvent.OutputTuple, - UpdatedProtocolFlatFeeEvent.OutputObject - >; - UpdatedProtocolFlatFee: TypedContractEvent< - UpdatedProtocolFlatFeeEvent.InputTuple, - UpdatedProtocolFlatFeeEvent.OutputTuple, - UpdatedProtocolFlatFeeEvent.OutputObject - >; - - "UpdatedSystemContract(address)": TypedContractEvent< - UpdatedSystemContractEvent.InputTuple, - UpdatedSystemContractEvent.OutputTuple, - UpdatedSystemContractEvent.OutputObject - >; - UpdatedSystemContract: TypedContractEvent< - UpdatedSystemContractEvent.InputTuple, - UpdatedSystemContractEvent.OutputTuple, - UpdatedSystemContractEvent.OutputObject - >; - - "Withdrawal(address,bytes,uint256,uint256,uint256)": TypedContractEvent< - WithdrawalEvent.InputTuple, - WithdrawalEvent.OutputTuple, - WithdrawalEvent.OutputObject - >; - Withdrawal: TypedContractEvent< - WithdrawalEvent.InputTuple, - WithdrawalEvent.OutputTuple, - WithdrawalEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20Errors.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20Errors.ts deleted file mode 100644 index 7e52810a..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20Errors.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - FunctionFragment, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, -} from "../../../../../common"; - -export interface ZRC20ErrorsInterface extends Interface {} - -export interface ZRC20Errors extends BaseContract { - connect(runner?: ContractRunner | null): ZRC20Errors; - waitForDeployment(): Promise; - - interface: ZRC20ErrorsInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - filters: {}; -} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/index.ts deleted file mode 100644 index 0a005122..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { ZRC20 } from "./ZRC20"; -export type { ZRC20Errors } from "./ZRC20Errors"; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/index.ts deleted file mode 100644 index 007d930b..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/index.ts +++ /dev/null @@ -1,12 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as systemContractSol from "./SystemContract.sol"; -export type { systemContractSol }; -import type * as wzetaSol from "./WZETA.sol"; -export type { wzetaSol }; -import type * as zrc20Sol from "./ZRC20.sol"; -export type { zrc20Sol }; -import type * as interfaces from "./interfaces"; -export type { interfaces }; -export type { GatewayZEVM } from "./GatewayZEVM"; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVM.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVM.ts deleted file mode 100644 index 4fa36464..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVM.ts +++ /dev/null @@ -1,686 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../../../../common"; - -export type CallOptionsStruct = { - gasLimit: BigNumberish; - isArbitraryCall: boolean; -}; - -export type CallOptionsStructOutput = [ - gasLimit: bigint, - isArbitraryCall: boolean -] & { gasLimit: bigint; isArbitraryCall: boolean }; - -export type RevertOptionsStruct = { - revertAddress: AddressLike; - callOnRevert: boolean; - abortAddress: AddressLike; - revertMessage: BytesLike; - onRevertGasLimit: BigNumberish; -}; - -export type RevertOptionsStructOutput = [ - revertAddress: string, - callOnRevert: boolean, - abortAddress: string, - revertMessage: string, - onRevertGasLimit: bigint -] & { - revertAddress: string; - callOnRevert: boolean; - abortAddress: string; - revertMessage: string; - onRevertGasLimit: bigint; -}; - -export type MessageContextStruct = { - sender: BytesLike; - senderEVM: AddressLike; - chainID: BigNumberish; -}; - -export type MessageContextStructOutput = [ - sender: string, - senderEVM: string, - chainID: bigint -] & { sender: string; senderEVM: string; chainID: bigint }; - -export type RevertContextStruct = { - sender: AddressLike; - asset: AddressLike; - amount: BigNumberish; - revertMessage: BytesLike; -}; - -export type RevertContextStructOutput = [ - sender: string, - asset: string, - amount: bigint, - revertMessage: string -] & { sender: string; asset: string; amount: bigint; revertMessage: string }; - -export interface IGatewayZEVMInterface extends Interface { - getFunction( - nameOrSignature: - | "call" - | "deposit" - | "depositAndCall((bytes,address,uint256),uint256,address,bytes)" - | "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)" - | "depositAndRevert" - | "execute" - | "executeRevert" - | "withdraw(bytes,uint256,address,(address,bool,address,bytes,uint256))" - | "withdraw(bytes,uint256,uint256,(address,bool,address,bytes,uint256))" - | "withdrawAndCall(bytes,uint256,uint256,bytes,(uint256,bool),(address,bool,address,bytes,uint256))" - | "withdrawAndCall(bytes,uint256,address,bytes,(uint256,bool),(address,bool,address,bytes,uint256))" - ): FunctionFragment; - - getEvent( - nameOrSignatureOrTopic: "Called" | "Withdrawn" | "WithdrawnAndCalled" - ): EventFragment; - - encodeFunctionData( - functionFragment: "call", - values: [ - BytesLike, - AddressLike, - BytesLike, - CallOptionsStruct, - RevertOptionsStruct - ] - ): string; - encodeFunctionData( - functionFragment: "deposit", - values: [AddressLike, BigNumberish, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "depositAndCall((bytes,address,uint256),uint256,address,bytes)", - values: [MessageContextStruct, BigNumberish, AddressLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)", - values: [ - MessageContextStruct, - AddressLike, - BigNumberish, - AddressLike, - BytesLike - ] - ): string; - encodeFunctionData( - functionFragment: "depositAndRevert", - values: [AddressLike, BigNumberish, AddressLike, RevertContextStruct] - ): string; - encodeFunctionData( - functionFragment: "execute", - values: [ - MessageContextStruct, - AddressLike, - BigNumberish, - AddressLike, - BytesLike - ] - ): string; - encodeFunctionData( - functionFragment: "executeRevert", - values: [AddressLike, RevertContextStruct] - ): string; - encodeFunctionData( - functionFragment: "withdraw(bytes,uint256,address,(address,bool,address,bytes,uint256))", - values: [BytesLike, BigNumberish, AddressLike, RevertOptionsStruct] - ): string; - encodeFunctionData( - functionFragment: "withdraw(bytes,uint256,uint256,(address,bool,address,bytes,uint256))", - values: [BytesLike, BigNumberish, BigNumberish, RevertOptionsStruct] - ): string; - encodeFunctionData( - functionFragment: "withdrawAndCall(bytes,uint256,uint256,bytes,(uint256,bool),(address,bool,address,bytes,uint256))", - values: [ - BytesLike, - BigNumberish, - BigNumberish, - BytesLike, - CallOptionsStruct, - RevertOptionsStruct - ] - ): string; - encodeFunctionData( - functionFragment: "withdrawAndCall(bytes,uint256,address,bytes,(uint256,bool),(address,bool,address,bytes,uint256))", - values: [ - BytesLike, - BigNumberish, - AddressLike, - BytesLike, - CallOptionsStruct, - RevertOptionsStruct - ] - ): string; - - decodeFunctionResult(functionFragment: "call", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "depositAndCall((bytes,address,uint256),uint256,address,bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "depositAndRevert", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "execute", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "executeRevert", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "withdraw(bytes,uint256,address,(address,bool,address,bytes,uint256))", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "withdraw(bytes,uint256,uint256,(address,bool,address,bytes,uint256))", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "withdrawAndCall(bytes,uint256,uint256,bytes,(uint256,bool),(address,bool,address,bytes,uint256))", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "withdrawAndCall(bytes,uint256,address,bytes,(uint256,bool),(address,bool,address,bytes,uint256))", - data: BytesLike - ): Result; -} - -export namespace CalledEvent { - export type InputTuple = [ - sender: AddressLike, - zrc20: AddressLike, - receiver: BytesLike, - message: BytesLike, - callOptions: CallOptionsStruct, - revertOptions: RevertOptionsStruct - ]; - export type OutputTuple = [ - sender: string, - zrc20: string, - receiver: string, - message: string, - callOptions: CallOptionsStructOutput, - revertOptions: RevertOptionsStructOutput - ]; - export interface OutputObject { - sender: string; - zrc20: string; - receiver: string; - message: string; - callOptions: CallOptionsStructOutput; - revertOptions: RevertOptionsStructOutput; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WithdrawnEvent { - export type InputTuple = [ - sender: AddressLike, - chainId: BigNumberish, - receiver: BytesLike, - zrc20: AddressLike, - value: BigNumberish, - gasfee: BigNumberish, - protocolFlatFee: BigNumberish, - message: BytesLike, - callOptions: CallOptionsStruct, - revertOptions: RevertOptionsStruct - ]; - export type OutputTuple = [ - sender: string, - chainId: bigint, - receiver: string, - zrc20: string, - value: bigint, - gasfee: bigint, - protocolFlatFee: bigint, - message: string, - callOptions: CallOptionsStructOutput, - revertOptions: RevertOptionsStructOutput - ]; - export interface OutputObject { - sender: string; - chainId: bigint; - receiver: string; - zrc20: string; - value: bigint; - gasfee: bigint; - protocolFlatFee: bigint; - message: string; - callOptions: CallOptionsStructOutput; - revertOptions: RevertOptionsStructOutput; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WithdrawnAndCalledEvent { - export type InputTuple = [ - sender: AddressLike, - chainId: BigNumberish, - receiver: BytesLike, - zrc20: AddressLike, - value: BigNumberish, - gasfee: BigNumberish, - protocolFlatFee: BigNumberish, - message: BytesLike, - callOptions: CallOptionsStruct, - revertOptions: RevertOptionsStruct - ]; - export type OutputTuple = [ - sender: string, - chainId: bigint, - receiver: string, - zrc20: string, - value: bigint, - gasfee: bigint, - protocolFlatFee: bigint, - message: string, - callOptions: CallOptionsStructOutput, - revertOptions: RevertOptionsStructOutput - ]; - export interface OutputObject { - sender: string; - chainId: bigint; - receiver: string; - zrc20: string; - value: bigint; - gasfee: bigint; - protocolFlatFee: bigint; - message: string; - callOptions: CallOptionsStructOutput; - revertOptions: RevertOptionsStructOutput; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface IGatewayZEVM extends BaseContract { - connect(runner?: ContractRunner | null): IGatewayZEVM; - waitForDeployment(): Promise; - - interface: IGatewayZEVMInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - call: TypedContractMethod< - [ - receiver: BytesLike, - zrc20: AddressLike, - message: BytesLike, - callOptions: CallOptionsStruct, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - - deposit: TypedContractMethod< - [zrc20: AddressLike, amount: BigNumberish, target: AddressLike], - [void], - "nonpayable" - >; - - "depositAndCall((bytes,address,uint256),uint256,address,bytes)": TypedContractMethod< - [ - context: MessageContextStruct, - amount: BigNumberish, - target: AddressLike, - message: BytesLike - ], - [void], - "nonpayable" - >; - - "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)": TypedContractMethod< - [ - context: MessageContextStruct, - zrc20: AddressLike, - amount: BigNumberish, - target: AddressLike, - message: BytesLike - ], - [void], - "nonpayable" - >; - - depositAndRevert: TypedContractMethod< - [ - zrc20: AddressLike, - amount: BigNumberish, - target: AddressLike, - revertContext: RevertContextStruct - ], - [void], - "nonpayable" - >; - - execute: TypedContractMethod< - [ - context: MessageContextStruct, - zrc20: AddressLike, - amount: BigNumberish, - target: AddressLike, - message: BytesLike - ], - [void], - "nonpayable" - >; - - executeRevert: TypedContractMethod< - [target: AddressLike, revertContext: RevertContextStruct], - [void], - "nonpayable" - >; - - "withdraw(bytes,uint256,address,(address,bool,address,bytes,uint256))": TypedContractMethod< - [ - receiver: BytesLike, - amount: BigNumberish, - zrc20: AddressLike, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - - "withdraw(bytes,uint256,uint256,(address,bool,address,bytes,uint256))": TypedContractMethod< - [ - receiver: BytesLike, - amount: BigNumberish, - chainId: BigNumberish, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - - "withdrawAndCall(bytes,uint256,uint256,bytes,(uint256,bool),(address,bool,address,bytes,uint256))": TypedContractMethod< - [ - receiver: BytesLike, - amount: BigNumberish, - chainId: BigNumberish, - message: BytesLike, - callOptions: CallOptionsStruct, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - - "withdrawAndCall(bytes,uint256,address,bytes,(uint256,bool),(address,bool,address,bytes,uint256))": TypedContractMethod< - [ - receiver: BytesLike, - amount: BigNumberish, - zrc20: AddressLike, - message: BytesLike, - callOptions: CallOptionsStruct, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "call" - ): TypedContractMethod< - [ - receiver: BytesLike, - zrc20: AddressLike, - message: BytesLike, - callOptions: CallOptionsStruct, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "deposit" - ): TypedContractMethod< - [zrc20: AddressLike, amount: BigNumberish, target: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "depositAndCall((bytes,address,uint256),uint256,address,bytes)" - ): TypedContractMethod< - [ - context: MessageContextStruct, - amount: BigNumberish, - target: AddressLike, - message: BytesLike - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)" - ): TypedContractMethod< - [ - context: MessageContextStruct, - zrc20: AddressLike, - amount: BigNumberish, - target: AddressLike, - message: BytesLike - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "depositAndRevert" - ): TypedContractMethod< - [ - zrc20: AddressLike, - amount: BigNumberish, - target: AddressLike, - revertContext: RevertContextStruct - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "execute" - ): TypedContractMethod< - [ - context: MessageContextStruct, - zrc20: AddressLike, - amount: BigNumberish, - target: AddressLike, - message: BytesLike - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "executeRevert" - ): TypedContractMethod< - [target: AddressLike, revertContext: RevertContextStruct], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdraw(bytes,uint256,address,(address,bool,address,bytes,uint256))" - ): TypedContractMethod< - [ - receiver: BytesLike, - amount: BigNumberish, - zrc20: AddressLike, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdraw(bytes,uint256,uint256,(address,bool,address,bytes,uint256))" - ): TypedContractMethod< - [ - receiver: BytesLike, - amount: BigNumberish, - chainId: BigNumberish, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdrawAndCall(bytes,uint256,uint256,bytes,(uint256,bool),(address,bool,address,bytes,uint256))" - ): TypedContractMethod< - [ - receiver: BytesLike, - amount: BigNumberish, - chainId: BigNumberish, - message: BytesLike, - callOptions: CallOptionsStruct, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdrawAndCall(bytes,uint256,address,bytes,(uint256,bool),(address,bool,address,bytes,uint256))" - ): TypedContractMethod< - [ - receiver: BytesLike, - amount: BigNumberish, - zrc20: AddressLike, - message: BytesLike, - callOptions: CallOptionsStruct, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - - getEvent( - key: "Called" - ): TypedContractEvent< - CalledEvent.InputTuple, - CalledEvent.OutputTuple, - CalledEvent.OutputObject - >; - getEvent( - key: "Withdrawn" - ): TypedContractEvent< - WithdrawnEvent.InputTuple, - WithdrawnEvent.OutputTuple, - WithdrawnEvent.OutputObject - >; - getEvent( - key: "WithdrawnAndCalled" - ): TypedContractEvent< - WithdrawnAndCalledEvent.InputTuple, - WithdrawnAndCalledEvent.OutputTuple, - WithdrawnAndCalledEvent.OutputObject - >; - - filters: { - "Called(address,address,bytes,bytes,tuple,tuple)": TypedContractEvent< - CalledEvent.InputTuple, - CalledEvent.OutputTuple, - CalledEvent.OutputObject - >; - Called: TypedContractEvent< - CalledEvent.InputTuple, - CalledEvent.OutputTuple, - CalledEvent.OutputObject - >; - - "Withdrawn(address,uint256,bytes,address,uint256,uint256,uint256,bytes,tuple,tuple)": TypedContractEvent< - WithdrawnEvent.InputTuple, - WithdrawnEvent.OutputTuple, - WithdrawnEvent.OutputObject - >; - Withdrawn: TypedContractEvent< - WithdrawnEvent.InputTuple, - WithdrawnEvent.OutputTuple, - WithdrawnEvent.OutputObject - >; - - "WithdrawnAndCalled(address,uint256,bytes,address,uint256,uint256,uint256,bytes,tuple,tuple)": TypedContractEvent< - WithdrawnAndCalledEvent.InputTuple, - WithdrawnAndCalledEvent.OutputTuple, - WithdrawnAndCalledEvent.OutputObject - >; - WithdrawnAndCalled: TypedContractEvent< - WithdrawnAndCalledEvent.InputTuple, - WithdrawnAndCalledEvent.OutputTuple, - WithdrawnAndCalledEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMErrors.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMErrors.ts deleted file mode 100644 index 48b4b0ea..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMErrors.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - FunctionFragment, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, -} from "../../../../../../common"; - -export interface IGatewayZEVMErrorsInterface extends Interface {} - -export interface IGatewayZEVMErrors extends BaseContract { - connect(runner?: ContractRunner | null): IGatewayZEVMErrors; - waitForDeployment(): Promise; - - interface: IGatewayZEVMErrorsInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - filters: {}; -} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMEvents.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMEvents.ts deleted file mode 100644 index 91f48741..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMEvents.ts +++ /dev/null @@ -1,282 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, -} from "../../../../../../common"; - -export type CallOptionsStruct = { - gasLimit: BigNumberish; - isArbitraryCall: boolean; -}; - -export type CallOptionsStructOutput = [ - gasLimit: bigint, - isArbitraryCall: boolean -] & { gasLimit: bigint; isArbitraryCall: boolean }; - -export type RevertOptionsStruct = { - revertAddress: AddressLike; - callOnRevert: boolean; - abortAddress: AddressLike; - revertMessage: BytesLike; - onRevertGasLimit: BigNumberish; -}; - -export type RevertOptionsStructOutput = [ - revertAddress: string, - callOnRevert: boolean, - abortAddress: string, - revertMessage: string, - onRevertGasLimit: bigint -] & { - revertAddress: string; - callOnRevert: boolean; - abortAddress: string; - revertMessage: string; - onRevertGasLimit: bigint; -}; - -export interface IGatewayZEVMEventsInterface extends Interface { - getEvent( - nameOrSignatureOrTopic: "Called" | "Withdrawn" | "WithdrawnAndCalled" - ): EventFragment; -} - -export namespace CalledEvent { - export type InputTuple = [ - sender: AddressLike, - zrc20: AddressLike, - receiver: BytesLike, - message: BytesLike, - callOptions: CallOptionsStruct, - revertOptions: RevertOptionsStruct - ]; - export type OutputTuple = [ - sender: string, - zrc20: string, - receiver: string, - message: string, - callOptions: CallOptionsStructOutput, - revertOptions: RevertOptionsStructOutput - ]; - export interface OutputObject { - sender: string; - zrc20: string; - receiver: string; - message: string; - callOptions: CallOptionsStructOutput; - revertOptions: RevertOptionsStructOutput; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WithdrawnEvent { - export type InputTuple = [ - sender: AddressLike, - chainId: BigNumberish, - receiver: BytesLike, - zrc20: AddressLike, - value: BigNumberish, - gasfee: BigNumberish, - protocolFlatFee: BigNumberish, - message: BytesLike, - callOptions: CallOptionsStruct, - revertOptions: RevertOptionsStruct - ]; - export type OutputTuple = [ - sender: string, - chainId: bigint, - receiver: string, - zrc20: string, - value: bigint, - gasfee: bigint, - protocolFlatFee: bigint, - message: string, - callOptions: CallOptionsStructOutput, - revertOptions: RevertOptionsStructOutput - ]; - export interface OutputObject { - sender: string; - chainId: bigint; - receiver: string; - zrc20: string; - value: bigint; - gasfee: bigint; - protocolFlatFee: bigint; - message: string; - callOptions: CallOptionsStructOutput; - revertOptions: RevertOptionsStructOutput; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WithdrawnAndCalledEvent { - export type InputTuple = [ - sender: AddressLike, - chainId: BigNumberish, - receiver: BytesLike, - zrc20: AddressLike, - value: BigNumberish, - gasfee: BigNumberish, - protocolFlatFee: BigNumberish, - message: BytesLike, - callOptions: CallOptionsStruct, - revertOptions: RevertOptionsStruct - ]; - export type OutputTuple = [ - sender: string, - chainId: bigint, - receiver: string, - zrc20: string, - value: bigint, - gasfee: bigint, - protocolFlatFee: bigint, - message: string, - callOptions: CallOptionsStructOutput, - revertOptions: RevertOptionsStructOutput - ]; - export interface OutputObject { - sender: string; - chainId: bigint; - receiver: string; - zrc20: string; - value: bigint; - gasfee: bigint; - protocolFlatFee: bigint; - message: string; - callOptions: CallOptionsStructOutput; - revertOptions: RevertOptionsStructOutput; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface IGatewayZEVMEvents extends BaseContract { - connect(runner?: ContractRunner | null): IGatewayZEVMEvents; - waitForDeployment(): Promise; - - interface: IGatewayZEVMEventsInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - getEvent( - key: "Called" - ): TypedContractEvent< - CalledEvent.InputTuple, - CalledEvent.OutputTuple, - CalledEvent.OutputObject - >; - getEvent( - key: "Withdrawn" - ): TypedContractEvent< - WithdrawnEvent.InputTuple, - WithdrawnEvent.OutputTuple, - WithdrawnEvent.OutputObject - >; - getEvent( - key: "WithdrawnAndCalled" - ): TypedContractEvent< - WithdrawnAndCalledEvent.InputTuple, - WithdrawnAndCalledEvent.OutputTuple, - WithdrawnAndCalledEvent.OutputObject - >; - - filters: { - "Called(address,address,bytes,bytes,tuple,tuple)": TypedContractEvent< - CalledEvent.InputTuple, - CalledEvent.OutputTuple, - CalledEvent.OutputObject - >; - Called: TypedContractEvent< - CalledEvent.InputTuple, - CalledEvent.OutputTuple, - CalledEvent.OutputObject - >; - - "Withdrawn(address,uint256,bytes,address,uint256,uint256,uint256,bytes,tuple,tuple)": TypedContractEvent< - WithdrawnEvent.InputTuple, - WithdrawnEvent.OutputTuple, - WithdrawnEvent.OutputObject - >; - Withdrawn: TypedContractEvent< - WithdrawnEvent.InputTuple, - WithdrawnEvent.OutputTuple, - WithdrawnEvent.OutputObject - >; - - "WithdrawnAndCalled(address,uint256,bytes,address,uint256,uint256,uint256,bytes,tuple,tuple)": TypedContractEvent< - WithdrawnAndCalledEvent.InputTuple, - WithdrawnAndCalledEvent.OutputTuple, - WithdrawnAndCalledEvent.OutputObject - >; - WithdrawnAndCalled: TypedContractEvent< - WithdrawnAndCalledEvent.InputTuple, - WithdrawnAndCalledEvent.OutputTuple, - WithdrawnAndCalledEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/index.ts deleted file mode 100644 index 736bdfc6..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { IGatewayZEVM } from "./IGatewayZEVM"; -export type { IGatewayZEVMErrors } from "./IGatewayZEVMErrors"; -export type { IGatewayZEVMEvents } from "./IGatewayZEVMEvents"; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/ISystem.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/ISystem.ts deleted file mode 100644 index 70aad4b1..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/ISystem.ts +++ /dev/null @@ -1,176 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../../../../common"; - -export interface ISystemInterface extends Interface { - getFunction( - nameOrSignature: - | "FUNGIBLE_MODULE_ADDRESS" - | "gasCoinZRC20ByChainId" - | "gasPriceByChainId" - | "gasZetaPoolByChainId" - | "uniswapv2FactoryAddress" - | "wZetaContractAddress" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "FUNGIBLE_MODULE_ADDRESS", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "gasCoinZRC20ByChainId", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "gasPriceByChainId", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "gasZetaPoolByChainId", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "uniswapv2FactoryAddress", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "wZetaContractAddress", - values?: undefined - ): string; - - decodeFunctionResult( - functionFragment: "FUNGIBLE_MODULE_ADDRESS", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "gasCoinZRC20ByChainId", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "gasPriceByChainId", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "gasZetaPoolByChainId", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "uniswapv2FactoryAddress", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "wZetaContractAddress", - data: BytesLike - ): Result; -} - -export interface ISystem extends BaseContract { - connect(runner?: ContractRunner | null): ISystem; - waitForDeployment(): Promise; - - interface: ISystemInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - FUNGIBLE_MODULE_ADDRESS: TypedContractMethod<[], [string], "view">; - - gasCoinZRC20ByChainId: TypedContractMethod< - [chainID: BigNumberish], - [string], - "view" - >; - - gasPriceByChainId: TypedContractMethod< - [chainID: BigNumberish], - [bigint], - "view" - >; - - gasZetaPoolByChainId: TypedContractMethod< - [chainID: BigNumberish], - [string], - "view" - >; - - uniswapv2FactoryAddress: TypedContractMethod<[], [string], "view">; - - wZetaContractAddress: TypedContractMethod<[], [string], "view">; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "FUNGIBLE_MODULE_ADDRESS" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "gasCoinZRC20ByChainId" - ): TypedContractMethod<[chainID: BigNumberish], [string], "view">; - getFunction( - nameOrSignature: "gasPriceByChainId" - ): TypedContractMethod<[chainID: BigNumberish], [bigint], "view">; - getFunction( - nameOrSignature: "gasZetaPoolByChainId" - ): TypedContractMethod<[chainID: BigNumberish], [string], "view">; - getFunction( - nameOrSignature: "uniswapv2FactoryAddress" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "wZetaContractAddress" - ): TypedContractMethod<[], [string], "view">; - - filters: {}; -} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/IWETH9.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/IWETH9.ts deleted file mode 100644 index 59e96e8d..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/IWETH9.ts +++ /dev/null @@ -1,345 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../../../../common"; - -export interface IWETH9Interface extends Interface { - getFunction( - nameOrSignature: - | "allowance" - | "approve" - | "balanceOf" - | "deposit" - | "totalSupply" - | "transfer" - | "transferFrom" - | "withdraw" - ): FunctionFragment; - - getEvent( - nameOrSignatureOrTopic: "Approval" | "Deposit" | "Transfer" | "Withdrawal" - ): EventFragment; - - encodeFunctionData( - functionFragment: "allowance", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [AddressLike] - ): string; - encodeFunctionData(functionFragment: "deposit", values?: undefined): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "withdraw", - values: [BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; -} - -export namespace ApprovalEvent { - export type InputTuple = [ - owner: AddressLike, - spender: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [owner: string, spender: string, value: bigint]; - export interface OutputObject { - owner: string; - spender: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace DepositEvent { - export type InputTuple = [dst: AddressLike, wad: BigNumberish]; - export type OutputTuple = [dst: string, wad: bigint]; - export interface OutputObject { - dst: string; - wad: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace TransferEvent { - export type InputTuple = [ - from: AddressLike, - to: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [from: string, to: string, value: bigint]; - export interface OutputObject { - from: string; - to: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WithdrawalEvent { - export type InputTuple = [src: AddressLike, wad: BigNumberish]; - export type OutputTuple = [src: string, wad: bigint]; - export interface OutputObject { - src: string; - wad: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface IWETH9 extends BaseContract { - connect(runner?: ContractRunner | null): IWETH9; - waitForDeployment(): Promise; - - interface: IWETH9Interface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - allowance: TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - - approve: TypedContractMethod< - [spender: AddressLike, wad: BigNumberish], - [boolean], - "nonpayable" - >; - - balanceOf: TypedContractMethod<[owner: AddressLike], [bigint], "view">; - - deposit: TypedContractMethod<[], [void], "payable">; - - totalSupply: TypedContractMethod<[], [bigint], "view">; - - transfer: TypedContractMethod< - [to: AddressLike, wad: BigNumberish], - [boolean], - "nonpayable" - >; - - transferFrom: TypedContractMethod< - [from: AddressLike, to: AddressLike, wad: BigNumberish], - [boolean], - "nonpayable" - >; - - withdraw: TypedContractMethod<[wad: BigNumberish], [void], "nonpayable">; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "allowance" - ): TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "approve" - ): TypedContractMethod< - [spender: AddressLike, wad: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "balanceOf" - ): TypedContractMethod<[owner: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "deposit" - ): TypedContractMethod<[], [void], "payable">; - getFunction( - nameOrSignature: "totalSupply" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "transfer" - ): TypedContractMethod< - [to: AddressLike, wad: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "transferFrom" - ): TypedContractMethod< - [from: AddressLike, to: AddressLike, wad: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdraw" - ): TypedContractMethod<[wad: BigNumberish], [void], "nonpayable">; - - getEvent( - key: "Approval" - ): TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - getEvent( - key: "Deposit" - ): TypedContractEvent< - DepositEvent.InputTuple, - DepositEvent.OutputTuple, - DepositEvent.OutputObject - >; - getEvent( - key: "Transfer" - ): TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - getEvent( - key: "Withdrawal" - ): TypedContractEvent< - WithdrawalEvent.InputTuple, - WithdrawalEvent.OutputTuple, - WithdrawalEvent.OutputObject - >; - - filters: { - "Approval(address,address,uint256)": TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - Approval: TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - - "Deposit(address,uint256)": TypedContractEvent< - DepositEvent.InputTuple, - DepositEvent.OutputTuple, - DepositEvent.OutputObject - >; - Deposit: TypedContractEvent< - DepositEvent.InputTuple, - DepositEvent.OutputTuple, - DepositEvent.OutputObject - >; - - "Transfer(address,address,uint256)": TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - Transfer: TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - - "Withdrawal(address,uint256)": TypedContractEvent< - WithdrawalEvent.InputTuple, - WithdrawalEvent.OutputTuple, - WithdrawalEvent.OutputObject - >; - Withdrawal: TypedContractEvent< - WithdrawalEvent.InputTuple, - WithdrawalEvent.OutputTuple, - WithdrawalEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/index.ts deleted file mode 100644 index 95069327..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { IWETH9 } from "./IWETH9"; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20.ts deleted file mode 100644 index 2c976c2b..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20.ts +++ /dev/null @@ -1,301 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../../../../../common"; - -export interface IZRC20Interface extends Interface { - getFunction( - nameOrSignature: - | "GAS_LIMIT" - | "PROTOCOL_FLAT_FEE" - | "allowance" - | "approve" - | "balanceOf" - | "burn" - | "deposit" - | "setName" - | "setSymbol" - | "totalSupply" - | "transfer" - | "transferFrom" - | "withdraw" - | "withdrawGasFee" - | "withdrawGasFeeWithGasLimit" - ): FunctionFragment; - - encodeFunctionData(functionFragment: "GAS_LIMIT", values?: undefined): string; - encodeFunctionData( - functionFragment: "PROTOCOL_FLAT_FEE", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "allowance", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [AddressLike] - ): string; - encodeFunctionData(functionFragment: "burn", values: [BigNumberish]): string; - encodeFunctionData( - functionFragment: "deposit", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData(functionFragment: "setName", values: [string]): string; - encodeFunctionData(functionFragment: "setSymbol", values: [string]): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "withdraw", - values: [BytesLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "withdrawGasFee", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "withdrawGasFeeWithGasLimit", - values: [BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "GAS_LIMIT", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "PROTOCOL_FLAT_FEE", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "setName", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "setSymbol", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "withdrawGasFee", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "withdrawGasFeeWithGasLimit", - data: BytesLike - ): Result; -} - -export interface IZRC20 extends BaseContract { - connect(runner?: ContractRunner | null): IZRC20; - waitForDeployment(): Promise; - - interface: IZRC20Interface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - GAS_LIMIT: TypedContractMethod<[], [bigint], "view">; - - PROTOCOL_FLAT_FEE: TypedContractMethod<[], [bigint], "view">; - - allowance: TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - - approve: TypedContractMethod< - [spender: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; - - burn: TypedContractMethod<[amount: BigNumberish], [boolean], "nonpayable">; - - deposit: TypedContractMethod< - [to: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - setName: TypedContractMethod<[newName: string], [void], "nonpayable">; - - setSymbol: TypedContractMethod<[newSymbol: string], [void], "nonpayable">; - - totalSupply: TypedContractMethod<[], [bigint], "view">; - - transfer: TypedContractMethod< - [recipient: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - transferFrom: TypedContractMethod< - [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - withdraw: TypedContractMethod< - [to: BytesLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - withdrawGasFee: TypedContractMethod<[], [[string, bigint]], "view">; - - withdrawGasFeeWithGasLimit: TypedContractMethod< - [gasLimit: BigNumberish], - [[string, bigint]], - "view" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "GAS_LIMIT" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "PROTOCOL_FLAT_FEE" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "allowance" - ): TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "approve" - ): TypedContractMethod< - [spender: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "balanceOf" - ): TypedContractMethod<[account: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "burn" - ): TypedContractMethod<[amount: BigNumberish], [boolean], "nonpayable">; - getFunction( - nameOrSignature: "deposit" - ): TypedContractMethod< - [to: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "setName" - ): TypedContractMethod<[newName: string], [void], "nonpayable">; - getFunction( - nameOrSignature: "setSymbol" - ): TypedContractMethod<[newSymbol: string], [void], "nonpayable">; - getFunction( - nameOrSignature: "totalSupply" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "transfer" - ): TypedContractMethod< - [recipient: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "transferFrom" - ): TypedContractMethod< - [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdraw" - ): TypedContractMethod< - [to: BytesLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdrawGasFee" - ): TypedContractMethod<[], [[string, bigint]], "view">; - getFunction( - nameOrSignature: "withdrawGasFeeWithGasLimit" - ): TypedContractMethod<[gasLimit: BigNumberish], [[string, bigint]], "view">; - - filters: {}; -} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata.ts deleted file mode 100644 index fcb32db1..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata.ts +++ /dev/null @@ -1,325 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../../../../../common"; - -export interface IZRC20MetadataInterface extends Interface { - getFunction( - nameOrSignature: - | "GAS_LIMIT" - | "PROTOCOL_FLAT_FEE" - | "allowance" - | "approve" - | "balanceOf" - | "burn" - | "decimals" - | "deposit" - | "name" - | "setName" - | "setSymbol" - | "symbol" - | "totalSupply" - | "transfer" - | "transferFrom" - | "withdraw" - | "withdrawGasFee" - | "withdrawGasFeeWithGasLimit" - ): FunctionFragment; - - encodeFunctionData(functionFragment: "GAS_LIMIT", values?: undefined): string; - encodeFunctionData( - functionFragment: "PROTOCOL_FLAT_FEE", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "allowance", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [AddressLike] - ): string; - encodeFunctionData(functionFragment: "burn", values: [BigNumberish]): string; - encodeFunctionData(functionFragment: "decimals", values?: undefined): string; - encodeFunctionData( - functionFragment: "deposit", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData(functionFragment: "setName", values: [string]): string; - encodeFunctionData(functionFragment: "setSymbol", values: [string]): string; - encodeFunctionData(functionFragment: "symbol", values?: undefined): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "withdraw", - values: [BytesLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "withdrawGasFee", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "withdrawGasFeeWithGasLimit", - values: [BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "GAS_LIMIT", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "PROTOCOL_FLAT_FEE", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "setName", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "setSymbol", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "withdrawGasFee", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "withdrawGasFeeWithGasLimit", - data: BytesLike - ): Result; -} - -export interface IZRC20Metadata extends BaseContract { - connect(runner?: ContractRunner | null): IZRC20Metadata; - waitForDeployment(): Promise; - - interface: IZRC20MetadataInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - GAS_LIMIT: TypedContractMethod<[], [bigint], "view">; - - PROTOCOL_FLAT_FEE: TypedContractMethod<[], [bigint], "view">; - - allowance: TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - - approve: TypedContractMethod< - [spender: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; - - burn: TypedContractMethod<[amount: BigNumberish], [boolean], "nonpayable">; - - decimals: TypedContractMethod<[], [bigint], "view">; - - deposit: TypedContractMethod< - [to: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - name: TypedContractMethod<[], [string], "view">; - - setName: TypedContractMethod<[newName: string], [void], "nonpayable">; - - setSymbol: TypedContractMethod<[newSymbol: string], [void], "nonpayable">; - - symbol: TypedContractMethod<[], [string], "view">; - - totalSupply: TypedContractMethod<[], [bigint], "view">; - - transfer: TypedContractMethod< - [recipient: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - transferFrom: TypedContractMethod< - [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - withdraw: TypedContractMethod< - [to: BytesLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - withdrawGasFee: TypedContractMethod<[], [[string, bigint]], "view">; - - withdrawGasFeeWithGasLimit: TypedContractMethod< - [gasLimit: BigNumberish], - [[string, bigint]], - "view" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "GAS_LIMIT" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "PROTOCOL_FLAT_FEE" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "allowance" - ): TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "approve" - ): TypedContractMethod< - [spender: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "balanceOf" - ): TypedContractMethod<[account: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "burn" - ): TypedContractMethod<[amount: BigNumberish], [boolean], "nonpayable">; - getFunction( - nameOrSignature: "decimals" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "deposit" - ): TypedContractMethod< - [to: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "name" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "setName" - ): TypedContractMethod<[newName: string], [void], "nonpayable">; - getFunction( - nameOrSignature: "setSymbol" - ): TypedContractMethod<[newSymbol: string], [void], "nonpayable">; - getFunction( - nameOrSignature: "symbol" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "totalSupply" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "transfer" - ): TypedContractMethod< - [recipient: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "transferFrom" - ): TypedContractMethod< - [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdraw" - ): TypedContractMethod< - [to: BytesLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdrawGasFee" - ): TypedContractMethod<[], [[string, bigint]], "view">; - getFunction( - nameOrSignature: "withdrawGasFeeWithGasLimit" - ): TypedContractMethod<[gasLimit: BigNumberish], [[string, bigint]], "view">; - - filters: {}; -} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/ZRC20Events.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/ZRC20Events.ts deleted file mode 100644 index 93b65e1a..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/ZRC20Events.ts +++ /dev/null @@ -1,361 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, -} from "../../../../../../common"; - -export interface ZRC20EventsInterface extends Interface { - getEvent( - nameOrSignatureOrTopic: - | "Approval" - | "Deposit" - | "Transfer" - | "UpdatedGasLimit" - | "UpdatedGateway" - | "UpdatedProtocolFlatFee" - | "UpdatedSystemContract" - | "Withdrawal" - ): EventFragment; -} - -export namespace ApprovalEvent { - export type InputTuple = [ - owner: AddressLike, - spender: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [owner: string, spender: string, value: bigint]; - export interface OutputObject { - owner: string; - spender: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace DepositEvent { - export type InputTuple = [ - from: BytesLike, - to: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [from: string, to: string, value: bigint]; - export interface OutputObject { - from: string; - to: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace TransferEvent { - export type InputTuple = [ - from: AddressLike, - to: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [from: string, to: string, value: bigint]; - export interface OutputObject { - from: string; - to: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UpdatedGasLimitEvent { - export type InputTuple = [gasLimit: BigNumberish]; - export type OutputTuple = [gasLimit: bigint]; - export interface OutputObject { - gasLimit: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UpdatedGatewayEvent { - export type InputTuple = [gateway: AddressLike]; - export type OutputTuple = [gateway: string]; - export interface OutputObject { - gateway: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UpdatedProtocolFlatFeeEvent { - export type InputTuple = [protocolFlatFee: BigNumberish]; - export type OutputTuple = [protocolFlatFee: bigint]; - export interface OutputObject { - protocolFlatFee: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UpdatedSystemContractEvent { - export type InputTuple = [systemContract: AddressLike]; - export type OutputTuple = [systemContract: string]; - export interface OutputObject { - systemContract: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WithdrawalEvent { - export type InputTuple = [ - from: AddressLike, - to: BytesLike, - value: BigNumberish, - gasFee: BigNumberish, - protocolFlatFee: BigNumberish - ]; - export type OutputTuple = [ - from: string, - to: string, - value: bigint, - gasFee: bigint, - protocolFlatFee: bigint - ]; - export interface OutputObject { - from: string; - to: string; - value: bigint; - gasFee: bigint; - protocolFlatFee: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface ZRC20Events extends BaseContract { - connect(runner?: ContractRunner | null): ZRC20Events; - waitForDeployment(): Promise; - - interface: ZRC20EventsInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - getEvent( - key: "Approval" - ): TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - getEvent( - key: "Deposit" - ): TypedContractEvent< - DepositEvent.InputTuple, - DepositEvent.OutputTuple, - DepositEvent.OutputObject - >; - getEvent( - key: "Transfer" - ): TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - getEvent( - key: "UpdatedGasLimit" - ): TypedContractEvent< - UpdatedGasLimitEvent.InputTuple, - UpdatedGasLimitEvent.OutputTuple, - UpdatedGasLimitEvent.OutputObject - >; - getEvent( - key: "UpdatedGateway" - ): TypedContractEvent< - UpdatedGatewayEvent.InputTuple, - UpdatedGatewayEvent.OutputTuple, - UpdatedGatewayEvent.OutputObject - >; - getEvent( - key: "UpdatedProtocolFlatFee" - ): TypedContractEvent< - UpdatedProtocolFlatFeeEvent.InputTuple, - UpdatedProtocolFlatFeeEvent.OutputTuple, - UpdatedProtocolFlatFeeEvent.OutputObject - >; - getEvent( - key: "UpdatedSystemContract" - ): TypedContractEvent< - UpdatedSystemContractEvent.InputTuple, - UpdatedSystemContractEvent.OutputTuple, - UpdatedSystemContractEvent.OutputObject - >; - getEvent( - key: "Withdrawal" - ): TypedContractEvent< - WithdrawalEvent.InputTuple, - WithdrawalEvent.OutputTuple, - WithdrawalEvent.OutputObject - >; - - filters: { - "Approval(address,address,uint256)": TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - Approval: TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - - "Deposit(bytes,address,uint256)": TypedContractEvent< - DepositEvent.InputTuple, - DepositEvent.OutputTuple, - DepositEvent.OutputObject - >; - Deposit: TypedContractEvent< - DepositEvent.InputTuple, - DepositEvent.OutputTuple, - DepositEvent.OutputObject - >; - - "Transfer(address,address,uint256)": TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - Transfer: TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - - "UpdatedGasLimit(uint256)": TypedContractEvent< - UpdatedGasLimitEvent.InputTuple, - UpdatedGasLimitEvent.OutputTuple, - UpdatedGasLimitEvent.OutputObject - >; - UpdatedGasLimit: TypedContractEvent< - UpdatedGasLimitEvent.InputTuple, - UpdatedGasLimitEvent.OutputTuple, - UpdatedGasLimitEvent.OutputObject - >; - - "UpdatedGateway(address)": TypedContractEvent< - UpdatedGatewayEvent.InputTuple, - UpdatedGatewayEvent.OutputTuple, - UpdatedGatewayEvent.OutputObject - >; - UpdatedGateway: TypedContractEvent< - UpdatedGatewayEvent.InputTuple, - UpdatedGatewayEvent.OutputTuple, - UpdatedGatewayEvent.OutputObject - >; - - "UpdatedProtocolFlatFee(uint256)": TypedContractEvent< - UpdatedProtocolFlatFeeEvent.InputTuple, - UpdatedProtocolFlatFeeEvent.OutputTuple, - UpdatedProtocolFlatFeeEvent.OutputObject - >; - UpdatedProtocolFlatFee: TypedContractEvent< - UpdatedProtocolFlatFeeEvent.InputTuple, - UpdatedProtocolFlatFeeEvent.OutputTuple, - UpdatedProtocolFlatFeeEvent.OutputObject - >; - - "UpdatedSystemContract(address)": TypedContractEvent< - UpdatedSystemContractEvent.InputTuple, - UpdatedSystemContractEvent.OutputTuple, - UpdatedSystemContractEvent.OutputObject - >; - UpdatedSystemContract: TypedContractEvent< - UpdatedSystemContractEvent.InputTuple, - UpdatedSystemContractEvent.OutputTuple, - UpdatedSystemContractEvent.OutputObject - >; - - "Withdrawal(address,bytes,uint256,uint256,uint256)": TypedContractEvent< - WithdrawalEvent.InputTuple, - WithdrawalEvent.OutputTuple, - WithdrawalEvent.OutputObject - >; - Withdrawal: TypedContractEvent< - WithdrawalEvent.InputTuple, - WithdrawalEvent.OutputTuple, - WithdrawalEvent.OutputObject - >; - }; -} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/index.ts deleted file mode 100644 index 603ef6e3..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { IZRC20 } from "./IZRC20"; -export type { IZRC20Metadata } from "./IZRC20Metadata"; -export type { ZRC20Events } from "./ZRC20Events"; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/UniversalContract.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/UniversalContract.ts deleted file mode 100644 index 89d53bb2..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/UniversalContract.ts +++ /dev/null @@ -1,119 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../../../../../common"; - -export type MessageContextStruct = { - sender: BytesLike; - senderEVM: AddressLike; - chainID: BigNumberish; -}; - -export type MessageContextStructOutput = [ - sender: string, - senderEVM: string, - chainID: bigint -] & { sender: string; senderEVM: string; chainID: bigint }; - -export interface UniversalContractInterface extends Interface { - getFunction(nameOrSignature: "onCall"): FunctionFragment; - - encodeFunctionData( - functionFragment: "onCall", - values: [MessageContextStruct, AddressLike, BigNumberish, BytesLike] - ): string; - - decodeFunctionResult(functionFragment: "onCall", data: BytesLike): Result; -} - -export interface UniversalContract extends BaseContract { - connect(runner?: ContractRunner | null): UniversalContract; - waitForDeployment(): Promise; - - interface: UniversalContractInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - onCall: TypedContractMethod< - [ - context: MessageContextStruct, - zrc20: AddressLike, - amount: BigNumberish, - message: BytesLike - ], - [void], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "onCall" - ): TypedContractMethod< - [ - context: MessageContextStruct, - zrc20: AddressLike, - amount: BigNumberish, - message: BytesLike - ], - [void], - "nonpayable" - >; - - filters: {}; -} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/ZContract.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/ZContract.ts deleted file mode 100644 index 9e3ab26e..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/ZContract.ts +++ /dev/null @@ -1,122 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../../../../../common"; - -export type ZContextStruct = { - origin: BytesLike; - sender: AddressLike; - chainID: BigNumberish; -}; - -export type ZContextStructOutput = [ - origin: string, - sender: string, - chainID: bigint -] & { origin: string; sender: string; chainID: bigint }; - -export interface ZContractInterface extends Interface { - getFunction(nameOrSignature: "onCrossChainCall"): FunctionFragment; - - encodeFunctionData( - functionFragment: "onCrossChainCall", - values: [ZContextStruct, AddressLike, BigNumberish, BytesLike] - ): string; - - decodeFunctionResult( - functionFragment: "onCrossChainCall", - data: BytesLike - ): Result; -} - -export interface ZContract extends BaseContract { - connect(runner?: ContractRunner | null): ZContract; - waitForDeployment(): Promise; - - interface: ZContractInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - onCrossChainCall: TypedContractMethod< - [ - context: ZContextStruct, - zrc20: AddressLike, - amount: BigNumberish, - message: BytesLike - ], - [void], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "onCrossChainCall" - ): TypedContractMethod< - [ - context: ZContextStruct, - zrc20: AddressLike, - amount: BigNumberish, - message: BytesLike - ], - [void], - "nonpayable" - >; - - filters: {}; -} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/index.ts deleted file mode 100644 index bf8e5a02..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { UniversalContract } from "./UniversalContract"; -export type { ZContract } from "./ZContract"; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/index.ts deleted file mode 100644 index c598744d..00000000 --- a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/index.ts +++ /dev/null @@ -1,12 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as iGatewayZevmSol from "./IGatewayZEVM.sol"; -export type { iGatewayZevmSol }; -import type * as iwzetaSol from "./IWZETA.sol"; -export type { iwzetaSol }; -import type * as izrc20Sol from "./IZRC20.sol"; -export type { izrc20Sol }; -import type * as universalContractSol from "./UniversalContract.sol"; -export type { universalContractSol }; -export type { ISystem } from "./ISystem"; diff --git a/typechain-types/@zetachain/protocol-contracts/index.ts b/typechain-types/@zetachain/protocol-contracts/index.ts deleted file mode 100644 index a11e4ca2..00000000 --- a/typechain-types/@zetachain/protocol-contracts/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as contracts from "./contracts"; -export type { contracts }; diff --git a/typechain-types/common.ts b/typechain-types/common.ts deleted file mode 100644 index 56b5f21e..00000000 --- a/typechain-types/common.ts +++ /dev/null @@ -1,131 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - FunctionFragment, - Typed, - EventFragment, - ContractTransaction, - ContractTransactionResponse, - DeferredTopicFilter, - EventLog, - TransactionRequest, - LogDescription, -} from "ethers"; - -export interface TypedDeferredTopicFilter<_TCEvent extends TypedContractEvent> - extends DeferredTopicFilter {} - -export interface TypedContractEvent< - InputTuple extends Array = any, - OutputTuple extends Array = any, - OutputObject = any -> { - (...args: Partial): TypedDeferredTopicFilter< - TypedContractEvent - >; - name: string; - fragment: EventFragment; - getFragment(...args: Partial): EventFragment; -} - -type __TypechainAOutputTuple = T extends TypedContractEvent< - infer _U, - infer W -> - ? W - : never; -type __TypechainOutputObject = T extends TypedContractEvent< - infer _U, - infer _W, - infer V -> - ? V - : never; - -export interface TypedEventLog - extends Omit { - args: __TypechainAOutputTuple & __TypechainOutputObject; -} - -export interface TypedLogDescription - extends Omit { - args: __TypechainAOutputTuple & __TypechainOutputObject; -} - -export type TypedListener = ( - ...listenerArg: [ - ...__TypechainAOutputTuple, - TypedEventLog, - ...undefined[] - ] -) => void; - -export type MinEthersFactory = { - deploy(...a: ARGS[]): Promise; -}; - -export type GetContractTypeFromFactory = F extends MinEthersFactory< - infer C, - any -> - ? C - : never; -export type GetARGsTypeFromFactory = F extends MinEthersFactory - ? Parameters - : never; - -export type StateMutability = "nonpayable" | "payable" | "view"; - -export type BaseOverrides = Omit; -export type NonPayableOverrides = Omit< - BaseOverrides, - "value" | "blockTag" | "enableCcipRead" ->; -export type PayableOverrides = Omit< - BaseOverrides, - "blockTag" | "enableCcipRead" ->; -export type ViewOverrides = Omit; -export type Overrides = S extends "nonpayable" - ? NonPayableOverrides - : S extends "payable" - ? PayableOverrides - : ViewOverrides; - -export type PostfixOverrides, S extends StateMutability> = - | A - | [...A, Overrides]; -export type ContractMethodArgs< - A extends Array, - S extends StateMutability -> = PostfixOverrides<{ [I in keyof A]-?: A[I] | Typed }, S>; - -export type DefaultReturnType = R extends Array ? R[0] : R; - -// export interface ContractMethod = Array, R = any, D extends R | ContractTransactionResponse = R | ContractTransactionResponse> { -export interface TypedContractMethod< - A extends Array = Array, - R = any, - S extends StateMutability = "payable" -> { - (...args: ContractMethodArgs): S extends "view" - ? Promise> - : Promise; - - name: string; - - fragment: FunctionFragment; - - getFragment(...args: ContractMethodArgs): FunctionFragment; - - populateTransaction( - ...args: ContractMethodArgs - ): Promise; - staticCall( - ...args: ContractMethodArgs - ): Promise>; - send(...args: ContractMethodArgs): Promise; - estimateGas(...args: ContractMethodArgs): Promise; - staticCallResult(...args: ContractMethodArgs): Promise; -} diff --git a/typechain-types/contracts/BytesHelperLib.ts b/typechain-types/contracts/BytesHelperLib.ts deleted file mode 100644 index 9cdaa3b3..00000000 --- a/typechain-types/contracts/BytesHelperLib.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - FunctionFragment, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, -} from "../common"; - -export interface BytesHelperLibInterface extends Interface {} - -export interface BytesHelperLib extends BaseContract { - connect(runner?: ContractRunner | null): BytesHelperLib; - waitForDeployment(): Promise; - - interface: BytesHelperLibInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - filters: {}; -} diff --git a/typechain-types/contracts/EthZetaMock.sol/ZetaEthMock.ts b/typechain-types/contracts/EthZetaMock.sol/ZetaEthMock.ts deleted file mode 100644 index 44b72eee..00000000 --- a/typechain-types/contracts/EthZetaMock.sol/ZetaEthMock.ts +++ /dev/null @@ -1,286 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../common"; - -export interface ZetaEthMockInterface extends Interface { - getFunction( - nameOrSignature: - | "allowance" - | "approve" - | "balanceOf" - | "decimals" - | "name" - | "symbol" - | "totalSupply" - | "transfer" - | "transferFrom" - ): FunctionFragment; - - getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; - - encodeFunctionData( - functionFragment: "allowance", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [AddressLike] - ): string; - encodeFunctionData(functionFragment: "decimals", values?: undefined): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData(functionFragment: "symbol", values?: undefined): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; -} - -export namespace ApprovalEvent { - export type InputTuple = [ - owner: AddressLike, - spender: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [owner: string, spender: string, value: bigint]; - export interface OutputObject { - owner: string; - spender: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace TransferEvent { - export type InputTuple = [ - from: AddressLike, - to: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [from: string, to: string, value: bigint]; - export interface OutputObject { - from: string; - to: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface ZetaEthMock extends BaseContract { - connect(runner?: ContractRunner | null): ZetaEthMock; - waitForDeployment(): Promise; - - interface: ZetaEthMockInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - allowance: TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - - approve: TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; - - decimals: TypedContractMethod<[], [bigint], "view">; - - name: TypedContractMethod<[], [string], "view">; - - symbol: TypedContractMethod<[], [string], "view">; - - totalSupply: TypedContractMethod<[], [bigint], "view">; - - transfer: TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - transferFrom: TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "allowance" - ): TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "approve" - ): TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "balanceOf" - ): TypedContractMethod<[account: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "decimals" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "name" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "symbol" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "totalSupply" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "transfer" - ): TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "transferFrom" - ): TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getEvent( - key: "Approval" - ): TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - getEvent( - key: "Transfer" - ): TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - - filters: { - "Approval(address,address,uint256)": TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - Approval: TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - - "Transfer(address,address,uint256)": TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - Transfer: TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - }; -} diff --git a/typechain-types/contracts/EthZetaMock.sol/index.ts b/typechain-types/contracts/EthZetaMock.sol/index.ts deleted file mode 100644 index 76f2bf48..00000000 --- a/typechain-types/contracts/EthZetaMock.sol/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { ZetaEthMock } from "./ZetaEthMock"; diff --git a/typechain-types/contracts/OnlySystem.ts b/typechain-types/contracts/OnlySystem.ts deleted file mode 100644 index 332c7e40..00000000 --- a/typechain-types/contracts/OnlySystem.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - FunctionFragment, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, -} from "../common"; - -export interface OnlySystemInterface extends Interface {} - -export interface OnlySystem extends BaseContract { - connect(runner?: ContractRunner | null): OnlySystem; - waitForDeployment(): Promise; - - interface: OnlySystemInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - filters: {}; -} diff --git a/typechain-types/contracts/Revert.sol/Revertable.ts b/typechain-types/contracts/Revert.sol/Revertable.ts deleted file mode 100644 index 5bd605cb..00000000 --- a/typechain-types/contracts/Revert.sol/Revertable.ts +++ /dev/null @@ -1,109 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../common"; - -export type RevertContextStruct = { - asset: AddressLike; - amount: BigNumberish; - revertMessage: BytesLike; -}; - -export type RevertContextStructOutput = [ - asset: string, - amount: bigint, - revertMessage: string -] & { asset: string; amount: bigint; revertMessage: string }; - -export interface RevertableInterface extends Interface { - getFunction(nameOrSignature: "onRevert"): FunctionFragment; - - encodeFunctionData( - functionFragment: "onRevert", - values: [RevertContextStruct] - ): string; - - decodeFunctionResult(functionFragment: "onRevert", data: BytesLike): Result; -} - -export interface Revertable extends BaseContract { - connect(runner?: ContractRunner | null): Revertable; - waitForDeployment(): Promise; - - interface: RevertableInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - onRevert: TypedContractMethod< - [revertContext: RevertContextStruct], - [void], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "onRevert" - ): TypedContractMethod< - [revertContext: RevertContextStruct], - [void], - "nonpayable" - >; - - filters: {}; -} diff --git a/typechain-types/contracts/Revert.sol/index.ts b/typechain-types/contracts/Revert.sol/index.ts deleted file mode 100644 index 12a1db84..00000000 --- a/typechain-types/contracts/Revert.sol/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { Revertable } from "./Revertable"; diff --git a/typechain-types/contracts/SwapHelperLib.ts b/typechain-types/contracts/SwapHelperLib.ts deleted file mode 100644 index d155749d..00000000 --- a/typechain-types/contracts/SwapHelperLib.ts +++ /dev/null @@ -1,133 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../common"; - -export interface SwapHelperLibInterface extends Interface { - getFunction( - nameOrSignature: "getMinOutAmount" | "uniswapv2PairFor" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "getMinOutAmount", - values: [AddressLike, AddressLike, AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "uniswapv2PairFor", - values: [AddressLike, AddressLike, AddressLike] - ): string; - - decodeFunctionResult( - functionFragment: "getMinOutAmount", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "uniswapv2PairFor", - data: BytesLike - ): Result; -} - -export interface SwapHelperLib extends BaseContract { - connect(runner?: ContractRunner | null): SwapHelperLib; - waitForDeployment(): Promise; - - interface: SwapHelperLibInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getMinOutAmount: TypedContractMethod< - [ - router: AddressLike, - zrc20: AddressLike, - target: AddressLike, - amountIn: BigNumberish - ], - [bigint], - "view" - >; - - uniswapv2PairFor: TypedContractMethod< - [factory: AddressLike, tokenA: AddressLike, tokenB: AddressLike], - [string], - "view" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "getMinOutAmount" - ): TypedContractMethod< - [ - router: AddressLike, - zrc20: AddressLike, - target: AddressLike, - amountIn: BigNumberish - ], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "uniswapv2PairFor" - ): TypedContractMethod< - [factory: AddressLike, tokenA: AddressLike, tokenB: AddressLike], - [string], - "view" - >; - - filters: {}; -} diff --git a/typechain-types/contracts/SwapHelpers.sol/SwapLibrary.ts b/typechain-types/contracts/SwapHelpers.sol/SwapLibrary.ts deleted file mode 100644 index 9280fb4a..00000000 --- a/typechain-types/contracts/SwapHelpers.sol/SwapLibrary.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - FunctionFragment, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, -} from "../../common"; - -export interface SwapLibraryInterface extends Interface {} - -export interface SwapLibrary extends BaseContract { - connect(runner?: ContractRunner | null): SwapLibrary; - waitForDeployment(): Promise; - - interface: SwapLibraryInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - filters: {}; -} diff --git a/typechain-types/contracts/SwapHelpers.sol/index.ts b/typechain-types/contracts/SwapHelpers.sol/index.ts deleted file mode 100644 index 2d07bc4f..00000000 --- a/typechain-types/contracts/SwapHelpers.sol/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { SwapLibrary } from "./SwapLibrary"; diff --git a/typechain-types/contracts/SystemContract.sol/SystemContract.ts b/typechain-types/contracts/SystemContract.sol/SystemContract.ts deleted file mode 100644 index 25b29dc3..00000000 --- a/typechain-types/contracts/SystemContract.sol/SystemContract.ts +++ /dev/null @@ -1,569 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../common"; - -export type ZContextStruct = { - origin: BytesLike; - sender: AddressLike; - chainID: BigNumberish; -}; - -export type ZContextStructOutput = [ - origin: string, - sender: string, - chainID: bigint -] & { origin: string; sender: string; chainID: bigint }; - -export interface SystemContractInterface extends Interface { - getFunction( - nameOrSignature: - | "FUNGIBLE_MODULE_ADDRESS" - | "depositAndCall" - | "gasCoinZRC20ByChainId" - | "gasPriceByChainId" - | "gasZetaPoolByChainId" - | "setConnectorZEVMAddress" - | "setGasCoinZRC20" - | "setGasPrice" - | "setGasZetaPool" - | "setWZETAContractAddress" - | "uniswapv2FactoryAddress" - | "uniswapv2PairFor" - | "uniswapv2Router02Address" - | "wZetaContractAddress" - | "zetaConnectorZEVMAddress" - ): FunctionFragment; - - getEvent( - nameOrSignatureOrTopic: - | "SetConnectorZEVM" - | "SetGasCoin" - | "SetGasPrice" - | "SetGasZetaPool" - | "SetWZeta" - | "SystemContractDeployed" - ): EventFragment; - - encodeFunctionData( - functionFragment: "FUNGIBLE_MODULE_ADDRESS", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "depositAndCall", - values: [ZContextStruct, AddressLike, BigNumberish, AddressLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "gasCoinZRC20ByChainId", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "gasPriceByChainId", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "gasZetaPoolByChainId", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "setConnectorZEVMAddress", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "setGasCoinZRC20", - values: [BigNumberish, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "setGasPrice", - values: [BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "setGasZetaPool", - values: [BigNumberish, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "setWZETAContractAddress", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "uniswapv2FactoryAddress", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "uniswapv2PairFor", - values: [AddressLike, AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "uniswapv2Router02Address", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "wZetaContractAddress", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "zetaConnectorZEVMAddress", - values?: undefined - ): string; - - decodeFunctionResult( - functionFragment: "FUNGIBLE_MODULE_ADDRESS", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "depositAndCall", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "gasCoinZRC20ByChainId", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "gasPriceByChainId", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "gasZetaPoolByChainId", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "setConnectorZEVMAddress", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "setGasCoinZRC20", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "setGasPrice", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "setGasZetaPool", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "setWZETAContractAddress", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "uniswapv2FactoryAddress", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "uniswapv2PairFor", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "uniswapv2Router02Address", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "wZetaContractAddress", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "zetaConnectorZEVMAddress", - data: BytesLike - ): Result; -} - -export namespace SetConnectorZEVMEvent { - export type InputTuple = [arg0: AddressLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace SetGasCoinEvent { - export type InputTuple = [arg0: BigNumberish, arg1: AddressLike]; - export type OutputTuple = [arg0: bigint, arg1: string]; - export interface OutputObject { - arg0: bigint; - arg1: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace SetGasPriceEvent { - export type InputTuple = [arg0: BigNumberish, arg1: BigNumberish]; - export type OutputTuple = [arg0: bigint, arg1: bigint]; - export interface OutputObject { - arg0: bigint; - arg1: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace SetGasZetaPoolEvent { - export type InputTuple = [arg0: BigNumberish, arg1: AddressLike]; - export type OutputTuple = [arg0: bigint, arg1: string]; - export interface OutputObject { - arg0: bigint; - arg1: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace SetWZetaEvent { - export type InputTuple = [arg0: AddressLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace SystemContractDeployedEvent { - export type InputTuple = []; - export type OutputTuple = []; - export interface OutputObject {} - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface SystemContract extends BaseContract { - connect(runner?: ContractRunner | null): SystemContract; - waitForDeployment(): Promise; - - interface: SystemContractInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - FUNGIBLE_MODULE_ADDRESS: TypedContractMethod<[], [string], "view">; - - depositAndCall: TypedContractMethod< - [ - context: ZContextStruct, - zrc20: AddressLike, - amount: BigNumberish, - target: AddressLike, - message: BytesLike - ], - [void], - "nonpayable" - >; - - gasCoinZRC20ByChainId: TypedContractMethod< - [arg0: BigNumberish], - [string], - "view" - >; - - gasPriceByChainId: TypedContractMethod< - [arg0: BigNumberish], - [bigint], - "view" - >; - - gasZetaPoolByChainId: TypedContractMethod< - [arg0: BigNumberish], - [string], - "view" - >; - - setConnectorZEVMAddress: TypedContractMethod< - [addr: AddressLike], - [void], - "nonpayable" - >; - - setGasCoinZRC20: TypedContractMethod< - [chainID: BigNumberish, zrc20: AddressLike], - [void], - "nonpayable" - >; - - setGasPrice: TypedContractMethod< - [chainID: BigNumberish, price: BigNumberish], - [void], - "nonpayable" - >; - - setGasZetaPool: TypedContractMethod< - [chainID: BigNumberish, erc20: AddressLike], - [void], - "nonpayable" - >; - - setWZETAContractAddress: TypedContractMethod< - [addr: AddressLike], - [void], - "nonpayable" - >; - - uniswapv2FactoryAddress: TypedContractMethod<[], [string], "view">; - - uniswapv2PairFor: TypedContractMethod< - [factory: AddressLike, tokenA: AddressLike, tokenB: AddressLike], - [string], - "view" - >; - - uniswapv2Router02Address: TypedContractMethod<[], [string], "view">; - - wZetaContractAddress: TypedContractMethod<[], [string], "view">; - - zetaConnectorZEVMAddress: TypedContractMethod<[], [string], "view">; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "FUNGIBLE_MODULE_ADDRESS" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "depositAndCall" - ): TypedContractMethod< - [ - context: ZContextStruct, - zrc20: AddressLike, - amount: BigNumberish, - target: AddressLike, - message: BytesLike - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "gasCoinZRC20ByChainId" - ): TypedContractMethod<[arg0: BigNumberish], [string], "view">; - getFunction( - nameOrSignature: "gasPriceByChainId" - ): TypedContractMethod<[arg0: BigNumberish], [bigint], "view">; - getFunction( - nameOrSignature: "gasZetaPoolByChainId" - ): TypedContractMethod<[arg0: BigNumberish], [string], "view">; - getFunction( - nameOrSignature: "setConnectorZEVMAddress" - ): TypedContractMethod<[addr: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "setGasCoinZRC20" - ): TypedContractMethod< - [chainID: BigNumberish, zrc20: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "setGasPrice" - ): TypedContractMethod< - [chainID: BigNumberish, price: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "setGasZetaPool" - ): TypedContractMethod< - [chainID: BigNumberish, erc20: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "setWZETAContractAddress" - ): TypedContractMethod<[addr: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "uniswapv2FactoryAddress" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "uniswapv2PairFor" - ): TypedContractMethod< - [factory: AddressLike, tokenA: AddressLike, tokenB: AddressLike], - [string], - "view" - >; - getFunction( - nameOrSignature: "uniswapv2Router02Address" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "wZetaContractAddress" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "zetaConnectorZEVMAddress" - ): TypedContractMethod<[], [string], "view">; - - getEvent( - key: "SetConnectorZEVM" - ): TypedContractEvent< - SetConnectorZEVMEvent.InputTuple, - SetConnectorZEVMEvent.OutputTuple, - SetConnectorZEVMEvent.OutputObject - >; - getEvent( - key: "SetGasCoin" - ): TypedContractEvent< - SetGasCoinEvent.InputTuple, - SetGasCoinEvent.OutputTuple, - SetGasCoinEvent.OutputObject - >; - getEvent( - key: "SetGasPrice" - ): TypedContractEvent< - SetGasPriceEvent.InputTuple, - SetGasPriceEvent.OutputTuple, - SetGasPriceEvent.OutputObject - >; - getEvent( - key: "SetGasZetaPool" - ): TypedContractEvent< - SetGasZetaPoolEvent.InputTuple, - SetGasZetaPoolEvent.OutputTuple, - SetGasZetaPoolEvent.OutputObject - >; - getEvent( - key: "SetWZeta" - ): TypedContractEvent< - SetWZetaEvent.InputTuple, - SetWZetaEvent.OutputTuple, - SetWZetaEvent.OutputObject - >; - getEvent( - key: "SystemContractDeployed" - ): TypedContractEvent< - SystemContractDeployedEvent.InputTuple, - SystemContractDeployedEvent.OutputTuple, - SystemContractDeployedEvent.OutputObject - >; - - filters: { - "SetConnectorZEVM(address)": TypedContractEvent< - SetConnectorZEVMEvent.InputTuple, - SetConnectorZEVMEvent.OutputTuple, - SetConnectorZEVMEvent.OutputObject - >; - SetConnectorZEVM: TypedContractEvent< - SetConnectorZEVMEvent.InputTuple, - SetConnectorZEVMEvent.OutputTuple, - SetConnectorZEVMEvent.OutputObject - >; - - "SetGasCoin(uint256,address)": TypedContractEvent< - SetGasCoinEvent.InputTuple, - SetGasCoinEvent.OutputTuple, - SetGasCoinEvent.OutputObject - >; - SetGasCoin: TypedContractEvent< - SetGasCoinEvent.InputTuple, - SetGasCoinEvent.OutputTuple, - SetGasCoinEvent.OutputObject - >; - - "SetGasPrice(uint256,uint256)": TypedContractEvent< - SetGasPriceEvent.InputTuple, - SetGasPriceEvent.OutputTuple, - SetGasPriceEvent.OutputObject - >; - SetGasPrice: TypedContractEvent< - SetGasPriceEvent.InputTuple, - SetGasPriceEvent.OutputTuple, - SetGasPriceEvent.OutputObject - >; - - "SetGasZetaPool(uint256,address)": TypedContractEvent< - SetGasZetaPoolEvent.InputTuple, - SetGasZetaPoolEvent.OutputTuple, - SetGasZetaPoolEvent.OutputObject - >; - SetGasZetaPool: TypedContractEvent< - SetGasZetaPoolEvent.InputTuple, - SetGasZetaPoolEvent.OutputTuple, - SetGasZetaPoolEvent.OutputObject - >; - - "SetWZeta(address)": TypedContractEvent< - SetWZetaEvent.InputTuple, - SetWZetaEvent.OutputTuple, - SetWZetaEvent.OutputObject - >; - SetWZeta: TypedContractEvent< - SetWZetaEvent.InputTuple, - SetWZetaEvent.OutputTuple, - SetWZetaEvent.OutputObject - >; - - "SystemContractDeployed()": TypedContractEvent< - SystemContractDeployedEvent.InputTuple, - SystemContractDeployedEvent.OutputTuple, - SystemContractDeployedEvent.OutputObject - >; - SystemContractDeployed: TypedContractEvent< - SystemContractDeployedEvent.InputTuple, - SystemContractDeployedEvent.OutputTuple, - SystemContractDeployedEvent.OutputObject - >; - }; -} diff --git a/typechain-types/contracts/SystemContract.sol/SystemContractErrors.ts b/typechain-types/contracts/SystemContract.sol/SystemContractErrors.ts deleted file mode 100644 index bae50c05..00000000 --- a/typechain-types/contracts/SystemContract.sol/SystemContractErrors.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - FunctionFragment, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, -} from "../../common"; - -export interface SystemContractErrorsInterface extends Interface {} - -export interface SystemContractErrors extends BaseContract { - connect(runner?: ContractRunner | null): SystemContractErrors; - waitForDeployment(): Promise; - - interface: SystemContractErrorsInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - filters: {}; -} diff --git a/typechain-types/contracts/SystemContract.sol/index.ts b/typechain-types/contracts/SystemContract.sol/index.ts deleted file mode 100644 index d5591cc5..00000000 --- a/typechain-types/contracts/SystemContract.sol/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { SystemContract } from "./SystemContract"; -export type { SystemContractErrors } from "./SystemContractErrors"; diff --git a/typechain-types/contracts/TestZRC20.ts b/typechain-types/contracts/TestZRC20.ts deleted file mode 100644 index c9bf8174..00000000 --- a/typechain-types/contracts/TestZRC20.ts +++ /dev/null @@ -1,360 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../common"; - -export interface TestZRC20Interface extends Interface { - getFunction( - nameOrSignature: - | "allowance" - | "approve" - | "balanceOf" - | "bytesToAddress" - | "decimals" - | "deposit" - | "name" - | "symbol" - | "totalSupply" - | "transfer" - | "transferFrom" - | "withdraw" - | "withdrawGasFee" - ): FunctionFragment; - - getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; - - encodeFunctionData( - functionFragment: "allowance", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "bytesToAddress", - values: [BytesLike, BigNumberish, BigNumberish] - ): string; - encodeFunctionData(functionFragment: "decimals", values?: undefined): string; - encodeFunctionData( - functionFragment: "deposit", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData(functionFragment: "symbol", values?: undefined): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "withdraw", - values: [BytesLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "withdrawGasFee", - values?: undefined - ): string; - - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "bytesToAddress", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "withdrawGasFee", - data: BytesLike - ): Result; -} - -export namespace ApprovalEvent { - export type InputTuple = [ - owner: AddressLike, - spender: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [owner: string, spender: string, value: bigint]; - export interface OutputObject { - owner: string; - spender: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace TransferEvent { - export type InputTuple = [ - from: AddressLike, - to: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [from: string, to: string, value: bigint]; - export interface OutputObject { - from: string; - to: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface TestZRC20 extends BaseContract { - connect(runner?: ContractRunner | null): TestZRC20; - waitForDeployment(): Promise; - - interface: TestZRC20Interface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - allowance: TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - - approve: TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; - - bytesToAddress: TypedContractMethod< - [data: BytesLike, offset: BigNumberish, size: BigNumberish], - [string], - "view" - >; - - decimals: TypedContractMethod<[], [bigint], "view">; - - deposit: TypedContractMethod< - [to: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - name: TypedContractMethod<[], [string], "view">; - - symbol: TypedContractMethod<[], [string], "view">; - - totalSupply: TypedContractMethod<[], [bigint], "view">; - - transfer: TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - transferFrom: TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - withdraw: TypedContractMethod< - [to: BytesLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - withdrawGasFee: TypedContractMethod<[], [[string, bigint]], "view">; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "allowance" - ): TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "approve" - ): TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "balanceOf" - ): TypedContractMethod<[account: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "bytesToAddress" - ): TypedContractMethod< - [data: BytesLike, offset: BigNumberish, size: BigNumberish], - [string], - "view" - >; - getFunction( - nameOrSignature: "decimals" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "deposit" - ): TypedContractMethod< - [to: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "name" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "symbol" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "totalSupply" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "transfer" - ): TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "transferFrom" - ): TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdraw" - ): TypedContractMethod< - [to: BytesLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdrawGasFee" - ): TypedContractMethod<[], [[string, bigint]], "view">; - - getEvent( - key: "Approval" - ): TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - getEvent( - key: "Transfer" - ): TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - - filters: { - "Approval(address,address,uint256)": TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - Approval: TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - - "Transfer(address,address,uint256)": TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - Transfer: TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - }; -} diff --git a/typechain-types/contracts/UniversalContract.sol/UniversalContract.ts b/typechain-types/contracts/UniversalContract.sol/UniversalContract.ts deleted file mode 100644 index 0e05b1e1..00000000 --- a/typechain-types/contracts/UniversalContract.sol/UniversalContract.ts +++ /dev/null @@ -1,154 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../common"; - -export type ZContextStruct = { - origin: BytesLike; - sender: AddressLike; - chainID: BigNumberish; -}; - -export type ZContextStructOutput = [ - origin: string, - sender: string, - chainID: bigint -] & { origin: string; sender: string; chainID: bigint }; - -export type RevertContextStruct = { - asset: AddressLike; - amount: BigNumberish; - revertMessage: BytesLike; -}; - -export type RevertContextStructOutput = [ - asset: string, - amount: bigint, - revertMessage: string -] & { asset: string; amount: bigint; revertMessage: string }; - -export interface UniversalContractInterface extends Interface { - getFunction( - nameOrSignature: "onCrossChainCall" | "onRevert" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "onCrossChainCall", - values: [ZContextStruct, AddressLike, BigNumberish, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "onRevert", - values: [RevertContextStruct] - ): string; - - decodeFunctionResult( - functionFragment: "onCrossChainCall", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "onRevert", data: BytesLike): Result; -} - -export interface UniversalContract extends BaseContract { - connect(runner?: ContractRunner | null): UniversalContract; - waitForDeployment(): Promise; - - interface: UniversalContractInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - onCrossChainCall: TypedContractMethod< - [ - context: ZContextStruct, - zrc20: AddressLike, - amount: BigNumberish, - message: BytesLike - ], - [void], - "nonpayable" - >; - - onRevert: TypedContractMethod< - [revertContext: RevertContextStruct], - [void], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "onCrossChainCall" - ): TypedContractMethod< - [ - context: ZContextStruct, - zrc20: AddressLike, - amount: BigNumberish, - message: BytesLike - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "onRevert" - ): TypedContractMethod< - [revertContext: RevertContextStruct], - [void], - "nonpayable" - >; - - filters: {}; -} diff --git a/typechain-types/contracts/UniversalContract.sol/ZContract.ts b/typechain-types/contracts/UniversalContract.sol/ZContract.ts deleted file mode 100644 index 1bb30f01..00000000 --- a/typechain-types/contracts/UniversalContract.sol/ZContract.ts +++ /dev/null @@ -1,122 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../common"; - -export type ZContextStruct = { - origin: BytesLike; - sender: AddressLike; - chainID: BigNumberish; -}; - -export type ZContextStructOutput = [ - origin: string, - sender: string, - chainID: bigint -] & { origin: string; sender: string; chainID: bigint }; - -export interface ZContractInterface extends Interface { - getFunction(nameOrSignature: "onCrossChainCall"): FunctionFragment; - - encodeFunctionData( - functionFragment: "onCrossChainCall", - values: [ZContextStruct, AddressLike, BigNumberish, BytesLike] - ): string; - - decodeFunctionResult( - functionFragment: "onCrossChainCall", - data: BytesLike - ): Result; -} - -export interface ZContract extends BaseContract { - connect(runner?: ContractRunner | null): ZContract; - waitForDeployment(): Promise; - - interface: ZContractInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - onCrossChainCall: TypedContractMethod< - [ - context: ZContextStruct, - zrc20: AddressLike, - amount: BigNumberish, - message: BytesLike - ], - [void], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "onCrossChainCall" - ): TypedContractMethod< - [ - context: ZContextStruct, - zrc20: AddressLike, - amount: BigNumberish, - message: BytesLike - ], - [void], - "nonpayable" - >; - - filters: {}; -} diff --git a/typechain-types/contracts/UniversalContract.sol/index.ts b/typechain-types/contracts/UniversalContract.sol/index.ts deleted file mode 100644 index bf8e5a02..00000000 --- a/typechain-types/contracts/UniversalContract.sol/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { UniversalContract } from "./UniversalContract"; -export type { ZContract } from "./ZContract"; diff --git a/typechain-types/contracts/index.ts b/typechain-types/contracts/index.ts deleted file mode 100644 index cf313b1d..00000000 --- a/typechain-types/contracts/index.ts +++ /dev/null @@ -1,21 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as ethZetaMockSol from "./EthZetaMock.sol"; -export type { ethZetaMockSol }; -import type * as revertSol from "./Revert.sol"; -export type { revertSol }; -import type * as swapHelpersSol from "./SwapHelpers.sol"; -export type { swapHelpersSol }; -import type * as systemContractSol from "./SystemContract.sol"; -export type { systemContractSol }; -import type * as universalContractSol from "./UniversalContract.sol"; -export type { universalContractSol }; -import type * as shared from "./shared"; -export type { shared }; -import type * as testing from "./testing"; -export type { testing }; -export type { BytesHelperLib } from "./BytesHelperLib"; -export type { OnlySystem } from "./OnlySystem"; -export type { SwapHelperLib } from "./SwapHelperLib"; -export type { TestZRC20 } from "./TestZRC20"; diff --git a/typechain-types/contracts/shared/MockZRC20.ts b/typechain-types/contracts/shared/MockZRC20.ts deleted file mode 100644 index 230ae500..00000000 --- a/typechain-types/contracts/shared/MockZRC20.ts +++ /dev/null @@ -1,459 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../common"; - -export interface MockZRC20Interface extends Interface { - getFunction( - nameOrSignature: - | "allowance" - | "approve" - | "balanceOf" - | "bytesToAddress" - | "decimals" - | "deposit" - | "gasFee" - | "gasFeeAddress" - | "name" - | "setGasFee" - | "setGasFeeAddress" - | "symbol" - | "totalSupply" - | "transfer" - | "transferFrom" - | "withdraw" - | "withdrawGasFee" - ): FunctionFragment; - - getEvent( - nameOrSignatureOrTopic: "Approval" | "Transfer" | "Withdrawal" - ): EventFragment; - - encodeFunctionData( - functionFragment: "allowance", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "bytesToAddress", - values: [BytesLike, BigNumberish, BigNumberish] - ): string; - encodeFunctionData(functionFragment: "decimals", values?: undefined): string; - encodeFunctionData( - functionFragment: "deposit", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData(functionFragment: "gasFee", values?: undefined): string; - encodeFunctionData( - functionFragment: "gasFeeAddress", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData( - functionFragment: "setGasFee", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "setGasFeeAddress", - values: [AddressLike] - ): string; - encodeFunctionData(functionFragment: "symbol", values?: undefined): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "withdraw", - values: [BytesLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "withdrawGasFee", - values?: undefined - ): string; - - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "bytesToAddress", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "gasFee", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "gasFeeAddress", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "setGasFee", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "setGasFeeAddress", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "withdrawGasFee", - data: BytesLike - ): Result; -} - -export namespace ApprovalEvent { - export type InputTuple = [ - owner: AddressLike, - spender: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [owner: string, spender: string, value: bigint]; - export interface OutputObject { - owner: string; - spender: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace TransferEvent { - export type InputTuple = [ - from: AddressLike, - to: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [from: string, to: string, value: bigint]; - export interface OutputObject { - from: string; - to: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WithdrawalEvent { - export type InputTuple = [ - from: AddressLike, - to: BytesLike, - value: BigNumberish, - gasfee: BigNumberish, - protocolFlatFee: BigNumberish - ]; - export type OutputTuple = [ - from: string, - to: string, - value: bigint, - gasfee: bigint, - protocolFlatFee: bigint - ]; - export interface OutputObject { - from: string; - to: string; - value: bigint; - gasfee: bigint; - protocolFlatFee: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface MockZRC20 extends BaseContract { - connect(runner?: ContractRunner | null): MockZRC20; - waitForDeployment(): Promise; - - interface: MockZRC20Interface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - allowance: TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - - approve: TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; - - bytesToAddress: TypedContractMethod< - [data: BytesLike, offset: BigNumberish, size: BigNumberish], - [string], - "view" - >; - - decimals: TypedContractMethod<[], [bigint], "view">; - - deposit: TypedContractMethod< - [to: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - gasFee: TypedContractMethod<[], [bigint], "view">; - - gasFeeAddress: TypedContractMethod<[], [string], "view">; - - name: TypedContractMethod<[], [string], "view">; - - setGasFee: TypedContractMethod<[gasFee_: BigNumberish], [void], "nonpayable">; - - setGasFeeAddress: TypedContractMethod< - [gasFeeAddress_: AddressLike], - [void], - "nonpayable" - >; - - symbol: TypedContractMethod<[], [string], "view">; - - totalSupply: TypedContractMethod<[], [bigint], "view">; - - transfer: TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - transferFrom: TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - withdraw: TypedContractMethod< - [to: BytesLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - withdrawGasFee: TypedContractMethod<[], [[string, bigint]], "view">; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "allowance" - ): TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "approve" - ): TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "balanceOf" - ): TypedContractMethod<[account: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "bytesToAddress" - ): TypedContractMethod< - [data: BytesLike, offset: BigNumberish, size: BigNumberish], - [string], - "view" - >; - getFunction( - nameOrSignature: "decimals" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "deposit" - ): TypedContractMethod< - [to: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "gasFee" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "gasFeeAddress" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "name" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "setGasFee" - ): TypedContractMethod<[gasFee_: BigNumberish], [void], "nonpayable">; - getFunction( - nameOrSignature: "setGasFeeAddress" - ): TypedContractMethod<[gasFeeAddress_: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "symbol" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "totalSupply" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "transfer" - ): TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "transferFrom" - ): TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdraw" - ): TypedContractMethod< - [to: BytesLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdrawGasFee" - ): TypedContractMethod<[], [[string, bigint]], "view">; - - getEvent( - key: "Approval" - ): TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - getEvent( - key: "Transfer" - ): TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - getEvent( - key: "Withdrawal" - ): TypedContractEvent< - WithdrawalEvent.InputTuple, - WithdrawalEvent.OutputTuple, - WithdrawalEvent.OutputObject - >; - - filters: { - "Approval(address,address,uint256)": TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - Approval: TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - - "Transfer(address,address,uint256)": TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - Transfer: TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - - "Withdrawal(address,bytes,uint256,uint256,uint256)": TypedContractEvent< - WithdrawalEvent.InputTuple, - WithdrawalEvent.OutputTuple, - WithdrawalEvent.OutputObject - >; - Withdrawal: TypedContractEvent< - WithdrawalEvent.InputTuple, - WithdrawalEvent.OutputTuple, - WithdrawalEvent.OutputObject - >; - }; -} diff --git a/typechain-types/contracts/shared/TestUniswapRouter.ts b/typechain-types/contracts/shared/TestUniswapRouter.ts deleted file mode 100644 index 5862f0c1..00000000 --- a/typechain-types/contracts/shared/TestUniswapRouter.ts +++ /dev/null @@ -1,497 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../common"; - -export interface TestUniswapRouterInterface extends Interface { - getFunction( - nameOrSignature: - | "WETH" - | "addLiquidity" - | "addLiquidityETH" - | "factory" - | "getAmountIn" - | "getAmountOut" - | "getAmountsIn" - | "getAmountsOut" - | "quote" - | "removeLiquidity" - | "removeLiquidityETH" - | "swapExactTokensForTokens" - | "swapTokensForExactTokens" - ): FunctionFragment; - - encodeFunctionData(functionFragment: "WETH", values?: undefined): string; - encodeFunctionData( - functionFragment: "addLiquidity", - values: [ - AddressLike, - AddressLike, - BigNumberish, - BigNumberish, - BigNumberish, - BigNumberish, - AddressLike, - BigNumberish - ] - ): string; - encodeFunctionData( - functionFragment: "addLiquidityETH", - values: [ - AddressLike, - BigNumberish, - BigNumberish, - BigNumberish, - AddressLike, - BigNumberish - ] - ): string; - encodeFunctionData(functionFragment: "factory", values?: undefined): string; - encodeFunctionData( - functionFragment: "getAmountIn", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "getAmountOut", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "getAmountsIn", - values: [BigNumberish, AddressLike[]] - ): string; - encodeFunctionData( - functionFragment: "getAmountsOut", - values: [BigNumberish, AddressLike[]] - ): string; - encodeFunctionData( - functionFragment: "quote", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "removeLiquidity", - values: [ - AddressLike, - AddressLike, - BigNumberish, - BigNumberish, - BigNumberish, - AddressLike, - BigNumberish - ] - ): string; - encodeFunctionData( - functionFragment: "removeLiquidityETH", - values: [ - AddressLike, - BigNumberish, - BigNumberish, - BigNumberish, - AddressLike, - BigNumberish - ] - ): string; - encodeFunctionData( - functionFragment: "swapExactTokensForTokens", - values: [ - BigNumberish, - BigNumberish, - AddressLike[], - AddressLike, - BigNumberish - ] - ): string; - encodeFunctionData( - functionFragment: "swapTokensForExactTokens", - values: [ - BigNumberish, - BigNumberish, - AddressLike[], - AddressLike, - BigNumberish - ] - ): string; - - decodeFunctionResult(functionFragment: "WETH", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "addLiquidity", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "addLiquidityETH", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "getAmountIn", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getAmountOut", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getAmountsIn", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getAmountsOut", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "quote", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "removeLiquidity", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "removeLiquidityETH", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "swapExactTokensForTokens", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "swapTokensForExactTokens", - data: BytesLike - ): Result; -} - -export interface TestUniswapRouter extends BaseContract { - connect(runner?: ContractRunner | null): TestUniswapRouter; - waitForDeployment(): Promise; - - interface: TestUniswapRouterInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - WETH: TypedContractMethod<[], [string], "view">; - - addLiquidity: TypedContractMethod< - [ - tokenA: AddressLike, - tokenB: AddressLike, - amountADesired: BigNumberish, - amountBDesired: BigNumberish, - amountAMin: BigNumberish, - amountBMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [ - [bigint, bigint, bigint] & { - amountA: bigint; - amountB: bigint; - liquidity: bigint; - } - ], - "nonpayable" - >; - - addLiquidityETH: TypedContractMethod< - [ - token: AddressLike, - amountTokenDesired: BigNumberish, - amountTokenMin: BigNumberish, - amountETHMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [ - [bigint, bigint, bigint] & { - amountToken: bigint; - amountETH: bigint; - liquidity: bigint; - } - ], - "payable" - >; - - factory: TypedContractMethod<[], [string], "view">; - - getAmountIn: TypedContractMethod< - [ - amountOut: BigNumberish, - reserveIn: BigNumberish, - reserveOut: BigNumberish - ], - [bigint], - "view" - >; - - getAmountOut: TypedContractMethod< - [amountIn: BigNumberish, reserveIn: BigNumberish, reserveOut: BigNumberish], - [bigint], - "view" - >; - - getAmountsIn: TypedContractMethod< - [amountOut: BigNumberish, path: AddressLike[]], - [bigint[]], - "view" - >; - - getAmountsOut: TypedContractMethod< - [amountIn: BigNumberish, path: AddressLike[]], - [bigint[]], - "view" - >; - - quote: TypedContractMethod< - [amountA: BigNumberish, reserveA: BigNumberish, reserveB: BigNumberish], - [bigint], - "view" - >; - - removeLiquidity: TypedContractMethod< - [ - tokenA: AddressLike, - tokenB: AddressLike, - liquidity: BigNumberish, - amountAMin: BigNumberish, - amountBMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [[bigint, bigint] & { amountA: bigint; amountB: bigint }], - "nonpayable" - >; - - removeLiquidityETH: TypedContractMethod< - [ - token: AddressLike, - liquidity: BigNumberish, - amountTokenMin: BigNumberish, - amountETHMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [[bigint, bigint] & { amountToken: bigint; amountETH: bigint }], - "nonpayable" - >; - - swapExactTokensForTokens: TypedContractMethod< - [ - amountIn: BigNumberish, - amountOutMin: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "nonpayable" - >; - - swapTokensForExactTokens: TypedContractMethod< - [ - amountOut: BigNumberish, - amountInMax: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "WETH" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "addLiquidity" - ): TypedContractMethod< - [ - tokenA: AddressLike, - tokenB: AddressLike, - amountADesired: BigNumberish, - amountBDesired: BigNumberish, - amountAMin: BigNumberish, - amountBMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [ - [bigint, bigint, bigint] & { - amountA: bigint; - amountB: bigint; - liquidity: bigint; - } - ], - "nonpayable" - >; - getFunction( - nameOrSignature: "addLiquidityETH" - ): TypedContractMethod< - [ - token: AddressLike, - amountTokenDesired: BigNumberish, - amountTokenMin: BigNumberish, - amountETHMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [ - [bigint, bigint, bigint] & { - amountToken: bigint; - amountETH: bigint; - liquidity: bigint; - } - ], - "payable" - >; - getFunction( - nameOrSignature: "factory" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "getAmountIn" - ): TypedContractMethod< - [ - amountOut: BigNumberish, - reserveIn: BigNumberish, - reserveOut: BigNumberish - ], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "getAmountOut" - ): TypedContractMethod< - [amountIn: BigNumberish, reserveIn: BigNumberish, reserveOut: BigNumberish], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "getAmountsIn" - ): TypedContractMethod< - [amountOut: BigNumberish, path: AddressLike[]], - [bigint[]], - "view" - >; - getFunction( - nameOrSignature: "getAmountsOut" - ): TypedContractMethod< - [amountIn: BigNumberish, path: AddressLike[]], - [bigint[]], - "view" - >; - getFunction( - nameOrSignature: "quote" - ): TypedContractMethod< - [amountA: BigNumberish, reserveA: BigNumberish, reserveB: BigNumberish], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "removeLiquidity" - ): TypedContractMethod< - [ - tokenA: AddressLike, - tokenB: AddressLike, - liquidity: BigNumberish, - amountAMin: BigNumberish, - amountBMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [[bigint, bigint] & { amountA: bigint; amountB: bigint }], - "nonpayable" - >; - getFunction( - nameOrSignature: "removeLiquidityETH" - ): TypedContractMethod< - [ - token: AddressLike, - liquidity: BigNumberish, - amountTokenMin: BigNumberish, - amountETHMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [[bigint, bigint] & { amountToken: bigint; amountETH: bigint }], - "nonpayable" - >; - getFunction( - nameOrSignature: "swapExactTokensForTokens" - ): TypedContractMethod< - [ - amountIn: BigNumberish, - amountOutMin: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "nonpayable" - >; - getFunction( - nameOrSignature: "swapTokensForExactTokens" - ): TypedContractMethod< - [ - amountOut: BigNumberish, - amountInMax: BigNumberish, - path: AddressLike[], - to: AddressLike, - deadline: BigNumberish - ], - [bigint[]], - "nonpayable" - >; - - filters: {}; -} diff --git a/typechain-types/contracts/shared/WZETA.ts b/typechain-types/contracts/shared/WZETA.ts deleted file mode 100644 index c250803a..00000000 --- a/typechain-types/contracts/shared/WZETA.ts +++ /dev/null @@ -1,369 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../common"; - -export interface WZETAInterface extends Interface { - getFunction( - nameOrSignature: - | "allowance" - | "approve" - | "balanceOf" - | "decimals" - | "deposit" - | "name" - | "symbol" - | "totalSupply" - | "transfer" - | "transferFrom" - | "withdraw" - ): FunctionFragment; - - getEvent( - nameOrSignatureOrTopic: "Approval" | "Deposit" | "Transfer" | "Withdrawal" - ): EventFragment; - - encodeFunctionData( - functionFragment: "allowance", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [AddressLike] - ): string; - encodeFunctionData(functionFragment: "decimals", values?: undefined): string; - encodeFunctionData(functionFragment: "deposit", values?: undefined): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData(functionFragment: "symbol", values?: undefined): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "withdraw", - values: [BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; -} - -export namespace ApprovalEvent { - export type InputTuple = [ - src: AddressLike, - guy: AddressLike, - wad: BigNumberish - ]; - export type OutputTuple = [src: string, guy: string, wad: bigint]; - export interface OutputObject { - src: string; - guy: string; - wad: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace DepositEvent { - export type InputTuple = [dst: AddressLike, wad: BigNumberish]; - export type OutputTuple = [dst: string, wad: bigint]; - export interface OutputObject { - dst: string; - wad: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace TransferEvent { - export type InputTuple = [ - src: AddressLike, - dst: AddressLike, - wad: BigNumberish - ]; - export type OutputTuple = [src: string, dst: string, wad: bigint]; - export interface OutputObject { - src: string; - dst: string; - wad: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WithdrawalEvent { - export type InputTuple = [src: AddressLike, wad: BigNumberish]; - export type OutputTuple = [src: string, wad: bigint]; - export interface OutputObject { - src: string; - wad: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface WZETA extends BaseContract { - connect(runner?: ContractRunner | null): WZETA; - waitForDeployment(): Promise; - - interface: WZETAInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - allowance: TypedContractMethod< - [arg0: AddressLike, arg1: AddressLike], - [bigint], - "view" - >; - - approve: TypedContractMethod< - [guy: AddressLike, wad: BigNumberish], - [boolean], - "nonpayable" - >; - - balanceOf: TypedContractMethod<[arg0: AddressLike], [bigint], "view">; - - decimals: TypedContractMethod<[], [bigint], "view">; - - deposit: TypedContractMethod<[], [void], "payable">; - - name: TypedContractMethod<[], [string], "view">; - - symbol: TypedContractMethod<[], [string], "view">; - - totalSupply: TypedContractMethod<[], [bigint], "view">; - - transfer: TypedContractMethod< - [dst: AddressLike, wad: BigNumberish], - [boolean], - "nonpayable" - >; - - transferFrom: TypedContractMethod< - [src: AddressLike, dst: AddressLike, wad: BigNumberish], - [boolean], - "nonpayable" - >; - - withdraw: TypedContractMethod<[wad: BigNumberish], [void], "nonpayable">; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "allowance" - ): TypedContractMethod< - [arg0: AddressLike, arg1: AddressLike], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "approve" - ): TypedContractMethod< - [guy: AddressLike, wad: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "balanceOf" - ): TypedContractMethod<[arg0: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "decimals" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "deposit" - ): TypedContractMethod<[], [void], "payable">; - getFunction( - nameOrSignature: "name" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "symbol" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "totalSupply" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "transfer" - ): TypedContractMethod< - [dst: AddressLike, wad: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "transferFrom" - ): TypedContractMethod< - [src: AddressLike, dst: AddressLike, wad: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdraw" - ): TypedContractMethod<[wad: BigNumberish], [void], "nonpayable">; - - getEvent( - key: "Approval" - ): TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - getEvent( - key: "Deposit" - ): TypedContractEvent< - DepositEvent.InputTuple, - DepositEvent.OutputTuple, - DepositEvent.OutputObject - >; - getEvent( - key: "Transfer" - ): TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - getEvent( - key: "Withdrawal" - ): TypedContractEvent< - WithdrawalEvent.InputTuple, - WithdrawalEvent.OutputTuple, - WithdrawalEvent.OutputObject - >; - - filters: { - "Approval(address,address,uint256)": TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - Approval: TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - - "Deposit(address,uint256)": TypedContractEvent< - DepositEvent.InputTuple, - DepositEvent.OutputTuple, - DepositEvent.OutputObject - >; - Deposit: TypedContractEvent< - DepositEvent.InputTuple, - DepositEvent.OutputTuple, - DepositEvent.OutputObject - >; - - "Transfer(address,address,uint256)": TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - Transfer: TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - - "Withdrawal(address,uint256)": TypedContractEvent< - WithdrawalEvent.InputTuple, - WithdrawalEvent.OutputTuple, - WithdrawalEvent.OutputObject - >; - Withdrawal: TypedContractEvent< - WithdrawalEvent.InputTuple, - WithdrawalEvent.OutputTuple, - WithdrawalEvent.OutputObject - >; - }; -} diff --git a/typechain-types/contracts/shared/index.ts b/typechain-types/contracts/shared/index.ts deleted file mode 100644 index 2a7ceeeb..00000000 --- a/typechain-types/contracts/shared/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as interfaces from "./interfaces"; -export type { interfaces }; -import type * as libraries from "./libraries"; -export type { libraries }; -export type { MockZRC20 } from "./MockZRC20"; -export type { TestUniswapRouter } from "./TestUniswapRouter"; -export type { WZETA } from "./WZETA"; diff --git a/typechain-types/contracts/shared/interfaces/IERC20.ts b/typechain-types/contracts/shared/interfaces/IERC20.ts deleted file mode 100644 index c9ba63d5..00000000 --- a/typechain-types/contracts/shared/interfaces/IERC20.ts +++ /dev/null @@ -1,286 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../common"; - -export interface IERC20Interface extends Interface { - getFunction( - nameOrSignature: - | "allowance" - | "approve" - | "balanceOf" - | "decimals" - | "name" - | "symbol" - | "totalSupply" - | "transfer" - | "transferFrom" - ): FunctionFragment; - - getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; - - encodeFunctionData( - functionFragment: "allowance", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [AddressLike] - ): string; - encodeFunctionData(functionFragment: "decimals", values?: undefined): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData(functionFragment: "symbol", values?: undefined): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; -} - -export namespace ApprovalEvent { - export type InputTuple = [ - owner: AddressLike, - spender: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [owner: string, spender: string, value: bigint]; - export interface OutputObject { - owner: string; - spender: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace TransferEvent { - export type InputTuple = [ - from: AddressLike, - to: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [from: string, to: string, value: bigint]; - export interface OutputObject { - from: string; - to: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface IERC20 extends BaseContract { - connect(runner?: ContractRunner | null): IERC20; - waitForDeployment(): Promise; - - interface: IERC20Interface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - allowance: TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - - approve: TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - balanceOf: TypedContractMethod<[owner: AddressLike], [bigint], "view">; - - decimals: TypedContractMethod<[], [bigint], "view">; - - name: TypedContractMethod<[], [string], "view">; - - symbol: TypedContractMethod<[], [string], "view">; - - totalSupply: TypedContractMethod<[], [bigint], "view">; - - transfer: TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - transferFrom: TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "allowance" - ): TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "approve" - ): TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "balanceOf" - ): TypedContractMethod<[owner: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "decimals" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "name" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "symbol" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "totalSupply" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "transfer" - ): TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "transferFrom" - ): TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getEvent( - key: "Approval" - ): TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - getEvent( - key: "Transfer" - ): TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - - filters: { - "Approval(address,address,uint256)": TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - Approval: TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - - "Transfer(address,address,uint256)": TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - Transfer: TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - }; -} diff --git a/typechain-types/contracts/shared/interfaces/IWETH.ts b/typechain-types/contracts/shared/interfaces/IWETH.ts deleted file mode 100644 index 80a77564..00000000 --- a/typechain-types/contracts/shared/interfaces/IWETH.ts +++ /dev/null @@ -1,116 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../../common"; - -export interface IWETHInterface extends Interface { - getFunction( - nameOrSignature: "deposit" | "transfer" | "withdraw" - ): FunctionFragment; - - encodeFunctionData(functionFragment: "deposit", values?: undefined): string; - encodeFunctionData( - functionFragment: "transfer", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "withdraw", - values: [BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; -} - -export interface IWETH extends BaseContract { - connect(runner?: ContractRunner | null): IWETH; - waitForDeployment(): Promise; - - interface: IWETHInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - deposit: TypedContractMethod<[], [void], "payable">; - - transfer: TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - withdraw: TypedContractMethod<[arg0: BigNumberish], [void], "nonpayable">; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "deposit" - ): TypedContractMethod<[], [void], "payable">; - getFunction( - nameOrSignature: "transfer" - ): TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdraw" - ): TypedContractMethod<[arg0: BigNumberish], [void], "nonpayable">; - - filters: {}; -} diff --git a/typechain-types/contracts/shared/interfaces/IZRC20.sol/IZRC20.ts b/typechain-types/contracts/shared/interfaces/IZRC20.sol/IZRC20.ts deleted file mode 100644 index 4ed399ae..00000000 --- a/typechain-types/contracts/shared/interfaces/IZRC20.sol/IZRC20.ts +++ /dev/null @@ -1,301 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../../../common"; - -export interface IZRC20Interface extends Interface { - getFunction( - nameOrSignature: - | "GAS_LIMIT" - | "PROTOCOL_FLAT_FEE" - | "allowance" - | "approve" - | "balanceOf" - | "burn" - | "deposit" - | "setName" - | "setSymbol" - | "totalSupply" - | "transfer" - | "transferFrom" - | "withdraw" - | "withdrawGasFee" - | "withdrawGasFeeWithGasLimit" - ): FunctionFragment; - - encodeFunctionData(functionFragment: "GAS_LIMIT", values?: undefined): string; - encodeFunctionData( - functionFragment: "PROTOCOL_FLAT_FEE", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "allowance", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [AddressLike] - ): string; - encodeFunctionData(functionFragment: "burn", values: [BigNumberish]): string; - encodeFunctionData( - functionFragment: "deposit", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData(functionFragment: "setName", values: [string]): string; - encodeFunctionData(functionFragment: "setSymbol", values: [string]): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "withdraw", - values: [BytesLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "withdrawGasFee", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "withdrawGasFeeWithGasLimit", - values: [BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "GAS_LIMIT", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "PROTOCOL_FLAT_FEE", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "setName", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "setSymbol", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "withdrawGasFee", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "withdrawGasFeeWithGasLimit", - data: BytesLike - ): Result; -} - -export interface IZRC20 extends BaseContract { - connect(runner?: ContractRunner | null): IZRC20; - waitForDeployment(): Promise; - - interface: IZRC20Interface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - GAS_LIMIT: TypedContractMethod<[], [bigint], "view">; - - PROTOCOL_FLAT_FEE: TypedContractMethod<[], [bigint], "view">; - - allowance: TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - - approve: TypedContractMethod< - [spender: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; - - burn: TypedContractMethod<[amount: BigNumberish], [boolean], "nonpayable">; - - deposit: TypedContractMethod< - [to: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - setName: TypedContractMethod<[newName: string], [void], "nonpayable">; - - setSymbol: TypedContractMethod<[newSymbol: string], [void], "nonpayable">; - - totalSupply: TypedContractMethod<[], [bigint], "view">; - - transfer: TypedContractMethod< - [recipient: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - transferFrom: TypedContractMethod< - [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - withdraw: TypedContractMethod< - [to: BytesLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - withdrawGasFee: TypedContractMethod<[], [[string, bigint]], "view">; - - withdrawGasFeeWithGasLimit: TypedContractMethod< - [gasLimit: BigNumberish], - [[string, bigint]], - "view" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "GAS_LIMIT" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "PROTOCOL_FLAT_FEE" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "allowance" - ): TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "approve" - ): TypedContractMethod< - [spender: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "balanceOf" - ): TypedContractMethod<[account: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "burn" - ): TypedContractMethod<[amount: BigNumberish], [boolean], "nonpayable">; - getFunction( - nameOrSignature: "deposit" - ): TypedContractMethod< - [to: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "setName" - ): TypedContractMethod<[newName: string], [void], "nonpayable">; - getFunction( - nameOrSignature: "setSymbol" - ): TypedContractMethod<[newSymbol: string], [void], "nonpayable">; - getFunction( - nameOrSignature: "totalSupply" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "transfer" - ): TypedContractMethod< - [recipient: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "transferFrom" - ): TypedContractMethod< - [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdraw" - ): TypedContractMethod< - [to: BytesLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdrawGasFee" - ): TypedContractMethod<[], [[string, bigint]], "view">; - getFunction( - nameOrSignature: "withdrawGasFeeWithGasLimit" - ): TypedContractMethod<[gasLimit: BigNumberish], [[string, bigint]], "view">; - - filters: {}; -} diff --git a/typechain-types/contracts/shared/interfaces/IZRC20.sol/IZRC20Metadata.ts b/typechain-types/contracts/shared/interfaces/IZRC20.sol/IZRC20Metadata.ts deleted file mode 100644 index 34ed6a65..00000000 --- a/typechain-types/contracts/shared/interfaces/IZRC20.sol/IZRC20Metadata.ts +++ /dev/null @@ -1,325 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../../../common"; - -export interface IZRC20MetadataInterface extends Interface { - getFunction( - nameOrSignature: - | "GAS_LIMIT" - | "PROTOCOL_FLAT_FEE" - | "allowance" - | "approve" - | "balanceOf" - | "burn" - | "decimals" - | "deposit" - | "name" - | "setName" - | "setSymbol" - | "symbol" - | "totalSupply" - | "transfer" - | "transferFrom" - | "withdraw" - | "withdrawGasFee" - | "withdrawGasFeeWithGasLimit" - ): FunctionFragment; - - encodeFunctionData(functionFragment: "GAS_LIMIT", values?: undefined): string; - encodeFunctionData( - functionFragment: "PROTOCOL_FLAT_FEE", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "allowance", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [AddressLike] - ): string; - encodeFunctionData(functionFragment: "burn", values: [BigNumberish]): string; - encodeFunctionData(functionFragment: "decimals", values?: undefined): string; - encodeFunctionData( - functionFragment: "deposit", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData(functionFragment: "setName", values: [string]): string; - encodeFunctionData(functionFragment: "setSymbol", values: [string]): string; - encodeFunctionData(functionFragment: "symbol", values?: undefined): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "withdraw", - values: [BytesLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "withdrawGasFee", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "withdrawGasFeeWithGasLimit", - values: [BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "GAS_LIMIT", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "PROTOCOL_FLAT_FEE", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "setName", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "setSymbol", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "withdrawGasFee", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "withdrawGasFeeWithGasLimit", - data: BytesLike - ): Result; -} - -export interface IZRC20Metadata extends BaseContract { - connect(runner?: ContractRunner | null): IZRC20Metadata; - waitForDeployment(): Promise; - - interface: IZRC20MetadataInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - GAS_LIMIT: TypedContractMethod<[], [bigint], "view">; - - PROTOCOL_FLAT_FEE: TypedContractMethod<[], [bigint], "view">; - - allowance: TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - - approve: TypedContractMethod< - [spender: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; - - burn: TypedContractMethod<[amount: BigNumberish], [boolean], "nonpayable">; - - decimals: TypedContractMethod<[], [bigint], "view">; - - deposit: TypedContractMethod< - [to: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - name: TypedContractMethod<[], [string], "view">; - - setName: TypedContractMethod<[newName: string], [void], "nonpayable">; - - setSymbol: TypedContractMethod<[newSymbol: string], [void], "nonpayable">; - - symbol: TypedContractMethod<[], [string], "view">; - - totalSupply: TypedContractMethod<[], [bigint], "view">; - - transfer: TypedContractMethod< - [recipient: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - transferFrom: TypedContractMethod< - [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - withdraw: TypedContractMethod< - [to: BytesLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - withdrawGasFee: TypedContractMethod<[], [[string, bigint]], "view">; - - withdrawGasFeeWithGasLimit: TypedContractMethod< - [gasLimit: BigNumberish], - [[string, bigint]], - "view" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "GAS_LIMIT" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "PROTOCOL_FLAT_FEE" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "allowance" - ): TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "approve" - ): TypedContractMethod< - [spender: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "balanceOf" - ): TypedContractMethod<[account: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "burn" - ): TypedContractMethod<[amount: BigNumberish], [boolean], "nonpayable">; - getFunction( - nameOrSignature: "decimals" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "deposit" - ): TypedContractMethod< - [to: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "name" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "setName" - ): TypedContractMethod<[newName: string], [void], "nonpayable">; - getFunction( - nameOrSignature: "setSymbol" - ): TypedContractMethod<[newSymbol: string], [void], "nonpayable">; - getFunction( - nameOrSignature: "symbol" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "totalSupply" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "transfer" - ): TypedContractMethod< - [recipient: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "transferFrom" - ): TypedContractMethod< - [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdraw" - ): TypedContractMethod< - [to: BytesLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdrawGasFee" - ): TypedContractMethod<[], [[string, bigint]], "view">; - getFunction( - nameOrSignature: "withdrawGasFeeWithGasLimit" - ): TypedContractMethod<[gasLimit: BigNumberish], [[string, bigint]], "view">; - - filters: {}; -} diff --git a/typechain-types/contracts/shared/interfaces/IZRC20.sol/ZRC20Events.ts b/typechain-types/contracts/shared/interfaces/IZRC20.sol/ZRC20Events.ts deleted file mode 100644 index 7bba7069..00000000 --- a/typechain-types/contracts/shared/interfaces/IZRC20.sol/ZRC20Events.ts +++ /dev/null @@ -1,361 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, -} from "../../../../common"; - -export interface ZRC20EventsInterface extends Interface { - getEvent( - nameOrSignatureOrTopic: - | "Approval" - | "Deposit" - | "Transfer" - | "UpdatedGasLimit" - | "UpdatedGateway" - | "UpdatedProtocolFlatFee" - | "UpdatedSystemContract" - | "Withdrawal" - ): EventFragment; -} - -export namespace ApprovalEvent { - export type InputTuple = [ - owner: AddressLike, - spender: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [owner: string, spender: string, value: bigint]; - export interface OutputObject { - owner: string; - spender: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace DepositEvent { - export type InputTuple = [ - from: BytesLike, - to: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [from: string, to: string, value: bigint]; - export interface OutputObject { - from: string; - to: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace TransferEvent { - export type InputTuple = [ - from: AddressLike, - to: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [from: string, to: string, value: bigint]; - export interface OutputObject { - from: string; - to: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UpdatedGasLimitEvent { - export type InputTuple = [gasLimit: BigNumberish]; - export type OutputTuple = [gasLimit: bigint]; - export interface OutputObject { - gasLimit: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UpdatedGatewayEvent { - export type InputTuple = [gateway: AddressLike]; - export type OutputTuple = [gateway: string]; - export interface OutputObject { - gateway: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UpdatedProtocolFlatFeeEvent { - export type InputTuple = [protocolFlatFee: BigNumberish]; - export type OutputTuple = [protocolFlatFee: bigint]; - export interface OutputObject { - protocolFlatFee: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UpdatedSystemContractEvent { - export type InputTuple = [systemContract: AddressLike]; - export type OutputTuple = [systemContract: string]; - export interface OutputObject { - systemContract: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WithdrawalEvent { - export type InputTuple = [ - from: AddressLike, - to: BytesLike, - value: BigNumberish, - gasFee: BigNumberish, - protocolFlatFee: BigNumberish - ]; - export type OutputTuple = [ - from: string, - to: string, - value: bigint, - gasFee: bigint, - protocolFlatFee: bigint - ]; - export interface OutputObject { - from: string; - to: string; - value: bigint; - gasFee: bigint; - protocolFlatFee: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface ZRC20Events extends BaseContract { - connect(runner?: ContractRunner | null): ZRC20Events; - waitForDeployment(): Promise; - - interface: ZRC20EventsInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - getEvent( - key: "Approval" - ): TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - getEvent( - key: "Deposit" - ): TypedContractEvent< - DepositEvent.InputTuple, - DepositEvent.OutputTuple, - DepositEvent.OutputObject - >; - getEvent( - key: "Transfer" - ): TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - getEvent( - key: "UpdatedGasLimit" - ): TypedContractEvent< - UpdatedGasLimitEvent.InputTuple, - UpdatedGasLimitEvent.OutputTuple, - UpdatedGasLimitEvent.OutputObject - >; - getEvent( - key: "UpdatedGateway" - ): TypedContractEvent< - UpdatedGatewayEvent.InputTuple, - UpdatedGatewayEvent.OutputTuple, - UpdatedGatewayEvent.OutputObject - >; - getEvent( - key: "UpdatedProtocolFlatFee" - ): TypedContractEvent< - UpdatedProtocolFlatFeeEvent.InputTuple, - UpdatedProtocolFlatFeeEvent.OutputTuple, - UpdatedProtocolFlatFeeEvent.OutputObject - >; - getEvent( - key: "UpdatedSystemContract" - ): TypedContractEvent< - UpdatedSystemContractEvent.InputTuple, - UpdatedSystemContractEvent.OutputTuple, - UpdatedSystemContractEvent.OutputObject - >; - getEvent( - key: "Withdrawal" - ): TypedContractEvent< - WithdrawalEvent.InputTuple, - WithdrawalEvent.OutputTuple, - WithdrawalEvent.OutputObject - >; - - filters: { - "Approval(address,address,uint256)": TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - Approval: TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - - "Deposit(bytes,address,uint256)": TypedContractEvent< - DepositEvent.InputTuple, - DepositEvent.OutputTuple, - DepositEvent.OutputObject - >; - Deposit: TypedContractEvent< - DepositEvent.InputTuple, - DepositEvent.OutputTuple, - DepositEvent.OutputObject - >; - - "Transfer(address,address,uint256)": TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - Transfer: TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - - "UpdatedGasLimit(uint256)": TypedContractEvent< - UpdatedGasLimitEvent.InputTuple, - UpdatedGasLimitEvent.OutputTuple, - UpdatedGasLimitEvent.OutputObject - >; - UpdatedGasLimit: TypedContractEvent< - UpdatedGasLimitEvent.InputTuple, - UpdatedGasLimitEvent.OutputTuple, - UpdatedGasLimitEvent.OutputObject - >; - - "UpdatedGateway(address)": TypedContractEvent< - UpdatedGatewayEvent.InputTuple, - UpdatedGatewayEvent.OutputTuple, - UpdatedGatewayEvent.OutputObject - >; - UpdatedGateway: TypedContractEvent< - UpdatedGatewayEvent.InputTuple, - UpdatedGatewayEvent.OutputTuple, - UpdatedGatewayEvent.OutputObject - >; - - "UpdatedProtocolFlatFee(uint256)": TypedContractEvent< - UpdatedProtocolFlatFeeEvent.InputTuple, - UpdatedProtocolFlatFeeEvent.OutputTuple, - UpdatedProtocolFlatFeeEvent.OutputObject - >; - UpdatedProtocolFlatFee: TypedContractEvent< - UpdatedProtocolFlatFeeEvent.InputTuple, - UpdatedProtocolFlatFeeEvent.OutputTuple, - UpdatedProtocolFlatFeeEvent.OutputObject - >; - - "UpdatedSystemContract(address)": TypedContractEvent< - UpdatedSystemContractEvent.InputTuple, - UpdatedSystemContractEvent.OutputTuple, - UpdatedSystemContractEvent.OutputObject - >; - UpdatedSystemContract: TypedContractEvent< - UpdatedSystemContractEvent.InputTuple, - UpdatedSystemContractEvent.OutputTuple, - UpdatedSystemContractEvent.OutputObject - >; - - "Withdrawal(address,bytes,uint256,uint256,uint256)": TypedContractEvent< - WithdrawalEvent.InputTuple, - WithdrawalEvent.OutputTuple, - WithdrawalEvent.OutputObject - >; - Withdrawal: TypedContractEvent< - WithdrawalEvent.InputTuple, - WithdrawalEvent.OutputTuple, - WithdrawalEvent.OutputObject - >; - }; -} diff --git a/typechain-types/contracts/shared/interfaces/IZRC20.sol/index.ts b/typechain-types/contracts/shared/interfaces/IZRC20.sol/index.ts deleted file mode 100644 index 603ef6e3..00000000 --- a/typechain-types/contracts/shared/interfaces/IZRC20.sol/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { IZRC20 } from "./IZRC20"; -export type { IZRC20Metadata } from "./IZRC20Metadata"; -export type { ZRC20Events } from "./ZRC20Events"; diff --git a/typechain-types/contracts/shared/interfaces/index.ts b/typechain-types/contracts/shared/interfaces/index.ts deleted file mode 100644 index 290ffe2f..00000000 --- a/typechain-types/contracts/shared/interfaces/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as izrc20Sol from "./IZRC20.sol"; -export type { izrc20Sol }; -export type { IERC20 } from "./IERC20"; -export type { IWETH } from "./IWETH"; diff --git a/typechain-types/contracts/shared/libraries/SafeMath.sol/Math.ts b/typechain-types/contracts/shared/libraries/SafeMath.sol/Math.ts deleted file mode 100644 index cfc37039..00000000 --- a/typechain-types/contracts/shared/libraries/SafeMath.sol/Math.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - FunctionFragment, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, -} from "../../../../common"; - -export interface MathInterface extends Interface {} - -export interface Math extends BaseContract { - connect(runner?: ContractRunner | null): Math; - waitForDeployment(): Promise; - - interface: MathInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - filters: {}; -} diff --git a/typechain-types/contracts/shared/libraries/SafeMath.sol/index.ts b/typechain-types/contracts/shared/libraries/SafeMath.sol/index.ts deleted file mode 100644 index 48a816e8..00000000 --- a/typechain-types/contracts/shared/libraries/SafeMath.sol/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { Math } from "./Math"; diff --git a/typechain-types/contracts/shared/libraries/UniswapV2Library.ts b/typechain-types/contracts/shared/libraries/UniswapV2Library.ts deleted file mode 100644 index 14f2bdf5..00000000 --- a/typechain-types/contracts/shared/libraries/UniswapV2Library.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - FunctionFragment, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, -} from "../../../common"; - -export interface UniswapV2LibraryInterface extends Interface {} - -export interface UniswapV2Library extends BaseContract { - connect(runner?: ContractRunner | null): UniswapV2Library; - waitForDeployment(): Promise; - - interface: UniswapV2LibraryInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - filters: {}; -} diff --git a/typechain-types/contracts/shared/libraries/index.ts b/typechain-types/contracts/shared/libraries/index.ts deleted file mode 100644 index 399c5bba..00000000 --- a/typechain-types/contracts/shared/libraries/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as safeMathSol from "./SafeMath.sol"; -export type { safeMathSol }; -export type { UniswapV2Library } from "./UniswapV2Library"; diff --git a/typechain-types/contracts/testing/EVMSetup.t.sol/EVMSetup.ts b/typechain-types/contracts/testing/EVMSetup.t.sol/EVMSetup.ts deleted file mode 100644 index edfba5bf..00000000 --- a/typechain-types/contracts/testing/EVMSetup.t.sol/EVMSetup.ts +++ /dev/null @@ -1,1111 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../common"; - -export declare namespace StdInvariant { - export type FuzzSelectorStruct = { - addr: AddressLike; - selectors: BytesLike[]; - }; - - export type FuzzSelectorStructOutput = [addr: string, selectors: string[]] & { - addr: string; - selectors: string[]; - }; - - export type FuzzArtifactSelectorStruct = { - artifact: string; - selectors: BytesLike[]; - }; - - export type FuzzArtifactSelectorStructOutput = [ - artifact: string, - selectors: string[] - ] & { artifact: string; selectors: string[] }; - - export type FuzzInterfaceStruct = { addr: AddressLike; artifacts: string[] }; - - export type FuzzInterfaceStructOutput = [ - addr: string, - artifacts: string[] - ] & { addr: string; artifacts: string[] }; -} - -export interface EVMSetupInterface extends Interface { - getFunction( - nameOrSignature: - | "IS_TEST" - | "chainIdETH" - | "custody" - | "deployer" - | "excludeArtifacts" - | "excludeContracts" - | "excludeSelectors" - | "excludeSenders" - | "failed" - | "nodeLogicMockAddr" - | "setupEVMChain" - | "systemContract" - | "targetArtifactSelectors" - | "targetArtifacts" - | "targetContracts" - | "targetInterfaces" - | "targetSelectors" - | "targetSenders" - | "tss" - | "uniswapV2Router" - | "wrapGatewayEVM" - | "wzeta" - | "zetaConnector" - | "zetaToken" - ): FunctionFragment; - - getEvent( - nameOrSignatureOrTopic: - | "log" - | "log_address" - | "log_array(uint256[])" - | "log_array(int256[])" - | "log_array(address[])" - | "log_bytes" - | "log_bytes32" - | "log_int" - | "log_named_address" - | "log_named_array(string,uint256[])" - | "log_named_array(string,int256[])" - | "log_named_array(string,address[])" - | "log_named_bytes" - | "log_named_bytes32" - | "log_named_decimal_int" - | "log_named_decimal_uint" - | "log_named_int" - | "log_named_string" - | "log_named_uint" - | "log_string" - | "log_uint" - | "logs" - ): EventFragment; - - encodeFunctionData(functionFragment: "IS_TEST", values?: undefined): string; - encodeFunctionData( - functionFragment: "chainIdETH", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "custody", - values: [BigNumberish] - ): string; - encodeFunctionData(functionFragment: "deployer", values?: undefined): string; - encodeFunctionData( - functionFragment: "excludeArtifacts", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "excludeContracts", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "excludeSelectors", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "excludeSenders", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "failed", values?: undefined): string; - encodeFunctionData( - functionFragment: "nodeLogicMockAddr", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "setupEVMChain", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "systemContract", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetArtifactSelectors", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetArtifacts", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetContracts", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetInterfaces", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetSelectors", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetSenders", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "tss", values?: undefined): string; - encodeFunctionData( - functionFragment: "uniswapV2Router", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "wrapGatewayEVM", - values: [BigNumberish] - ): string; - encodeFunctionData(functionFragment: "wzeta", values?: undefined): string; - encodeFunctionData( - functionFragment: "zetaConnector", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "zetaToken", - values: [BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "IS_TEST", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "chainIdETH", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "custody", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "deployer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "excludeArtifacts", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "excludeContracts", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "excludeSelectors", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "excludeSenders", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "failed", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "nodeLogicMockAddr", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "setupEVMChain", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "systemContract", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetArtifactSelectors", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetArtifacts", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetContracts", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetInterfaces", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetSelectors", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetSenders", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "tss", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "uniswapV2Router", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "wrapGatewayEVM", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "wzeta", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "zetaConnector", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "zetaToken", data: BytesLike): Result; -} - -export namespace logEvent { - export type InputTuple = [arg0: string]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_addressEvent { - export type InputTuple = [arg0: AddressLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_array_uint256_array_Event { - export type InputTuple = [val: BigNumberish[]]; - export type OutputTuple = [val: bigint[]]; - export interface OutputObject { - val: bigint[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_array_int256_array_Event { - export type InputTuple = [val: BigNumberish[]]; - export type OutputTuple = [val: bigint[]]; - export interface OutputObject { - val: bigint[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_array_address_array_Event { - export type InputTuple = [val: AddressLike[]]; - export type OutputTuple = [val: string[]]; - export interface OutputObject { - val: string[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_bytesEvent { - export type InputTuple = [arg0: BytesLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_bytes32Event { - export type InputTuple = [arg0: BytesLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_intEvent { - export type InputTuple = [arg0: BigNumberish]; - export type OutputTuple = [arg0: bigint]; - export interface OutputObject { - arg0: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_addressEvent { - export type InputTuple = [key: string, val: AddressLike]; - export type OutputTuple = [key: string, val: string]; - export interface OutputObject { - key: string; - val: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_array_string_uint256_array_Event { - export type InputTuple = [key: string, val: BigNumberish[]]; - export type OutputTuple = [key: string, val: bigint[]]; - export interface OutputObject { - key: string; - val: bigint[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_array_string_int256_array_Event { - export type InputTuple = [key: string, val: BigNumberish[]]; - export type OutputTuple = [key: string, val: bigint[]]; - export interface OutputObject { - key: string; - val: bigint[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_array_string_address_array_Event { - export type InputTuple = [key: string, val: AddressLike[]]; - export type OutputTuple = [key: string, val: string[]]; - export interface OutputObject { - key: string; - val: string[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_bytesEvent { - export type InputTuple = [key: string, val: BytesLike]; - export type OutputTuple = [key: string, val: string]; - export interface OutputObject { - key: string; - val: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_bytes32Event { - export type InputTuple = [key: string, val: BytesLike]; - export type OutputTuple = [key: string, val: string]; - export interface OutputObject { - key: string; - val: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_decimal_intEvent { - export type InputTuple = [ - key: string, - val: BigNumberish, - decimals: BigNumberish - ]; - export type OutputTuple = [key: string, val: bigint, decimals: bigint]; - export interface OutputObject { - key: string; - val: bigint; - decimals: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_decimal_uintEvent { - export type InputTuple = [ - key: string, - val: BigNumberish, - decimals: BigNumberish - ]; - export type OutputTuple = [key: string, val: bigint, decimals: bigint]; - export interface OutputObject { - key: string; - val: bigint; - decimals: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_intEvent { - export type InputTuple = [key: string, val: BigNumberish]; - export type OutputTuple = [key: string, val: bigint]; - export interface OutputObject { - key: string; - val: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_stringEvent { - export type InputTuple = [key: string, val: string]; - export type OutputTuple = [key: string, val: string]; - export interface OutputObject { - key: string; - val: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_uintEvent { - export type InputTuple = [key: string, val: BigNumberish]; - export type OutputTuple = [key: string, val: bigint]; - export interface OutputObject { - key: string; - val: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_stringEvent { - export type InputTuple = [arg0: string]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_uintEvent { - export type InputTuple = [arg0: BigNumberish]; - export type OutputTuple = [arg0: bigint]; - export interface OutputObject { - arg0: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace logsEvent { - export type InputTuple = [arg0: BytesLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface EVMSetup extends BaseContract { - connect(runner?: ContractRunner | null): EVMSetup; - waitForDeployment(): Promise; - - interface: EVMSetupInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - IS_TEST: TypedContractMethod<[], [boolean], "view">; - - chainIdETH: TypedContractMethod<[], [bigint], "view">; - - custody: TypedContractMethod<[arg0: BigNumberish], [string], "view">; - - deployer: TypedContractMethod<[], [string], "view">; - - excludeArtifacts: TypedContractMethod<[], [string[]], "view">; - - excludeContracts: TypedContractMethod<[], [string[]], "view">; - - excludeSelectors: TypedContractMethod< - [], - [StdInvariant.FuzzSelectorStructOutput[]], - "view" - >; - - excludeSenders: TypedContractMethod<[], [string[]], "view">; - - failed: TypedContractMethod<[], [boolean], "view">; - - nodeLogicMockAddr: TypedContractMethod<[], [string], "view">; - - setupEVMChain: TypedContractMethod< - [chainId: BigNumberish], - [void], - "nonpayable" - >; - - systemContract: TypedContractMethod<[], [string], "view">; - - targetArtifactSelectors: TypedContractMethod< - [], - [StdInvariant.FuzzArtifactSelectorStructOutput[]], - "view" - >; - - targetArtifacts: TypedContractMethod<[], [string[]], "view">; - - targetContracts: TypedContractMethod<[], [string[]], "view">; - - targetInterfaces: TypedContractMethod< - [], - [StdInvariant.FuzzInterfaceStructOutput[]], - "view" - >; - - targetSelectors: TypedContractMethod< - [], - [StdInvariant.FuzzSelectorStructOutput[]], - "view" - >; - - targetSenders: TypedContractMethod<[], [string[]], "view">; - - tss: TypedContractMethod<[], [string], "view">; - - uniswapV2Router: TypedContractMethod<[], [string], "view">; - - wrapGatewayEVM: TypedContractMethod<[arg0: BigNumberish], [string], "view">; - - wzeta: TypedContractMethod<[], [string], "view">; - - zetaConnector: TypedContractMethod<[arg0: BigNumberish], [string], "view">; - - zetaToken: TypedContractMethod<[arg0: BigNumberish], [string], "view">; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "IS_TEST" - ): TypedContractMethod<[], [boolean], "view">; - getFunction( - nameOrSignature: "chainIdETH" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "custody" - ): TypedContractMethod<[arg0: BigNumberish], [string], "view">; - getFunction( - nameOrSignature: "deployer" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "excludeArtifacts" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "excludeContracts" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "excludeSelectors" - ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; - getFunction( - nameOrSignature: "excludeSenders" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "failed" - ): TypedContractMethod<[], [boolean], "view">; - getFunction( - nameOrSignature: "nodeLogicMockAddr" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "setupEVMChain" - ): TypedContractMethod<[chainId: BigNumberish], [void], "nonpayable">; - getFunction( - nameOrSignature: "systemContract" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "targetArtifactSelectors" - ): TypedContractMethod< - [], - [StdInvariant.FuzzArtifactSelectorStructOutput[]], - "view" - >; - getFunction( - nameOrSignature: "targetArtifacts" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "targetContracts" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "targetInterfaces" - ): TypedContractMethod< - [], - [StdInvariant.FuzzInterfaceStructOutput[]], - "view" - >; - getFunction( - nameOrSignature: "targetSelectors" - ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; - getFunction( - nameOrSignature: "targetSenders" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "tss" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "uniswapV2Router" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "wrapGatewayEVM" - ): TypedContractMethod<[arg0: BigNumberish], [string], "view">; - getFunction( - nameOrSignature: "wzeta" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "zetaConnector" - ): TypedContractMethod<[arg0: BigNumberish], [string], "view">; - getFunction( - nameOrSignature: "zetaToken" - ): TypedContractMethod<[arg0: BigNumberish], [string], "view">; - - getEvent( - key: "log" - ): TypedContractEvent< - logEvent.InputTuple, - logEvent.OutputTuple, - logEvent.OutputObject - >; - getEvent( - key: "log_address" - ): TypedContractEvent< - log_addressEvent.InputTuple, - log_addressEvent.OutputTuple, - log_addressEvent.OutputObject - >; - getEvent( - key: "log_array(uint256[])" - ): TypedContractEvent< - log_array_uint256_array_Event.InputTuple, - log_array_uint256_array_Event.OutputTuple, - log_array_uint256_array_Event.OutputObject - >; - getEvent( - key: "log_array(int256[])" - ): TypedContractEvent< - log_array_int256_array_Event.InputTuple, - log_array_int256_array_Event.OutputTuple, - log_array_int256_array_Event.OutputObject - >; - getEvent( - key: "log_array(address[])" - ): TypedContractEvent< - log_array_address_array_Event.InputTuple, - log_array_address_array_Event.OutputTuple, - log_array_address_array_Event.OutputObject - >; - getEvent( - key: "log_bytes" - ): TypedContractEvent< - log_bytesEvent.InputTuple, - log_bytesEvent.OutputTuple, - log_bytesEvent.OutputObject - >; - getEvent( - key: "log_bytes32" - ): TypedContractEvent< - log_bytes32Event.InputTuple, - log_bytes32Event.OutputTuple, - log_bytes32Event.OutputObject - >; - getEvent( - key: "log_int" - ): TypedContractEvent< - log_intEvent.InputTuple, - log_intEvent.OutputTuple, - log_intEvent.OutputObject - >; - getEvent( - key: "log_named_address" - ): TypedContractEvent< - log_named_addressEvent.InputTuple, - log_named_addressEvent.OutputTuple, - log_named_addressEvent.OutputObject - >; - getEvent( - key: "log_named_array(string,uint256[])" - ): TypedContractEvent< - log_named_array_string_uint256_array_Event.InputTuple, - log_named_array_string_uint256_array_Event.OutputTuple, - log_named_array_string_uint256_array_Event.OutputObject - >; - getEvent( - key: "log_named_array(string,int256[])" - ): TypedContractEvent< - log_named_array_string_int256_array_Event.InputTuple, - log_named_array_string_int256_array_Event.OutputTuple, - log_named_array_string_int256_array_Event.OutputObject - >; - getEvent( - key: "log_named_array(string,address[])" - ): TypedContractEvent< - log_named_array_string_address_array_Event.InputTuple, - log_named_array_string_address_array_Event.OutputTuple, - log_named_array_string_address_array_Event.OutputObject - >; - getEvent( - key: "log_named_bytes" - ): TypedContractEvent< - log_named_bytesEvent.InputTuple, - log_named_bytesEvent.OutputTuple, - log_named_bytesEvent.OutputObject - >; - getEvent( - key: "log_named_bytes32" - ): TypedContractEvent< - log_named_bytes32Event.InputTuple, - log_named_bytes32Event.OutputTuple, - log_named_bytes32Event.OutputObject - >; - getEvent( - key: "log_named_decimal_int" - ): TypedContractEvent< - log_named_decimal_intEvent.InputTuple, - log_named_decimal_intEvent.OutputTuple, - log_named_decimal_intEvent.OutputObject - >; - getEvent( - key: "log_named_decimal_uint" - ): TypedContractEvent< - log_named_decimal_uintEvent.InputTuple, - log_named_decimal_uintEvent.OutputTuple, - log_named_decimal_uintEvent.OutputObject - >; - getEvent( - key: "log_named_int" - ): TypedContractEvent< - log_named_intEvent.InputTuple, - log_named_intEvent.OutputTuple, - log_named_intEvent.OutputObject - >; - getEvent( - key: "log_named_string" - ): TypedContractEvent< - log_named_stringEvent.InputTuple, - log_named_stringEvent.OutputTuple, - log_named_stringEvent.OutputObject - >; - getEvent( - key: "log_named_uint" - ): TypedContractEvent< - log_named_uintEvent.InputTuple, - log_named_uintEvent.OutputTuple, - log_named_uintEvent.OutputObject - >; - getEvent( - key: "log_string" - ): TypedContractEvent< - log_stringEvent.InputTuple, - log_stringEvent.OutputTuple, - log_stringEvent.OutputObject - >; - getEvent( - key: "log_uint" - ): TypedContractEvent< - log_uintEvent.InputTuple, - log_uintEvent.OutputTuple, - log_uintEvent.OutputObject - >; - getEvent( - key: "logs" - ): TypedContractEvent< - logsEvent.InputTuple, - logsEvent.OutputTuple, - logsEvent.OutputObject - >; - - filters: { - "log(string)": TypedContractEvent< - logEvent.InputTuple, - logEvent.OutputTuple, - logEvent.OutputObject - >; - log: TypedContractEvent< - logEvent.InputTuple, - logEvent.OutputTuple, - logEvent.OutputObject - >; - - "log_address(address)": TypedContractEvent< - log_addressEvent.InputTuple, - log_addressEvent.OutputTuple, - log_addressEvent.OutputObject - >; - log_address: TypedContractEvent< - log_addressEvent.InputTuple, - log_addressEvent.OutputTuple, - log_addressEvent.OutputObject - >; - - "log_array(uint256[])": TypedContractEvent< - log_array_uint256_array_Event.InputTuple, - log_array_uint256_array_Event.OutputTuple, - log_array_uint256_array_Event.OutputObject - >; - "log_array(int256[])": TypedContractEvent< - log_array_int256_array_Event.InputTuple, - log_array_int256_array_Event.OutputTuple, - log_array_int256_array_Event.OutputObject - >; - "log_array(address[])": TypedContractEvent< - log_array_address_array_Event.InputTuple, - log_array_address_array_Event.OutputTuple, - log_array_address_array_Event.OutputObject - >; - - "log_bytes(bytes)": TypedContractEvent< - log_bytesEvent.InputTuple, - log_bytesEvent.OutputTuple, - log_bytesEvent.OutputObject - >; - log_bytes: TypedContractEvent< - log_bytesEvent.InputTuple, - log_bytesEvent.OutputTuple, - log_bytesEvent.OutputObject - >; - - "log_bytes32(bytes32)": TypedContractEvent< - log_bytes32Event.InputTuple, - log_bytes32Event.OutputTuple, - log_bytes32Event.OutputObject - >; - log_bytes32: TypedContractEvent< - log_bytes32Event.InputTuple, - log_bytes32Event.OutputTuple, - log_bytes32Event.OutputObject - >; - - "log_int(int256)": TypedContractEvent< - log_intEvent.InputTuple, - log_intEvent.OutputTuple, - log_intEvent.OutputObject - >; - log_int: TypedContractEvent< - log_intEvent.InputTuple, - log_intEvent.OutputTuple, - log_intEvent.OutputObject - >; - - "log_named_address(string,address)": TypedContractEvent< - log_named_addressEvent.InputTuple, - log_named_addressEvent.OutputTuple, - log_named_addressEvent.OutputObject - >; - log_named_address: TypedContractEvent< - log_named_addressEvent.InputTuple, - log_named_addressEvent.OutputTuple, - log_named_addressEvent.OutputObject - >; - - "log_named_array(string,uint256[])": TypedContractEvent< - log_named_array_string_uint256_array_Event.InputTuple, - log_named_array_string_uint256_array_Event.OutputTuple, - log_named_array_string_uint256_array_Event.OutputObject - >; - "log_named_array(string,int256[])": TypedContractEvent< - log_named_array_string_int256_array_Event.InputTuple, - log_named_array_string_int256_array_Event.OutputTuple, - log_named_array_string_int256_array_Event.OutputObject - >; - "log_named_array(string,address[])": TypedContractEvent< - log_named_array_string_address_array_Event.InputTuple, - log_named_array_string_address_array_Event.OutputTuple, - log_named_array_string_address_array_Event.OutputObject - >; - - "log_named_bytes(string,bytes)": TypedContractEvent< - log_named_bytesEvent.InputTuple, - log_named_bytesEvent.OutputTuple, - log_named_bytesEvent.OutputObject - >; - log_named_bytes: TypedContractEvent< - log_named_bytesEvent.InputTuple, - log_named_bytesEvent.OutputTuple, - log_named_bytesEvent.OutputObject - >; - - "log_named_bytes32(string,bytes32)": TypedContractEvent< - log_named_bytes32Event.InputTuple, - log_named_bytes32Event.OutputTuple, - log_named_bytes32Event.OutputObject - >; - log_named_bytes32: TypedContractEvent< - log_named_bytes32Event.InputTuple, - log_named_bytes32Event.OutputTuple, - log_named_bytes32Event.OutputObject - >; - - "log_named_decimal_int(string,int256,uint256)": TypedContractEvent< - log_named_decimal_intEvent.InputTuple, - log_named_decimal_intEvent.OutputTuple, - log_named_decimal_intEvent.OutputObject - >; - log_named_decimal_int: TypedContractEvent< - log_named_decimal_intEvent.InputTuple, - log_named_decimal_intEvent.OutputTuple, - log_named_decimal_intEvent.OutputObject - >; - - "log_named_decimal_uint(string,uint256,uint256)": TypedContractEvent< - log_named_decimal_uintEvent.InputTuple, - log_named_decimal_uintEvent.OutputTuple, - log_named_decimal_uintEvent.OutputObject - >; - log_named_decimal_uint: TypedContractEvent< - log_named_decimal_uintEvent.InputTuple, - log_named_decimal_uintEvent.OutputTuple, - log_named_decimal_uintEvent.OutputObject - >; - - "log_named_int(string,int256)": TypedContractEvent< - log_named_intEvent.InputTuple, - log_named_intEvent.OutputTuple, - log_named_intEvent.OutputObject - >; - log_named_int: TypedContractEvent< - log_named_intEvent.InputTuple, - log_named_intEvent.OutputTuple, - log_named_intEvent.OutputObject - >; - - "log_named_string(string,string)": TypedContractEvent< - log_named_stringEvent.InputTuple, - log_named_stringEvent.OutputTuple, - log_named_stringEvent.OutputObject - >; - log_named_string: TypedContractEvent< - log_named_stringEvent.InputTuple, - log_named_stringEvent.OutputTuple, - log_named_stringEvent.OutputObject - >; - - "log_named_uint(string,uint256)": TypedContractEvent< - log_named_uintEvent.InputTuple, - log_named_uintEvent.OutputTuple, - log_named_uintEvent.OutputObject - >; - log_named_uint: TypedContractEvent< - log_named_uintEvent.InputTuple, - log_named_uintEvent.OutputTuple, - log_named_uintEvent.OutputObject - >; - - "log_string(string)": TypedContractEvent< - log_stringEvent.InputTuple, - log_stringEvent.OutputTuple, - log_stringEvent.OutputObject - >; - log_string: TypedContractEvent< - log_stringEvent.InputTuple, - log_stringEvent.OutputTuple, - log_stringEvent.OutputObject - >; - - "log_uint(uint256)": TypedContractEvent< - log_uintEvent.InputTuple, - log_uintEvent.OutputTuple, - log_uintEvent.OutputObject - >; - log_uint: TypedContractEvent< - log_uintEvent.InputTuple, - log_uintEvent.OutputTuple, - log_uintEvent.OutputObject - >; - - "logs(bytes)": TypedContractEvent< - logsEvent.InputTuple, - logsEvent.OutputTuple, - logsEvent.OutputObject - >; - logs: TypedContractEvent< - logsEvent.InputTuple, - logsEvent.OutputTuple, - logsEvent.OutputObject - >; - }; -} diff --git a/typechain-types/contracts/testing/EVMSetup.t.sol/ITestERC20.ts b/typechain-types/contracts/testing/EVMSetup.t.sol/ITestERC20.ts deleted file mode 100644 index bc53b24f..00000000 --- a/typechain-types/contracts/testing/EVMSetup.t.sol/ITestERC20.ts +++ /dev/null @@ -1,97 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../../common"; - -export interface ITestERC20Interface extends Interface { - getFunction(nameOrSignature: "mint"): FunctionFragment; - - encodeFunctionData( - functionFragment: "mint", - values: [AddressLike, BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; -} - -export interface ITestERC20 extends BaseContract { - connect(runner?: ContractRunner | null): ITestERC20; - waitForDeployment(): Promise; - - interface: ITestERC20Interface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - mint: TypedContractMethod< - [to: AddressLike, amount: BigNumberish], - [void], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "mint" - ): TypedContractMethod< - [to: AddressLike, amount: BigNumberish], - [void], - "nonpayable" - >; - - filters: {}; -} diff --git a/typechain-types/contracts/testing/EVMSetup.t.sol/IZetaNonEth.ts b/typechain-types/contracts/testing/EVMSetup.t.sol/IZetaNonEth.ts deleted file mode 100644 index 5ab67737..00000000 --- a/typechain-types/contracts/testing/EVMSetup.t.sol/IZetaNonEth.ts +++ /dev/null @@ -1,101 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BytesLike, - FunctionFragment, - Result, - Interface, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../../common"; - -export interface IZetaNonEthInterface extends Interface { - getFunction( - nameOrSignature: "updateTssAndConnectorAddresses" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "updateTssAndConnectorAddresses", - values: [AddressLike, AddressLike] - ): string; - - decodeFunctionResult( - functionFragment: "updateTssAndConnectorAddresses", - data: BytesLike - ): Result; -} - -export interface IZetaNonEth extends BaseContract { - connect(runner?: ContractRunner | null): IZetaNonEth; - waitForDeployment(): Promise; - - interface: IZetaNonEthInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - updateTssAndConnectorAddresses: TypedContractMethod< - [tssAddress_: AddressLike, connectorAddress_: AddressLike], - [void], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "updateTssAndConnectorAddresses" - ): TypedContractMethod< - [tssAddress_: AddressLike, connectorAddress_: AddressLike], - [void], - "nonpayable" - >; - - filters: {}; -} diff --git a/typechain-types/contracts/testing/EVMSetup.t.sol/index.ts b/typechain-types/contracts/testing/EVMSetup.t.sol/index.ts deleted file mode 100644 index 4fc3ad3d..00000000 --- a/typechain-types/contracts/testing/EVMSetup.t.sol/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { EVMSetup } from "./EVMSetup"; -export type { ITestERC20 } from "./ITestERC20"; -export type { IZetaNonEth } from "./IZetaNonEth"; diff --git a/typechain-types/contracts/testing/FoundrySetup.t.sol/FoundrySetup.ts b/typechain-types/contracts/testing/FoundrySetup.t.sol/FoundrySetup.ts deleted file mode 100644 index 544028e7..00000000 --- a/typechain-types/contracts/testing/FoundrySetup.t.sol/FoundrySetup.ts +++ /dev/null @@ -1,1225 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../common"; - -export declare namespace StdInvariant { - export type FuzzSelectorStruct = { - addr: AddressLike; - selectors: BytesLike[]; - }; - - export type FuzzSelectorStructOutput = [addr: string, selectors: string[]] & { - addr: string; - selectors: string[]; - }; - - export type FuzzArtifactSelectorStruct = { - artifact: string; - selectors: BytesLike[]; - }; - - export type FuzzArtifactSelectorStructOutput = [ - artifact: string, - selectors: string[] - ] & { artifact: string; selectors: string[] }; - - export type FuzzInterfaceStruct = { addr: AddressLike; artifacts: string[] }; - - export type FuzzInterfaceStructOutput = [ - addr: string, - artifacts: string[] - ] & { addr: string; artifacts: string[] }; -} - -export interface FoundrySetupInterface extends Interface { - getFunction( - nameOrSignature: - | "FUNGIBLE_MODULE_ADDRESS" - | "IS_TEST" - | "bnb_bnb" - | "chainIdBNB" - | "chainIdETH" - | "chainIdZeta" - | "deployer" - | "eth_eth" - | "evmSetup" - | "excludeArtifacts" - | "excludeContracts" - | "excludeSelectors" - | "excludeSenders" - | "failed" - | "nodeLogicMock" - | "setUp" - | "targetArtifactSelectors" - | "targetArtifacts" - | "targetContracts" - | "targetInterfaces" - | "targetSelectors" - | "targetSenders" - | "tokenSetup" - | "tss" - | "usdc_bnb" - | "usdc_eth" - | "zetaSetup" - ): FunctionFragment; - - getEvent( - nameOrSignatureOrTopic: - | "log" - | "log_address" - | "log_array(uint256[])" - | "log_array(int256[])" - | "log_array(address[])" - | "log_bytes" - | "log_bytes32" - | "log_int" - | "log_named_address" - | "log_named_array(string,uint256[])" - | "log_named_array(string,int256[])" - | "log_named_array(string,address[])" - | "log_named_bytes" - | "log_named_bytes32" - | "log_named_decimal_int" - | "log_named_decimal_uint" - | "log_named_int" - | "log_named_string" - | "log_named_uint" - | "log_string" - | "log_uint" - | "logs" - ): EventFragment; - - encodeFunctionData( - functionFragment: "FUNGIBLE_MODULE_ADDRESS", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "IS_TEST", values?: undefined): string; - encodeFunctionData(functionFragment: "bnb_bnb", values?: undefined): string; - encodeFunctionData( - functionFragment: "chainIdBNB", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "chainIdETH", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "chainIdZeta", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "deployer", values?: undefined): string; - encodeFunctionData(functionFragment: "eth_eth", values?: undefined): string; - encodeFunctionData(functionFragment: "evmSetup", values?: undefined): string; - encodeFunctionData( - functionFragment: "excludeArtifacts", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "excludeContracts", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "excludeSelectors", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "excludeSenders", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "failed", values?: undefined): string; - encodeFunctionData( - functionFragment: "nodeLogicMock", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "setUp", values?: undefined): string; - encodeFunctionData( - functionFragment: "targetArtifactSelectors", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetArtifacts", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetContracts", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetInterfaces", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetSelectors", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetSenders", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "tokenSetup", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "tss", values?: undefined): string; - encodeFunctionData(functionFragment: "usdc_bnb", values?: undefined): string; - encodeFunctionData(functionFragment: "usdc_eth", values?: undefined): string; - encodeFunctionData(functionFragment: "zetaSetup", values?: undefined): string; - - decodeFunctionResult( - functionFragment: "FUNGIBLE_MODULE_ADDRESS", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "IS_TEST", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "bnb_bnb", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "chainIdBNB", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "chainIdETH", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "chainIdZeta", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "deployer", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "eth_eth", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "evmSetup", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "excludeArtifacts", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "excludeContracts", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "excludeSelectors", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "excludeSenders", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "failed", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "nodeLogicMock", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "setUp", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "targetArtifactSelectors", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetArtifacts", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetContracts", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetInterfaces", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetSelectors", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetSenders", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "tokenSetup", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "tss", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "usdc_bnb", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "usdc_eth", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "zetaSetup", data: BytesLike): Result; -} - -export namespace logEvent { - export type InputTuple = [arg0: string]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_addressEvent { - export type InputTuple = [arg0: AddressLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_array_uint256_array_Event { - export type InputTuple = [val: BigNumberish[]]; - export type OutputTuple = [val: bigint[]]; - export interface OutputObject { - val: bigint[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_array_int256_array_Event { - export type InputTuple = [val: BigNumberish[]]; - export type OutputTuple = [val: bigint[]]; - export interface OutputObject { - val: bigint[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_array_address_array_Event { - export type InputTuple = [val: AddressLike[]]; - export type OutputTuple = [val: string[]]; - export interface OutputObject { - val: string[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_bytesEvent { - export type InputTuple = [arg0: BytesLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_bytes32Event { - export type InputTuple = [arg0: BytesLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_intEvent { - export type InputTuple = [arg0: BigNumberish]; - export type OutputTuple = [arg0: bigint]; - export interface OutputObject { - arg0: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_addressEvent { - export type InputTuple = [key: string, val: AddressLike]; - export type OutputTuple = [key: string, val: string]; - export interface OutputObject { - key: string; - val: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_array_string_uint256_array_Event { - export type InputTuple = [key: string, val: BigNumberish[]]; - export type OutputTuple = [key: string, val: bigint[]]; - export interface OutputObject { - key: string; - val: bigint[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_array_string_int256_array_Event { - export type InputTuple = [key: string, val: BigNumberish[]]; - export type OutputTuple = [key: string, val: bigint[]]; - export interface OutputObject { - key: string; - val: bigint[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_array_string_address_array_Event { - export type InputTuple = [key: string, val: AddressLike[]]; - export type OutputTuple = [key: string, val: string[]]; - export interface OutputObject { - key: string; - val: string[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_bytesEvent { - export type InputTuple = [key: string, val: BytesLike]; - export type OutputTuple = [key: string, val: string]; - export interface OutputObject { - key: string; - val: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_bytes32Event { - export type InputTuple = [key: string, val: BytesLike]; - export type OutputTuple = [key: string, val: string]; - export interface OutputObject { - key: string; - val: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_decimal_intEvent { - export type InputTuple = [ - key: string, - val: BigNumberish, - decimals: BigNumberish - ]; - export type OutputTuple = [key: string, val: bigint, decimals: bigint]; - export interface OutputObject { - key: string; - val: bigint; - decimals: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_decimal_uintEvent { - export type InputTuple = [ - key: string, - val: BigNumberish, - decimals: BigNumberish - ]; - export type OutputTuple = [key: string, val: bigint, decimals: bigint]; - export interface OutputObject { - key: string; - val: bigint; - decimals: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_intEvent { - export type InputTuple = [key: string, val: BigNumberish]; - export type OutputTuple = [key: string, val: bigint]; - export interface OutputObject { - key: string; - val: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_stringEvent { - export type InputTuple = [key: string, val: string]; - export type OutputTuple = [key: string, val: string]; - export interface OutputObject { - key: string; - val: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_uintEvent { - export type InputTuple = [key: string, val: BigNumberish]; - export type OutputTuple = [key: string, val: bigint]; - export interface OutputObject { - key: string; - val: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_stringEvent { - export type InputTuple = [arg0: string]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_uintEvent { - export type InputTuple = [arg0: BigNumberish]; - export type OutputTuple = [arg0: bigint]; - export interface OutputObject { - arg0: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace logsEvent { - export type InputTuple = [arg0: BytesLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface FoundrySetup extends BaseContract { - connect(runner?: ContractRunner | null): FoundrySetup; - waitForDeployment(): Promise; - - interface: FoundrySetupInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - FUNGIBLE_MODULE_ADDRESS: TypedContractMethod<[], [string], "view">; - - IS_TEST: TypedContractMethod<[], [boolean], "view">; - - bnb_bnb: TypedContractMethod< - [], - [ - [string, string, string, string, bigint, boolean, bigint] & { - zrc20: string; - asset: string; - name: string; - symbol: string; - chainId: bigint; - isGasToken: boolean; - decimals: bigint; - } - ], - "view" - >; - - chainIdBNB: TypedContractMethod<[], [bigint], "view">; - - chainIdETH: TypedContractMethod<[], [bigint], "view">; - - chainIdZeta: TypedContractMethod<[], [bigint], "view">; - - deployer: TypedContractMethod<[], [string], "view">; - - eth_eth: TypedContractMethod< - [], - [ - [string, string, string, string, bigint, boolean, bigint] & { - zrc20: string; - asset: string; - name: string; - symbol: string; - chainId: bigint; - isGasToken: boolean; - decimals: bigint; - } - ], - "view" - >; - - evmSetup: TypedContractMethod<[], [string], "view">; - - excludeArtifacts: TypedContractMethod<[], [string[]], "view">; - - excludeContracts: TypedContractMethod<[], [string[]], "view">; - - excludeSelectors: TypedContractMethod< - [], - [StdInvariant.FuzzSelectorStructOutput[]], - "view" - >; - - excludeSenders: TypedContractMethod<[], [string[]], "view">; - - failed: TypedContractMethod<[], [boolean], "view">; - - nodeLogicMock: TypedContractMethod<[], [string], "view">; - - setUp: TypedContractMethod<[], [void], "nonpayable">; - - targetArtifactSelectors: TypedContractMethod< - [], - [StdInvariant.FuzzArtifactSelectorStructOutput[]], - "view" - >; - - targetArtifacts: TypedContractMethod<[], [string[]], "view">; - - targetContracts: TypedContractMethod<[], [string[]], "view">; - - targetInterfaces: TypedContractMethod< - [], - [StdInvariant.FuzzInterfaceStructOutput[]], - "view" - >; - - targetSelectors: TypedContractMethod< - [], - [StdInvariant.FuzzSelectorStructOutput[]], - "view" - >; - - targetSenders: TypedContractMethod<[], [string[]], "view">; - - tokenSetup: TypedContractMethod<[], [string], "view">; - - tss: TypedContractMethod<[], [string], "view">; - - usdc_bnb: TypedContractMethod< - [], - [ - [string, string, string, string, bigint, boolean, bigint] & { - zrc20: string; - asset: string; - name: string; - symbol: string; - chainId: bigint; - isGasToken: boolean; - decimals: bigint; - } - ], - "view" - >; - - usdc_eth: TypedContractMethod< - [], - [ - [string, string, string, string, bigint, boolean, bigint] & { - zrc20: string; - asset: string; - name: string; - symbol: string; - chainId: bigint; - isGasToken: boolean; - decimals: bigint; - } - ], - "view" - >; - - zetaSetup: TypedContractMethod<[], [string], "view">; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "FUNGIBLE_MODULE_ADDRESS" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "IS_TEST" - ): TypedContractMethod<[], [boolean], "view">; - getFunction( - nameOrSignature: "bnb_bnb" - ): TypedContractMethod< - [], - [ - [string, string, string, string, bigint, boolean, bigint] & { - zrc20: string; - asset: string; - name: string; - symbol: string; - chainId: bigint; - isGasToken: boolean; - decimals: bigint; - } - ], - "view" - >; - getFunction( - nameOrSignature: "chainIdBNB" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "chainIdETH" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "chainIdZeta" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "deployer" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "eth_eth" - ): TypedContractMethod< - [], - [ - [string, string, string, string, bigint, boolean, bigint] & { - zrc20: string; - asset: string; - name: string; - symbol: string; - chainId: bigint; - isGasToken: boolean; - decimals: bigint; - } - ], - "view" - >; - getFunction( - nameOrSignature: "evmSetup" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "excludeArtifacts" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "excludeContracts" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "excludeSelectors" - ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; - getFunction( - nameOrSignature: "excludeSenders" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "failed" - ): TypedContractMethod<[], [boolean], "view">; - getFunction( - nameOrSignature: "nodeLogicMock" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "setUp" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "targetArtifactSelectors" - ): TypedContractMethod< - [], - [StdInvariant.FuzzArtifactSelectorStructOutput[]], - "view" - >; - getFunction( - nameOrSignature: "targetArtifacts" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "targetContracts" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "targetInterfaces" - ): TypedContractMethod< - [], - [StdInvariant.FuzzInterfaceStructOutput[]], - "view" - >; - getFunction( - nameOrSignature: "targetSelectors" - ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; - getFunction( - nameOrSignature: "targetSenders" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "tokenSetup" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "tss" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "usdc_bnb" - ): TypedContractMethod< - [], - [ - [string, string, string, string, bigint, boolean, bigint] & { - zrc20: string; - asset: string; - name: string; - symbol: string; - chainId: bigint; - isGasToken: boolean; - decimals: bigint; - } - ], - "view" - >; - getFunction( - nameOrSignature: "usdc_eth" - ): TypedContractMethod< - [], - [ - [string, string, string, string, bigint, boolean, bigint] & { - zrc20: string; - asset: string; - name: string; - symbol: string; - chainId: bigint; - isGasToken: boolean; - decimals: bigint; - } - ], - "view" - >; - getFunction( - nameOrSignature: "zetaSetup" - ): TypedContractMethod<[], [string], "view">; - - getEvent( - key: "log" - ): TypedContractEvent< - logEvent.InputTuple, - logEvent.OutputTuple, - logEvent.OutputObject - >; - getEvent( - key: "log_address" - ): TypedContractEvent< - log_addressEvent.InputTuple, - log_addressEvent.OutputTuple, - log_addressEvent.OutputObject - >; - getEvent( - key: "log_array(uint256[])" - ): TypedContractEvent< - log_array_uint256_array_Event.InputTuple, - log_array_uint256_array_Event.OutputTuple, - log_array_uint256_array_Event.OutputObject - >; - getEvent( - key: "log_array(int256[])" - ): TypedContractEvent< - log_array_int256_array_Event.InputTuple, - log_array_int256_array_Event.OutputTuple, - log_array_int256_array_Event.OutputObject - >; - getEvent( - key: "log_array(address[])" - ): TypedContractEvent< - log_array_address_array_Event.InputTuple, - log_array_address_array_Event.OutputTuple, - log_array_address_array_Event.OutputObject - >; - getEvent( - key: "log_bytes" - ): TypedContractEvent< - log_bytesEvent.InputTuple, - log_bytesEvent.OutputTuple, - log_bytesEvent.OutputObject - >; - getEvent( - key: "log_bytes32" - ): TypedContractEvent< - log_bytes32Event.InputTuple, - log_bytes32Event.OutputTuple, - log_bytes32Event.OutputObject - >; - getEvent( - key: "log_int" - ): TypedContractEvent< - log_intEvent.InputTuple, - log_intEvent.OutputTuple, - log_intEvent.OutputObject - >; - getEvent( - key: "log_named_address" - ): TypedContractEvent< - log_named_addressEvent.InputTuple, - log_named_addressEvent.OutputTuple, - log_named_addressEvent.OutputObject - >; - getEvent( - key: "log_named_array(string,uint256[])" - ): TypedContractEvent< - log_named_array_string_uint256_array_Event.InputTuple, - log_named_array_string_uint256_array_Event.OutputTuple, - log_named_array_string_uint256_array_Event.OutputObject - >; - getEvent( - key: "log_named_array(string,int256[])" - ): TypedContractEvent< - log_named_array_string_int256_array_Event.InputTuple, - log_named_array_string_int256_array_Event.OutputTuple, - log_named_array_string_int256_array_Event.OutputObject - >; - getEvent( - key: "log_named_array(string,address[])" - ): TypedContractEvent< - log_named_array_string_address_array_Event.InputTuple, - log_named_array_string_address_array_Event.OutputTuple, - log_named_array_string_address_array_Event.OutputObject - >; - getEvent( - key: "log_named_bytes" - ): TypedContractEvent< - log_named_bytesEvent.InputTuple, - log_named_bytesEvent.OutputTuple, - log_named_bytesEvent.OutputObject - >; - getEvent( - key: "log_named_bytes32" - ): TypedContractEvent< - log_named_bytes32Event.InputTuple, - log_named_bytes32Event.OutputTuple, - log_named_bytes32Event.OutputObject - >; - getEvent( - key: "log_named_decimal_int" - ): TypedContractEvent< - log_named_decimal_intEvent.InputTuple, - log_named_decimal_intEvent.OutputTuple, - log_named_decimal_intEvent.OutputObject - >; - getEvent( - key: "log_named_decimal_uint" - ): TypedContractEvent< - log_named_decimal_uintEvent.InputTuple, - log_named_decimal_uintEvent.OutputTuple, - log_named_decimal_uintEvent.OutputObject - >; - getEvent( - key: "log_named_int" - ): TypedContractEvent< - log_named_intEvent.InputTuple, - log_named_intEvent.OutputTuple, - log_named_intEvent.OutputObject - >; - getEvent( - key: "log_named_string" - ): TypedContractEvent< - log_named_stringEvent.InputTuple, - log_named_stringEvent.OutputTuple, - log_named_stringEvent.OutputObject - >; - getEvent( - key: "log_named_uint" - ): TypedContractEvent< - log_named_uintEvent.InputTuple, - log_named_uintEvent.OutputTuple, - log_named_uintEvent.OutputObject - >; - getEvent( - key: "log_string" - ): TypedContractEvent< - log_stringEvent.InputTuple, - log_stringEvent.OutputTuple, - log_stringEvent.OutputObject - >; - getEvent( - key: "log_uint" - ): TypedContractEvent< - log_uintEvent.InputTuple, - log_uintEvent.OutputTuple, - log_uintEvent.OutputObject - >; - getEvent( - key: "logs" - ): TypedContractEvent< - logsEvent.InputTuple, - logsEvent.OutputTuple, - logsEvent.OutputObject - >; - - filters: { - "log(string)": TypedContractEvent< - logEvent.InputTuple, - logEvent.OutputTuple, - logEvent.OutputObject - >; - log: TypedContractEvent< - logEvent.InputTuple, - logEvent.OutputTuple, - logEvent.OutputObject - >; - - "log_address(address)": TypedContractEvent< - log_addressEvent.InputTuple, - log_addressEvent.OutputTuple, - log_addressEvent.OutputObject - >; - log_address: TypedContractEvent< - log_addressEvent.InputTuple, - log_addressEvent.OutputTuple, - log_addressEvent.OutputObject - >; - - "log_array(uint256[])": TypedContractEvent< - log_array_uint256_array_Event.InputTuple, - log_array_uint256_array_Event.OutputTuple, - log_array_uint256_array_Event.OutputObject - >; - "log_array(int256[])": TypedContractEvent< - log_array_int256_array_Event.InputTuple, - log_array_int256_array_Event.OutputTuple, - log_array_int256_array_Event.OutputObject - >; - "log_array(address[])": TypedContractEvent< - log_array_address_array_Event.InputTuple, - log_array_address_array_Event.OutputTuple, - log_array_address_array_Event.OutputObject - >; - - "log_bytes(bytes)": TypedContractEvent< - log_bytesEvent.InputTuple, - log_bytesEvent.OutputTuple, - log_bytesEvent.OutputObject - >; - log_bytes: TypedContractEvent< - log_bytesEvent.InputTuple, - log_bytesEvent.OutputTuple, - log_bytesEvent.OutputObject - >; - - "log_bytes32(bytes32)": TypedContractEvent< - log_bytes32Event.InputTuple, - log_bytes32Event.OutputTuple, - log_bytes32Event.OutputObject - >; - log_bytes32: TypedContractEvent< - log_bytes32Event.InputTuple, - log_bytes32Event.OutputTuple, - log_bytes32Event.OutputObject - >; - - "log_int(int256)": TypedContractEvent< - log_intEvent.InputTuple, - log_intEvent.OutputTuple, - log_intEvent.OutputObject - >; - log_int: TypedContractEvent< - log_intEvent.InputTuple, - log_intEvent.OutputTuple, - log_intEvent.OutputObject - >; - - "log_named_address(string,address)": TypedContractEvent< - log_named_addressEvent.InputTuple, - log_named_addressEvent.OutputTuple, - log_named_addressEvent.OutputObject - >; - log_named_address: TypedContractEvent< - log_named_addressEvent.InputTuple, - log_named_addressEvent.OutputTuple, - log_named_addressEvent.OutputObject - >; - - "log_named_array(string,uint256[])": TypedContractEvent< - log_named_array_string_uint256_array_Event.InputTuple, - log_named_array_string_uint256_array_Event.OutputTuple, - log_named_array_string_uint256_array_Event.OutputObject - >; - "log_named_array(string,int256[])": TypedContractEvent< - log_named_array_string_int256_array_Event.InputTuple, - log_named_array_string_int256_array_Event.OutputTuple, - log_named_array_string_int256_array_Event.OutputObject - >; - "log_named_array(string,address[])": TypedContractEvent< - log_named_array_string_address_array_Event.InputTuple, - log_named_array_string_address_array_Event.OutputTuple, - log_named_array_string_address_array_Event.OutputObject - >; - - "log_named_bytes(string,bytes)": TypedContractEvent< - log_named_bytesEvent.InputTuple, - log_named_bytesEvent.OutputTuple, - log_named_bytesEvent.OutputObject - >; - log_named_bytes: TypedContractEvent< - log_named_bytesEvent.InputTuple, - log_named_bytesEvent.OutputTuple, - log_named_bytesEvent.OutputObject - >; - - "log_named_bytes32(string,bytes32)": TypedContractEvent< - log_named_bytes32Event.InputTuple, - log_named_bytes32Event.OutputTuple, - log_named_bytes32Event.OutputObject - >; - log_named_bytes32: TypedContractEvent< - log_named_bytes32Event.InputTuple, - log_named_bytes32Event.OutputTuple, - log_named_bytes32Event.OutputObject - >; - - "log_named_decimal_int(string,int256,uint256)": TypedContractEvent< - log_named_decimal_intEvent.InputTuple, - log_named_decimal_intEvent.OutputTuple, - log_named_decimal_intEvent.OutputObject - >; - log_named_decimal_int: TypedContractEvent< - log_named_decimal_intEvent.InputTuple, - log_named_decimal_intEvent.OutputTuple, - log_named_decimal_intEvent.OutputObject - >; - - "log_named_decimal_uint(string,uint256,uint256)": TypedContractEvent< - log_named_decimal_uintEvent.InputTuple, - log_named_decimal_uintEvent.OutputTuple, - log_named_decimal_uintEvent.OutputObject - >; - log_named_decimal_uint: TypedContractEvent< - log_named_decimal_uintEvent.InputTuple, - log_named_decimal_uintEvent.OutputTuple, - log_named_decimal_uintEvent.OutputObject - >; - - "log_named_int(string,int256)": TypedContractEvent< - log_named_intEvent.InputTuple, - log_named_intEvent.OutputTuple, - log_named_intEvent.OutputObject - >; - log_named_int: TypedContractEvent< - log_named_intEvent.InputTuple, - log_named_intEvent.OutputTuple, - log_named_intEvent.OutputObject - >; - - "log_named_string(string,string)": TypedContractEvent< - log_named_stringEvent.InputTuple, - log_named_stringEvent.OutputTuple, - log_named_stringEvent.OutputObject - >; - log_named_string: TypedContractEvent< - log_named_stringEvent.InputTuple, - log_named_stringEvent.OutputTuple, - log_named_stringEvent.OutputObject - >; - - "log_named_uint(string,uint256)": TypedContractEvent< - log_named_uintEvent.InputTuple, - log_named_uintEvent.OutputTuple, - log_named_uintEvent.OutputObject - >; - log_named_uint: TypedContractEvent< - log_named_uintEvent.InputTuple, - log_named_uintEvent.OutputTuple, - log_named_uintEvent.OutputObject - >; - - "log_string(string)": TypedContractEvent< - log_stringEvent.InputTuple, - log_stringEvent.OutputTuple, - log_stringEvent.OutputObject - >; - log_string: TypedContractEvent< - log_stringEvent.InputTuple, - log_stringEvent.OutputTuple, - log_stringEvent.OutputObject - >; - - "log_uint(uint256)": TypedContractEvent< - log_uintEvent.InputTuple, - log_uintEvent.OutputTuple, - log_uintEvent.OutputObject - >; - log_uint: TypedContractEvent< - log_uintEvent.InputTuple, - log_uintEvent.OutputTuple, - log_uintEvent.OutputObject - >; - - "logs(bytes)": TypedContractEvent< - logsEvent.InputTuple, - logsEvent.OutputTuple, - logsEvent.OutputObject - >; - logs: TypedContractEvent< - logsEvent.InputTuple, - logsEvent.OutputTuple, - logsEvent.OutputObject - >; - }; -} diff --git a/typechain-types/contracts/testing/FoundrySetup.t.sol/index.ts b/typechain-types/contracts/testing/FoundrySetup.t.sol/index.ts deleted file mode 100644 index 5b516b76..00000000 --- a/typechain-types/contracts/testing/FoundrySetup.t.sol/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { FoundrySetup } from "./FoundrySetup"; diff --git a/typechain-types/contracts/testing/TokenSetup.t.sol/TokenSetup.ts b/typechain-types/contracts/testing/TokenSetup.t.sol/TokenSetup.ts deleted file mode 100644 index 645e9700..00000000 --- a/typechain-types/contracts/testing/TokenSetup.t.sol/TokenSetup.ts +++ /dev/null @@ -1,1186 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../common"; - -export declare namespace TokenSetup { - export type ContractsStruct = { - zetaSetup: AddressLike; - evmSetup: AddressLike; - nodeLogicMock: AddressLike; - deployer: AddressLike; - tss: AddressLike; - }; - - export type ContractsStructOutput = [ - zetaSetup: string, - evmSetup: string, - nodeLogicMock: string, - deployer: string, - tss: string - ] & { - zetaSetup: string; - evmSetup: string; - nodeLogicMock: string; - deployer: string; - tss: string; - }; - - export type TokenInfoStruct = { - zrc20: AddressLike; - asset: AddressLike; - name: string; - symbol: string; - chainId: BigNumberish; - isGasToken: boolean; - decimals: BigNumberish; - }; - - export type TokenInfoStructOutput = [ - zrc20: string, - asset: string, - name: string, - symbol: string, - chainId: bigint, - isGasToken: boolean, - decimals: bigint - ] & { - zrc20: string; - asset: string; - name: string; - symbol: string; - chainId: bigint; - isGasToken: boolean; - decimals: bigint; - }; -} - -export declare namespace StdInvariant { - export type FuzzSelectorStruct = { - addr: AddressLike; - selectors: BytesLike[]; - }; - - export type FuzzSelectorStructOutput = [addr: string, selectors: string[]] & { - addr: string; - selectors: string[]; - }; - - export type FuzzArtifactSelectorStruct = { - artifact: string; - selectors: BytesLike[]; - }; - - export type FuzzArtifactSelectorStructOutput = [ - artifact: string, - selectors: string[] - ] & { artifact: string; selectors: string[] }; - - export type FuzzInterfaceStruct = { addr: AddressLike; artifacts: string[] }; - - export type FuzzInterfaceStructOutput = [ - addr: string, - artifacts: string[] - ] & { addr: string; artifacts: string[] }; -} - -export interface TokenSetupInterface extends Interface { - getFunction( - nameOrSignature: - | "IS_TEST" - | "createToken" - | "excludeArtifacts" - | "excludeContracts" - | "excludeSelectors" - | "excludeSenders" - | "failed" - | "foreignCoins" - | "getForeignCoins" - | "prepareUniswapV2" - | "targetArtifactSelectors" - | "targetArtifacts" - | "targetContracts" - | "targetInterfaces" - | "targetSelectors" - | "targetSenders" - | "uniswapV2AddLiquidity" - ): FunctionFragment; - - getEvent( - nameOrSignatureOrTopic: - | "log" - | "log_address" - | "log_array(uint256[])" - | "log_array(int256[])" - | "log_array(address[])" - | "log_bytes" - | "log_bytes32" - | "log_int" - | "log_named_address" - | "log_named_array(string,uint256[])" - | "log_named_array(string,int256[])" - | "log_named_array(string,address[])" - | "log_named_bytes" - | "log_named_bytes32" - | "log_named_decimal_int" - | "log_named_decimal_uint" - | "log_named_int" - | "log_named_string" - | "log_named_uint" - | "log_string" - | "log_uint" - | "logs" - ): EventFragment; - - encodeFunctionData(functionFragment: "IS_TEST", values?: undefined): string; - encodeFunctionData( - functionFragment: "createToken", - values: [ - TokenSetup.ContractsStruct, - string, - boolean, - BigNumberish, - BigNumberish - ] - ): string; - encodeFunctionData( - functionFragment: "excludeArtifacts", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "excludeContracts", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "excludeSelectors", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "excludeSenders", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "failed", values?: undefined): string; - encodeFunctionData( - functionFragment: "foreignCoins", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "getForeignCoins", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "prepareUniswapV2", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "targetArtifactSelectors", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetArtifacts", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetContracts", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetInterfaces", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetSelectors", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetSenders", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "uniswapV2AddLiquidity", - values: [ - AddressLike, - AddressLike, - AddressLike, - AddressLike, - AddressLike, - BigNumberish, - BigNumberish - ] - ): string; - - decodeFunctionResult(functionFragment: "IS_TEST", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "createToken", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "excludeArtifacts", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "excludeContracts", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "excludeSelectors", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "excludeSenders", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "failed", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "foreignCoins", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getForeignCoins", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "prepareUniswapV2", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetArtifactSelectors", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetArtifacts", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetContracts", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetInterfaces", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetSelectors", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetSenders", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "uniswapV2AddLiquidity", - data: BytesLike - ): Result; -} - -export namespace logEvent { - export type InputTuple = [arg0: string]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_addressEvent { - export type InputTuple = [arg0: AddressLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_array_uint256_array_Event { - export type InputTuple = [val: BigNumberish[]]; - export type OutputTuple = [val: bigint[]]; - export interface OutputObject { - val: bigint[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_array_int256_array_Event { - export type InputTuple = [val: BigNumberish[]]; - export type OutputTuple = [val: bigint[]]; - export interface OutputObject { - val: bigint[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_array_address_array_Event { - export type InputTuple = [val: AddressLike[]]; - export type OutputTuple = [val: string[]]; - export interface OutputObject { - val: string[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_bytesEvent { - export type InputTuple = [arg0: BytesLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_bytes32Event { - export type InputTuple = [arg0: BytesLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_intEvent { - export type InputTuple = [arg0: BigNumberish]; - export type OutputTuple = [arg0: bigint]; - export interface OutputObject { - arg0: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_addressEvent { - export type InputTuple = [key: string, val: AddressLike]; - export type OutputTuple = [key: string, val: string]; - export interface OutputObject { - key: string; - val: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_array_string_uint256_array_Event { - export type InputTuple = [key: string, val: BigNumberish[]]; - export type OutputTuple = [key: string, val: bigint[]]; - export interface OutputObject { - key: string; - val: bigint[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_array_string_int256_array_Event { - export type InputTuple = [key: string, val: BigNumberish[]]; - export type OutputTuple = [key: string, val: bigint[]]; - export interface OutputObject { - key: string; - val: bigint[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_array_string_address_array_Event { - export type InputTuple = [key: string, val: AddressLike[]]; - export type OutputTuple = [key: string, val: string[]]; - export interface OutputObject { - key: string; - val: string[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_bytesEvent { - export type InputTuple = [key: string, val: BytesLike]; - export type OutputTuple = [key: string, val: string]; - export interface OutputObject { - key: string; - val: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_bytes32Event { - export type InputTuple = [key: string, val: BytesLike]; - export type OutputTuple = [key: string, val: string]; - export interface OutputObject { - key: string; - val: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_decimal_intEvent { - export type InputTuple = [ - key: string, - val: BigNumberish, - decimals: BigNumberish - ]; - export type OutputTuple = [key: string, val: bigint, decimals: bigint]; - export interface OutputObject { - key: string; - val: bigint; - decimals: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_decimal_uintEvent { - export type InputTuple = [ - key: string, - val: BigNumberish, - decimals: BigNumberish - ]; - export type OutputTuple = [key: string, val: bigint, decimals: bigint]; - export interface OutputObject { - key: string; - val: bigint; - decimals: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_intEvent { - export type InputTuple = [key: string, val: BigNumberish]; - export type OutputTuple = [key: string, val: bigint]; - export interface OutputObject { - key: string; - val: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_stringEvent { - export type InputTuple = [key: string, val: string]; - export type OutputTuple = [key: string, val: string]; - export interface OutputObject { - key: string; - val: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_uintEvent { - export type InputTuple = [key: string, val: BigNumberish]; - export type OutputTuple = [key: string, val: bigint]; - export interface OutputObject { - key: string; - val: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_stringEvent { - export type InputTuple = [arg0: string]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_uintEvent { - export type InputTuple = [arg0: BigNumberish]; - export type OutputTuple = [arg0: bigint]; - export interface OutputObject { - arg0: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace logsEvent { - export type InputTuple = [arg0: BytesLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface TokenSetup extends BaseContract { - connect(runner?: ContractRunner | null): TokenSetup; - waitForDeployment(): Promise; - - interface: TokenSetupInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - IS_TEST: TypedContractMethod<[], [boolean], "view">; - - createToken: TypedContractMethod< - [ - contracts: TokenSetup.ContractsStruct, - symbol: string, - isGasToken: boolean, - chainId: BigNumberish, - decimals: BigNumberish - ], - [TokenSetup.TokenInfoStructOutput], - "nonpayable" - >; - - excludeArtifacts: TypedContractMethod<[], [string[]], "view">; - - excludeContracts: TypedContractMethod<[], [string[]], "view">; - - excludeSelectors: TypedContractMethod< - [], - [StdInvariant.FuzzSelectorStructOutput[]], - "view" - >; - - excludeSenders: TypedContractMethod<[], [string[]], "view">; - - failed: TypedContractMethod<[], [boolean], "view">; - - foreignCoins: TypedContractMethod< - [arg0: BigNumberish], - [ - [string, string, string, string, bigint, boolean, bigint] & { - zrc20: string; - asset: string; - name: string; - symbol: string; - chainId: bigint; - isGasToken: boolean; - decimals: bigint; - } - ], - "view" - >; - - getForeignCoins: TypedContractMethod< - [], - [TokenSetup.TokenInfoStructOutput[]], - "view" - >; - - prepareUniswapV2: TypedContractMethod< - [deployer: AddressLike, wzeta: AddressLike], - [[string, string] & { factory: string; router: string }], - "nonpayable" - >; - - targetArtifactSelectors: TypedContractMethod< - [], - [StdInvariant.FuzzArtifactSelectorStructOutput[]], - "view" - >; - - targetArtifacts: TypedContractMethod<[], [string[]], "view">; - - targetContracts: TypedContractMethod<[], [string[]], "view">; - - targetInterfaces: TypedContractMethod< - [], - [StdInvariant.FuzzInterfaceStructOutput[]], - "view" - >; - - targetSelectors: TypedContractMethod< - [], - [StdInvariant.FuzzSelectorStructOutput[]], - "view" - >; - - targetSenders: TypedContractMethod<[], [string[]], "view">; - - uniswapV2AddLiquidity: TypedContractMethod< - [ - uniswapV2Router: AddressLike, - uniswapV2Factory: AddressLike, - zrc20: AddressLike, - wzeta: AddressLike, - deployer: AddressLike, - zrc20Amount: BigNumberish, - wzetaAmount: BigNumberish - ], - [void], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "IS_TEST" - ): TypedContractMethod<[], [boolean], "view">; - getFunction( - nameOrSignature: "createToken" - ): TypedContractMethod< - [ - contracts: TokenSetup.ContractsStruct, - symbol: string, - isGasToken: boolean, - chainId: BigNumberish, - decimals: BigNumberish - ], - [TokenSetup.TokenInfoStructOutput], - "nonpayable" - >; - getFunction( - nameOrSignature: "excludeArtifacts" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "excludeContracts" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "excludeSelectors" - ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; - getFunction( - nameOrSignature: "excludeSenders" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "failed" - ): TypedContractMethod<[], [boolean], "view">; - getFunction( - nameOrSignature: "foreignCoins" - ): TypedContractMethod< - [arg0: BigNumberish], - [ - [string, string, string, string, bigint, boolean, bigint] & { - zrc20: string; - asset: string; - name: string; - symbol: string; - chainId: bigint; - isGasToken: boolean; - decimals: bigint; - } - ], - "view" - >; - getFunction( - nameOrSignature: "getForeignCoins" - ): TypedContractMethod<[], [TokenSetup.TokenInfoStructOutput[]], "view">; - getFunction( - nameOrSignature: "prepareUniswapV2" - ): TypedContractMethod< - [deployer: AddressLike, wzeta: AddressLike], - [[string, string] & { factory: string; router: string }], - "nonpayable" - >; - getFunction( - nameOrSignature: "targetArtifactSelectors" - ): TypedContractMethod< - [], - [StdInvariant.FuzzArtifactSelectorStructOutput[]], - "view" - >; - getFunction( - nameOrSignature: "targetArtifacts" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "targetContracts" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "targetInterfaces" - ): TypedContractMethod< - [], - [StdInvariant.FuzzInterfaceStructOutput[]], - "view" - >; - getFunction( - nameOrSignature: "targetSelectors" - ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; - getFunction( - nameOrSignature: "targetSenders" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "uniswapV2AddLiquidity" - ): TypedContractMethod< - [ - uniswapV2Router: AddressLike, - uniswapV2Factory: AddressLike, - zrc20: AddressLike, - wzeta: AddressLike, - deployer: AddressLike, - zrc20Amount: BigNumberish, - wzetaAmount: BigNumberish - ], - [void], - "nonpayable" - >; - - getEvent( - key: "log" - ): TypedContractEvent< - logEvent.InputTuple, - logEvent.OutputTuple, - logEvent.OutputObject - >; - getEvent( - key: "log_address" - ): TypedContractEvent< - log_addressEvent.InputTuple, - log_addressEvent.OutputTuple, - log_addressEvent.OutputObject - >; - getEvent( - key: "log_array(uint256[])" - ): TypedContractEvent< - log_array_uint256_array_Event.InputTuple, - log_array_uint256_array_Event.OutputTuple, - log_array_uint256_array_Event.OutputObject - >; - getEvent( - key: "log_array(int256[])" - ): TypedContractEvent< - log_array_int256_array_Event.InputTuple, - log_array_int256_array_Event.OutputTuple, - log_array_int256_array_Event.OutputObject - >; - getEvent( - key: "log_array(address[])" - ): TypedContractEvent< - log_array_address_array_Event.InputTuple, - log_array_address_array_Event.OutputTuple, - log_array_address_array_Event.OutputObject - >; - getEvent( - key: "log_bytes" - ): TypedContractEvent< - log_bytesEvent.InputTuple, - log_bytesEvent.OutputTuple, - log_bytesEvent.OutputObject - >; - getEvent( - key: "log_bytes32" - ): TypedContractEvent< - log_bytes32Event.InputTuple, - log_bytes32Event.OutputTuple, - log_bytes32Event.OutputObject - >; - getEvent( - key: "log_int" - ): TypedContractEvent< - log_intEvent.InputTuple, - log_intEvent.OutputTuple, - log_intEvent.OutputObject - >; - getEvent( - key: "log_named_address" - ): TypedContractEvent< - log_named_addressEvent.InputTuple, - log_named_addressEvent.OutputTuple, - log_named_addressEvent.OutputObject - >; - getEvent( - key: "log_named_array(string,uint256[])" - ): TypedContractEvent< - log_named_array_string_uint256_array_Event.InputTuple, - log_named_array_string_uint256_array_Event.OutputTuple, - log_named_array_string_uint256_array_Event.OutputObject - >; - getEvent( - key: "log_named_array(string,int256[])" - ): TypedContractEvent< - log_named_array_string_int256_array_Event.InputTuple, - log_named_array_string_int256_array_Event.OutputTuple, - log_named_array_string_int256_array_Event.OutputObject - >; - getEvent( - key: "log_named_array(string,address[])" - ): TypedContractEvent< - log_named_array_string_address_array_Event.InputTuple, - log_named_array_string_address_array_Event.OutputTuple, - log_named_array_string_address_array_Event.OutputObject - >; - getEvent( - key: "log_named_bytes" - ): TypedContractEvent< - log_named_bytesEvent.InputTuple, - log_named_bytesEvent.OutputTuple, - log_named_bytesEvent.OutputObject - >; - getEvent( - key: "log_named_bytes32" - ): TypedContractEvent< - log_named_bytes32Event.InputTuple, - log_named_bytes32Event.OutputTuple, - log_named_bytes32Event.OutputObject - >; - getEvent( - key: "log_named_decimal_int" - ): TypedContractEvent< - log_named_decimal_intEvent.InputTuple, - log_named_decimal_intEvent.OutputTuple, - log_named_decimal_intEvent.OutputObject - >; - getEvent( - key: "log_named_decimal_uint" - ): TypedContractEvent< - log_named_decimal_uintEvent.InputTuple, - log_named_decimal_uintEvent.OutputTuple, - log_named_decimal_uintEvent.OutputObject - >; - getEvent( - key: "log_named_int" - ): TypedContractEvent< - log_named_intEvent.InputTuple, - log_named_intEvent.OutputTuple, - log_named_intEvent.OutputObject - >; - getEvent( - key: "log_named_string" - ): TypedContractEvent< - log_named_stringEvent.InputTuple, - log_named_stringEvent.OutputTuple, - log_named_stringEvent.OutputObject - >; - getEvent( - key: "log_named_uint" - ): TypedContractEvent< - log_named_uintEvent.InputTuple, - log_named_uintEvent.OutputTuple, - log_named_uintEvent.OutputObject - >; - getEvent( - key: "log_string" - ): TypedContractEvent< - log_stringEvent.InputTuple, - log_stringEvent.OutputTuple, - log_stringEvent.OutputObject - >; - getEvent( - key: "log_uint" - ): TypedContractEvent< - log_uintEvent.InputTuple, - log_uintEvent.OutputTuple, - log_uintEvent.OutputObject - >; - getEvent( - key: "logs" - ): TypedContractEvent< - logsEvent.InputTuple, - logsEvent.OutputTuple, - logsEvent.OutputObject - >; - - filters: { - "log(string)": TypedContractEvent< - logEvent.InputTuple, - logEvent.OutputTuple, - logEvent.OutputObject - >; - log: TypedContractEvent< - logEvent.InputTuple, - logEvent.OutputTuple, - logEvent.OutputObject - >; - - "log_address(address)": TypedContractEvent< - log_addressEvent.InputTuple, - log_addressEvent.OutputTuple, - log_addressEvent.OutputObject - >; - log_address: TypedContractEvent< - log_addressEvent.InputTuple, - log_addressEvent.OutputTuple, - log_addressEvent.OutputObject - >; - - "log_array(uint256[])": TypedContractEvent< - log_array_uint256_array_Event.InputTuple, - log_array_uint256_array_Event.OutputTuple, - log_array_uint256_array_Event.OutputObject - >; - "log_array(int256[])": TypedContractEvent< - log_array_int256_array_Event.InputTuple, - log_array_int256_array_Event.OutputTuple, - log_array_int256_array_Event.OutputObject - >; - "log_array(address[])": TypedContractEvent< - log_array_address_array_Event.InputTuple, - log_array_address_array_Event.OutputTuple, - log_array_address_array_Event.OutputObject - >; - - "log_bytes(bytes)": TypedContractEvent< - log_bytesEvent.InputTuple, - log_bytesEvent.OutputTuple, - log_bytesEvent.OutputObject - >; - log_bytes: TypedContractEvent< - log_bytesEvent.InputTuple, - log_bytesEvent.OutputTuple, - log_bytesEvent.OutputObject - >; - - "log_bytes32(bytes32)": TypedContractEvent< - log_bytes32Event.InputTuple, - log_bytes32Event.OutputTuple, - log_bytes32Event.OutputObject - >; - log_bytes32: TypedContractEvent< - log_bytes32Event.InputTuple, - log_bytes32Event.OutputTuple, - log_bytes32Event.OutputObject - >; - - "log_int(int256)": TypedContractEvent< - log_intEvent.InputTuple, - log_intEvent.OutputTuple, - log_intEvent.OutputObject - >; - log_int: TypedContractEvent< - log_intEvent.InputTuple, - log_intEvent.OutputTuple, - log_intEvent.OutputObject - >; - - "log_named_address(string,address)": TypedContractEvent< - log_named_addressEvent.InputTuple, - log_named_addressEvent.OutputTuple, - log_named_addressEvent.OutputObject - >; - log_named_address: TypedContractEvent< - log_named_addressEvent.InputTuple, - log_named_addressEvent.OutputTuple, - log_named_addressEvent.OutputObject - >; - - "log_named_array(string,uint256[])": TypedContractEvent< - log_named_array_string_uint256_array_Event.InputTuple, - log_named_array_string_uint256_array_Event.OutputTuple, - log_named_array_string_uint256_array_Event.OutputObject - >; - "log_named_array(string,int256[])": TypedContractEvent< - log_named_array_string_int256_array_Event.InputTuple, - log_named_array_string_int256_array_Event.OutputTuple, - log_named_array_string_int256_array_Event.OutputObject - >; - "log_named_array(string,address[])": TypedContractEvent< - log_named_array_string_address_array_Event.InputTuple, - log_named_array_string_address_array_Event.OutputTuple, - log_named_array_string_address_array_Event.OutputObject - >; - - "log_named_bytes(string,bytes)": TypedContractEvent< - log_named_bytesEvent.InputTuple, - log_named_bytesEvent.OutputTuple, - log_named_bytesEvent.OutputObject - >; - log_named_bytes: TypedContractEvent< - log_named_bytesEvent.InputTuple, - log_named_bytesEvent.OutputTuple, - log_named_bytesEvent.OutputObject - >; - - "log_named_bytes32(string,bytes32)": TypedContractEvent< - log_named_bytes32Event.InputTuple, - log_named_bytes32Event.OutputTuple, - log_named_bytes32Event.OutputObject - >; - log_named_bytes32: TypedContractEvent< - log_named_bytes32Event.InputTuple, - log_named_bytes32Event.OutputTuple, - log_named_bytes32Event.OutputObject - >; - - "log_named_decimal_int(string,int256,uint256)": TypedContractEvent< - log_named_decimal_intEvent.InputTuple, - log_named_decimal_intEvent.OutputTuple, - log_named_decimal_intEvent.OutputObject - >; - log_named_decimal_int: TypedContractEvent< - log_named_decimal_intEvent.InputTuple, - log_named_decimal_intEvent.OutputTuple, - log_named_decimal_intEvent.OutputObject - >; - - "log_named_decimal_uint(string,uint256,uint256)": TypedContractEvent< - log_named_decimal_uintEvent.InputTuple, - log_named_decimal_uintEvent.OutputTuple, - log_named_decimal_uintEvent.OutputObject - >; - log_named_decimal_uint: TypedContractEvent< - log_named_decimal_uintEvent.InputTuple, - log_named_decimal_uintEvent.OutputTuple, - log_named_decimal_uintEvent.OutputObject - >; - - "log_named_int(string,int256)": TypedContractEvent< - log_named_intEvent.InputTuple, - log_named_intEvent.OutputTuple, - log_named_intEvent.OutputObject - >; - log_named_int: TypedContractEvent< - log_named_intEvent.InputTuple, - log_named_intEvent.OutputTuple, - log_named_intEvent.OutputObject - >; - - "log_named_string(string,string)": TypedContractEvent< - log_named_stringEvent.InputTuple, - log_named_stringEvent.OutputTuple, - log_named_stringEvent.OutputObject - >; - log_named_string: TypedContractEvent< - log_named_stringEvent.InputTuple, - log_named_stringEvent.OutputTuple, - log_named_stringEvent.OutputObject - >; - - "log_named_uint(string,uint256)": TypedContractEvent< - log_named_uintEvent.InputTuple, - log_named_uintEvent.OutputTuple, - log_named_uintEvent.OutputObject - >; - log_named_uint: TypedContractEvent< - log_named_uintEvent.InputTuple, - log_named_uintEvent.OutputTuple, - log_named_uintEvent.OutputObject - >; - - "log_string(string)": TypedContractEvent< - log_stringEvent.InputTuple, - log_stringEvent.OutputTuple, - log_stringEvent.OutputObject - >; - log_string: TypedContractEvent< - log_stringEvent.InputTuple, - log_stringEvent.OutputTuple, - log_stringEvent.OutputObject - >; - - "log_uint(uint256)": TypedContractEvent< - log_uintEvent.InputTuple, - log_uintEvent.OutputTuple, - log_uintEvent.OutputObject - >; - log_uint: TypedContractEvent< - log_uintEvent.InputTuple, - log_uintEvent.OutputTuple, - log_uintEvent.OutputObject - >; - - "logs(bytes)": TypedContractEvent< - logsEvent.InputTuple, - logsEvent.OutputTuple, - logsEvent.OutputObject - >; - logs: TypedContractEvent< - logsEvent.InputTuple, - logsEvent.OutputTuple, - logsEvent.OutputObject - >; - }; -} diff --git a/typechain-types/contracts/testing/TokenSetup.t.sol/index.ts b/typechain-types/contracts/testing/TokenSetup.t.sol/index.ts deleted file mode 100644 index 56137864..00000000 --- a/typechain-types/contracts/testing/TokenSetup.t.sol/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { TokenSetup } from "./TokenSetup"; diff --git a/typechain-types/contracts/testing/UniswapV2SetupLib.sol/IUniswapV2Factory.ts b/typechain-types/contracts/testing/UniswapV2SetupLib.sol/IUniswapV2Factory.ts deleted file mode 100644 index 4c09f370..00000000 --- a/typechain-types/contracts/testing/UniswapV2SetupLib.sol/IUniswapV2Factory.ts +++ /dev/null @@ -1,114 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BytesLike, - FunctionFragment, - Result, - Interface, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../../common"; - -export interface IUniswapV2FactoryInterface extends Interface { - getFunction(nameOrSignature: "createPair" | "getPair"): FunctionFragment; - - encodeFunctionData( - functionFragment: "createPair", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "getPair", - values: [AddressLike, AddressLike] - ): string; - - decodeFunctionResult(functionFragment: "createPair", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "getPair", data: BytesLike): Result; -} - -export interface IUniswapV2Factory extends BaseContract { - connect(runner?: ContractRunner | null): IUniswapV2Factory; - waitForDeployment(): Promise; - - interface: IUniswapV2FactoryInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - createPair: TypedContractMethod< - [tokenA: AddressLike, tokenB: AddressLike], - [string], - "nonpayable" - >; - - getPair: TypedContractMethod< - [tokenA: AddressLike, tokenB: AddressLike], - [string], - "view" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "createPair" - ): TypedContractMethod< - [tokenA: AddressLike, tokenB: AddressLike], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "getPair" - ): TypedContractMethod< - [tokenA: AddressLike, tokenB: AddressLike], - [string], - "view" - >; - - filters: {}; -} diff --git a/typechain-types/contracts/testing/UniswapV2SetupLib.sol/IUniswapV2Router02.ts b/typechain-types/contracts/testing/UniswapV2SetupLib.sol/IUniswapV2Router02.ts deleted file mode 100644 index ef7146e4..00000000 --- a/typechain-types/contracts/testing/UniswapV2SetupLib.sol/IUniswapV2Router02.ts +++ /dev/null @@ -1,139 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../../common"; - -export interface IUniswapV2Router02Interface extends Interface { - getFunction(nameOrSignature: "addLiquidity"): FunctionFragment; - - encodeFunctionData( - functionFragment: "addLiquidity", - values: [ - AddressLike, - AddressLike, - BigNumberish, - BigNumberish, - BigNumberish, - BigNumberish, - AddressLike, - BigNumberish - ] - ): string; - - decodeFunctionResult( - functionFragment: "addLiquidity", - data: BytesLike - ): Result; -} - -export interface IUniswapV2Router02 extends BaseContract { - connect(runner?: ContractRunner | null): IUniswapV2Router02; - waitForDeployment(): Promise; - - interface: IUniswapV2Router02Interface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - addLiquidity: TypedContractMethod< - [ - tokenA: AddressLike, - tokenB: AddressLike, - amountADesired: BigNumberish, - amountBDesired: BigNumberish, - amountAMin: BigNumberish, - amountBMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [ - [bigint, bigint, bigint] & { - amountA: bigint; - amountB: bigint; - liquidity: bigint; - } - ], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "addLiquidity" - ): TypedContractMethod< - [ - tokenA: AddressLike, - tokenB: AddressLike, - amountADesired: BigNumberish, - amountBDesired: BigNumberish, - amountAMin: BigNumberish, - amountBMin: BigNumberish, - to: AddressLike, - deadline: BigNumberish - ], - [ - [bigint, bigint, bigint] & { - amountA: bigint; - amountB: bigint; - liquidity: bigint; - } - ], - "nonpayable" - >; - - filters: {}; -} diff --git a/typechain-types/contracts/testing/UniswapV2SetupLib.sol/UniswapV2SetupLib.ts b/typechain-types/contracts/testing/UniswapV2SetupLib.sol/UniswapV2SetupLib.ts deleted file mode 100644 index 4a93dd23..00000000 --- a/typechain-types/contracts/testing/UniswapV2SetupLib.sol/UniswapV2SetupLib.ts +++ /dev/null @@ -1,1034 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../common"; - -export declare namespace StdInvariant { - export type FuzzSelectorStruct = { - addr: AddressLike; - selectors: BytesLike[]; - }; - - export type FuzzSelectorStructOutput = [addr: string, selectors: string[]] & { - addr: string; - selectors: string[]; - }; - - export type FuzzArtifactSelectorStruct = { - artifact: string; - selectors: BytesLike[]; - }; - - export type FuzzArtifactSelectorStructOutput = [ - artifact: string, - selectors: string[] - ] & { artifact: string; selectors: string[] }; - - export type FuzzInterfaceStruct = { addr: AddressLike; artifacts: string[] }; - - export type FuzzInterfaceStructOutput = [ - addr: string, - artifacts: string[] - ] & { addr: string; artifacts: string[] }; -} - -export interface UniswapV2SetupLibInterface extends Interface { - getFunction( - nameOrSignature: - | "IS_TEST" - | "excludeArtifacts" - | "excludeContracts" - | "excludeSelectors" - | "excludeSenders" - | "failed" - | "prepareUniswapV2" - | "targetArtifactSelectors" - | "targetArtifacts" - | "targetContracts" - | "targetInterfaces" - | "targetSelectors" - | "targetSenders" - | "uniswapV2AddLiquidity" - ): FunctionFragment; - - getEvent( - nameOrSignatureOrTopic: - | "log" - | "log_address" - | "log_array(uint256[])" - | "log_array(int256[])" - | "log_array(address[])" - | "log_bytes" - | "log_bytes32" - | "log_int" - | "log_named_address" - | "log_named_array(string,uint256[])" - | "log_named_array(string,int256[])" - | "log_named_array(string,address[])" - | "log_named_bytes" - | "log_named_bytes32" - | "log_named_decimal_int" - | "log_named_decimal_uint" - | "log_named_int" - | "log_named_string" - | "log_named_uint" - | "log_string" - | "log_uint" - | "logs" - ): EventFragment; - - encodeFunctionData(functionFragment: "IS_TEST", values?: undefined): string; - encodeFunctionData( - functionFragment: "excludeArtifacts", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "excludeContracts", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "excludeSelectors", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "excludeSenders", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "failed", values?: undefined): string; - encodeFunctionData( - functionFragment: "prepareUniswapV2", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "targetArtifactSelectors", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetArtifacts", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetContracts", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetInterfaces", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetSelectors", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetSenders", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "uniswapV2AddLiquidity", - values: [ - AddressLike, - AddressLike, - AddressLike, - AddressLike, - AddressLike, - BigNumberish, - BigNumberish - ] - ): string; - - decodeFunctionResult(functionFragment: "IS_TEST", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "excludeArtifacts", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "excludeContracts", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "excludeSelectors", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "excludeSenders", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "failed", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "prepareUniswapV2", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetArtifactSelectors", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetArtifacts", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetContracts", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetInterfaces", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetSelectors", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetSenders", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "uniswapV2AddLiquidity", - data: BytesLike - ): Result; -} - -export namespace logEvent { - export type InputTuple = [arg0: string]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_addressEvent { - export type InputTuple = [arg0: AddressLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_array_uint256_array_Event { - export type InputTuple = [val: BigNumberish[]]; - export type OutputTuple = [val: bigint[]]; - export interface OutputObject { - val: bigint[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_array_int256_array_Event { - export type InputTuple = [val: BigNumberish[]]; - export type OutputTuple = [val: bigint[]]; - export interface OutputObject { - val: bigint[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_array_address_array_Event { - export type InputTuple = [val: AddressLike[]]; - export type OutputTuple = [val: string[]]; - export interface OutputObject { - val: string[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_bytesEvent { - export type InputTuple = [arg0: BytesLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_bytes32Event { - export type InputTuple = [arg0: BytesLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_intEvent { - export type InputTuple = [arg0: BigNumberish]; - export type OutputTuple = [arg0: bigint]; - export interface OutputObject { - arg0: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_addressEvent { - export type InputTuple = [key: string, val: AddressLike]; - export type OutputTuple = [key: string, val: string]; - export interface OutputObject { - key: string; - val: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_array_string_uint256_array_Event { - export type InputTuple = [key: string, val: BigNumberish[]]; - export type OutputTuple = [key: string, val: bigint[]]; - export interface OutputObject { - key: string; - val: bigint[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_array_string_int256_array_Event { - export type InputTuple = [key: string, val: BigNumberish[]]; - export type OutputTuple = [key: string, val: bigint[]]; - export interface OutputObject { - key: string; - val: bigint[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_array_string_address_array_Event { - export type InputTuple = [key: string, val: AddressLike[]]; - export type OutputTuple = [key: string, val: string[]]; - export interface OutputObject { - key: string; - val: string[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_bytesEvent { - export type InputTuple = [key: string, val: BytesLike]; - export type OutputTuple = [key: string, val: string]; - export interface OutputObject { - key: string; - val: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_bytes32Event { - export type InputTuple = [key: string, val: BytesLike]; - export type OutputTuple = [key: string, val: string]; - export interface OutputObject { - key: string; - val: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_decimal_intEvent { - export type InputTuple = [ - key: string, - val: BigNumberish, - decimals: BigNumberish - ]; - export type OutputTuple = [key: string, val: bigint, decimals: bigint]; - export interface OutputObject { - key: string; - val: bigint; - decimals: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_decimal_uintEvent { - export type InputTuple = [ - key: string, - val: BigNumberish, - decimals: BigNumberish - ]; - export type OutputTuple = [key: string, val: bigint, decimals: bigint]; - export interface OutputObject { - key: string; - val: bigint; - decimals: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_intEvent { - export type InputTuple = [key: string, val: BigNumberish]; - export type OutputTuple = [key: string, val: bigint]; - export interface OutputObject { - key: string; - val: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_stringEvent { - export type InputTuple = [key: string, val: string]; - export type OutputTuple = [key: string, val: string]; - export interface OutputObject { - key: string; - val: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_uintEvent { - export type InputTuple = [key: string, val: BigNumberish]; - export type OutputTuple = [key: string, val: bigint]; - export interface OutputObject { - key: string; - val: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_stringEvent { - export type InputTuple = [arg0: string]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_uintEvent { - export type InputTuple = [arg0: BigNumberish]; - export type OutputTuple = [arg0: bigint]; - export interface OutputObject { - arg0: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace logsEvent { - export type InputTuple = [arg0: BytesLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface UniswapV2SetupLib extends BaseContract { - connect(runner?: ContractRunner | null): UniswapV2SetupLib; - waitForDeployment(): Promise; - - interface: UniswapV2SetupLibInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - IS_TEST: TypedContractMethod<[], [boolean], "view">; - - excludeArtifacts: TypedContractMethod<[], [string[]], "view">; - - excludeContracts: TypedContractMethod<[], [string[]], "view">; - - excludeSelectors: TypedContractMethod< - [], - [StdInvariant.FuzzSelectorStructOutput[]], - "view" - >; - - excludeSenders: TypedContractMethod<[], [string[]], "view">; - - failed: TypedContractMethod<[], [boolean], "view">; - - prepareUniswapV2: TypedContractMethod< - [deployer: AddressLike, wzeta: AddressLike], - [[string, string] & { factory: string; router: string }], - "nonpayable" - >; - - targetArtifactSelectors: TypedContractMethod< - [], - [StdInvariant.FuzzArtifactSelectorStructOutput[]], - "view" - >; - - targetArtifacts: TypedContractMethod<[], [string[]], "view">; - - targetContracts: TypedContractMethod<[], [string[]], "view">; - - targetInterfaces: TypedContractMethod< - [], - [StdInvariant.FuzzInterfaceStructOutput[]], - "view" - >; - - targetSelectors: TypedContractMethod< - [], - [StdInvariant.FuzzSelectorStructOutput[]], - "view" - >; - - targetSenders: TypedContractMethod<[], [string[]], "view">; - - uniswapV2AddLiquidity: TypedContractMethod< - [ - uniswapV2Router: AddressLike, - uniswapV2Factory: AddressLike, - zrc20: AddressLike, - wzeta: AddressLike, - deployer: AddressLike, - zrc20Amount: BigNumberish, - wzetaAmount: BigNumberish - ], - [void], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "IS_TEST" - ): TypedContractMethod<[], [boolean], "view">; - getFunction( - nameOrSignature: "excludeArtifacts" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "excludeContracts" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "excludeSelectors" - ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; - getFunction( - nameOrSignature: "excludeSenders" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "failed" - ): TypedContractMethod<[], [boolean], "view">; - getFunction( - nameOrSignature: "prepareUniswapV2" - ): TypedContractMethod< - [deployer: AddressLike, wzeta: AddressLike], - [[string, string] & { factory: string; router: string }], - "nonpayable" - >; - getFunction( - nameOrSignature: "targetArtifactSelectors" - ): TypedContractMethod< - [], - [StdInvariant.FuzzArtifactSelectorStructOutput[]], - "view" - >; - getFunction( - nameOrSignature: "targetArtifacts" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "targetContracts" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "targetInterfaces" - ): TypedContractMethod< - [], - [StdInvariant.FuzzInterfaceStructOutput[]], - "view" - >; - getFunction( - nameOrSignature: "targetSelectors" - ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; - getFunction( - nameOrSignature: "targetSenders" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "uniswapV2AddLiquidity" - ): TypedContractMethod< - [ - uniswapV2Router: AddressLike, - uniswapV2Factory: AddressLike, - zrc20: AddressLike, - wzeta: AddressLike, - deployer: AddressLike, - zrc20Amount: BigNumberish, - wzetaAmount: BigNumberish - ], - [void], - "nonpayable" - >; - - getEvent( - key: "log" - ): TypedContractEvent< - logEvent.InputTuple, - logEvent.OutputTuple, - logEvent.OutputObject - >; - getEvent( - key: "log_address" - ): TypedContractEvent< - log_addressEvent.InputTuple, - log_addressEvent.OutputTuple, - log_addressEvent.OutputObject - >; - getEvent( - key: "log_array(uint256[])" - ): TypedContractEvent< - log_array_uint256_array_Event.InputTuple, - log_array_uint256_array_Event.OutputTuple, - log_array_uint256_array_Event.OutputObject - >; - getEvent( - key: "log_array(int256[])" - ): TypedContractEvent< - log_array_int256_array_Event.InputTuple, - log_array_int256_array_Event.OutputTuple, - log_array_int256_array_Event.OutputObject - >; - getEvent( - key: "log_array(address[])" - ): TypedContractEvent< - log_array_address_array_Event.InputTuple, - log_array_address_array_Event.OutputTuple, - log_array_address_array_Event.OutputObject - >; - getEvent( - key: "log_bytes" - ): TypedContractEvent< - log_bytesEvent.InputTuple, - log_bytesEvent.OutputTuple, - log_bytesEvent.OutputObject - >; - getEvent( - key: "log_bytes32" - ): TypedContractEvent< - log_bytes32Event.InputTuple, - log_bytes32Event.OutputTuple, - log_bytes32Event.OutputObject - >; - getEvent( - key: "log_int" - ): TypedContractEvent< - log_intEvent.InputTuple, - log_intEvent.OutputTuple, - log_intEvent.OutputObject - >; - getEvent( - key: "log_named_address" - ): TypedContractEvent< - log_named_addressEvent.InputTuple, - log_named_addressEvent.OutputTuple, - log_named_addressEvent.OutputObject - >; - getEvent( - key: "log_named_array(string,uint256[])" - ): TypedContractEvent< - log_named_array_string_uint256_array_Event.InputTuple, - log_named_array_string_uint256_array_Event.OutputTuple, - log_named_array_string_uint256_array_Event.OutputObject - >; - getEvent( - key: "log_named_array(string,int256[])" - ): TypedContractEvent< - log_named_array_string_int256_array_Event.InputTuple, - log_named_array_string_int256_array_Event.OutputTuple, - log_named_array_string_int256_array_Event.OutputObject - >; - getEvent( - key: "log_named_array(string,address[])" - ): TypedContractEvent< - log_named_array_string_address_array_Event.InputTuple, - log_named_array_string_address_array_Event.OutputTuple, - log_named_array_string_address_array_Event.OutputObject - >; - getEvent( - key: "log_named_bytes" - ): TypedContractEvent< - log_named_bytesEvent.InputTuple, - log_named_bytesEvent.OutputTuple, - log_named_bytesEvent.OutputObject - >; - getEvent( - key: "log_named_bytes32" - ): TypedContractEvent< - log_named_bytes32Event.InputTuple, - log_named_bytes32Event.OutputTuple, - log_named_bytes32Event.OutputObject - >; - getEvent( - key: "log_named_decimal_int" - ): TypedContractEvent< - log_named_decimal_intEvent.InputTuple, - log_named_decimal_intEvent.OutputTuple, - log_named_decimal_intEvent.OutputObject - >; - getEvent( - key: "log_named_decimal_uint" - ): TypedContractEvent< - log_named_decimal_uintEvent.InputTuple, - log_named_decimal_uintEvent.OutputTuple, - log_named_decimal_uintEvent.OutputObject - >; - getEvent( - key: "log_named_int" - ): TypedContractEvent< - log_named_intEvent.InputTuple, - log_named_intEvent.OutputTuple, - log_named_intEvent.OutputObject - >; - getEvent( - key: "log_named_string" - ): TypedContractEvent< - log_named_stringEvent.InputTuple, - log_named_stringEvent.OutputTuple, - log_named_stringEvent.OutputObject - >; - getEvent( - key: "log_named_uint" - ): TypedContractEvent< - log_named_uintEvent.InputTuple, - log_named_uintEvent.OutputTuple, - log_named_uintEvent.OutputObject - >; - getEvent( - key: "log_string" - ): TypedContractEvent< - log_stringEvent.InputTuple, - log_stringEvent.OutputTuple, - log_stringEvent.OutputObject - >; - getEvent( - key: "log_uint" - ): TypedContractEvent< - log_uintEvent.InputTuple, - log_uintEvent.OutputTuple, - log_uintEvent.OutputObject - >; - getEvent( - key: "logs" - ): TypedContractEvent< - logsEvent.InputTuple, - logsEvent.OutputTuple, - logsEvent.OutputObject - >; - - filters: { - "log(string)": TypedContractEvent< - logEvent.InputTuple, - logEvent.OutputTuple, - logEvent.OutputObject - >; - log: TypedContractEvent< - logEvent.InputTuple, - logEvent.OutputTuple, - logEvent.OutputObject - >; - - "log_address(address)": TypedContractEvent< - log_addressEvent.InputTuple, - log_addressEvent.OutputTuple, - log_addressEvent.OutputObject - >; - log_address: TypedContractEvent< - log_addressEvent.InputTuple, - log_addressEvent.OutputTuple, - log_addressEvent.OutputObject - >; - - "log_array(uint256[])": TypedContractEvent< - log_array_uint256_array_Event.InputTuple, - log_array_uint256_array_Event.OutputTuple, - log_array_uint256_array_Event.OutputObject - >; - "log_array(int256[])": TypedContractEvent< - log_array_int256_array_Event.InputTuple, - log_array_int256_array_Event.OutputTuple, - log_array_int256_array_Event.OutputObject - >; - "log_array(address[])": TypedContractEvent< - log_array_address_array_Event.InputTuple, - log_array_address_array_Event.OutputTuple, - log_array_address_array_Event.OutputObject - >; - - "log_bytes(bytes)": TypedContractEvent< - log_bytesEvent.InputTuple, - log_bytesEvent.OutputTuple, - log_bytesEvent.OutputObject - >; - log_bytes: TypedContractEvent< - log_bytesEvent.InputTuple, - log_bytesEvent.OutputTuple, - log_bytesEvent.OutputObject - >; - - "log_bytes32(bytes32)": TypedContractEvent< - log_bytes32Event.InputTuple, - log_bytes32Event.OutputTuple, - log_bytes32Event.OutputObject - >; - log_bytes32: TypedContractEvent< - log_bytes32Event.InputTuple, - log_bytes32Event.OutputTuple, - log_bytes32Event.OutputObject - >; - - "log_int(int256)": TypedContractEvent< - log_intEvent.InputTuple, - log_intEvent.OutputTuple, - log_intEvent.OutputObject - >; - log_int: TypedContractEvent< - log_intEvent.InputTuple, - log_intEvent.OutputTuple, - log_intEvent.OutputObject - >; - - "log_named_address(string,address)": TypedContractEvent< - log_named_addressEvent.InputTuple, - log_named_addressEvent.OutputTuple, - log_named_addressEvent.OutputObject - >; - log_named_address: TypedContractEvent< - log_named_addressEvent.InputTuple, - log_named_addressEvent.OutputTuple, - log_named_addressEvent.OutputObject - >; - - "log_named_array(string,uint256[])": TypedContractEvent< - log_named_array_string_uint256_array_Event.InputTuple, - log_named_array_string_uint256_array_Event.OutputTuple, - log_named_array_string_uint256_array_Event.OutputObject - >; - "log_named_array(string,int256[])": TypedContractEvent< - log_named_array_string_int256_array_Event.InputTuple, - log_named_array_string_int256_array_Event.OutputTuple, - log_named_array_string_int256_array_Event.OutputObject - >; - "log_named_array(string,address[])": TypedContractEvent< - log_named_array_string_address_array_Event.InputTuple, - log_named_array_string_address_array_Event.OutputTuple, - log_named_array_string_address_array_Event.OutputObject - >; - - "log_named_bytes(string,bytes)": TypedContractEvent< - log_named_bytesEvent.InputTuple, - log_named_bytesEvent.OutputTuple, - log_named_bytesEvent.OutputObject - >; - log_named_bytes: TypedContractEvent< - log_named_bytesEvent.InputTuple, - log_named_bytesEvent.OutputTuple, - log_named_bytesEvent.OutputObject - >; - - "log_named_bytes32(string,bytes32)": TypedContractEvent< - log_named_bytes32Event.InputTuple, - log_named_bytes32Event.OutputTuple, - log_named_bytes32Event.OutputObject - >; - log_named_bytes32: TypedContractEvent< - log_named_bytes32Event.InputTuple, - log_named_bytes32Event.OutputTuple, - log_named_bytes32Event.OutputObject - >; - - "log_named_decimal_int(string,int256,uint256)": TypedContractEvent< - log_named_decimal_intEvent.InputTuple, - log_named_decimal_intEvent.OutputTuple, - log_named_decimal_intEvent.OutputObject - >; - log_named_decimal_int: TypedContractEvent< - log_named_decimal_intEvent.InputTuple, - log_named_decimal_intEvent.OutputTuple, - log_named_decimal_intEvent.OutputObject - >; - - "log_named_decimal_uint(string,uint256,uint256)": TypedContractEvent< - log_named_decimal_uintEvent.InputTuple, - log_named_decimal_uintEvent.OutputTuple, - log_named_decimal_uintEvent.OutputObject - >; - log_named_decimal_uint: TypedContractEvent< - log_named_decimal_uintEvent.InputTuple, - log_named_decimal_uintEvent.OutputTuple, - log_named_decimal_uintEvent.OutputObject - >; - - "log_named_int(string,int256)": TypedContractEvent< - log_named_intEvent.InputTuple, - log_named_intEvent.OutputTuple, - log_named_intEvent.OutputObject - >; - log_named_int: TypedContractEvent< - log_named_intEvent.InputTuple, - log_named_intEvent.OutputTuple, - log_named_intEvent.OutputObject - >; - - "log_named_string(string,string)": TypedContractEvent< - log_named_stringEvent.InputTuple, - log_named_stringEvent.OutputTuple, - log_named_stringEvent.OutputObject - >; - log_named_string: TypedContractEvent< - log_named_stringEvent.InputTuple, - log_named_stringEvent.OutputTuple, - log_named_stringEvent.OutputObject - >; - - "log_named_uint(string,uint256)": TypedContractEvent< - log_named_uintEvent.InputTuple, - log_named_uintEvent.OutputTuple, - log_named_uintEvent.OutputObject - >; - log_named_uint: TypedContractEvent< - log_named_uintEvent.InputTuple, - log_named_uintEvent.OutputTuple, - log_named_uintEvent.OutputObject - >; - - "log_string(string)": TypedContractEvent< - log_stringEvent.InputTuple, - log_stringEvent.OutputTuple, - log_stringEvent.OutputObject - >; - log_string: TypedContractEvent< - log_stringEvent.InputTuple, - log_stringEvent.OutputTuple, - log_stringEvent.OutputObject - >; - - "log_uint(uint256)": TypedContractEvent< - log_uintEvent.InputTuple, - log_uintEvent.OutputTuple, - log_uintEvent.OutputObject - >; - log_uint: TypedContractEvent< - log_uintEvent.InputTuple, - log_uintEvent.OutputTuple, - log_uintEvent.OutputObject - >; - - "logs(bytes)": TypedContractEvent< - logsEvent.InputTuple, - logsEvent.OutputTuple, - logsEvent.OutputObject - >; - logs: TypedContractEvent< - logsEvent.InputTuple, - logsEvent.OutputTuple, - logsEvent.OutputObject - >; - }; -} diff --git a/typechain-types/contracts/testing/UniswapV2SetupLib.sol/index.ts b/typechain-types/contracts/testing/UniswapV2SetupLib.sol/index.ts deleted file mode 100644 index dd376e95..00000000 --- a/typechain-types/contracts/testing/UniswapV2SetupLib.sol/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { IUniswapV2Factory } from "./IUniswapV2Factory"; -export type { IUniswapV2Router02 } from "./IUniswapV2Router02"; -export type { UniswapV2SetupLib } from "./UniswapV2SetupLib"; diff --git a/typechain-types/contracts/testing/UniswapV3SetupLib.sol/INonfungiblePositionManager.ts b/typechain-types/contracts/testing/UniswapV3SetupLib.sol/INonfungiblePositionManager.ts deleted file mode 100644 index 99689894..00000000 --- a/typechain-types/contracts/testing/UniswapV3SetupLib.sol/INonfungiblePositionManager.ts +++ /dev/null @@ -1,239 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../../common"; - -export declare namespace INonfungiblePositionManager { - export type MintParamsStruct = { - token0: AddressLike; - token1: AddressLike; - fee: BigNumberish; - tickLower: BigNumberish; - tickUpper: BigNumberish; - amount0Desired: BigNumberish; - amount1Desired: BigNumberish; - amount0Min: BigNumberish; - amount1Min: BigNumberish; - recipient: AddressLike; - deadline: BigNumberish; - }; - - export type MintParamsStructOutput = [ - token0: string, - token1: string, - fee: bigint, - tickLower: bigint, - tickUpper: bigint, - amount0Desired: bigint, - amount1Desired: bigint, - amount0Min: bigint, - amount1Min: bigint, - recipient: string, - deadline: bigint - ] & { - token0: string; - token1: string; - fee: bigint; - tickLower: bigint; - tickUpper: bigint; - amount0Desired: bigint; - amount1Desired: bigint; - amount0Min: bigint; - amount1Min: bigint; - recipient: string; - deadline: bigint; - }; -} - -export interface INonfungiblePositionManagerInterface extends Interface { - getFunction( - nameOrSignature: "mint" | "ownerOf" | "positions" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "mint", - values: [INonfungiblePositionManager.MintParamsStruct] - ): string; - encodeFunctionData( - functionFragment: "ownerOf", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "positions", - values: [BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "ownerOf", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "positions", data: BytesLike): Result; -} - -export interface INonfungiblePositionManager extends BaseContract { - connect(runner?: ContractRunner | null): INonfungiblePositionManager; - waitForDeployment(): Promise; - - interface: INonfungiblePositionManagerInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - mint: TypedContractMethod< - [params: INonfungiblePositionManager.MintParamsStruct], - [ - [bigint, bigint, bigint, bigint] & { - tokenId: bigint; - liquidity: bigint; - amount0: bigint; - amount1: bigint; - } - ], - "nonpayable" - >; - - ownerOf: TypedContractMethod<[tokenId: BigNumberish], [string], "view">; - - positions: TypedContractMethod< - [tokenId: BigNumberish], - [ - [ - bigint, - string, - string, - string, - bigint, - bigint, - bigint, - bigint, - bigint, - bigint, - bigint, - bigint - ] & { - nonce: bigint; - operator: string; - token0: string; - token1: string; - fee: bigint; - tickLower: bigint; - tickUpper: bigint; - liquidity: bigint; - feeGrowthInside0LastX128: bigint; - feeGrowthInside1LastX128: bigint; - tokensOwed0: bigint; - tokensOwed1: bigint; - } - ], - "view" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "mint" - ): TypedContractMethod< - [params: INonfungiblePositionManager.MintParamsStruct], - [ - [bigint, bigint, bigint, bigint] & { - tokenId: bigint; - liquidity: bigint; - amount0: bigint; - amount1: bigint; - } - ], - "nonpayable" - >; - getFunction( - nameOrSignature: "ownerOf" - ): TypedContractMethod<[tokenId: BigNumberish], [string], "view">; - getFunction( - nameOrSignature: "positions" - ): TypedContractMethod< - [tokenId: BigNumberish], - [ - [ - bigint, - string, - string, - string, - bigint, - bigint, - bigint, - bigint, - bigint, - bigint, - bigint, - bigint - ] & { - nonce: bigint; - operator: string; - token0: string; - token1: string; - fee: bigint; - tickLower: bigint; - tickUpper: bigint; - liquidity: bigint; - feeGrowthInside0LastX128: bigint; - feeGrowthInside1LastX128: bigint; - tokensOwed0: bigint; - tokensOwed1: bigint; - } - ], - "view" - >; - - filters: {}; -} diff --git a/typechain-types/contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Factory.ts b/typechain-types/contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Factory.ts deleted file mode 100644 index 6edc4b35..00000000 --- a/typechain-types/contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Factory.ts +++ /dev/null @@ -1,115 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../../common"; - -export interface IUniswapV3FactoryInterface extends Interface { - getFunction(nameOrSignature: "createPool" | "getPool"): FunctionFragment; - - encodeFunctionData( - functionFragment: "createPool", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "getPool", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "createPool", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "getPool", data: BytesLike): Result; -} - -export interface IUniswapV3Factory extends BaseContract { - connect(runner?: ContractRunner | null): IUniswapV3Factory; - waitForDeployment(): Promise; - - interface: IUniswapV3FactoryInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - createPool: TypedContractMethod< - [tokenA: AddressLike, tokenB: AddressLike, fee: BigNumberish], - [string], - "nonpayable" - >; - - getPool: TypedContractMethod< - [tokenA: AddressLike, tokenB: AddressLike, fee: BigNumberish], - [string], - "view" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "createPool" - ): TypedContractMethod< - [tokenA: AddressLike, tokenB: AddressLike, fee: BigNumberish], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "getPool" - ): TypedContractMethod< - [tokenA: AddressLike, tokenB: AddressLike, fee: BigNumberish], - [string], - "view" - >; - - filters: {}; -} diff --git a/typechain-types/contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Pool.ts b/typechain-types/contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Pool.ts deleted file mode 100644 index c7ae1430..00000000 --- a/typechain-types/contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Pool.ts +++ /dev/null @@ -1,150 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../../common"; - -export interface IUniswapV3PoolInterface extends Interface { - getFunction( - nameOrSignature: "initialize" | "liquidity" | "slot0" | "token0" | "token1" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "initialize", - values: [BigNumberish] - ): string; - encodeFunctionData(functionFragment: "liquidity", values?: undefined): string; - encodeFunctionData(functionFragment: "slot0", values?: undefined): string; - encodeFunctionData(functionFragment: "token0", values?: undefined): string; - encodeFunctionData(functionFragment: "token1", values?: undefined): string; - - decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "liquidity", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "slot0", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "token0", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "token1", data: BytesLike): Result; -} - -export interface IUniswapV3Pool extends BaseContract { - connect(runner?: ContractRunner | null): IUniswapV3Pool; - waitForDeployment(): Promise; - - interface: IUniswapV3PoolInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - initialize: TypedContractMethod< - [sqrtPriceX96: BigNumberish], - [void], - "nonpayable" - >; - - liquidity: TypedContractMethod<[], [bigint], "view">; - - slot0: TypedContractMethod< - [], - [ - [bigint, bigint, bigint, bigint, bigint, bigint, boolean] & { - sqrtPriceX96: bigint; - tick: bigint; - observationIndex: bigint; - observationCardinality: bigint; - observationCardinalityNext: bigint; - feeProtocol: bigint; - unlocked: boolean; - } - ], - "view" - >; - - token0: TypedContractMethod<[], [string], "view">; - - token1: TypedContractMethod<[], [string], "view">; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "initialize" - ): TypedContractMethod<[sqrtPriceX96: BigNumberish], [void], "nonpayable">; - getFunction( - nameOrSignature: "liquidity" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "slot0" - ): TypedContractMethod< - [], - [ - [bigint, bigint, bigint, bigint, bigint, bigint, boolean] & { - sqrtPriceX96: bigint; - tick: bigint; - observationIndex: bigint; - observationCardinality: bigint; - observationCardinalityNext: bigint; - feeProtocol: bigint; - unlocked: boolean; - } - ], - "view" - >; - getFunction( - nameOrSignature: "token0" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "token1" - ): TypedContractMethod<[], [string], "view">; - - filters: {}; -} diff --git a/typechain-types/contracts/testing/UniswapV3SetupLib.sol/UniswapV3SetupLib.ts b/typechain-types/contracts/testing/UniswapV3SetupLib.sol/UniswapV3SetupLib.ts deleted file mode 100644 index 305659bd..00000000 --- a/typechain-types/contracts/testing/UniswapV3SetupLib.sol/UniswapV3SetupLib.ts +++ /dev/null @@ -1,966 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../common"; - -export declare namespace StdInvariant { - export type FuzzSelectorStruct = { - addr: AddressLike; - selectors: BytesLike[]; - }; - - export type FuzzSelectorStructOutput = [addr: string, selectors: string[]] & { - addr: string; - selectors: string[]; - }; - - export type FuzzArtifactSelectorStruct = { - artifact: string; - selectors: BytesLike[]; - }; - - export type FuzzArtifactSelectorStructOutput = [ - artifact: string, - selectors: string[] - ] & { artifact: string; selectors: string[] }; - - export type FuzzInterfaceStruct = { addr: AddressLike; artifacts: string[] }; - - export type FuzzInterfaceStructOutput = [ - addr: string, - artifacts: string[] - ] & { addr: string; artifacts: string[] }; -} - -export interface UniswapV3SetupLibInterface extends Interface { - getFunction( - nameOrSignature: - | "IS_TEST" - | "excludeArtifacts" - | "excludeContracts" - | "excludeSelectors" - | "excludeSenders" - | "failed" - | "targetArtifactSelectors" - | "targetArtifacts" - | "targetContracts" - | "targetInterfaces" - | "targetSelectors" - | "targetSenders" - ): FunctionFragment; - - getEvent( - nameOrSignatureOrTopic: - | "log" - | "log_address" - | "log_array(uint256[])" - | "log_array(int256[])" - | "log_array(address[])" - | "log_bytes" - | "log_bytes32" - | "log_int" - | "log_named_address" - | "log_named_array(string,uint256[])" - | "log_named_array(string,int256[])" - | "log_named_array(string,address[])" - | "log_named_bytes" - | "log_named_bytes32" - | "log_named_decimal_int" - | "log_named_decimal_uint" - | "log_named_int" - | "log_named_string" - | "log_named_uint" - | "log_string" - | "log_uint" - | "logs" - ): EventFragment; - - encodeFunctionData(functionFragment: "IS_TEST", values?: undefined): string; - encodeFunctionData( - functionFragment: "excludeArtifacts", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "excludeContracts", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "excludeSelectors", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "excludeSenders", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "failed", values?: undefined): string; - encodeFunctionData( - functionFragment: "targetArtifactSelectors", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetArtifacts", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetContracts", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetInterfaces", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetSelectors", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetSenders", - values?: undefined - ): string; - - decodeFunctionResult(functionFragment: "IS_TEST", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "excludeArtifacts", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "excludeContracts", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "excludeSelectors", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "excludeSenders", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "failed", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "targetArtifactSelectors", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetArtifacts", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetContracts", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetInterfaces", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetSelectors", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetSenders", - data: BytesLike - ): Result; -} - -export namespace logEvent { - export type InputTuple = [arg0: string]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_addressEvent { - export type InputTuple = [arg0: AddressLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_array_uint256_array_Event { - export type InputTuple = [val: BigNumberish[]]; - export type OutputTuple = [val: bigint[]]; - export interface OutputObject { - val: bigint[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_array_int256_array_Event { - export type InputTuple = [val: BigNumberish[]]; - export type OutputTuple = [val: bigint[]]; - export interface OutputObject { - val: bigint[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_array_address_array_Event { - export type InputTuple = [val: AddressLike[]]; - export type OutputTuple = [val: string[]]; - export interface OutputObject { - val: string[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_bytesEvent { - export type InputTuple = [arg0: BytesLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_bytes32Event { - export type InputTuple = [arg0: BytesLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_intEvent { - export type InputTuple = [arg0: BigNumberish]; - export type OutputTuple = [arg0: bigint]; - export interface OutputObject { - arg0: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_addressEvent { - export type InputTuple = [key: string, val: AddressLike]; - export type OutputTuple = [key: string, val: string]; - export interface OutputObject { - key: string; - val: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_array_string_uint256_array_Event { - export type InputTuple = [key: string, val: BigNumberish[]]; - export type OutputTuple = [key: string, val: bigint[]]; - export interface OutputObject { - key: string; - val: bigint[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_array_string_int256_array_Event { - export type InputTuple = [key: string, val: BigNumberish[]]; - export type OutputTuple = [key: string, val: bigint[]]; - export interface OutputObject { - key: string; - val: bigint[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_array_string_address_array_Event { - export type InputTuple = [key: string, val: AddressLike[]]; - export type OutputTuple = [key: string, val: string[]]; - export interface OutputObject { - key: string; - val: string[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_bytesEvent { - export type InputTuple = [key: string, val: BytesLike]; - export type OutputTuple = [key: string, val: string]; - export interface OutputObject { - key: string; - val: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_bytes32Event { - export type InputTuple = [key: string, val: BytesLike]; - export type OutputTuple = [key: string, val: string]; - export interface OutputObject { - key: string; - val: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_decimal_intEvent { - export type InputTuple = [ - key: string, - val: BigNumberish, - decimals: BigNumberish - ]; - export type OutputTuple = [key: string, val: bigint, decimals: bigint]; - export interface OutputObject { - key: string; - val: bigint; - decimals: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_decimal_uintEvent { - export type InputTuple = [ - key: string, - val: BigNumberish, - decimals: BigNumberish - ]; - export type OutputTuple = [key: string, val: bigint, decimals: bigint]; - export interface OutputObject { - key: string; - val: bigint; - decimals: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_intEvent { - export type InputTuple = [key: string, val: BigNumberish]; - export type OutputTuple = [key: string, val: bigint]; - export interface OutputObject { - key: string; - val: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_stringEvent { - export type InputTuple = [key: string, val: string]; - export type OutputTuple = [key: string, val: string]; - export interface OutputObject { - key: string; - val: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_uintEvent { - export type InputTuple = [key: string, val: BigNumberish]; - export type OutputTuple = [key: string, val: bigint]; - export interface OutputObject { - key: string; - val: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_stringEvent { - export type InputTuple = [arg0: string]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_uintEvent { - export type InputTuple = [arg0: BigNumberish]; - export type OutputTuple = [arg0: bigint]; - export interface OutputObject { - arg0: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace logsEvent { - export type InputTuple = [arg0: BytesLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface UniswapV3SetupLib extends BaseContract { - connect(runner?: ContractRunner | null): UniswapV3SetupLib; - waitForDeployment(): Promise; - - interface: UniswapV3SetupLibInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - IS_TEST: TypedContractMethod<[], [boolean], "view">; - - excludeArtifacts: TypedContractMethod<[], [string[]], "view">; - - excludeContracts: TypedContractMethod<[], [string[]], "view">; - - excludeSelectors: TypedContractMethod< - [], - [StdInvariant.FuzzSelectorStructOutput[]], - "view" - >; - - excludeSenders: TypedContractMethod<[], [string[]], "view">; - - failed: TypedContractMethod<[], [boolean], "view">; - - targetArtifactSelectors: TypedContractMethod< - [], - [StdInvariant.FuzzArtifactSelectorStructOutput[]], - "view" - >; - - targetArtifacts: TypedContractMethod<[], [string[]], "view">; - - targetContracts: TypedContractMethod<[], [string[]], "view">; - - targetInterfaces: TypedContractMethod< - [], - [StdInvariant.FuzzInterfaceStructOutput[]], - "view" - >; - - targetSelectors: TypedContractMethod< - [], - [StdInvariant.FuzzSelectorStructOutput[]], - "view" - >; - - targetSenders: TypedContractMethod<[], [string[]], "view">; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "IS_TEST" - ): TypedContractMethod<[], [boolean], "view">; - getFunction( - nameOrSignature: "excludeArtifacts" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "excludeContracts" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "excludeSelectors" - ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; - getFunction( - nameOrSignature: "excludeSenders" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "failed" - ): TypedContractMethod<[], [boolean], "view">; - getFunction( - nameOrSignature: "targetArtifactSelectors" - ): TypedContractMethod< - [], - [StdInvariant.FuzzArtifactSelectorStructOutput[]], - "view" - >; - getFunction( - nameOrSignature: "targetArtifacts" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "targetContracts" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "targetInterfaces" - ): TypedContractMethod< - [], - [StdInvariant.FuzzInterfaceStructOutput[]], - "view" - >; - getFunction( - nameOrSignature: "targetSelectors" - ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; - getFunction( - nameOrSignature: "targetSenders" - ): TypedContractMethod<[], [string[]], "view">; - - getEvent( - key: "log" - ): TypedContractEvent< - logEvent.InputTuple, - logEvent.OutputTuple, - logEvent.OutputObject - >; - getEvent( - key: "log_address" - ): TypedContractEvent< - log_addressEvent.InputTuple, - log_addressEvent.OutputTuple, - log_addressEvent.OutputObject - >; - getEvent( - key: "log_array(uint256[])" - ): TypedContractEvent< - log_array_uint256_array_Event.InputTuple, - log_array_uint256_array_Event.OutputTuple, - log_array_uint256_array_Event.OutputObject - >; - getEvent( - key: "log_array(int256[])" - ): TypedContractEvent< - log_array_int256_array_Event.InputTuple, - log_array_int256_array_Event.OutputTuple, - log_array_int256_array_Event.OutputObject - >; - getEvent( - key: "log_array(address[])" - ): TypedContractEvent< - log_array_address_array_Event.InputTuple, - log_array_address_array_Event.OutputTuple, - log_array_address_array_Event.OutputObject - >; - getEvent( - key: "log_bytes" - ): TypedContractEvent< - log_bytesEvent.InputTuple, - log_bytesEvent.OutputTuple, - log_bytesEvent.OutputObject - >; - getEvent( - key: "log_bytes32" - ): TypedContractEvent< - log_bytes32Event.InputTuple, - log_bytes32Event.OutputTuple, - log_bytes32Event.OutputObject - >; - getEvent( - key: "log_int" - ): TypedContractEvent< - log_intEvent.InputTuple, - log_intEvent.OutputTuple, - log_intEvent.OutputObject - >; - getEvent( - key: "log_named_address" - ): TypedContractEvent< - log_named_addressEvent.InputTuple, - log_named_addressEvent.OutputTuple, - log_named_addressEvent.OutputObject - >; - getEvent( - key: "log_named_array(string,uint256[])" - ): TypedContractEvent< - log_named_array_string_uint256_array_Event.InputTuple, - log_named_array_string_uint256_array_Event.OutputTuple, - log_named_array_string_uint256_array_Event.OutputObject - >; - getEvent( - key: "log_named_array(string,int256[])" - ): TypedContractEvent< - log_named_array_string_int256_array_Event.InputTuple, - log_named_array_string_int256_array_Event.OutputTuple, - log_named_array_string_int256_array_Event.OutputObject - >; - getEvent( - key: "log_named_array(string,address[])" - ): TypedContractEvent< - log_named_array_string_address_array_Event.InputTuple, - log_named_array_string_address_array_Event.OutputTuple, - log_named_array_string_address_array_Event.OutputObject - >; - getEvent( - key: "log_named_bytes" - ): TypedContractEvent< - log_named_bytesEvent.InputTuple, - log_named_bytesEvent.OutputTuple, - log_named_bytesEvent.OutputObject - >; - getEvent( - key: "log_named_bytes32" - ): TypedContractEvent< - log_named_bytes32Event.InputTuple, - log_named_bytes32Event.OutputTuple, - log_named_bytes32Event.OutputObject - >; - getEvent( - key: "log_named_decimal_int" - ): TypedContractEvent< - log_named_decimal_intEvent.InputTuple, - log_named_decimal_intEvent.OutputTuple, - log_named_decimal_intEvent.OutputObject - >; - getEvent( - key: "log_named_decimal_uint" - ): TypedContractEvent< - log_named_decimal_uintEvent.InputTuple, - log_named_decimal_uintEvent.OutputTuple, - log_named_decimal_uintEvent.OutputObject - >; - getEvent( - key: "log_named_int" - ): TypedContractEvent< - log_named_intEvent.InputTuple, - log_named_intEvent.OutputTuple, - log_named_intEvent.OutputObject - >; - getEvent( - key: "log_named_string" - ): TypedContractEvent< - log_named_stringEvent.InputTuple, - log_named_stringEvent.OutputTuple, - log_named_stringEvent.OutputObject - >; - getEvent( - key: "log_named_uint" - ): TypedContractEvent< - log_named_uintEvent.InputTuple, - log_named_uintEvent.OutputTuple, - log_named_uintEvent.OutputObject - >; - getEvent( - key: "log_string" - ): TypedContractEvent< - log_stringEvent.InputTuple, - log_stringEvent.OutputTuple, - log_stringEvent.OutputObject - >; - getEvent( - key: "log_uint" - ): TypedContractEvent< - log_uintEvent.InputTuple, - log_uintEvent.OutputTuple, - log_uintEvent.OutputObject - >; - getEvent( - key: "logs" - ): TypedContractEvent< - logsEvent.InputTuple, - logsEvent.OutputTuple, - logsEvent.OutputObject - >; - - filters: { - "log(string)": TypedContractEvent< - logEvent.InputTuple, - logEvent.OutputTuple, - logEvent.OutputObject - >; - log: TypedContractEvent< - logEvent.InputTuple, - logEvent.OutputTuple, - logEvent.OutputObject - >; - - "log_address(address)": TypedContractEvent< - log_addressEvent.InputTuple, - log_addressEvent.OutputTuple, - log_addressEvent.OutputObject - >; - log_address: TypedContractEvent< - log_addressEvent.InputTuple, - log_addressEvent.OutputTuple, - log_addressEvent.OutputObject - >; - - "log_array(uint256[])": TypedContractEvent< - log_array_uint256_array_Event.InputTuple, - log_array_uint256_array_Event.OutputTuple, - log_array_uint256_array_Event.OutputObject - >; - "log_array(int256[])": TypedContractEvent< - log_array_int256_array_Event.InputTuple, - log_array_int256_array_Event.OutputTuple, - log_array_int256_array_Event.OutputObject - >; - "log_array(address[])": TypedContractEvent< - log_array_address_array_Event.InputTuple, - log_array_address_array_Event.OutputTuple, - log_array_address_array_Event.OutputObject - >; - - "log_bytes(bytes)": TypedContractEvent< - log_bytesEvent.InputTuple, - log_bytesEvent.OutputTuple, - log_bytesEvent.OutputObject - >; - log_bytes: TypedContractEvent< - log_bytesEvent.InputTuple, - log_bytesEvent.OutputTuple, - log_bytesEvent.OutputObject - >; - - "log_bytes32(bytes32)": TypedContractEvent< - log_bytes32Event.InputTuple, - log_bytes32Event.OutputTuple, - log_bytes32Event.OutputObject - >; - log_bytes32: TypedContractEvent< - log_bytes32Event.InputTuple, - log_bytes32Event.OutputTuple, - log_bytes32Event.OutputObject - >; - - "log_int(int256)": TypedContractEvent< - log_intEvent.InputTuple, - log_intEvent.OutputTuple, - log_intEvent.OutputObject - >; - log_int: TypedContractEvent< - log_intEvent.InputTuple, - log_intEvent.OutputTuple, - log_intEvent.OutputObject - >; - - "log_named_address(string,address)": TypedContractEvent< - log_named_addressEvent.InputTuple, - log_named_addressEvent.OutputTuple, - log_named_addressEvent.OutputObject - >; - log_named_address: TypedContractEvent< - log_named_addressEvent.InputTuple, - log_named_addressEvent.OutputTuple, - log_named_addressEvent.OutputObject - >; - - "log_named_array(string,uint256[])": TypedContractEvent< - log_named_array_string_uint256_array_Event.InputTuple, - log_named_array_string_uint256_array_Event.OutputTuple, - log_named_array_string_uint256_array_Event.OutputObject - >; - "log_named_array(string,int256[])": TypedContractEvent< - log_named_array_string_int256_array_Event.InputTuple, - log_named_array_string_int256_array_Event.OutputTuple, - log_named_array_string_int256_array_Event.OutputObject - >; - "log_named_array(string,address[])": TypedContractEvent< - log_named_array_string_address_array_Event.InputTuple, - log_named_array_string_address_array_Event.OutputTuple, - log_named_array_string_address_array_Event.OutputObject - >; - - "log_named_bytes(string,bytes)": TypedContractEvent< - log_named_bytesEvent.InputTuple, - log_named_bytesEvent.OutputTuple, - log_named_bytesEvent.OutputObject - >; - log_named_bytes: TypedContractEvent< - log_named_bytesEvent.InputTuple, - log_named_bytesEvent.OutputTuple, - log_named_bytesEvent.OutputObject - >; - - "log_named_bytes32(string,bytes32)": TypedContractEvent< - log_named_bytes32Event.InputTuple, - log_named_bytes32Event.OutputTuple, - log_named_bytes32Event.OutputObject - >; - log_named_bytes32: TypedContractEvent< - log_named_bytes32Event.InputTuple, - log_named_bytes32Event.OutputTuple, - log_named_bytes32Event.OutputObject - >; - - "log_named_decimal_int(string,int256,uint256)": TypedContractEvent< - log_named_decimal_intEvent.InputTuple, - log_named_decimal_intEvent.OutputTuple, - log_named_decimal_intEvent.OutputObject - >; - log_named_decimal_int: TypedContractEvent< - log_named_decimal_intEvent.InputTuple, - log_named_decimal_intEvent.OutputTuple, - log_named_decimal_intEvent.OutputObject - >; - - "log_named_decimal_uint(string,uint256,uint256)": TypedContractEvent< - log_named_decimal_uintEvent.InputTuple, - log_named_decimal_uintEvent.OutputTuple, - log_named_decimal_uintEvent.OutputObject - >; - log_named_decimal_uint: TypedContractEvent< - log_named_decimal_uintEvent.InputTuple, - log_named_decimal_uintEvent.OutputTuple, - log_named_decimal_uintEvent.OutputObject - >; - - "log_named_int(string,int256)": TypedContractEvent< - log_named_intEvent.InputTuple, - log_named_intEvent.OutputTuple, - log_named_intEvent.OutputObject - >; - log_named_int: TypedContractEvent< - log_named_intEvent.InputTuple, - log_named_intEvent.OutputTuple, - log_named_intEvent.OutputObject - >; - - "log_named_string(string,string)": TypedContractEvent< - log_named_stringEvent.InputTuple, - log_named_stringEvent.OutputTuple, - log_named_stringEvent.OutputObject - >; - log_named_string: TypedContractEvent< - log_named_stringEvent.InputTuple, - log_named_stringEvent.OutputTuple, - log_named_stringEvent.OutputObject - >; - - "log_named_uint(string,uint256)": TypedContractEvent< - log_named_uintEvent.InputTuple, - log_named_uintEvent.OutputTuple, - log_named_uintEvent.OutputObject - >; - log_named_uint: TypedContractEvent< - log_named_uintEvent.InputTuple, - log_named_uintEvent.OutputTuple, - log_named_uintEvent.OutputObject - >; - - "log_string(string)": TypedContractEvent< - log_stringEvent.InputTuple, - log_stringEvent.OutputTuple, - log_stringEvent.OutputObject - >; - log_string: TypedContractEvent< - log_stringEvent.InputTuple, - log_stringEvent.OutputTuple, - log_stringEvent.OutputObject - >; - - "log_uint(uint256)": TypedContractEvent< - log_uintEvent.InputTuple, - log_uintEvent.OutputTuple, - log_uintEvent.OutputObject - >; - log_uint: TypedContractEvent< - log_uintEvent.InputTuple, - log_uintEvent.OutputTuple, - log_uintEvent.OutputObject - >; - - "logs(bytes)": TypedContractEvent< - logsEvent.InputTuple, - logsEvent.OutputTuple, - logsEvent.OutputObject - >; - logs: TypedContractEvent< - logsEvent.InputTuple, - logsEvent.OutputTuple, - logsEvent.OutputObject - >; - }; -} diff --git a/typechain-types/contracts/testing/UniswapV3SetupLib.sol/index.ts b/typechain-types/contracts/testing/UniswapV3SetupLib.sol/index.ts deleted file mode 100644 index 6788930a..00000000 --- a/typechain-types/contracts/testing/UniswapV3SetupLib.sol/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { INonfungiblePositionManager } from "./INonfungiblePositionManager"; -export type { IUniswapV3Factory } from "./IUniswapV3Factory"; -export type { IUniswapV3Pool } from "./IUniswapV3Pool"; -export type { UniswapV3SetupLib } from "./UniswapV3SetupLib"; diff --git a/typechain-types/contracts/testing/ZetaSetup.t.sol/ZetaSetup.ts b/typechain-types/contracts/testing/ZetaSetup.t.sol/ZetaSetup.ts deleted file mode 100644 index 198f0415..00000000 --- a/typechain-types/contracts/testing/ZetaSetup.t.sol/ZetaSetup.ts +++ /dev/null @@ -1,1190 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../common"; - -export declare namespace StdInvariant { - export type FuzzSelectorStruct = { - addr: AddressLike; - selectors: BytesLike[]; - }; - - export type FuzzSelectorStructOutput = [addr: string, selectors: string[]] & { - addr: string; - selectors: string[]; - }; - - export type FuzzArtifactSelectorStruct = { - artifact: string; - selectors: BytesLike[]; - }; - - export type FuzzArtifactSelectorStructOutput = [ - artifact: string, - selectors: string[] - ] & { artifact: string; selectors: string[] }; - - export type FuzzInterfaceStruct = { addr: AddressLike; artifacts: string[] }; - - export type FuzzInterfaceStructOutput = [ - addr: string, - artifacts: string[] - ] & { addr: string; artifacts: string[] }; -} - -export interface ZetaSetupInterface extends Interface { - getFunction( - nameOrSignature: - | "FUNGIBLE_MODULE_ADDRESS" - | "IS_TEST" - | "deployer" - | "excludeArtifacts" - | "excludeContracts" - | "excludeSelectors" - | "excludeSenders" - | "failed" - | "nodeLogicMock" - | "prepareUniswapV2" - | "setupZetaChain" - | "systemContract" - | "targetArtifactSelectors" - | "targetArtifacts" - | "targetContracts" - | "targetInterfaces" - | "targetSelectors" - | "targetSenders" - | "uniswapV2AddLiquidity" - | "uniswapV2Factory" - | "uniswapV2Router" - | "uniswapV3Factory" - | "uniswapV3PositionManager" - | "uniswapV3Router" - | "wrapGatewayZEVM" - | "wzeta" - ): FunctionFragment; - - getEvent( - nameOrSignatureOrTopic: - | "log" - | "log_address" - | "log_array(uint256[])" - | "log_array(int256[])" - | "log_array(address[])" - | "log_bytes" - | "log_bytes32" - | "log_int" - | "log_named_address" - | "log_named_array(string,uint256[])" - | "log_named_array(string,int256[])" - | "log_named_array(string,address[])" - | "log_named_bytes" - | "log_named_bytes32" - | "log_named_decimal_int" - | "log_named_decimal_uint" - | "log_named_int" - | "log_named_string" - | "log_named_uint" - | "log_string" - | "log_uint" - | "logs" - ): EventFragment; - - encodeFunctionData( - functionFragment: "FUNGIBLE_MODULE_ADDRESS", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "IS_TEST", values?: undefined): string; - encodeFunctionData(functionFragment: "deployer", values?: undefined): string; - encodeFunctionData( - functionFragment: "excludeArtifacts", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "excludeContracts", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "excludeSelectors", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "excludeSenders", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "failed", values?: undefined): string; - encodeFunctionData( - functionFragment: "nodeLogicMock", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "prepareUniswapV2", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "setupZetaChain", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "systemContract", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetArtifactSelectors", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetArtifacts", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetContracts", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetInterfaces", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetSelectors", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetSenders", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "uniswapV2AddLiquidity", - values: [ - AddressLike, - AddressLike, - AddressLike, - AddressLike, - AddressLike, - BigNumberish, - BigNumberish - ] - ): string; - encodeFunctionData( - functionFragment: "uniswapV2Factory", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "uniswapV2Router", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "uniswapV3Factory", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "uniswapV3PositionManager", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "uniswapV3Router", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "wrapGatewayZEVM", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "wzeta", values?: undefined): string; - - decodeFunctionResult( - functionFragment: "FUNGIBLE_MODULE_ADDRESS", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "IS_TEST", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "deployer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "excludeArtifacts", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "excludeContracts", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "excludeSelectors", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "excludeSenders", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "failed", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "nodeLogicMock", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "prepareUniswapV2", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "setupZetaChain", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "systemContract", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetArtifactSelectors", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetArtifacts", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetContracts", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetInterfaces", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetSelectors", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetSenders", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "uniswapV2AddLiquidity", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "uniswapV2Factory", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "uniswapV2Router", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "uniswapV3Factory", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "uniswapV3PositionManager", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "uniswapV3Router", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "wrapGatewayZEVM", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "wzeta", data: BytesLike): Result; -} - -export namespace logEvent { - export type InputTuple = [arg0: string]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_addressEvent { - export type InputTuple = [arg0: AddressLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_array_uint256_array_Event { - export type InputTuple = [val: BigNumberish[]]; - export type OutputTuple = [val: bigint[]]; - export interface OutputObject { - val: bigint[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_array_int256_array_Event { - export type InputTuple = [val: BigNumberish[]]; - export type OutputTuple = [val: bigint[]]; - export interface OutputObject { - val: bigint[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_array_address_array_Event { - export type InputTuple = [val: AddressLike[]]; - export type OutputTuple = [val: string[]]; - export interface OutputObject { - val: string[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_bytesEvent { - export type InputTuple = [arg0: BytesLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_bytes32Event { - export type InputTuple = [arg0: BytesLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_intEvent { - export type InputTuple = [arg0: BigNumberish]; - export type OutputTuple = [arg0: bigint]; - export interface OutputObject { - arg0: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_addressEvent { - export type InputTuple = [key: string, val: AddressLike]; - export type OutputTuple = [key: string, val: string]; - export interface OutputObject { - key: string; - val: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_array_string_uint256_array_Event { - export type InputTuple = [key: string, val: BigNumberish[]]; - export type OutputTuple = [key: string, val: bigint[]]; - export interface OutputObject { - key: string; - val: bigint[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_array_string_int256_array_Event { - export type InputTuple = [key: string, val: BigNumberish[]]; - export type OutputTuple = [key: string, val: bigint[]]; - export interface OutputObject { - key: string; - val: bigint[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_array_string_address_array_Event { - export type InputTuple = [key: string, val: AddressLike[]]; - export type OutputTuple = [key: string, val: string[]]; - export interface OutputObject { - key: string; - val: string[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_bytesEvent { - export type InputTuple = [key: string, val: BytesLike]; - export type OutputTuple = [key: string, val: string]; - export interface OutputObject { - key: string; - val: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_bytes32Event { - export type InputTuple = [key: string, val: BytesLike]; - export type OutputTuple = [key: string, val: string]; - export interface OutputObject { - key: string; - val: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_decimal_intEvent { - export type InputTuple = [ - key: string, - val: BigNumberish, - decimals: BigNumberish - ]; - export type OutputTuple = [key: string, val: bigint, decimals: bigint]; - export interface OutputObject { - key: string; - val: bigint; - decimals: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_decimal_uintEvent { - export type InputTuple = [ - key: string, - val: BigNumberish, - decimals: BigNumberish - ]; - export type OutputTuple = [key: string, val: bigint, decimals: bigint]; - export interface OutputObject { - key: string; - val: bigint; - decimals: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_intEvent { - export type InputTuple = [key: string, val: BigNumberish]; - export type OutputTuple = [key: string, val: bigint]; - export interface OutputObject { - key: string; - val: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_stringEvent { - export type InputTuple = [key: string, val: string]; - export type OutputTuple = [key: string, val: string]; - export interface OutputObject { - key: string; - val: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_uintEvent { - export type InputTuple = [key: string, val: BigNumberish]; - export type OutputTuple = [key: string, val: bigint]; - export interface OutputObject { - key: string; - val: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_stringEvent { - export type InputTuple = [arg0: string]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_uintEvent { - export type InputTuple = [arg0: BigNumberish]; - export type OutputTuple = [arg0: bigint]; - export interface OutputObject { - arg0: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace logsEvent { - export type InputTuple = [arg0: BytesLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface ZetaSetup extends BaseContract { - connect(runner?: ContractRunner | null): ZetaSetup; - waitForDeployment(): Promise; - - interface: ZetaSetupInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - FUNGIBLE_MODULE_ADDRESS: TypedContractMethod<[], [string], "view">; - - IS_TEST: TypedContractMethod<[], [boolean], "view">; - - deployer: TypedContractMethod<[], [string], "view">; - - excludeArtifacts: TypedContractMethod<[], [string[]], "view">; - - excludeContracts: TypedContractMethod<[], [string[]], "view">; - - excludeSelectors: TypedContractMethod< - [], - [StdInvariant.FuzzSelectorStructOutput[]], - "view" - >; - - excludeSenders: TypedContractMethod<[], [string[]], "view">; - - failed: TypedContractMethod<[], [boolean], "view">; - - nodeLogicMock: TypedContractMethod<[], [string], "view">; - - prepareUniswapV2: TypedContractMethod< - [deployer: AddressLike, wzeta: AddressLike], - [[string, string] & { factory: string; router: string }], - "nonpayable" - >; - - setupZetaChain: TypedContractMethod<[], [void], "nonpayable">; - - systemContract: TypedContractMethod<[], [string], "view">; - - targetArtifactSelectors: TypedContractMethod< - [], - [StdInvariant.FuzzArtifactSelectorStructOutput[]], - "view" - >; - - targetArtifacts: TypedContractMethod<[], [string[]], "view">; - - targetContracts: TypedContractMethod<[], [string[]], "view">; - - targetInterfaces: TypedContractMethod< - [], - [StdInvariant.FuzzInterfaceStructOutput[]], - "view" - >; - - targetSelectors: TypedContractMethod< - [], - [StdInvariant.FuzzSelectorStructOutput[]], - "view" - >; - - targetSenders: TypedContractMethod<[], [string[]], "view">; - - uniswapV2AddLiquidity: TypedContractMethod< - [ - uniswapV2Router: AddressLike, - uniswapV2Factory: AddressLike, - zrc20: AddressLike, - wzeta: AddressLike, - deployer: AddressLike, - zrc20Amount: BigNumberish, - wzetaAmount: BigNumberish - ], - [void], - "nonpayable" - >; - - uniswapV2Factory: TypedContractMethod<[], [string], "view">; - - uniswapV2Router: TypedContractMethod<[], [string], "view">; - - uniswapV3Factory: TypedContractMethod<[], [string], "view">; - - uniswapV3PositionManager: TypedContractMethod<[], [string], "view">; - - uniswapV3Router: TypedContractMethod<[], [string], "view">; - - wrapGatewayZEVM: TypedContractMethod<[], [string], "view">; - - wzeta: TypedContractMethod<[], [string], "view">; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "FUNGIBLE_MODULE_ADDRESS" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "IS_TEST" - ): TypedContractMethod<[], [boolean], "view">; - getFunction( - nameOrSignature: "deployer" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "excludeArtifacts" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "excludeContracts" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "excludeSelectors" - ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; - getFunction( - nameOrSignature: "excludeSenders" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "failed" - ): TypedContractMethod<[], [boolean], "view">; - getFunction( - nameOrSignature: "nodeLogicMock" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "prepareUniswapV2" - ): TypedContractMethod< - [deployer: AddressLike, wzeta: AddressLike], - [[string, string] & { factory: string; router: string }], - "nonpayable" - >; - getFunction( - nameOrSignature: "setupZetaChain" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "systemContract" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "targetArtifactSelectors" - ): TypedContractMethod< - [], - [StdInvariant.FuzzArtifactSelectorStructOutput[]], - "view" - >; - getFunction( - nameOrSignature: "targetArtifacts" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "targetContracts" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "targetInterfaces" - ): TypedContractMethod< - [], - [StdInvariant.FuzzInterfaceStructOutput[]], - "view" - >; - getFunction( - nameOrSignature: "targetSelectors" - ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; - getFunction( - nameOrSignature: "targetSenders" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "uniswapV2AddLiquidity" - ): TypedContractMethod< - [ - uniswapV2Router: AddressLike, - uniswapV2Factory: AddressLike, - zrc20: AddressLike, - wzeta: AddressLike, - deployer: AddressLike, - zrc20Amount: BigNumberish, - wzetaAmount: BigNumberish - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "uniswapV2Factory" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "uniswapV2Router" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "uniswapV3Factory" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "uniswapV3PositionManager" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "uniswapV3Router" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "wrapGatewayZEVM" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "wzeta" - ): TypedContractMethod<[], [string], "view">; - - getEvent( - key: "log" - ): TypedContractEvent< - logEvent.InputTuple, - logEvent.OutputTuple, - logEvent.OutputObject - >; - getEvent( - key: "log_address" - ): TypedContractEvent< - log_addressEvent.InputTuple, - log_addressEvent.OutputTuple, - log_addressEvent.OutputObject - >; - getEvent( - key: "log_array(uint256[])" - ): TypedContractEvent< - log_array_uint256_array_Event.InputTuple, - log_array_uint256_array_Event.OutputTuple, - log_array_uint256_array_Event.OutputObject - >; - getEvent( - key: "log_array(int256[])" - ): TypedContractEvent< - log_array_int256_array_Event.InputTuple, - log_array_int256_array_Event.OutputTuple, - log_array_int256_array_Event.OutputObject - >; - getEvent( - key: "log_array(address[])" - ): TypedContractEvent< - log_array_address_array_Event.InputTuple, - log_array_address_array_Event.OutputTuple, - log_array_address_array_Event.OutputObject - >; - getEvent( - key: "log_bytes" - ): TypedContractEvent< - log_bytesEvent.InputTuple, - log_bytesEvent.OutputTuple, - log_bytesEvent.OutputObject - >; - getEvent( - key: "log_bytes32" - ): TypedContractEvent< - log_bytes32Event.InputTuple, - log_bytes32Event.OutputTuple, - log_bytes32Event.OutputObject - >; - getEvent( - key: "log_int" - ): TypedContractEvent< - log_intEvent.InputTuple, - log_intEvent.OutputTuple, - log_intEvent.OutputObject - >; - getEvent( - key: "log_named_address" - ): TypedContractEvent< - log_named_addressEvent.InputTuple, - log_named_addressEvent.OutputTuple, - log_named_addressEvent.OutputObject - >; - getEvent( - key: "log_named_array(string,uint256[])" - ): TypedContractEvent< - log_named_array_string_uint256_array_Event.InputTuple, - log_named_array_string_uint256_array_Event.OutputTuple, - log_named_array_string_uint256_array_Event.OutputObject - >; - getEvent( - key: "log_named_array(string,int256[])" - ): TypedContractEvent< - log_named_array_string_int256_array_Event.InputTuple, - log_named_array_string_int256_array_Event.OutputTuple, - log_named_array_string_int256_array_Event.OutputObject - >; - getEvent( - key: "log_named_array(string,address[])" - ): TypedContractEvent< - log_named_array_string_address_array_Event.InputTuple, - log_named_array_string_address_array_Event.OutputTuple, - log_named_array_string_address_array_Event.OutputObject - >; - getEvent( - key: "log_named_bytes" - ): TypedContractEvent< - log_named_bytesEvent.InputTuple, - log_named_bytesEvent.OutputTuple, - log_named_bytesEvent.OutputObject - >; - getEvent( - key: "log_named_bytes32" - ): TypedContractEvent< - log_named_bytes32Event.InputTuple, - log_named_bytes32Event.OutputTuple, - log_named_bytes32Event.OutputObject - >; - getEvent( - key: "log_named_decimal_int" - ): TypedContractEvent< - log_named_decimal_intEvent.InputTuple, - log_named_decimal_intEvent.OutputTuple, - log_named_decimal_intEvent.OutputObject - >; - getEvent( - key: "log_named_decimal_uint" - ): TypedContractEvent< - log_named_decimal_uintEvent.InputTuple, - log_named_decimal_uintEvent.OutputTuple, - log_named_decimal_uintEvent.OutputObject - >; - getEvent( - key: "log_named_int" - ): TypedContractEvent< - log_named_intEvent.InputTuple, - log_named_intEvent.OutputTuple, - log_named_intEvent.OutputObject - >; - getEvent( - key: "log_named_string" - ): TypedContractEvent< - log_named_stringEvent.InputTuple, - log_named_stringEvent.OutputTuple, - log_named_stringEvent.OutputObject - >; - getEvent( - key: "log_named_uint" - ): TypedContractEvent< - log_named_uintEvent.InputTuple, - log_named_uintEvent.OutputTuple, - log_named_uintEvent.OutputObject - >; - getEvent( - key: "log_string" - ): TypedContractEvent< - log_stringEvent.InputTuple, - log_stringEvent.OutputTuple, - log_stringEvent.OutputObject - >; - getEvent( - key: "log_uint" - ): TypedContractEvent< - log_uintEvent.InputTuple, - log_uintEvent.OutputTuple, - log_uintEvent.OutputObject - >; - getEvent( - key: "logs" - ): TypedContractEvent< - logsEvent.InputTuple, - logsEvent.OutputTuple, - logsEvent.OutputObject - >; - - filters: { - "log(string)": TypedContractEvent< - logEvent.InputTuple, - logEvent.OutputTuple, - logEvent.OutputObject - >; - log: TypedContractEvent< - logEvent.InputTuple, - logEvent.OutputTuple, - logEvent.OutputObject - >; - - "log_address(address)": TypedContractEvent< - log_addressEvent.InputTuple, - log_addressEvent.OutputTuple, - log_addressEvent.OutputObject - >; - log_address: TypedContractEvent< - log_addressEvent.InputTuple, - log_addressEvent.OutputTuple, - log_addressEvent.OutputObject - >; - - "log_array(uint256[])": TypedContractEvent< - log_array_uint256_array_Event.InputTuple, - log_array_uint256_array_Event.OutputTuple, - log_array_uint256_array_Event.OutputObject - >; - "log_array(int256[])": TypedContractEvent< - log_array_int256_array_Event.InputTuple, - log_array_int256_array_Event.OutputTuple, - log_array_int256_array_Event.OutputObject - >; - "log_array(address[])": TypedContractEvent< - log_array_address_array_Event.InputTuple, - log_array_address_array_Event.OutputTuple, - log_array_address_array_Event.OutputObject - >; - - "log_bytes(bytes)": TypedContractEvent< - log_bytesEvent.InputTuple, - log_bytesEvent.OutputTuple, - log_bytesEvent.OutputObject - >; - log_bytes: TypedContractEvent< - log_bytesEvent.InputTuple, - log_bytesEvent.OutputTuple, - log_bytesEvent.OutputObject - >; - - "log_bytes32(bytes32)": TypedContractEvent< - log_bytes32Event.InputTuple, - log_bytes32Event.OutputTuple, - log_bytes32Event.OutputObject - >; - log_bytes32: TypedContractEvent< - log_bytes32Event.InputTuple, - log_bytes32Event.OutputTuple, - log_bytes32Event.OutputObject - >; - - "log_int(int256)": TypedContractEvent< - log_intEvent.InputTuple, - log_intEvent.OutputTuple, - log_intEvent.OutputObject - >; - log_int: TypedContractEvent< - log_intEvent.InputTuple, - log_intEvent.OutputTuple, - log_intEvent.OutputObject - >; - - "log_named_address(string,address)": TypedContractEvent< - log_named_addressEvent.InputTuple, - log_named_addressEvent.OutputTuple, - log_named_addressEvent.OutputObject - >; - log_named_address: TypedContractEvent< - log_named_addressEvent.InputTuple, - log_named_addressEvent.OutputTuple, - log_named_addressEvent.OutputObject - >; - - "log_named_array(string,uint256[])": TypedContractEvent< - log_named_array_string_uint256_array_Event.InputTuple, - log_named_array_string_uint256_array_Event.OutputTuple, - log_named_array_string_uint256_array_Event.OutputObject - >; - "log_named_array(string,int256[])": TypedContractEvent< - log_named_array_string_int256_array_Event.InputTuple, - log_named_array_string_int256_array_Event.OutputTuple, - log_named_array_string_int256_array_Event.OutputObject - >; - "log_named_array(string,address[])": TypedContractEvent< - log_named_array_string_address_array_Event.InputTuple, - log_named_array_string_address_array_Event.OutputTuple, - log_named_array_string_address_array_Event.OutputObject - >; - - "log_named_bytes(string,bytes)": TypedContractEvent< - log_named_bytesEvent.InputTuple, - log_named_bytesEvent.OutputTuple, - log_named_bytesEvent.OutputObject - >; - log_named_bytes: TypedContractEvent< - log_named_bytesEvent.InputTuple, - log_named_bytesEvent.OutputTuple, - log_named_bytesEvent.OutputObject - >; - - "log_named_bytes32(string,bytes32)": TypedContractEvent< - log_named_bytes32Event.InputTuple, - log_named_bytes32Event.OutputTuple, - log_named_bytes32Event.OutputObject - >; - log_named_bytes32: TypedContractEvent< - log_named_bytes32Event.InputTuple, - log_named_bytes32Event.OutputTuple, - log_named_bytes32Event.OutputObject - >; - - "log_named_decimal_int(string,int256,uint256)": TypedContractEvent< - log_named_decimal_intEvent.InputTuple, - log_named_decimal_intEvent.OutputTuple, - log_named_decimal_intEvent.OutputObject - >; - log_named_decimal_int: TypedContractEvent< - log_named_decimal_intEvent.InputTuple, - log_named_decimal_intEvent.OutputTuple, - log_named_decimal_intEvent.OutputObject - >; - - "log_named_decimal_uint(string,uint256,uint256)": TypedContractEvent< - log_named_decimal_uintEvent.InputTuple, - log_named_decimal_uintEvent.OutputTuple, - log_named_decimal_uintEvent.OutputObject - >; - log_named_decimal_uint: TypedContractEvent< - log_named_decimal_uintEvent.InputTuple, - log_named_decimal_uintEvent.OutputTuple, - log_named_decimal_uintEvent.OutputObject - >; - - "log_named_int(string,int256)": TypedContractEvent< - log_named_intEvent.InputTuple, - log_named_intEvent.OutputTuple, - log_named_intEvent.OutputObject - >; - log_named_int: TypedContractEvent< - log_named_intEvent.InputTuple, - log_named_intEvent.OutputTuple, - log_named_intEvent.OutputObject - >; - - "log_named_string(string,string)": TypedContractEvent< - log_named_stringEvent.InputTuple, - log_named_stringEvent.OutputTuple, - log_named_stringEvent.OutputObject - >; - log_named_string: TypedContractEvent< - log_named_stringEvent.InputTuple, - log_named_stringEvent.OutputTuple, - log_named_stringEvent.OutputObject - >; - - "log_named_uint(string,uint256)": TypedContractEvent< - log_named_uintEvent.InputTuple, - log_named_uintEvent.OutputTuple, - log_named_uintEvent.OutputObject - >; - log_named_uint: TypedContractEvent< - log_named_uintEvent.InputTuple, - log_named_uintEvent.OutputTuple, - log_named_uintEvent.OutputObject - >; - - "log_string(string)": TypedContractEvent< - log_stringEvent.InputTuple, - log_stringEvent.OutputTuple, - log_stringEvent.OutputObject - >; - log_string: TypedContractEvent< - log_stringEvent.InputTuple, - log_stringEvent.OutputTuple, - log_stringEvent.OutputObject - >; - - "log_uint(uint256)": TypedContractEvent< - log_uintEvent.InputTuple, - log_uintEvent.OutputTuple, - log_uintEvent.OutputObject - >; - log_uint: TypedContractEvent< - log_uintEvent.InputTuple, - log_uintEvent.OutputTuple, - log_uintEvent.OutputObject - >; - - "logs(bytes)": TypedContractEvent< - logsEvent.InputTuple, - logsEvent.OutputTuple, - logsEvent.OutputObject - >; - logs: TypedContractEvent< - logsEvent.InputTuple, - logsEvent.OutputTuple, - logsEvent.OutputObject - >; - }; -} diff --git a/typechain-types/contracts/testing/ZetaSetup.t.sol/index.ts b/typechain-types/contracts/testing/ZetaSetup.t.sol/index.ts deleted file mode 100644 index f16006f6..00000000 --- a/typechain-types/contracts/testing/ZetaSetup.t.sol/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { ZetaSetup } from "./ZetaSetup"; diff --git a/typechain-types/contracts/testing/index.ts b/typechain-types/contracts/testing/index.ts deleted file mode 100644 index 880c4458..00000000 --- a/typechain-types/contracts/testing/index.ts +++ /dev/null @@ -1,19 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as evmSetupTSol from "./EVMSetup.t.sol"; -export type { evmSetupTSol }; -import type * as foundrySetupTSol from "./FoundrySetup.t.sol"; -export type { foundrySetupTSol }; -import type * as tokenSetupTSol from "./TokenSetup.t.sol"; -export type { tokenSetupTSol }; -import type * as uniswapV2SetupLibSol from "./UniswapV2SetupLib.sol"; -export type { uniswapV2SetupLibSol }; -import type * as uniswapV3SetupLibSol from "./UniswapV3SetupLib.sol"; -export type { uniswapV3SetupLibSol }; -import type * as zetaSetupTSol from "./ZetaSetup.t.sol"; -export type { zetaSetupTSol }; -import type * as mock from "./mock"; -export type { mock }; -import type * as mockGateway from "./mockGateway"; -export type { mockGateway }; diff --git a/typechain-types/contracts/testing/mock/ERC20Mock.ts b/typechain-types/contracts/testing/mock/ERC20Mock.ts deleted file mode 100644 index 36a4e0b3..00000000 --- a/typechain-types/contracts/testing/mock/ERC20Mock.ts +++ /dev/null @@ -1,324 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../common"; - -export interface ERC20MockInterface extends Interface { - getFunction( - nameOrSignature: - | "allowance" - | "approve" - | "balanceOf" - | "burn" - | "decimals" - | "mint" - | "name" - | "symbol" - | "totalSupply" - | "transfer" - | "transferFrom" - ): FunctionFragment; - - getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; - - encodeFunctionData( - functionFragment: "allowance", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "burn", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData(functionFragment: "decimals", values?: undefined): string; - encodeFunctionData( - functionFragment: "mint", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData(functionFragment: "symbol", values?: undefined): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; -} - -export namespace ApprovalEvent { - export type InputTuple = [ - owner: AddressLike, - spender: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [owner: string, spender: string, value: bigint]; - export interface OutputObject { - owner: string; - spender: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace TransferEvent { - export type InputTuple = [ - from: AddressLike, - to: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [from: string, to: string, value: bigint]; - export interface OutputObject { - from: string; - to: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface ERC20Mock extends BaseContract { - connect(runner?: ContractRunner | null): ERC20Mock; - waitForDeployment(): Promise; - - interface: ERC20MockInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - allowance: TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - - approve: TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; - - burn: TypedContractMethod< - [account: AddressLike, amount: BigNumberish], - [void], - "nonpayable" - >; - - decimals: TypedContractMethod<[], [bigint], "view">; - - mint: TypedContractMethod< - [account: AddressLike, amount: BigNumberish], - [void], - "nonpayable" - >; - - name: TypedContractMethod<[], [string], "view">; - - symbol: TypedContractMethod<[], [string], "view">; - - totalSupply: TypedContractMethod<[], [bigint], "view">; - - transfer: TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - transferFrom: TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "allowance" - ): TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "approve" - ): TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "balanceOf" - ): TypedContractMethod<[account: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "burn" - ): TypedContractMethod< - [account: AddressLike, amount: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "decimals" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "mint" - ): TypedContractMethod< - [account: AddressLike, amount: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "name" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "symbol" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "totalSupply" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "transfer" - ): TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "transferFrom" - ): TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getEvent( - key: "Approval" - ): TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - getEvent( - key: "Transfer" - ): TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - - filters: { - "Approval(address,address,uint256)": TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - Approval: TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - - "Transfer(address,address,uint256)": TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - Transfer: TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - }; -} diff --git a/typechain-types/contracts/testing/mock/ZRC20Mock.sol/IZRC20Mock.ts b/typechain-types/contracts/testing/mock/ZRC20Mock.sol/IZRC20Mock.ts deleted file mode 100644 index 52bcf38d..00000000 --- a/typechain-types/contracts/testing/mock/ZRC20Mock.sol/IZRC20Mock.ts +++ /dev/null @@ -1,352 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../../../common"; - -export interface IZRC20MockInterface extends Interface { - getFunction( - nameOrSignature: - | "GAS_LIMIT" - | "PROTOCOL_FLAT_FEE" - | "allowance" - | "approve" - | "balanceOf" - | "burn(uint256)" - | "burn(address,uint256)" - | "deposit" - | "mint" - | "setName" - | "setSymbol" - | "totalSupply" - | "transfer" - | "transferFrom" - | "withdraw" - | "withdrawGasFee" - | "withdrawGasFeeWithGasLimit" - ): FunctionFragment; - - encodeFunctionData(functionFragment: "GAS_LIMIT", values?: undefined): string; - encodeFunctionData( - functionFragment: "PROTOCOL_FLAT_FEE", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "allowance", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "burn(uint256)", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "burn(address,uint256)", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "deposit", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "mint", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData(functionFragment: "setName", values: [string]): string; - encodeFunctionData(functionFragment: "setSymbol", values: [string]): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "withdraw", - values: [BytesLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "withdrawGasFee", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "withdrawGasFeeWithGasLimit", - values: [BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "GAS_LIMIT", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "PROTOCOL_FLAT_FEE", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "burn(uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "burn(address,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "setName", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "setSymbol", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "withdrawGasFee", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "withdrawGasFeeWithGasLimit", - data: BytesLike - ): Result; -} - -export interface IZRC20Mock extends BaseContract { - connect(runner?: ContractRunner | null): IZRC20Mock; - waitForDeployment(): Promise; - - interface: IZRC20MockInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - GAS_LIMIT: TypedContractMethod<[], [bigint], "view">; - - PROTOCOL_FLAT_FEE: TypedContractMethod<[], [bigint], "view">; - - allowance: TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - - approve: TypedContractMethod< - [spender: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; - - "burn(uint256)": TypedContractMethod< - [amount: BigNumberish], - [boolean], - "nonpayable" - >; - - "burn(address,uint256)": TypedContractMethod< - [account: AddressLike, amount: BigNumberish], - [void], - "nonpayable" - >; - - deposit: TypedContractMethod< - [to: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - mint: TypedContractMethod< - [account: AddressLike, amount: BigNumberish], - [void], - "nonpayable" - >; - - setName: TypedContractMethod<[newName: string], [void], "nonpayable">; - - setSymbol: TypedContractMethod<[newSymbol: string], [void], "nonpayable">; - - totalSupply: TypedContractMethod<[], [bigint], "view">; - - transfer: TypedContractMethod< - [recipient: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - transferFrom: TypedContractMethod< - [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - withdraw: TypedContractMethod< - [to: BytesLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - withdrawGasFee: TypedContractMethod<[], [[string, bigint]], "view">; - - withdrawGasFeeWithGasLimit: TypedContractMethod< - [gasLimit: BigNumberish], - [[string, bigint]], - "view" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "GAS_LIMIT" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "PROTOCOL_FLAT_FEE" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "allowance" - ): TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "approve" - ): TypedContractMethod< - [spender: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "balanceOf" - ): TypedContractMethod<[account: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "burn(uint256)" - ): TypedContractMethod<[amount: BigNumberish], [boolean], "nonpayable">; - getFunction( - nameOrSignature: "burn(address,uint256)" - ): TypedContractMethod< - [account: AddressLike, amount: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "deposit" - ): TypedContractMethod< - [to: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "mint" - ): TypedContractMethod< - [account: AddressLike, amount: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "setName" - ): TypedContractMethod<[newName: string], [void], "nonpayable">; - getFunction( - nameOrSignature: "setSymbol" - ): TypedContractMethod<[newSymbol: string], [void], "nonpayable">; - getFunction( - nameOrSignature: "totalSupply" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "transfer" - ): TypedContractMethod< - [recipient: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "transferFrom" - ): TypedContractMethod< - [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdraw" - ): TypedContractMethod< - [to: BytesLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdrawGasFee" - ): TypedContractMethod<[], [[string, bigint]], "view">; - getFunction( - nameOrSignature: "withdrawGasFeeWithGasLimit" - ): TypedContractMethod<[gasLimit: BigNumberish], [[string, bigint]], "view">; - - filters: {}; -} diff --git a/typechain-types/contracts/testing/mock/ZRC20Mock.sol/ZRC20Mock.ts b/typechain-types/contracts/testing/mock/ZRC20Mock.sol/ZRC20Mock.ts deleted file mode 100644 index cbf8928e..00000000 --- a/typechain-types/contracts/testing/mock/ZRC20Mock.sol/ZRC20Mock.ts +++ /dev/null @@ -1,799 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../../common"; - -export interface ZRC20MockInterface extends Interface { - getFunction( - nameOrSignature: - | "CHAIN_ID" - | "COIN_TYPE" - | "FUNGIBLE_MODULE_ADDRESS" - | "GAS_LIMIT" - | "PROTOCOL_FLAT_FEE" - | "SYSTEM_CONTRACT_ADDRESS" - | "allowance" - | "approve" - | "balanceOf" - | "burn(uint256)" - | "burn(address,uint256)" - | "decimals" - | "deposit" - | "gatewayAddress" - | "mint" - | "name" - | "setName" - | "setSymbol" - | "symbol" - | "totalSupply" - | "transfer" - | "transferFrom" - | "updateGasLimit" - | "updateGatewayAddress" - | "updateProtocolFlatFee" - | "updateSystemContractAddress" - | "withdraw" - | "withdrawGasFee" - | "withdrawGasFeeWithGasLimit" - ): FunctionFragment; - - getEvent( - nameOrSignatureOrTopic: - | "Approval" - | "Deposit" - | "Transfer" - | "UpdatedGasLimit" - | "UpdatedGateway" - | "UpdatedProtocolFlatFee" - | "UpdatedSystemContract" - | "Withdrawal" - ): EventFragment; - - encodeFunctionData(functionFragment: "CHAIN_ID", values?: undefined): string; - encodeFunctionData(functionFragment: "COIN_TYPE", values?: undefined): string; - encodeFunctionData( - functionFragment: "FUNGIBLE_MODULE_ADDRESS", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "GAS_LIMIT", values?: undefined): string; - encodeFunctionData( - functionFragment: "PROTOCOL_FLAT_FEE", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "SYSTEM_CONTRACT_ADDRESS", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "allowance", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "burn(uint256)", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "burn(address,uint256)", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData(functionFragment: "decimals", values?: undefined): string; - encodeFunctionData( - functionFragment: "deposit", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "gatewayAddress", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "mint", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData(functionFragment: "setName", values: [string]): string; - encodeFunctionData(functionFragment: "setSymbol", values: [string]): string; - encodeFunctionData(functionFragment: "symbol", values?: undefined): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "updateGasLimit", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "updateGatewayAddress", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "updateProtocolFlatFee", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "updateSystemContractAddress", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "withdraw", - values: [BytesLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "withdrawGasFee", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "withdrawGasFeeWithGasLimit", - values: [BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "CHAIN_ID", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "COIN_TYPE", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "FUNGIBLE_MODULE_ADDRESS", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "GAS_LIMIT", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "PROTOCOL_FLAT_FEE", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "SYSTEM_CONTRACT_ADDRESS", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "burn(uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "burn(address,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "gatewayAddress", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "setName", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "setSymbol", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "updateGasLimit", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "updateGatewayAddress", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "updateProtocolFlatFee", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "updateSystemContractAddress", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "withdrawGasFee", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "withdrawGasFeeWithGasLimit", - data: BytesLike - ): Result; -} - -export namespace ApprovalEvent { - export type InputTuple = [ - owner: AddressLike, - spender: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [owner: string, spender: string, value: bigint]; - export interface OutputObject { - owner: string; - spender: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace DepositEvent { - export type InputTuple = [ - from: BytesLike, - to: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [from: string, to: string, value: bigint]; - export interface OutputObject { - from: string; - to: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace TransferEvent { - export type InputTuple = [ - from: AddressLike, - to: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [from: string, to: string, value: bigint]; - export interface OutputObject { - from: string; - to: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UpdatedGasLimitEvent { - export type InputTuple = [gasLimit: BigNumberish]; - export type OutputTuple = [gasLimit: bigint]; - export interface OutputObject { - gasLimit: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UpdatedGatewayEvent { - export type InputTuple = [gateway: AddressLike]; - export type OutputTuple = [gateway: string]; - export interface OutputObject { - gateway: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UpdatedProtocolFlatFeeEvent { - export type InputTuple = [protocolFlatFee: BigNumberish]; - export type OutputTuple = [protocolFlatFee: bigint]; - export interface OutputObject { - protocolFlatFee: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace UpdatedSystemContractEvent { - export type InputTuple = [systemContract: AddressLike]; - export type OutputTuple = [systemContract: string]; - export interface OutputObject { - systemContract: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WithdrawalEvent { - export type InputTuple = [ - from: AddressLike, - to: BytesLike, - value: BigNumberish, - gasFee: BigNumberish, - protocolFlatFee: BigNumberish - ]; - export type OutputTuple = [ - from: string, - to: string, - value: bigint, - gasFee: bigint, - protocolFlatFee: bigint - ]; - export interface OutputObject { - from: string; - to: string; - value: bigint; - gasFee: bigint; - protocolFlatFee: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface ZRC20Mock extends BaseContract { - connect(runner?: ContractRunner | null): ZRC20Mock; - waitForDeployment(): Promise; - - interface: ZRC20MockInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - CHAIN_ID: TypedContractMethod<[], [bigint], "view">; - - COIN_TYPE: TypedContractMethod<[], [bigint], "view">; - - FUNGIBLE_MODULE_ADDRESS: TypedContractMethod<[], [string], "view">; - - GAS_LIMIT: TypedContractMethod<[], [bigint], "view">; - - PROTOCOL_FLAT_FEE: TypedContractMethod<[], [bigint], "view">; - - SYSTEM_CONTRACT_ADDRESS: TypedContractMethod<[], [string], "view">; - - allowance: TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - - approve: TypedContractMethod< - [spender: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; - - "burn(uint256)": TypedContractMethod< - [amount: BigNumberish], - [boolean], - "nonpayable" - >; - - "burn(address,uint256)": TypedContractMethod< - [account: AddressLike, amount: BigNumberish], - [void], - "nonpayable" - >; - - decimals: TypedContractMethod<[], [bigint], "view">; - - deposit: TypedContractMethod< - [to: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - gatewayAddress: TypedContractMethod<[], [string], "view">; - - mint: TypedContractMethod< - [account: AddressLike, amount: BigNumberish], - [void], - "nonpayable" - >; - - name: TypedContractMethod<[], [string], "view">; - - setName: TypedContractMethod<[newName: string], [void], "nonpayable">; - - setSymbol: TypedContractMethod<[newSymbol: string], [void], "nonpayable">; - - symbol: TypedContractMethod<[], [string], "view">; - - totalSupply: TypedContractMethod<[], [bigint], "view">; - - transfer: TypedContractMethod< - [recipient: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - transferFrom: TypedContractMethod< - [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - updateGasLimit: TypedContractMethod< - [gasLimit_: BigNumberish], - [void], - "nonpayable" - >; - - updateGatewayAddress: TypedContractMethod< - [addr: AddressLike], - [void], - "nonpayable" - >; - - updateProtocolFlatFee: TypedContractMethod< - [protocolFlatFee_: BigNumberish], - [void], - "nonpayable" - >; - - updateSystemContractAddress: TypedContractMethod< - [addr: AddressLike], - [void], - "nonpayable" - >; - - withdraw: TypedContractMethod< - [to: BytesLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - - withdrawGasFee: TypedContractMethod<[], [[string, bigint]], "view">; - - withdrawGasFeeWithGasLimit: TypedContractMethod< - [gasLimit: BigNumberish], - [[string, bigint]], - "view" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "CHAIN_ID" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "COIN_TYPE" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "FUNGIBLE_MODULE_ADDRESS" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "GAS_LIMIT" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "PROTOCOL_FLAT_FEE" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "SYSTEM_CONTRACT_ADDRESS" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "allowance" - ): TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "approve" - ): TypedContractMethod< - [spender: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "balanceOf" - ): TypedContractMethod<[account: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "burn(uint256)" - ): TypedContractMethod<[amount: BigNumberish], [boolean], "nonpayable">; - getFunction( - nameOrSignature: "burn(address,uint256)" - ): TypedContractMethod< - [account: AddressLike, amount: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "decimals" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "deposit" - ): TypedContractMethod< - [to: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "gatewayAddress" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "mint" - ): TypedContractMethod< - [account: AddressLike, amount: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "name" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "setName" - ): TypedContractMethod<[newName: string], [void], "nonpayable">; - getFunction( - nameOrSignature: "setSymbol" - ): TypedContractMethod<[newSymbol: string], [void], "nonpayable">; - getFunction( - nameOrSignature: "symbol" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "totalSupply" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "transfer" - ): TypedContractMethod< - [recipient: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "transferFrom" - ): TypedContractMethod< - [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "updateGasLimit" - ): TypedContractMethod<[gasLimit_: BigNumberish], [void], "nonpayable">; - getFunction( - nameOrSignature: "updateGatewayAddress" - ): TypedContractMethod<[addr: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "updateProtocolFlatFee" - ): TypedContractMethod< - [protocolFlatFee_: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "updateSystemContractAddress" - ): TypedContractMethod<[addr: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "withdraw" - ): TypedContractMethod< - [to: BytesLike, amount: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdrawGasFee" - ): TypedContractMethod<[], [[string, bigint]], "view">; - getFunction( - nameOrSignature: "withdrawGasFeeWithGasLimit" - ): TypedContractMethod<[gasLimit: BigNumberish], [[string, bigint]], "view">; - - getEvent( - key: "Approval" - ): TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - getEvent( - key: "Deposit" - ): TypedContractEvent< - DepositEvent.InputTuple, - DepositEvent.OutputTuple, - DepositEvent.OutputObject - >; - getEvent( - key: "Transfer" - ): TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - getEvent( - key: "UpdatedGasLimit" - ): TypedContractEvent< - UpdatedGasLimitEvent.InputTuple, - UpdatedGasLimitEvent.OutputTuple, - UpdatedGasLimitEvent.OutputObject - >; - getEvent( - key: "UpdatedGateway" - ): TypedContractEvent< - UpdatedGatewayEvent.InputTuple, - UpdatedGatewayEvent.OutputTuple, - UpdatedGatewayEvent.OutputObject - >; - getEvent( - key: "UpdatedProtocolFlatFee" - ): TypedContractEvent< - UpdatedProtocolFlatFeeEvent.InputTuple, - UpdatedProtocolFlatFeeEvent.OutputTuple, - UpdatedProtocolFlatFeeEvent.OutputObject - >; - getEvent( - key: "UpdatedSystemContract" - ): TypedContractEvent< - UpdatedSystemContractEvent.InputTuple, - UpdatedSystemContractEvent.OutputTuple, - UpdatedSystemContractEvent.OutputObject - >; - getEvent( - key: "Withdrawal" - ): TypedContractEvent< - WithdrawalEvent.InputTuple, - WithdrawalEvent.OutputTuple, - WithdrawalEvent.OutputObject - >; - - filters: { - "Approval(address,address,uint256)": TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - Approval: TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - - "Deposit(bytes,address,uint256)": TypedContractEvent< - DepositEvent.InputTuple, - DepositEvent.OutputTuple, - DepositEvent.OutputObject - >; - Deposit: TypedContractEvent< - DepositEvent.InputTuple, - DepositEvent.OutputTuple, - DepositEvent.OutputObject - >; - - "Transfer(address,address,uint256)": TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - Transfer: TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - - "UpdatedGasLimit(uint256)": TypedContractEvent< - UpdatedGasLimitEvent.InputTuple, - UpdatedGasLimitEvent.OutputTuple, - UpdatedGasLimitEvent.OutputObject - >; - UpdatedGasLimit: TypedContractEvent< - UpdatedGasLimitEvent.InputTuple, - UpdatedGasLimitEvent.OutputTuple, - UpdatedGasLimitEvent.OutputObject - >; - - "UpdatedGateway(address)": TypedContractEvent< - UpdatedGatewayEvent.InputTuple, - UpdatedGatewayEvent.OutputTuple, - UpdatedGatewayEvent.OutputObject - >; - UpdatedGateway: TypedContractEvent< - UpdatedGatewayEvent.InputTuple, - UpdatedGatewayEvent.OutputTuple, - UpdatedGatewayEvent.OutputObject - >; - - "UpdatedProtocolFlatFee(uint256)": TypedContractEvent< - UpdatedProtocolFlatFeeEvent.InputTuple, - UpdatedProtocolFlatFeeEvent.OutputTuple, - UpdatedProtocolFlatFeeEvent.OutputObject - >; - UpdatedProtocolFlatFee: TypedContractEvent< - UpdatedProtocolFlatFeeEvent.InputTuple, - UpdatedProtocolFlatFeeEvent.OutputTuple, - UpdatedProtocolFlatFeeEvent.OutputObject - >; - - "UpdatedSystemContract(address)": TypedContractEvent< - UpdatedSystemContractEvent.InputTuple, - UpdatedSystemContractEvent.OutputTuple, - UpdatedSystemContractEvent.OutputObject - >; - UpdatedSystemContract: TypedContractEvent< - UpdatedSystemContractEvent.InputTuple, - UpdatedSystemContractEvent.OutputTuple, - UpdatedSystemContractEvent.OutputObject - >; - - "Withdrawal(address,bytes,uint256,uint256,uint256)": TypedContractEvent< - WithdrawalEvent.InputTuple, - WithdrawalEvent.OutputTuple, - WithdrawalEvent.OutputObject - >; - Withdrawal: TypedContractEvent< - WithdrawalEvent.InputTuple, - WithdrawalEvent.OutputTuple, - WithdrawalEvent.OutputObject - >; - }; -} diff --git a/typechain-types/contracts/testing/mock/ZRC20Mock.sol/index.ts b/typechain-types/contracts/testing/mock/ZRC20Mock.sol/index.ts deleted file mode 100644 index 1e6c9816..00000000 --- a/typechain-types/contracts/testing/mock/ZRC20Mock.sol/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { IZRC20Mock } from "./IZRC20Mock"; -export type { ZRC20Mock } from "./ZRC20Mock"; diff --git a/typechain-types/contracts/testing/mock/index.ts b/typechain-types/contracts/testing/mock/index.ts deleted file mode 100644 index 9c699a3b..00000000 --- a/typechain-types/contracts/testing/mock/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as zrc20MockSol from "./ZRC20Mock.sol"; -export type { zrc20MockSol }; -export type { ERC20Mock } from "./ERC20Mock"; diff --git a/typechain-types/contracts/testing/mockGateway/NodeLogicMock.ts b/typechain-types/contracts/testing/mockGateway/NodeLogicMock.ts deleted file mode 100644 index e9e5a5a7..00000000 --- a/typechain-types/contracts/testing/mockGateway/NodeLogicMock.ts +++ /dev/null @@ -1,1542 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../common"; - -export type RevertOptionsStruct = { - revertAddress: AddressLike; - callOnRevert: boolean; - abortAddress: AddressLike; - revertMessage: BytesLike; - onRevertGasLimit: BigNumberish; -}; - -export type RevertOptionsStructOutput = [ - revertAddress: string, - callOnRevert: boolean, - abortAddress: string, - revertMessage: string, - onRevertGasLimit: bigint -] & { - revertAddress: string; - callOnRevert: boolean; - abortAddress: string; - revertMessage: string; - onRevertGasLimit: bigint; -}; - -export type CallOptionsStruct = { - gasLimit: BigNumberish; - isArbitraryCall: boolean; -}; - -export type CallOptionsStructOutput = [ - gasLimit: bigint, - isArbitraryCall: boolean -] & { gasLimit: bigint; isArbitraryCall: boolean }; - -export declare namespace StdInvariant { - export type FuzzSelectorStruct = { - addr: AddressLike; - selectors: BytesLike[]; - }; - - export type FuzzSelectorStructOutput = [addr: string, selectors: string[]] & { - addr: string; - selectors: string[]; - }; - - export type FuzzArtifactSelectorStruct = { - artifact: string; - selectors: BytesLike[]; - }; - - export type FuzzArtifactSelectorStructOutput = [ - artifact: string, - selectors: string[] - ] & { artifact: string; selectors: string[] }; - - export type FuzzInterfaceStruct = { addr: AddressLike; artifacts: string[] }; - - export type FuzzInterfaceStructOutput = [ - addr: string, - artifacts: string[] - ] & { addr: string; artifacts: string[] }; -} - -export interface NodeLogicMockInterface extends Interface { - getFunction( - nameOrSignature: - | "IS_TEST" - | "chainIdZeta" - | "erc20ToZRC20s" - | "excludeArtifacts" - | "excludeContracts" - | "excludeSelectors" - | "excludeSenders" - | "failed" - | "gasZRC20s" - | "gatewayEVMs" - | "gatewayZEVM" - | "getRuntimeCode" - | "handleEVMCall" - | "handleEVMDeposit" - | "handleEVMDepositAndCall" - | "handleZEVMCall" - | "handleZEVMWithdraw" - | "handleZEVMWithdrawAndCall" - | "setAssetToZRC20" - | "setChainIdZeta" - | "setGasZRC20" - | "setGatewayEVM" - | "setGatewayZEVM" - | "setUniswapRouter" - | "setWZETA" - | "setZRC20ToAsset" - | "targetArtifactSelectors" - | "targetArtifacts" - | "targetContracts" - | "targetInterfaces" - | "targetSelectors" - | "targetSenders" - | "uniswapRouter" - | "wzeta" - | "zrc20ToErc20s" - ): FunctionFragment; - - getEvent( - nameOrSignatureOrTopic: - | "log" - | "log_address" - | "log_array(uint256[])" - | "log_array(int256[])" - | "log_array(address[])" - | "log_bytes" - | "log_bytes32" - | "log_int" - | "log_named_address" - | "log_named_array(string,uint256[])" - | "log_named_array(string,int256[])" - | "log_named_array(string,address[])" - | "log_named_bytes" - | "log_named_bytes32" - | "log_named_decimal_int" - | "log_named_decimal_uint" - | "log_named_int" - | "log_named_string" - | "log_named_uint" - | "log_string" - | "log_uint" - | "logs" - ): EventFragment; - - encodeFunctionData(functionFragment: "IS_TEST", values?: undefined): string; - encodeFunctionData( - functionFragment: "chainIdZeta", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "erc20ToZRC20s", - values: [BigNumberish, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "excludeArtifacts", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "excludeContracts", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "excludeSelectors", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "excludeSenders", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "failed", values?: undefined): string; - encodeFunctionData( - functionFragment: "gasZRC20s", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "gatewayEVMs", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "gatewayZEVM", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getRuntimeCode", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "handleEVMCall", - values: [ - BigNumberish, - AddressLike, - AddressLike, - BytesLike, - RevertOptionsStruct - ] - ): string; - encodeFunctionData( - functionFragment: "handleEVMDeposit", - values: [ - BigNumberish, - AddressLike, - AddressLike, - BigNumberish, - AddressLike, - RevertOptionsStruct - ] - ): string; - encodeFunctionData( - functionFragment: "handleEVMDepositAndCall", - values: [ - BigNumberish, - AddressLike, - AddressLike, - BigNumberish, - AddressLike, - BytesLike, - RevertOptionsStruct - ] - ): string; - encodeFunctionData( - functionFragment: "handleZEVMCall", - values: [ - AddressLike, - BytesLike, - AddressLike, - BytesLike, - CallOptionsStruct, - RevertOptionsStruct - ] - ): string; - encodeFunctionData( - functionFragment: "handleZEVMWithdraw", - values: [ - AddressLike, - BytesLike, - BigNumberish, - AddressLike, - RevertOptionsStruct - ] - ): string; - encodeFunctionData( - functionFragment: "handleZEVMWithdrawAndCall", - values: [ - AddressLike, - BytesLike, - BigNumberish, - AddressLike, - BytesLike, - CallOptionsStruct, - RevertOptionsStruct - ] - ): string; - encodeFunctionData( - functionFragment: "setAssetToZRC20", - values: [BigNumberish, AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "setChainIdZeta", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "setGasZRC20", - values: [BigNumberish, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "setGatewayEVM", - values: [BigNumberish, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "setGatewayZEVM", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "setUniswapRouter", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "setWZETA", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "setZRC20ToAsset", - values: [BigNumberish, AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "targetArtifactSelectors", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetArtifacts", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetContracts", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetInterfaces", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetSelectors", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetSenders", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "uniswapRouter", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "wzeta", values?: undefined): string; - encodeFunctionData( - functionFragment: "zrc20ToErc20s", - values: [BigNumberish, AddressLike] - ): string; - - decodeFunctionResult(functionFragment: "IS_TEST", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "chainIdZeta", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "erc20ToZRC20s", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "excludeArtifacts", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "excludeContracts", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "excludeSelectors", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "excludeSenders", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "failed", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "gasZRC20s", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "gatewayEVMs", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "gatewayZEVM", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getRuntimeCode", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "handleEVMCall", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "handleEVMDeposit", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "handleEVMDepositAndCall", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "handleZEVMCall", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "handleZEVMWithdraw", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "handleZEVMWithdrawAndCall", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "setAssetToZRC20", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "setChainIdZeta", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "setGasZRC20", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "setGatewayEVM", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "setGatewayZEVM", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "setUniswapRouter", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "setWZETA", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "setZRC20ToAsset", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetArtifactSelectors", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetArtifacts", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetContracts", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetInterfaces", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetSelectors", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetSenders", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "uniswapRouter", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "wzeta", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "zrc20ToErc20s", - data: BytesLike - ): Result; -} - -export namespace logEvent { - export type InputTuple = [arg0: string]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_addressEvent { - export type InputTuple = [arg0: AddressLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_array_uint256_array_Event { - export type InputTuple = [val: BigNumberish[]]; - export type OutputTuple = [val: bigint[]]; - export interface OutputObject { - val: bigint[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_array_int256_array_Event { - export type InputTuple = [val: BigNumberish[]]; - export type OutputTuple = [val: bigint[]]; - export interface OutputObject { - val: bigint[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_array_address_array_Event { - export type InputTuple = [val: AddressLike[]]; - export type OutputTuple = [val: string[]]; - export interface OutputObject { - val: string[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_bytesEvent { - export type InputTuple = [arg0: BytesLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_bytes32Event { - export type InputTuple = [arg0: BytesLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_intEvent { - export type InputTuple = [arg0: BigNumberish]; - export type OutputTuple = [arg0: bigint]; - export interface OutputObject { - arg0: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_addressEvent { - export type InputTuple = [key: string, val: AddressLike]; - export type OutputTuple = [key: string, val: string]; - export interface OutputObject { - key: string; - val: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_array_string_uint256_array_Event { - export type InputTuple = [key: string, val: BigNumberish[]]; - export type OutputTuple = [key: string, val: bigint[]]; - export interface OutputObject { - key: string; - val: bigint[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_array_string_int256_array_Event { - export type InputTuple = [key: string, val: BigNumberish[]]; - export type OutputTuple = [key: string, val: bigint[]]; - export interface OutputObject { - key: string; - val: bigint[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_array_string_address_array_Event { - export type InputTuple = [key: string, val: AddressLike[]]; - export type OutputTuple = [key: string, val: string[]]; - export interface OutputObject { - key: string; - val: string[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_bytesEvent { - export type InputTuple = [key: string, val: BytesLike]; - export type OutputTuple = [key: string, val: string]; - export interface OutputObject { - key: string; - val: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_bytes32Event { - export type InputTuple = [key: string, val: BytesLike]; - export type OutputTuple = [key: string, val: string]; - export interface OutputObject { - key: string; - val: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_decimal_intEvent { - export type InputTuple = [ - key: string, - val: BigNumberish, - decimals: BigNumberish - ]; - export type OutputTuple = [key: string, val: bigint, decimals: bigint]; - export interface OutputObject { - key: string; - val: bigint; - decimals: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_decimal_uintEvent { - export type InputTuple = [ - key: string, - val: BigNumberish, - decimals: BigNumberish - ]; - export type OutputTuple = [key: string, val: bigint, decimals: bigint]; - export interface OutputObject { - key: string; - val: bigint; - decimals: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_intEvent { - export type InputTuple = [key: string, val: BigNumberish]; - export type OutputTuple = [key: string, val: bigint]; - export interface OutputObject { - key: string; - val: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_stringEvent { - export type InputTuple = [key: string, val: string]; - export type OutputTuple = [key: string, val: string]; - export interface OutputObject { - key: string; - val: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_uintEvent { - export type InputTuple = [key: string, val: BigNumberish]; - export type OutputTuple = [key: string, val: bigint]; - export interface OutputObject { - key: string; - val: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_stringEvent { - export type InputTuple = [arg0: string]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_uintEvent { - export type InputTuple = [arg0: BigNumberish]; - export type OutputTuple = [arg0: bigint]; - export interface OutputObject { - arg0: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace logsEvent { - export type InputTuple = [arg0: BytesLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface NodeLogicMock extends BaseContract { - connect(runner?: ContractRunner | null): NodeLogicMock; - waitForDeployment(): Promise; - - interface: NodeLogicMockInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - IS_TEST: TypedContractMethod<[], [boolean], "view">; - - chainIdZeta: TypedContractMethod<[], [bigint], "view">; - - erc20ToZRC20s: TypedContractMethod< - [arg0: BigNumberish, arg1: AddressLike], - [string], - "view" - >; - - excludeArtifacts: TypedContractMethod<[], [string[]], "view">; - - excludeContracts: TypedContractMethod<[], [string[]], "view">; - - excludeSelectors: TypedContractMethod< - [], - [StdInvariant.FuzzSelectorStructOutput[]], - "view" - >; - - excludeSenders: TypedContractMethod<[], [string[]], "view">; - - failed: TypedContractMethod<[], [boolean], "view">; - - gasZRC20s: TypedContractMethod<[arg0: BigNumberish], [string], "view">; - - gatewayEVMs: TypedContractMethod<[arg0: BigNumberish], [string], "view">; - - gatewayZEVM: TypedContractMethod<[], [string], "view">; - - getRuntimeCode: TypedContractMethod<[addr: AddressLike], [string], "view">; - - handleEVMCall: TypedContractMethod< - [ - chainId: BigNumberish, - sender: AddressLike, - receiver: AddressLike, - payload: BytesLike, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - - handleEVMDeposit: TypedContractMethod< - [ - chainId: BigNumberish, - sender: AddressLike, - receiver: AddressLike, - amount: BigNumberish, - asset: AddressLike, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - - handleEVMDepositAndCall: TypedContractMethod< - [ - chainId: BigNumberish, - sender: AddressLike, - receiver: AddressLike, - amount: BigNumberish, - asset: AddressLike, - payload: BytesLike, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - - handleZEVMCall: TypedContractMethod< - [ - sender: AddressLike, - receiver: BytesLike, - zrc20: AddressLike, - message: BytesLike, - callOptions: CallOptionsStruct, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - - handleZEVMWithdraw: TypedContractMethod< - [ - sender: AddressLike, - receiver: BytesLike, - amount: BigNumberish, - zrc20: AddressLike, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - - handleZEVMWithdrawAndCall: TypedContractMethod< - [ - sender: AddressLike, - receiver: BytesLike, - amount: BigNumberish, - zrc20: AddressLike, - message: BytesLike, - callOptions: CallOptionsStruct, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - - setAssetToZRC20: TypedContractMethod< - [chainId: BigNumberish, asset: AddressLike, zrc20: AddressLike], - [void], - "nonpayable" - >; - - setChainIdZeta: TypedContractMethod< - [_chainIdZeta: BigNumberish], - [void], - "nonpayable" - >; - - setGasZRC20: TypedContractMethod< - [chainId: BigNumberish, gasZRC20: AddressLike], - [void], - "nonpayable" - >; - - setGatewayEVM: TypedContractMethod< - [chainId: BigNumberish, gatewayEVM: AddressLike], - [void], - "nonpayable" - >; - - setGatewayZEVM: TypedContractMethod< - [_gatewayZEVM: AddressLike], - [void], - "nonpayable" - >; - - setUniswapRouter: TypedContractMethod< - [_uniswapRouter: AddressLike], - [void], - "nonpayable" - >; - - setWZETA: TypedContractMethod<[_wzeta: AddressLike], [void], "nonpayable">; - - setZRC20ToAsset: TypedContractMethod< - [chainId: BigNumberish, zrc20: AddressLike, asset: AddressLike], - [void], - "nonpayable" - >; - - targetArtifactSelectors: TypedContractMethod< - [], - [StdInvariant.FuzzArtifactSelectorStructOutput[]], - "view" - >; - - targetArtifacts: TypedContractMethod<[], [string[]], "view">; - - targetContracts: TypedContractMethod<[], [string[]], "view">; - - targetInterfaces: TypedContractMethod< - [], - [StdInvariant.FuzzInterfaceStructOutput[]], - "view" - >; - - targetSelectors: TypedContractMethod< - [], - [StdInvariant.FuzzSelectorStructOutput[]], - "view" - >; - - targetSenders: TypedContractMethod<[], [string[]], "view">; - - uniswapRouter: TypedContractMethod<[], [string], "view">; - - wzeta: TypedContractMethod<[], [string], "view">; - - zrc20ToErc20s: TypedContractMethod< - [arg0: BigNumberish, arg1: AddressLike], - [string], - "view" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "IS_TEST" - ): TypedContractMethod<[], [boolean], "view">; - getFunction( - nameOrSignature: "chainIdZeta" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "erc20ToZRC20s" - ): TypedContractMethod< - [arg0: BigNumberish, arg1: AddressLike], - [string], - "view" - >; - getFunction( - nameOrSignature: "excludeArtifacts" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "excludeContracts" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "excludeSelectors" - ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; - getFunction( - nameOrSignature: "excludeSenders" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "failed" - ): TypedContractMethod<[], [boolean], "view">; - getFunction( - nameOrSignature: "gasZRC20s" - ): TypedContractMethod<[arg0: BigNumberish], [string], "view">; - getFunction( - nameOrSignature: "gatewayEVMs" - ): TypedContractMethod<[arg0: BigNumberish], [string], "view">; - getFunction( - nameOrSignature: "gatewayZEVM" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "getRuntimeCode" - ): TypedContractMethod<[addr: AddressLike], [string], "view">; - getFunction( - nameOrSignature: "handleEVMCall" - ): TypedContractMethod< - [ - chainId: BigNumberish, - sender: AddressLike, - receiver: AddressLike, - payload: BytesLike, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "handleEVMDeposit" - ): TypedContractMethod< - [ - chainId: BigNumberish, - sender: AddressLike, - receiver: AddressLike, - amount: BigNumberish, - asset: AddressLike, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "handleEVMDepositAndCall" - ): TypedContractMethod< - [ - chainId: BigNumberish, - sender: AddressLike, - receiver: AddressLike, - amount: BigNumberish, - asset: AddressLike, - payload: BytesLike, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "handleZEVMCall" - ): TypedContractMethod< - [ - sender: AddressLike, - receiver: BytesLike, - zrc20: AddressLike, - message: BytesLike, - callOptions: CallOptionsStruct, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "handleZEVMWithdraw" - ): TypedContractMethod< - [ - sender: AddressLike, - receiver: BytesLike, - amount: BigNumberish, - zrc20: AddressLike, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "handleZEVMWithdrawAndCall" - ): TypedContractMethod< - [ - sender: AddressLike, - receiver: BytesLike, - amount: BigNumberish, - zrc20: AddressLike, - message: BytesLike, - callOptions: CallOptionsStruct, - revertOptions: RevertOptionsStruct - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "setAssetToZRC20" - ): TypedContractMethod< - [chainId: BigNumberish, asset: AddressLike, zrc20: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "setChainIdZeta" - ): TypedContractMethod<[_chainIdZeta: BigNumberish], [void], "nonpayable">; - getFunction( - nameOrSignature: "setGasZRC20" - ): TypedContractMethod< - [chainId: BigNumberish, gasZRC20: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "setGatewayEVM" - ): TypedContractMethod< - [chainId: BigNumberish, gatewayEVM: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "setGatewayZEVM" - ): TypedContractMethod<[_gatewayZEVM: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "setUniswapRouter" - ): TypedContractMethod<[_uniswapRouter: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "setWZETA" - ): TypedContractMethod<[_wzeta: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "setZRC20ToAsset" - ): TypedContractMethod< - [chainId: BigNumberish, zrc20: AddressLike, asset: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "targetArtifactSelectors" - ): TypedContractMethod< - [], - [StdInvariant.FuzzArtifactSelectorStructOutput[]], - "view" - >; - getFunction( - nameOrSignature: "targetArtifacts" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "targetContracts" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "targetInterfaces" - ): TypedContractMethod< - [], - [StdInvariant.FuzzInterfaceStructOutput[]], - "view" - >; - getFunction( - nameOrSignature: "targetSelectors" - ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; - getFunction( - nameOrSignature: "targetSenders" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "uniswapRouter" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "wzeta" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "zrc20ToErc20s" - ): TypedContractMethod< - [arg0: BigNumberish, arg1: AddressLike], - [string], - "view" - >; - - getEvent( - key: "log" - ): TypedContractEvent< - logEvent.InputTuple, - logEvent.OutputTuple, - logEvent.OutputObject - >; - getEvent( - key: "log_address" - ): TypedContractEvent< - log_addressEvent.InputTuple, - log_addressEvent.OutputTuple, - log_addressEvent.OutputObject - >; - getEvent( - key: "log_array(uint256[])" - ): TypedContractEvent< - log_array_uint256_array_Event.InputTuple, - log_array_uint256_array_Event.OutputTuple, - log_array_uint256_array_Event.OutputObject - >; - getEvent( - key: "log_array(int256[])" - ): TypedContractEvent< - log_array_int256_array_Event.InputTuple, - log_array_int256_array_Event.OutputTuple, - log_array_int256_array_Event.OutputObject - >; - getEvent( - key: "log_array(address[])" - ): TypedContractEvent< - log_array_address_array_Event.InputTuple, - log_array_address_array_Event.OutputTuple, - log_array_address_array_Event.OutputObject - >; - getEvent( - key: "log_bytes" - ): TypedContractEvent< - log_bytesEvent.InputTuple, - log_bytesEvent.OutputTuple, - log_bytesEvent.OutputObject - >; - getEvent( - key: "log_bytes32" - ): TypedContractEvent< - log_bytes32Event.InputTuple, - log_bytes32Event.OutputTuple, - log_bytes32Event.OutputObject - >; - getEvent( - key: "log_int" - ): TypedContractEvent< - log_intEvent.InputTuple, - log_intEvent.OutputTuple, - log_intEvent.OutputObject - >; - getEvent( - key: "log_named_address" - ): TypedContractEvent< - log_named_addressEvent.InputTuple, - log_named_addressEvent.OutputTuple, - log_named_addressEvent.OutputObject - >; - getEvent( - key: "log_named_array(string,uint256[])" - ): TypedContractEvent< - log_named_array_string_uint256_array_Event.InputTuple, - log_named_array_string_uint256_array_Event.OutputTuple, - log_named_array_string_uint256_array_Event.OutputObject - >; - getEvent( - key: "log_named_array(string,int256[])" - ): TypedContractEvent< - log_named_array_string_int256_array_Event.InputTuple, - log_named_array_string_int256_array_Event.OutputTuple, - log_named_array_string_int256_array_Event.OutputObject - >; - getEvent( - key: "log_named_array(string,address[])" - ): TypedContractEvent< - log_named_array_string_address_array_Event.InputTuple, - log_named_array_string_address_array_Event.OutputTuple, - log_named_array_string_address_array_Event.OutputObject - >; - getEvent( - key: "log_named_bytes" - ): TypedContractEvent< - log_named_bytesEvent.InputTuple, - log_named_bytesEvent.OutputTuple, - log_named_bytesEvent.OutputObject - >; - getEvent( - key: "log_named_bytes32" - ): TypedContractEvent< - log_named_bytes32Event.InputTuple, - log_named_bytes32Event.OutputTuple, - log_named_bytes32Event.OutputObject - >; - getEvent( - key: "log_named_decimal_int" - ): TypedContractEvent< - log_named_decimal_intEvent.InputTuple, - log_named_decimal_intEvent.OutputTuple, - log_named_decimal_intEvent.OutputObject - >; - getEvent( - key: "log_named_decimal_uint" - ): TypedContractEvent< - log_named_decimal_uintEvent.InputTuple, - log_named_decimal_uintEvent.OutputTuple, - log_named_decimal_uintEvent.OutputObject - >; - getEvent( - key: "log_named_int" - ): TypedContractEvent< - log_named_intEvent.InputTuple, - log_named_intEvent.OutputTuple, - log_named_intEvent.OutputObject - >; - getEvent( - key: "log_named_string" - ): TypedContractEvent< - log_named_stringEvent.InputTuple, - log_named_stringEvent.OutputTuple, - log_named_stringEvent.OutputObject - >; - getEvent( - key: "log_named_uint" - ): TypedContractEvent< - log_named_uintEvent.InputTuple, - log_named_uintEvent.OutputTuple, - log_named_uintEvent.OutputObject - >; - getEvent( - key: "log_string" - ): TypedContractEvent< - log_stringEvent.InputTuple, - log_stringEvent.OutputTuple, - log_stringEvent.OutputObject - >; - getEvent( - key: "log_uint" - ): TypedContractEvent< - log_uintEvent.InputTuple, - log_uintEvent.OutputTuple, - log_uintEvent.OutputObject - >; - getEvent( - key: "logs" - ): TypedContractEvent< - logsEvent.InputTuple, - logsEvent.OutputTuple, - logsEvent.OutputObject - >; - - filters: { - "log(string)": TypedContractEvent< - logEvent.InputTuple, - logEvent.OutputTuple, - logEvent.OutputObject - >; - log: TypedContractEvent< - logEvent.InputTuple, - logEvent.OutputTuple, - logEvent.OutputObject - >; - - "log_address(address)": TypedContractEvent< - log_addressEvent.InputTuple, - log_addressEvent.OutputTuple, - log_addressEvent.OutputObject - >; - log_address: TypedContractEvent< - log_addressEvent.InputTuple, - log_addressEvent.OutputTuple, - log_addressEvent.OutputObject - >; - - "log_array(uint256[])": TypedContractEvent< - log_array_uint256_array_Event.InputTuple, - log_array_uint256_array_Event.OutputTuple, - log_array_uint256_array_Event.OutputObject - >; - "log_array(int256[])": TypedContractEvent< - log_array_int256_array_Event.InputTuple, - log_array_int256_array_Event.OutputTuple, - log_array_int256_array_Event.OutputObject - >; - "log_array(address[])": TypedContractEvent< - log_array_address_array_Event.InputTuple, - log_array_address_array_Event.OutputTuple, - log_array_address_array_Event.OutputObject - >; - - "log_bytes(bytes)": TypedContractEvent< - log_bytesEvent.InputTuple, - log_bytesEvent.OutputTuple, - log_bytesEvent.OutputObject - >; - log_bytes: TypedContractEvent< - log_bytesEvent.InputTuple, - log_bytesEvent.OutputTuple, - log_bytesEvent.OutputObject - >; - - "log_bytes32(bytes32)": TypedContractEvent< - log_bytes32Event.InputTuple, - log_bytes32Event.OutputTuple, - log_bytes32Event.OutputObject - >; - log_bytes32: TypedContractEvent< - log_bytes32Event.InputTuple, - log_bytes32Event.OutputTuple, - log_bytes32Event.OutputObject - >; - - "log_int(int256)": TypedContractEvent< - log_intEvent.InputTuple, - log_intEvent.OutputTuple, - log_intEvent.OutputObject - >; - log_int: TypedContractEvent< - log_intEvent.InputTuple, - log_intEvent.OutputTuple, - log_intEvent.OutputObject - >; - - "log_named_address(string,address)": TypedContractEvent< - log_named_addressEvent.InputTuple, - log_named_addressEvent.OutputTuple, - log_named_addressEvent.OutputObject - >; - log_named_address: TypedContractEvent< - log_named_addressEvent.InputTuple, - log_named_addressEvent.OutputTuple, - log_named_addressEvent.OutputObject - >; - - "log_named_array(string,uint256[])": TypedContractEvent< - log_named_array_string_uint256_array_Event.InputTuple, - log_named_array_string_uint256_array_Event.OutputTuple, - log_named_array_string_uint256_array_Event.OutputObject - >; - "log_named_array(string,int256[])": TypedContractEvent< - log_named_array_string_int256_array_Event.InputTuple, - log_named_array_string_int256_array_Event.OutputTuple, - log_named_array_string_int256_array_Event.OutputObject - >; - "log_named_array(string,address[])": TypedContractEvent< - log_named_array_string_address_array_Event.InputTuple, - log_named_array_string_address_array_Event.OutputTuple, - log_named_array_string_address_array_Event.OutputObject - >; - - "log_named_bytes(string,bytes)": TypedContractEvent< - log_named_bytesEvent.InputTuple, - log_named_bytesEvent.OutputTuple, - log_named_bytesEvent.OutputObject - >; - log_named_bytes: TypedContractEvent< - log_named_bytesEvent.InputTuple, - log_named_bytesEvent.OutputTuple, - log_named_bytesEvent.OutputObject - >; - - "log_named_bytes32(string,bytes32)": TypedContractEvent< - log_named_bytes32Event.InputTuple, - log_named_bytes32Event.OutputTuple, - log_named_bytes32Event.OutputObject - >; - log_named_bytes32: TypedContractEvent< - log_named_bytes32Event.InputTuple, - log_named_bytes32Event.OutputTuple, - log_named_bytes32Event.OutputObject - >; - - "log_named_decimal_int(string,int256,uint256)": TypedContractEvent< - log_named_decimal_intEvent.InputTuple, - log_named_decimal_intEvent.OutputTuple, - log_named_decimal_intEvent.OutputObject - >; - log_named_decimal_int: TypedContractEvent< - log_named_decimal_intEvent.InputTuple, - log_named_decimal_intEvent.OutputTuple, - log_named_decimal_intEvent.OutputObject - >; - - "log_named_decimal_uint(string,uint256,uint256)": TypedContractEvent< - log_named_decimal_uintEvent.InputTuple, - log_named_decimal_uintEvent.OutputTuple, - log_named_decimal_uintEvent.OutputObject - >; - log_named_decimal_uint: TypedContractEvent< - log_named_decimal_uintEvent.InputTuple, - log_named_decimal_uintEvent.OutputTuple, - log_named_decimal_uintEvent.OutputObject - >; - - "log_named_int(string,int256)": TypedContractEvent< - log_named_intEvent.InputTuple, - log_named_intEvent.OutputTuple, - log_named_intEvent.OutputObject - >; - log_named_int: TypedContractEvent< - log_named_intEvent.InputTuple, - log_named_intEvent.OutputTuple, - log_named_intEvent.OutputObject - >; - - "log_named_string(string,string)": TypedContractEvent< - log_named_stringEvent.InputTuple, - log_named_stringEvent.OutputTuple, - log_named_stringEvent.OutputObject - >; - log_named_string: TypedContractEvent< - log_named_stringEvent.InputTuple, - log_named_stringEvent.OutputTuple, - log_named_stringEvent.OutputObject - >; - - "log_named_uint(string,uint256)": TypedContractEvent< - log_named_uintEvent.InputTuple, - log_named_uintEvent.OutputTuple, - log_named_uintEvent.OutputObject - >; - log_named_uint: TypedContractEvent< - log_named_uintEvent.InputTuple, - log_named_uintEvent.OutputTuple, - log_named_uintEvent.OutputObject - >; - - "log_string(string)": TypedContractEvent< - log_stringEvent.InputTuple, - log_stringEvent.OutputTuple, - log_stringEvent.OutputObject - >; - log_string: TypedContractEvent< - log_stringEvent.InputTuple, - log_stringEvent.OutputTuple, - log_stringEvent.OutputObject - >; - - "log_uint(uint256)": TypedContractEvent< - log_uintEvent.InputTuple, - log_uintEvent.OutputTuple, - log_uintEvent.OutputObject - >; - log_uint: TypedContractEvent< - log_uintEvent.InputTuple, - log_uintEvent.OutputTuple, - log_uintEvent.OutputObject - >; - - "logs(bytes)": TypedContractEvent< - logsEvent.InputTuple, - logsEvent.OutputTuple, - logsEvent.OutputObject - >; - logs: TypedContractEvent< - logsEvent.InputTuple, - logsEvent.OutputTuple, - logsEvent.OutputObject - >; - }; -} diff --git a/typechain-types/contracts/testing/mockGateway/WrapGatewayEVM.ts b/typechain-types/contracts/testing/mockGateway/WrapGatewayEVM.ts deleted file mode 100644 index eaa7d891..00000000 --- a/typechain-types/contracts/testing/mockGateway/WrapGatewayEVM.ts +++ /dev/null @@ -1,109 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BytesLike, - FunctionFragment, - Result, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../../common"; - -export interface WrapGatewayEVMInterface extends Interface { - getFunction( - nameOrSignature: "CHAIN_ID" | "GATEWAY_IMPL" | "NODE_LOGIC" - ): FunctionFragment; - - encodeFunctionData(functionFragment: "CHAIN_ID", values?: undefined): string; - encodeFunctionData( - functionFragment: "GATEWAY_IMPL", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "NODE_LOGIC", - values?: undefined - ): string; - - decodeFunctionResult(functionFragment: "CHAIN_ID", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "GATEWAY_IMPL", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "NODE_LOGIC", data: BytesLike): Result; -} - -export interface WrapGatewayEVM extends BaseContract { - connect(runner?: ContractRunner | null): WrapGatewayEVM; - waitForDeployment(): Promise; - - interface: WrapGatewayEVMInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - CHAIN_ID: TypedContractMethod<[], [bigint], "view">; - - GATEWAY_IMPL: TypedContractMethod<[], [string], "view">; - - NODE_LOGIC: TypedContractMethod<[], [string], "view">; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "CHAIN_ID" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "GATEWAY_IMPL" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "NODE_LOGIC" - ): TypedContractMethod<[], [string], "view">; - - filters: {}; -} diff --git a/typechain-types/contracts/testing/mockGateway/WrapGatewayZEVM.ts b/typechain-types/contracts/testing/mockGateway/WrapGatewayZEVM.ts deleted file mode 100644 index 7906d773..00000000 --- a/typechain-types/contracts/testing/mockGateway/WrapGatewayZEVM.ts +++ /dev/null @@ -1,102 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BytesLike, - FunctionFragment, - Result, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../../common"; - -export interface WrapGatewayZEVMInterface extends Interface { - getFunction( - nameOrSignature: "GATEWAY_ZEVM_IMPL" | "NODE_LOGIC" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "GATEWAY_ZEVM_IMPL", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "NODE_LOGIC", - values?: undefined - ): string; - - decodeFunctionResult( - functionFragment: "GATEWAY_ZEVM_IMPL", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "NODE_LOGIC", data: BytesLike): Result; -} - -export interface WrapGatewayZEVM extends BaseContract { - connect(runner?: ContractRunner | null): WrapGatewayZEVM; - waitForDeployment(): Promise; - - interface: WrapGatewayZEVMInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - GATEWAY_ZEVM_IMPL: TypedContractMethod<[], [string], "view">; - - NODE_LOGIC: TypedContractMethod<[], [string], "view">; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "GATEWAY_ZEVM_IMPL" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "NODE_LOGIC" - ): TypedContractMethod<[], [string], "view">; - - filters: {}; -} diff --git a/typechain-types/contracts/testing/mockGateway/index.ts b/typechain-types/contracts/testing/mockGateway/index.ts deleted file mode 100644 index 5b093fd2..00000000 --- a/typechain-types/contracts/testing/mockGateway/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { NodeLogicMock } from "./NodeLogicMock"; -export type { WrapGatewayEVM } from "./WrapGatewayEVM"; -export type { WrapGatewayZEVM } from "./WrapGatewayZEVM"; diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable__factory.ts b/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable__factory.ts deleted file mode 100644 index f0727b73..00000000 --- a/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable__factory.ts +++ /dev/null @@ -1,277 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - AccessControlUpgradeable, - AccessControlUpgradeableInterface, -} from "../../../../@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable"; - -const _abi = [ - { - inputs: [], - name: "AccessControlBadConfirmation", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "bytes32", - name: "neededRole", - type: "bytes32", - }, - ], - name: "AccessControlUnauthorizedAccount", - type: "error", - }, - { - inputs: [], - name: "InvalidInitialization", - type: "error", - }, - { - inputs: [], - name: "NotInitializing", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint64", - name: "version", - type: "uint64", - }, - ], - name: "Initialized", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - indexed: true, - internalType: "bytes32", - name: "previousAdminRole", - type: "bytes32", - }, - { - indexed: true, - internalType: "bytes32", - name: "newAdminRole", - type: "bytes32", - }, - ], - name: "RoleAdminChanged", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - indexed: true, - internalType: "address", - name: "account", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "RoleGranted", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - indexed: true, - internalType: "address", - name: "account", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "RoleRevoked", - type: "event", - }, - { - inputs: [], - name: "DEFAULT_ADMIN_ROLE", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - ], - name: "getRoleAdmin", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "grantRole", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "hasRole", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - internalType: "address", - name: "callerConfirmation", - type: "address", - }, - ], - name: "renounceRole", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "revokeRole", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes4", - name: "interfaceId", - type: "bytes4", - }, - ], - name: "supportsInterface", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -export class AccessControlUpgradeable__factory { - static readonly abi = _abi; - static createInterface(): AccessControlUpgradeableInterface { - return new Interface(_abi) as AccessControlUpgradeableInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): AccessControlUpgradeable { - return new Contract( - address, - _abi, - runner - ) as unknown as AccessControlUpgradeable; - } -} diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/index.ts b/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/index.ts deleted file mode 100644 index 82d689c5..00000000 --- a/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { AccessControlUpgradeable__factory } from "./AccessControlUpgradeable__factory"; diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/index.ts b/typechain-types/factories/@openzeppelin/contracts-upgradeable/index.ts deleted file mode 100644 index 2b4c7e65..00000000 --- a/typechain-types/factories/@openzeppelin/contracts-upgradeable/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as access from "./access"; -export * as proxy from "./proxy"; -export * as utils from "./utils"; diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/index.ts b/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/index.ts deleted file mode 100644 index 56778f88..00000000 --- a/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as utils from "./utils"; diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.ts b/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.ts deleted file mode 100644 index 132c5778..00000000 --- a/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.ts +++ /dev/null @@ -1,48 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - Initializable, - InitializableInterface, -} from "../../../../../@openzeppelin/contracts-upgradeable/proxy/utils/Initializable"; - -const _abi = [ - { - inputs: [], - name: "InvalidInitialization", - type: "error", - }, - { - inputs: [], - name: "NotInitializing", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint64", - name: "version", - type: "uint64", - }, - ], - name: "Initialized", - type: "event", - }, -] as const; - -export class Initializable__factory { - static readonly abi = _abi; - static createInterface(): InitializableInterface { - return new Interface(_abi) as InitializableInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): Initializable { - return new Contract(address, _abi, runner) as unknown as Initializable; - } -} diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable__factory.ts b/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable__factory.ts deleted file mode 100644 index a4d857f4..00000000 --- a/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable__factory.ts +++ /dev/null @@ -1,153 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - UUPSUpgradeable, - UUPSUpgradeableInterface, -} from "../../../../../@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - ], - name: "AddressEmptyCode", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "implementation", - type: "address", - }, - ], - name: "ERC1967InvalidImplementation", - type: "error", - }, - { - inputs: [], - name: "ERC1967NonPayable", - type: "error", - }, - { - inputs: [], - name: "FailedCall", - type: "error", - }, - { - inputs: [], - name: "InvalidInitialization", - type: "error", - }, - { - inputs: [], - name: "NotInitializing", - type: "error", - }, - { - inputs: [], - name: "UUPSUnauthorizedCallContext", - type: "error", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "slot", - type: "bytes32", - }, - ], - name: "UUPSUnsupportedProxiableUUID", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint64", - name: "version", - type: "uint64", - }, - ], - name: "Initialized", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "implementation", - type: "address", - }, - ], - name: "Upgraded", - type: "event", - }, - { - inputs: [], - name: "UPGRADE_INTERFACE_VERSION", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "proxiableUUID", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newImplementation", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "upgradeToAndCall", - outputs: [], - stateMutability: "payable", - type: "function", - }, -] as const; - -export class UUPSUpgradeable__factory { - static readonly abi = _abi; - static createInterface(): UUPSUpgradeableInterface { - return new Interface(_abi) as UUPSUpgradeableInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): UUPSUpgradeable { - return new Contract(address, _abi, runner) as unknown as UUPSUpgradeable; - } -} diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/index.ts b/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/index.ts deleted file mode 100644 index a192d15d..00000000 --- a/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { Initializable__factory } from "./Initializable__factory"; -export { UUPSUpgradeable__factory } from "./UUPSUpgradeable__factory"; diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.ts b/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.ts deleted file mode 100644 index 60e8cbba..00000000 --- a/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.ts +++ /dev/null @@ -1,48 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - ContextUpgradeable, - ContextUpgradeableInterface, -} from "../../../../@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable"; - -const _abi = [ - { - inputs: [], - name: "InvalidInitialization", - type: "error", - }, - { - inputs: [], - name: "NotInitializing", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint64", - name: "version", - type: "uint64", - }, - ], - name: "Initialized", - type: "event", - }, -] as const; - -export class ContextUpgradeable__factory { - static readonly abi = _abi; - static createInterface(): ContextUpgradeableInterface { - return new Interface(_abi) as ContextUpgradeableInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): ContextUpgradeable { - return new Contract(address, _abi, runner) as unknown as ContextUpgradeable; - } -} diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable__factory.ts b/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable__factory.ts deleted file mode 100644 index f43afe92..00000000 --- a/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable__factory.ts +++ /dev/null @@ -1,101 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - PausableUpgradeable, - PausableUpgradeableInterface, -} from "../../../../@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable"; - -const _abi = [ - { - inputs: [], - name: "EnforcedPause", - type: "error", - }, - { - inputs: [], - name: "ExpectedPause", - type: "error", - }, - { - inputs: [], - name: "InvalidInitialization", - type: "error", - }, - { - inputs: [], - name: "NotInitializing", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint64", - name: "version", - type: "uint64", - }, - ], - name: "Initialized", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "Paused", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "Unpaused", - type: "event", - }, - { - inputs: [], - name: "paused", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -export class PausableUpgradeable__factory { - static readonly abi = _abi; - static createInterface(): PausableUpgradeableInterface { - return new Interface(_abi) as PausableUpgradeableInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): PausableUpgradeable { - return new Contract( - address, - _abi, - runner - ) as unknown as PausableUpgradeable; - } -} diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable__factory.ts b/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable__factory.ts deleted file mode 100644 index a3fe9264..00000000 --- a/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable__factory.ts +++ /dev/null @@ -1,57 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - ReentrancyGuardUpgradeable, - ReentrancyGuardUpgradeableInterface, -} from "../../../../@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable"; - -const _abi = [ - { - inputs: [], - name: "InvalidInitialization", - type: "error", - }, - { - inputs: [], - name: "NotInitializing", - type: "error", - }, - { - inputs: [], - name: "ReentrancyGuardReentrantCall", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint64", - name: "version", - type: "uint64", - }, - ], - name: "Initialized", - type: "event", - }, -] as const; - -export class ReentrancyGuardUpgradeable__factory { - static readonly abi = _abi; - static createInterface(): ReentrancyGuardUpgradeableInterface { - return new Interface(_abi) as ReentrancyGuardUpgradeableInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): ReentrancyGuardUpgradeable { - return new Contract( - address, - _abi, - runner - ) as unknown as ReentrancyGuardUpgradeable; - } -} diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/index.ts b/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/index.ts deleted file mode 100644 index 979e6103..00000000 --- a/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as introspection from "./introspection"; -export { ContextUpgradeable__factory } from "./ContextUpgradeable__factory"; -export { PausableUpgradeable__factory } from "./PausableUpgradeable__factory"; -export { ReentrancyGuardUpgradeable__factory } from "./ReentrancyGuardUpgradeable__factory"; diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable__factory.ts b/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable__factory.ts deleted file mode 100644 index fc2d6f48..00000000 --- a/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable__factory.ts +++ /dev/null @@ -1,67 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - ERC165Upgradeable, - ERC165UpgradeableInterface, -} from "../../../../../@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable"; - -const _abi = [ - { - inputs: [], - name: "InvalidInitialization", - type: "error", - }, - { - inputs: [], - name: "NotInitializing", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint64", - name: "version", - type: "uint64", - }, - ], - name: "Initialized", - type: "event", - }, - { - inputs: [ - { - internalType: "bytes4", - name: "interfaceId", - type: "bytes4", - }, - ], - name: "supportsInterface", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -export class ERC165Upgradeable__factory { - static readonly abi = _abi; - static createInterface(): ERC165UpgradeableInterface { - return new Interface(_abi) as ERC165UpgradeableInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): ERC165Upgradeable { - return new Contract(address, _abi, runner) as unknown as ERC165Upgradeable; - } -} diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/introspection/index.ts b/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/introspection/index.ts deleted file mode 100644 index 5cebdb19..00000000 --- a/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/introspection/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { ERC165Upgradeable__factory } from "./ERC165Upgradeable__factory"; diff --git a/typechain-types/factories/@openzeppelin/contracts/access/IAccessControl__factory.ts b/typechain-types/factories/@openzeppelin/contracts/access/IAccessControl__factory.ts deleted file mode 100644 index d1e35233..00000000 --- a/typechain-types/factories/@openzeppelin/contracts/access/IAccessControl__factory.ts +++ /dev/null @@ -1,218 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IAccessControl, - IAccessControlInterface, -} from "../../../../@openzeppelin/contracts/access/IAccessControl"; - -const _abi = [ - { - inputs: [], - name: "AccessControlBadConfirmation", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "bytes32", - name: "neededRole", - type: "bytes32", - }, - ], - name: "AccessControlUnauthorizedAccount", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - indexed: true, - internalType: "bytes32", - name: "previousAdminRole", - type: "bytes32", - }, - { - indexed: true, - internalType: "bytes32", - name: "newAdminRole", - type: "bytes32", - }, - ], - name: "RoleAdminChanged", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - indexed: true, - internalType: "address", - name: "account", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "RoleGranted", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - indexed: true, - internalType: "address", - name: "account", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "RoleRevoked", - type: "event", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - ], - name: "getRoleAdmin", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "grantRole", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "hasRole", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - internalType: "address", - name: "callerConfirmation", - type: "address", - }, - ], - name: "renounceRole", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "revokeRole", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class IAccessControl__factory { - static readonly abi = _abi; - static createInterface(): IAccessControlInterface { - return new Interface(_abi) as IAccessControlInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): IAccessControl { - return new Contract(address, _abi, runner) as unknown as IAccessControl; - } -} diff --git a/typechain-types/factories/@openzeppelin/contracts/access/index.ts b/typechain-types/factories/@openzeppelin/contracts/access/index.ts deleted file mode 100644 index 33abb021..00000000 --- a/typechain-types/factories/@openzeppelin/contracts/access/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { IAccessControl__factory } from "./IAccessControl__factory"; diff --git a/typechain-types/factories/@openzeppelin/contracts/index.ts b/typechain-types/factories/@openzeppelin/contracts/index.ts deleted file mode 100644 index cacd2b7e..00000000 --- a/typechain-types/factories/@openzeppelin/contracts/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as access from "./access"; -export * as interfaces from "./interfaces"; -export * as proxy from "./proxy"; -export * as token from "./token"; -export * as utils from "./utils"; diff --git a/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC1363__factory.ts b/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC1363__factory.ts deleted file mode 100644 index 6a0a0d47..00000000 --- a/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC1363__factory.ts +++ /dev/null @@ -1,393 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IERC1363, - IERC1363Interface, -} from "../../../../@openzeppelin/contracts/interfaces/IERC1363"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "spender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "approveAndCall", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "approveAndCall", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes4", - name: "interfaceId", - type: "bytes4", - }, - ], - name: "supportsInterface", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transferAndCall", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "transferAndCall", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "transferFromAndCall", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transferFromAndCall", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class IERC1363__factory { - static readonly abi = _abi; - static createInterface(): IERC1363Interface { - return new Interface(_abi) as IERC1363Interface; - } - static connect(address: string, runner?: ContractRunner | null): IERC1363 { - return new Contract(address, _abi, runner) as unknown as IERC1363; - } -} diff --git a/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC1967__factory.ts b/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC1967__factory.ts deleted file mode 100644 index c4821f44..00000000 --- a/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC1967__factory.ts +++ /dev/null @@ -1,67 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IERC1967, - IERC1967Interface, -} from "../../../../@openzeppelin/contracts/interfaces/IERC1967"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "previousAdmin", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "newAdmin", - type: "address", - }, - ], - name: "AdminChanged", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "beacon", - type: "address", - }, - ], - name: "BeaconUpgraded", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "implementation", - type: "address", - }, - ], - name: "Upgraded", - type: "event", - }, -] as const; - -export class IERC1967__factory { - static readonly abi = _abi; - static createInterface(): IERC1967Interface { - return new Interface(_abi) as IERC1967Interface; - } - static connect(address: string, runner?: ContractRunner | null): IERC1967 { - return new Contract(address, _abi, runner) as unknown as IERC1967; - } -} diff --git a/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory.ts b/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory.ts deleted file mode 100644 index 360f9ed4..00000000 --- a/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory.ts +++ /dev/null @@ -1,38 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IERC1822Proxiable, - IERC1822ProxiableInterface, -} from "../../../../../@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable"; - -const _abi = [ - { - inputs: [], - name: "proxiableUUID", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -export class IERC1822Proxiable__factory { - static readonly abi = _abi; - static createInterface(): IERC1822ProxiableInterface { - return new Interface(_abi) as IERC1822ProxiableInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): IERC1822Proxiable { - return new Contract(address, _abi, runner) as unknown as IERC1822Proxiable; - } -} diff --git a/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.ts b/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.ts deleted file mode 100644 index ecca1339..00000000 --- a/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { IERC1822Proxiable__factory } from "./IERC1822Proxiable__factory"; diff --git a/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors__factory.ts b/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors__factory.ts deleted file mode 100644 index 0413f8c1..00000000 --- a/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors__factory.ts +++ /dev/null @@ -1,127 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IERC1155Errors, - IERC1155ErrorsInterface, -} from "../../../../../@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "uint256", - name: "balance", - type: "uint256", - }, - { - internalType: "uint256", - name: "needed", - type: "uint256", - }, - { - internalType: "uint256", - name: "tokenId", - type: "uint256", - }, - ], - name: "ERC1155InsufficientBalance", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "approver", - type: "address", - }, - ], - name: "ERC1155InvalidApprover", - type: "error", - }, - { - inputs: [ - { - internalType: "uint256", - name: "idsLength", - type: "uint256", - }, - { - internalType: "uint256", - name: "valuesLength", - type: "uint256", - }, - ], - name: "ERC1155InvalidArrayLength", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "operator", - type: "address", - }, - ], - name: "ERC1155InvalidOperator", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - ], - name: "ERC1155InvalidReceiver", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "ERC1155InvalidSender", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "operator", - type: "address", - }, - { - internalType: "address", - name: "owner", - type: "address", - }, - ], - name: "ERC1155MissingApprovalForAll", - type: "error", - }, -] as const; - -export class IERC1155Errors__factory { - static readonly abi = _abi; - static createInterface(): IERC1155ErrorsInterface { - return new Interface(_abi) as IERC1155ErrorsInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): IERC1155Errors { - return new Contract(address, _abi, runner) as unknown as IERC1155Errors; - } -} diff --git a/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors__factory.ts b/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors__factory.ts deleted file mode 100644 index 695f3f0f..00000000 --- a/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors__factory.ts +++ /dev/null @@ -1,111 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IERC20Errors, - IERC20ErrorsInterface, -} from "../../../../../@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "allowance", - type: "uint256", - }, - { - internalType: "uint256", - name: "needed", - type: "uint256", - }, - ], - name: "ERC20InsufficientAllowance", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "uint256", - name: "balance", - type: "uint256", - }, - { - internalType: "uint256", - name: "needed", - type: "uint256", - }, - ], - name: "ERC20InsufficientBalance", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "approver", - type: "address", - }, - ], - name: "ERC20InvalidApprover", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - ], - name: "ERC20InvalidReceiver", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "ERC20InvalidSender", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "ERC20InvalidSpender", - type: "error", - }, -] as const; - -export class IERC20Errors__factory { - static readonly abi = _abi; - static createInterface(): IERC20ErrorsInterface { - return new Interface(_abi) as IERC20ErrorsInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): IERC20Errors { - return new Contract(address, _abi, runner) as unknown as IERC20Errors; - } -} diff --git a/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors__factory.ts b/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors__factory.ts deleted file mode 100644 index 8615d4dd..00000000 --- a/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors__factory.ts +++ /dev/null @@ -1,128 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IERC721Errors, - IERC721ErrorsInterface, -} from "../../../../../@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "uint256", - name: "tokenId", - type: "uint256", - }, - { - internalType: "address", - name: "owner", - type: "address", - }, - ], - name: "ERC721IncorrectOwner", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "operator", - type: "address", - }, - { - internalType: "uint256", - name: "tokenId", - type: "uint256", - }, - ], - name: "ERC721InsufficientApproval", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "approver", - type: "address", - }, - ], - name: "ERC721InvalidApprover", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "operator", - type: "address", - }, - ], - name: "ERC721InvalidOperator", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - ], - name: "ERC721InvalidOwner", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - ], - name: "ERC721InvalidReceiver", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "ERC721InvalidSender", - type: "error", - }, - { - inputs: [ - { - internalType: "uint256", - name: "tokenId", - type: "uint256", - }, - ], - name: "ERC721NonexistentToken", - type: "error", - }, -] as const; - -export class IERC721Errors__factory { - static readonly abi = _abi; - static createInterface(): IERC721ErrorsInterface { - return new Interface(_abi) as IERC721ErrorsInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): IERC721Errors { - return new Contract(address, _abi, runner) as unknown as IERC721Errors; - } -} diff --git a/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts b/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts deleted file mode 100644 index 571330ea..00000000 --- a/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { IERC1155Errors__factory } from "./IERC1155Errors__factory"; -export { IERC20Errors__factory } from "./IERC20Errors__factory"; -export { IERC721Errors__factory } from "./IERC721Errors__factory"; diff --git a/typechain-types/factories/@openzeppelin/contracts/interfaces/index.ts b/typechain-types/factories/@openzeppelin/contracts/interfaces/index.ts deleted file mode 100644 index b91187f9..00000000 --- a/typechain-types/factories/@openzeppelin/contracts/interfaces/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as draftIerc1822Sol from "./draft-IERC1822.sol"; -export * as draftIerc6093Sol from "./draft-IERC6093.sol"; -export { IERC1363__factory } from "./IERC1363__factory"; -export { IERC1967__factory } from "./IERC1967__factory"; diff --git a/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.ts b/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.ts deleted file mode 100644 index b16b3c4a..00000000 --- a/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.ts +++ /dev/null @@ -1,144 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { - Signer, - BytesLike, - AddressLike, - ContractDeployTransaction, - ContractRunner, -} from "ethers"; -import type { PayableOverrides } from "../../../../../common"; -import type { - ERC1967Proxy, - ERC1967ProxyInterface, -} from "../../../../../@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "implementation", - type: "address", - }, - { - internalType: "bytes", - name: "_data", - type: "bytes", - }, - ], - stateMutability: "payable", - type: "constructor", - }, - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - ], - name: "AddressEmptyCode", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "implementation", - type: "address", - }, - ], - name: "ERC1967InvalidImplementation", - type: "error", - }, - { - inputs: [], - name: "ERC1967NonPayable", - type: "error", - }, - { - inputs: [], - name: "FailedCall", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "implementation", - type: "address", - }, - ], - name: "Upgraded", - type: "event", - }, - { - stateMutability: "payable", - type: "fallback", - }, -] as const; - -const _bytecode = - "0x60806040526102c68038038061001481610188565b928339810190604081830312610183578051906001600160a01b03821690818303610183576020810151906001600160401b038211610183570183601f820112156101835780519061006d610068836101c3565b610188565b94828652602083830101116101835760005b82811061016e575050602060009185010152813b1561015a577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a28151156101415760008083602061012995519101845af43d15610139573d91610119610068846101c3565b9283523d6000602085013e6101de565b505b604051608690816102408239f35b6060916101de565b5050341561012b5763b398979f60e01b60005260046000fd5b634c9c8ce360e01b60005260045260246000fd5b8060208092840101518282890101520161007f565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176101ad57604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b0381116101ad57601f01601f191660200190565b9061020457508051156101f357805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580610236575b610215575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b1561020d56fe60806040527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5460009081906001600160a01b0316368280378136915af43d6000803e15604b573d6000f35b3d6000fdfea264697066735822122050f22a01d073962c556a114f7af7ed5d52928a56307a2cc1329dcdbb635986ec64736f6c634300081a0033"; - -type ERC1967ProxyConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: ERC1967ProxyConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class ERC1967Proxy__factory extends ContractFactory { - constructor(...args: ERC1967ProxyConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - implementation: AddressLike, - _data: BytesLike, - overrides?: PayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(implementation, _data, overrides || {}); - } - override deploy( - implementation: AddressLike, - _data: BytesLike, - overrides?: PayableOverrides & { from?: string } - ) { - return super.deploy(implementation, _data, overrides || {}) as Promise< - ERC1967Proxy & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): ERC1967Proxy__factory { - return super.connect(runner) as ERC1967Proxy__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): ERC1967ProxyInterface { - return new Interface(_abi) as ERC1967ProxyInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): ERC1967Proxy { - return new Contract(address, _abi, runner) as unknown as ERC1967Proxy; - } -} diff --git a/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils__factory.ts b/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils__factory.ts deleted file mode 100644 index c98f8425..00000000 --- a/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils__factory.ts +++ /dev/null @@ -1,105 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; -import type { NonPayableOverrides } from "../../../../../common"; -import type { - ERC1967Utils, - ERC1967UtilsInterface, -} from "../../../../../@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "admin", - type: "address", - }, - ], - name: "ERC1967InvalidAdmin", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "beacon", - type: "address", - }, - ], - name: "ERC1967InvalidBeacon", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "implementation", - type: "address", - }, - ], - name: "ERC1967InvalidImplementation", - type: "error", - }, - { - inputs: [], - name: "ERC1967NonPayable", - type: "error", - }, -] as const; - -const _bytecode = - "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220c11cf1f15ab48ccbf744da22464f454f8088bc380492096b2255a2c2c78aebd364736f6c634300081a0033"; - -type ERC1967UtilsConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: ERC1967UtilsConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class ERC1967Utils__factory extends ContractFactory { - constructor(...args: ERC1967UtilsConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(overrides || {}); - } - override deploy(overrides?: NonPayableOverrides & { from?: string }) { - return super.deploy(overrides || {}) as Promise< - ERC1967Utils & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): ERC1967Utils__factory { - return super.connect(runner) as ERC1967Utils__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): ERC1967UtilsInterface { - return new Interface(_abi) as ERC1967UtilsInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): ERC1967Utils { - return new Contract(address, _abi, runner) as unknown as ERC1967Utils; - } -} diff --git a/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/index.ts b/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/index.ts deleted file mode 100644 index b7cbb1b4..00000000 --- a/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { ERC1967Proxy__factory } from "./ERC1967Proxy__factory"; -export { ERC1967Utils__factory } from "./ERC1967Utils__factory"; diff --git a/typechain-types/factories/@openzeppelin/contracts/proxy/Proxy__factory.ts b/typechain-types/factories/@openzeppelin/contracts/proxy/Proxy__factory.ts deleted file mode 100644 index 76f2c926..00000000 --- a/typechain-types/factories/@openzeppelin/contracts/proxy/Proxy__factory.ts +++ /dev/null @@ -1,26 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - Proxy, - ProxyInterface, -} from "../../../../@openzeppelin/contracts/proxy/Proxy"; - -const _abi = [ - { - stateMutability: "payable", - type: "fallback", - }, -] as const; - -export class Proxy__factory { - static readonly abi = _abi; - static createInterface(): ProxyInterface { - return new Interface(_abi) as ProxyInterface; - } - static connect(address: string, runner?: ContractRunner | null): Proxy { - return new Contract(address, _abi, runner) as unknown as Proxy; - } -} diff --git a/typechain-types/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.ts b/typechain-types/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.ts deleted file mode 100644 index 184893de..00000000 --- a/typechain-types/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.ts +++ /dev/null @@ -1,35 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IBeacon, - IBeaconInterface, -} from "../../../../../@openzeppelin/contracts/proxy/beacon/IBeacon"; - -const _abi = [ - { - inputs: [], - name: "implementation", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -export class IBeacon__factory { - static readonly abi = _abi; - static createInterface(): IBeaconInterface { - return new Interface(_abi) as IBeaconInterface; - } - static connect(address: string, runner?: ContractRunner | null): IBeacon { - return new Contract(address, _abi, runner) as unknown as IBeacon; - } -} diff --git a/typechain-types/factories/@openzeppelin/contracts/proxy/beacon/index.ts b/typechain-types/factories/@openzeppelin/contracts/proxy/beacon/index.ts deleted file mode 100644 index 4a9d6289..00000000 --- a/typechain-types/factories/@openzeppelin/contracts/proxy/beacon/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { IBeacon__factory } from "./IBeacon__factory"; diff --git a/typechain-types/factories/@openzeppelin/contracts/proxy/index.ts b/typechain-types/factories/@openzeppelin/contracts/proxy/index.ts deleted file mode 100644 index 7f183c38..00000000 --- a/typechain-types/factories/@openzeppelin/contracts/proxy/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as erc1967 from "./ERC1967"; -export * as beacon from "./beacon"; -export { Proxy__factory } from "./Proxy__factory"; diff --git a/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.ts b/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.ts deleted file mode 100644 index 5d8981a6..00000000 --- a/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.ts +++ /dev/null @@ -1,330 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - ERC20, - ERC20Interface, -} from "../../../../../@openzeppelin/contracts/token/ERC20/ERC20"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "allowance", - type: "uint256", - }, - { - internalType: "uint256", - name: "needed", - type: "uint256", - }, - ], - name: "ERC20InsufficientAllowance", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "uint256", - name: "balance", - type: "uint256", - }, - { - internalType: "uint256", - name: "needed", - type: "uint256", - }, - ], - name: "ERC20InsufficientBalance", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "approver", - type: "address", - }, - ], - name: "ERC20InvalidApprover", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - ], - name: "ERC20InvalidReceiver", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "ERC20InvalidSender", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "ERC20InvalidSpender", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "spender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "decimals", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "name", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "symbol", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class ERC20__factory { - static readonly abi = _abi; - static createInterface(): ERC20Interface { - return new Interface(_abi) as ERC20Interface; - } - static connect(address: string, runner?: ContractRunner | null): ERC20 { - return new Contract(address, _abi, runner) as unknown as ERC20; - } -} diff --git a/typechain-types/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.ts b/typechain-types/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.ts deleted file mode 100644 index 6768448d..00000000 --- a/typechain-types/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.ts +++ /dev/null @@ -1,205 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IERC20, - IERC20Interface, -} from "../../../../../@openzeppelin/contracts/token/ERC20/IERC20"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "spender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class IERC20__factory { - static readonly abi = _abi; - static createInterface(): IERC20Interface { - return new Interface(_abi) as IERC20Interface; - } - static connect(address: string, runner?: ContractRunner | null): IERC20 { - return new Contract(address, _abi, runner) as unknown as IERC20; - } -} diff --git a/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory.ts b/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory.ts deleted file mode 100644 index 80abf969..00000000 --- a/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory.ts +++ /dev/null @@ -1,247 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IERC20Metadata, - IERC20MetadataInterface, -} from "../../../../../../@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "spender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "decimals", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "name", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "symbol", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class IERC20Metadata__factory { - static readonly abi = _abi; - static createInterface(): IERC20MetadataInterface { - return new Interface(_abi) as IERC20MetadataInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): IERC20Metadata { - return new Contract(address, _abi, runner) as unknown as IERC20Metadata; - } -} diff --git a/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.ts b/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.ts deleted file mode 100644 index b9477f85..00000000 --- a/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { IERC20Metadata__factory } from "./IERC20Metadata__factory"; diff --git a/typechain-types/factories/@openzeppelin/contracts/token/ERC20/index.ts b/typechain-types/factories/@openzeppelin/contracts/token/ERC20/index.ts deleted file mode 100644 index d187f966..00000000 --- a/typechain-types/factories/@openzeppelin/contracts/token/ERC20/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as extensions from "./extensions"; -export * as utils from "./utils"; -export { ERC20__factory } from "./ERC20__factory"; -export { IERC20__factory } from "./IERC20__factory"; diff --git a/typechain-types/factories/@openzeppelin/contracts/token/ERC20/utils/SafeERC20__factory.ts b/typechain-types/factories/@openzeppelin/contracts/token/ERC20/utils/SafeERC20__factory.ts deleted file mode 100644 index f53c35fc..00000000 --- a/typechain-types/factories/@openzeppelin/contracts/token/ERC20/utils/SafeERC20__factory.ts +++ /dev/null @@ -1,96 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; -import type { NonPayableOverrides } from "../../../../../../common"; -import type { - SafeERC20, - SafeERC20Interface, -} from "../../../../../../@openzeppelin/contracts/token/ERC20/utils/SafeERC20"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "currentAllowance", - type: "uint256", - }, - { - internalType: "uint256", - name: "requestedDecrease", - type: "uint256", - }, - ], - name: "SafeERC20FailedDecreaseAllowance", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "SafeERC20FailedOperation", - type: "error", - }, -] as const; - -const _bytecode = - "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212203c1d95b5507f663c32bedb8c30b08d3127c4916ea18af213d429fe053d2ce49e64736f6c634300081a0033"; - -type SafeERC20ConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: SafeERC20ConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class SafeERC20__factory extends ContractFactory { - constructor(...args: SafeERC20ConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(overrides || {}); - } - override deploy(overrides?: NonPayableOverrides & { from?: string }) { - return super.deploy(overrides || {}) as Promise< - SafeERC20 & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): SafeERC20__factory { - return super.connect(runner) as SafeERC20__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): SafeERC20Interface { - return new Interface(_abi) as SafeERC20Interface; - } - static connect(address: string, runner?: ContractRunner | null): SafeERC20 { - return new Contract(address, _abi, runner) as unknown as SafeERC20; - } -} diff --git a/typechain-types/factories/@openzeppelin/contracts/token/ERC20/utils/index.ts b/typechain-types/factories/@openzeppelin/contracts/token/ERC20/utils/index.ts deleted file mode 100644 index 56fb056e..00000000 --- a/typechain-types/factories/@openzeppelin/contracts/token/ERC20/utils/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { SafeERC20__factory } from "./SafeERC20__factory"; diff --git a/typechain-types/factories/@openzeppelin/contracts/token/index.ts b/typechain-types/factories/@openzeppelin/contracts/token/index.ts deleted file mode 100644 index da1e061e..00000000 --- a/typechain-types/factories/@openzeppelin/contracts/token/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as erc20 from "./ERC20"; diff --git a/typechain-types/factories/@openzeppelin/contracts/utils/Address__factory.ts b/typechain-types/factories/@openzeppelin/contracts/utils/Address__factory.ts deleted file mode 100644 index ca2c16f2..00000000 --- a/typechain-types/factories/@openzeppelin/contracts/utils/Address__factory.ts +++ /dev/null @@ -1,75 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; -import type { NonPayableOverrides } from "../../../../common"; -import type { - Address, - AddressInterface, -} from "../../../../@openzeppelin/contracts/utils/Address"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - ], - name: "AddressEmptyCode", - type: "error", - }, -] as const; - -const _bytecode = - "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212207b0ce22404ddaa4435b8e83aae48529ab78bf8c13022d5e3b9e59fac809195d464736f6c634300081a0033"; - -type AddressConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: AddressConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class Address__factory extends ContractFactory { - constructor(...args: AddressConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(overrides || {}); - } - override deploy(overrides?: NonPayableOverrides & { from?: string }) { - return super.deploy(overrides || {}) as Promise< - Address & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): Address__factory { - return super.connect(runner) as Address__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): AddressInterface { - return new Interface(_abi) as AddressInterface; - } - static connect(address: string, runner?: ContractRunner | null): Address { - return new Contract(address, _abi, runner) as unknown as Address; - } -} diff --git a/typechain-types/factories/@openzeppelin/contracts/utils/Errors__factory.ts b/typechain-types/factories/@openzeppelin/contracts/utils/Errors__factory.ts deleted file mode 100644 index 9eb6036d..00000000 --- a/typechain-types/factories/@openzeppelin/contracts/utils/Errors__factory.ts +++ /dev/null @@ -1,101 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; -import type { NonPayableOverrides } from "../../../../common"; -import type { - Errors, - ErrorsInterface, -} from "../../../../@openzeppelin/contracts/utils/Errors"; - -const _abi = [ - { - inputs: [], - name: "FailedCall", - type: "error", - }, - { - inputs: [], - name: "FailedDeployment", - type: "error", - }, - { - inputs: [ - { - internalType: "uint256", - name: "balance", - type: "uint256", - }, - { - internalType: "uint256", - name: "needed", - type: "uint256", - }, - ], - name: "InsufficientBalance", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - name: "MissingPrecompile", - type: "error", - }, -] as const; - -const _bytecode = - "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212206d903baad7a9c21d4f988903edc6ab3eadc934f31506ad4dc2253b669109920364736f6c634300081a0033"; - -type ErrorsConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: ErrorsConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class Errors__factory extends ContractFactory { - constructor(...args: ErrorsConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(overrides || {}); - } - override deploy(overrides?: NonPayableOverrides & { from?: string }) { - return super.deploy(overrides || {}) as Promise< - Errors & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): Errors__factory { - return super.connect(runner) as Errors__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): ErrorsInterface { - return new Interface(_abi) as ErrorsInterface; - } - static connect(address: string, runner?: ContractRunner | null): Errors { - return new Contract(address, _abi, runner) as unknown as Errors; - } -} diff --git a/typechain-types/factories/@openzeppelin/contracts/utils/index.ts b/typechain-types/factories/@openzeppelin/contracts/utils/index.ts deleted file mode 100644 index c9b888cd..00000000 --- a/typechain-types/factories/@openzeppelin/contracts/utils/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as introspection from "./introspection"; -export { Address__factory } from "./Address__factory"; -export { Errors__factory } from "./Errors__factory"; diff --git a/typechain-types/factories/@openzeppelin/contracts/utils/introspection/IERC165__factory.ts b/typechain-types/factories/@openzeppelin/contracts/utils/introspection/IERC165__factory.ts deleted file mode 100644 index 5cc03947..00000000 --- a/typechain-types/factories/@openzeppelin/contracts/utils/introspection/IERC165__factory.ts +++ /dev/null @@ -1,41 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IERC165, - IERC165Interface, -} from "../../../../../@openzeppelin/contracts/utils/introspection/IERC165"; - -const _abi = [ - { - inputs: [ - { - internalType: "bytes4", - name: "interfaceId", - type: "bytes4", - }, - ], - name: "supportsInterface", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -export class IERC165__factory { - static readonly abi = _abi; - static createInterface(): IERC165Interface { - return new Interface(_abi) as IERC165Interface; - } - static connect(address: string, runner?: ContractRunner | null): IERC165 { - return new Contract(address, _abi, runner) as unknown as IERC165; - } -} diff --git a/typechain-types/factories/@openzeppelin/contracts/utils/introspection/index.ts b/typechain-types/factories/@openzeppelin/contracts/utils/introspection/index.ts deleted file mode 100644 index 85d37333..00000000 --- a/typechain-types/factories/@openzeppelin/contracts/utils/introspection/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { IERC165__factory } from "./IERC165__factory"; diff --git a/typechain-types/factories/@openzeppelin/index.ts b/typechain-types/factories/@openzeppelin/index.ts deleted file mode 100644 index 6923c15a..00000000 --- a/typechain-types/factories/@openzeppelin/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as contracts from "./contracts"; -export * as contractsUpgradeable from "./contracts-upgradeable"; diff --git a/typechain-types/factories/@uniswap/index.ts b/typechain-types/factories/@uniswap/index.ts deleted file mode 100644 index b34b9840..00000000 --- a/typechain-types/factories/@uniswap/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as v2Core from "./v2-core"; -export * as v2Periphery from "./v2-periphery"; -export * as v3Core from "./v3-core"; -export * as v3Periphery from "./v3-periphery"; diff --git a/typechain-types/factories/@uniswap/v2-core/contracts/UniswapV2ERC20__factory.ts b/typechain-types/factories/@uniswap/v2-core/contracts/UniswapV2ERC20__factory.ts deleted file mode 100644 index 14d8a70f..00000000 --- a/typechain-types/factories/@uniswap/v2-core/contracts/UniswapV2ERC20__factory.ts +++ /dev/null @@ -1,409 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; -import type { NonPayableOverrides } from "../../../../common"; -import type { - UniswapV2ERC20, - UniswapV2ERC20Interface, -} from "../../../../@uniswap/v2-core/contracts/UniswapV2ERC20"; - -const _abi = [ - { - inputs: [], - payable: false, - stateMutability: "nonpayable", - type: "constructor", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "spender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - constant: true, - inputs: [], - name: "DOMAIN_SEPARATOR", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: true, - inputs: [], - name: "PERMIT_TYPEHASH", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: true, - inputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "address", - name: "", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: false, - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - payable: false, - stateMutability: "nonpayable", - type: "function", - }, - { - constant: true, - inputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: true, - inputs: [], - name: "decimals", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: true, - inputs: [], - name: "name", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: true, - inputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - name: "nonces", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: false, - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - { - internalType: "uint8", - name: "v", - type: "uint8", - }, - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "s", - type: "bytes32", - }, - ], - name: "permit", - outputs: [], - payable: false, - stateMutability: "nonpayable", - type: "function", - }, - { - constant: true, - inputs: [], - name: "symbol", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: true, - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: false, - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - payable: false, - stateMutability: "nonpayable", - type: "function", - }, - { - constant: false, - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - payable: false, - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -const _bytecode = - "0x608060405234801561001057600080fd5b506000469050604051808061109060529139605201905060405180910390206040518060400160405280600a81526020017f556e697377617020563200000000000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001208330604051602001808681526020018581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001955050505050506040516020818303038152906040528051906020012060038190555050610f618061012f6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b4114610371578063a9059cbb146103f4578063d505accf1461045a578063dd62ed3e146104f3576100cf565b80633644e515146102a357806370a08231146102c15780637ecebe0014610319576100cf565b806306fdde03146100d4578063095ea7b31461015757806318160ddd146101bd57806323b872dd146101db57806330adf81f14610261578063313ce5671461027f575b600080fd5b6100dc61056b565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561011c578082015181840152602081019050610101565b50505050905090810190601f1680156101495780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101a36004803603604081101561016d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105a4565b604051808215151515815260200191505060405180910390f35b6101c56105bb565b6040518082815260200191505060405180910390f35b610247600480360360608110156101f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105c1565b604051808215151515815260200191505060405180910390f35b61026961078c565b6040518082815260200191505060405180910390f35b6102876107b3565b604051808260ff1660ff16815260200191505060405180910390f35b6102ab6107b8565b6040518082815260200191505060405180910390f35b610303600480360360208110156102d757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107be565b6040518082815260200191505060405180910390f35b61035b6004803603602081101561032f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107d6565b6040518082815260200191505060405180910390f35b6103796107ee565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103b957808201518184015260208101905061039e565b50505050905090810190601f1680156103e65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104406004803603604081101561040a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610827565b604051808215151515815260200191505060405180910390f35b6104f1600480360360e081101561047057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803560ff169060200190929190803590602001909291908035906020019092919050505061083e565b005b6105556004803603604081101561050957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b82565b6040518082815260200191505060405180910390f35b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b60006105b1338484610ba7565b6001905092915050565b60005481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610776576106f582600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c9290919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610781848484610d15565b600190509392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b81565b601281565b60035481565b60016020528060005260406000206000915090505481565b60046020528060005260406000206000915090505481565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610834338484610d15565b6001905092915050565b428410156108b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f556e697377617056323a2045585049524544000000000000000000000000000081525060200191505060405180910390fd5b60006003547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b898989600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558a604051602001808781526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182815260200196505050505050506040516020818303038152906040528051906020012060405160200180807f190100000000000000000000000000000000000000000000000000000000000081525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600060018286868660405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610a86573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610afa57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b610b6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f556e697377617056323a20494e56414c49445f5349474e41545552450000000081525060200191505060405180910390fd5b610b77898989610ba7565b505050505050505050565b6002602052816000526040600020602052806000526040600020600091509150505481565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6000828284039150811115610d0f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f64732d6d6174682d7375622d756e646572666c6f77000000000000000000000081525060200191505060405180910390fd5b92915050565b610d6781600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c9290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610dfc81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ea990919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000828284019150811015610f26576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d6d6174682d6164642d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b9291505056fea265627a7a72315820bb81c50344d41e3449df903181794b4002a33a9853538530e1b4ba781a137c6764736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429"; - -type UniswapV2ERC20ConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: UniswapV2ERC20ConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class UniswapV2ERC20__factory extends ContractFactory { - constructor(...args: UniswapV2ERC20ConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(overrides || {}); - } - override deploy(overrides?: NonPayableOverrides & { from?: string }) { - return super.deploy(overrides || {}) as Promise< - UniswapV2ERC20 & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): UniswapV2ERC20__factory { - return super.connect(runner) as UniswapV2ERC20__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): UniswapV2ERC20Interface { - return new Interface(_abi) as UniswapV2ERC20Interface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): UniswapV2ERC20 { - return new Contract(address, _abi, runner) as unknown as UniswapV2ERC20; - } -} diff --git a/typechain-types/factories/@uniswap/v2-core/contracts/UniswapV2Factory__factory.ts b/typechain-types/factories/@uniswap/v2-core/contracts/UniswapV2Factory__factory.ts deleted file mode 100644 index eefea196..00000000 --- a/typechain-types/factories/@uniswap/v2-core/contracts/UniswapV2Factory__factory.ts +++ /dev/null @@ -1,267 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { - Signer, - AddressLike, - ContractDeployTransaction, - ContractRunner, -} from "ethers"; -import type { NonPayableOverrides } from "../../../../common"; -import type { - UniswapV2Factory, - UniswapV2FactoryInterface, -} from "../../../../@uniswap/v2-core/contracts/UniswapV2Factory"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "_feeToSetter", - type: "address", - }, - ], - payable: false, - stateMutability: "nonpayable", - type: "constructor", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token0", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "token1", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "pair", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "PairCreated", - type: "event", - }, - { - constant: true, - inputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "allPairs", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: true, - inputs: [], - name: "allPairsLength", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: false, - inputs: [ - { - internalType: "address", - name: "tokenA", - type: "address", - }, - { - internalType: "address", - name: "tokenB", - type: "address", - }, - ], - name: "createPair", - outputs: [ - { - internalType: "address", - name: "pair", - type: "address", - }, - ], - payable: false, - stateMutability: "nonpayable", - type: "function", - }, - { - constant: true, - inputs: [], - name: "feeTo", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: true, - inputs: [], - name: "feeToSetter", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: true, - inputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "address", - name: "", - type: "address", - }, - ], - name: "getPair", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: false, - inputs: [ - { - internalType: "address", - name: "_feeTo", - type: "address", - }, - ], - name: "setFeeTo", - outputs: [], - payable: false, - stateMutability: "nonpayable", - type: "function", - }, - { - constant: false, - inputs: [ - { - internalType: "address", - name: "_feeToSetter", - type: "address", - }, - ], - name: "setFeeToSetter", - outputs: [], - payable: false, - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -const _bytecode = - "0x608060405234801561001057600080fd5b50604051614a45380380614a458339818101604052602081101561003357600080fd5b810190808051906020019092919050505080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506149b0806100956000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063a2e74af61161005b578063a2e74af6146101ad578063c9c65396146101f1578063e6a4390514610295578063f46901ed1461033957610088565b8063017e7e581461008d578063094b7415146100d75780631e3dd18b14610121578063574f2ba31461018f575b600080fd5b61009561037d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100df6103a2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61014d6004803603602081101561013757600080fd5b81019080803590602001909291905050506103c8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610197610404565b6040518082815260200191505060405180910390f35b6101ef600480360360208110156101c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610411565b005b6102536004803603604081101561020757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610518565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102f7600480360360408110156102ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bf5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61037b6004803603602081101561034f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c37565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600381815481106103d557fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600380549050905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f556e697377617056323a20464f5242494444454e00000000000000000000000081525060200191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156105bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f556e697377617056323a204944454e544943414c5f414444524553534553000081525060200191505060405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16106105f95783856105fc565b84845b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156106a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f556e697377617056323a205a45524f5f4144445245535300000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f556e697377617056323a20504149525f4558495354530000000000000000000081525060200191505060405180910390fd5b6060604051806020016107f390610d3d565b6020820181038252601f19601f82011660405250905060008383604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140192505050604051602081830303815290604052805190602001209050808251602084016000f594508473ffffffffffffffffffffffffffffffffffffffff1663485cc95585856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15801561095957600080fd5b505af115801561096d573d6000803e3d6000fd5b5050505084600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060038590806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e987600380549050604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a35050505092915050565b60026020528160005260406000206020528060005260406000206000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cfa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f556e697377617056323a20464f5242494444454e00000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b613c3180610d4b8339019056fe60806040526001600c5534801561001557600080fd5b5060004690506040518080613bdf60529139605201905060405180910390206040518060400160405280600a81526020017f556e697377617020563200000000000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001208330604051602001808681526020018581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200195505050505050604051602081830303815290604052805190602001206003819055505033600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613a6a806101756000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146108c4578063d505accf1461090e578063dd62ed3e146109a7578063fff6cae914610a1f576101a9565b8063ba9a7a5614610818578063bc25cf7714610836578063c45a01551461087a576101a9565b80637ecebe00116100d35780637ecebe001461067857806389afcb44146106d057806395d89b411461072f578063a9059cbb146107b2576101a9565b80636a627842146105aa57806370a08231146106025780637464fc3d1461065a576101a9565b806323b872dd116101665780633644e515116101405780633644e515146104ec578063485cc9551461050a5780635909c0d51461056e5780635a3d54931461058c576101a9565b806323b872dd1461042457806330adf81f146104aa578063313ce567146104c8576101a9565b8063022c0d9f146101ae57806306fdde031461025b5780630902f1ac146102de578063095ea7b3146103565780630dfe1681146103bc57806318160ddd14610406575b600080fd5b610259600480360360808110156101c457600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561021557600080fd5b82018360208201111561022757600080fd5b8035906020019184600183028401116401000000008311171561024957600080fd5b9091929391929390505050610a29565b005b610263611216565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102a3578082015181840152602081019050610288565b50505050905090810190601f1680156102d05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102e661124f565b60405180846dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168152602001836dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff1681526020018263ffffffff1663ffffffff168152602001935050505060405180910390f35b6103a26004803603604081101561036c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112ac565b604051808215151515815260200191505060405180910390f35b6103c46112c3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61040e6112e9565b6040518082815260200191505060405180910390f35b6104906004803603606081101561043a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112ef565b604051808215151515815260200191505060405180910390f35b6104b26114ba565b6040518082815260200191505060405180910390f35b6104d06114e1565b604051808260ff1660ff16815260200191505060405180910390f35b6104f46114e6565b6040518082815260200191505060405180910390f35b61056c6004803603604081101561052057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114ec565b005b610576611635565b6040518082815260200191505060405180910390f35b61059461163b565b6040518082815260200191505060405180910390f35b6105ec600480360360208110156105c057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611641565b6040518082815260200191505060405180910390f35b6106446004803603602081101561061857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611af2565b6040518082815260200191505060405180910390f35b610662611b0a565b6040518082815260200191505060405180910390f35b6106ba6004803603602081101561068e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b10565b6040518082815260200191505060405180910390f35b610712600480360360208110156106e657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b28565b604051808381526020018281526020019250505060405180910390f35b610737612115565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561077757808201518184015260208101905061075c565b50505050905090810190601f1680156107a45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107fe600480360360408110156107c857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061214e565b604051808215151515815260200191505060405180910390f35b610820612165565b6040518082815260200191505060405180910390f35b6108786004803603602081101561084c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061216b565b005b610882612446565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108cc61246c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6109a5600480360360e081101561092457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803560ff1690602001909291908035906020019092919080359060200190929190505050612492565b005b610a09600480360360408110156109bd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506127d6565b6040518082815260200191505060405180910390f35b610a276127fb565b005b6001600c5414610aa1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f556e697377617056323a204c4f434b454400000000000000000000000000000081525060200191505060405180910390fd5b6000600c819055506000851180610ab85750600084115b610b0d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061397c6025913960400191505060405180910390fd5b600080610b1861124f565b5091509150816dffffffffffffffffffffffffffff1687108015610b4b5750806dffffffffffffffffffffffffffff1686105b610ba0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806139c56021913960400191505060405180910390fd5b6000806000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508173ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614158015610c5957508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b610ccb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f556e697377617056323a20494e56414c49445f544f000000000000000000000081525060200191505060405180910390fd5b60008b1115610ce057610cdf828a8d612a7b565b5b60008a1115610cf557610cf4818a8c612a7b565b5b6000888890501115610ddd578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b158015610dc457600080fd5b505af1158015610dd8573d6000803e3d6000fd5b505050505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610e5a57600080fd5b505afa158015610e6e573d6000803e3d6000fd5b505050506040513d6020811015610e8457600080fd5b810190808051906020019092919050505093508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610f1457600080fd5b505afa158015610f28573d6000803e3d6000fd5b505050506040513d6020811015610f3e57600080fd5b810190808051906020019092919050505092505050600089856dffffffffffffffffffffffffffff16038311610f75576000610f8b565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610faf576000610fc5565b89856dffffffffffffffffffffffffffff160383035b90506000821180610fd65750600081115b61102b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806139a16024913960400191505060405180910390fd5b6000611067611044600385612cc890919063ffffffff16565b6110596103e888612cc890919063ffffffff16565b612d5d90919063ffffffff16565b905060006110a5611082600385612cc890919063ffffffff16565b6110976103e888612cc890919063ffffffff16565b612d5d90919063ffffffff16565b90506110ef620f42406110e1896dffffffffffffffffffffffffffff168b6dffffffffffffffffffffffffffff16612cc890919063ffffffff16565b612cc890919063ffffffff16565b6111028284612cc890919063ffffffff16565b1015611176576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f556e697377617056323a204b000000000000000000000000000000000000000081525060200191505060405180910390fd5b505061118484848888612de0565b8873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d82284848f8f6040518085815260200184815260200183815260200182815260200194505050505060405180910390a35050505050506001600c819055505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6000806000600860009054906101000a90046dffffffffffffffffffffffffffff1692506008600e9054906101000a90046dffffffffffffffffffffffffffff1691506008601c9054906101000a900463ffffffff169050909192565b60006112b933848461315e565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146114a45761142382600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d5d90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6114af848484613249565b600190509392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b81565b601281565b60035481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f556e697377617056323a20464f5242494444454e00000000000000000000000081525060200191505060405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60095481565b600a5481565b60006001600c54146116bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f556e697377617056323a204c4f434b454400000000000000000000000000000081525060200191505060405180910390fd5b6000600c819055506000806116ce61124f565b50915091506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561177457600080fd5b505afa158015611788573d6000803e3d6000fd5b505050506040513d602081101561179e57600080fd5b810190808051906020019092919050505090506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561185257600080fd5b505afa158015611866573d6000803e3d6000fd5b505050506040513d602081101561187c57600080fd5b8101908080519060200190929190505050905060006118b4856dffffffffffffffffffffffffffff1684612d5d90919063ffffffff16565b905060006118db856dffffffffffffffffffffffffffff1684612d5d90919063ffffffff16565b905060006118e987876133dd565b9050600080549050600081141561193d576119296103e861191b6119168688612cc890919063ffffffff16565b6135be565b612d5d90919063ffffffff16565b985061193860006103e8613620565b6119a0565b61199d886dffffffffffffffffffffffffffff166119648387612cc890919063ffffffff16565b8161196b57fe5b04886dffffffffffffffffffffffffffff166119908487612cc890919063ffffffff16565b8161199757fe5b0461373a565b98505b600089116119f9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180613a0e6028913960400191505060405180910390fd5b611a038a8a613620565b611a0f86868a8a612de0565b8115611a8757611a806008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff16600860009054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff16612cc890919063ffffffff16565b600b819055505b3373ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f8585604051808381526020018281526020019250505060405180910390a250505050505050506001600c81905550919050565b60016020528060005260406000206000915090505481565b600b5481565b60046020528060005260406000206000915090505481565b6000806001600c5414611ba3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f556e697377617056323a204c4f434b454400000000000000000000000000000081525060200191505060405180910390fd5b6000600c81905550600080611bb661124f565b50915091506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611c8857600080fd5b505afa158015611c9c573d6000803e3d6000fd5b505050506040513d6020811015611cb257600080fd5b8101908080519060200190929190505050905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611d4457600080fd5b505afa158015611d58573d6000803e3d6000fd5b505050506040513d6020811015611d6e57600080fd5b810190808051906020019092919050505090506000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000611dd188886133dd565b905060008054905080611ded8685612cc890919063ffffffff16565b81611df457fe5b049a5080611e0b8585612cc890919063ffffffff16565b81611e1257fe5b04995060008b118015611e25575060008a115b611e7a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806139e66028913960400191505060405180910390fd5b611e843084613753565b611e8f878d8d612a7b565b611e9a868d8c612a7b565b8673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611f1757600080fd5b505afa158015611f2b573d6000803e3d6000fd5b505050506040513d6020811015611f4157600080fd5b810190808051906020019092919050505094508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611fd157600080fd5b505afa158015611fe5573d6000803e3d6000fd5b505050506040513d6020811015611ffb57600080fd5b8101908080519060200190929190505050935061201a85858b8b612de0565b81156120925761208b6008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff16600860009054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff16612cc890919063ffffffff16565b600b819055505b8b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d819364968d8d604051808381526020018281526020019250505060405180910390a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b600061215b338484613249565b6001905092915050565b6103e881565b6001600c54146121e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f556e697377617056323a204c4f434b454400000000000000000000000000000081525060200191505060405180910390fd5b6000600c819055506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506123398284612334600860009054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156122eb57600080fd5b505afa1580156122ff573d6000803e3d6000fd5b505050506040513d602081101561231557600080fd5b8101908080519060200190929190505050612d5d90919063ffffffff16565b612a7b565b61243981846124346008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156123eb57600080fd5b505afa1580156123ff573d6000803e3d6000fd5b505050506040513d602081101561241557600080fd5b8101908080519060200190929190505050612d5d90919063ffffffff16565b612a7b565b50506001600c8190555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b42841015612508576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f556e697377617056323a2045585049524544000000000000000000000000000081525060200191505060405180910390fd5b60006003547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b898989600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558a604051602001808781526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182815260200196505050505050506040516020818303038152906040528051906020012060405160200180807f190100000000000000000000000000000000000000000000000000000000000081525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600060018286868660405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156126da573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561274e57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6127c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f556e697377617056323a20494e56414c49445f5349474e41545552450000000081525060200191505060405180910390fd5b6127cb89898961315e565b505050505050505050565b6002602052816000526040600020602052806000526040600020600091509150505481565b6001600c5414612873576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f556e697377617056323a204c4f434b454400000000000000000000000000000081525060200191505060405180910390fd5b6000600c81905550612a71600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561291d57600080fd5b505afa158015612931573d6000803e3d6000fd5b505050506040513d602081101561294757600080fd5b8101908080519060200190929190505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156129f757600080fd5b505afa158015612a0b573d6000803e3d6000fd5b505050506040513d6020811015612a2157600080fd5b8101908080519060200190929190505050600860009054906101000a90046dffffffffffffffffffffffffffff166008600e9054906101000a90046dffffffffffffffffffffffffffff16612de0565b6001600c81905550565b600060608473ffffffffffffffffffffffffffffffffffffffff166040518060400160405280601981526020017f7472616e7366657228616464726573732c75696e743235362900000000000000815250805190602001208585604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b60208310612ba85780518252602082019150602081019050602083039250612b85565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612c0a576040519150601f19603f3d011682016040523d82523d6000602084013e612c0f565b606091505b5091509150818015612c4f5750600081511480612c4e5750808060200190516020811015612c3c57600080fd5b81019080805190602001909291905050505b5b612cc1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f556e697377617056323a205452414e534645525f4641494c454400000000000081525060200191505060405180910390fd5b5050505050565b600080821480612ce55750828283850292508281612ce257fe5b04145b612d57576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d6d6174682d6d756c2d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b92915050565b6000828284039150811115612dda576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f64732d6d6174682d7375622d756e646572666c6f77000000000000000000000081525060200191505060405180910390fd5b92915050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6dffffffffffffffffffffffffffff168411158015612e5057507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6dffffffffffffffffffffffffffff168311155b612ec2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f556e697377617056323a204f564552464c4f570000000000000000000000000081525060200191505060405180910390fd5b60006401000000004281612ed257fe5b06905060006008601c9054906101000a900463ffffffff168203905060008163ffffffff16118015612f1557506000846dffffffffffffffffffffffffffff1614155b8015612f3257506000836dffffffffffffffffffffffffffff1614155b15613014578063ffffffff16612f7785612f4b8661386d565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1661389890919063ffffffff16565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16026009600082825401925050819055508063ffffffff16612fe584612fb98761386d565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1661389890919063ffffffff16565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1602600a600082825401925050819055505b85600860006101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550846008600e6101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550816008601c6101000a81548163ffffffff021916908363ffffffff1602179055507f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1600860009054906101000a90046dffffffffffffffffffffffffffff166008600e9054906101000a90046dffffffffffffffffffffffffffff1660405180836dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168152602001826dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff1681526020019250505060405180910390a1505050505050565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b61329b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d5d90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061333081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138f890919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561344857600080fd5b505afa15801561345c573d6000803e3d6000fd5b505050506040513d602081101561347257600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141591506000600b54905082156135a4576000811461359f57600061350a613505866dffffffffffffffffffffffffffff16886dffffffffffffffffffffffffffff16612cc890919063ffffffff16565b6135be565b90506000613517836135be565b90508082111561359c57600061354a6135398385612d5d90919063ffffffff16565b600054612cc890919063ffffffff16565b9050600061357483613566600587612cc890919063ffffffff16565b6138f890919063ffffffff16565b9050600081838161358157fe5b0490506000811115613598576135978782613620565b5b5050505b50505b6135b6565b600081146135b5576000600b819055505b5b505092915050565b6000600382111561360d5781905060006001600284816135da57fe5b040190505b81811015613607578091506002818285816135f657fe5b0401816135ff57fe5b0490506135df565b5061361b565b6000821461361a57600190505b5b919050565b613635816000546138f890919063ffffffff16565b60008190555061368d81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138f890919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000818310613749578161374b565b825b905092915050565b6137a581600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d5d90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506137fd81600054612d5d90919063ffffffff16565b600081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60006e010000000000000000000000000000826dffffffffffffffffffffffffffff16029050919050565b6000816dffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16816138ef57fe5b04905092915050565b6000828284019150811015613975576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d6d6174682d6164642d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b9291505056fe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a72315820d73fdbcccccd43e1f8c235d4c31a0ea1f34258192718d2a0d44bf361e873c1b864736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429a265627a7a72315820d4a1f9eb6f94616adf2482bb5f0b190a86900cdb580d4b27a7940e754ea8d09064736f6c63430005100032"; - -type UniswapV2FactoryConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: UniswapV2FactoryConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class UniswapV2Factory__factory extends ContractFactory { - constructor(...args: UniswapV2FactoryConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - _feeToSetter: AddressLike, - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(_feeToSetter, overrides || {}); - } - override deploy( - _feeToSetter: AddressLike, - overrides?: NonPayableOverrides & { from?: string } - ) { - return super.deploy(_feeToSetter, overrides || {}) as Promise< - UniswapV2Factory & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): UniswapV2Factory__factory { - return super.connect(runner) as UniswapV2Factory__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): UniswapV2FactoryInterface { - return new Interface(_abi) as UniswapV2FactoryInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): UniswapV2Factory { - return new Contract(address, _abi, runner) as unknown as UniswapV2Factory; - } -} diff --git a/typechain-types/factories/@uniswap/v2-core/contracts/UniswapV2Pair__factory.ts b/typechain-types/factories/@uniswap/v2-core/contracts/UniswapV2Pair__factory.ts deleted file mode 100644 index ff7a6021..00000000 --- a/typechain-types/factories/@uniswap/v2-core/contracts/UniswapV2Pair__factory.ts +++ /dev/null @@ -1,778 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; -import type { NonPayableOverrides } from "../../../../common"; -import type { - UniswapV2Pair, - UniswapV2PairInterface, -} from "../../../../@uniswap/v2-core/contracts/UniswapV2Pair"; - -const _abi = [ - { - inputs: [], - payable: false, - stateMutability: "nonpayable", - type: "constructor", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "spender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount0", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "amount1", - type: "uint256", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - ], - name: "Burn", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount0", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "amount1", - type: "uint256", - }, - ], - name: "Mint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount0In", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "amount1In", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "amount0Out", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "amount1Out", - type: "uint256", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - ], - name: "Swap", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint112", - name: "reserve0", - type: "uint112", - }, - { - indexed: false, - internalType: "uint112", - name: "reserve1", - type: "uint112", - }, - ], - name: "Sync", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - constant: true, - inputs: [], - name: "DOMAIN_SEPARATOR", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: true, - inputs: [], - name: "MINIMUM_LIQUIDITY", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: true, - inputs: [], - name: "PERMIT_TYPEHASH", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: true, - inputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "address", - name: "", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: false, - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - payable: false, - stateMutability: "nonpayable", - type: "function", - }, - { - constant: true, - inputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: false, - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - ], - name: "burn", - outputs: [ - { - internalType: "uint256", - name: "amount0", - type: "uint256", - }, - { - internalType: "uint256", - name: "amount1", - type: "uint256", - }, - ], - payable: false, - stateMutability: "nonpayable", - type: "function", - }, - { - constant: true, - inputs: [], - name: "decimals", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: true, - inputs: [], - name: "factory", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: true, - inputs: [], - name: "getReserves", - outputs: [ - { - internalType: "uint112", - name: "_reserve0", - type: "uint112", - }, - { - internalType: "uint112", - name: "_reserve1", - type: "uint112", - }, - { - internalType: "uint32", - name: "_blockTimestampLast", - type: "uint32", - }, - ], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: false, - inputs: [ - { - internalType: "address", - name: "_token0", - type: "address", - }, - { - internalType: "address", - name: "_token1", - type: "address", - }, - ], - name: "initialize", - outputs: [], - payable: false, - stateMutability: "nonpayable", - type: "function", - }, - { - constant: true, - inputs: [], - name: "kLast", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: false, - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - ], - name: "mint", - outputs: [ - { - internalType: "uint256", - name: "liquidity", - type: "uint256", - }, - ], - payable: false, - stateMutability: "nonpayable", - type: "function", - }, - { - constant: true, - inputs: [], - name: "name", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: true, - inputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - name: "nonces", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: false, - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - { - internalType: "uint8", - name: "v", - type: "uint8", - }, - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "s", - type: "bytes32", - }, - ], - name: "permit", - outputs: [], - payable: false, - stateMutability: "nonpayable", - type: "function", - }, - { - constant: true, - inputs: [], - name: "price0CumulativeLast", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: true, - inputs: [], - name: "price1CumulativeLast", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: false, - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - ], - name: "skim", - outputs: [], - payable: false, - stateMutability: "nonpayable", - type: "function", - }, - { - constant: false, - inputs: [ - { - internalType: "uint256", - name: "amount0Out", - type: "uint256", - }, - { - internalType: "uint256", - name: "amount1Out", - type: "uint256", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "swap", - outputs: [], - payable: false, - stateMutability: "nonpayable", - type: "function", - }, - { - constant: true, - inputs: [], - name: "symbol", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: false, - inputs: [], - name: "sync", - outputs: [], - payable: false, - stateMutability: "nonpayable", - type: "function", - }, - { - constant: true, - inputs: [], - name: "token0", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: true, - inputs: [], - name: "token1", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: true, - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: false, - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - payable: false, - stateMutability: "nonpayable", - type: "function", - }, - { - constant: false, - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - payable: false, - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -const _bytecode = - "0x60806040526001600c5534801561001557600080fd5b5060004690506040518080613bdf60529139605201905060405180910390206040518060400160405280600a81526020017f556e697377617020563200000000000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001208330604051602001808681526020018581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200195505050505050604051602081830303815290604052805190602001206003819055505033600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613a6a806101756000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146108c4578063d505accf1461090e578063dd62ed3e146109a7578063fff6cae914610a1f576101a9565b8063ba9a7a5614610818578063bc25cf7714610836578063c45a01551461087a576101a9565b80637ecebe00116100d35780637ecebe001461067857806389afcb44146106d057806395d89b411461072f578063a9059cbb146107b2576101a9565b80636a627842146105aa57806370a08231146106025780637464fc3d1461065a576101a9565b806323b872dd116101665780633644e515116101405780633644e515146104ec578063485cc9551461050a5780635909c0d51461056e5780635a3d54931461058c576101a9565b806323b872dd1461042457806330adf81f146104aa578063313ce567146104c8576101a9565b8063022c0d9f146101ae57806306fdde031461025b5780630902f1ac146102de578063095ea7b3146103565780630dfe1681146103bc57806318160ddd14610406575b600080fd5b610259600480360360808110156101c457600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561021557600080fd5b82018360208201111561022757600080fd5b8035906020019184600183028401116401000000008311171561024957600080fd5b9091929391929390505050610a29565b005b610263611216565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102a3578082015181840152602081019050610288565b50505050905090810190601f1680156102d05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102e661124f565b60405180846dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168152602001836dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff1681526020018263ffffffff1663ffffffff168152602001935050505060405180910390f35b6103a26004803603604081101561036c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112ac565b604051808215151515815260200191505060405180910390f35b6103c46112c3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61040e6112e9565b6040518082815260200191505060405180910390f35b6104906004803603606081101561043a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112ef565b604051808215151515815260200191505060405180910390f35b6104b26114ba565b6040518082815260200191505060405180910390f35b6104d06114e1565b604051808260ff1660ff16815260200191505060405180910390f35b6104f46114e6565b6040518082815260200191505060405180910390f35b61056c6004803603604081101561052057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114ec565b005b610576611635565b6040518082815260200191505060405180910390f35b61059461163b565b6040518082815260200191505060405180910390f35b6105ec600480360360208110156105c057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611641565b6040518082815260200191505060405180910390f35b6106446004803603602081101561061857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611af2565b6040518082815260200191505060405180910390f35b610662611b0a565b6040518082815260200191505060405180910390f35b6106ba6004803603602081101561068e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b10565b6040518082815260200191505060405180910390f35b610712600480360360208110156106e657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b28565b604051808381526020018281526020019250505060405180910390f35b610737612115565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561077757808201518184015260208101905061075c565b50505050905090810190601f1680156107a45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107fe600480360360408110156107c857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061214e565b604051808215151515815260200191505060405180910390f35b610820612165565b6040518082815260200191505060405180910390f35b6108786004803603602081101561084c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061216b565b005b610882612446565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108cc61246c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6109a5600480360360e081101561092457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803560ff1690602001909291908035906020019092919080359060200190929190505050612492565b005b610a09600480360360408110156109bd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506127d6565b6040518082815260200191505060405180910390f35b610a276127fb565b005b6001600c5414610aa1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f556e697377617056323a204c4f434b454400000000000000000000000000000081525060200191505060405180910390fd5b6000600c819055506000851180610ab85750600084115b610b0d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061397c6025913960400191505060405180910390fd5b600080610b1861124f565b5091509150816dffffffffffffffffffffffffffff1687108015610b4b5750806dffffffffffffffffffffffffffff1686105b610ba0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806139c56021913960400191505060405180910390fd5b6000806000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508173ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614158015610c5957508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b610ccb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f556e697377617056323a20494e56414c49445f544f000000000000000000000081525060200191505060405180910390fd5b60008b1115610ce057610cdf828a8d612a7b565b5b60008a1115610cf557610cf4818a8c612a7b565b5b6000888890501115610ddd578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b158015610dc457600080fd5b505af1158015610dd8573d6000803e3d6000fd5b505050505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610e5a57600080fd5b505afa158015610e6e573d6000803e3d6000fd5b505050506040513d6020811015610e8457600080fd5b810190808051906020019092919050505093508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610f1457600080fd5b505afa158015610f28573d6000803e3d6000fd5b505050506040513d6020811015610f3e57600080fd5b810190808051906020019092919050505092505050600089856dffffffffffffffffffffffffffff16038311610f75576000610f8b565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610faf576000610fc5565b89856dffffffffffffffffffffffffffff160383035b90506000821180610fd65750600081115b61102b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806139a16024913960400191505060405180910390fd5b6000611067611044600385612cc890919063ffffffff16565b6110596103e888612cc890919063ffffffff16565b612d5d90919063ffffffff16565b905060006110a5611082600385612cc890919063ffffffff16565b6110976103e888612cc890919063ffffffff16565b612d5d90919063ffffffff16565b90506110ef620f42406110e1896dffffffffffffffffffffffffffff168b6dffffffffffffffffffffffffffff16612cc890919063ffffffff16565b612cc890919063ffffffff16565b6111028284612cc890919063ffffffff16565b1015611176576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f556e697377617056323a204b000000000000000000000000000000000000000081525060200191505060405180910390fd5b505061118484848888612de0565b8873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d82284848f8f6040518085815260200184815260200183815260200182815260200194505050505060405180910390a35050505050506001600c819055505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6000806000600860009054906101000a90046dffffffffffffffffffffffffffff1692506008600e9054906101000a90046dffffffffffffffffffffffffffff1691506008601c9054906101000a900463ffffffff169050909192565b60006112b933848461315e565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146114a45761142382600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d5d90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6114af848484613249565b600190509392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b81565b601281565b60035481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f556e697377617056323a20464f5242494444454e00000000000000000000000081525060200191505060405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60095481565b600a5481565b60006001600c54146116bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f556e697377617056323a204c4f434b454400000000000000000000000000000081525060200191505060405180910390fd5b6000600c819055506000806116ce61124f565b50915091506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561177457600080fd5b505afa158015611788573d6000803e3d6000fd5b505050506040513d602081101561179e57600080fd5b810190808051906020019092919050505090506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561185257600080fd5b505afa158015611866573d6000803e3d6000fd5b505050506040513d602081101561187c57600080fd5b8101908080519060200190929190505050905060006118b4856dffffffffffffffffffffffffffff1684612d5d90919063ffffffff16565b905060006118db856dffffffffffffffffffffffffffff1684612d5d90919063ffffffff16565b905060006118e987876133dd565b9050600080549050600081141561193d576119296103e861191b6119168688612cc890919063ffffffff16565b6135be565b612d5d90919063ffffffff16565b985061193860006103e8613620565b6119a0565b61199d886dffffffffffffffffffffffffffff166119648387612cc890919063ffffffff16565b8161196b57fe5b04886dffffffffffffffffffffffffffff166119908487612cc890919063ffffffff16565b8161199757fe5b0461373a565b98505b600089116119f9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180613a0e6028913960400191505060405180910390fd5b611a038a8a613620565b611a0f86868a8a612de0565b8115611a8757611a806008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff16600860009054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff16612cc890919063ffffffff16565b600b819055505b3373ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f8585604051808381526020018281526020019250505060405180910390a250505050505050506001600c81905550919050565b60016020528060005260406000206000915090505481565b600b5481565b60046020528060005260406000206000915090505481565b6000806001600c5414611ba3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f556e697377617056323a204c4f434b454400000000000000000000000000000081525060200191505060405180910390fd5b6000600c81905550600080611bb661124f565b50915091506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611c8857600080fd5b505afa158015611c9c573d6000803e3d6000fd5b505050506040513d6020811015611cb257600080fd5b8101908080519060200190929190505050905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611d4457600080fd5b505afa158015611d58573d6000803e3d6000fd5b505050506040513d6020811015611d6e57600080fd5b810190808051906020019092919050505090506000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000611dd188886133dd565b905060008054905080611ded8685612cc890919063ffffffff16565b81611df457fe5b049a5080611e0b8585612cc890919063ffffffff16565b81611e1257fe5b04995060008b118015611e25575060008a115b611e7a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806139e66028913960400191505060405180910390fd5b611e843084613753565b611e8f878d8d612a7b565b611e9a868d8c612a7b565b8673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611f1757600080fd5b505afa158015611f2b573d6000803e3d6000fd5b505050506040513d6020811015611f4157600080fd5b810190808051906020019092919050505094508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611fd157600080fd5b505afa158015611fe5573d6000803e3d6000fd5b505050506040513d6020811015611ffb57600080fd5b8101908080519060200190929190505050935061201a85858b8b612de0565b81156120925761208b6008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff16600860009054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff16612cc890919063ffffffff16565b600b819055505b8b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d819364968d8d604051808381526020018281526020019250505060405180910390a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b600061215b338484613249565b6001905092915050565b6103e881565b6001600c54146121e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f556e697377617056323a204c4f434b454400000000000000000000000000000081525060200191505060405180910390fd5b6000600c819055506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506123398284612334600860009054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156122eb57600080fd5b505afa1580156122ff573d6000803e3d6000fd5b505050506040513d602081101561231557600080fd5b8101908080519060200190929190505050612d5d90919063ffffffff16565b612a7b565b61243981846124346008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156123eb57600080fd5b505afa1580156123ff573d6000803e3d6000fd5b505050506040513d602081101561241557600080fd5b8101908080519060200190929190505050612d5d90919063ffffffff16565b612a7b565b50506001600c8190555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b42841015612508576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f556e697377617056323a2045585049524544000000000000000000000000000081525060200191505060405180910390fd5b60006003547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b898989600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558a604051602001808781526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182815260200196505050505050506040516020818303038152906040528051906020012060405160200180807f190100000000000000000000000000000000000000000000000000000000000081525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600060018286868660405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156126da573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561274e57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6127c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f556e697377617056323a20494e56414c49445f5349474e41545552450000000081525060200191505060405180910390fd5b6127cb89898961315e565b505050505050505050565b6002602052816000526040600020602052806000526040600020600091509150505481565b6001600c5414612873576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f556e697377617056323a204c4f434b454400000000000000000000000000000081525060200191505060405180910390fd5b6000600c81905550612a71600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561291d57600080fd5b505afa158015612931573d6000803e3d6000fd5b505050506040513d602081101561294757600080fd5b8101908080519060200190929190505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156129f757600080fd5b505afa158015612a0b573d6000803e3d6000fd5b505050506040513d6020811015612a2157600080fd5b8101908080519060200190929190505050600860009054906101000a90046dffffffffffffffffffffffffffff166008600e9054906101000a90046dffffffffffffffffffffffffffff16612de0565b6001600c81905550565b600060608473ffffffffffffffffffffffffffffffffffffffff166040518060400160405280601981526020017f7472616e7366657228616464726573732c75696e743235362900000000000000815250805190602001208585604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b60208310612ba85780518252602082019150602081019050602083039250612b85565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612c0a576040519150601f19603f3d011682016040523d82523d6000602084013e612c0f565b606091505b5091509150818015612c4f5750600081511480612c4e5750808060200190516020811015612c3c57600080fd5b81019080805190602001909291905050505b5b612cc1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f556e697377617056323a205452414e534645525f4641494c454400000000000081525060200191505060405180910390fd5b5050505050565b600080821480612ce55750828283850292508281612ce257fe5b04145b612d57576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d6d6174682d6d756c2d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b92915050565b6000828284039150811115612dda576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f64732d6d6174682d7375622d756e646572666c6f77000000000000000000000081525060200191505060405180910390fd5b92915050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6dffffffffffffffffffffffffffff168411158015612e5057507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6dffffffffffffffffffffffffffff168311155b612ec2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f556e697377617056323a204f564552464c4f570000000000000000000000000081525060200191505060405180910390fd5b60006401000000004281612ed257fe5b06905060006008601c9054906101000a900463ffffffff168203905060008163ffffffff16118015612f1557506000846dffffffffffffffffffffffffffff1614155b8015612f3257506000836dffffffffffffffffffffffffffff1614155b15613014578063ffffffff16612f7785612f4b8661386d565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1661389890919063ffffffff16565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16026009600082825401925050819055508063ffffffff16612fe584612fb98761386d565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1661389890919063ffffffff16565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1602600a600082825401925050819055505b85600860006101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550846008600e6101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550816008601c6101000a81548163ffffffff021916908363ffffffff1602179055507f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1600860009054906101000a90046dffffffffffffffffffffffffffff166008600e9054906101000a90046dffffffffffffffffffffffffffff1660405180836dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168152602001826dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff1681526020019250505060405180910390a1505050505050565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b61329b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d5d90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061333081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138f890919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561344857600080fd5b505afa15801561345c573d6000803e3d6000fd5b505050506040513d602081101561347257600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141591506000600b54905082156135a4576000811461359f57600061350a613505866dffffffffffffffffffffffffffff16886dffffffffffffffffffffffffffff16612cc890919063ffffffff16565b6135be565b90506000613517836135be565b90508082111561359c57600061354a6135398385612d5d90919063ffffffff16565b600054612cc890919063ffffffff16565b9050600061357483613566600587612cc890919063ffffffff16565b6138f890919063ffffffff16565b9050600081838161358157fe5b0490506000811115613598576135978782613620565b5b5050505b50505b6135b6565b600081146135b5576000600b819055505b5b505092915050565b6000600382111561360d5781905060006001600284816135da57fe5b040190505b81811015613607578091506002818285816135f657fe5b0401816135ff57fe5b0490506135df565b5061361b565b6000821461361a57600190505b5b919050565b613635816000546138f890919063ffffffff16565b60008190555061368d81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138f890919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000818310613749578161374b565b825b905092915050565b6137a581600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d5d90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506137fd81600054612d5d90919063ffffffff16565b600081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60006e010000000000000000000000000000826dffffffffffffffffffffffffffff16029050919050565b6000816dffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16816138ef57fe5b04905092915050565b6000828284019150811015613975576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d6d6174682d6164642d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b9291505056fe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a72315820d73fdbcccccd43e1f8c235d4c31a0ea1f34258192718d2a0d44bf361e873c1b864736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429"; - -type UniswapV2PairConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: UniswapV2PairConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class UniswapV2Pair__factory extends ContractFactory { - constructor(...args: UniswapV2PairConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(overrides || {}); - } - override deploy(overrides?: NonPayableOverrides & { from?: string }) { - return super.deploy(overrides || {}) as Promise< - UniswapV2Pair & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): UniswapV2Pair__factory { - return super.connect(runner) as UniswapV2Pair__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): UniswapV2PairInterface { - return new Interface(_abi) as UniswapV2PairInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): UniswapV2Pair { - return new Contract(address, _abi, runner) as unknown as UniswapV2Pair; - } -} diff --git a/typechain-types/factories/@uniswap/v2-core/contracts/index.ts b/typechain-types/factories/@uniswap/v2-core/contracts/index.ts deleted file mode 100644 index 9cb649b2..00000000 --- a/typechain-types/factories/@uniswap/v2-core/contracts/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as interfaces from "./interfaces"; -export { UniswapV2ERC20__factory } from "./UniswapV2ERC20__factory"; -export { UniswapV2Factory__factory } from "./UniswapV2Factory__factory"; -export { UniswapV2Pair__factory } from "./UniswapV2Pair__factory"; diff --git a/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IERC20__factory.ts b/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IERC20__factory.ts deleted file mode 100644 index a12c239c..00000000 --- a/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IERC20__factory.ts +++ /dev/null @@ -1,244 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IERC20, - IERC20Interface, -} from "../../../../../@uniswap/v2-core/contracts/interfaces/IERC20"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "spender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "decimals", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "name", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "symbol", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class IERC20__factory { - static readonly abi = _abi; - static createInterface(): IERC20Interface { - return new Interface(_abi) as IERC20Interface; - } - static connect(address: string, runner?: ContractRunner | null): IERC20 { - return new Contract(address, _abi, runner) as unknown as IERC20; - } -} diff --git a/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Callee__factory.ts b/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Callee__factory.ts deleted file mode 100644 index ce1b23de..00000000 --- a/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Callee__factory.ts +++ /dev/null @@ -1,53 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IUniswapV2Callee, - IUniswapV2CalleeInterface, -} from "../../../../../@uniswap/v2-core/contracts/interfaces/IUniswapV2Callee"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "uint256", - name: "amount0", - type: "uint256", - }, - { - internalType: "uint256", - name: "amount1", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "uniswapV2Call", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class IUniswapV2Callee__factory { - static readonly abi = _abi; - static createInterface(): IUniswapV2CalleeInterface { - return new Interface(_abi) as IUniswapV2CalleeInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): IUniswapV2Callee { - return new Contract(address, _abi, runner) as unknown as IUniswapV2Callee; - } -} diff --git a/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2ERC20__factory.ts b/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2ERC20__factory.ts deleted file mode 100644 index 93a16b95..00000000 --- a/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2ERC20__factory.ts +++ /dev/null @@ -1,335 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IUniswapV2ERC20, - IUniswapV2ERC20Interface, -} from "../../../../../@uniswap/v2-core/contracts/interfaces/IUniswapV2ERC20"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "spender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - inputs: [], - name: "DOMAIN_SEPARATOR", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "PERMIT_TYPEHASH", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "decimals", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [], - name: "name", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - ], - name: "nonces", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - { - internalType: "uint8", - name: "v", - type: "uint8", - }, - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "s", - type: "bytes32", - }, - ], - name: "permit", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "symbol", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class IUniswapV2ERC20__factory { - static readonly abi = _abi; - static createInterface(): IUniswapV2ERC20Interface { - return new Interface(_abi) as IUniswapV2ERC20Interface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): IUniswapV2ERC20 { - return new Contract(address, _abi, runner) as unknown as IUniswapV2ERC20; - } -} diff --git a/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory__factory.ts b/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory__factory.ts deleted file mode 100644 index 89a77ec9..00000000 --- a/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory__factory.ts +++ /dev/null @@ -1,188 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IUniswapV2Factory, - IUniswapV2FactoryInterface, -} from "../../../../../@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token0", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "token1", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "pair", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "PairCreated", - type: "event", - }, - { - inputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "allPairs", - outputs: [ - { - internalType: "address", - name: "pair", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "allPairsLength", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "tokenA", - type: "address", - }, - { - internalType: "address", - name: "tokenB", - type: "address", - }, - ], - name: "createPair", - outputs: [ - { - internalType: "address", - name: "pair", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "feeTo", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "feeToSetter", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "tokenA", - type: "address", - }, - { - internalType: "address", - name: "tokenB", - type: "address", - }, - ], - name: "getPair", - outputs: [ - { - internalType: "address", - name: "pair", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - name: "setFeeTo", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - name: "setFeeToSetter", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class IUniswapV2Factory__factory { - static readonly abi = _abi; - static createInterface(): IUniswapV2FactoryInterface { - return new Interface(_abi) as IUniswapV2FactoryInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): IUniswapV2Factory { - return new Contract(address, _abi, runner) as unknown as IUniswapV2Factory; - } -} diff --git a/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair__factory.ts b/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair__factory.ts deleted file mode 100644 index 6756b697..00000000 --- a/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair__factory.ts +++ /dev/null @@ -1,676 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IUniswapV2Pair, - IUniswapV2PairInterface, -} from "../../../../../@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "spender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount0", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "amount1", - type: "uint256", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - ], - name: "Burn", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount0", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "amount1", - type: "uint256", - }, - ], - name: "Mint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount0In", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "amount1In", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "amount0Out", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "amount1Out", - type: "uint256", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - ], - name: "Swap", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint112", - name: "reserve0", - type: "uint112", - }, - { - indexed: false, - internalType: "uint112", - name: "reserve1", - type: "uint112", - }, - ], - name: "Sync", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - inputs: [], - name: "DOMAIN_SEPARATOR", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "MINIMUM_LIQUIDITY", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [], - name: "PERMIT_TYPEHASH", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - ], - name: "burn", - outputs: [ - { - internalType: "uint256", - name: "amount0", - type: "uint256", - }, - { - internalType: "uint256", - name: "amount1", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "decimals", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [], - name: "factory", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "getReserves", - outputs: [ - { - internalType: "uint112", - name: "reserve0", - type: "uint112", - }, - { - internalType: "uint112", - name: "reserve1", - type: "uint112", - }, - { - internalType: "uint32", - name: "blockTimestampLast", - type: "uint32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "address", - name: "", - type: "address", - }, - ], - name: "initialize", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "kLast", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - ], - name: "mint", - outputs: [ - { - internalType: "uint256", - name: "liquidity", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "name", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - ], - name: "nonces", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - { - internalType: "uint8", - name: "v", - type: "uint8", - }, - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "s", - type: "bytes32", - }, - ], - name: "permit", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "price0CumulativeLast", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "price1CumulativeLast", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - ], - name: "skim", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amount0Out", - type: "uint256", - }, - { - internalType: "uint256", - name: "amount1Out", - type: "uint256", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "swap", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "symbol", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [], - name: "sync", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "token0", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "token1", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class IUniswapV2Pair__factory { - static readonly abi = _abi; - static createInterface(): IUniswapV2PairInterface { - return new Interface(_abi) as IUniswapV2PairInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): IUniswapV2Pair { - return new Contract(address, _abi, runner) as unknown as IUniswapV2Pair; - } -} diff --git a/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/index.ts b/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/index.ts deleted file mode 100644 index 88461340..00000000 --- a/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { IERC20__factory } from "./IERC20__factory"; -export { IUniswapV2Callee__factory } from "./IUniswapV2Callee__factory"; -export { IUniswapV2ERC20__factory } from "./IUniswapV2ERC20__factory"; -export { IUniswapV2Factory__factory } from "./IUniswapV2Factory__factory"; -export { IUniswapV2Pair__factory } from "./IUniswapV2Pair__factory"; diff --git a/typechain-types/factories/@uniswap/v2-core/index.ts b/typechain-types/factories/@uniswap/v2-core/index.ts deleted file mode 100644 index 6397da09..00000000 --- a/typechain-types/factories/@uniswap/v2-core/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as contracts from "./contracts"; diff --git a/typechain-types/factories/@uniswap/v2-periphery/contracts/UniswapV2Router02__factory.ts b/typechain-types/factories/@uniswap/v2-periphery/contracts/UniswapV2Router02__factory.ts deleted file mode 100644 index ee6906fe..00000000 --- a/typechain-types/factories/@uniswap/v2-periphery/contracts/UniswapV2Router02__factory.ts +++ /dev/null @@ -1,1049 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { - Signer, - AddressLike, - ContractDeployTransaction, - ContractRunner, -} from "ethers"; -import type { NonPayableOverrides } from "../../../../common"; -import type { - UniswapV2Router02, - UniswapV2Router02Interface, -} from "../../../../@uniswap/v2-periphery/contracts/UniswapV2Router02"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "_factory", - type: "address", - }, - { - internalType: "address", - name: "_WETH", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [], - name: "WETH", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "tokenA", - type: "address", - }, - { - internalType: "address", - name: "tokenB", - type: "address", - }, - { - internalType: "uint256", - name: "amountADesired", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountBDesired", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountAMin", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountBMin", - type: "uint256", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "addLiquidity", - outputs: [ - { - internalType: "uint256", - name: "amountA", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountB", - type: "uint256", - }, - { - internalType: "uint256", - name: "liquidity", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "uint256", - name: "amountTokenDesired", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountTokenMin", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountETHMin", - type: "uint256", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "addLiquidityETH", - outputs: [ - { - internalType: "uint256", - name: "amountToken", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountETH", - type: "uint256", - }, - { - internalType: "uint256", - name: "liquidity", - type: "uint256", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [], - name: "factory", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountOut", - type: "uint256", - }, - { - internalType: "uint256", - name: "reserveIn", - type: "uint256", - }, - { - internalType: "uint256", - name: "reserveOut", - type: "uint256", - }, - ], - name: "getAmountIn", - outputs: [ - { - internalType: "uint256", - name: "amountIn", - type: "uint256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountIn", - type: "uint256", - }, - { - internalType: "uint256", - name: "reserveIn", - type: "uint256", - }, - { - internalType: "uint256", - name: "reserveOut", - type: "uint256", - }, - ], - name: "getAmountOut", - outputs: [ - { - internalType: "uint256", - name: "amountOut", - type: "uint256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountOut", - type: "uint256", - }, - { - internalType: "address[]", - name: "path", - type: "address[]", - }, - ], - name: "getAmountsIn", - outputs: [ - { - internalType: "uint256[]", - name: "amounts", - type: "uint256[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountIn", - type: "uint256", - }, - { - internalType: "address[]", - name: "path", - type: "address[]", - }, - ], - name: "getAmountsOut", - outputs: [ - { - internalType: "uint256[]", - name: "amounts", - type: "uint256[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountA", - type: "uint256", - }, - { - internalType: "uint256", - name: "reserveA", - type: "uint256", - }, - { - internalType: "uint256", - name: "reserveB", - type: "uint256", - }, - ], - name: "quote", - outputs: [ - { - internalType: "uint256", - name: "amountB", - type: "uint256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "tokenA", - type: "address", - }, - { - internalType: "address", - name: "tokenB", - type: "address", - }, - { - internalType: "uint256", - name: "liquidity", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountAMin", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountBMin", - type: "uint256", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "removeLiquidity", - outputs: [ - { - internalType: "uint256", - name: "amountA", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountB", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "uint256", - name: "liquidity", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountTokenMin", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountETHMin", - type: "uint256", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "removeLiquidityETH", - outputs: [ - { - internalType: "uint256", - name: "amountToken", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountETH", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "uint256", - name: "liquidity", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountTokenMin", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountETHMin", - type: "uint256", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "removeLiquidityETHSupportingFeeOnTransferTokens", - outputs: [ - { - internalType: "uint256", - name: "amountETH", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "uint256", - name: "liquidity", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountTokenMin", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountETHMin", - type: "uint256", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - { - internalType: "bool", - name: "approveMax", - type: "bool", - }, - { - internalType: "uint8", - name: "v", - type: "uint8", - }, - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "s", - type: "bytes32", - }, - ], - name: "removeLiquidityETHWithPermit", - outputs: [ - { - internalType: "uint256", - name: "amountToken", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountETH", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "uint256", - name: "liquidity", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountTokenMin", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountETHMin", - type: "uint256", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - { - internalType: "bool", - name: "approveMax", - type: "bool", - }, - { - internalType: "uint8", - name: "v", - type: "uint8", - }, - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "s", - type: "bytes32", - }, - ], - name: "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", - outputs: [ - { - internalType: "uint256", - name: "amountETH", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "tokenA", - type: "address", - }, - { - internalType: "address", - name: "tokenB", - type: "address", - }, - { - internalType: "uint256", - name: "liquidity", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountAMin", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountBMin", - type: "uint256", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - { - internalType: "bool", - name: "approveMax", - type: "bool", - }, - { - internalType: "uint8", - name: "v", - type: "uint8", - }, - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "s", - type: "bytes32", - }, - ], - name: "removeLiquidityWithPermit", - outputs: [ - { - internalType: "uint256", - name: "amountA", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountB", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountOut", - type: "uint256", - }, - { - internalType: "address[]", - name: "path", - type: "address[]", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "swapETHForExactTokens", - outputs: [ - { - internalType: "uint256[]", - name: "amounts", - type: "uint256[]", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountOutMin", - type: "uint256", - }, - { - internalType: "address[]", - name: "path", - type: "address[]", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "swapExactETHForTokens", - outputs: [ - { - internalType: "uint256[]", - name: "amounts", - type: "uint256[]", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountOutMin", - type: "uint256", - }, - { - internalType: "address[]", - name: "path", - type: "address[]", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "swapExactETHForTokensSupportingFeeOnTransferTokens", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountIn", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountOutMin", - type: "uint256", - }, - { - internalType: "address[]", - name: "path", - type: "address[]", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "swapExactTokensForETH", - outputs: [ - { - internalType: "uint256[]", - name: "amounts", - type: "uint256[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountIn", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountOutMin", - type: "uint256", - }, - { - internalType: "address[]", - name: "path", - type: "address[]", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "swapExactTokensForETHSupportingFeeOnTransferTokens", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountIn", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountOutMin", - type: "uint256", - }, - { - internalType: "address[]", - name: "path", - type: "address[]", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "swapExactTokensForTokens", - outputs: [ - { - internalType: "uint256[]", - name: "amounts", - type: "uint256[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountIn", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountOutMin", - type: "uint256", - }, - { - internalType: "address[]", - name: "path", - type: "address[]", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "swapExactTokensForTokensSupportingFeeOnTransferTokens", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountOut", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountInMax", - type: "uint256", - }, - { - internalType: "address[]", - name: "path", - type: "address[]", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "swapTokensForExactETH", - outputs: [ - { - internalType: "uint256[]", - name: "amounts", - type: "uint256[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountOut", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountInMax", - type: "uint256", - }, - { - internalType: "address[]", - name: "path", - type: "address[]", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "swapTokensForExactTokens", - outputs: [ - { - internalType: "uint256[]", - name: "amounts", - type: "uint256[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - stateMutability: "payable", - type: "receive", - }, -] as const; - -const _bytecode = - "0x60c06040523480156200001157600080fd5b5060405162006b1038038062006b10833981810160405260408110156200003757600080fd5b8101908080519060200190929190805190602001909291905050508173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b81525050505060805160601c60a05160601c6169076200020960003980610156528061157452806115b252806116e252806119c05280611f34528061220f528061230552806128a55280612a925280612bc55280612cdd5280612ea55280612f3a528061338e52806134455280613538528061364f528061373e52806137bf5280613fb6528061435452806143ad52806143e1528061446252806146a2528061486752806148fc5250806117d452806118e05280611a935280611acb5280611cc45280611dd05280612026528061212f52806122e3528061251f52806129c55280612dca5280612f79528061319a52806132a352806137fe5280613c315280613f335280613f5c5280613f9452806141c6528061438b528061478f528061493b528061553a528061557e52806158f35280615b5a528061614b5280616273528061638952506169076000f3fe60806040526004361061014f5760003560e01c80638803dbee116100b6578063c45a01551161006f578063c45a015514611001578063d06ca61f14611058578063ded9382a1461117c578063e8e337001461125e578063f305d71914611344578063fb3bdb41146113f2576101ab565b80638803dbee14610c00578063ad5c464814610d19578063ad615dec14610d70578063af2979eb14610dd3578063b6f9de9514610e80578063baa2abde14610f2d576101ab565b80634a25d94a116101085780634a25d94a1461071f5780635b0d5984146108385780635c11d79514610913578063791ac947146109d75780637ff36ab514610a9b57806385f8c25914610b9d576101ab565b806302751cec146101b0578063054d50d41461026457806318cbafe5146102c75780631f00ca74146103e05780632195995c1461050457806338ed173914610606576101ab565b366101ab577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101a957fe5b005b600080fd5b3480156101bc57600080fd5b50610247600480360360c08110156101d357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114f4565b604051808381526020018281526020019250505060405180910390f35b34801561027057600080fd5b506102b16004803603606081101561028757600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050611651565b6040518082815260200191505060405180910390f35b3480156102d357600080fd5b50610389600480360360a08110156102ea57600080fd5b8101908080359060200190929190803590602001909291908035906020019064010000000081111561031b57600080fd5b82018360208201111561032d57600080fd5b8035906020019184602083028401116401000000008311171561034f57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611667565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156103cc5780820151818401526020810190506103b1565b505050509050019250505060405180910390f35b3480156103ec57600080fd5b506104ad6004803603604081101561040357600080fd5b81019080803590602001909291908035906020019064010000000081111561042a57600080fd5b82018360208201111561043c57600080fd5b8035906020019184602083028401116401000000008311171561045e57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611a8c565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156104f05780820151818401526020810190506104d5565b505050509050019250505060405180910390f35b34801561051057600080fd5b506105e9600480360361016081101561052857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803515159060200190929190803560ff1690602001909291908035906020019092919080359060200190929190505050611ac1565b604051808381526020018281526020019250505060405180910390f35b34801561061257600080fd5b506106c8600480360360a081101561062957600080fd5b8101908080359060200190929190803590602001909291908035906020019064010000000081111561065a57600080fd5b82018360208201111561066c57600080fd5b8035906020019184602083028401116401000000008311171561068e57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c46565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561070b5780820151818401526020810190506106f0565b505050509050019250505060405180910390f35b34801561072b57600080fd5b506107e1600480360360a081101561074257600080fd5b8101908080359060200190929190803590602001909291908035906020019064010000000081111561077357600080fd5b82018360208201111561078557600080fd5b803590602001918460208302840111640100000000831117156107a757600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611eb9565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610824578082015181840152602081019050610809565b505050509050019250505060405180910390f35b34801561084457600080fd5b506108fd600480360361014081101561085c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803515159060200190929190803560ff16906020019092919080359060200190929190803590602001909291905050506122db565b6040518082815260200191505060405180910390f35b34801561091f57600080fd5b506109d5600480360360a081101561093657600080fd5b8101908080359060200190929190803590602001909291908035906020019064010000000081111561096757600080fd5b82018360208201111561097957600080fd5b8035906020019184602083028401116401000000008311171561099b57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612475565b005b3480156109e357600080fd5b50610a99600480360360a08110156109fa57600080fd5b81019080803590602001909291908035906020019092919080359060200190640100000000811115610a2b57600080fd5b820183602082011115610a3d57600080fd5b80359060200191846020830284011164010000000083111715610a5f57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061282c565b005b610b4660048036036080811015610ab157600080fd5b810190808035906020019092919080359060200190640100000000811115610ad857600080fd5b820183602082011115610aea57600080fd5b80359060200191846020830284011164010000000083111715610b0c57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612c62565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610b89578082015181840152602081019050610b6e565b505050509050019250505060405180910390f35b348015610ba957600080fd5b50610bea60048036036060811015610bc057600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050613106565b6040518082815260200191505060405180910390f35b348015610c0c57600080fd5b50610cc2600480360360a0811015610c2357600080fd5b81019080803590602001909291908035906020019092919080359060200190640100000000811115610c5457600080fd5b820183602082011115610c6657600080fd5b80359060200191846020830284011164010000000083111715610c8857600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061311c565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610d05578082015181840152602081019050610cea565b505050509050019250505060405180910390f35b348015610d2557600080fd5b50610d2e61338c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d7c57600080fd5b50610dbd60048036036060811015610d9357600080fd5b810190808035906020019092919080359060200190929190803590602001909291905050506133b0565b6040518082815260200191505060405180910390f35b348015610ddf57600080fd5b50610e6a600480360360c0811015610df657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506133c6565b6040518082815260200191505060405180910390f35b610f2b60048036036080811015610e9657600080fd5b810190808035906020019092919080359060200190640100000000811115610ebd57600080fd5b820183602082011115610ecf57600080fd5b80359060200191846020830284011164010000000083111715610ef157600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506135d6565b005b348015610f3957600080fd5b50610fe4600480360360e0811015610f5057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613bb0565b604051808381526020018281526020019250505060405180910390f35b34801561100d57600080fd5b50611016613f31565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561106457600080fd5b506111256004803603604081101561107b57600080fd5b8101908080359060200190929190803590602001906401000000008111156110a257600080fd5b8201836020820111156110b457600080fd5b803590602001918460208302840111640100000000831117156110d657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050613f55565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561116857808201518184015260208101905061114d565b505050509050019250505060405180910390f35b34801561118857600080fd5b5061124160048036036101408110156111a057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803515159060200190929190803560ff1690602001909291908035906020019092919080359060200190929190505050613f8a565b604051808381526020018281526020019250505060405180910390f35b34801561126a57600080fd5b50611320600480360361010081101561128257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061412d565b60405180848152602001838152602001828152602001935050505060405180910390f35b6113ce600480360360c081101561135a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506142d2565b60405180848152602001838152602001828152602001935050505060405180910390f35b61149d6004803603608081101561140857600080fd5b81019080803590602001909291908035906020019064010000000081111561142f57600080fd5b82018360208201111561144157600080fd5b8035906020019184602083028401116401000000008311171561146357600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050614627565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156114e05780820151818401526020810190506114c5565b505050509050019250505060405180910390f35b600080824281101561156e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f556e69737761705632526f757465723a2045585049524544000000000000000081525060200191505060405180910390fd5b61159d897f00000000000000000000000000000000000000000000000000000000000000008a8a8a308a613bb0565b80935081945050506115b0898685614b05565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561162357600080fd5b505af1158015611637573d6000803e3d6000fd5b505050506116458583614cfe565b50965096945050505050565b600061165e848484614e5d565b90509392505050565b606081428110156116e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f556e69737761705632526f757465723a2045585049524544000000000000000081525060200191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1686866001898990500381811061172957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f556e69737761705632526f757465723a20494e56414c49445f5041544800000081525060200191505060405180910390fd5b61183b7f000000000000000000000000000000000000000000000000000000000000000089888880806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050614f8d565b9150868260018451038151811061184e57fe5b602002602001015110156118ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180616858602b913960400191505060405180910390fd5b611972868660008181106118bd57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16336119587f00000000000000000000000000000000000000000000000000000000000000008a8a600081811061190c57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168b8b600181811061193657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16615105565b8560008151811061196557fe5b6020026020010151615260565b6119be82878780806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505030615471565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d83600185510381518110611a0a57fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611a4857600080fd5b505af1158015611a5c573d6000803e3d6000fd5b50505050611a818483600185510381518110611a7457fe5b6020026020010151614cfe565b509695505050505050565b6060611ab97f0000000000000000000000000000000000000000000000000000000000000000848461571c565b905092915050565b6000806000611af17f00000000000000000000000000000000000000000000000000000000000000008f8f615105565b9050600087611b00578c611b22565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b90508173ffffffffffffffffffffffffffffffffffffffff1663d505accf3330848d8c8c8c6040518863ffffffff1660e01b8152600401808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018460ff1660ff168152602001838152602001828152602001975050505050505050600060405180830381600087803b158015611c0557600080fd5b505af1158015611c19573d6000803e3d6000fd5b50505050611c2c8f8f8f8f8f8f8f613bb0565b809450819550505050509b509b9950505050505050505050565b60608142811015611cbf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f556e69737761705632526f757465723a2045585049524544000000000000000081525060200191505060405180910390fd5b611d2b7f000000000000000000000000000000000000000000000000000000000000000089888880806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050614f8d565b91508682600184510381518110611d3e57fe5b60200260200101511015611d9d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180616858602b913960400191505060405180910390fd5b611e6286866000818110611dad57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1633611e487f00000000000000000000000000000000000000000000000000000000000000008a8a6000818110611dfc57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168b8b6001818110611e2657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16615105565b85600081518110611e5557fe5b6020026020010151615260565b611eae82878780806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505086615471565b509695505050505050565b60608142811015611f32576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f556e69737761705632526f757465723a2045585049524544000000000000000081525060200191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16868660018989905003818110611f7b57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612021576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f556e69737761705632526f757465723a20494e56414c49445f5041544800000081525060200191505060405180910390fd5b61208d7f000000000000000000000000000000000000000000000000000000000000000089888880806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505061571c565b9150868260008151811061209d57fe5b602002602001015111156120fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806167e86027913960400191505060405180910390fd5b6121c18686600081811061210c57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16336121a77f00000000000000000000000000000000000000000000000000000000000000008a8a600081811061215b57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168b8b600181811061218557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16615105565b856000815181106121b457fe5b6020026020010151615260565b61220d82878780806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505030615471565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d8360018551038151811061225957fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561229757600080fd5b505af11580156122ab573d6000803e3d6000fd5b505050506122d084836001855103815181106122c357fe5b6020026020010151614cfe565b509695505050505050565b6000806123297f00000000000000000000000000000000000000000000000000000000000000008d7f0000000000000000000000000000000000000000000000000000000000000000615105565b9050600086612338578b61235a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b90508173ffffffffffffffffffffffffffffffffffffffff1663d505accf3330848c8b8b8b6040518863ffffffff1660e01b8152600401808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018460ff1660ff168152602001838152602001828152602001975050505050505050600060405180830381600087803b15801561243d57600080fd5b505af1158015612451573d6000803e3d6000fd5b505050506124638d8d8d8d8d8d6133c6565b925050509a9950505050505050505050565b80428110156124ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f556e69737761705632526f757465723a2045585049524544000000000000000081525060200191505060405180910390fd5b61259d858560008181106124fc57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16336125977f00000000000000000000000000000000000000000000000000000000000000008989600081811061254b57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168a8a600181811061257557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16615105565b8a615260565b60008585600188889050038181106125b157fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561264a57600080fd5b505afa15801561265e573d6000803e3d6000fd5b505050506040513d602081101561267457600080fd5b810190808051906020019092919050505090506126d2868680806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508561589c565b866127cb82888860018b8b9050038181106126e957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561278257600080fd5b505afa158015612796573d6000803e3d6000fd5b505050506040513d60208110156127ac57600080fd5b8101908080519060200190929190505050615d1390919063ffffffff16565b1015612822576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180616858602b913960400191505060405180910390fd5b5050505050505050565b80428110156128a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f556e69737761705632526f757465723a2045585049524544000000000000000081525060200191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168585600188889050038181106128ec57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612992576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f556e69737761705632526f757465723a20494e56414c49445f5041544800000081525060200191505060405180910390fd5b612a43858560008181106129a257fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1633612a3d7f0000000000000000000000000000000000000000000000000000000000000000898960008181106129f157fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168a8a6001818110612a1b57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16615105565b8a615260565b612a8e858580806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050503061589c565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612b2d57600080fd5b505afa158015612b41573d6000803e3d6000fd5b505050506040513d6020811015612b5757600080fd5b8101908080519060200190929190505050905086811015612bc3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180616858602b913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015612c3657600080fd5b505af1158015612c4a573d6000803e3d6000fd5b50505050612c588482614cfe565b5050505050505050565b60608142811015612cdb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f556e69737761705632526f757465723a2045585049524544000000000000000081525060200191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1686866000818110612d1f57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612dc5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f556e69737761705632526f757465723a20494e56414c49445f5041544800000081525060200191505060405180910390fd5b612e317f000000000000000000000000000000000000000000000000000000000000000034888880806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050614f8d565b91508682600184510381518110612e4457fe5b60200260200101511015612ea3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180616858602b913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db083600081518110612eec57fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b158015612f1f57600080fd5b505af1158015612f33573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb612ff17f000000000000000000000000000000000000000000000000000000000000000089896000818110612fa557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168a8a6001818110612fcf57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16615105565b84600081518110612ffe57fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561306f57600080fd5b505af1158015613083573d6000803e3d6000fd5b505050506040513d602081101561309957600080fd5b81019080805190602001909291905050506130b057fe5b6130fc82878780806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505086615471565b5095945050505050565b6000613113848484615d96565b90509392505050565b60608142811015613195576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f556e69737761705632526f757465723a2045585049524544000000000000000081525060200191505060405180910390fd5b6132017f000000000000000000000000000000000000000000000000000000000000000089888880806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505061571c565b9150868260008151811061321157fe5b60200260200101511115613270576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806167e86027913960400191505060405180910390fd5b6133358686600081811061328057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff163361331b7f00000000000000000000000000000000000000000000000000000000000000008a8a60008181106132cf57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168b8b60018181106132f957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16615105565b8560008151811061332857fe5b6020026020010151615260565b61338182878780806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505086615471565b509695505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006133bd848484615ed3565b90509392505050565b6000814281101561343f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f556e69737761705632526f757465723a2045585049524544000000000000000081525060200191505060405180910390fd5b61346e887f00000000000000000000000000000000000000000000000000000000000000008989893089613bb0565b90508092505061353688858a73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156134f657600080fd5b505afa15801561350a573d6000803e3d6000fd5b505050506040513d602081101561352057600080fd5b8101908080519060200190929190505050614b05565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156135a957600080fd5b505af11580156135bd573d6000803e3d6000fd5b505050506135cb8483614cfe565b509695505050505050565b804281101561364d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f556e69737761705632526f757465723a2045585049524544000000000000000081525060200191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168585600081811061369157fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613737576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f556e69737761705632526f757465723a20494e56414c49445f5041544800000081525060200191505060405180910390fd5b60003490507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156137a457600080fd5b505af11580156137b8573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6138767f00000000000000000000000000000000000000000000000000000000000000008989600081811061382a57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168a8a600181811061385457fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16615105565b836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156138e057600080fd5b505af11580156138f4573d6000803e3d6000fd5b505050506040513d602081101561390a57600080fd5b810190808051906020019092919050505061392157fe5b600086866001898990500381811061393557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156139ce57600080fd5b505afa1580156139e2573d6000803e3d6000fd5b505050506040513d60208110156139f857600080fd5b81019080805190602001909291905050509050613a56878780806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508661589c565b87613b4f82898960018c8c905003818110613a6d57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231896040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015613b0657600080fd5b505afa158015613b1a573d6000803e3d6000fd5b505050506040513d6020811015613b3057600080fd5b8101908080519060200190929190505050615d1390919063ffffffff16565b1015613ba6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180616858602b913960400191505060405180910390fd5b5050505050505050565b6000808242811015613c2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f556e69737761705632526f757465723a2045585049524544000000000000000081525060200191505060405180910390fd5b6000613c577f00000000000000000000000000000000000000000000000000000000000000008c8c615105565b90508073ffffffffffffffffffffffffffffffffffffffff166323b872dd33838c6040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015613d1457600080fd5b505af1158015613d28573d6000803e3d6000fd5b505050506040513d6020811015613d3e57600080fd5b8101908080519060200190929190505050506000808273ffffffffffffffffffffffffffffffffffffffff166389afcb44896040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506040805180830381600087803b158015613dd157600080fd5b505af1158015613de5573d6000803e3d6000fd5b505050506040513d6040811015613dfb57600080fd5b810190808051906020019092919080519060200190929190505050915091506000613e268e8e615fb7565b5090508073ffffffffffffffffffffffffffffffffffffffff168e73ffffffffffffffffffffffffffffffffffffffff1614613e63578183613e66565b82825b80975081985050508a871015613ec7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061680f6026913960400191505060405180910390fd5b89861015613f20576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806167756026913960400191505060405180910390fd5b505050505097509795505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6060613f827f00000000000000000000000000000000000000000000000000000000000000008484614f8d565b905092915050565b6000806000613fda7f00000000000000000000000000000000000000000000000000000000000000008e7f0000000000000000000000000000000000000000000000000000000000000000615105565b9050600087613fe9578c61400b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b90508173ffffffffffffffffffffffffffffffffffffffff1663d505accf3330848d8c8c8c6040518863ffffffff1660e01b8152600401808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018460ff1660ff168152602001838152602001828152602001975050505050505050600060405180830381600087803b1580156140ee57600080fd5b505af1158015614102573d6000803e3d6000fd5b505050506141148e8e8e8e8e8e6114f4565b809450819550505050509a509a98505050505050505050565b600080600083428110156141a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f556e69737761705632526f757465723a2045585049524544000000000000000081525060200191505060405180910390fd5b6141b78c8c8c8c8c8c61612e565b809450819550505060006141ec7f00000000000000000000000000000000000000000000000000000000000000008e8e615105565b90506141fa8d338388615260565b6142068c338387615260565b8073ffffffffffffffffffffffffffffffffffffffff16636a627842886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561428557600080fd5b505af1158015614299573d6000803e3d6000fd5b505050506040513d60208110156142af57600080fd5b810190808051906020019092919050505092505050985098509895505050505050565b6000806000834281101561434e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f556e69737761705632526f757465723a2045585049524544000000000000000081525060200191505060405180910390fd5b61437c8a7f00000000000000000000000000000000000000000000000000000000000000008b348c8c61612e565b809450819550505060006143d17f00000000000000000000000000000000000000000000000000000000000000008c7f0000000000000000000000000000000000000000000000000000000000000000615105565b90506143df8b338388615260565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b15801561444757600080fd5b505af115801561445b573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561450757600080fd5b505af115801561451b573d6000803e3d6000fd5b505050506040513d602081101561453157600080fd5b810190808051906020019092919050505061454857fe5b8073ffffffffffffffffffffffffffffffffffffffff16636a627842886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156145c757600080fd5b505af11580156145db573d6000803e3d6000fd5b505050506040513d60208110156145f157600080fd5b81019080805190602001909291905050509250833411156146195761461833853403614cfe565b5b505096509650969350505050565b606081428110156146a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f556e69737761705632526f757465723a2045585049524544000000000000000081525060200191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16868660008181106146e457fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461478a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f556e69737761705632526f757465723a20494e56414c49445f5041544800000081525060200191505060405180910390fd5b6147f67f000000000000000000000000000000000000000000000000000000000000000088888880806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505061571c565b9150348260008151811061480657fe5b60200260200101511115614865576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806167e86027913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0836000815181106148ae57fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b1580156148e157600080fd5b505af11580156148f5573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6149b37f00000000000000000000000000000000000000000000000000000000000000008989600081811061496757fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168a8a600181811061499157fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16615105565b846000815181106149c057fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015614a3157600080fd5b505af1158015614a45573d6000803e3d6000fd5b505050506040513d6020811015614a5b57600080fd5b8101908080519060200190929190505050614a7257fe5b614abe82878780806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505086615471565b81600081518110614acb57fe5b6020026020010151341115614afb57614afa3383600081518110614aeb57fe5b60200260200101513403614cfe565b5b5095945050505050565b600060608473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8585604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b60208310614bde5780518252602082019150602081019050602083039250614bbb565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114614c40576040519150601f19603f3d011682016040523d82523d6000602084013e614c45565b606091505b5091509150818015614c855750600081511480614c845750808060200190516020811015614c7257600080fd5b81019080805190602001909291905050505b5b614cf7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5472616e7366657248656c7065723a205452414e534645525f4641494c45440081525060200191505060405180910390fd5b5050505050565b60008273ffffffffffffffffffffffffffffffffffffffff1682600067ffffffffffffffff81118015614d3057600080fd5b506040519080825280601f01601f191660200182016040528015614d635781602001600182028036833780820191505090505b506040518082805190602001908083835b60208310614d975780518252602082019150602081019050602083039250614d74565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114614df9576040519150601f19603f3d011682016040523d82523d6000602084013e614dfe565b606091505b5050905080614e58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806168356023913960400191505060405180910390fd5b505050565b6000808411614eb7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806168a7602b913960400191505060405180910390fd5b600083118015614ec75750600082115b614f1c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061679b6028913960400191505060405180910390fd5b6000614f336103e5866164e290919063ffffffff16565b90506000614f4a84836164e290919063ffffffff16565b90506000614f7583614f676103e8896164e290919063ffffffff16565b61657790919063ffffffff16565b9050808281614f8057fe5b0493505050509392505050565b6060600282511015615007576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f556e697377617056324c6962726172793a20494e56414c49445f50415448000081525060200191505060405180910390fd5b815167ffffffffffffffff8111801561501f57600080fd5b5060405190808252806020026020018201604052801561504e5781602001602082028036833780820191505090505b509050828160008151811061505f57fe5b60200260200101818152505060005b60018351038110156150fd576000806150b18786858151811061508d57fe5b60200260200101518760018701815181106150a457fe5b60200260200101516165fa565b915091506150d38484815181106150c457fe5b60200260200101518383614e5d565b8460018501815181106150e257fe5b6020026020010181815250505050808060010191505061506e565b509392505050565b60008060006151148585615fb7565b91509150858282604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b8152601401925050506040516020818303038152906040528051906020012060405160200180807fff000000000000000000000000000000000000000000000000000000000000008152506001018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b8152601401828152602001807f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f815250602001925050506040516020818303038152906040528051906020012060001c925050509392505050565b600060608573ffffffffffffffffffffffffffffffffffffffff166323b872dd868686604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200193505050506040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b6020831061536d578051825260208201915060208101905060208303925061534a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146153cf576040519150601f19603f3d011682016040523d82523d6000602084013e6153d4565b606091505b50915091508180156154145750600081511480615413575080806020019051602081101561540157600080fd5b81019080805190602001909291905050505b5b615469576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806168836024913960400191505060405180910390fd5b505050505050565b60005b60018351038110156157165760008084838151811061548f57fe5b60200260200101518560018501815181106154a657fe5b60200260200101519150915060006154be8383615fb7565b50905060008760018601815181106154d257fe5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461551a5782600061551e565b6000835b91509150600060028a510388106155355788615577565b6155767f0000000000000000000000000000000000000000000000000000000000000000878c60028c018151811061556957fe5b6020026020010151615105565b5b90506155a47f00000000000000000000000000000000000000000000000000000000000000008888615105565b73ffffffffffffffffffffffffffffffffffffffff1663022c0d9f848484600067ffffffffffffffff811180156155da57600080fd5b506040519080825280601f01601f19166020018201604052801561560d5781602001600182028036833780820191505090505b506040518563ffffffff1660e01b8152600401808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561569b578082015181840152602081019050615680565b50505050905090810190601f1680156156c85780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156156ea57600080fd5b505af11580156156fe573d6000803e3d6000fd5b50505050505050505050508080600101915050615474565b50505050565b6060600282511015615796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f556e697377617056324c6962726172793a20494e56414c49445f50415448000081525060200191505060405180910390fd5b815167ffffffffffffffff811180156157ae57600080fd5b506040519080825280602002602001820160405280156157dd5781602001602082028036833780820191505090505b50905082816001835103815181106157f157fe5b6020026020010181815250506000600183510390505b6000811115615894576000806158478786600186038151811061582657fe5b602002602001015187868151811061583a57fe5b60200260200101516165fa565b9150915061586984848151811061585a57fe5b60200260200101518383615d96565b84600185038151811061587857fe5b6020026020010181815250505050808060019003915050615807565b509392505050565b60005b6001835103811015615d0e576000808483815181106158ba57fe5b60200260200101518560018501815181106158d157fe5b60200260200101519150915060006158e98383615fb7565b50905060006159197f00000000000000000000000000000000000000000000000000000000000000008585615105565b90506000806000808473ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561596757600080fd5b505afa15801561597b573d6000803e3d6000fd5b505050506040513d606081101561599157600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691506000808773ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1614615a18578284615a1b565b83835b91509150615ae9828b73ffffffffffffffffffffffffffffffffffffffff166370a082318a6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015615aa057600080fd5b505afa158015615ab4573d6000803e3d6000fd5b505050506040513d6020811015615aca57600080fd5b8101908080519060200190929190505050615d1390919063ffffffff16565b9550615af6868383614e5d565b9450505050506000808573ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614615b3a57826000615b3e565b6000835b91509150600060028c51038a10615b55578a615b97565b615b967f0000000000000000000000000000000000000000000000000000000000000000898e60028e0181518110615b8957fe5b6020026020010151615105565b5b90508573ffffffffffffffffffffffffffffffffffffffff1663022c0d9f848484600067ffffffffffffffff81118015615bd057600080fd5b506040519080825280601f01601f191660200182016040528015615c035781602001600182028036833780820191505090505b506040518563ffffffff1660e01b8152600401808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015615c91578082015181840152602081019050615c76565b50505050905090810190601f168015615cbe5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015615ce057600080fd5b505af1158015615cf4573d6000803e3d6000fd5b50505050505050505050505050808060010191505061589f565b505050565b6000828284039150811115615d90576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f64732d6d6174682d7375622d756e646572666c6f77000000000000000000000081525060200191505060405180910390fd5b92915050565b6000808411615df0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180616724602c913960400191505060405180910390fd5b600083118015615e005750600082115b615e55576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061679b6028913960400191505060405180910390fd5b6000615e7e6103e8615e7087876164e290919063ffffffff16565b6164e290919063ffffffff16565b90506000615ea96103e5615e9b8887615d1390919063ffffffff16565b6164e290919063ffffffff16565b9050615ec86001828481615eb957fe5b0461657790919063ffffffff16565b925050509392505050565b6000808411615f2d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806167c36025913960400191505060405180910390fd5b600083118015615f3d5750600082115b615f92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061679b6028913960400191505060405180910390fd5b82615fa683866164e290919063ffffffff16565b81615fad57fe5b0490509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561603f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806167506025913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161061607957828461607c565b83835b8092508193505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415616127576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f556e697377617056324c6962726172793a205a45524f5f41444452455353000081525060200191505060405180910390fd5b9250929050565b600080600073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e6a439058a8a6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801561621a57600080fd5b505afa15801561622e573d6000803e3d6000fd5b505050506040513d602081101561624457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff161415616381577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c9c6539689896040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b15801561634457600080fd5b505af1158015616358573d6000803e3d6000fd5b505050506040513d602081101561636e57600080fd5b8101908080519060200190929190505050505b6000806163af7f00000000000000000000000000000000000000000000000000000000000000008b8b6165fa565b915091506000821480156163c35750600081145b156163d757878780945081955050506164d5565b60006163e4898484615ed3565b90508781116164555785811015616446576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806167756026913960400191505060405180910390fd5b888180955081965050506164d3565b6000616462898486615ed3565b90508981111561646e57fe5b878110156164c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061680f6026913960400191505060405180910390fd5b80898096508197505050505b505b5050965096945050505050565b6000808214806164ff57508282838502925082816164fc57fe5b04145b616571576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d6d6174682d6d756c2d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b92915050565b60008282840191508110156165f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d6d6174682d6164642d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b92915050565b60008060006166098585615fb7565b50905060008061661a888888615105565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561665f57600080fd5b505afa158015616673573d6000803e3d6000fd5b505050506040513d606081101561668957600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691508273ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161461670d578082616710565b81815b809550819650505050505093509391505056fe556e697377617056324c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056324c6962726172793a204944454e544943414c5f414444524553534553556e69737761705632526f757465723a20494e53554646494349454e545f425f414d4f554e54556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459556e697377617056324c6962726172793a20494e53554646494349454e545f414d4f554e54556e69737761705632526f757465723a204558434553534956455f494e5055545f414d4f554e54556e69737761705632526f757465723a20494e53554646494349454e545f415f414d4f554e545472616e7366657248656c7065723a204554485f5452414e534645525f4641494c4544556e69737761705632526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544556e697377617056324c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54a26469706673582212208afdc4c37194d7ca1f4cc9961c6827f176017c92df2e6237e0366b088021437364736f6c63430006060033"; - -type UniswapV2Router02ConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: UniswapV2Router02ConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class UniswapV2Router02__factory extends ContractFactory { - constructor(...args: UniswapV2Router02ConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - _factory: AddressLike, - _WETH: AddressLike, - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(_factory, _WETH, overrides || {}); - } - override deploy( - _factory: AddressLike, - _WETH: AddressLike, - overrides?: NonPayableOverrides & { from?: string } - ) { - return super.deploy(_factory, _WETH, overrides || {}) as Promise< - UniswapV2Router02 & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): UniswapV2Router02__factory { - return super.connect(runner) as UniswapV2Router02__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): UniswapV2Router02Interface { - return new Interface(_abi) as UniswapV2Router02Interface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): UniswapV2Router02 { - return new Contract(address, _abi, runner) as unknown as UniswapV2Router02; - } -} diff --git a/typechain-types/factories/@uniswap/v2-periphery/contracts/index.ts b/typechain-types/factories/@uniswap/v2-periphery/contracts/index.ts deleted file mode 100644 index 1e34f5fd..00000000 --- a/typechain-types/factories/@uniswap/v2-periphery/contracts/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as interfaces from "./interfaces"; -export { UniswapV2Router02__factory } from "./UniswapV2Router02__factory"; diff --git a/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IERC20__factory.ts b/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IERC20__factory.ts deleted file mode 100644 index 5c4a0d8a..00000000 --- a/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IERC20__factory.ts +++ /dev/null @@ -1,244 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IERC20, - IERC20Interface, -} from "../../../../../@uniswap/v2-periphery/contracts/interfaces/IERC20"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "spender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "decimals", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "name", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "symbol", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class IERC20__factory { - static readonly abi = _abi; - static createInterface(): IERC20Interface { - return new Interface(_abi) as IERC20Interface; - } - static connect(address: string, runner?: ContractRunner | null): IERC20 { - return new Contract(address, _abi, runner) as unknown as IERC20; - } -} diff --git a/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01__factory.ts b/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01__factory.ts deleted file mode 100644 index e614d805..00000000 --- a/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01__factory.ts +++ /dev/null @@ -1,774 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IUniswapV2Router01, - IUniswapV2Router01Interface, -} from "../../../../../@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01"; - -const _abi = [ - { - inputs: [], - name: "WETH", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "tokenA", - type: "address", - }, - { - internalType: "address", - name: "tokenB", - type: "address", - }, - { - internalType: "uint256", - name: "amountADesired", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountBDesired", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountAMin", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountBMin", - type: "uint256", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "addLiquidity", - outputs: [ - { - internalType: "uint256", - name: "amountA", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountB", - type: "uint256", - }, - { - internalType: "uint256", - name: "liquidity", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "uint256", - name: "amountTokenDesired", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountTokenMin", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountETHMin", - type: "uint256", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "addLiquidityETH", - outputs: [ - { - internalType: "uint256", - name: "amountToken", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountETH", - type: "uint256", - }, - { - internalType: "uint256", - name: "liquidity", - type: "uint256", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [], - name: "factory", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountOut", - type: "uint256", - }, - { - internalType: "uint256", - name: "reserveIn", - type: "uint256", - }, - { - internalType: "uint256", - name: "reserveOut", - type: "uint256", - }, - ], - name: "getAmountIn", - outputs: [ - { - internalType: "uint256", - name: "amountIn", - type: "uint256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountIn", - type: "uint256", - }, - { - internalType: "uint256", - name: "reserveIn", - type: "uint256", - }, - { - internalType: "uint256", - name: "reserveOut", - type: "uint256", - }, - ], - name: "getAmountOut", - outputs: [ - { - internalType: "uint256", - name: "amountOut", - type: "uint256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountOut", - type: "uint256", - }, - { - internalType: "address[]", - name: "path", - type: "address[]", - }, - ], - name: "getAmountsIn", - outputs: [ - { - internalType: "uint256[]", - name: "amounts", - type: "uint256[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountIn", - type: "uint256", - }, - { - internalType: "address[]", - name: "path", - type: "address[]", - }, - ], - name: "getAmountsOut", - outputs: [ - { - internalType: "uint256[]", - name: "amounts", - type: "uint256[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountA", - type: "uint256", - }, - { - internalType: "uint256", - name: "reserveA", - type: "uint256", - }, - { - internalType: "uint256", - name: "reserveB", - type: "uint256", - }, - ], - name: "quote", - outputs: [ - { - internalType: "uint256", - name: "amountB", - type: "uint256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "tokenA", - type: "address", - }, - { - internalType: "address", - name: "tokenB", - type: "address", - }, - { - internalType: "uint256", - name: "liquidity", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountAMin", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountBMin", - type: "uint256", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "removeLiquidity", - outputs: [ - { - internalType: "uint256", - name: "amountA", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountB", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "uint256", - name: "liquidity", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountTokenMin", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountETHMin", - type: "uint256", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "removeLiquidityETH", - outputs: [ - { - internalType: "uint256", - name: "amountToken", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountETH", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "uint256", - name: "liquidity", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountTokenMin", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountETHMin", - type: "uint256", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - { - internalType: "bool", - name: "approveMax", - type: "bool", - }, - { - internalType: "uint8", - name: "v", - type: "uint8", - }, - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "s", - type: "bytes32", - }, - ], - name: "removeLiquidityETHWithPermit", - outputs: [ - { - internalType: "uint256", - name: "amountToken", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountETH", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "tokenA", - type: "address", - }, - { - internalType: "address", - name: "tokenB", - type: "address", - }, - { - internalType: "uint256", - name: "liquidity", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountAMin", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountBMin", - type: "uint256", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - { - internalType: "bool", - name: "approveMax", - type: "bool", - }, - { - internalType: "uint8", - name: "v", - type: "uint8", - }, - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "s", - type: "bytes32", - }, - ], - name: "removeLiquidityWithPermit", - outputs: [ - { - internalType: "uint256", - name: "amountA", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountB", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountOut", - type: "uint256", - }, - { - internalType: "address[]", - name: "path", - type: "address[]", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "swapETHForExactTokens", - outputs: [ - { - internalType: "uint256[]", - name: "amounts", - type: "uint256[]", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountOutMin", - type: "uint256", - }, - { - internalType: "address[]", - name: "path", - type: "address[]", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "swapExactETHForTokens", - outputs: [ - { - internalType: "uint256[]", - name: "amounts", - type: "uint256[]", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountIn", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountOutMin", - type: "uint256", - }, - { - internalType: "address[]", - name: "path", - type: "address[]", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "swapExactTokensForETH", - outputs: [ - { - internalType: "uint256[]", - name: "amounts", - type: "uint256[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountIn", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountOutMin", - type: "uint256", - }, - { - internalType: "address[]", - name: "path", - type: "address[]", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "swapExactTokensForTokens", - outputs: [ - { - internalType: "uint256[]", - name: "amounts", - type: "uint256[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountOut", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountInMax", - type: "uint256", - }, - { - internalType: "address[]", - name: "path", - type: "address[]", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "swapTokensForExactETH", - outputs: [ - { - internalType: "uint256[]", - name: "amounts", - type: "uint256[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountOut", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountInMax", - type: "uint256", - }, - { - internalType: "address[]", - name: "path", - type: "address[]", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "swapTokensForExactTokens", - outputs: [ - { - internalType: "uint256[]", - name: "amounts", - type: "uint256[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class IUniswapV2Router01__factory { - static readonly abi = _abi; - static createInterface(): IUniswapV2Router01Interface { - return new Interface(_abi) as IUniswapV2Router01Interface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): IUniswapV2Router01 { - return new Contract(address, _abi, runner) as unknown as IUniswapV2Router01; - } -} diff --git a/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02__factory.ts b/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02__factory.ts deleted file mode 100644 index 39012cd7..00000000 --- a/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02__factory.ts +++ /dev/null @@ -1,976 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IUniswapV2Router02, - IUniswapV2Router02Interface, -} from "../../../../../@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02"; - -const _abi = [ - { - inputs: [], - name: "WETH", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "tokenA", - type: "address", - }, - { - internalType: "address", - name: "tokenB", - type: "address", - }, - { - internalType: "uint256", - name: "amountADesired", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountBDesired", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountAMin", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountBMin", - type: "uint256", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "addLiquidity", - outputs: [ - { - internalType: "uint256", - name: "amountA", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountB", - type: "uint256", - }, - { - internalType: "uint256", - name: "liquidity", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "uint256", - name: "amountTokenDesired", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountTokenMin", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountETHMin", - type: "uint256", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "addLiquidityETH", - outputs: [ - { - internalType: "uint256", - name: "amountToken", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountETH", - type: "uint256", - }, - { - internalType: "uint256", - name: "liquidity", - type: "uint256", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [], - name: "factory", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountOut", - type: "uint256", - }, - { - internalType: "uint256", - name: "reserveIn", - type: "uint256", - }, - { - internalType: "uint256", - name: "reserveOut", - type: "uint256", - }, - ], - name: "getAmountIn", - outputs: [ - { - internalType: "uint256", - name: "amountIn", - type: "uint256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountIn", - type: "uint256", - }, - { - internalType: "uint256", - name: "reserveIn", - type: "uint256", - }, - { - internalType: "uint256", - name: "reserveOut", - type: "uint256", - }, - ], - name: "getAmountOut", - outputs: [ - { - internalType: "uint256", - name: "amountOut", - type: "uint256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountOut", - type: "uint256", - }, - { - internalType: "address[]", - name: "path", - type: "address[]", - }, - ], - name: "getAmountsIn", - outputs: [ - { - internalType: "uint256[]", - name: "amounts", - type: "uint256[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountIn", - type: "uint256", - }, - { - internalType: "address[]", - name: "path", - type: "address[]", - }, - ], - name: "getAmountsOut", - outputs: [ - { - internalType: "uint256[]", - name: "amounts", - type: "uint256[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountA", - type: "uint256", - }, - { - internalType: "uint256", - name: "reserveA", - type: "uint256", - }, - { - internalType: "uint256", - name: "reserveB", - type: "uint256", - }, - ], - name: "quote", - outputs: [ - { - internalType: "uint256", - name: "amountB", - type: "uint256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "tokenA", - type: "address", - }, - { - internalType: "address", - name: "tokenB", - type: "address", - }, - { - internalType: "uint256", - name: "liquidity", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountAMin", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountBMin", - type: "uint256", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "removeLiquidity", - outputs: [ - { - internalType: "uint256", - name: "amountA", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountB", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "uint256", - name: "liquidity", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountTokenMin", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountETHMin", - type: "uint256", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "removeLiquidityETH", - outputs: [ - { - internalType: "uint256", - name: "amountToken", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountETH", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "uint256", - name: "liquidity", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountTokenMin", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountETHMin", - type: "uint256", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "removeLiquidityETHSupportingFeeOnTransferTokens", - outputs: [ - { - internalType: "uint256", - name: "amountETH", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "uint256", - name: "liquidity", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountTokenMin", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountETHMin", - type: "uint256", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - { - internalType: "bool", - name: "approveMax", - type: "bool", - }, - { - internalType: "uint8", - name: "v", - type: "uint8", - }, - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "s", - type: "bytes32", - }, - ], - name: "removeLiquidityETHWithPermit", - outputs: [ - { - internalType: "uint256", - name: "amountToken", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountETH", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "uint256", - name: "liquidity", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountTokenMin", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountETHMin", - type: "uint256", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - { - internalType: "bool", - name: "approveMax", - type: "bool", - }, - { - internalType: "uint8", - name: "v", - type: "uint8", - }, - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "s", - type: "bytes32", - }, - ], - name: "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", - outputs: [ - { - internalType: "uint256", - name: "amountETH", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "tokenA", - type: "address", - }, - { - internalType: "address", - name: "tokenB", - type: "address", - }, - { - internalType: "uint256", - name: "liquidity", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountAMin", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountBMin", - type: "uint256", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - { - internalType: "bool", - name: "approveMax", - type: "bool", - }, - { - internalType: "uint8", - name: "v", - type: "uint8", - }, - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "s", - type: "bytes32", - }, - ], - name: "removeLiquidityWithPermit", - outputs: [ - { - internalType: "uint256", - name: "amountA", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountB", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountOut", - type: "uint256", - }, - { - internalType: "address[]", - name: "path", - type: "address[]", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "swapETHForExactTokens", - outputs: [ - { - internalType: "uint256[]", - name: "amounts", - type: "uint256[]", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountOutMin", - type: "uint256", - }, - { - internalType: "address[]", - name: "path", - type: "address[]", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "swapExactETHForTokens", - outputs: [ - { - internalType: "uint256[]", - name: "amounts", - type: "uint256[]", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountOutMin", - type: "uint256", - }, - { - internalType: "address[]", - name: "path", - type: "address[]", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "swapExactETHForTokensSupportingFeeOnTransferTokens", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountIn", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountOutMin", - type: "uint256", - }, - { - internalType: "address[]", - name: "path", - type: "address[]", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "swapExactTokensForETH", - outputs: [ - { - internalType: "uint256[]", - name: "amounts", - type: "uint256[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountIn", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountOutMin", - type: "uint256", - }, - { - internalType: "address[]", - name: "path", - type: "address[]", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "swapExactTokensForETHSupportingFeeOnTransferTokens", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountIn", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountOutMin", - type: "uint256", - }, - { - internalType: "address[]", - name: "path", - type: "address[]", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "swapExactTokensForTokens", - outputs: [ - { - internalType: "uint256[]", - name: "amounts", - type: "uint256[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountIn", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountOutMin", - type: "uint256", - }, - { - internalType: "address[]", - name: "path", - type: "address[]", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "swapExactTokensForTokensSupportingFeeOnTransferTokens", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountOut", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountInMax", - type: "uint256", - }, - { - internalType: "address[]", - name: "path", - type: "address[]", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "swapTokensForExactETH", - outputs: [ - { - internalType: "uint256[]", - name: "amounts", - type: "uint256[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountOut", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountInMax", - type: "uint256", - }, - { - internalType: "address[]", - name: "path", - type: "address[]", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "swapTokensForExactTokens", - outputs: [ - { - internalType: "uint256[]", - name: "amounts", - type: "uint256[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class IUniswapV2Router02__factory { - static readonly abi = _abi; - static createInterface(): IUniswapV2Router02Interface { - return new Interface(_abi) as IUniswapV2Router02Interface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): IUniswapV2Router02 { - return new Contract(address, _abi, runner) as unknown as IUniswapV2Router02; - } -} diff --git a/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IWETH__factory.ts b/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IWETH__factory.ts deleted file mode 100644 index 0185f5be..00000000 --- a/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IWETH__factory.ts +++ /dev/null @@ -1,66 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IWETH, - IWETHInterface, -} from "../../../../../@uniswap/v2-periphery/contracts/interfaces/IWETH"; - -const _abi = [ - { - inputs: [], - name: "deposit", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "withdraw", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class IWETH__factory { - static readonly abi = _abi; - static createInterface(): IWETHInterface { - return new Interface(_abi) as IWETHInterface; - } - static connect(address: string, runner?: ContractRunner | null): IWETH { - return new Contract(address, _abi, runner) as unknown as IWETH; - } -} diff --git a/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/index.ts b/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/index.ts deleted file mode 100644 index f8c8fbd3..00000000 --- a/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { IERC20__factory } from "./IERC20__factory"; -export { IUniswapV2Router01__factory } from "./IUniswapV2Router01__factory"; -export { IUniswapV2Router02__factory } from "./IUniswapV2Router02__factory"; -export { IWETH__factory } from "./IWETH__factory"; diff --git a/typechain-types/factories/@uniswap/v2-periphery/index.ts b/typechain-types/factories/@uniswap/v2-periphery/index.ts deleted file mode 100644 index 6397da09..00000000 --- a/typechain-types/factories/@uniswap/v2-periphery/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as contracts from "./contracts"; diff --git a/typechain-types/factories/@uniswap/v3-core/contracts/index.ts b/typechain-types/factories/@uniswap/v3-core/contracts/index.ts deleted file mode 100644 index 1d3444d5..00000000 --- a/typechain-types/factories/@uniswap/v3-core/contracts/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as interfaces from "./interfaces"; diff --git a/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback__factory.ts b/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback__factory.ts deleted file mode 100644 index 2213b0bc..00000000 --- a/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback__factory.ts +++ /dev/null @@ -1,52 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IUniswapV3SwapCallback, - IUniswapV3SwapCallbackInterface, -} from "../../../../../../@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback"; - -const _abi = [ - { - inputs: [ - { - internalType: "int256", - name: "amount0Delta", - type: "int256", - }, - { - internalType: "int256", - name: "amount1Delta", - type: "int256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "uniswapV3SwapCallback", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class IUniswapV3SwapCallback__factory { - static readonly abi = _abi; - static createInterface(): IUniswapV3SwapCallbackInterface { - return new Interface(_abi) as IUniswapV3SwapCallbackInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): IUniswapV3SwapCallback { - return new Contract( - address, - _abi, - runner - ) as unknown as IUniswapV3SwapCallback; - } -} diff --git a/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/callback/index.ts b/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/callback/index.ts deleted file mode 100644 index 0c401bd0..00000000 --- a/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/callback/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { IUniswapV3SwapCallback__factory } from "./IUniswapV3SwapCallback__factory"; diff --git a/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/index.ts b/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/index.ts deleted file mode 100644 index 01db08ef..00000000 --- a/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as callback from "./callback"; diff --git a/typechain-types/factories/@uniswap/v3-core/index.ts b/typechain-types/factories/@uniswap/v3-core/index.ts deleted file mode 100644 index 6397da09..00000000 --- a/typechain-types/factories/@uniswap/v3-core/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as contracts from "./contracts"; diff --git a/typechain-types/factories/@uniswap/v3-periphery/contracts/index.ts b/typechain-types/factories/@uniswap/v3-periphery/contracts/index.ts deleted file mode 100644 index 1d3444d5..00000000 --- a/typechain-types/factories/@uniswap/v3-periphery/contracts/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as interfaces from "./interfaces"; diff --git a/typechain-types/factories/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter__factory.ts b/typechain-types/factories/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter__factory.ts deleted file mode 100644 index d17d5d7f..00000000 --- a/typechain-types/factories/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter__factory.ts +++ /dev/null @@ -1,259 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - ISwapRouter, - ISwapRouterInterface, -} from "../../../../../@uniswap/v3-periphery/contracts/interfaces/ISwapRouter"; - -const _abi = [ - { - inputs: [ - { - components: [ - { - internalType: "bytes", - name: "path", - type: "bytes", - }, - { - internalType: "address", - name: "recipient", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountIn", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountOutMinimum", - type: "uint256", - }, - ], - internalType: "struct ISwapRouter.ExactInputParams", - name: "params", - type: "tuple", - }, - ], - name: "exactInput", - outputs: [ - { - internalType: "uint256", - name: "amountOut", - type: "uint256", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "tokenIn", - type: "address", - }, - { - internalType: "address", - name: "tokenOut", - type: "address", - }, - { - internalType: "uint24", - name: "fee", - type: "uint24", - }, - { - internalType: "address", - name: "recipient", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountIn", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountOutMinimum", - type: "uint256", - }, - { - internalType: "uint160", - name: "sqrtPriceLimitX96", - type: "uint160", - }, - ], - internalType: "struct ISwapRouter.ExactInputSingleParams", - name: "params", - type: "tuple", - }, - ], - name: "exactInputSingle", - outputs: [ - { - internalType: "uint256", - name: "amountOut", - type: "uint256", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "bytes", - name: "path", - type: "bytes", - }, - { - internalType: "address", - name: "recipient", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountOut", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountInMaximum", - type: "uint256", - }, - ], - internalType: "struct ISwapRouter.ExactOutputParams", - name: "params", - type: "tuple", - }, - ], - name: "exactOutput", - outputs: [ - { - internalType: "uint256", - name: "amountIn", - type: "uint256", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "tokenIn", - type: "address", - }, - { - internalType: "address", - name: "tokenOut", - type: "address", - }, - { - internalType: "uint24", - name: "fee", - type: "uint24", - }, - { - internalType: "address", - name: "recipient", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountOut", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountInMaximum", - type: "uint256", - }, - { - internalType: "uint160", - name: "sqrtPriceLimitX96", - type: "uint160", - }, - ], - internalType: "struct ISwapRouter.ExactOutputSingleParams", - name: "params", - type: "tuple", - }, - ], - name: "exactOutputSingle", - outputs: [ - { - internalType: "uint256", - name: "amountIn", - type: "uint256", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "amount0Delta", - type: "int256", - }, - { - internalType: "int256", - name: "amount1Delta", - type: "int256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "uniswapV3SwapCallback", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class ISwapRouter__factory { - static readonly abi = _abi; - static createInterface(): ISwapRouterInterface { - return new Interface(_abi) as ISwapRouterInterface; - } - static connect(address: string, runner?: ContractRunner | null): ISwapRouter { - return new Contract(address, _abi, runner) as unknown as ISwapRouter; - } -} diff --git a/typechain-types/factories/@uniswap/v3-periphery/contracts/interfaces/index.ts b/typechain-types/factories/@uniswap/v3-periphery/contracts/interfaces/index.ts deleted file mode 100644 index 786c846e..00000000 --- a/typechain-types/factories/@uniswap/v3-periphery/contracts/interfaces/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { ISwapRouter__factory } from "./ISwapRouter__factory"; diff --git a/typechain-types/factories/@uniswap/v3-periphery/index.ts b/typechain-types/factories/@uniswap/v3-periphery/index.ts deleted file mode 100644 index 6397da09..00000000 --- a/typechain-types/factories/@uniswap/v3-periphery/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as contracts from "./contracts"; diff --git a/typechain-types/factories/@zetachain/index.ts b/typechain-types/factories/@zetachain/index.ts deleted file mode 100644 index 6257bef0..00000000 --- a/typechain-types/factories/@zetachain/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as protocolContracts from "./protocol-contracts"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/Errors.sol/INotSupportedMethods__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/Errors.sol/INotSupportedMethods__factory.ts deleted file mode 100644 index ba0493ab..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/Errors.sol/INotSupportedMethods__factory.ts +++ /dev/null @@ -1,39 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - INotSupportedMethods, - INotSupportedMethodsInterface, -} from "../../../../../@zetachain/protocol-contracts/contracts/Errors.sol/INotSupportedMethods"; - -const _abi = [ - { - inputs: [], - name: "CallOnRevertNotSupported", - type: "error", - }, - { - inputs: [], - name: "ZETANotSupported", - type: "error", - }, -] as const; - -export class INotSupportedMethods__factory { - static readonly abi = _abi; - static createInterface(): INotSupportedMethodsInterface { - return new Interface(_abi) as INotSupportedMethodsInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): INotSupportedMethods { - return new Contract( - address, - _abi, - runner - ) as unknown as INotSupportedMethods; - } -} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/Errors.sol/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/Errors.sol/index.ts deleted file mode 100644 index 0ee1ffc8..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/Errors.sol/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { INotSupportedMethods__factory } from "./INotSupportedMethods__factory"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/Revert.sol/Abortable__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/Revert.sol/Abortable__factory.ts deleted file mode 100644 index e1ea4dff..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/Revert.sol/Abortable__factory.ts +++ /dev/null @@ -1,67 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - Abortable, - AbortableInterface, -} from "../../../../../@zetachain/protocol-contracts/contracts/Revert.sol/Abortable"; - -const _abi = [ - { - inputs: [ - { - components: [ - { - internalType: "bytes", - name: "sender", - type: "bytes", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bool", - name: "outgoing", - type: "bool", - }, - { - internalType: "uint256", - name: "chainID", - type: "uint256", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - ], - internalType: "struct AbortContext", - name: "abortContext", - type: "tuple", - }, - ], - name: "onAbort", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class Abortable__factory { - static readonly abi = _abi; - static createInterface(): AbortableInterface { - return new Interface(_abi) as AbortableInterface; - } - static connect(address: string, runner?: ContractRunner | null): Abortable { - return new Contract(address, _abi, runner) as unknown as Abortable; - } -} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/Revert.sol/Revertable__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/Revert.sol/Revertable__factory.ts deleted file mode 100644 index fd3bcc5a..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/Revert.sol/Revertable__factory.ts +++ /dev/null @@ -1,57 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - Revertable, - RevertableInterface, -} from "../../../../../@zetachain/protocol-contracts/contracts/Revert.sol/Revertable"; - -const _abi = [ - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - ], - internalType: "struct RevertContext", - name: "revertContext", - type: "tuple", - }, - ], - name: "onRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class Revertable__factory { - static readonly abi = _abi; - static createInterface(): RevertableInterface { - return new Interface(_abi) as RevertableInterface; - } - static connect(address: string, runner?: ContractRunner | null): Revertable { - return new Contract(address, _abi, runner) as unknown as Revertable; - } -} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/Revert.sol/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/Revert.sol/index.ts deleted file mode 100644 index 5506ba2b..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/Revert.sol/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { Abortable__factory } from "./Abortable__factory"; -export { Revertable__factory } from "./Revertable__factory"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ERC20Custody__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ERC20Custody__factory.ts deleted file mode 100644 index 2cc910da..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ERC20Custody__factory.ts +++ /dev/null @@ -1,1023 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; -import type { NonPayableOverrides } from "../../../../../common"; -import type { - ERC20Custody, - ERC20CustodyInterface, -} from "../../../../../@zetachain/protocol-contracts/contracts/evm/ERC20Custody"; - -const _abi = [ - { - inputs: [], - name: "AccessControlBadConfirmation", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "bytes32", - name: "neededRole", - type: "bytes32", - }, - ], - name: "AccessControlUnauthorizedAccount", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - ], - name: "AddressEmptyCode", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "implementation", - type: "address", - }, - ], - name: "ERC1967InvalidImplementation", - type: "error", - }, - { - inputs: [], - name: "ERC1967NonPayable", - type: "error", - }, - { - inputs: [], - name: "EnforcedPause", - type: "error", - }, - { - inputs: [], - name: "ExpectedPause", - type: "error", - }, - { - inputs: [], - name: "FailedCall", - type: "error", - }, - { - inputs: [], - name: "InvalidInitialization", - type: "error", - }, - { - inputs: [], - name: "LegacyMethodsNotSupported", - type: "error", - }, - { - inputs: [], - name: "NotInitializing", - type: "error", - }, - { - inputs: [], - name: "NotWhitelisted", - type: "error", - }, - { - inputs: [], - name: "ReentrancyGuardReentrantCall", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "SafeERC20FailedOperation", - type: "error", - }, - { - inputs: [], - name: "UUPSUnauthorizedCallContext", - type: "error", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "slot", - type: "bytes32", - }, - ], - name: "UUPSUnsupportedProxiableUUID", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "recipient", - type: "bytes", - }, - { - indexed: true, - internalType: "contract IERC20", - name: "asset", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "Deposited", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint64", - name: "version", - type: "uint64", - }, - ], - name: "Initialized", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "Paused", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - indexed: true, - internalType: "bytes32", - name: "previousAdminRole", - type: "bytes32", - }, - { - indexed: true, - internalType: "bytes32", - name: "newAdminRole", - type: "bytes32", - }, - ], - name: "RoleAdminChanged", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - indexed: true, - internalType: "address", - name: "account", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "RoleGranted", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - indexed: true, - internalType: "address", - name: "account", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "RoleRevoked", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "Unpaused", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "Unwhitelisted", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "oldTSSAddress", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "newTSSAddress", - type: "address", - }, - ], - name: "UpdatedCustodyTSSAddress", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "implementation", - type: "address", - }, - ], - name: "Upgraded", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "Whitelisted", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "Withdrawn", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "WithdrawnAndCalled", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - ], - indexed: false, - internalType: "struct RevertContext", - name: "revertContext", - type: "tuple", - }, - ], - name: "WithdrawnAndReverted", - type: "event", - }, - { - inputs: [], - name: "DEFAULT_ADMIN_ROLE", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "PAUSER_ROLE", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "UPGRADE_INTERFACE_VERSION", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "WHITELISTER_ROLE", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "WITHDRAWER_ROLE", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "recipient", - type: "bytes", - }, - { - internalType: "contract IERC20", - name: "asset", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "deposit", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "gateway", - outputs: [ - { - internalType: "contract IGatewayEVM", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - ], - name: "getRoleAdmin", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "grantRole", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "hasRole", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "gateway_", - type: "address", - }, - { - internalType: "address", - name: "tssAddress_", - type: "address", - }, - { - internalType: "address", - name: "admin_", - type: "address", - }, - ], - name: "initialize", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "pause", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "paused", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "proxiableUUID", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - internalType: "address", - name: "callerConfirmation", - type: "address", - }, - ], - name: "renounceRole", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "revokeRole", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bool", - name: "_supportsLegacy", - type: "bool", - }, - ], - name: "setSupportsLegacy", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes4", - name: "interfaceId", - type: "bytes4", - }, - ], - name: "supportsInterface", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "supportsLegacy", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "tssAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "unpause", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "unwhitelist", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newTSSAddress", - type: "address", - }, - ], - name: "updateTSSAddress", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newImplementation", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "upgradeToAndCall", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "whitelist", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - name: "whitelisted", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "withdraw", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - ], - internalType: "struct MessageContext", - name: "messageContext", - type: "tuple", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "withdrawAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - ], - internalType: "struct RevertContext", - name: "revertContext", - type: "tuple", - }, - ], - name: "withdrawAndRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -const _bytecode = - "0x60a0806040523460295730608052611e8d908161002f8239608051818181610f090152610fda0152f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a71461131857508063116191b6146112f1578063248a9ca3146112ca578063252f07bf146112a45780632f2ff15d1461127257806336568abe1461122d5780633f4ba83a146111ab5780634f1ef28614610f5e57806352d1902d14610ef6578063570618e114610ecd5780635b11259114610ea45780635c975abb14610e745780638456cb5914610dff57806385f438c114610dd657806391d1485414610d80578063950837aa14610cb457806399a3c35614610ade5780639a59042714610a725780639b19251a146109f4578063a217fddf146109d8578063ad0818521461082d578063ad3cb1cc146107b3578063c0c53b8b1461057f578063d547741f14610544578063d936547e14610505578063d9caed1214610442578063e609055e146101e8578063e63ab1e9146101ad5763eab103df1461016057600080fd5b346101aa5760203660031901126101aa576004358015158091036101a65761018661157a565b6002805460ff60a01b191660a09290921b60ff60a01b1691909117905580f35b5080fd5b80fd5b50346101aa57806003193601126101aa5760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346101aa5760803660031901126101aa5760043567ffffffffffffffff81116101a65761021a903690600401611417565b6024356001600160a01b03811692919083810361043e5760643567ffffffffffffffff811161043a57610251903690600401611417565b9061025a611b7e565b610262611bba565b60ff60025460a01c161561042b57858752600160205260ff6040882054161561041c576040516370a0823160e01b8152306004820152926020846024818a5afa9384156103db5788946103e6575b506102ee90604051906323b872dd60e01b60208301523360248301523060448301526044356064830152606482526102e96084836113c3565b611c21565b6040516370a0823160e01b8152306004820152926020846024818a5afa9384156103db5788946103a2575b50830392831161038e5791610376917f1dafa057cc5c3bccb5ad974129a2bccd3c74002d9dfd7062404ba9523b18d6ae959493610363604051968796606088526060880191611466565b9260208601528483036040860152611466565b0390a26001600080516020611df88339815191525580f35b634e487b7160e01b87526011600452602487fd5b9093506020813d6020116103d3575b816103be602093836113c3565b810103126103ce57519238610319565b600080fd5b3d91506103b1565b6040513d8a823e3d90fd5b9093506020813d602011610414575b81610402602093836113c3565b810103126103ce5751926102ee6102b0565b3d91506103f5565b630b094f2760e31b8752600487fd5b6373cba66360e01b8752600487fd5b8580fd5b8480fd5b50346101aa5760603660031901126101aa5761045c611383565b61046461136d565b60443590610470611b7e565b6104786115cd565b610480611bba565b6001600160a01b03168084526001602052604084205490929060ff16156104f6576020816104d0847fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb9487611be4565b6040519384526001600160a01b031692a36001600080516020611df88339815191525580f35b630b094f2760e31b8452600484fd5b50346101aa5760203660031901126101aa5760209060ff906040906001600160a01b03610530611383565b168152600184522054166040519015158152f35b50346101aa5760403660031901126101aa5761057b60043561056461136d565b9061057661057182611445565b611669565b611ade565b5080f35b50346101aa5760603660031901126101aa57610599611383565b6105a161136d565b6105a9611399565b600080516020611e38833981519152549260ff8460401c16159367ffffffffffffffff8116801590816107ab575b60011490816107a1575b159081610798575b506107895767ffffffffffffffff198116600117600080516020611e38833981519152558461075c575b506001600160a01b03168015801561074b575b801561073a575b61072b576106c992916106c391610642611c88565b61064a611c88565b610652611c88565b6001600080516020611df88339815191525561066c611c88565b610674611c88565b86546001600160a01b0319908116919091178755600280549091166001600160a01b0385161790556106a5816117c5565b506106af8161185f565b506106b98361185f565b506106c3836116b3565b5061173f565b506106d15780f35b68ff000000000000000019600080516020611e388339815191525416600080516020611e38833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b63d92e233d60e01b8552600485fd5b506001600160a01b0382161561062d565b506001600160a01b03831615610626565b68ffffffffffffffffff19166801000000000000000117600080516020611e388339815191525538610613565b63f92ee8a960e01b8652600486fd5b905015386105e9565b303b1591506105e1565b8691506105d7565b50346101aa57806003193601126101aa5760408051916107d382846113c3565b60058352640352e302e360dc1b6020840152815192839160208352815191826020850152815b838110610816575050828201840152601f01601f19168101030190f35b6020828201810151888301880152879550016107f9565b50346101aa57366003190160a081126101a6576020136101aa5761084f61136d565b610857611399565b906064359160843567ffffffffffffffff811161043e5761087c903690600401611417565b9091610886611b7e565b61088e6115cd565b610896611bba565b6001600160a01b03168086526001602052604086205490949060ff16156109c95785546108ce9082906001600160a01b031687611be4565b85546001600160a01b0316938690853b156101a657604051633ddf4d7d60e11b815290829082906001600160a01b03610905611383565b166004830152602482018a90526001600160a01b0316604482018190526064820186905260a060848301529781838161094260a482018b8d611466565b03925af180156109be576109a9575b50506109917f6478cbb6e28c0823c691dfd74c01c985634faddd4c401b990fe4ec26277ea8d5936040519384938452604060208501526040840191611466565b0390a36001600080516020611df88339815191525580f35b816109b3916113c3565b61043a578538610951565b6040513d84823e3d90fd5b630b094f2760e31b8652600486fd5b50346101aa57806003193601126101aa57602090604051908152f35b50346101aa5760203660031901126101aa57610a0e611383565b610a1661161b565b6001600160a01b03168015610a6357808252600160205260408220600160ff198254161790557faab7954e9d246b167ef88aeddad35209ca2489d95a8aeb59e288d9b19fae5a548280a280f35b63d92e233d60e01b8252600482fd5b50346101aa5760203660031901126101aa57610a8c611383565b610a9461161b565b6001600160a01b03168015610a6357808252600160205260408220805460ff191690557f51085ddf9ebdded84b76e829eb58c4078e4b5bdf97d9a94723f336039da467918280a280f35b50346101aa5760a03660031901126101aa57610af8611383565b610b0061136d565b9060443560643567ffffffffffffffff811161043e57610b24903690600401611417565b9190936084359067ffffffffffffffff8211610cb057608082600401926003199036030112610cb057610b55611b7e565b610b5d6115cd565b610b65611bba565b6001600160a01b03168087526001602052604087205490959060ff161561041c578654610b9d9084906001600160a01b031688611be4565b86546001600160a01b031694853b15610cac5787604051809263aa0c0fc160e01b825289600483015260018060a01b03169788602483015286604483015260a06064830152818381610c08610bf660a483018d8b611466565b8281036003190160848401528a611487565b03925af180156103db57610c6a575b507f7b53ec10a80164e60591c43d9c222e9354886981b880a3fba19c9ceb77fb9721939291610c5c610991926040519586958652606060208701526060860191611466565b908382036040850152611487565b91610c5c88610ca0610991949a7f7b53ec10a80164e60591c43d9c222e9354886981b880a3fba19c9ceb77fb97219897966113c3565b98925050919293610c17565b8780fd5b8680fd5b50346101aa5760203660031901126101aa57610cce611383565b610cd661157a565b6001600160a01b038116908115610d7157600254610d219190610d01906001600160a01b03166119b2565b50600254610d17906001600160a01b0316611a48565b506106c3816116b3565b50600254604080516001600160a01b0383168152602081018490527f4d3470c839d3c4dd664eec934b920c12fe0966e3185103dd40149496815df2b69190a16001600160a01b0319161760025580f35b63d92e233d60e01b8352600483fd5b50346101aa5760403660031901126101aa5760ff6040602092610da161136d565b6004358252600080516020611d9883398151915285528282206001600160a01b03909116825284522054604051911615158152f35b50346101aa57806003193601126101aa576020604051600080516020611d788339815191528152f35b50346101aa57806003193601126101aa57610e18611508565b610e20611bba565b600160ff19600080516020611dd8833981519152541617600080516020611dd8833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101aa57806003193601126101aa57602060ff600080516020611dd883398151915254166040519015158152f35b50346101aa57806003193601126101aa576002546040516001600160a01b039091168152602090f35b50346101aa57806003193601126101aa576020604051600080516020611d588339815191528152f35b50346101aa57806003193601126101aa577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610f4f576020604051600080516020611d388339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101aa57610f73611383565b6024359067ffffffffffffffff82116111a757366023830112156111a75781600401359083610fa1836113fb565b93610faf60405195866113c3565b838552602085019336602482840101116111a757806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611184575b506111755761101261157a565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181611141575b5061105557634c9c8ce360e01b86526004859052602486fd5b9384600080516020611d3883398151915287960361112f5750823b1561111d57600080516020611d3883398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a28051156111025761057b9382915190845af43d156110fa573d916110de836113fb565b926110ec60405194856113c3565b83523d85602085013e611cb6565b606091611cb6565b505050503461110e5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d60201161116d575b8161115d602093836113c3565b81010312610cb05751903861103c565b3d9150611150565b63703e46dd60e11b8452600484fd5b600080516020611d38833981519152546001600160a01b03161415905038611005565b8280fd5b50346101aa57806003193601126101aa576111c4611508565b600080516020611dd88339815191525460ff81161561121e5760ff1916600080516020611dd8833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346101aa5760403660031901126101aa5761124761136d565b336001600160a01b038216036112635761057b90600435611ade565b63334bd91960e11b8252600482fd5b50346101aa5760403660031901126101aa5761057b60043561129261136d565b9061129f61057182611445565b61191b565b50346101aa57806003193601126101aa57602060ff60025460a01c166040519015158152f35b50346101aa5760203660031901126101aa5760206112e9600435611445565b604051908152f35b50346101aa57806003193601126101aa57546040516001600160a01b039091168152602090f35b9050346101a65760203660031901126101a65760043563ffffffff60e01b81168091036111a75760209250637965db0b60e01b811490811561135c575b5015158152f35b6301ffc9a760e01b14905038611355565b602435906001600160a01b03821682036103ce57565b600435906001600160a01b03821682036103ce57565b604435906001600160a01b03821682036103ce57565b35906001600160a01b03821682036103ce57565b90601f8019910116810190811067ffffffffffffffff8211176113e557604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116113e557601f01601f191660200190565b9181601f840112156103ce5782359167ffffffffffffffff83116103ce57602083818601950101116103ce57565b600052600080516020611d9883398151915260205260016040600020015490565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160a01b03611498826113af565b1682526001600160a01b036114af602083016113af565b166020830152604081013560408301526060810135601e19823603018112156103ce57016020813591019067ffffffffffffffff81116103ce5780360382136103ce576080838160606115059601520191611466565b90565b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561154157565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16156115b357565b63e2517d3f60e01b60005233600452600060245260446000fd5b336000908152600080516020611e18833981519152602052604090205460ff16156115f457565b63e2517d3f60e01b60005233600452600080516020611d7883398151915260245260446000fd5b336000908152600080516020611db8833981519152602052604090205460ff161561164257565b63e2517d3f60e01b60005233600452600080516020611d5883398151915260245260446000fd5b6000818152600080516020611d988339815191526020908152604080832033845290915290205460ff161561169b5750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b0381166000908152600080516020611e18833981519152602052604090205460ff16611739576001600160a01b03166000818152600080516020611e1883398151915260205260408120805460ff19166001179055339190600080516020611d7883398151915290600080516020611d188339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020611db8833981519152602052604090205460ff16611739576001600160a01b03166000818152600080516020611db883398151915260205260408120805460ff19166001179055339190600080516020611d5883398151915290600080516020611d188339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16611739576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff19166001179055339190600080516020611d188339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff16611739576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a90600080516020611d188339815191529080a4600190565b6000818152600080516020611d98833981519152602090815260408083206001600160a01b038616845290915290205460ff166119ab576000818152600080516020611d98833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff1916600117905533929190600080516020611d188339815191529080a4600190565b5050600090565b6001600160a01b0381166000908152600080516020611e18833981519152602052604090205460ff1615611739576001600160a01b03166000818152600080516020611e1883398151915260205260408120805460ff19169055339190600080516020611d78833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381166000908152600080516020611db8833981519152602052604090205460ff1615611739576001600160a01b03166000818152600080516020611db883398151915260205260408120805460ff19169055339190600080516020611d58833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020611d98833981519152602090815260408083206001600160a01b038616845290915290205460ff16156119ab576000818152600080516020611d98833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6002600080516020611df88339815191525414611ba9576002600080516020611df883398151915255565b633ee5aeb560e01b60005260046000fd5b60ff600080516020611dd88339815191525416611bd357565b63d93c066560e01b60005260046000fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152611c1f916102e96064836113c3565b565b906000602091828151910182855af115611c7c576000513d611c7357506001600160a01b0381163b155b611c525750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b60011415611c4b565b6040513d6000823e3d90fd5b60ff600080516020611e388339815191525460401c1615611ca557565b631afcd79f60e31b60005260046000fd5b90611cdc5750805115611ccb57805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611d0e575b611ced575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15611ce556fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8619cecd8b9e095ab43867f5b69d492180450fe862e6b50bfbfb24b75dd84c8a10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009e55e7b9c223644eee376bcbcf651816b24106427c658526e048949da61b2c08cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00395f4e35a18c2b5e556b3b2ff855307e76c0b3cc1ca71e19a70e83037e08e7b3f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212206353f97c2bca70990562e73c05a556d800ce6f131c5458a0f2aa0fe6f1af58ff64736f6c634300081a0033"; - -type ERC20CustodyConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: ERC20CustodyConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class ERC20Custody__factory extends ContractFactory { - constructor(...args: ERC20CustodyConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(overrides || {}); - } - override deploy(overrides?: NonPayableOverrides & { from?: string }) { - return super.deploy(overrides || {}) as Promise< - ERC20Custody & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): ERC20Custody__factory { - return super.connect(runner) as ERC20Custody__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): ERC20CustodyInterface { - return new Interface(_abi) as ERC20CustodyInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): ERC20Custody { - return new Contract(address, _abi, runner) as unknown as ERC20Custody; - } -} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/GatewayEVM__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/GatewayEVM__factory.ts deleted file mode 100644 index 3d552cf9..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/GatewayEVM__factory.ts +++ /dev/null @@ -1,1533 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; -import type { NonPayableOverrides } from "../../../../../common"; -import type { - GatewayEVM, - GatewayEVMInterface, -} from "../../../../../@zetachain/protocol-contracts/contracts/evm/GatewayEVM"; - -const _abi = [ - { - inputs: [], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [], - name: "AccessControlBadConfirmation", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "bytes32", - name: "neededRole", - type: "bytes32", - }, - ], - name: "AccessControlUnauthorizedAccount", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - ], - name: "AddressEmptyCode", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "ApprovalFailed", - type: "error", - }, - { - inputs: [], - name: "CallOnRevertNotSupported", - type: "error", - }, - { - inputs: [], - name: "ConnectorInitialized", - type: "error", - }, - { - inputs: [], - name: "CustodyInitialized", - type: "error", - }, - { - inputs: [], - name: "DepositFailed", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "implementation", - type: "address", - }, - ], - name: "ERC1967InvalidImplementation", - type: "error", - }, - { - inputs: [], - name: "ERC1967NonPayable", - type: "error", - }, - { - inputs: [], - name: "EnforcedPause", - type: "error", - }, - { - inputs: [], - name: "ExecutionFailed", - type: "error", - }, - { - inputs: [], - name: "ExpectedPause", - type: "error", - }, - { - inputs: [], - name: "FailedCall", - type: "error", - }, - { - inputs: [], - name: "InsufficientERC20Amount", - type: "error", - }, - { - inputs: [], - name: "InsufficientETHAmount", - type: "error", - }, - { - inputs: [], - name: "InvalidInitialization", - type: "error", - }, - { - inputs: [], - name: "NotAllowedToCallOnCall", - type: "error", - }, - { - inputs: [], - name: "NotAllowedToCallOnRevert", - type: "error", - }, - { - inputs: [], - name: "NotInitializing", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "NotWhitelistedInCustody", - type: "error", - }, - { - inputs: [ - { - internalType: "uint256", - name: "provided", - type: "uint256", - }, - { - internalType: "uint256", - name: "maximum", - type: "uint256", - }, - ], - name: "PayloadSizeExceeded", - type: "error", - }, - { - inputs: [], - name: "ReentrancyGuardReentrantCall", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "SafeERC20FailedOperation", - type: "error", - }, - { - inputs: [], - name: "UUPSUnauthorizedCallContext", - type: "error", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "slot", - type: "bytes32", - }, - ], - name: "UUPSUnsupportedProxiableUUID", - type: "error", - }, - { - inputs: [], - name: "ZETANotSupported", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "receiver", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "payload", - type: "bytes", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - indexed: false, - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "Called", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "receiver", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "asset", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "payload", - type: "bytes", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - indexed: false, - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "Deposited", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "receiver", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "asset", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "payload", - type: "bytes", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - indexed: false, - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "DepositedAndCalled", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "destination", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "Executed", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "ExecutedWithERC20", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint64", - name: "version", - type: "uint64", - }, - ], - name: "Initialized", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "Paused", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - ], - indexed: false, - internalType: "struct RevertContext", - name: "revertContext", - type: "tuple", - }, - ], - name: "Reverted", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - indexed: true, - internalType: "bytes32", - name: "previousAdminRole", - type: "bytes32", - }, - { - indexed: true, - internalType: "bytes32", - name: "newAdminRole", - type: "bytes32", - }, - ], - name: "RoleAdminChanged", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - indexed: true, - internalType: "address", - name: "account", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "RoleGranted", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - indexed: true, - internalType: "address", - name: "account", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "RoleRevoked", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "Unpaused", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "oldTSSAddress", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "newTSSAddress", - type: "address", - }, - ], - name: "UpdatedGatewayTSSAddress", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "implementation", - type: "address", - }, - ], - name: "Upgraded", - type: "event", - }, - { - inputs: [], - name: "ASSET_HANDLER_ROLE", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "DEFAULT_ADMIN_ROLE", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "MAX_PAYLOAD_SIZE", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "PAUSER_ROLE", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "TSS_ROLE", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "UPGRADE_INTERFACE_VERSION", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - { - internalType: "bytes", - name: "payload", - type: "bytes", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "call", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "custody", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "deposit", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "deposit", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - { - internalType: "bytes", - name: "payload", - type: "bytes", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "depositAndCall", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "bytes", - name: "payload", - type: "bytes", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "depositAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - ], - internalType: "struct MessageContext", - name: "messageContext", - type: "tuple", - }, - { - internalType: "address", - name: "destination", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "execute", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "destination", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - ], - internalType: "struct RevertContext", - name: "revertContext", - type: "tuple", - }, - ], - name: "executeRevert", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - ], - internalType: "struct MessageContext", - name: "messageContext", - type: "tuple", - }, - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "executeWithERC20", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - ], - name: "getRoleAdmin", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "grantRole", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "hasRole", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "tssAddress_", - type: "address", - }, - { - internalType: "address", - name: "zetaToken_", - type: "address", - }, - { - internalType: "address", - name: "admin_", - type: "address", - }, - ], - name: "initialize", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "pause", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "paused", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "proxiableUUID", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - internalType: "address", - name: "callerConfirmation", - type: "address", - }, - ], - name: "renounceRole", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - ], - internalType: "struct RevertContext", - name: "revertContext", - type: "tuple", - }, - ], - name: "revertWithERC20", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "revokeRole", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "zetaConnector_", - type: "address", - }, - ], - name: "setConnector", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "custody_", - type: "address", - }, - ], - name: "setCustody", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes4", - name: "interfaceId", - type: "bytes4", - }, - ], - name: "supportsInterface", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "tssAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "unpause", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newTSSAddress", - type: "address", - }, - ], - name: "updateTSSAddress", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newImplementation", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "upgradeToAndCall", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [], - name: "zetaConnector", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "zetaToken", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -const _bytecode = - "0x60a080604052346100ea57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b6040516128fe90816100f0823960805181818161120b01526112db0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880610054565b63f92ee8a960e01b60005260046000fd5b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a7146119015750806310188aef1461188f578063102614b01461179f5780631becceb4146116c457806321e093b11461169b578063248a9ca3146116745780632f2ff15d1461164257806336568abe146115fd57806338e22527146115035780633f4ba83a146114815780634f1ef2861461126057806352d1902d146111f857806357bec62f146111cf5780635b112591146111a65780635c975abb146111765780635d62c8601461113b578063726ac97c1461100c578063744b9b8b14610f295780637bbe9afa14610b1c5780638456cb5914610aa757806391d1485414610a4e578063950837aa146109ab578063a217fddf1461098f578063a2ba193414610972578063a783c78914610949578063aa0c0fc1146107f8578063ad3cb1cc146107ab578063ae7a3a6f1461072f578063c0c53b8b14610519578063cb7ba8e5146103a9578063d09e3b7814610236578063d547741f146101fb578063dda79b75146101d45763e63ab1e91461019757600080fd5b346101d157806003193601126101d15760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b80fd5b50346101d157806003193601126101d157546040516001600160a01b039091168152602090f35b50346101d15760403660031901126101d15761023260043561021b611987565b9061022d61022882611bf9565b611ea1565b6123d1565b5080f35b50346101d15760a03660031901126101d157610250611956565b60243561025b611971565b916064356001600160401b0381116103a55761027b9036906004016119b1565b608435946001600160401b0386116103a157856004019360a0600319883603011261039d576102a8612220565b851561038e576001600160a01b031695861561037f576064016104006102d96102d18388611ae2565b905085611bd6565b116103515750610347927fa795d4377323e4c2d4c346b8050a7dd504c4043be8884c81b8d9690706c8388f94928261031588610339953361224a565b60405197885260018060a01b03166020880152608060408801526080870191611b45565b908482036060860152611b66565b918033930390a380f35b8761036a8461036260449489611ae2565b919050611bd6565b634fe7bc4760e11b8252600452610400602452fd5b63d92e233d60e01b8852600488fd5b63951e19ed60e01b8852600488fd5b8780fd5b8680fd5b8480fd5b5060603660031901126101d1576103be611956565b906024356001600160401b038111610515576103de9036906004016119b1565b604493919335906001600160401b038211610511576080826004019260031990360301126105115761040e612471565b610416611d6f565b61041e612220565b6001600160a01b03831692831561050257848080809334905af1610440611c4a565b50156104f3578394833b156103a557604051636481451b60e11b8152602060048201528581806104736024820188611c92565b038183895af19081156104e85786916104d3575b50506104bb7fde7603a6ed5d07c9f43597ccfe9043d15b66d3284f0de321f5cdf56329e6e035936040519384933485611cf0565b0390a360016000805160206128698339815191525580f35b816104dd91611a90565b6103a5578438610487565b6040513d88823e3d90fd5b632b3f6d1160e21b8452600484fd5b63d92e233d60e01b8552600485fd5b8380fd5b5080fd5b50346101d15760603660031901126101d157610533611956565b61053b611987565b610543611971565b916000805160206128a9833981519152549260ff8460401c1615936001600160401b03811680159081610727575b600114908161071d575b159081610714575b506107055767ffffffffffffffff1981166001176000805160206128a983398151915255846106d8575b506001600160a01b03821690811580156106c7575b6106b8579061061861063b93926105d7612719565b6105df612719565b6105e7612719565b600160008051602061286983398151915255610601612719565b610609612719565b61061281612033565b506120cd565b50610622826120cd565b506001600160601b0360a01b6001541617600155611fad565b5060018060a01b03166001600160601b0360a01b600354161760035561065e5780f35b68ff0000000000000000196000805160206128a983398151915254166000805160206128a9833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b63d92e233d60e01b8652600486fd5b506001600160a01b038416156105c2565b68ffffffffffffffffff191668010000000000000001176000805160206128a983398151915255386105ad565b63f92ee8a960e01b8652600486fd5b90501538610583565b303b15915061057b565b869150610571565b50346101d15760203660031901126101d157610749611956565b610751611d1c565b6001600160a01b03811690811561079c5782546001600160a01b031661078d5761077a90611eeb565b5081546001600160a01b03191617815580f35b631666fe6f60e31b8352600483fd5b63d92e233d60e01b8352600483fd5b50346101d157806003193601126101d157506107f46040516107ce604082611a90565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611a6b565b0390f35b50346101d15760a03660031901126101d157610812611956565b61081a611987565b906044356064356001600160401b0381116103a55761083d9036906004016119b1565b91608435926001600160401b0384116103a1576080846004019460031990360301126103a15761086b612471565b610873611e2f565b61087b612220565b811561093a576001600160a01b03861694851561037f576001600160a01b0316956108a890839088612682565b843b156103a157604051636481451b60e11b81526020600482015287908181806108d5602482018a611c92565b0381838b5af1801561092f5761091a575b50507fde7603a6ed5d07c9f43597ccfe9043d15b66d3284f0de321f5cdf56329e6e035936104bb9160405194859485611cf0565b8161092491611a90565b6103a15786386108e6565b6040513d84823e3d90fd5b63951e19ed60e01b8752600487fd5b50346101d157806003193601126101d15760206040516000805160206127a98339815191528152f35b50346101d157806003193601126101d15760206040516104008152f35b50346101d157806003193601126101d157602090604051908152f35b50346101d15760203660031901126101d1576109c5611956565b6109cd611d1c565b6001600160a01b03811690811561079c576001546109fe91906109f8906001600160a01b031661233b565b50611fad565b50600154604080516001600160a01b0383168152602081018490527f3a7b8d6372645f474fe60c115a2ef21421306a3ed4664fa0023c461413c085799190a16001600160a01b0319161760015580f35b50346101d15760403660031901126101d1576040610a6a611987565b916004358152600080516020612829833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346101d157806003193601126101d157610ac0611dbd565b610ac8612220565b600160ff19600080516020612849833981519152541617600080516020612849833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101d157366003190160a08112610515576020136101d157610b3e611987565b610b46611971565b906064356084356001600160401b0381116103a557610b699036906004016119b1565b610b74929192612471565b610b7c611e2f565b610b84612220565b8115610f1a576001600160a01b038516948515610f0b57610ba58186612622565b15610eea5760405163095ea7b360e01b81526001600160a01b03828116600483015260248201859052861695906020816044818c8b5af1908115610e55578991610ecb575b5015610eb457610c1b91906001600160a01b03610c05611c1a565b16610ea957610c1584878461258a565b50612622565b15610e92576040516370a0823160e01b8152306004820152602081602481885afa908115610d52578791610e60575b5080610c73575b50906104bb600080516020612809833981519152939260405193849384611c30565b6003546001600160a01b03168503610dbe5760025460405163095ea7b360e01b81526001600160a01b039091166004820152602481018290526020816044818b8a5af1908115610db3578891610d84575b5015610d61576002548791906001600160a01b0316803b15610d5d5760248392604051948593849263743e0c9b60e01b845260048401525af18015610d5257610d28575b50906104bb60008051602061280983398151915293925b91929350610c51565b86610d48600080516020612809833981519152959493986104bb93611a90565b9691929350610d08565b6040513d89823e3d90fd5b8280fd5b60025463482b72c160e11b885260048690526001600160a01b0316602452604487fd5b610da6915060203d602011610dac575b610d9e8183611a90565b810190611c7a565b38610cc4565b503d610d94565b6040513d8a823e3d90fd5b8654604051636c9b2a3f60e11b8152600481018790526001600160a01b0390911690602081602481855afa908115610e55578991610e36575b5015610e225791610e1d6104bb9260008051602061280983398151915296959488612682565b610d1f565b631387a34960e01b88526004869052602488fd5b610e4f915060203d602011610dac57610d9e8183611a90565b38610df7565b6040513d8b823e3d90fd5b90506020813d602011610e8a575b81610e7b60209383611a90565b810103126103a1575138610c4a565b3d9150610e6e565b604486868663482b72c160e11b8352600452602452fd5b610c158487846124ad565b604488888863482b72c160e11b8352600452602452fd5b610ee4915060203d602011610dac57610d9e8183611a90565b38610bea565b63482b72c160e11b87526001600160a01b0385166004526024869052604487fd5b63d92e233d60e01b8752600487fd5b63951e19ed60e01b8652600486fd5b50610f33366119de565b909192610f3e612220565b3415610ffd576001600160a01b03169283156105025760608201610400610f70610f688386611ae2565b905086611bd6565b11610fec5750848080803460018060a01b03600154165af1610f90611c4a565b5015610fdd577fa795d4377323e4c2d4c346b8050a7dd504c4043be8884c81b8d9690706c8388f916103396103479260405195348752886020880152608060408801526080870191611b45565b6379cacff160e01b8552600485fd5b8561036a8561036260449487611ae2565b633b38932f60e11b8552600485fd5b5060403660031901126101d157611021611956565b602435906001600160401b038211610d5d57816004019060a060031984360301126105115761104e612220565b341561112c576001600160a01b031691821561111d576064016104006110748284611ae2565b9050116110fa5750828080803460018060a01b03600154165af1611096611c4a565b50156110eb577fc6f891b65320c682b217616a62b51f218fee95d5f0ba83e758ef9ab4ee8e975c610347604051923484528560208501526080604085015285608085015260a0606085015260a0840190611b66565b6379cacff160e01b8352600483fd5b6111078491604493611ae2565b634fe7bc4760e11b835260045250610400602452fd5b63d92e233d60e01b8452600484fd5b633b38932f60e11b8452600484fd5b50346101d157806003193601126101d15760206040517f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b98152f35b50346101d157806003193601126101d157602060ff60008051602061284983398151915254166040519015158152f35b50346101d157806003193601126101d1576001546040516001600160a01b039091168152602090f35b50346101d157806003193601126101d1576002546040516001600160a01b039091168152602090f35b50346101d157806003193601126101d1577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036112515760206040516000805160206127e98339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101d157611275611956565b602435906001600160401b038211610d5d5736602383011215610d5d57816004013590836112a283611ac7565b936112b06040519586611a90565b83855260208501933660248284010111610d5d57806024602093018637850101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630811490811561145e575b5061144f57611313611d1c565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa86918161141b575b5061135657634c9c8ce360e01b86526004859052602486fd5b93846000805160206127e98339815191528796036114095750823b156113f7576000805160206127e983398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a28051156113dc576102329382915190845af46113d6611c4a565b91612747565b50505050346113e85780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011611447575b8161143760209383611a90565b810103126103a15751903861133d565b3d915061142a565b63703e46dd60e11b8452600484fd5b6000805160206127e9833981519152546001600160a01b03161415905038611306565b50346101d157806003193601126101d15761149a611dbd565b6000805160206128498339815191525460ff8116156114f45760ff1916600080516020612849833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50366003190160608112610515576020136101d157611520611987565b6044356001600160401b038111610d5d5761153f9036906004016119b1565b61154a929192612471565b611552611d6f565b61155a612220565b6001600160a01b038216918215610502576107f494507fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f919081856001600160a01b036115a5611c1a565b166115ee576115b39261258a565b935b6115c56040519283923484611c30565b0390a2600160008051602061286983398151915255604051918291602083526020830190611a6b565b6115f7926124ad565b936115b5565b50346101d15760403660031901126101d157611617611987565b336001600160a01b0382160361163357610232906004356123d1565b63334bd91960e11b8252600482fd5b50346101d15760403660031901126101d157610232600435611662611987565b9061166f61022882611bf9565b612189565b50346101d15760203660031901126101d1576020611693600435611bf9565b604051908152f35b50346101d157806003193601126101d1576003546040516001600160a01b039091168152602090f35b50346101d1576116d3366119de565b9190926116de612220565b6020830135801515810361179b5761178c576001600160a01b0316928315610502576117186117106060850185611ae2565b905082611bd6565b61040081116117745750907fd34634f30f94a646fdf4ce7078f38fc5fa0d3f0b193658facea4e3e43330d9749161176e61175f604051938493604085526040850191611b45565b82810360208401523395611b66565b0390a380f35b634fe7bc4760e11b8652600452610400602452604485fd5b630cda5ff960e11b8552600485fd5b8580fd5b50346101d15760803660031901126101d1576117b9611956565b6024356117c4611971565b91606435926001600160401b0384116103a557836004019160a0600319863603011261179b576117f2612220565b8315610f1a576001600160a01b03169384156106b8576064016104006118188285611ae2565b90501161188257507fc6f891b65320c682b217616a62b51f218fee95d5f0ba83e758ef9ab4ee8e975c918161185185610347943361224a565b60405194855260018060a01b031660208501526080604085015285608085015260a0606085015260a0840190611b66565b8561110760449285611ae2565b50346101d15760203660031901126101d1576118a9611956565b6118b1611d1c565b6001600160a01b03811690811561079c576002546001600160a01b03166118f2576118db90611eeb565b506001600160601b0360a01b600254161760025580f35b630646e00b60e11b8352600483fd5b9050346105155760203660031901126105155760043563ffffffff60e01b8116809103610d5d5760209250637965db0b60e01b8114908115611945575b5015158152f35b6301ffc9a760e01b1490503861193e565b600435906001600160a01b038216820361196c57565b600080fd5b604435906001600160a01b038216820361196c57565b602435906001600160a01b038216820361196c57565b35906001600160a01b038216820361196c57565b9181601f8401121561196c578235916001600160401b03831161196c576020838186019501011161196c57565b90606060031983011261196c576004356001600160a01b038116810361196c57916024356001600160401b03811161196c5781611a1d916004016119b1565b92909291604435906001600160401b03821161196c5760a090829003600319011261196c5760040190565b60005b838110611a5b5750506000910152565b8181015183820152602001611a4b565b90602091611a8481518092818552858086019101611a48565b601f01601f1916010190565b90601f801991011681019081106001600160401b03821117611ab157604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b038111611ab157601f01601f191660200190565b903590601e198136030182121561196c57018035906001600160401b03821161196c5760200191813603831361196c57565b9035601e198236030181121561196c5701602081359101916001600160401b03821161196c57813603831361196c57565b908060209392818452848401376000828201840152601f01601f1916010190565b906001600160a01b03611b788361199d565b168152602082013580151580910361196c5760208201526001600160a01b03611ba36040840161199d565b166040820152608080611bcd611bbc6060860186611b14565b60a0606087015260a0860191611b45565b93013591015290565b91908201809211611be357565b634e487b7160e01b600052601160045260246000fd5b60005260008051602061282983398151915260205260016040600020015490565b6004356001600160a01b038116810361196c5790565b604090611c47949281528160208201520191611b45565b90565b3d15611c75573d90611c5b82611ac7565b91611c696040519384611a90565b82523d6000602084013e565b606090565b9081602091031261196c5751801515810361196c5790565b611c479190608090611ce0906001600160a01b03611caf8261199d565b1684526001600160a01b03611cc66020830161199d565b166020850152604081013560408501526060810190611b14565b9190928160608201520191611b45565b9291611c479492611d0e928552606060208601526060850191611b45565b916040818403910152611c92565b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1615611d5557565b63e2517d3f60e01b60005233600452600060245260446000fd5b336000908152600080516020612889833981519152602052604090205460ff1615611d9657565b63e2517d3f60e01b600052336004526000805160206127a983398151915260245260446000fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1615611df657565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527f8e1abba0e730025cbab32adfc4f51c1ad3a74360c4b2cfb4780a6c5f316e0509602052604090205460ff1615611e6857565b63e2517d3f60e01b600052336004527f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b960245260446000fd5b60008181526000805160206128298339815191526020908152604080832033845290915290205460ff1615611ed35750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b03811660009081527f8e1abba0e730025cbab32adfc4f51c1ad3a74360c4b2cfb4780a6c5f316e0509602052604090205460ff16611fa7576001600160a01b031660008181527f8e1abba0e730025cbab32adfc4f51c1ad3a74360c4b2cfb4780a6c5f316e050960205260408120805460ff191660011790553391907f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b9906000805160206127c98339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020612889833981519152602052604090205460ff16611fa7576001600160a01b0316600081815260008051602061288983398151915260205260408120805460ff191660011790553391906000805160206127a9833981519152906000805160206127c98339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16611fa7576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391906000805160206127c98339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff16611fa7576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a906000805160206127c98339815191529080a4600190565b6000818152600080516020612829833981519152602090815260408083206001600160a01b038616845290915290205460ff16612219576000818152600080516020612829833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291906000805160206127c98339815191529080a4600190565b5050600090565b60ff600080516020612849833981519152541661223957565b63d93c066560e01b60005260046000fd5b60035492939290916001600160a01b03908116911681036122765763e4dd681d60e01b60005260046000fd5b600054604051636c9b2a3f60e11b8152600481018390526001600160a01b039091169490602081602481895afa90811561232f57600091612310575b50156122fb576122f99394604051936323b872dd60e01b602086015260018060a01b0316602485015260448401526064830152606482526122f4608483611a90565b6126be565b565b50631387a34960e01b60005260045260246000fd5b612329915060203d602011610dac57610d9e8183611a90565b386122b2565b6040513d6000823e3d90fd5b6001600160a01b0381166000908152600080516020612889833981519152602052604090205460ff1615611fa7576001600160a01b0316600081815260008051602061288983398151915260205260408120805460ff191690553391906000805160206127a9833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020612829833981519152602090815260408083206001600160a01b038616845290915290205460ff1615612219576000818152600080516020612829833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6002600080516020612869833981519152541461249c57600260008051602061286983398151915255565b633ee5aeb560e01b60005260046000fd5b6040516319db301560e21b815292916004356001600160a01b03811692919083900361196c57846124f581949260009683946004850152604060248501526044840191611b45565b039134906001600160a01b03165af190811561232f57600091612516575090565b903d8082843e6125268184611a90565b820191602081840312610515578051906001600160401b038211610d5d570182601f820112156105155780519161255c83611ac7565b9361256a6040519586611a90565b838552602084840101116101d1575090611c479160208085019101611a48565b9060048310156125d2575b908260009392849360405192839283378101848152039134905af16125b8611c4a565b90156125c15790565b632b3f6d1160e21b60005260046000fd5b9081356001600160e01b0319166319db301560e21b811461261157636481451b60e11b146126005790612595565b6379a2cd4b60e11b60005260046000fd5b63ed69977560e01b60005260046000fd5b60405163095ea7b360e01b81526001600160a01b039283166004820152600060248201819052909260209284926044928492165af190811561232f57600091612669575090565b611c47915060203d602011610dac57610d9e8183611a90565b60405163a9059cbb60e01b60208201526001600160a01b039290921660248301526044808301939093529181526122f9916122f4606483611a90565b906000602091828151910182855af11561232f576000513d61271057506001600160a01b0381163b155b6126ef5750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b600114156126e8565b60ff6000805160206128a98339815191525460401c161561273657565b631afcd79f60e31b60005260046000fd5b9061276d575080511561275c57805190602001fd5b63d6bda27560e01b60005260046000fd5b8151158061279f575b61277e575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b1561277656fe0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b738202dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f007bdc20c26beb8eedd348733c28a5c4c2f7f7f1183cba8898195258fcdca273bcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220e3ceedd3e1180302ea91f43717e98df4951453d3ade1c5982edc0e113031242064736f6c634300081a0033"; - -type GatewayEVMConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: GatewayEVMConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class GatewayEVM__factory extends ContractFactory { - constructor(...args: GatewayEVMConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(overrides || {}); - } - override deploy(overrides?: NonPayableOverrides & { from?: string }) { - return super.deploy(overrides || {}) as Promise< - GatewayEVM & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): GatewayEVM__factory { - return super.connect(runner) as GatewayEVM__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): GatewayEVMInterface { - return new Interface(_abi) as GatewayEVMInterface; - } - static connect(address: string, runner?: ContractRunner | null): GatewayEVM { - return new Contract(address, _abi, runner) as unknown as GatewayEVM; - } -} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorBase__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorBase__factory.ts deleted file mode 100644 index 0e8110af..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorBase__factory.ts +++ /dev/null @@ -1,817 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - ZetaConnectorBase, - ZetaConnectorBaseInterface, -} from "../../../../../@zetachain/protocol-contracts/contracts/evm/ZetaConnectorBase"; - -const _abi = [ - { - inputs: [], - name: "AccessControlBadConfirmation", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "bytes32", - name: "neededRole", - type: "bytes32", - }, - ], - name: "AccessControlUnauthorizedAccount", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - ], - name: "AddressEmptyCode", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "implementation", - type: "address", - }, - ], - name: "ERC1967InvalidImplementation", - type: "error", - }, - { - inputs: [], - name: "ERC1967NonPayable", - type: "error", - }, - { - inputs: [], - name: "EnforcedPause", - type: "error", - }, - { - inputs: [], - name: "ExpectedPause", - type: "error", - }, - { - inputs: [], - name: "FailedCall", - type: "error", - }, - { - inputs: [], - name: "InvalidInitialization", - type: "error", - }, - { - inputs: [], - name: "NotInitializing", - type: "error", - }, - { - inputs: [], - name: "ReentrancyGuardReentrantCall", - type: "error", - }, - { - inputs: [], - name: "UUPSUnauthorizedCallContext", - type: "error", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "slot", - type: "bytes32", - }, - ], - name: "UUPSUnsupportedProxiableUUID", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint64", - name: "version", - type: "uint64", - }, - ], - name: "Initialized", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "Paused", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - indexed: true, - internalType: "bytes32", - name: "previousAdminRole", - type: "bytes32", - }, - { - indexed: true, - internalType: "bytes32", - name: "newAdminRole", - type: "bytes32", - }, - ], - name: "RoleAdminChanged", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - indexed: true, - internalType: "address", - name: "account", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "RoleGranted", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - indexed: true, - internalType: "address", - name: "account", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "RoleRevoked", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "Unpaused", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "oldTSSAddress", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "newTSSAddress", - type: "address", - }, - ], - name: "UpdatedZetaConnectorTSSAddress", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "implementation", - type: "address", - }, - ], - name: "Upgraded", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "Withdrawn", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "WithdrawnAndCalled", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - ], - indexed: false, - internalType: "struct RevertContext", - name: "revertContext", - type: "tuple", - }, - ], - name: "WithdrawnAndReverted", - type: "event", - }, - { - inputs: [], - name: "DEFAULT_ADMIN_ROLE", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "PAUSER_ROLE", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "TSS_ROLE", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "UPGRADE_INTERFACE_VERSION", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "WITHDRAWER_ROLE", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "gateway", - outputs: [ - { - internalType: "contract IGatewayEVM", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - ], - name: "getRoleAdmin", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "grantRole", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "hasRole", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "gateway_", - type: "address", - }, - { - internalType: "address", - name: "zetaToken_", - type: "address", - }, - { - internalType: "address", - name: "tssAddress_", - type: "address", - }, - { - internalType: "address", - name: "admin_", - type: "address", - }, - ], - name: "initialize", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "pause", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "paused", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "proxiableUUID", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "receiveTokens", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - internalType: "address", - name: "callerConfirmation", - type: "address", - }, - ], - name: "renounceRole", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "revokeRole", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes4", - name: "interfaceId", - type: "bytes4", - }, - ], - name: "supportsInterface", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "tssAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "unpause", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newTSSAddress", - type: "address", - }, - ], - name: "updateTSSAddress", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newImplementation", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "upgradeToAndCall", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes32", - name: "internalSendHash", - type: "bytes32", - }, - ], - name: "withdraw", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - ], - internalType: "struct MessageContext", - name: "messageContext", - type: "tuple", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - internalType: "bytes32", - name: "internalSendHash", - type: "bytes32", - }, - ], - name: "withdrawAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - internalType: "bytes32", - name: "internalSendHash", - type: "bytes32", - }, - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - ], - internalType: "struct RevertContext", - name: "revertContext", - type: "tuple", - }, - ], - name: "withdrawAndRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "zetaToken", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -export class ZetaConnectorBase__factory { - static readonly abi = _abi; - static createInterface(): ZetaConnectorBaseInterface { - return new Interface(_abi) as ZetaConnectorBaseInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): ZetaConnectorBase { - return new Contract(address, _abi, runner) as unknown as ZetaConnectorBase; - } -} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNative__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNative__factory.ts deleted file mode 100644 index 0c19b8bc..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNative__factory.ts +++ /dev/null @@ -1,876 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; -import type { NonPayableOverrides } from "../../../../../common"; -import type { - ZetaConnectorNative, - ZetaConnectorNativeInterface, -} from "../../../../../@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNative"; - -const _abi = [ - { - inputs: [], - name: "AccessControlBadConfirmation", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "bytes32", - name: "neededRole", - type: "bytes32", - }, - ], - name: "AccessControlUnauthorizedAccount", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - ], - name: "AddressEmptyCode", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "implementation", - type: "address", - }, - ], - name: "ERC1967InvalidImplementation", - type: "error", - }, - { - inputs: [], - name: "ERC1967NonPayable", - type: "error", - }, - { - inputs: [], - name: "EnforcedPause", - type: "error", - }, - { - inputs: [], - name: "ExpectedPause", - type: "error", - }, - { - inputs: [], - name: "FailedCall", - type: "error", - }, - { - inputs: [], - name: "InvalidInitialization", - type: "error", - }, - { - inputs: [], - name: "NotInitializing", - type: "error", - }, - { - inputs: [], - name: "ReentrancyGuardReentrantCall", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "SafeERC20FailedOperation", - type: "error", - }, - { - inputs: [], - name: "UUPSUnauthorizedCallContext", - type: "error", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "slot", - type: "bytes32", - }, - ], - name: "UUPSUnsupportedProxiableUUID", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint64", - name: "version", - type: "uint64", - }, - ], - name: "Initialized", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "Paused", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - indexed: true, - internalType: "bytes32", - name: "previousAdminRole", - type: "bytes32", - }, - { - indexed: true, - internalType: "bytes32", - name: "newAdminRole", - type: "bytes32", - }, - ], - name: "RoleAdminChanged", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - indexed: true, - internalType: "address", - name: "account", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "RoleGranted", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - indexed: true, - internalType: "address", - name: "account", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "RoleRevoked", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "Unpaused", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "oldTSSAddress", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "newTSSAddress", - type: "address", - }, - ], - name: "UpdatedZetaConnectorTSSAddress", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "implementation", - type: "address", - }, - ], - name: "Upgraded", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "Withdrawn", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "WithdrawnAndCalled", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - ], - indexed: false, - internalType: "struct RevertContext", - name: "revertContext", - type: "tuple", - }, - ], - name: "WithdrawnAndReverted", - type: "event", - }, - { - inputs: [], - name: "DEFAULT_ADMIN_ROLE", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "PAUSER_ROLE", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "TSS_ROLE", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "UPGRADE_INTERFACE_VERSION", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "WITHDRAWER_ROLE", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "gateway", - outputs: [ - { - internalType: "contract IGatewayEVM", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - ], - name: "getRoleAdmin", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "grantRole", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "hasRole", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "gateway_", - type: "address", - }, - { - internalType: "address", - name: "zetaToken_", - type: "address", - }, - { - internalType: "address", - name: "tssAddress_", - type: "address", - }, - { - internalType: "address", - name: "admin_", - type: "address", - }, - ], - name: "initialize", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "pause", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "paused", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "proxiableUUID", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "receiveTokens", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - internalType: "address", - name: "callerConfirmation", - type: "address", - }, - ], - name: "renounceRole", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "revokeRole", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes4", - name: "interfaceId", - type: "bytes4", - }, - ], - name: "supportsInterface", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "tssAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "unpause", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newTSSAddress", - type: "address", - }, - ], - name: "updateTSSAddress", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newImplementation", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "upgradeToAndCall", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - name: "withdraw", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - ], - internalType: "struct MessageContext", - name: "messageContext", - type: "tuple", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - name: "withdrawAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - ], - internalType: "struct RevertContext", - name: "revertContext", - type: "tuple", - }, - ], - name: "withdrawAndRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "zetaToken", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -const _bytecode = - "0x60a0806040523460295730608052611bc4908161002f8239608051818181610bd40152610ca50152f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a71461107a57508063106e629014610fe2578063116191b614610fbb57806321e093b114610f92578063248a9ca314610f6b5780632f2ff15d14610f3957806336568abe14610ef45780633f4ba83a14610e725780634f1ef28614610c2957806352d1902d14610bc15780635b11259114610b985780635c975abb14610b685780636f8728ad146109a45780636fb9a7af1461081a578063743e0c9b146107b35780638456cb591461073e57806385f438c11461071557806391d14854146106bc578063950837aa146105ea578063a217fddf146105ce578063a783c78914610593578063ad3cb1cc14610519578063d547741f146104de578063e63ab1e9146104a35763f8c8765e1461013457600080fd5b346104a05760803660031901126104a05761014d6110cf565b6101556110ea565b906044356001600160a01b03811680820361049c576064356001600160a01b0381169490919085830361049857600080516020611b6f833981519152549567ffffffffffffffff60ff8860401c1615971680159081610490575b6001149081610486575b15908161047d575b5061046e57866101cf611259565b61043c575b600080516020611b6f833981519152549567ffffffffffffffff60ff8860401c1615971680159081610434575b600114908161042a575b159081610421575b506104125786610221611259565b6103e0575b6001600160a01b03169081159081156103ce575b81156103c5575b81156103bc575b506103ad57916102f49493916102ee936102606119df565b6102686119df565b6102706119df565b6001600080516020611b0f8339815191525561028a6119df565b6102926119df565b6001600160601b0360a01b8a541617895560018060a01b03166001600160601b0360a01b60015416176001556001600160601b0360a01b60025416176002556102da816115ad565b506102e483611489565b506102ee83611515565b50611647565b50610356575b6103015780f35b60ff60401b19600080516020611b6f8339815191525416600080516020611b6f833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b60ff60401b19600080516020611b6f8339815191525416600080516020611b6f833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a16102fa565b63d92e233d60e01b8852600488fd5b90501538610248565b84159150610241565b6001600160a01b03841615915061023a565b600160401b60ff60401b19600080516020611b6f833981519152541617600080516020611b6f83398151915255610226565b63f92ee8a960e01b8952600489fd5b90501538610213565b303b15915061020b565b889150610201565b600160401b60ff60401b19600080516020611b6f833981519152541617600080516020611b6f833981519152556101d4565b63f92ee8a960e01b8852600488fd5b905015386101c1565b303b1591506101b9565b8891506101af565b8680fd5b8480fd5b80fd5b50346104a057806003193601126104a05760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346104a05760403660031901126104a0576105156004356104fe6110ea565b9061051061050b82611196565b6113d8565b6118d8565b5080f35b50346104a057806003193601126104a05760408051916105398284611114565b60058352640352e302e360dc1b6020840152815192839160208352815191826020850152815b83811061057c575050828201840152601f01601f19168101030190f35b60208282018101518883018801528795500161055f565b50346104a057806003193601126104a05760206040517f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb8152f35b50346104a057806003193601126104a057602090604051908152f35b50346104a05760203660031901126104a0576106046110cf565b61060c611385565b6001600160a01b0381169081156106ad5760025461065d9190610637906001600160a01b031661179a565b5060025461064d906001600160a01b0316611830565b5061065781611489565b50611515565b50600254604080516001600160a01b0383168152602081018490527f33770ab682353c17917ad3e667f05905fc8dda00671ef1ed33bef9bc8db0323e9190a16001600160a01b0319161760025580f35b63d92e233d60e01b8352600483fd5b50346104a05760403660031901126104a05760406106d86110ea565b916004358152600080516020611acf833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346104a057806003193601126104a0576020604051600080516020611aaf8339815191528152f35b50346104a057806003193601126104a057610757611313565b61075f611422565b600160ff19600080516020611aef833981519152541617600080516020611aef833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346104a05760203660031901126104a0576107cd611422565b6001546040516323b872dd60e01b60208201523360248201523060448201526004356064808301919091528152610817916001600160a01b0316610812608483611114565b611978565b80f35b50346104a057366003190160a081126109a0576020136104a05761083c6110ea565b60443560643567ffffffffffffffff811161099c5761085f903690600401611168565b9091610869611289565b6108716112c5565b610879611422565b60015485546108969183916001600160a01b03908116911661144c565b84546001546001600160a01b03918216958792909116863b1561099857604051633ddf4d7d60e11b81529183918391906001600160a01b036108d66110cf565b16600484015260248301526001600160a01b0316604482018190526064820186905260a060848301529781838161091160a482018b8d6111b7565b03925af1801561098d57610978575b50506109607f23b9573b29ff81f01c7aa1968188e1cb7d5858b08582e111fdaf386d9ef9bd8d9360405193849384526040602085015260408401916111b7565b0390a26001600080516020611b0f8339815191525580f35b8161098291611114565b61049c578438610920565b6040513d84823e3d90fd5b8280fd5b8380fd5b5080fd5b50346104a05760a03660031901126104a0576109be6110cf565b906024359060443567ffffffffffffffff81116109a0576109e3903690600401611168565b909260843567ffffffffffffffff811161099c5760808160040191600319903603011261099c57610a12611289565b610a1a6112c5565b610a22611422565b6001548454610a3f9184916001600160a01b03908116911661144c565b83546001546001600160a01b03918216979116873b15610b645794610aa78798610ab99383809a996040519687958694859363aa0c0fc160e01b8552600485015260018060a01b03169c8d60248501528b604485015260a060648501528c60a48501916111b7565b828103600319016084840152896111d8565b03925af18015610b5957610b1b575b5061096090610b0d7f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff095969760405195869586526060602087015260608601916111b7565b9083820360408501526111d8565b90610b0d86610b4f7f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff0979861096095611114565b9695505090610ac8565b6040513d88823e3d90fd5b8580fd5b50346104a057806003193601126104a057602060ff600080516020611aef83398151915254166040519015158152f35b50346104a057806003193601126104a0576002546040516001600160a01b039091168152602090f35b50346104a057806003193601126104a0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610c1a576020604051600080516020611a8f8339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126104a057610c3e6110cf565b6024359067ffffffffffffffff821161099857366023830112156109985781600401359083610c6c8361114c565b93610c7a6040519586611114565b8385526020850193366024828401011161099857806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610e4f575b50610e4057610cdd611385565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181610e0c575b50610d2057634c9c8ce360e01b86526004859052602486fd5b9384600080516020611a8f833981519152879603610dfa5750823b15610de857600080516020611a8f83398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115610dcd576105159382915190845af43d15610dc5573d91610da98361114c565b92610db76040519485611114565b83523d85602085013e611a0d565b606091611a0d565b5050505034610dd95780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011610e38575b81610e2860209383611114565b8101031261049857519038610d07565b3d9150610e1b565b63703e46dd60e11b8452600484fd5b600080516020611a8f833981519152546001600160a01b03161415905038610cd0565b50346104a057806003193601126104a057610e8b611313565b600080516020611aef8339815191525460ff811615610ee55760ff1916600080516020611aef833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346104a05760403660031901126104a057610f0e6110ea565b336001600160a01b03821603610f2a57610515906004356118d8565b63334bd91960e11b8252600482fd5b50346104a05760403660031901126104a057610515600435610f596110ea565b90610f6661050b82611196565b611703565b50346104a05760203660031901126104a0576020610f8a600435611196565b604051908152f35b50346104a057806003193601126104a0576001546040516001600160a01b039091168152602090f35b50346104a057806003193601126104a057546040516001600160a01b039091168152602090f35b50346104a05760603660031901126104a057610ffc6110cf565b7f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d560206024359261102b611289565b6110336112c5565b61103b611422565b60015461105490859083906001600160a01b031661144c565b6040519384526001600160a01b031692a26001600080516020611b0f8339815191525580f35b9050346109a05760203660031901126109a05760043563ffffffff60e01b81168091036109985760209250637965db0b60e01b81149081156110be575b5015158152f35b6301ffc9a760e01b149050386110b7565b600435906001600160a01b03821682036110e557565b600080fd5b602435906001600160a01b03821682036110e557565b35906001600160a01b03821682036110e557565b90601f8019910116810190811067ffffffffffffffff82111761113657604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161113657601f01601f191660200190565b9181601f840112156110e55782359167ffffffffffffffff83116110e557602083818601950101116110e557565b600052600080516020611acf83398151915260205260016040600020015490565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160a01b036111e982611100565b1682526001600160a01b0361120060208301611100565b166020830152604081013560408301526060810135601e19823603018112156110e557016020813591019067ffffffffffffffff81116110e55780360382136110e55760808381606061125696015201916111b7565b90565b600167ffffffffffffffff19600080516020611b6f833981519152541617600080516020611b6f83398151915255565b6002600080516020611b0f83398151915254146112b4576002600080516020611b0f83398151915255565b633ee5aeb560e01b60005260046000fd5b336000908152600080516020611b2f833981519152602052604090205460ff16156112ec57565b63e2517d3f60e01b60005233600452600080516020611aaf83398151915260245260446000fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561134c57565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16156113be57565b63e2517d3f60e01b60005233600452600060245260446000fd5b6000818152600080516020611acf8339815191526020908152604080832033845290915290205460ff161561140a5750565b63e2517d3f60e01b6000523360045260245260446000fd5b60ff600080516020611aef833981519152541661143b57565b63d93c066560e01b60005260046000fd5b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815261148791610812606483611114565b565b6001600160a01b0381166000908152600080516020611b2f833981519152602052604090205460ff1661150f576001600160a01b03166000818152600080516020611b2f83398151915260205260408120805460ff19166001179055339190600080516020611aaf83398151915290600080516020611a6f8339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020611b4f833981519152602052604090205460ff1661150f576001600160a01b03166000818152600080516020611b4f83398151915260205260408120805460ff191660011790553391907f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb90600080516020611a6f8339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1661150f576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff19166001179055339190600080516020611a6f8339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1661150f576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a90600080516020611a6f8339815191529080a4600190565b6000818152600080516020611acf833981519152602090815260408083206001600160a01b038616845290915290205460ff16611793576000818152600080516020611acf833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff1916600117905533929190600080516020611a6f8339815191529080a4600190565b5050600090565b6001600160a01b0381166000908152600080516020611b2f833981519152602052604090205460ff161561150f576001600160a01b03166000818152600080516020611b2f83398151915260205260408120805460ff19169055339190600080516020611aaf833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381166000908152600080516020611b4f833981519152602052604090205460ff161561150f576001600160a01b03166000818152600080516020611b4f83398151915260205260408120805460ff191690553391907f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020611acf833981519152602090815260408083206001600160a01b038616845290915290205460ff1615611793576000818152600080516020611acf833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b906000602091828151910182855af1156119d3576000513d6119ca57506001600160a01b0381163b155b6119a95750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b600114156119a2565b6040513d6000823e3d90fd5b60ff600080516020611b6f8339815191525460401c16156119fc57565b631afcd79f60e31b60005260046000fd5b90611a335750805115611a2257805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611a65575b611a44575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15611a3c56fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00395f4e35a18c2b5e556b3b2ff855307e76c0b3cc1ca71e19a70e83037e08e7b37bdc20c26beb8eedd348733c28a5c4c2f7f7f1183cba8898195258fcdca273bcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212202bdad00032481621f5688942b2f2636896811e160d422fd2afd2200c14598d1164736f6c634300081a0033"; - -type ZetaConnectorNativeConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: ZetaConnectorNativeConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class ZetaConnectorNative__factory extends ContractFactory { - constructor(...args: ZetaConnectorNativeConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(overrides || {}); - } - override deploy(overrides?: NonPayableOverrides & { from?: string }) { - return super.deploy(overrides || {}) as Promise< - ZetaConnectorNative & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect( - runner: ContractRunner | null - ): ZetaConnectorNative__factory { - return super.connect(runner) as ZetaConnectorNative__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): ZetaConnectorNativeInterface { - return new Interface(_abi) as ZetaConnectorNativeInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): ZetaConnectorNative { - return new Contract( - address, - _abi, - runner - ) as unknown as ZetaConnectorNative; - } -} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNonNative__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNonNative__factory.ts deleted file mode 100644 index c96445ab..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNonNative__factory.ts +++ /dev/null @@ -1,909 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; -import type { NonPayableOverrides } from "../../../../../common"; -import type { - ZetaConnectorNonNative, - ZetaConnectorNonNativeInterface, -} from "../../../../../@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNonNative"; - -const _abi = [ - { - inputs: [], - name: "AccessControlBadConfirmation", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "bytes32", - name: "neededRole", - type: "bytes32", - }, - ], - name: "AccessControlUnauthorizedAccount", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - ], - name: "AddressEmptyCode", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "implementation", - type: "address", - }, - ], - name: "ERC1967InvalidImplementation", - type: "error", - }, - { - inputs: [], - name: "ERC1967NonPayable", - type: "error", - }, - { - inputs: [], - name: "EnforcedPause", - type: "error", - }, - { - inputs: [], - name: "ExceedsMaxSupply", - type: "error", - }, - { - inputs: [], - name: "ExpectedPause", - type: "error", - }, - { - inputs: [], - name: "FailedCall", - type: "error", - }, - { - inputs: [], - name: "InvalidInitialization", - type: "error", - }, - { - inputs: [], - name: "NotInitializing", - type: "error", - }, - { - inputs: [], - name: "ReentrancyGuardReentrantCall", - type: "error", - }, - { - inputs: [], - name: "UUPSUnauthorizedCallContext", - type: "error", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "slot", - type: "bytes32", - }, - ], - name: "UUPSUnsupportedProxiableUUID", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint64", - name: "version", - type: "uint64", - }, - ], - name: "Initialized", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "maxSupply", - type: "uint256", - }, - ], - name: "MaxSupplyUpdated", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "Paused", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - indexed: true, - internalType: "bytes32", - name: "previousAdminRole", - type: "bytes32", - }, - { - indexed: true, - internalType: "bytes32", - name: "newAdminRole", - type: "bytes32", - }, - ], - name: "RoleAdminChanged", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - indexed: true, - internalType: "address", - name: "account", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "RoleGranted", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - indexed: true, - internalType: "address", - name: "account", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "RoleRevoked", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "Unpaused", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "oldTSSAddress", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "newTSSAddress", - type: "address", - }, - ], - name: "UpdatedZetaConnectorTSSAddress", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "implementation", - type: "address", - }, - ], - name: "Upgraded", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "Withdrawn", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "WithdrawnAndCalled", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - ], - indexed: false, - internalType: "struct RevertContext", - name: "revertContext", - type: "tuple", - }, - ], - name: "WithdrawnAndReverted", - type: "event", - }, - { - inputs: [], - name: "DEFAULT_ADMIN_ROLE", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "PAUSER_ROLE", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "TSS_ROLE", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "UPGRADE_INTERFACE_VERSION", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "WITHDRAWER_ROLE", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "gateway", - outputs: [ - { - internalType: "contract IGatewayEVM", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - ], - name: "getRoleAdmin", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "grantRole", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "hasRole", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "gateway_", - type: "address", - }, - { - internalType: "address", - name: "zetaToken_", - type: "address", - }, - { - internalType: "address", - name: "tssAddress_", - type: "address", - }, - { - internalType: "address", - name: "admin_", - type: "address", - }, - ], - name: "initialize", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "maxSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "pause", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "paused", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "proxiableUUID", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "receiveTokens", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - internalType: "address", - name: "callerConfirmation", - type: "address", - }, - ], - name: "renounceRole", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "revokeRole", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "maxSupply_", - type: "uint256", - }, - ], - name: "setMaxSupply", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes4", - name: "interfaceId", - type: "bytes4", - }, - ], - name: "supportsInterface", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "tssAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "unpause", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newTSSAddress", - type: "address", - }, - ], - name: "updateTSSAddress", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newImplementation", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "upgradeToAndCall", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes32", - name: "internalSendHash", - type: "bytes32", - }, - ], - name: "withdraw", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - ], - internalType: "struct MessageContext", - name: "messageContext", - type: "tuple", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - internalType: "bytes32", - name: "internalSendHash", - type: "bytes32", - }, - ], - name: "withdrawAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - internalType: "bytes32", - name: "internalSendHash", - type: "bytes32", - }, - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - ], - internalType: "struct RevertContext", - name: "revertContext", - type: "tuple", - }, - ], - name: "withdrawAndRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "zetaToken", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -const _bytecode = - "0x60a0806040523460295730608052611ce5908161002f8239608051818181610cb70152610d880152f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a71461115157508063106e6290146110c5578063116191b61461109e57806321e093b114611075578063248a9ca31461104e5780632f2ff15d1461101c57806336568abe14610fd75780633f4ba83a14610f555780634f1ef28614610d0c57806352d1902d14610ca45780635b11259114610c7b5780635c975abb14610c4b5780636f8728ad14610a8a5780636f8b44b0146109d85780636fb9a7af1461085c578063743e0c9b146107db5780638456cb591461076657806385f438c11461073d57806391d14854146106e4578063950837aa14610612578063a217fddf146105f6578063a783c789146105cd578063ad3cb1cc14610553578063d547741f14610518578063d5abeb01146104fa578063e63ab1e9146104bf5763f8c8765e1461014a57600080fd5b346104bc5760803660031901126104bc576101636111a6565b61016b6111c1565b906044356001600160a01b0381168082036104b8576064356001600160a01b038116949091908583036104b457600080516020611c90833981519152549567ffffffffffffffff60ff8860401c16159716801590816104ac575b60011490816104a2575b159081610499575b5061048a57866101e5611330565b610458575b600080516020611c90833981519152549567ffffffffffffffff60ff8860401c1615971680159081610450575b6001149081610446575b15908161043d575b5061042e5786610237611330565b6103fc575b6001600160a01b03169081159081156103ea575b81156103e1575b81156103d8575b506103c9579161030a94939161030493610276611ae0565b61027e611ae0565b610286611ae0565b6001600080516020611c30833981519152556102a0611ae0565b6102a8611ae0565b6001600160601b0360a01b8a541617895560018060a01b03166001600160601b0360a01b60015416176001556001600160601b0360a01b60025416176002556102f081611727565b506102fa83611615565b50610304836116a1565b506117c1565b50610372575b60001960035561031d5780f35b60ff60401b19600080516020611c908339815191525416600080516020611c90833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b60ff60401b19600080516020611c908339815191525416600080516020611c90833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1610310565b63d92e233d60e01b8852600488fd5b9050153861025e565b84159150610257565b6001600160a01b038416159150610250565b600160401b60ff60401b19600080516020611c90833981519152541617600080516020611c908339815191525561023c565b63f92ee8a960e01b8952600489fd5b90501538610229565b303b159150610221565b889150610217565b600160401b60ff60401b19600080516020611c90833981519152541617600080516020611c90833981519152556101ea565b63f92ee8a960e01b8852600488fd5b905015386101d7565b303b1591506101cf565b8891506101c5565b8680fd5b8480fd5b80fd5b50346104bc57806003193601126104bc5760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346104bc57806003193601126104bc576020600354604051908152f35b50346104bc5760403660031901126104bc5761054f6004356105386111c1565b9061054a6105458261126d565b6114af565b611a40565b5080f35b50346104bc57806003193601126104bc57604080519161057382846111eb565b60058352640352e302e360dc1b6020840152815192839160208352815191826020850152815b8381106105b6575050828201840152601f01601f19168101030190f35b602082820181015188830188015287955001610599565b50346104bc57806003193601126104bc576020604051600080516020611b708339815191528152f35b50346104bc57806003193601126104bc57602090604051908152f35b50346104bc5760203660031901126104bc5761062c6111a6565b61063461145c565b6001600160a01b0381169081156106d557600254610685919061065f906001600160a01b0316611914565b50600254610675906001600160a01b03166119aa565b5061067f81611615565b506116a1565b50600254604080516001600160a01b0383168152602081018490527f33770ab682353c17917ad3e667f05905fc8dda00671ef1ed33bef9bc8db0323e9190a16001600160a01b0319161760025580f35b63d92e233d60e01b8352600483fd5b50346104bc5760403660031901126104bc5760406107006111c1565b916004358152600080516020611bf0833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346104bc57806003193601126104bc576020604051600080516020611bd08339815191528152f35b50346104bc57806003193601126104bc5761077f6113ea565b6107876114f9565b600160ff19600080516020611c10833981519152541617600080516020611c10833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346104bc5760203660031901126104bc576107f56114f9565b60015481906001600160a01b0316803b156108595781809160446040518094819363079cc67960e41b835233600484015260043560248401525af1801561084e5761083d5750f35b81610847916111eb565b6104bc5780f35b6040513d84823e3d90fd5b50fd5b50346104bc57366003190160a081126109d4576020136104bc5761087e6111c1565b60443560643567ffffffffffffffff81116109d0576108a190369060040161123f565b90916108ab611360565b6108b361139c565b6108bb6114f9565b84546108d5906084359083906001600160a01b0316611523565b84546001546001600160a01b03918216958792909116863b156109cc57604051633ddf4d7d60e11b81529183918391906001600160a01b036109156111a6565b16600484015260248301526001600160a01b0316604482018190526064820186905260a060848301529781838161095060a482018b8d61128e565b03925af1801561084e576109b7575b505061099f7f23b9573b29ff81f01c7aa1968188e1cb7d5858b08582e111fdaf386d9ef9bd8d93604051938493845260406020850152604084019161128e565b0390a26001600080516020611c308339815191525580f35b816109c1916111eb565b6104b857843861095f565b8280fd5b8380fd5b5080fd5b50346104bc5760203660031901126104bc57600080516020611b708339815191528152600080516020611bf08339815191526020908152604080832033600090815292529020546004359060ff1615610a655760207f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c91610a576114f9565b80600355604051908152a180f35b63e2517d3f60e01b825233600452600080516020611b70833981519152602452604482fd5b50346104bc5760a03660031901126104bc57610aa46111a6565b906024359060443567ffffffffffffffff81116109d457610ac990369060040161123f565b909260843567ffffffffffffffff81116109d0576080816004019160031990360301126109d057610af8611360565b610b0061139c565b610b086114f9565b8354610b22906064359084906001600160a01b0316611523565b83546001546001600160a01b03918216979116873b15610c475794610b8a8798610b9c9383809a996040519687958694859363aa0c0fc160e01b8552600485015260018060a01b03169c8d60248501528b604485015260a060648501528c60a485019161128e565b828103600319016084840152896112af565b03925af18015610c3c57610bfe575b5061099f90610bf07f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff0959697604051958695865260606020870152606086019161128e565b9083820360408501526112af565b90610bf086610c327f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff0979861099f956111eb565b9695505090610bab565b6040513d88823e3d90fd5b8580fd5b50346104bc57806003193601126104bc57602060ff600080516020611c1083398151915254166040519015158152f35b50346104bc57806003193601126104bc576002546040516001600160a01b039091168152602090f35b50346104bc57806003193601126104bc577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610cfd576020604051600080516020611bb08339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126104bc57610d216111a6565b6024359067ffffffffffffffff82116109cc57366023830112156109cc5781600401359083610d4f83611223565b93610d5d60405195866111eb565b838552602085019336602482840101116109cc57806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610f32575b50610f2357610dc061145c565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181610eef575b50610e0357634c9c8ce360e01b86526004859052602486fd5b9384600080516020611bb0833981519152879603610edd5750823b15610ecb57600080516020611bb083398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115610eb05761054f9382915190845af43d15610ea8573d91610e8c83611223565b92610e9a60405194856111eb565b83523d85602085013e611b0e565b606091611b0e565b5050505034610ebc5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011610f1b575b81610f0b602093836111eb565b810103126104b457519038610dea565b3d9150610efe565b63703e46dd60e11b8452600484fd5b600080516020611bb0833981519152546001600160a01b03161415905038610db3565b50346104bc57806003193601126104bc57610f6e6113ea565b600080516020611c108339815191525460ff811615610fc85760ff1916600080516020611c10833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346104bc5760403660031901126104bc57610ff16111c1565b336001600160a01b0382160361100d5761054f90600435611a40565b63334bd91960e11b8252600482fd5b50346104bc5760403660031901126104bc5761054f60043561103c6111c1565b906110496105458261126d565b61187d565b50346104bc5760203660031901126104bc57602061106d60043561126d565b604051908152f35b50346104bc57806003193601126104bc576001546040516001600160a01b039091168152602090f35b50346104bc57806003193601126104bc57546040516001600160a01b039091168152602090f35b50346104bc5760603660031901126104bc576110df6111a6565b7f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d560206024359261110e611360565b61111661139c565b61111e6114f9565b61112b6044358583611523565b6040519384526001600160a01b031692a26001600080516020611c308339815191525580f35b9050346109d45760203660031901126109d45760043563ffffffff60e01b81168091036109cc5760209250637965db0b60e01b8114908115611195575b5015158152f35b6301ffc9a760e01b1490503861118e565b600435906001600160a01b03821682036111bc57565b600080fd5b602435906001600160a01b03821682036111bc57565b35906001600160a01b03821682036111bc57565b90601f8019910116810190811067ffffffffffffffff82111761120d57604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161120d57601f01601f191660200190565b9181601f840112156111bc5782359167ffffffffffffffff83116111bc57602083818601950101116111bc57565b600052600080516020611bf083398151915260205260016040600020015490565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160a01b036112c0826111d7565b1682526001600160a01b036112d7602083016111d7565b166020830152604081013560408301526060810135601e19823603018112156111bc57016020813591019067ffffffffffffffff81116111bc5780360382136111bc5760808381606061132d960152019161128e565b90565b600167ffffffffffffffff19600080516020611c90833981519152541617600080516020611c9083398151915255565b6002600080516020611c30833981519152541461138b576002600080516020611c3083398151915255565b633ee5aeb560e01b60005260046000fd5b336000908152600080516020611c50833981519152602052604090205460ff16156113c357565b63e2517d3f60e01b60005233600452600080516020611bd083398151915260245260446000fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561142357565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff161561149557565b63e2517d3f60e01b60005233600452600060245260446000fd5b6000818152600080516020611bf08339815191526020908152604080832033845290915290205460ff16156114e15750565b63e2517d3f60e01b6000523360045260245260446000fd5b60ff600080516020611c10833981519152541661151257565b63d93c066560e01b60005260046000fd5b6001546040516318160ddd60e01b81526000949392916001600160a01b031690602081600481855afa908115610c3c5786916115e3575b5083018084116115cf57600354106115c057803b156104b857849291836064926040519687958694630f22c5f760e11b865260018060a01b03166004860152602485015260448401525af1801561084e576115b3575050565b816115bd916111eb565b50565b63c30436e960e01b8552600485fd5b634e487b7160e01b86526011600452602486fd5b90506020813d60201161160d575b816115fe602093836111eb565b81010312610c4757513861155a565b3d91506115f1565b6001600160a01b0381166000908152600080516020611c50833981519152602052604090205460ff1661169b576001600160a01b03166000818152600080516020611c5083398151915260205260408120805460ff19166001179055339190600080516020611bd083398151915290600080516020611b908339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020611c70833981519152602052604090205460ff1661169b576001600160a01b03166000818152600080516020611c7083398151915260205260408120805460ff19166001179055339190600080516020611b7083398151915290600080516020611b908339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1661169b576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff19166001179055339190600080516020611b908339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1661169b576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a90600080516020611b908339815191529080a4600190565b6000818152600080516020611bf0833981519152602090815260408083206001600160a01b038616845290915290205460ff1661190d576000818152600080516020611bf0833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff1916600117905533929190600080516020611b908339815191529080a4600190565b5050600090565b6001600160a01b0381166000908152600080516020611c50833981519152602052604090205460ff161561169b576001600160a01b03166000818152600080516020611c5083398151915260205260408120805460ff19169055339190600080516020611bd0833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381166000908152600080516020611c70833981519152602052604090205460ff161561169b576001600160a01b03166000818152600080516020611c7083398151915260205260408120805460ff19169055339190600080516020611b70833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020611bf0833981519152602090815260408083206001600160a01b038616845290915290205460ff161561190d576000818152600080516020611bf0833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b60ff600080516020611c908339815191525460401c1615611afd57565b631afcd79f60e31b60005260046000fd5b90611b345750805115611b2357805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611b66575b611b45575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15611b3d56fe0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00395f4e35a18c2b5e556b3b2ff855307e76c0b3cc1ca71e19a70e83037e08e7b37bdc20c26beb8eedd348733c28a5c4c2f7f7f1183cba8898195258fcdca273bcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212203f211d602b36c7fdf0f3b0fe8233e5a85a6bfca3cf4c804bfdd1d764320a84b564736f6c634300081a0033"; - -type ZetaConnectorNonNativeConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: ZetaConnectorNonNativeConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class ZetaConnectorNonNative__factory extends ContractFactory { - constructor(...args: ZetaConnectorNonNativeConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(overrides || {}); - } - override deploy(overrides?: NonPayableOverrides & { from?: string }) { - return super.deploy(overrides || {}) as Promise< - ZetaConnectorNonNative & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect( - runner: ContractRunner | null - ): ZetaConnectorNonNative__factory { - return super.connect(runner) as ZetaConnectorNonNative__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): ZetaConnectorNonNativeInterface { - return new Interface(_abi) as ZetaConnectorNonNativeInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): ZetaConnectorNonNative { - return new Contract( - address, - _abi, - runner - ) as unknown as ZetaConnectorNonNative; - } -} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/index.ts deleted file mode 100644 index 3a4894de..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as interfaces from "./interfaces"; -export { ERC20Custody__factory } from "./ERC20Custody__factory"; -export { GatewayEVM__factory } from "./GatewayEVM__factory"; -export { ZetaConnectorBase__factory } from "./ZetaConnectorBase__factory"; -export { ZetaConnectorNative__factory } from "./ZetaConnectorNative__factory"; -export { ZetaConnectorNonNative__factory } from "./ZetaConnectorNonNative__factory"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyErrors__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyErrors__factory.ts deleted file mode 100644 index 84410316..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyErrors__factory.ts +++ /dev/null @@ -1,44 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IERC20CustodyErrors, - IERC20CustodyErrorsInterface, -} from "../../../../../../../@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyErrors"; - -const _abi = [ - { - inputs: [], - name: "LegacyMethodsNotSupported", - type: "error", - }, - { - inputs: [], - name: "NotWhitelisted", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, -] as const; - -export class IERC20CustodyErrors__factory { - static readonly abi = _abi; - static createInterface(): IERC20CustodyErrorsInterface { - return new Interface(_abi) as IERC20CustodyErrorsInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): IERC20CustodyErrors { - return new Contract( - address, - _abi, - runner - ) as unknown as IERC20CustodyErrors; - } -} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyEvents__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyEvents__factory.ts deleted file mode 100644 index ae0c5439..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyEvents__factory.ts +++ /dev/null @@ -1,220 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IERC20CustodyEvents, - IERC20CustodyEventsInterface, -} from "../../../../../../../@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyEvents"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "recipient", - type: "bytes", - }, - { - indexed: true, - internalType: "contract IERC20", - name: "asset", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "Deposited", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "Unwhitelisted", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "oldTSSAddress", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "newTSSAddress", - type: "address", - }, - ], - name: "UpdatedCustodyTSSAddress", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "Whitelisted", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "Withdrawn", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "WithdrawnAndCalled", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - ], - indexed: false, - internalType: "struct RevertContext", - name: "revertContext", - type: "tuple", - }, - ], - name: "WithdrawnAndReverted", - type: "event", - }, -] as const; - -export class IERC20CustodyEvents__factory { - static readonly abi = _abi; - static createInterface(): IERC20CustodyEventsInterface { - return new Interface(_abi) as IERC20CustodyEventsInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): IERC20CustodyEvents { - return new Contract( - address, - _abi, - runner - ) as unknown as IERC20CustodyEvents; - } -} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20Custody__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20Custody__factory.ts deleted file mode 100644 index facecaba..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20Custody__factory.ts +++ /dev/null @@ -1,368 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IERC20Custody, - IERC20CustodyInterface, -} from "../../../../../../../@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20Custody"; - -const _abi = [ - { - inputs: [], - name: "LegacyMethodsNotSupported", - type: "error", - }, - { - inputs: [], - name: "NotWhitelisted", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "recipient", - type: "bytes", - }, - { - indexed: true, - internalType: "contract IERC20", - name: "asset", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "Deposited", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "Unwhitelisted", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "oldTSSAddress", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "newTSSAddress", - type: "address", - }, - ], - name: "UpdatedCustodyTSSAddress", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "Whitelisted", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "Withdrawn", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "WithdrawnAndCalled", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - ], - indexed: false, - internalType: "struct RevertContext", - name: "revertContext", - type: "tuple", - }, - ], - name: "WithdrawnAndReverted", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "whitelisted", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "withdraw", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - ], - internalType: "struct MessageContext", - name: "messageContext", - type: "tuple", - }, - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "withdrawAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - ], - internalType: "struct RevertContext", - name: "revertContext", - type: "tuple", - }, - ], - name: "withdrawAndRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class IERC20Custody__factory { - static readonly abi = _abi; - static createInterface(): IERC20CustodyInterface { - return new Interface(_abi) as IERC20CustodyInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): IERC20Custody { - return new Contract(address, _abi, runner) as unknown as IERC20Custody; - } -} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/index.ts deleted file mode 100644 index 93a54174..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { IERC20Custody__factory } from "./IERC20Custody__factory"; -export { IERC20CustodyErrors__factory } from "./IERC20CustodyErrors__factory"; -export { IERC20CustodyEvents__factory } from "./IERC20CustodyEvents__factory"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/Callable__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/Callable__factory.ts deleted file mode 100644 index 0d0132a7..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/Callable__factory.ts +++ /dev/null @@ -1,53 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - Callable, - CallableInterface, -} from "../../../../../../../@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/Callable"; - -const _abi = [ - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - ], - internalType: "struct MessageContext", - name: "context", - type: "tuple", - }, - { - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "onCall", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "payable", - type: "function", - }, -] as const; - -export class Callable__factory { - static readonly abi = _abi; - static createInterface(): CallableInterface { - return new Interface(_abi) as CallableInterface; - } - static connect(address: string, runner?: ContractRunner | null): Callable { - return new Contract(address, _abi, runner) as unknown as Callable; - } -} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMErrors__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMErrors__factory.ts deleted file mode 100644 index c44ecb60..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMErrors__factory.ts +++ /dev/null @@ -1,113 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IGatewayEVMErrors, - IGatewayEVMErrorsInterface, -} from "../../../../../../../@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMErrors"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "ApprovalFailed", - type: "error", - }, - { - inputs: [], - name: "ConnectorInitialized", - type: "error", - }, - { - inputs: [], - name: "CustodyInitialized", - type: "error", - }, - { - inputs: [], - name: "DepositFailed", - type: "error", - }, - { - inputs: [], - name: "ExecutionFailed", - type: "error", - }, - { - inputs: [], - name: "InsufficientERC20Amount", - type: "error", - }, - { - inputs: [], - name: "InsufficientETHAmount", - type: "error", - }, - { - inputs: [], - name: "NotAllowedToCallOnCall", - type: "error", - }, - { - inputs: [], - name: "NotAllowedToCallOnRevert", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "NotWhitelistedInCustody", - type: "error", - }, - { - inputs: [ - { - internalType: "uint256", - name: "provided", - type: "uint256", - }, - { - internalType: "uint256", - name: "maximum", - type: "uint256", - }, - ], - name: "PayloadSizeExceeded", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, -] as const; - -export class IGatewayEVMErrors__factory { - static readonly abi = _abi; - static createInterface(): IGatewayEVMErrorsInterface { - return new Interface(_abi) as IGatewayEVMErrorsInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): IGatewayEVMErrors { - return new Contract(address, _abi, runner) as unknown as IGatewayEVMErrors; - } -} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMEvents__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMEvents__factory.ts deleted file mode 100644 index d89656c2..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMEvents__factory.ts +++ /dev/null @@ -1,357 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IGatewayEVMEvents, - IGatewayEVMEventsInterface, -} from "../../../../../../../@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMEvents"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "receiver", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "payload", - type: "bytes", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - indexed: false, - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "Called", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "receiver", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "asset", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "payload", - type: "bytes", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - indexed: false, - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "Deposited", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "receiver", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "asset", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "payload", - type: "bytes", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - indexed: false, - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "DepositedAndCalled", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "destination", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "Executed", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "ExecutedWithERC20", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - ], - indexed: false, - internalType: "struct RevertContext", - name: "revertContext", - type: "tuple", - }, - ], - name: "Reverted", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "oldTSSAddress", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "newTSSAddress", - type: "address", - }, - ], - name: "UpdatedGatewayTSSAddress", - type: "event", - }, -] as const; - -export class IGatewayEVMEvents__factory { - static readonly abi = _abi; - static createInterface(): IGatewayEVMEventsInterface { - return new Interface(_abi) as IGatewayEVMEventsInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): IGatewayEVMEvents { - return new Contract(address, _abi, runner) as unknown as IGatewayEVMEvents; - } -} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVM__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVM__factory.ts deleted file mode 100644 index 8bbd5f0e..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVM__factory.ts +++ /dev/null @@ -1,878 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IGatewayEVM, - IGatewayEVMInterface, -} from "../../../../../../../@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVM"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "ApprovalFailed", - type: "error", - }, - { - inputs: [], - name: "ConnectorInitialized", - type: "error", - }, - { - inputs: [], - name: "CustodyInitialized", - type: "error", - }, - { - inputs: [], - name: "DepositFailed", - type: "error", - }, - { - inputs: [], - name: "ExecutionFailed", - type: "error", - }, - { - inputs: [], - name: "InsufficientERC20Amount", - type: "error", - }, - { - inputs: [], - name: "InsufficientETHAmount", - type: "error", - }, - { - inputs: [], - name: "NotAllowedToCallOnCall", - type: "error", - }, - { - inputs: [], - name: "NotAllowedToCallOnRevert", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "NotWhitelistedInCustody", - type: "error", - }, - { - inputs: [ - { - internalType: "uint256", - name: "provided", - type: "uint256", - }, - { - internalType: "uint256", - name: "maximum", - type: "uint256", - }, - ], - name: "PayloadSizeExceeded", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "receiver", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "payload", - type: "bytes", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - indexed: false, - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "Called", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "receiver", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "asset", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "payload", - type: "bytes", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - indexed: false, - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "Deposited", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "receiver", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "asset", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "payload", - type: "bytes", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - indexed: false, - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "DepositedAndCalled", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "destination", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "Executed", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "ExecutedWithERC20", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - ], - indexed: false, - internalType: "struct RevertContext", - name: "revertContext", - type: "tuple", - }, - ], - name: "Reverted", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "oldTSSAddress", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "newTSSAddress", - type: "address", - }, - ], - name: "UpdatedGatewayTSSAddress", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - { - internalType: "bytes", - name: "payload", - type: "bytes", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "call", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "deposit", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "deposit", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - { - internalType: "bytes", - name: "payload", - type: "bytes", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "depositAndCall", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "bytes", - name: "payload", - type: "bytes", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "depositAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - ], - internalType: "struct MessageContext", - name: "messageContext", - type: "tuple", - }, - { - internalType: "address", - name: "destination", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "execute", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "destination", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - ], - internalType: "struct RevertContext", - name: "revertContext", - type: "tuple", - }, - ], - name: "executeRevert", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - ], - internalType: "struct MessageContext", - name: "messageContext", - type: "tuple", - }, - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "executeWithERC20", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - ], - internalType: "struct RevertContext", - name: "revertContext", - type: "tuple", - }, - ], - name: "revertWithERC20", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class IGatewayEVM__factory { - static readonly abi = _abi; - static createInterface(): IGatewayEVMInterface { - return new Interface(_abi) as IGatewayEVMInterface; - } - static connect(address: string, runner?: ContractRunner | null): IGatewayEVM { - return new Contract(address, _abi, runner) as unknown as IGatewayEVM; - } -} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/index.ts deleted file mode 100644 index f257da52..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { Callable__factory } from "./Callable__factory"; -export { IGatewayEVM__factory } from "./IGatewayEVM__factory"; -export { IGatewayEVMErrors__factory } from "./IGatewayEVMErrors__factory"; -export { IGatewayEVMEvents__factory } from "./IGatewayEVMEvents__factory"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/IZetaConnectorEvents__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/IZetaConnectorEvents__factory.ts deleted file mode 100644 index 98208d2e..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/IZetaConnectorEvents__factory.ts +++ /dev/null @@ -1,145 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IZetaConnectorEvents, - IZetaConnectorEventsInterface, -} from "../../../../../../../@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/IZetaConnectorEvents"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "oldTSSAddress", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "newTSSAddress", - type: "address", - }, - ], - name: "UpdatedZetaConnectorTSSAddress", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "Withdrawn", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "WithdrawnAndCalled", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - ], - indexed: false, - internalType: "struct RevertContext", - name: "revertContext", - type: "tuple", - }, - ], - name: "WithdrawnAndReverted", - type: "event", - }, -] as const; - -export class IZetaConnectorEvents__factory { - static readonly abi = _abi; - static createInterface(): IZetaConnectorEventsInterface { - return new Interface(_abi) as IZetaConnectorEventsInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): IZetaConnectorEvents { - return new Contract( - address, - _abi, - runner - ) as unknown as IZetaConnectorEvents; - } -} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/index.ts deleted file mode 100644 index a60ddc89..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { IZetaConnectorEvents__factory } from "./IZetaConnectorEvents__factory"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaNonEthNew__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaNonEthNew__factory.ts deleted file mode 100644 index d746c4da..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaNonEthNew__factory.ts +++ /dev/null @@ -1,249 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IZetaNonEthNew, - IZetaNonEthNewInterface, -} from "../../../../../../@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaNonEthNew"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "spender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "burnFrom", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "mintee", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - internalType: "bytes32", - name: "internalSendHash", - type: "bytes32", - }, - ], - name: "mint", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class IZetaNonEthNew__factory { - static readonly abi = _abi; - static createInterface(): IZetaNonEthNewInterface { - return new Interface(_abi) as IZetaNonEthNewInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): IZetaNonEthNew { - return new Contract(address, _abi, runner) as unknown as IZetaNonEthNew; - } -} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/index.ts deleted file mode 100644 index 4d8e4cee..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as ierc20CustodySol from "./IERC20Custody.sol"; -export * as iGatewayEvmSol from "./IGatewayEVM.sol"; -export * as iZetaConnectorSol from "./IZetaConnector.sol"; -export { IZetaNonEthNew__factory } from "./IZetaNonEthNew__factory"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/index.ts deleted file mode 100644 index 7860e035..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as errorsSol from "./Errors.sol"; -export * as revertSol from "./Revert.sol"; -export * as evm from "./evm"; -export * as zevm from "./zevm"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/GatewayZEVM__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/GatewayZEVM__factory.ts deleted file mode 100644 index 3cec457b..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/GatewayZEVM__factory.ts +++ /dev/null @@ -1,1684 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; -import type { NonPayableOverrides } from "../../../../../common"; -import type { - GatewayZEVM, - GatewayZEVMInterface, -} from "../../../../../@zetachain/protocol-contracts/contracts/zevm/GatewayZEVM"; - -const _abi = [ - { - inputs: [], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [], - name: "AccessControlBadConfirmation", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "bytes32", - name: "neededRole", - type: "bytes32", - }, - ], - name: "AccessControlUnauthorizedAccount", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - ], - name: "AddressEmptyCode", - type: "error", - }, - { - inputs: [], - name: "CallOnRevertNotSupported", - type: "error", - }, - { - inputs: [], - name: "CallerIsNotProtocol", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "implementation", - type: "address", - }, - ], - name: "ERC1967InvalidImplementation", - type: "error", - }, - { - inputs: [], - name: "ERC1967NonPayable", - type: "error", - }, - { - inputs: [], - name: "EnforcedPause", - type: "error", - }, - { - inputs: [], - name: "ExpectedPause", - type: "error", - }, - { - inputs: [], - name: "FailedCall", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "recipient", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "FailedZetaSent", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "GasFeeTransferFailed", - type: "error", - }, - { - inputs: [], - name: "InsufficientGasLimit", - type: "error", - }, - { - inputs: [], - name: "InsufficientZRC20Amount", - type: "error", - }, - { - inputs: [], - name: "InsufficientZetaAmount", - type: "error", - }, - { - inputs: [], - name: "InvalidInitialization", - type: "error", - }, - { - inputs: [], - name: "InvalidTarget", - type: "error", - }, - { - inputs: [ - { - internalType: "uint256", - name: "provided", - type: "uint256", - }, - { - internalType: "uint256", - name: "maximum", - type: "uint256", - }, - ], - name: "MessageSizeExceeded", - type: "error", - }, - { - inputs: [], - name: "NotInitializing", - type: "error", - }, - { - inputs: [], - name: "OnlyWZETAOrProtocol", - type: "error", - }, - { - inputs: [], - name: "ReentrancyGuardReentrantCall", - type: "error", - }, - { - inputs: [], - name: "UUPSUnauthorizedCallContext", - type: "error", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "slot", - type: "bytes32", - }, - ], - name: "UUPSUnsupportedProxiableUUID", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "recipient", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "WithdrawalFailed", - type: "error", - }, - { - inputs: [], - name: "ZETANotSupported", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "ZRC20BurnFailed", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "ZRC20DepositFailed", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "ZRC20TransferFailed", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "zrc20", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "receiver", - type: "bytes", - }, - { - indexed: false, - internalType: "bytes", - name: "message", - type: "bytes", - }, - { - components: [ - { - internalType: "uint256", - name: "gasLimit", - type: "uint256", - }, - { - internalType: "bool", - name: "isArbitraryCall", - type: "bool", - }, - ], - indexed: false, - internalType: "struct CallOptions", - name: "callOptions", - type: "tuple", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - indexed: false, - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "Called", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint64", - name: "version", - type: "uint64", - }, - ], - name: "Initialized", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "Paused", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - indexed: true, - internalType: "bytes32", - name: "previousAdminRole", - type: "bytes32", - }, - { - indexed: true, - internalType: "bytes32", - name: "newAdminRole", - type: "bytes32", - }, - ], - name: "RoleAdminChanged", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - indexed: true, - internalType: "address", - name: "account", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "RoleGranted", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - indexed: true, - internalType: "address", - name: "account", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "RoleRevoked", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "Unpaused", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "implementation", - type: "address", - }, - ], - name: "Upgraded", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "uint256", - name: "chainId", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "receiver", - type: "bytes", - }, - { - indexed: false, - internalType: "address", - name: "zrc20", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "gasfee", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "protocolFlatFee", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "message", - type: "bytes", - }, - { - components: [ - { - internalType: "uint256", - name: "gasLimit", - type: "uint256", - }, - { - internalType: "bool", - name: "isArbitraryCall", - type: "bool", - }, - ], - indexed: false, - internalType: "struct CallOptions", - name: "callOptions", - type: "tuple", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - indexed: false, - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "Withdrawn", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "uint256", - name: "chainId", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "receiver", - type: "bytes", - }, - { - indexed: false, - internalType: "address", - name: "zrc20", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "gasfee", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "protocolFlatFee", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "message", - type: "bytes", - }, - { - components: [ - { - internalType: "uint256", - name: "gasLimit", - type: "uint256", - }, - { - internalType: "bool", - name: "isArbitraryCall", - type: "bool", - }, - ], - indexed: false, - internalType: "struct CallOptions", - name: "callOptions", - type: "tuple", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - indexed: false, - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "WithdrawnAndCalled", - type: "event", - }, - { - inputs: [], - name: "DEFAULT_ADMIN_ROLE", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "MAX_MESSAGE_SIZE", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "PAUSER_ROLE", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "PROTOCOL_ADDRESS", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "UPGRADE_INTERFACE_VERSION", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "receiver", - type: "bytes", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "bytes", - name: "message", - type: "bytes", - }, - { - components: [ - { - internalType: "uint256", - name: "gasLimit", - type: "uint256", - }, - { - internalType: "bool", - name: "isArbitraryCall", - type: "bool", - }, - ], - internalType: "struct CallOptions", - name: "callOptions", - type: "tuple", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "call", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "target", - type: "address", - }, - ], - name: "deposit", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "bytes", - name: "sender", - type: "bytes", - }, - { - internalType: "address", - name: "senderEVM", - type: "address", - }, - { - internalType: "uint256", - name: "chainID", - type: "uint256", - }, - ], - internalType: "struct MessageContext", - name: "context", - type: "tuple", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "depositAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "bytes", - name: "sender", - type: "bytes", - }, - { - internalType: "address", - name: "senderEVM", - type: "address", - }, - { - internalType: "uint256", - name: "chainID", - type: "uint256", - }, - ], - internalType: "struct MessageContext", - name: "context", - type: "tuple", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "depositAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "target", - type: "address", - }, - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - ], - internalType: "struct RevertContext", - name: "revertContext", - type: "tuple", - }, - ], - name: "depositAndRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "bytes", - name: "sender", - type: "bytes", - }, - { - internalType: "address", - name: "senderEVM", - type: "address", - }, - { - internalType: "uint256", - name: "chainID", - type: "uint256", - }, - ], - internalType: "struct MessageContext", - name: "context", - type: "tuple", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "execute", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - { - components: [ - { - internalType: "bytes", - name: "sender", - type: "bytes", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bool", - name: "outgoing", - type: "bool", - }, - { - internalType: "uint256", - name: "chainID", - type: "uint256", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - ], - internalType: "struct AbortContext", - name: "abortContext", - type: "tuple", - }, - ], - name: "executeAbort", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - ], - internalType: "struct RevertContext", - name: "revertContext", - type: "tuple", - }, - ], - name: "executeRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - ], - name: "getRoleAdmin", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "grantRole", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "hasRole", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "zetaToken_", - type: "address", - }, - { - internalType: "address", - name: "admin_", - type: "address", - }, - ], - name: "initialize", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "pause", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "paused", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "proxiableUUID", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - internalType: "address", - name: "callerConfirmation", - type: "address", - }, - ], - name: "renounceRole", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "revokeRole", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes4", - name: "interfaceId", - type: "bytes4", - }, - ], - name: "supportsInterface", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "unpause", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newImplementation", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "upgradeToAndCall", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "receiver", - type: "bytes", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "withdraw", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - { - internalType: "uint256", - name: "", - type: "uint256", - }, - { - internalType: "uint256", - name: "", - type: "uint256", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - internalType: "struct RevertOptions", - name: "", - type: "tuple", - }, - ], - name: "withdraw", - outputs: [], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - { - internalType: "uint256", - name: "", - type: "uint256", - }, - { - internalType: "uint256", - name: "", - type: "uint256", - }, - { - internalType: "bytes", - name: "", - type: "bytes", - }, - { - components: [ - { - internalType: "uint256", - name: "gasLimit", - type: "uint256", - }, - { - internalType: "bool", - name: "isArbitraryCall", - type: "bool", - }, - ], - internalType: "struct CallOptions", - name: "", - type: "tuple", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - internalType: "struct RevertOptions", - name: "", - type: "tuple", - }, - ], - name: "withdrawAndCall", - outputs: [], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "receiver", - type: "bytes", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "bytes", - name: "message", - type: "bytes", - }, - { - components: [ - { - internalType: "uint256", - name: "gasLimit", - type: "uint256", - }, - { - internalType: "bool", - name: "isArbitraryCall", - type: "bool", - }, - ], - internalType: "struct CallOptions", - name: "callOptions", - type: "tuple", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "withdrawAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "zetaToken", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - stateMutability: "payable", - type: "receive", - }, -] as const; - -const _bytecode = - "0x60a080604052346100ea57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b6040516127f090816100f08239608051818181610db80152610e4c0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880610054565b63f92ee8a960e01b60005260046000fd5b600080fdfe6080806040526004361015610067575b50361561001b57600080fd5b610023611f8e565b6000546001600160a01b03163314158061004f575b61003e57005b63b3af013760e01b60005260046000fd5b506000805160206126fb833981519152331415610038565b600090813560e01c90816301ffc9a714611b2b5750806306cb898314611818578063184b0793146117195780632095dedb146115e457806321501a95146113f757806321e093b1146113d0578063248a9ca3146113a95780632722feee146113805780632810ae63146112f65780632f2ff15d146112c457806336568abe1461127f5780633f4ba83a146111fd578063485cc955146110345780634f1ef28614610e0d57806352d1902d14610da55780635c975abb14610d755780637b15118b14610b445780637c0dcb5f146108885780638456cb591461081357806391d14854146107ba57806397a1cef11461074d57806397d340f5146107305780639d4ba465146105c4578063a217fddf146105a8578063ad3cb1cc1461055b578063bcf7f32b146104b4578063c39aca371461033d578063d547741f14610302578063e63ab1e9146102c75763f45346dc0361000f57346102c45760603660031901126102c4576101d3611c4a565b906024356101df611c60565b926000805160206126fb83398151915233036102b5576101fd611f8e565b6001600160a01b03811693841580156102a4575b610295578215610286576001600160a01b038116916000805160206126fb8339815191528314801561027d575b61026e5761024d918491612503565b15610256578280f35b606493632050a1dd60e11b8452600452602452604452fd5b63416aebb560e11b8552600485fd5b5030831461023e565b635d67094f60e01b8452600484fd5b63d92e233d60e01b8452600484fd5b506001600160a01b03811615610211565b632160203f60e11b8352600483fd5b80fd5b50346102c457806003193601126102c45760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346102c45760403660031901126102c457610339600435610322611c34565b9061033461032f82611efe565b6120bd565b612330565b5080f35b50346102c45761034c36611cf8565b95949291909361035a611fdf565b6000805160206126fb83398151915233036104a557610377611f8e565b6001600160a01b0381169687158015610494575b610485578315610476576001600160a01b038316926000805160206126fb8339815191528414801561046d575b61045e57846103c79184612503565b1561044357869750823b1561043f5786946103fa869260405198899788968795632de7eb0b60e11b875260048701611e8e565b03925af180156104345761041f575b50600160008051602061277b8339815191525580f35b8161042991611bb1565b6102c4578038610409565b6040513d84823e3d90fd5b8680fd5b60648785858b632050a1dd60e11b8452600452602452604452fd5b63416aebb560e11b8852600488fd5b503084146103b8565b635d67094f60e01b8752600487fd5b63d92e233d60e01b8752600487fd5b506001600160a01b0383161561038b565b632160203f60e11b8652600486fd5b50346102c4576104c336611cf8565b90936104d29695939296611fdf565b6000805160206126fb83398151915233036104a5576104ef611f8e565b6001600160a01b03811615801561054a575b61053b57859660018060a01b031691823b1561043f5786946103fa869260405198899788968795632de7eb0b60e11b875260048701611e8e565b63d92e233d60e01b8652600486fd5b506001600160a01b03871615610501565b50346102c457806003193601126102c457506105a460405161057e604082611bb1565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611cb7565b0390f35b50346102c457806003193601126102c457602090604051908152f35b50346102c45760803660031901126102c4576105de611c4a565b90602435916105eb611c60565b90606435916001600160401b03831161072c576080600319843603011261072c57610614611fdf565b6000805160206126fb833981519152330361071d57610631611f8e565b6001600160a01b038216908115801561070c575b6106fd5785156106ee576001600160a01b038116926000805160206126fb833981519152841480156106e5575b6106d657610681918791612503565b156106bc5750829350803b156106b8576103fa8392918392604051948580948193636481451b60e11b835260040160048301611e29565b5050fd5b6064949250632050a1dd60e11b8452600452602452604452fd5b63416aebb560e11b8652600486fd5b50308414610672565b635d67094f60e01b8552600485fd5b63d92e233d60e01b8552600485fd5b506001600160a01b03811615610645565b632160203f60e11b8452600484fd5b8380fd5b50346102c457806003193601126102c45760206040516108008152f35b50346102c45760803660031901126102c4576004356001600160401b0381116107b65761077e903690600401611bed565b506064356001600160401b0381116107b65760a09060031990360301126102c4576004906107aa611f8e565b63e4dd681d60e01b8152fd5b5080fd5b50346102c45760403660031901126102c45760406107d6611c34565b91600435815260008051602061273b833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346102c457806003193601126102c45761082c61204b565b610834611f8e565b600160ff1960008051602061275b83398151915254161760008051602061275b833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346102c45760803660031901126102c4576004356001600160401b0381116107b6576108b9903690600401611bed565b90602435916108c6611c60565b906064356001600160401b03811161072c57806004019060a06003198236030112610b40576108f3611f8e565b8251156106fd5785156106ee576064016108006109108284611d75565b905011610b1d5750604051630123a4f160e31b8152939485946001600160a01b03851694602082600481895afa918215610ada578792610ae5575b509061095791836123d0565b604051634d8943bb60e01b815290602082600481895afa918215610ada578792610aa3575b50604051630123a4f160e31b8152926020846004818a5afa938415610a98578894610a4f575b507f07bf64173efd8f3dfb9e4eb3834bab9d5b85a3d89a1c6425797329de0668502c9593610a49936109fd9693602093604051936109df85611b80565b84526001858501526040519889986101208a526101208a0190611cb7565b9a85890152604088015260608701526080860152610a37858903918260a08801528a8a5260c0870190602080918051845201511515910152565b01610100840152602033960190611f1f565b0390a380f35b975094925090926020873d602011610a90575b81610a6f60209383611bb1565b81010312610a8b579551879692949293909290919060206109a2565b600080fd5b3d9150610a62565b6040513d8a823e3d90fd5b965090506020863d602011610ad2575b81610ac060209383611bb1565b81010312610a8b57869551903861097c565b3d9150610ab3565b6040513d89823e3d90fd5b915095506020813d602011610b15575b81610b0260209383611bb1565b81010312610a8b5751869561095761094b565b3d9150610af5565b610b2a8591604493611d75565b63cd6f4e6d60e01b835260045250610800602452fd5b8480fd5b50346102c45760e03660031901126102c4576004356001600160401b0381116107b657610b75903690600401611bed565b9060243591610b82611c60565b906064356001600160401b03811161072c57610ba2903690600401611c8a565b9490916040366083190112610b405760c435916001600160401b038311610d7157826004019360a0600319853603011261043f57610bde611f8e565b82511561048557811561047657608435938415610d6257606401610800610c10610c088389611d75565b90508b611da7565b11610d345750968697610c278588859a999a6123d0565b604051634d8943bb60e01b815290986001600160a01b031693602082600481885afa918215610d29578992610cea575b5098610c9a9596979899610c78604051986101208a526101208a0190611cb7565b95602089015260408801526060870152608086015284830360a0860152611e08565b9160c082015260a43591821515809303610b4057610a4982917fd90f94752d2b12f364f4a2237ebe1aff24ba6127585376bf4935f6a7be17dd2a9460e08401528281036101008401523395611f1f565b959697985090506020853d602011610d21575b81610d0a60209383611bb1565b81010312610a8b5793518997969594610c9a610c57565b3d9150610cfd565b6040513d8b823e3d90fd5b87610d4d8a610d456044948a611d75565b919050611da7565b63cd6f4e6d60e01b8252600452610800602452fd5b6360ee124760e01b8852600488fd5b8580fd5b50346102c457806003193601126102c457602060ff60008051602061275b83398151915254166040519015158152f35b50346102c457806003193601126102c4577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610dfe57602060405160008051602061271b8339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126102c457610e22611c4a565b906024356001600160401b0381116107b657610e42903690600401611bed565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611011575b506110025781805260008051602061273b83398151915260209081526040808420336000908152925290205460ff1615610fea576040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa80958596610fb6575b50610ef057634c9c8ce360e01b84526004839052602484fd5b90918460008051602061271b8339815191528103610fa45750813b15610f925760008051602061271b83398151915280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a28151839015610f78578083602061033995519101845af4610f7261201b565b91612699565b50505034610f835780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011610fe2575b81610fd260209383611bb1565b81010312610b4057519438610ed7565b3d9150610fc5565b63e2517d3f60e01b8252336004526024829052604482fd5b63703e46dd60e11b8252600482fd5b60008051602061271b833981519152546001600160a01b03161415905038610e77565b50346102c45760403660031901126102c45761104e611c4a565b611056611c34565b60008051602061279b833981519152549160ff8360401c1615926001600160401b038116801590816111f5575b60011490816111eb575b1590816111e2575b506111d35767ffffffffffffffff19811660011760008051602061279b83398151915255836111a6575b506001600160a01b03169081158015611195575b61029557611124906110e361262b565b6110eb61262b565b6110f361262b565b6110fb61262b565b61110361262b565b600160008051602061277b8339815191525561111e81612107565b506121b9565b5082546001600160a01b03191617825561113b5780f35b68ff00000000000000001960008051602061279b833981519152541660008051602061279b833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b506001600160a01b038116156110d3565b68ffffffffffffffffff1916680100000000000000011760008051602061279b83398151915255386110bf565b63f92ee8a960e01b8552600485fd5b90501538611095565b303b15915061108d565b859150611083565b50346102c457806003193601126102c45761121661204b565b60008051602061275b8339815191525460ff8116156112705760ff191660008051602061275b833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346102c45760403660031901126102c457611299611c34565b336001600160a01b038216036112b55761033990600435612330565b63334bd91960e11b8252600482fd5b50346102c45760403660031901126102c4576103396004356112e4611c34565b906112f161032f82611efe565b612287565b50346102c45760e03660031901126102c4576004356001600160401b0381116107b657611327903690600401611bed565b506064356001600160401b0381116107b657611347903690600401611c8a565b505060403660831901126102c45760c4356001600160401b0381116107b65760a09060031990360301126102c4576004906107aa611f8e565b50346102c457806003193601126102c45760206040516000805160206126fb8339815191528152f35b50346102c45760203660031901126102c45760206113c8600435611efe565b604051908152f35b50346102c457806003193601126102c457546040516001600160a01b039091168152602090f35b50346102c45760803660031901126102c457600435906001600160401b0382116102c457606060031983360301126102c457602435611434611c60565b926064356001600160401b03811161072c57611454903690600401611c8a565b61145f929192611fdf565b6000805160206126fb83398151915233036115d55761147c611f8e565b6001600160a01b03861695861561053b5784156115c6576000805160206126fb833981519152871480156115bd575b6106d65785546114c9908690309033906001600160a01b03166125d9565b156115a55785546001600160a01b0316803b1561043f5786808092602460405180958193632e1a7d4d60e01b83528c60048401525af19182611590575b505061152357604486868963793cd7bf60e11b8352600452602452fd5b858080878194989697985af161153761201b565b50156115795794849560018060a01b0386541690823b1561043f5786946103fa869260405198899788968795632de7eb0b60e11b875260040160048701611e8e565b604485838863793cd7bf60e11b8352600452602452fd5b8161159a91611bb1565b61043f578638611506565b63793cd7bf60e11b8652306004526024859052604486fd5b503087146114ab565b6319c08f4960e01b8652600486fd5b632160203f60e11b8552600485fd5b50346102c45760403660031901126102c4576115fe611c4a565b90602435916001600160401b0383116107b657826004019060c060031985360301126117155761162c611fdf565b6000805160206126fb83398151915233036102b557611649611f8e565b6001600160a01b0316908115611706578293823b15611701576103fa926116ef858094604051968795869485936316a67dbf60e11b85526020600486015260a46116a76116968380611dd7565b60c060248a015260e4890191611e08565b936001600160a01b036116bc60248301611c76565b166044880152604481013560648801526116d860648201611dca565b151560848801526084810135828801520190611dd7565b8483036023190160c486015290611e08565b505050fd5b63d92e233d60e01b8352600483fd5b8280fd5b50346102c45760403660031901126102c457611733611c4a565b90602435916001600160401b0383116107b657608060031984360301126107b65761175c611fdf565b6000805160206126fb833981519152330361180957611779611f8e565b6001600160a01b03169182156117fa578282933b156106b8576117b98392918392604051958680948193636481451b60e11b835260040160048301611e29565b03925af180156117ed576117dd575b600160008051602061277b8339815191525580f35b6117e691611bb1565b38816117c8565b50604051903d90823e3d90fd5b63d92e233d60e01b8252600482fd5b632160203f60e11b8252600482fd5b50346102c45760c03660031901126102c4576004356001600160401b0381116107b657611849903690600401611bed565b611851611c34565b6044356001600160401b03811161072c57611870903690600401611c8a565b90916040366063190112610b405760a435926001600160401b038411610d7157836004019260a0600319863603011261043f576118ab611f8e565b606435938415610d625760648601926108006118d26118ca8685611d75565b905085611da7565b11611b1a57604051956118e487611b80565b86526084358015158103611b165760208701526040519160a083018381106001600160401b03821117611b025760405261191d90611c76565b825261192b60248801611dca565b926020830193845261193f60448901611c76565b9460408401958652356001600160401b038111611afe5761196690600436918b0101611bed565b95606084019687526084608085019901358952895115611aef5787516040805163fc5fecd560e01b815260048101929092526001600160a01b03929092169a91816024818e5afa908115611ae4578c908d92611ab2575b506119c982338361257d565b15611a8257505093611a7493611a3c611a2660a099957f306ee13f48319a123b222c69908e44dcf91abffc20cacc502e3cf5a4ff23e0e49b9995611a1860809a6040519d8e8181520190611cb7565b8c810360208e015291611e08565b885160408b0152602090980151151560608a0152565b87870386890152516001600160a01b03908116875290511515602087015290511660408501525160a060608501819052840190611cb7565b94519101528033930390a380f35b633338088960e11b8d526001600160a01b03166004526000805160206126fb83398151915260245260445260648bfd5b9050611ad6915060403d604011611add575b611ace8183611bb1565b810190611fb8565b90386119bd565b503d611ac4565b6040513d8e823e3d90fd5b63d92e233d60e01b8b5260048bfd5b8a80fd5b634e487b7160e01b8b52604160045260248bfd5b8980fd5b604489610d4d85610d458887611d75565b9050346107b65760203660031901126107b65760043563ffffffff60e01b81168091036117155760209250637965db0b60e01b8114908115611b6f575b5015158152f35b6301ffc9a760e01b14905038611b68565b604081019081106001600160401b03821117611b9b57604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b03821117611b9b57604052565b6001600160401b038111611b9b57601f01601f191660200190565b81601f82011215610a8b57803590611c0482611bd2565b92611c126040519485611bb1565b82845260208383010111610a8b57816000926020809301838601378301015290565b602435906001600160a01b0382168203610a8b57565b600435906001600160a01b0382168203610a8b57565b604435906001600160a01b0382168203610a8b57565b35906001600160a01b0382168203610a8b57565b9181601f84011215610a8b578235916001600160401b038311610a8b5760208381860195010111610a8b57565b919082519283825260005b848110611ce3575050826000602080949584010152601f8019910116010190565b80602080928401015182828601015201611cc2565b60a0600319820112610a8b576004356001600160401b038111610a8b5760608183036003190112610a8b57600401916024356001600160a01b0381168103610a8b5791604435916064356001600160a01b0381168103610a8b5791608435906001600160401b038211610a8b57611d7191600401611c8a565b9091565b903590601e1981360301821215610a8b57018035906001600160401b038211610a8b57602001918136038313610a8b57565b91908201809211611db457565b634e487b7160e01b600052601160045260246000fd5b35908115158203610a8b57565b9035601e1982360301811215610a8b5701602081359101916001600160401b038211610a8b578136038313610a8b57565b908060209392818452848401376000828201840152601f01601f1916010190565b60208152611e8b9160a090611e7b906001600160a01b03611e4982611c76565b166020850152600180841b03611e6160208301611c76565b166040850152604081013560608501526060810190611dd7565b9190926080808201520191611e08565b90565b90939192611e8b9593608083526040611ebb611eaa8880611dd7565b6060608088015260e0870191611e08565b966001600160a01b03611ed060208301611c76565b1660a0860152013560c08401526001600160a01b031660208301526040820152808403606090910152611e08565b60005260008051602061273b83398151915260205260016040600020015490565b906001600160a01b03611f3183611c76565b168152611f4060208301611dca565b151560208201526001600160a01b03611f5b60408401611c76565b166040820152608080611f85611f746060860186611dd7565b60a0606087015260a0860191611e08565b93013591015290565b60ff60008051602061275b8339815191525416611fa757565b63d93c066560e01b60005260046000fd5b9190826040910312610a8b5781516001600160a01b0381168103610a8b5760209092015190565b600260008051602061277b833981519152541461200a57600260008051602061277b83398151915255565b633ee5aeb560e01b60005260046000fd5b3d15612046573d9061202c82611bd2565b9161203a6040519384611bb1565b82523d6000602084013e565b606090565b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561208457565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b600081815260008051602061273b8339815191526020908152604080832033845290915290205460ff16156120ef5750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff166121b3576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50600090565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff166121b3576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b600081815260008051602061273b833981519152602090815260408083206001600160a01b038616845290915290205460ff1661232957600081815260008051602061273b833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b5050600090565b600081815260008051602061273b833981519152602090815260408083206001600160a01b038616845290915290205460ff161561232957600081815260008051602061273b833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6040805163fc5fecd560e01b8152600481019490945290916001600160a01b0381169184602481855afa9384156124df576000906000956124bb575b5061241885338361257d565b15612484575061242a833033846125d9565b1561245a578261243991612659565b1561244357505090565b637112ae7760e01b60005260045260245260446000fd5b506084916040519163489ca9b760e01b835260048301523360248301523060448301526064820152fd5b633338088960e11b60009081526001600160a01b039091166004526000805160206126fb8339815191526024526044859052606490fd5b90506124d791945060403d604011611add57611ace8183611bb1565b93903861240c565b6040513d6000823e3d90fd5b90816020910312610a8b57518015158103610a8b5790565b6040516311f9fbc960e21b81526001600160a01b039283166004820152602481019390935260209183916044918391600091165af16000918161254c575b50611e8b5750600090565b61256f91925060203d602011612576575b6125678183611bb1565b8101906124eb565b9038612541565b503d61255d565b6040516323b872dd60e01b81526001600160a01b0392831660048201526000805160206126fb8339815191526024820152604481019390935260209183916064918391600091165af16000918161254c5750611e8b5750600090565b6040516323b872dd60e01b81526001600160a01b03928316600482015292821660248401526044830193909352909160209183916064918391600091165af16000918161254c5750611e8b5750600090565b60ff60008051602061279b8339815191525460401c161561264857565b631afcd79f60e31b60005260046000fd5b604051630852cd8d60e31b81526004810192909252602090829060249082906000906001600160a01b03165af16000918161254c5750611e8b5750600090565b906126bf57508051156126ae57805190602001fd5b63d6bda27560e01b60005260046000fd5b815115806126f1575b6126d0575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b156126c856fe000000000000000000000000735b14bb79463307aacbed86daf3322b1e6226ab360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220542941658a96d6dd4010b90beba1b2fc5ed2076ef97c9889b30ab9ceda5036f064736f6c634300081a0033"; - -type GatewayZEVMConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: GatewayZEVMConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class GatewayZEVM__factory extends ContractFactory { - constructor(...args: GatewayZEVMConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(overrides || {}); - } - override deploy(overrides?: NonPayableOverrides & { from?: string }) { - return super.deploy(overrides || {}) as Promise< - GatewayZEVM & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): GatewayZEVM__factory { - return super.connect(runner) as GatewayZEVM__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): GatewayZEVMInterface { - return new Interface(_abi) as GatewayZEVMInterface; - } - static connect(address: string, runner?: ContractRunner | null): GatewayZEVM { - return new Contract(address, _abi, runner) as unknown as GatewayZEVM; - } -} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContractErrors__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContractErrors__factory.ts deleted file mode 100644 index e4fd6f1e..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContractErrors__factory.ts +++ /dev/null @@ -1,54 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - SystemContractErrors, - SystemContractErrorsInterface, -} from "../../../../../../@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContractErrors"; - -const _abi = [ - { - inputs: [], - name: "CallerIsNotFungibleModule", - type: "error", - }, - { - inputs: [], - name: "CantBeIdenticalAddresses", - type: "error", - }, - { - inputs: [], - name: "CantBeZeroAddress", - type: "error", - }, - { - inputs: [], - name: "InvalidTarget", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, -] as const; - -export class SystemContractErrors__factory { - static readonly abi = _abi; - static createInterface(): SystemContractErrorsInterface { - return new Interface(_abi) as SystemContractErrorsInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): SystemContractErrors { - return new Contract( - address, - _abi, - runner - ) as unknown as SystemContractErrors; - } -} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContract__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContract__factory.ts deleted file mode 100644 index fe445a6a..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContract__factory.ts +++ /dev/null @@ -1,506 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { - Signer, - AddressLike, - ContractDeployTransaction, - ContractRunner, -} from "ethers"; -import type { NonPayableOverrides } from "../../../../../../common"; -import type { - SystemContract, - SystemContractInterface, -} from "../../../../../../@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContract"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "wzeta_", - type: "address", - }, - { - internalType: "address", - name: "uniswapv2Factory_", - type: "address", - }, - { - internalType: "address", - name: "uniswapv2Router02_", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [], - name: "CallerIsNotFungibleModule", - type: "error", - }, - { - inputs: [], - name: "CantBeIdenticalAddresses", - type: "error", - }, - { - inputs: [], - name: "CantBeZeroAddress", - type: "error", - }, - { - inputs: [], - name: "InvalidTarget", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "", - type: "address", - }, - ], - name: "SetConnectorZEVM", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "", - type: "address", - }, - ], - name: "SetGasCoin", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "SetGasPrice", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "", - type: "address", - }, - ], - name: "SetGasZetaPool", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "", - type: "address", - }, - ], - name: "SetWZeta", - type: "event", - }, - { - anonymous: false, - inputs: [], - name: "SystemContractDeployed", - type: "event", - }, - { - inputs: [], - name: "FUNGIBLE_MODULE_ADDRESS", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "bytes", - name: "origin", - type: "bytes", - }, - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "uint256", - name: "chainID", - type: "uint256", - }, - ], - internalType: "struct zContext", - name: "context", - type: "tuple", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "depositAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "gasCoinZRC20ByChainId", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "gasPriceByChainId", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "gasZetaPoolByChainId", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - ], - name: "setConnectorZEVMAddress", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "chainID", - type: "uint256", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - ], - name: "setGasCoinZRC20", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "chainID", - type: "uint256", - }, - { - internalType: "uint256", - name: "price", - type: "uint256", - }, - ], - name: "setGasPrice", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "chainID", - type: "uint256", - }, - { - internalType: "address", - name: "erc20", - type: "address", - }, - ], - name: "setGasZetaPool", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - ], - name: "setWZETAContractAddress", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "uniswapv2FactoryAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "factory", - type: "address", - }, - { - internalType: "address", - name: "tokenA", - type: "address", - }, - { - internalType: "address", - name: "tokenB", - type: "address", - }, - ], - name: "uniswapv2PairFor", - outputs: [ - { - internalType: "address", - name: "pair", - type: "address", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [], - name: "uniswapv2Router02Address", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "wZetaContractAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "zetaConnectorZEVMAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -const _bytecode = - "0x60c03461010057601f610b3a38819003918201601f19168301916001600160401b0383118484101761010557808492606094604052833981010312610100576100478161011b565b9061006060406100596020840161011b565b920161011b565b9173735b14bb79463307aacbed86daf3322b1e6226ab33036100ef57600380546001600160a01b0319166001600160a01b039290921691909117905560805260a0526040517f80699e81136d69cb8367ad52a994e25c722a86da654b561d0c14b61a777e7ac5600080a1610a0a9081610130823960805181818161018a015261065d015260a051816106d70152f35b632b2add3d60e01b60005260046000fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036101005756fe608080604052600436101561001357600080fd5b600090813560e01c9081630be1554714610817575080631f0e251b146107915780633ce4a5bc14610762578063513a9c051461072f578063569541b914610706578063842da36d146106c157806391dd645f146105f057806397770dff1461054c578063a7cb0507146104da578063c39aca3714610263578063c62178ac1461023a578063c63585cc146101e2578063d7fd7afb146101b9578063d936a012146101745763ee2815ba146100c657600080fd5b34610171576040366003190112610171576004356100e2610864565b9073735b14bb79463307aacbed86daf3322b1e6226ab33036101625780835260016020908152604080852080546001600160a01b0319166001600160a01b0390951694851790558051928352908201929092527fd1b36d30f6248e97c473b4d1348ca164a4ef6759022f54a58ec200326c39c45d91819081015b0390a180f35b632b2add3d60e01b8352600483fd5b80fd5b50346101715780600319360112610171576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461017157602036600319011261017157604060209160043581528083522054604051908152f35b5034610171576060366003190112610171576101fc610849565b610204610864565b604435929091906001600160a01b03841684036101715760206102288585856108d3565b6040516001600160a01b039091168152f35b50346101715780600319360112610171576004546040516001600160a01b039091168152602090f35b50346101715760a0366003190112610171576004359067ffffffffffffffff82116101715781360360606003198201126104d65761029f610864565b92604435906064356001600160a01b038116908190036104d25760843567ffffffffffffffff81116104ce57366023820112156104ce5780600401359367ffffffffffffffff85116104615736602486840101116104615773735b14bb79463307aacbed86daf3322b1e6226ab33036104bf5773735b14bb79463307aacbed86daf3322b1e6226ab831480156104b6575b6104a7576040516311f9fbc960e21b815260048101849052602481018290529697959688966001600160a01b0316906020816044818b865af1801561049c57610465575b50833b156104615760405197636f218ab760e11b8952608060048a01528560040135906022190181121561045d57850160246004820135910167ffffffffffffffff8211610459578136038113610459576103da91606060848c015260e48b01916108b2565b60248601356001600160a01b038116919082900361045957889760248b98968a968a989660448a9861042d9860a48b0152013560c4890152838801526044870152600319868503016064870152016108b2565b03925af1801561044c5761043e5780f35b6104479161087a565b388180f35b50604051903d90823e3d90fd5b8880fd5b8780fd5b8680fd5b6020813d602011610494575b8161047e6020938361087a565b8101031261045d57518015158114610374578780fd5b3d9150610471565b6040513d8a823e3d90fd5b63416aebb560e11b8752600487fd5b50308314610330565b632b2add3d60e01b8752600487fd5b8580fd5b8480fd5b5080fd5b50346101715760403660031901126101715760043560243573735b14bb79463307aacbed86daf3322b1e6226ab330361016257816040917f49f492222906ac486c3c1401fa545626df1f0c0e5a77a05597ea2ed66af9850d93855284602052808386205582519182526020820152a180f35b503461017157602036600319011261017157610566610849565b73735b14bb79463307aacbed86daf3322b1e6226ab33036105e1576001600160a01b031680156105d2576020817fdba79d534382d1a8ae108e4c8ecb27c6ae42ab8b91d44eedf88bd329f3868d5e926001600160601b0360a01b6003541617600355604051908152a180f35b63d92e233d60e01b8252600482fd5b632b2add3d60e01b8252600482fd5b50346101715760403660031901126101715760043561060d610864565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610162576003547f0ecec485166da6139b13bb7e033e9446e2d35348e80ebf1180d4afe2dba1704e9291610681916001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006108d3565b81845260026020908152604080862080546001600160a01b0319166001600160a01b0390941693841790558051938452908301919091528190810161015c565b50346101715780600319360112610171576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101715780600319360112610171576003546040516001600160a01b039091168152602090f35b503461017157602036600319011261017157602090600435815260028252604060018060a01b0391205416604051908152f35b5034610171578060031936011261017157602060405173735b14bb79463307aacbed86daf3322b1e6226ab8152f35b5034610171576020366003190112610171576107ab610849565b73735b14bb79463307aacbed86daf3322b1e6226ab33036105e1576001600160a01b031680156105d2576020817f3ade88e3922d64780e1bf4460d364c2970b69da813f9c0c07a1c187b5647636c926001600160601b0360a01b6004541617600455604051908152a180f35b9050346104d65760203660031901126104d6576004358252600160209081526040909220546001600160a01b03168152f35b600435906001600160a01b038216820361085f57565b600080fd5b602435906001600160a01b038216820361085f57565b90601f8019910116810190811067ffffffffffffffff82111761089c57604052565b634e487b7160e01b600052604160045260246000fd5b908060209392818452848401376000828201840152601f01601f1916010190565b91906001600160a01b038083169082168082146109c35710156109be57905b6001600160a01b038216156109ad576040519060208201926001600160601b03199060601b1683526001600160601b03199060601b1660348201526028815261093c60488261087a565b5190209060405191602083019160ff60f81b83526001600160601b03199060601b16602184015260358301527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f60558301526055825261099d60758361087a565b905190206001600160a01b031690565b633c5a83ed60e11b60005260046000fd5b6108f2565b63658f3e7f60e11b60005260046000fdfea26469706673582212203d5f24fd62859186e7d8a9f41a0e370a08bd7cbc34344f0eb46593f3ba299ff564736f6c634300081a0033"; - -type SystemContractConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: SystemContractConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class SystemContract__factory extends ContractFactory { - constructor(...args: SystemContractConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - wzeta_: AddressLike, - uniswapv2Factory_: AddressLike, - uniswapv2Router02_: AddressLike, - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction( - wzeta_, - uniswapv2Factory_, - uniswapv2Router02_, - overrides || {} - ); - } - override deploy( - wzeta_: AddressLike, - uniswapv2Factory_: AddressLike, - uniswapv2Router02_: AddressLike, - overrides?: NonPayableOverrides & { from?: string } - ) { - return super.deploy( - wzeta_, - uniswapv2Factory_, - uniswapv2Router02_, - overrides || {} - ) as Promise< - SystemContract & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): SystemContract__factory { - return super.connect(runner) as SystemContract__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): SystemContractInterface { - return new Interface(_abi) as SystemContractInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): SystemContract { - return new Contract(address, _abi, runner) as unknown as SystemContract; - } -} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/index.ts deleted file mode 100644 index 32da62eb..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { SystemContract__factory } from "./SystemContract__factory"; -export { SystemContractErrors__factory } from "./SystemContractErrors__factory"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/WETH9__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/WETH9__factory.ts deleted file mode 100644 index e0f2bea6..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/WETH9__factory.ts +++ /dev/null @@ -1,348 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; -import type { NonPayableOverrides } from "../../../../../../common"; -import type { - WETH9, - WETH9Interface, -} from "../../../../../../@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/WETH9"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "src", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "guy", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "wad", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "dst", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "wad", - type: "uint256", - }, - ], - name: "Deposit", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "src", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "dst", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "wad", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "src", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "wad", - type: "uint256", - }, - ], - name: "Withdrawal", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "address", - name: "", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "guy", - type: "address", - }, - { - internalType: "uint256", - name: "wad", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "decimals", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "deposit", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [], - name: "name", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "symbol", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "dst", - type: "address", - }, - { - internalType: "uint256", - name: "wad", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "src", - type: "address", - }, - { - internalType: "address", - name: "dst", - type: "address", - }, - { - internalType: "uint256", - name: "wad", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "wad", - type: "uint256", - }, - ], - name: "withdraw", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - stateMutability: "payable", - type: "receive", - }, -] as const; - -const _bytecode = - "0x60806040523461011457610014600054610119565b601f81116100cb575b507f577261707065642045746865720000000000000000000000000000000000001a60005560015461004e90610119565b601f8111610081575b6008630ae8aa8960e31b016001556002805460ff1916601217905560405161073190816101548239f35b6001600052601f0160051c7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6908101905b8181106100bf5750610057565b600081556001016100b2565b60008052601f0160051c7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563908101905b818110610108575061001d565b600081556001016100fb565b600080fd5b90600182811c92168015610149575b602083101461013357565b634e487b7160e01b600052602260045260246000fd5b91607f169161012856fe60806040526004361015610023575b361561001957600080fd5b6100216106b2565b005b60003560e01c806306fdde0314610423578063095ea7b3146103a957806318160ddd1461038d57806323b872dd1461035e5780632e1a7d4d146102b9578063313ce5671461029857806370a082311461025e57806395d89b411461013d578063a9059cbb1461010b578063d0e30db0146100f75763dd62ed3e0361000e57346100f25760403660031901126100f2576100ba610526565b6100c261053c565b6001600160a01b039182166000908152600460209081526040808320949093168252928352819020549051908152f35b600080fd5b60003660031901126100f2576100216106b2565b346100f25760403660031901126100f2576020610133610129610526565b60243590336105a8565b6040519015158152f35b346100f25760003660031901126100f2576000604051816001548060011c90600181168015610254575b6020831081146102405782855290811561022457506001146101d0575b50819003601f01601f1916810167ffffffffffffffff8111828210176101bc576101b89250604052604051918291826104dd565b0390f35b634e487b7160e01b83526041600452602483fd5b600184529050827fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b82821061020e57506020915082010183610184565b60018160209254838588010152019101906101f9565b90506020925060ff191682840152151560051b82010183610184565b634e487b7160e01b86526022600452602486fd5b91607f1691610167565b346100f25760203660031901126100f2576001600160a01b0361027f610526565b1660005260036020526020604060002054604051908152f35b346100f25760003660031901126100f257602060ff60025416604051908152f35b346100f25760203660031901126100f2576004353360005260036020526102e7816040600020541015610552565b3360005260036020526040600020610300828254610578565b90558060008115610355575b600080809381933390f115610349576040519081527f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b6560203392a2005b6040513d6000823e3d90fd5b506108fc61030c565b346100f25760603660031901126100f257602061013361037c610526565b61038461053c565b604435916105a8565b346100f25760003660031901126100f257602047604051908152f35b346100f25760403660031901126100f2576103c2610526565b3360008181526004602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b346100f25760003660031901126100f25760006040518182548060011c906001811680156104d3575b60208310811461024057828552908115610224575060011461049c5750819003601f01601f1916810167ffffffffffffffff8111828210176101bc576101b89250604052604051918291826104dd565b90508280526020832083905b8282106104bd57506020915082010183610184565b60018160209254838588010152019101906104a8565b91607f169161044c565b91909160208152825180602083015260005b818110610510575060409293506000838284010152601f8019910116010190565b80602080928701015160408286010152016104ef565b600435906001600160a01b03821682036100f257565b602435906001600160a01b03821682036100f257565b1561055957565b60405162461bcd60e51b81526020600482015260006024820152604490fd5b9190820391821161058557565b634e487b7160e01b600052601160045260246000fd5b9190820180921161058557565b60207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9160018060a01b03169283600052600382526105ee856040600020541015610552565b3384141580610691575b610646575b83600052600382526040600020610615868254610578565b905560018060a01b0316938460005260038252604060002061063882825461059b565b9055604051908152a3600190565b6000848152600483526040808220338352845290205461066890861115610552565b600084815260048352604080822033835284529020805461068a908790610578565b90556105fd565b506000848152600483526040808220338352845290205460001914156105f8565b33600052600360205260406000206106cb34825461059b565b90556040513481527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a256fea26469706673582212209e220afc3d58f06e9fcfb74d0eadc71ef1ec14a29eb328f69f1935849690effe64736f6c634300081a0033"; - -type WETH9ConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: WETH9ConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class WETH9__factory extends ContractFactory { - constructor(...args: WETH9ConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(overrides || {}); - } - override deploy(overrides?: NonPayableOverrides & { from?: string }) { - return super.deploy(overrides || {}) as Promise< - WETH9 & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): WETH9__factory { - return super.connect(runner) as WETH9__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): WETH9Interface { - return new Interface(_abi) as WETH9Interface; - } - static connect(address: string, runner?: ContractRunner | null): WETH9 { - return new Contract(address, _abi, runner) as unknown as WETH9; - } -} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/index.ts deleted file mode 100644 index 63c8f2fc..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { WETH9__factory } from "./WETH9__factory"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20Errors__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20Errors__factory.ts deleted file mode 100644 index d889a300..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20Errors__factory.ts +++ /dev/null @@ -1,62 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - ZRC20Errors, - ZRC20ErrorsInterface, -} from "../../../../../../@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20Errors"; - -const _abi = [ - { - inputs: [], - name: "CallerIsNotFungibleModule", - type: "error", - }, - { - inputs: [], - name: "GasFeeTransferFailed", - type: "error", - }, - { - inputs: [], - name: "InvalidSender", - type: "error", - }, - { - inputs: [], - name: "LowAllowance", - type: "error", - }, - { - inputs: [], - name: "LowBalance", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, - { - inputs: [], - name: "ZeroGasCoin", - type: "error", - }, - { - inputs: [], - name: "ZeroGasPrice", - type: "error", - }, -] as const; - -export class ZRC20Errors__factory { - static readonly abi = _abi; - static createInterface(): ZRC20ErrorsInterface { - return new Interface(_abi) as ZRC20ErrorsInterface; - } - static connect(address: string, runner?: ContractRunner | null): ZRC20Errors { - return new Contract(address, _abi, runner) as unknown as ZRC20Errors; - } -} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20__factory.ts deleted file mode 100644 index 183adb6f..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20__factory.ts +++ /dev/null @@ -1,808 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { - Signer, - BigNumberish, - AddressLike, - ContractDeployTransaction, - ContractRunner, -} from "ethers"; -import type { NonPayableOverrides } from "../../../../../../common"; -import type { - ZRC20, - ZRC20Interface, -} from "../../../../../../@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20"; - -const _abi = [ - { - inputs: [ - { - internalType: "string", - name: "name_", - type: "string", - }, - { - internalType: "string", - name: "symbol_", - type: "string", - }, - { - internalType: "uint8", - name: "decimals_", - type: "uint8", - }, - { - internalType: "uint256", - name: "chainid_", - type: "uint256", - }, - { - internalType: "enum CoinType", - name: "coinType_", - type: "uint8", - }, - { - internalType: "uint256", - name: "gasLimit_", - type: "uint256", - }, - { - internalType: "address", - name: "systemContractAddress_", - type: "address", - }, - { - internalType: "address", - name: "gatewayAddress_", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [], - name: "CallerIsNotFungibleModule", - type: "error", - }, - { - inputs: [], - name: "GasFeeTransferFailed", - type: "error", - }, - { - inputs: [], - name: "InvalidSender", - type: "error", - }, - { - inputs: [], - name: "LowAllowance", - type: "error", - }, - { - inputs: [], - name: "LowBalance", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, - { - inputs: [], - name: "ZeroGasCoin", - type: "error", - }, - { - inputs: [], - name: "ZeroGasPrice", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "spender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "from", - type: "bytes", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Deposit", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "gasLimit", - type: "uint256", - }, - ], - name: "UpdatedGasLimit", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "gateway", - type: "address", - }, - ], - name: "UpdatedGateway", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "protocolFlatFee", - type: "uint256", - }, - ], - name: "UpdatedProtocolFlatFee", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "systemContract", - type: "address", - }, - ], - name: "UpdatedSystemContract", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "to", - type: "bytes", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "gasFee", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "protocolFlatFee", - type: "uint256", - }, - ], - name: "Withdrawal", - type: "event", - }, - { - inputs: [], - name: "CHAIN_ID", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "COIN_TYPE", - outputs: [ - { - internalType: "enum CoinType", - name: "", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "FUNGIBLE_MODULE_ADDRESS", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "GAS_LIMIT", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "PROTOCOL_FLAT_FEE", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "SYSTEM_CONTRACT_ADDRESS", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "burn", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "decimals", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "deposit", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "gatewayAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "name", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "newName", - type: "string", - }, - ], - name: "setName", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "newSymbol", - type: "string", - }, - ], - name: "setSymbol", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "symbol", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "recipient", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "recipient", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "gasLimit_", - type: "uint256", - }, - ], - name: "updateGasLimit", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - ], - name: "updateGatewayAddress", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "protocolFlatFee_", - type: "uint256", - }, - ], - name: "updateProtocolFlatFee", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - ], - name: "updateSystemContractAddress", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "to", - type: "bytes", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "withdraw", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "withdrawGasFee", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "gasLimit", - type: "uint256", - }, - ], - name: "withdrawGasFeeWithGasLimit", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -const _bytecode = - "0x60c06040523461041a57611879803803806100198161041f565b92833981016101008282031261041a5781516001600160401b03811161041a5781610045918401610444565b602083015190916001600160401b03821161041a57610065918401610444565b9160408101519160ff831680930361041a576060820151936080830151600381101561041a5760a0840151916100a960e06100a260c088016104af565b96016104af565b946001600160a01b03169384158015610409575b6103f8578051906001600160401b0382116102f55760065490600182811c921680156103ee575b60208310146102d55781601f84931161037e575b50602090601f83116001146103165760009261030b575b50508160011b916000199060031b1c1916176006555b8051906001600160401b0382116102f55760075490600182811c921680156102eb575b60208310146102d55781601f849311610265575b50602090601f83116001146101fd576000926101f2575b50508160011b916000199060031b1c1916176007555b6008549560805260a05260015560018060a01b03196000541617600055610100600160a81b039060081b169160018060a81b03191617176008556040516113b590816104c4823960805181818161016b01528181610b3e01526110c7015260a051816109e40152f35b015190503880610173565b600760009081528281209350601f198516905b81811061024d5750908460019594939210610234575b505050811b01600755610189565b015160001960f88460031b161c19169055388080610226565b92936020600181928786015181550195019301610210565b60076000529091507fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688601f840160051c810191602085106102cb575b90601f859493920160051c01905b8181106102bc575061015c565b600081558493506001016102af565b90915081906102a1565b634e487b7160e01b600052602260045260246000fd5b91607f1691610148565b634e487b7160e01b600052604160045260246000fd5b01519050388061010f565b600660009081528281209350601f198516905b818110610366575090846001959493921061034d575b505050811b01600655610125565b015160001960f88460031b161c1916905538808061033f565b92936020600181928786015181550195019301610329565b60066000529091507ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f601f840160051c810191602085106103e4575b90601f859493920160051c01905b8181106103d557506100f8565b600081558493506001016103c8565b90915081906103ba565b91607f16916100e4565b63d92e233d60e01b60005260046000fd5b506001600160a01b038616156100bd565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176102f557604052565b81601f8201121561041a578051906001600160401b0382116102f557610473601f8301601f191660200161041f565b928284526020838301011161041a5760005b82811061049a57505060206000918301015290565b80602080928401015182828701015201610485565b51906001600160a01b038216820361041a5756fe608080604052600436101561001357600080fd5b60003560e01c90816306fdde0314610e7057508063091d278814610e52578063095ea7b314610e2c57806318160ddd14610e0e57806323b872dd14610d8d578063313ce56714610d6c5780633ce4a5bc14610d3d57806342966c6814610d2057806347e7ef2414610bb95780634d8943bb14610b9b57806370a0823114610b6157806385e1f4d014610b265780638b851b9514610afc57806395d89b4114610a2c578063a3413d03146109d1578063a9059cbb146109a0578063b84c82461461083b578063c47f0027146106c0578063c70126261461055e578063c835d7cc146104d5578063ccc775991461042f578063d9eeebed14610416578063dd62ed3e146103c5578063eddeb12314610365578063f2441b321461033c578063f687d12a146102cb5763fc5fecd51461014857600080fd5b346102c65760203660031901126102c657600054604051630be1554760e01b81527f00000000000000000000000000000000000000000000000000000000000000006004820181905290916001600160a01b031690602083602481855afa92831561027857600093610295575b506001600160a01b038316156102845760209060246040518094819363d7fd7afb60e01b835260048301525afa90811561027857600091610243575b508015610232576102086102119160043590611095565b600254906110a8565b604080516001600160a01b03939093168352602083019190915290f35b0390f35b630e661aed60e41b60005260046000fd5b906020823d602011610270575b8161025d60209383610f71565b8101031261026d575051386101f1565b80fd5b3d9150610250565b6040513d6000823e3d90fd5b633c7ff9cb60e11b60005260046000fd5b6102b891935060203d6020116102bf575b6102b08183610f71565b810190611076565b91386101b5565b503d6102a6565b600080fd5b346102c65760203660031901126102c65760043573735b14bb79463307aacbed86daf3322b1e6226ab330361032b576020817fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a92600155604051908152a1005b632b2add3d60e01b60005260046000fd5b346102c65760003660031901126102c6576000546040516001600160a01b039091168152602090f35b346102c65760203660031901126102c65760043573735b14bb79463307aacbed86daf3322b1e6226ab330361032b576020817fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f92600255604051908152a1005b346102c65760403660031901126102c6576103de610f45565b6103e6610f5b565b6001600160a01b039182166000908152600460209081526040808320949093168252928352819020549051908152f35b346102c65760003660031901126102c6576102116110b5565b346102c65760203660031901126102c657610448610f45565b73735b14bb79463307aacbed86daf3322b1e6226ab330361032b576001600160a01b0381169081156104c45760088054610100600160a81b03191691811b610100600160a81b03169190911790556040519081527f88815d964e380677e86d817e7d65dea59cb7b4c3b5b7a0c8ec7ea4a74f90a38790602090a1005b63d92e233d60e01b60005260046000fd5b346102c65760203660031901126102c6576104ee610f45565b73735b14bb79463307aacbed86daf3322b1e6226ab330361032b576001600160a01b031680156104c4576020817fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae926bffffffffffffffffffffffff60a01b6000541617600055604051908152a1005b346102c65760403660031901126102c65760043567ffffffffffffffff81116102c657366023820112156102c6576105a0903690602481600401359101610f93565b60206024359160006105b06110b5565b93906064604051809481936323b872dd60e01b835233600484015273735b14bb79463307aacbed86daf3322b1e6226ab602484015288604484015260018060a01b03165af190811561027857600091610681575b5015610670577f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d9559161063684336112c5565b6002549061064f60405193608085526080850190610f04565b946020840152604083015260608201528033930390a2602060405160018152f35b63053e6b6b60e11b60005260046000fd5b6020813d6020116106b8575b8161069a60209383610f71565b810103126106b4575190811515820361026d575084610604565b5080fd5b3d915061068d565b346102c6576106ce36610fda565b73735b14bb79463307aacbed86daf3322b1e6226ab330361032b57805167ffffffffffffffff811161082557610705600654611019565b601f81116107b8575b50602091601f821160011461074c57918192600092610741575b5050600019600383901b1c191660019190911b17600655005b015190508280610728565b601f1982169260066000526000805160206113608339815191529160005b8581106107a057508360019510610787575b505050811b01600655005b015160001960f88460031b161c1916905582808061077c565b9192602060018192868501518155019401920161076a565b6006600052601f820160051c60008051602061136083398151915201906020831061080f575b601f0160051c60008051602061136083398151915201905b818110610803575061070e565b600081556001016107f6565b60008051602061136083398151915291506107de565b634e487b7160e01b600052604160045260246000fd5b346102c65761084936610fda565b73735b14bb79463307aacbed86daf3322b1e6226ab330361032b57805167ffffffffffffffff811161082557610880600754611019565b601f8111610933575b50602091601f82116001146108c7579181926000926108bc575b5050600019600383901b1c191660019190911b17600755005b0151905082806108a3565b601f1982169260076000526000805160206113408339815191529160005b85811061091b57508360019510610902575b505050811b01600755005b015160001960f88460031b161c191690558280806108f7565b919260206001819286850151815501940192016108e5565b6007600052601f820160051c60008051602061134083398151915201906020831061098a575b601f0160051c60008051602061134083398151915201905b81811061097e5750610889565b60008155600101610971565b6000805160206113408339815191529150610959565b346102c65760403660031901126102c6576109c66109bc610f45565b602435903361121f565b602060405160018152f35b346102c65760003660031901126102c6577f00000000000000000000000000000000000000000000000000000000000000006040516003821015610a16576020918152f35b634e487b7160e01b600052602160045260246000fd5b346102c65760003660031901126102c6576040516000600754610a4e81611019565b8084529060018116908115610ad85750600114610a8a575b61022e83610a7681850382610f71565b604051918291602083526020830190610f04565b9190506007600052600080516020611340833981519152916000905b808210610abe57509091508101602001610a76610a66565b919260018160209254838588010152019101909291610aa6565b60ff191660208086019190915291151560051b84019091019150610a769050610a66565b346102c65760003660031901126102c65760088054604051911c6001600160a01b03168152602090f35b346102c65760003660031901126102c65760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346102c65760203660031901126102c6576001600160a01b03610b82610f45565b1660005260036020526020604060002054604051908152f35b346102c65760003660031901126102c6576020600254604051908152f35b346102c65760403660031901126102c657610bd2610f45565b6024359073735b14bb79463307aacbed86daf3322b1e6226ab33141580610d0b575b80610cf3575b610ce2576001600160a01b03169081156104c457610cce81610c3f7f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab3936005546110a8565b6005558360005260036020526040600020610c5b8282546110a8565b90558360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020604051858152a360405173735b14bb79463307aacbed86daf3322b1e6226ab60601b60208201526014815290610cba603483610f71565b604051928392604084526040840190610f04565b9060208301520390a2602060405160018152f35b636edaef2f60e11b60005260046000fd5b506008805433911c6001600160a01b03161415610bfa565b506000546001600160a01b0316331415610bf4565b346102c65760203660031901126102c6576109c6600435336112c5565b346102c65760003660031901126102c657602060405173735b14bb79463307aacbed86daf3322b1e6226ab8152f35b346102c65760003660031901126102c657602060ff60085416604051908152f35b346102c65760603660031901126102c657610da6610f45565b610dae610f5b565b90610dbd60443580938361121f565b6001600160a01b0381166000908152600460209081526040808320338452909152902054828110610dfd576109c692610df591611053565b9033906111b8565b6310bad14760e01b60005260046000fd5b346102c65760003660031901126102c6576020600554604051908152f35b346102c65760403660031901126102c6576109c6610e48610f45565b60243590336111b8565b346102c65760003660031901126102c6576020600154604051908152f35b346102c65760003660031901126102c6576000600654610e8f81611019565b8084529060018116908115610ad85750600114610eb65761022e83610a7681850382610f71565b9190506006600052600080516020611360833981519152916000905b808210610eea57509091508101602001610a76610a66565b919260018160209254838588010152019101909291610ed2565b919082519283825260005b848110610f30575050826000602080949584010152601f8019910116010190565b80602080928401015182828601015201610f0f565b600435906001600160a01b03821682036102c657565b602435906001600160a01b03821682036102c657565b90601f8019910116810190811067ffffffffffffffff82111761082557604052565b92919267ffffffffffffffff82116108255760405191610fbd601f8201601f191660200184610f71565b8294818452818301116102c6578281602093846000960137010152565b60206003198201126102c6576004359067ffffffffffffffff82116102c657806023830112156102c65781602461101693600401359101610f93565b90565b90600182811c92168015611049575b602083101461103357565b634e487b7160e01b600052602260045260246000fd5b91607f1691611028565b9190820391821161106057565b634e487b7160e01b600052601160045260246000fd5b908160209103126102c657516001600160a01b03811681036102c65790565b8181029291811591840414171561106057565b9190820180921161106057565b600054604051630be1554760e01b81527f0000000000000000000000000000000000000000000000000000000000000000600482018190529092916001600160a01b031690602084602481855afa93841561027857600094611197575b506001600160a01b038416156102845760209060246040518094819363d7fd7afb60e01b835260048301525afa90811561027857600091611165575b508015610232576102086110169160015490611095565b906020823d60201161118f575b8161117f60209383610f71565b8101031261026d5750513861114e565b3d9150611172565b6111b191945060203d6020116102bf576102b08183610f71565b9238611112565b6001600160a01b03169081156104c4576001600160a01b03169182156104c45760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260048252604060002085600052825280604060002055604051908152a3565b6001600160a01b03169081156104c4576001600160a01b03169182156104c4578160005260036020526040600020548181106112b457816112837fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93602093611053565b8460005260038352604060002055846000526003825260406000206112a98282546110a8565b9055604051908152a3565b63fe382aa760e01b60005260046000fd5b6001600160a01b031680156104c457806000526003602052604060002054918083106112b45760208161131b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93600096611053565b84865260038352604086205561133381600554611053565b600555604051908152a356fea66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688f652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3fa26469706673582212204c90788866e311a7988ea7e33ebbb42bc4848ee95a9a8938bd2520623824a00064736f6c634300081a0033"; - -type ZRC20ConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: ZRC20ConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class ZRC20__factory extends ContractFactory { - constructor(...args: ZRC20ConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - name_: string, - symbol_: string, - decimals_: BigNumberish, - chainid_: BigNumberish, - coinType_: BigNumberish, - gasLimit_: BigNumberish, - systemContractAddress_: AddressLike, - gatewayAddress_: AddressLike, - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction( - name_, - symbol_, - decimals_, - chainid_, - coinType_, - gasLimit_, - systemContractAddress_, - gatewayAddress_, - overrides || {} - ); - } - override deploy( - name_: string, - symbol_: string, - decimals_: BigNumberish, - chainid_: BigNumberish, - coinType_: BigNumberish, - gasLimit_: BigNumberish, - systemContractAddress_: AddressLike, - gatewayAddress_: AddressLike, - overrides?: NonPayableOverrides & { from?: string } - ) { - return super.deploy( - name_, - symbol_, - decimals_, - chainid_, - coinType_, - gasLimit_, - systemContractAddress_, - gatewayAddress_, - overrides || {} - ) as Promise< - ZRC20 & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): ZRC20__factory { - return super.connect(runner) as ZRC20__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): ZRC20Interface { - return new Interface(_abi) as ZRC20Interface; - } - static connect(address: string, runner?: ContractRunner | null): ZRC20 { - return new Contract(address, _abi, runner) as unknown as ZRC20; - } -} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/index.ts deleted file mode 100644 index 7022ef80..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { ZRC20__factory } from "./ZRC20__factory"; -export { ZRC20Errors__factory } from "./ZRC20Errors__factory"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/index.ts deleted file mode 100644 index 42574d2e..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as systemContractSol from "./SystemContract.sol"; -export * as wzetaSol from "./WZETA.sol"; -export * as zrc20Sol from "./ZRC20.sol"; -export * as interfaces from "./interfaces"; -export { GatewayZEVM__factory } from "./GatewayZEVM__factory"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMErrors__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMErrors__factory.ts deleted file mode 100644 index 712a0ae3..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMErrors__factory.ts +++ /dev/null @@ -1,192 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IGatewayZEVMErrors, - IGatewayZEVMErrorsInterface, -} from "../../../../../../../@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMErrors"; - -const _abi = [ - { - inputs: [], - name: "CallerIsNotProtocol", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "recipient", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "FailedZetaSent", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "GasFeeTransferFailed", - type: "error", - }, - { - inputs: [], - name: "InsufficientGasLimit", - type: "error", - }, - { - inputs: [], - name: "InsufficientZRC20Amount", - type: "error", - }, - { - inputs: [], - name: "InsufficientZetaAmount", - type: "error", - }, - { - inputs: [], - name: "InvalidTarget", - type: "error", - }, - { - inputs: [ - { - internalType: "uint256", - name: "provided", - type: "uint256", - }, - { - internalType: "uint256", - name: "maximum", - type: "uint256", - }, - ], - name: "MessageSizeExceeded", - type: "error", - }, - { - inputs: [], - name: "OnlyWZETAOrProtocol", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "recipient", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "WithdrawalFailed", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "ZRC20BurnFailed", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "ZRC20DepositFailed", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "ZRC20TransferFailed", - type: "error", - }, -] as const; - -export class IGatewayZEVMErrors__factory { - static readonly abi = _abi; - static createInterface(): IGatewayZEVMErrorsInterface { - return new Interface(_abi) as IGatewayZEVMErrorsInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): IGatewayZEVMErrors { - return new Contract(address, _abi, runner) as unknown as IGatewayZEVMErrors; - } -} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMEvents__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMEvents__factory.ts deleted file mode 100644 index 29217bf3..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMEvents__factory.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IGatewayZEVMEvents, - IGatewayZEVMEventsInterface, -} from "../../../../../../../@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMEvents"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "zrc20", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "receiver", - type: "bytes", - }, - { - indexed: false, - internalType: "bytes", - name: "message", - type: "bytes", - }, - { - components: [ - { - internalType: "uint256", - name: "gasLimit", - type: "uint256", - }, - { - internalType: "bool", - name: "isArbitraryCall", - type: "bool", - }, - ], - indexed: false, - internalType: "struct CallOptions", - name: "callOptions", - type: "tuple", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - indexed: false, - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "Called", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "uint256", - name: "chainId", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "receiver", - type: "bytes", - }, - { - indexed: false, - internalType: "address", - name: "zrc20", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "gasfee", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "protocolFlatFee", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "message", - type: "bytes", - }, - { - components: [ - { - internalType: "uint256", - name: "gasLimit", - type: "uint256", - }, - { - internalType: "bool", - name: "isArbitraryCall", - type: "bool", - }, - ], - indexed: false, - internalType: "struct CallOptions", - name: "callOptions", - type: "tuple", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - indexed: false, - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "Withdrawn", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "uint256", - name: "chainId", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "receiver", - type: "bytes", - }, - { - indexed: false, - internalType: "address", - name: "zrc20", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "gasfee", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "protocolFlatFee", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "message", - type: "bytes", - }, - { - components: [ - { - internalType: "uint256", - name: "gasLimit", - type: "uint256", - }, - { - internalType: "bool", - name: "isArbitraryCall", - type: "bool", - }, - ], - indexed: false, - internalType: "struct CallOptions", - name: "callOptions", - type: "tuple", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - indexed: false, - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "WithdrawnAndCalled", - type: "event", - }, -] as const; - -export class IGatewayZEVMEvents__factory { - static readonly abi = _abi; - static createInterface(): IGatewayZEVMEventsInterface { - return new Interface(_abi) as IGatewayZEVMEventsInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): IGatewayZEVMEvents { - return new Contract(address, _abi, runner) as unknown as IGatewayZEVMEvents; - } -} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVM__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVM__factory.ts deleted file mode 100644 index e96c8f2c..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVM__factory.ts +++ /dev/null @@ -1,1080 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IGatewayZEVM, - IGatewayZEVMInterface, -} from "../../../../../../../@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVM"; - -const _abi = [ - { - inputs: [], - name: "CallerIsNotProtocol", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "recipient", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "FailedZetaSent", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "GasFeeTransferFailed", - type: "error", - }, - { - inputs: [], - name: "InsufficientGasLimit", - type: "error", - }, - { - inputs: [], - name: "InsufficientZRC20Amount", - type: "error", - }, - { - inputs: [], - name: "InsufficientZetaAmount", - type: "error", - }, - { - inputs: [], - name: "InvalidTarget", - type: "error", - }, - { - inputs: [ - { - internalType: "uint256", - name: "provided", - type: "uint256", - }, - { - internalType: "uint256", - name: "maximum", - type: "uint256", - }, - ], - name: "MessageSizeExceeded", - type: "error", - }, - { - inputs: [], - name: "OnlyWZETAOrProtocol", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "recipient", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "WithdrawalFailed", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "ZRC20BurnFailed", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "ZRC20DepositFailed", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "ZRC20TransferFailed", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "zrc20", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "receiver", - type: "bytes", - }, - { - indexed: false, - internalType: "bytes", - name: "message", - type: "bytes", - }, - { - components: [ - { - internalType: "uint256", - name: "gasLimit", - type: "uint256", - }, - { - internalType: "bool", - name: "isArbitraryCall", - type: "bool", - }, - ], - indexed: false, - internalType: "struct CallOptions", - name: "callOptions", - type: "tuple", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - indexed: false, - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "Called", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "uint256", - name: "chainId", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "receiver", - type: "bytes", - }, - { - indexed: false, - internalType: "address", - name: "zrc20", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "gasfee", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "protocolFlatFee", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "message", - type: "bytes", - }, - { - components: [ - { - internalType: "uint256", - name: "gasLimit", - type: "uint256", - }, - { - internalType: "bool", - name: "isArbitraryCall", - type: "bool", - }, - ], - indexed: false, - internalType: "struct CallOptions", - name: "callOptions", - type: "tuple", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - indexed: false, - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "Withdrawn", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "uint256", - name: "chainId", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "receiver", - type: "bytes", - }, - { - indexed: false, - internalType: "address", - name: "zrc20", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "gasfee", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "protocolFlatFee", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "message", - type: "bytes", - }, - { - components: [ - { - internalType: "uint256", - name: "gasLimit", - type: "uint256", - }, - { - internalType: "bool", - name: "isArbitraryCall", - type: "bool", - }, - ], - indexed: false, - internalType: "struct CallOptions", - name: "callOptions", - type: "tuple", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - indexed: false, - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "WithdrawnAndCalled", - type: "event", - }, - { - inputs: [ - { - internalType: "bytes", - name: "receiver", - type: "bytes", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "bytes", - name: "message", - type: "bytes", - }, - { - components: [ - { - internalType: "uint256", - name: "gasLimit", - type: "uint256", - }, - { - internalType: "bool", - name: "isArbitraryCall", - type: "bool", - }, - ], - internalType: "struct CallOptions", - name: "callOptions", - type: "tuple", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "call", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "target", - type: "address", - }, - ], - name: "deposit", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "bytes", - name: "sender", - type: "bytes", - }, - { - internalType: "address", - name: "senderEVM", - type: "address", - }, - { - internalType: "uint256", - name: "chainID", - type: "uint256", - }, - ], - internalType: "struct MessageContext", - name: "context", - type: "tuple", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "depositAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "bytes", - name: "sender", - type: "bytes", - }, - { - internalType: "address", - name: "senderEVM", - type: "address", - }, - { - internalType: "uint256", - name: "chainID", - type: "uint256", - }, - ], - internalType: "struct MessageContext", - name: "context", - type: "tuple", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "depositAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "target", - type: "address", - }, - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - ], - internalType: "struct RevertContext", - name: "revertContext", - type: "tuple", - }, - ], - name: "depositAndRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "bytes", - name: "sender", - type: "bytes", - }, - { - internalType: "address", - name: "senderEVM", - type: "address", - }, - { - internalType: "uint256", - name: "chainID", - type: "uint256", - }, - ], - internalType: "struct MessageContext", - name: "context", - type: "tuple", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "execute", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - ], - internalType: "struct RevertContext", - name: "revertContext", - type: "tuple", - }, - ], - name: "executeRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "receiver", - type: "bytes", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "withdraw", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "receiver", - type: "bytes", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "uint256", - name: "chainId", - type: "uint256", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "withdraw", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "receiver", - type: "bytes", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "uint256", - name: "chainId", - type: "uint256", - }, - { - internalType: "bytes", - name: "message", - type: "bytes", - }, - { - components: [ - { - internalType: "uint256", - name: "gasLimit", - type: "uint256", - }, - { - internalType: "bool", - name: "isArbitraryCall", - type: "bool", - }, - ], - internalType: "struct CallOptions", - name: "callOptions", - type: "tuple", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "withdrawAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "receiver", - type: "bytes", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "bytes", - name: "message", - type: "bytes", - }, - { - components: [ - { - internalType: "uint256", - name: "gasLimit", - type: "uint256", - }, - { - internalType: "bool", - name: "isArbitraryCall", - type: "bool", - }, - ], - internalType: "struct CallOptions", - name: "callOptions", - type: "tuple", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "withdrawAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class IGatewayZEVM__factory { - static readonly abi = _abi; - static createInterface(): IGatewayZEVMInterface { - return new Interface(_abi) as IGatewayZEVMInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): IGatewayZEVM { - return new Contract(address, _abi, runner) as unknown as IGatewayZEVM; - } -} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/index.ts deleted file mode 100644 index 0b6212ee..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { IGatewayZEVM__factory } from "./IGatewayZEVM__factory"; -export { IGatewayZEVMErrors__factory } from "./IGatewayZEVMErrors__factory"; -export { IGatewayZEVMEvents__factory } from "./IGatewayZEVMEvents__factory"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/ISystem__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/ISystem__factory.ts deleted file mode 100644 index 36f4732d..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/ISystem__factory.ts +++ /dev/null @@ -1,118 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - ISystem, - ISystemInterface, -} from "../../../../../../@zetachain/protocol-contracts/contracts/zevm/interfaces/ISystem"; - -const _abi = [ - { - inputs: [], - name: "FUNGIBLE_MODULE_ADDRESS", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "chainID", - type: "uint256", - }, - ], - name: "gasCoinZRC20ByChainId", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "chainID", - type: "uint256", - }, - ], - name: "gasPriceByChainId", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "chainID", - type: "uint256", - }, - ], - name: "gasZetaPoolByChainId", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "uniswapv2FactoryAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "wZetaContractAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -export class ISystem__factory { - static readonly abi = _abi; - static createInterface(): ISystemInterface { - return new Interface(_abi) as ISystemInterface; - } - static connect(address: string, runner?: ContractRunner | null): ISystem { - return new Contract(address, _abi, runner) as unknown as ISystem; - } -} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/IWETH9__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/IWETH9__factory.ts deleted file mode 100644 index ff6ed568..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/IWETH9__factory.ts +++ /dev/null @@ -1,263 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IWETH9, - IWETH9Interface, -} from "../../../../../../../@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/IWETH9"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "spender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "dst", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "wad", - type: "uint256", - }, - ], - name: "Deposit", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "src", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "wad", - type: "uint256", - }, - ], - name: "Withdrawal", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "wad", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "deposit", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "wad", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "wad", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "wad", - type: "uint256", - }, - ], - name: "withdraw", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class IWETH9__factory { - static readonly abi = _abi; - static createInterface(): IWETH9Interface { - return new Interface(_abi) as IWETH9Interface; - } - static connect(address: string, runner?: ContractRunner | null): IWETH9 { - return new Contract(address, _abi, runner) as unknown as IWETH9; - } -} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/index.ts deleted file mode 100644 index d3b0ed8d..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { IWETH9__factory } from "./IWETH9__factory"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata__factory.ts deleted file mode 100644 index 2f0e34f1..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata__factory.ts +++ /dev/null @@ -1,358 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IZRC20Metadata, - IZRC20MetadataInterface, -} from "../../../../../../../@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata"; - -const _abi = [ - { - inputs: [], - name: "GAS_LIMIT", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "PROTOCOL_FLAT_FEE", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "burn", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "decimals", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "deposit", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "name", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "newName", - type: "string", - }, - ], - name: "setName", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "newSymbol", - type: "string", - }, - ], - name: "setSymbol", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "symbol", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "recipient", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "recipient", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "to", - type: "bytes", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "withdraw", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "withdrawGasFee", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "gasLimit", - type: "uint256", - }, - ], - name: "withdrawGasFeeWithGasLimit", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -export class IZRC20Metadata__factory { - static readonly abi = _abi; - static createInterface(): IZRC20MetadataInterface { - return new Interface(_abi) as IZRC20MetadataInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): IZRC20Metadata { - return new Contract(address, _abi, runner) as unknown as IZRC20Metadata; - } -} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20__factory.ts deleted file mode 100644 index a00ffa3b..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20__factory.ts +++ /dev/null @@ -1,316 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IZRC20, - IZRC20Interface, -} from "../../../../../../../@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20"; - -const _abi = [ - { - inputs: [], - name: "GAS_LIMIT", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "PROTOCOL_FLAT_FEE", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "burn", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "deposit", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "newName", - type: "string", - }, - ], - name: "setName", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "newSymbol", - type: "string", - }, - ], - name: "setSymbol", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "recipient", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "recipient", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "to", - type: "bytes", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "withdraw", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "withdrawGasFee", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "gasLimit", - type: "uint256", - }, - ], - name: "withdrawGasFeeWithGasLimit", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -export class IZRC20__factory { - static readonly abi = _abi; - static createInterface(): IZRC20Interface { - return new Interface(_abi) as IZRC20Interface; - } - static connect(address: string, runner?: ContractRunner | null): IZRC20 { - return new Contract(address, _abi, runner) as unknown as IZRC20; - } -} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/ZRC20Events__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/ZRC20Events__factory.ts deleted file mode 100644 index 445a180b..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/ZRC20Events__factory.ts +++ /dev/null @@ -1,186 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - ZRC20Events, - ZRC20EventsInterface, -} from "../../../../../../../@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/ZRC20Events"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "spender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "from", - type: "bytes", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Deposit", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "gasLimit", - type: "uint256", - }, - ], - name: "UpdatedGasLimit", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "gateway", - type: "address", - }, - ], - name: "UpdatedGateway", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "protocolFlatFee", - type: "uint256", - }, - ], - name: "UpdatedProtocolFlatFee", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "systemContract", - type: "address", - }, - ], - name: "UpdatedSystemContract", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "to", - type: "bytes", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "gasFee", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "protocolFlatFee", - type: "uint256", - }, - ], - name: "Withdrawal", - type: "event", - }, -] as const; - -export class ZRC20Events__factory { - static readonly abi = _abi; - static createInterface(): ZRC20EventsInterface { - return new Interface(_abi) as ZRC20EventsInterface; - } - static connect(address: string, runner?: ContractRunner | null): ZRC20Events { - return new Contract(address, _abi, runner) as unknown as ZRC20Events; - } -} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/index.ts deleted file mode 100644 index 98e010d3..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { IZRC20__factory } from "./IZRC20__factory"; -export { IZRC20Metadata__factory } from "./IZRC20Metadata__factory"; -export { ZRC20Events__factory } from "./ZRC20Events__factory"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/UniversalContract__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/UniversalContract__factory.ts deleted file mode 100644 index 885b10bb..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/UniversalContract__factory.ts +++ /dev/null @@ -1,70 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - UniversalContract, - UniversalContractInterface, -} from "../../../../../../../@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/UniversalContract"; - -const _abi = [ - { - inputs: [ - { - components: [ - { - internalType: "bytes", - name: "sender", - type: "bytes", - }, - { - internalType: "address", - name: "senderEVM", - type: "address", - }, - { - internalType: "uint256", - name: "chainID", - type: "uint256", - }, - ], - internalType: "struct MessageContext", - name: "context", - type: "tuple", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "onCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class UniversalContract__factory { - static readonly abi = _abi; - static createInterface(): UniversalContractInterface { - return new Interface(_abi) as UniversalContractInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): UniversalContract { - return new Contract(address, _abi, runner) as unknown as UniversalContract; - } -} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/ZContract__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/ZContract__factory.ts deleted file mode 100644 index 85ad324a..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/ZContract__factory.ts +++ /dev/null @@ -1,67 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - ZContract, - ZContractInterface, -} from "../../../../../../../@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/ZContract"; - -const _abi = [ - { - inputs: [ - { - components: [ - { - internalType: "bytes", - name: "origin", - type: "bytes", - }, - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "uint256", - name: "chainID", - type: "uint256", - }, - ], - internalType: "struct zContext", - name: "context", - type: "tuple", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "onCrossChainCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class ZContract__factory { - static readonly abi = _abi; - static createInterface(): ZContractInterface { - return new Interface(_abi) as ZContractInterface; - } - static connect(address: string, runner?: ContractRunner | null): ZContract { - return new Contract(address, _abi, runner) as unknown as ZContract; - } -} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/index.ts deleted file mode 100644 index c297a535..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { UniversalContract__factory } from "./UniversalContract__factory"; -export { ZContract__factory } from "./ZContract__factory"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/index.ts deleted file mode 100644 index b114f19e..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as iGatewayZevmSol from "./IGatewayZEVM.sol"; -export * as iwzetaSol from "./IWZETA.sol"; -export * as izrc20Sol from "./IZRC20.sol"; -export * as universalContractSol from "./UniversalContract.sol"; -export { ISystem__factory } from "./ISystem__factory"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/index.ts deleted file mode 100644 index 6397da09..00000000 --- a/typechain-types/factories/@zetachain/protocol-contracts/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as contracts from "./contracts"; diff --git a/typechain-types/factories/contracts/BytesHelperLib__factory.ts b/typechain-types/factories/contracts/BytesHelperLib__factory.ts deleted file mode 100644 index 4db4c7ae..00000000 --- a/typechain-types/factories/contracts/BytesHelperLib__factory.ts +++ /dev/null @@ -1,72 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; -import type { NonPayableOverrides } from "../../common"; -import type { - BytesHelperLib, - BytesHelperLibInterface, -} from "../../contracts/BytesHelperLib"; - -const _abi = [ - { - inputs: [], - name: "OffsetOutOfBounds", - type: "error", - }, -] as const; - -const _bytecode = - "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220b28aa8cd642e8b46a35176c39ed29664d1248d00dd06a6bc3f538c8f0d7d5c9a64736f6c634300081a0033"; - -type BytesHelperLibConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: BytesHelperLibConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class BytesHelperLib__factory extends ContractFactory { - constructor(...args: BytesHelperLibConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(overrides || {}); - } - override deploy(overrides?: NonPayableOverrides & { from?: string }) { - return super.deploy(overrides || {}) as Promise< - BytesHelperLib & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): BytesHelperLib__factory { - return super.connect(runner) as BytesHelperLib__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): BytesHelperLibInterface { - return new Interface(_abi) as BytesHelperLibInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): BytesHelperLib { - return new Contract(address, _abi, runner) as unknown as BytesHelperLib; - } -} diff --git a/typechain-types/factories/contracts/EthZetaMock.sol/ZetaEthMock__factory.ts b/typechain-types/factories/contracts/EthZetaMock.sol/ZetaEthMock__factory.ts deleted file mode 100644 index 02536f7a..00000000 --- a/typechain-types/factories/contracts/EthZetaMock.sol/ZetaEthMock__factory.ts +++ /dev/null @@ -1,400 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { - Signer, - BigNumberish, - AddressLike, - ContractDeployTransaction, - ContractRunner, -} from "ethers"; -import type { NonPayableOverrides } from "../../../common"; -import type { - ZetaEthMock, - ZetaEthMockInterface, -} from "../../../contracts/EthZetaMock.sol/ZetaEthMock"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "creator", - type: "address", - }, - { - internalType: "uint256", - name: "initialSupply", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "allowance", - type: "uint256", - }, - { - internalType: "uint256", - name: "needed", - type: "uint256", - }, - ], - name: "ERC20InsufficientAllowance", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "uint256", - name: "balance", - type: "uint256", - }, - { - internalType: "uint256", - name: "needed", - type: "uint256", - }, - ], - name: "ERC20InsufficientBalance", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "approver", - type: "address", - }, - ], - name: "ERC20InvalidApprover", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - ], - name: "ERC20InvalidReceiver", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "ERC20InvalidSender", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "ERC20InvalidSpender", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "spender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "decimals", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "name", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "symbol", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -const _bytecode = - "0x6080604052346103e257610a616040813803918261001c816103e7565b9384928339810103126103e25780516001600160a01b03811691908290036103e2576020015161004c60406103e7565b9160048352635a65746160e01b602084015261006860406103e7565b60048152635a45544160e01b602082015283519092906001600160401b0381116102eb57600354600181811c911680156103d8575b60208210146102cb57601f8111610373575b50602094601f821160011461030c57948192939495600092610301575b50508160011b916000199060031b1c1916176003555b82516001600160401b0381116102eb57600454600181811c911680156102e1575b60208210146102cb57601f8111610266575b506020601f82116001146101ff57819293946000926101f4575b50508160011b916000199060031b1c1916176004555b670de0b6b3a7640000810290808204670de0b6b3a764000014901517156101c85781156101de576002548181018091116101c8576002557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602060009284845283825260408420818154019055604051908152a3604051610654908161040d8239f35b634e487b7160e01b600052601160045260246000fd5b63ec442f0560e01b600052600060045260246000fd5b01519050388061012f565b601f198216906004600052806000209160005b81811061024e57509583600195969710610235575b505050811b01600455610145565b015160001960f88460031b161c19169055388080610227565b9192602060018192868b015181550194019201610212565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c810191602084106102c1575b601f0160051c01905b8181106102b55750610115565b600081556001016102a8565b909150819061029f565b634e487b7160e01b600052602260045260246000fd5b90607f1690610103565b634e487b7160e01b600052604160045260246000fd5b0151905038806100cc565b601f198216956003600052806000209160005b88811061035b57508360019596979810610342575b505050811b016003556100e2565b015160001960f88460031b161c19169055388080610334565b9192602060018192868501518155019401920161031f565b60036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c810191602084106103ce575b601f0160051c01905b8181106103c257506100af565b600081556001016103b5565b90915081906103ac565b90607f169061009d565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176102eb5760405256fe608080604052600436101561001357600080fd5b60003560e01c90816306fdde031461041157508063095ea7b31461038b57806318160ddd1461036d57806323b872dd14610280578063313ce5671461026457806370a082311461022a57806395d89b4114610109578063a9059cbb146100d85763dd62ed3e1461008257600080fd5b346100d35760403660031901126100d35761009b61052d565b6100a3610543565b6001600160a01b039182166000908152600160209081526040808320949093168252928352819020549051908152f35b600080fd5b346100d35760403660031901126100d3576100fe6100f461052d565b6024359033610559565b602060405160018152f35b346100d35760003660031901126100d35760405160006004548060011c90600181168015610220575b60208310811461020c578285529081156101f05750600114610199575b50819003601f01601f191681019067ffffffffffffffff8211818310176101835761017f829182604052826104e4565b0390f35b634e487b7160e01b600052604160045260246000fd5b905060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b6000905b8282106101da5750602091508201018261014f565b60018160209254838588010152019101906101c5565b90506020925060ff191682840152151560051b8201018261014f565b634e487b7160e01b84526022600452602484fd5b91607f1691610132565b346100d35760203660031901126100d3576001600160a01b0361024b61052d565b1660005260006020526020604060002054604051908152f35b346100d35760003660031901126100d357602060405160128152f35b346100d35760603660031901126100d35761029961052d565b6102a1610543565b6001600160a01b03821660008181526001602090815260408083203384529091529020549092604435929160001981106102e1575b506100fe9350610559565b83811061035057841561033a573315610324576100fe946000526001602052604060002060018060a01b03331660005260205283604060002091039055846102d6565b634a1406b160e11b600052600060045260246000fd5b63e602df0560e01b600052600060045260246000fd5b8390637dc7a0d960e11b6000523360045260245260445260646000fd5b346100d35760003660031901126100d3576020600254604051908152f35b346100d35760403660031901126100d3576103a461052d565b60243590331561033a576001600160a01b031690811561032457336000526001602052604060002082600052602052806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346100d35760003660031901126100d35760006003548060011c906001811680156104da575b60208310811461020c578285529081156101f057506001146104835750819003601f01601f191681019067ffffffffffffffff8211818310176101835761017f829182604052826104e4565b905060036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b6000905b8282106104c45750602091508201018261014f565b60018160209254838588010152019101906104af565b91607f1691610437565b91909160208152825180602083015260005b818110610517575060409293506000838284010152601f8019910116010190565b80602080928701015160408286010152016104f6565b600435906001600160a01b03821682036100d357565b602435906001600160a01b03821682036100d357565b6001600160a01b0316908115610608576001600160a01b03169182156105f25760008281528060205260408120548281106105d85791604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815280845220818154019055604051908152a3565b916064928463391434e360e21b8452600452602452604452fd5b63ec442f0560e01b600052600060045260246000fd5b634b637e8f60e11b600052600060045260246000fdfea2646970667358221220aefcdd77b898c83c92220d43b3c783a7de1cc61d4d84f1806732afac4c5815a864736f6c634300081a0033"; - -type ZetaEthMockConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: ZetaEthMockConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class ZetaEthMock__factory extends ContractFactory { - constructor(...args: ZetaEthMockConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - creator: AddressLike, - initialSupply: BigNumberish, - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(creator, initialSupply, overrides || {}); - } - override deploy( - creator: AddressLike, - initialSupply: BigNumberish, - overrides?: NonPayableOverrides & { from?: string } - ) { - return super.deploy(creator, initialSupply, overrides || {}) as Promise< - ZetaEthMock & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): ZetaEthMock__factory { - return super.connect(runner) as ZetaEthMock__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): ZetaEthMockInterface { - return new Interface(_abi) as ZetaEthMockInterface; - } - static connect(address: string, runner?: ContractRunner | null): ZetaEthMock { - return new Contract(address, _abi, runner) as unknown as ZetaEthMock; - } -} diff --git a/typechain-types/factories/contracts/EthZetaMock.sol/index.ts b/typechain-types/factories/contracts/EthZetaMock.sol/index.ts deleted file mode 100644 index d3eb18fd..00000000 --- a/typechain-types/factories/contracts/EthZetaMock.sol/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { ZetaEthMock__factory } from "./ZetaEthMock__factory"; diff --git a/typechain-types/factories/contracts/OnlySystem__factory.ts b/typechain-types/factories/contracts/OnlySystem__factory.ts deleted file mode 100644 index 5392a346..00000000 --- a/typechain-types/factories/contracts/OnlySystem__factory.ts +++ /dev/null @@ -1,75 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; -import type { NonPayableOverrides } from "../../common"; -import type { - OnlySystem, - OnlySystemInterface, -} from "../../contracts/OnlySystem"; - -const _abi = [ - { - inputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - name: "OnlySystemContract", - type: "error", - }, -] as const; - -const _bytecode = - "0x60808060405234601357603a908160198239f35b600080fdfe600080fdfea2646970667358221220925e47bcf7488256883aaad419709174945c910212ddca190c45335344b1674c64736f6c634300081a0033"; - -type OnlySystemConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: OnlySystemConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class OnlySystem__factory extends ContractFactory { - constructor(...args: OnlySystemConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(overrides || {}); - } - override deploy(overrides?: NonPayableOverrides & { from?: string }) { - return super.deploy(overrides || {}) as Promise< - OnlySystem & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): OnlySystem__factory { - return super.connect(runner) as OnlySystem__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): OnlySystemInterface { - return new Interface(_abi) as OnlySystemInterface; - } - static connect(address: string, runner?: ContractRunner | null): OnlySystem { - return new Contract(address, _abi, runner) as unknown as OnlySystem; - } -} diff --git a/typechain-types/factories/contracts/Revert.sol/Revertable__factory.ts b/typechain-types/factories/contracts/Revert.sol/Revertable__factory.ts deleted file mode 100644 index 4c20ebf3..00000000 --- a/typechain-types/factories/contracts/Revert.sol/Revertable__factory.ts +++ /dev/null @@ -1,52 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - Revertable, - RevertableInterface, -} from "../../../contracts/Revert.sol/Revertable"; - -const _abi = [ - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "uint64", - name: "amount", - type: "uint64", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - ], - internalType: "struct RevertContext", - name: "revertContext", - type: "tuple", - }, - ], - name: "onRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class Revertable__factory { - static readonly abi = _abi; - static createInterface(): RevertableInterface { - return new Interface(_abi) as RevertableInterface; - } - static connect(address: string, runner?: ContractRunner | null): Revertable { - return new Contract(address, _abi, runner) as unknown as Revertable; - } -} diff --git a/typechain-types/factories/contracts/Revert.sol/index.ts b/typechain-types/factories/contracts/Revert.sol/index.ts deleted file mode 100644 index eefdeed8..00000000 --- a/typechain-types/factories/contracts/Revert.sol/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { Revertable__factory } from "./Revertable__factory"; diff --git a/typechain-types/factories/contracts/SwapHelperLib__factory.ts b/typechain-types/factories/contracts/SwapHelperLib__factory.ts deleted file mode 100644 index eab4aa5e..00000000 --- a/typechain-types/factories/contracts/SwapHelperLib__factory.ts +++ /dev/null @@ -1,190 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; -import type { NonPayableOverrides } from "../../common"; -import type { - SwapHelperLib, - SwapHelperLibInterface, -} from "../../contracts/SwapHelperLib"; - -const _abi = [ - { - inputs: [], - name: "AdditionsOverflow", - type: "error", - }, - { - inputs: [], - name: "CantBeIdenticalAddresses", - type: "error", - }, - { - inputs: [], - name: "CantBeZeroAddress", - type: "error", - }, - { - inputs: [], - name: "IdenticalAddresses", - type: "error", - }, - { - inputs: [], - name: "InsufficientInputAmount", - type: "error", - }, - { - inputs: [], - name: "InsufficientLiquidity", - type: "error", - }, - { - inputs: [], - name: "InvalidPath", - type: "error", - }, - { - inputs: [], - name: "InvalidPathLength", - type: "error", - }, - { - inputs: [], - name: "MultiplicationsOverflow", - type: "error", - }, - { - inputs: [], - name: "NotEnoughToPayGasFee", - type: "error", - }, - { - inputs: [], - name: "WrongGasContract", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "router", - type: "address", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "uint256", - name: "amountIn", - type: "uint256", - }, - ], - name: "getMinOutAmount", - outputs: [ - { - internalType: "uint256", - name: "minOutAmount", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "factory", - type: "address", - }, - { - internalType: "address", - name: "tokenA", - type: "address", - }, - { - internalType: "address", - name: "tokenB", - type: "address", - }, - ], - name: "uniswapv2PairFor", - outputs: [ - { - internalType: "address", - name: "pair", - type: "address", - }, - ], - stateMutability: "pure", - type: "function", - }, -] as const; - -const _bytecode = - "0x6080806040523460195761081f908161001f823930815050f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c90816354ce67ae14610167575063c63585cc1461003557600080fd5b60603660031901126101625761004961039a565b6100516103b0565b9061005a6103c6565b916001600160a01b0380841690821680821461015157101561014b575b6001600160a01b0381161561013a576040516bffffffffffffffffffffffff19606092831b811660208084019182529590931b166034820152602881526100bf6048826103dc565b51902090604051918383019160ff60f81b83526bffffffffffffffffffffffff199060601b16602184015260358301527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f6055830152605582526101246075836103dc565b905190206040516001600160a01b039091168152f35b633c5a83ed60e11b60005260046000fd5b91610077565b63658f3e7f60e11b60005260046000fd5b600080fd5b60803660031901126101625761017b61039a565b6101836103b0565b61018b6103c6565b63c45a015560e01b845291606435906001600160a01b0316602085600481845afa90811561036c57600495600092610378575b50602090604051968780926315ab88c960e31b82525afa94851561036c5760009561033b575b5060609361023e6040516101f887826103dc565b60028152601f1987013660208301376102108161044b565b6001600160a01b039096169586905261022881610458565b6001600160a01b0390931692839052848461047c565b956040519461024e6080876103dc565b6003865260603660208801376102638661044b565b5261026d85610458565b6001600160a01b039091169052835160021015610325576102909484015261047c565b815160001981019081116102ee576102a89083610468565b51815160001981019081116102ee576102c19083610468565b511015610304575080516000198101919082116102ee576020916102e491610468565b515b604051908152f35b634e487b7160e01b600052601160045260246000fd5b80516000198101925082116102ee5760209161031f91610468565b516102e6565b634e487b7160e01b600052603260045260246000fd5b61035e91955060203d602011610365575b61035681836103dc565b810190610414565b93856101e4565b503d61034c565b6040513d6000823e3d90fd5b602091925061039390823d84116103655761035681836103dc565b91906101be565b600435906001600160a01b038216820361016257565b602435906001600160a01b038216820361016257565b604435906001600160a01b038216820361016257565b90601f8019910116810190811067ffffffffffffffff8211176103fe57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261016257516001600160a01b03811681036101625790565b67ffffffffffffffff81116103fe5760051b60200190565b8051156103255760200190565b8051600110156103255760400190565b80518210156103255760209160051b010190565b9291600281511061070a5780519161049383610433565b926104a160405194856103dc565b8084526104b0601f1991610433565b0136602085013782906104c28461044b565b5260005b825160001981019081116102ee57811015610703576001600160a01b036104ed8285610468565b511690600181018082116102ee576001600160a01b0361050d8287610468565b51168084146106f257808410156106ec57835b6001600160a01b031680156106db5760405163e6a4390560e01b81526004810186905260248101929092526020826044816001600160a01b038e165afa91821561036c576004926060916000916106bd575b50604051630240bc6b60e21b815293849182906001600160a01b03165afa91821561036c57600090819361065b575b506001600160701b038091169216941460001461065657925b6105c48388610468565b518015610645578415801561063d575b61062c576105ee6105e76105f49261074f565b92836107b8565b94610790565b90810190811061061b5761060d6106149160019561072f565b9187610468565b52016104c6565b63a259879560e01b60005260046000fd5b63bb55fd2760e01b60005260046000fd5b5081156105d4565b63098fb56160e01b60005260046000fd5b6105ba565b92506060833d82116106b5575b81610675606093836103dc565b810103126106b2576106868361071b565b9060406106956020860161071b565b94015163ffffffff8116036106b257506001600160701b036105a1565b80fd5b3d9150610668565b6106d5915060203d81116103655761035681836103dc565b38610572565b63d92e233d60e01b60005260046000fd5b80610520565b630bd969eb60e41b60005260046000fd5b5093505050565b6320db826760e01b60005260046000fd5b51906001600160701b038216820361016257565b8115610739570490565b634e487b7160e01b600052601260045260246000fd5b6000908015908115610776575b50156107655790565b632bcb93b560e11b60005260046000fd5b9150506103e5610789818302928361072f565b143861075c565b60009080159081156107a55750156107655790565b9150506103e8610789818302928361072f565b9060009180159182156107d0575b5050156107655790565b808202935091506107e1908361072f565b1438806107c656fea264697066735822122070a6351669c1b21d268fb94ff8237dbe817be27204fac89d4dde0a6ccfcdbef464736f6c634300081a0033"; - -type SwapHelperLibConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: SwapHelperLibConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class SwapHelperLib__factory extends ContractFactory { - constructor(...args: SwapHelperLibConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(overrides || {}); - } - override deploy(overrides?: NonPayableOverrides & { from?: string }) { - return super.deploy(overrides || {}) as Promise< - SwapHelperLib & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): SwapHelperLib__factory { - return super.connect(runner) as SwapHelperLib__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): SwapHelperLibInterface { - return new Interface(_abi) as SwapHelperLibInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): SwapHelperLib { - return new Contract(address, _abi, runner) as unknown as SwapHelperLib; - } -} diff --git a/typechain-types/factories/contracts/SwapHelpers.sol/SwapLibrary__factory.ts b/typechain-types/factories/contracts/SwapHelpers.sol/SwapLibrary__factory.ts deleted file mode 100644 index c6e66292..00000000 --- a/typechain-types/factories/contracts/SwapHelpers.sol/SwapLibrary__factory.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; -import type { NonPayableOverrides } from "../../../common"; -import type { - SwapLibrary, - SwapLibraryInterface, -} from "../../../contracts/SwapHelpers.sol/SwapLibrary"; - -const _abi = [ - { - inputs: [], - name: "SwapFailed", - type: "error", - }, -] as const; - -const _bytecode = - "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220c7e0188eb4e121ddc2dd94813331a7503ea248a34544a957154ce245307535a964736f6c634300081a0033"; - -type SwapLibraryConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: SwapLibraryConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class SwapLibrary__factory extends ContractFactory { - constructor(...args: SwapLibraryConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(overrides || {}); - } - override deploy(overrides?: NonPayableOverrides & { from?: string }) { - return super.deploy(overrides || {}) as Promise< - SwapLibrary & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): SwapLibrary__factory { - return super.connect(runner) as SwapLibrary__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): SwapLibraryInterface { - return new Interface(_abi) as SwapLibraryInterface; - } - static connect(address: string, runner?: ContractRunner | null): SwapLibrary { - return new Contract(address, _abi, runner) as unknown as SwapLibrary; - } -} diff --git a/typechain-types/factories/contracts/SwapHelpers.sol/index.ts b/typechain-types/factories/contracts/SwapHelpers.sol/index.ts deleted file mode 100644 index 60e7a35b..00000000 --- a/typechain-types/factories/contracts/SwapHelpers.sol/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { SwapLibrary__factory } from "./SwapLibrary__factory"; diff --git a/typechain-types/factories/contracts/SystemContract.sol/SystemContractErrors__factory.ts b/typechain-types/factories/contracts/SystemContract.sol/SystemContractErrors__factory.ts deleted file mode 100644 index fd64cab7..00000000 --- a/typechain-types/factories/contracts/SystemContract.sol/SystemContractErrors__factory.ts +++ /dev/null @@ -1,54 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - SystemContractErrors, - SystemContractErrorsInterface, -} from "../../../contracts/SystemContract.sol/SystemContractErrors"; - -const _abi = [ - { - inputs: [], - name: "CallerIsNotFungibleModule", - type: "error", - }, - { - inputs: [], - name: "CantBeIdenticalAddresses", - type: "error", - }, - { - inputs: [], - name: "CantBeZeroAddress", - type: "error", - }, - { - inputs: [], - name: "InvalidTarget", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, -] as const; - -export class SystemContractErrors__factory { - static readonly abi = _abi; - static createInterface(): SystemContractErrorsInterface { - return new Interface(_abi) as SystemContractErrorsInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): SystemContractErrors { - return new Contract( - address, - _abi, - runner - ) as unknown as SystemContractErrors; - } -} diff --git a/typechain-types/factories/contracts/SystemContract.sol/SystemContract__factory.ts b/typechain-types/factories/contracts/SystemContract.sol/SystemContract__factory.ts deleted file mode 100644 index 77d603c8..00000000 --- a/typechain-types/factories/contracts/SystemContract.sol/SystemContract__factory.ts +++ /dev/null @@ -1,506 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { - Signer, - AddressLike, - ContractDeployTransaction, - ContractRunner, -} from "ethers"; -import type { NonPayableOverrides } from "../../../common"; -import type { - SystemContract, - SystemContractInterface, -} from "../../../contracts/SystemContract.sol/SystemContract"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "wzeta_", - type: "address", - }, - { - internalType: "address", - name: "uniswapv2Factory_", - type: "address", - }, - { - internalType: "address", - name: "uniswapv2Router02_", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [], - name: "CallerIsNotFungibleModule", - type: "error", - }, - { - inputs: [], - name: "CantBeIdenticalAddresses", - type: "error", - }, - { - inputs: [], - name: "CantBeZeroAddress", - type: "error", - }, - { - inputs: [], - name: "InvalidTarget", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "", - type: "address", - }, - ], - name: "SetConnectorZEVM", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "", - type: "address", - }, - ], - name: "SetGasCoin", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "SetGasPrice", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "", - type: "address", - }, - ], - name: "SetGasZetaPool", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "", - type: "address", - }, - ], - name: "SetWZeta", - type: "event", - }, - { - anonymous: false, - inputs: [], - name: "SystemContractDeployed", - type: "event", - }, - { - inputs: [], - name: "FUNGIBLE_MODULE_ADDRESS", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "bytes", - name: "origin", - type: "bytes", - }, - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "uint256", - name: "chainID", - type: "uint256", - }, - ], - internalType: "struct zContext", - name: "context", - type: "tuple", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "depositAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "gasCoinZRC20ByChainId", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "gasPriceByChainId", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "gasZetaPoolByChainId", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - ], - name: "setConnectorZEVMAddress", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "chainID", - type: "uint256", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - ], - name: "setGasCoinZRC20", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "chainID", - type: "uint256", - }, - { - internalType: "uint256", - name: "price", - type: "uint256", - }, - ], - name: "setGasPrice", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "chainID", - type: "uint256", - }, - { - internalType: "address", - name: "erc20", - type: "address", - }, - ], - name: "setGasZetaPool", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - ], - name: "setWZETAContractAddress", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "uniswapv2FactoryAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "factory", - type: "address", - }, - { - internalType: "address", - name: "tokenA", - type: "address", - }, - { - internalType: "address", - name: "tokenB", - type: "address", - }, - ], - name: "uniswapv2PairFor", - outputs: [ - { - internalType: "address", - name: "pair", - type: "address", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [], - name: "uniswapv2Router02Address", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "wZetaContractAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "zetaConnectorZEVMAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -const _bytecode = - "0x60c03461010057601f610b3a38819003918201601f19168301916001600160401b0383118484101761010557808492606094604052833981010312610100576100478161011b565b9061006060406100596020840161011b565b920161011b565b9173735b14bb79463307aacbed86daf3322b1e6226ab33036100ef57600380546001600160a01b0319166001600160a01b039290921691909117905560805260a0526040517f80699e81136d69cb8367ad52a994e25c722a86da654b561d0c14b61a777e7ac5600080a1610a0a9081610130823960805181818161018a015261065d015260a051816106d70152f35b632b2add3d60e01b60005260046000fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036101005756fe608080604052600436101561001357600080fd5b600090813560e01c9081630be1554714610817575080631f0e251b146107915780633ce4a5bc14610762578063513a9c051461072f578063569541b914610706578063842da36d146106c157806391dd645f146105f057806397770dff1461054c578063a7cb0507146104da578063c39aca3714610263578063c62178ac1461023a578063c63585cc146101e2578063d7fd7afb146101b9578063d936a012146101745763ee2815ba146100c657600080fd5b34610171576040366003190112610171576004356100e2610864565b9073735b14bb79463307aacbed86daf3322b1e6226ab33036101625780835260016020908152604080852080546001600160a01b0319166001600160a01b0390951694851790558051928352908201929092527fd1b36d30f6248e97c473b4d1348ca164a4ef6759022f54a58ec200326c39c45d91819081015b0390a180f35b632b2add3d60e01b8352600483fd5b80fd5b50346101715780600319360112610171576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461017157602036600319011261017157604060209160043581528083522054604051908152f35b5034610171576060366003190112610171576101fc610849565b610204610864565b604435929091906001600160a01b03841684036101715760206102288585856108d3565b6040516001600160a01b039091168152f35b50346101715780600319360112610171576004546040516001600160a01b039091168152602090f35b50346101715760a0366003190112610171576004359067ffffffffffffffff82116101715781360360606003198201126104d65761029f610864565b92604435906064356001600160a01b038116908190036104d25760843567ffffffffffffffff81116104ce57366023820112156104ce5780600401359367ffffffffffffffff85116104615736602486840101116104615773735b14bb79463307aacbed86daf3322b1e6226ab33036104bf5773735b14bb79463307aacbed86daf3322b1e6226ab831480156104b6575b6104a7576040516311f9fbc960e21b815260048101849052602481018290529697959688966001600160a01b0316906020816044818b865af1801561049c57610465575b50833b156104615760405197636f218ab760e11b8952608060048a01528560040135906022190181121561045d57850160246004820135910167ffffffffffffffff8211610459578136038113610459576103da91606060848c015260e48b01916108b2565b60248601356001600160a01b038116919082900361045957889760248b98968a968a989660448a9861042d9860a48b0152013560c4890152838801526044870152600319868503016064870152016108b2565b03925af1801561044c5761043e5780f35b6104479161087a565b388180f35b50604051903d90823e3d90fd5b8880fd5b8780fd5b8680fd5b6020813d602011610494575b8161047e6020938361087a565b8101031261045d57518015158114610374578780fd5b3d9150610471565b6040513d8a823e3d90fd5b63416aebb560e11b8752600487fd5b50308314610330565b632b2add3d60e01b8752600487fd5b8580fd5b8480fd5b5080fd5b50346101715760403660031901126101715760043560243573735b14bb79463307aacbed86daf3322b1e6226ab330361016257816040917f49f492222906ac486c3c1401fa545626df1f0c0e5a77a05597ea2ed66af9850d93855284602052808386205582519182526020820152a180f35b503461017157602036600319011261017157610566610849565b73735b14bb79463307aacbed86daf3322b1e6226ab33036105e1576001600160a01b031680156105d2576020817fdba79d534382d1a8ae108e4c8ecb27c6ae42ab8b91d44eedf88bd329f3868d5e926001600160601b0360a01b6003541617600355604051908152a180f35b63d92e233d60e01b8252600482fd5b632b2add3d60e01b8252600482fd5b50346101715760403660031901126101715760043561060d610864565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610162576003547f0ecec485166da6139b13bb7e033e9446e2d35348e80ebf1180d4afe2dba1704e9291610681916001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006108d3565b81845260026020908152604080862080546001600160a01b0319166001600160a01b0390941693841790558051938452908301919091528190810161015c565b50346101715780600319360112610171576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101715780600319360112610171576003546040516001600160a01b039091168152602090f35b503461017157602036600319011261017157602090600435815260028252604060018060a01b0391205416604051908152f35b5034610171578060031936011261017157602060405173735b14bb79463307aacbed86daf3322b1e6226ab8152f35b5034610171576020366003190112610171576107ab610849565b73735b14bb79463307aacbed86daf3322b1e6226ab33036105e1576001600160a01b031680156105d2576020817f3ade88e3922d64780e1bf4460d364c2970b69da813f9c0c07a1c187b5647636c926001600160601b0360a01b6004541617600455604051908152a180f35b9050346104d65760203660031901126104d6576004358252600160209081526040909220546001600160a01b03168152f35b600435906001600160a01b038216820361085f57565b600080fd5b602435906001600160a01b038216820361085f57565b90601f8019910116810190811067ffffffffffffffff82111761089c57604052565b634e487b7160e01b600052604160045260246000fd5b908060209392818452848401376000828201840152601f01601f1916010190565b91906001600160a01b038083169082168082146109c35710156109be57905b6001600160a01b038216156109ad576040519060208201926001600160601b03199060601b1683526001600160601b03199060601b1660348201526028815261093c60488261087a565b5190209060405191602083019160ff60f81b83526001600160601b03199060601b16602184015260358301527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f60558301526055825261099d60758361087a565b905190206001600160a01b031690565b633c5a83ed60e11b60005260046000fd5b6108f2565b63658f3e7f60e11b60005260046000fdfea26469706673582212201293d4dc116be41fa957e54d5d4f7a35b05a4e1403d3a1240ee720753de296d664736f6c634300081a0033"; - -type SystemContractConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: SystemContractConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class SystemContract__factory extends ContractFactory { - constructor(...args: SystemContractConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - wzeta_: AddressLike, - uniswapv2Factory_: AddressLike, - uniswapv2Router02_: AddressLike, - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction( - wzeta_, - uniswapv2Factory_, - uniswapv2Router02_, - overrides || {} - ); - } - override deploy( - wzeta_: AddressLike, - uniswapv2Factory_: AddressLike, - uniswapv2Router02_: AddressLike, - overrides?: NonPayableOverrides & { from?: string } - ) { - return super.deploy( - wzeta_, - uniswapv2Factory_, - uniswapv2Router02_, - overrides || {} - ) as Promise< - SystemContract & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): SystemContract__factory { - return super.connect(runner) as SystemContract__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): SystemContractInterface { - return new Interface(_abi) as SystemContractInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): SystemContract { - return new Contract(address, _abi, runner) as unknown as SystemContract; - } -} diff --git a/typechain-types/factories/contracts/SystemContract.sol/index.ts b/typechain-types/factories/contracts/SystemContract.sol/index.ts deleted file mode 100644 index 32da62eb..00000000 --- a/typechain-types/factories/contracts/SystemContract.sol/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { SystemContract__factory } from "./SystemContract__factory"; -export { SystemContractErrors__factory } from "./SystemContractErrors__factory"; diff --git a/typechain-types/factories/contracts/TestZRC20__factory.ts b/typechain-types/factories/contracts/TestZRC20__factory.ts deleted file mode 100644 index a46dc762..00000000 --- a/typechain-types/factories/contracts/TestZRC20__factory.ts +++ /dev/null @@ -1,508 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { - Signer, - BigNumberish, - ContractDeployTransaction, - ContractRunner, -} from "ethers"; -import type { NonPayableOverrides } from "../../common"; -import type { TestZRC20, TestZRC20Interface } from "../../contracts/TestZRC20"; - -const _abi = [ - { - inputs: [ - { - internalType: "uint256", - name: "initialSupply", - type: "uint256", - }, - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "allowance", - type: "uint256", - }, - { - internalType: "uint256", - name: "needed", - type: "uint256", - }, - ], - name: "ERC20InsufficientAllowance", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "uint256", - name: "balance", - type: "uint256", - }, - { - internalType: "uint256", - name: "needed", - type: "uint256", - }, - ], - name: "ERC20InsufficientBalance", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "approver", - type: "address", - }, - ], - name: "ERC20InvalidApprover", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - ], - name: "ERC20InvalidReceiver", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "ERC20InvalidSender", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "ERC20InvalidSpender", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "spender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - internalType: "uint256", - name: "offset", - type: "uint256", - }, - { - internalType: "uint256", - name: "size", - type: "uint256", - }, - ], - name: "bytesToAddress", - outputs: [ - { - internalType: "address", - name: "output", - type: "address", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [], - name: "decimals", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "deposit", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "name", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "symbol", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "to", - type: "bytes", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "withdraw", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "withdrawGasFee", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -const _bytecode = - "0x6080604052346103d457610d6580380380610019816103d9565b9283398101906060818303126103d457805160208201519091906001600160401b0381116103d4578361004d9183016103fe565b60408201519093906001600160401b0381116103d45761006d92016103fe565b82519091906001600160401b0381116102dd57600354600181811c911680156103ca575b60208210146102bd57601f8111610365575b506020601f82116001146102fe57819293946000926102f3575b50508160011b916000199060031b1c1916176003555b81516001600160401b0381116102dd57600454600181811c911680156102d3575b60208210146102bd57601f8111610258575b50602092601f82116001146101f357928192936000926101e8575b50508160011b916000199060031b1c1916176004555b670de0b6b3a7640000810290808204670de0b6b3a764000014901517156101bc5733156101d2576002548181018091116101bc57600255600033815280602052604081208281540190556040519182527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203393a36040516108fb908161046a8239f35b634e487b7160e01b600052601160045260246000fd5b63ec442f0560e01b600052600060045260246000fd5b015190503880610121565b601f198216936004600052806000209160005b8681106102405750836001959610610227575b505050811b01600455610137565b015160001960f88460031b161c19169055388080610219565b91926020600181928685015181550194019201610206565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c810191602084106102b3575b601f0160051c01905b8181106102a75750610106565b6000815560010161029a565b9091508190610291565b634e487b7160e01b600052602260045260246000fd5b90607f16906100f4565b634e487b7160e01b600052604160045260246000fd5b0151905038806100bd565b601f198216906003600052806000209160005b81811061034d57509583600195969710610334575b505050811b016003556100d3565b015160001960f88460031b161c19169055388080610326565b9192602060018192868b015181550194019201610311565b60036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c810191602084106103c0575b601f0160051c01905b8181106103b457506100a3565b600081556001016103a7565b909150819061039e565b90607f1690610091565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176102dd57604052565b81601f820112156103d4578051906001600160401b0382116102dd5761042d601f8301601f19166020016103d9565b92828452602083830101116103d45760005b82811061045457505060206000918301015290565b8060208092840101518282870101520161043f56fe6080604052600436101561001257600080fd5b60003560e01c806306fdde03146100e7578063095ea7b3146100e257806318160ddd146100dd57806323b872dd146100d85780632c27d3ab146100d3578063313ce567146100ce57806347e7ef24146100c957806370a08231146100c457806395d89b41146100bf578063a9059cbb146100ba578063c7012626146100b5578063d9eeebed146100b05763dd62ed3e146100ab57600080fd5b610678565b610657565b6105f8565b6105c7565b61050f565b6104d5565b6104b0565b610494565b61040f565b61033d565b61031f565b61025c565b610135565b91909160208152825180602083015260005b81811061011f575060409293506000838284010152601f8019910116010190565b80602080928701015160408286010152016100fe565b3461022b57600036600319011261022b5760405160006003548060011c9060018116908115610221575b60208310821461020d5782855260208501919081156101f457506001146101a1575b61019d84610191818603826106e6565b604051918291826100ec565b0390f35b600360009081529250907fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8184106101e05750500161019182610181565b8054848401526020909301926001016101cd565b60ff191682525090151560051b01905061019182610181565b634e487b7160e01b84526022600452602484fd5b91607f169161015f565b600080fd5b600435906001600160a01b038216820361022b57565b602435906001600160a01b038216820361022b57565b3461022b57604036600319011261022b57610275610230565b6024353315610309576001600160a01b0382169182156102f3576102b9829133600052600160205260406000209060018060a01b0316600052602052604060002090565b5560405190815233907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590602090a3602060405160018152f35b634a1406b160e11b600052600060045260246000fd5b63e602df0560e01b600052600060045260246000fd5b3461022b57600036600319011261022b576020600254604051908152f35b3461022b57606036600319011261022b57610356610230565b61035e610246565b6001600160a01b038216600090815260016020908152604080832033845290915290205491604435919060001984106103a8575b61039c935061076c565b60405160018152602090f35b8284106103c4576103bf8361039c9503338361087b565b610392565b8284637dc7a0d960e11b6000523360045260245260445260646000fd5b9181601f8401121561022b5782359167ffffffffffffffff831161022b576020838186019501011161022b57565b3461022b57606036600319011261022b5760043567ffffffffffffffff811161022b576104409036906004016103e1565b90602435916044359182840180851161047e5760209461046a936104639361070d565b3691610725565b01516040516001600160a01b039091168152f35b634e487b7160e01b600052601160045260246000fd5b3461022b57600036600319011261022b57602060405160128152f35b3461022b57604036600319011261022b576104c9610230565b50602060405160018152f35b3461022b57602036600319011261022b576001600160a01b036104f6610230565b1660005260006020526020604060002054604051908152f35b3461022b57600036600319011261022b5760405160006004548060011c90600181169081156105bd575b60208310821461020d5782855260208501919081156101f4575060011461056a5761019d84610191818603826106e6565b600460009081529250907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8184106105a95750500161019182610181565b805484840152602090930192600101610596565b91607f1691610539565b3461022b57604036600319011261022b576105ed6105e3610230565b602435903361076c565b602060405160018152f35b3461022b57604036600319011261022b5760043567ffffffffffffffff811161022b576106299036906004016103e1565b602435906000906020116106545750601461064c600c61039c9401823691610725565b01513361076c565b80fd5b3461022b57600036600319011261022b576040805130815260006020820152f35b3461022b57604036600319011261022b5760206106c7610696610230565b61069e610246565b6001600160a01b0391821660009081526001855260408082209290931681526020919091522090565b54604051908152f35b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761070857604052565b6106d0565b9093929384831161022b57841161022b578101920390565b92919267ffffffffffffffff8211610708576040519161074f601f8201601f1916602001846106e6565b82948184528183011161022b578281602093846000960137010152565b916001600160a01b038316918215610865576001600160a01b03811693841561084f576001600160a01b03811660009081526020819052604081209091905484811061083357928492610818926107fc7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9761082e97039160018060a01b03166000526000602052604060002090565b55506001600160a01b0316600090815260208190526040902090565b8054820190556040519081529081906020820190565b0390a3565b63391434e360e21b835260048690526024526044849052606482fd5b63ec442f0560e01b600052600060045260246000fd5b634b637e8f60e11b600052600060045260246000fd5b6001600160a01b0316908115610309576001600160a01b038116156102f3576108c291600052600160205260406000209060018060a01b0316600052602052604060002090565b5556fea26469706673582212206eca1443d163d19cbafd73294d08ac479559ec3c8e8000295636d0f82e00871a64736f6c634300081a0033"; - -type TestZRC20ConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: TestZRC20ConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class TestZRC20__factory extends ContractFactory { - constructor(...args: TestZRC20ConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - initialSupply: BigNumberish, - name: string, - symbol: string, - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction( - initialSupply, - name, - symbol, - overrides || {} - ); - } - override deploy( - initialSupply: BigNumberish, - name: string, - symbol: string, - overrides?: NonPayableOverrides & { from?: string } - ) { - return super.deploy( - initialSupply, - name, - symbol, - overrides || {} - ) as Promise< - TestZRC20 & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): TestZRC20__factory { - return super.connect(runner) as TestZRC20__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): TestZRC20Interface { - return new Interface(_abi) as TestZRC20Interface; - } - static connect(address: string, runner?: ContractRunner | null): TestZRC20 { - return new Contract(address, _abi, runner) as unknown as TestZRC20; - } -} diff --git a/typechain-types/factories/contracts/UniversalContract.sol/UniversalContract__factory.ts b/typechain-types/factories/contracts/UniversalContract.sol/UniversalContract__factory.ts deleted file mode 100644 index a88ba4dd..00000000 --- a/typechain-types/factories/contracts/UniversalContract.sol/UniversalContract__factory.ts +++ /dev/null @@ -1,100 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - UniversalContract, - UniversalContractInterface, -} from "../../../contracts/UniversalContract.sol/UniversalContract"; - -const _abi = [ - { - inputs: [ - { - components: [ - { - internalType: "bytes", - name: "origin", - type: "bytes", - }, - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "uint256", - name: "chainID", - type: "uint256", - }, - ], - internalType: "struct zContext", - name: "context", - type: "tuple", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "onCrossChainCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "uint64", - name: "amount", - type: "uint64", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - ], - internalType: "struct RevertContext", - name: "revertContext", - type: "tuple", - }, - ], - name: "onRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class UniversalContract__factory { - static readonly abi = _abi; - static createInterface(): UniversalContractInterface { - return new Interface(_abi) as UniversalContractInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): UniversalContract { - return new Contract(address, _abi, runner) as unknown as UniversalContract; - } -} diff --git a/typechain-types/factories/contracts/UniversalContract.sol/ZContract__factory.ts b/typechain-types/factories/contracts/UniversalContract.sol/ZContract__factory.ts deleted file mode 100644 index cd0793f9..00000000 --- a/typechain-types/factories/contracts/UniversalContract.sol/ZContract__factory.ts +++ /dev/null @@ -1,67 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - ZContract, - ZContractInterface, -} from "../../../contracts/UniversalContract.sol/ZContract"; - -const _abi = [ - { - inputs: [ - { - components: [ - { - internalType: "bytes", - name: "origin", - type: "bytes", - }, - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "uint256", - name: "chainID", - type: "uint256", - }, - ], - internalType: "struct zContext", - name: "context", - type: "tuple", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "onCrossChainCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class ZContract__factory { - static readonly abi = _abi; - static createInterface(): ZContractInterface { - return new Interface(_abi) as ZContractInterface; - } - static connect(address: string, runner?: ContractRunner | null): ZContract { - return new Contract(address, _abi, runner) as unknown as ZContract; - } -} diff --git a/typechain-types/factories/contracts/UniversalContract.sol/index.ts b/typechain-types/factories/contracts/UniversalContract.sol/index.ts deleted file mode 100644 index c297a535..00000000 --- a/typechain-types/factories/contracts/UniversalContract.sol/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { UniversalContract__factory } from "./UniversalContract__factory"; -export { ZContract__factory } from "./ZContract__factory"; diff --git a/typechain-types/factories/contracts/index.ts b/typechain-types/factories/contracts/index.ts deleted file mode 100644 index 04d4ea01..00000000 --- a/typechain-types/factories/contracts/index.ts +++ /dev/null @@ -1,14 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as ethZetaMockSol from "./EthZetaMock.sol"; -export * as revertSol from "./Revert.sol"; -export * as swapHelpersSol from "./SwapHelpers.sol"; -export * as systemContractSol from "./SystemContract.sol"; -export * as universalContractSol from "./UniversalContract.sol"; -export * as shared from "./shared"; -export * as testing from "./testing"; -export { BytesHelperLib__factory } from "./BytesHelperLib__factory"; -export { OnlySystem__factory } from "./OnlySystem__factory"; -export { SwapHelperLib__factory } from "./SwapHelperLib__factory"; -export { TestZRC20__factory } from "./TestZRC20__factory"; diff --git a/typechain-types/factories/contracts/shared/MockZRC20__factory.ts b/typechain-types/factories/contracts/shared/MockZRC20__factory.ts deleted file mode 100644 index 59c9ea33..00000000 --- a/typechain-types/factories/contracts/shared/MockZRC20__factory.ts +++ /dev/null @@ -1,600 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { - Signer, - BigNumberish, - ContractDeployTransaction, - ContractRunner, -} from "ethers"; -import type { NonPayableOverrides } from "../../../common"; -import type { - MockZRC20, - MockZRC20Interface, -} from "../../../contracts/shared/MockZRC20"; - -const _abi = [ - { - inputs: [ - { - internalType: "uint256", - name: "initialSupply", - type: "uint256", - }, - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "allowance", - type: "uint256", - }, - { - internalType: "uint256", - name: "needed", - type: "uint256", - }, - ], - name: "ERC20InsufficientAllowance", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "uint256", - name: "balance", - type: "uint256", - }, - { - internalType: "uint256", - name: "needed", - type: "uint256", - }, - ], - name: "ERC20InsufficientBalance", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "approver", - type: "address", - }, - ], - name: "ERC20InvalidApprover", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - ], - name: "ERC20InvalidReceiver", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "ERC20InvalidSender", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "ERC20InvalidSpender", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "spender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "to", - type: "bytes", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "gasfee", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "protocolFlatFee", - type: "uint256", - }, - ], - name: "Withdrawal", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - internalType: "uint256", - name: "offset", - type: "uint256", - }, - { - internalType: "uint256", - name: "size", - type: "uint256", - }, - ], - name: "bytesToAddress", - outputs: [ - { - internalType: "address", - name: "output", - type: "address", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [], - name: "decimals", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "deposit", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "gasFee", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "gasFeeAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "name", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "gasFee_", - type: "uint256", - }, - ], - name: "setGasFee", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "gasFeeAddress_", - type: "address", - }, - ], - name: "setGasFeeAddress", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "symbol", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "to", - type: "bytes", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "withdraw", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "withdrawGasFee", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -const _bytecode = - "0x6080604052346103e657610f4780380380610019816103eb565b9283398101906060818303126103e657805160208201519091906001600160401b0381116103e6578361004d918301610410565b60408201519093906001600160401b0381116103e65761006d9201610410565b82519091906001600160401b0381116102ef57600354600181811c911680156103dc575b60208210146102cf57601f8111610377575b506020601f82116001146103105781929394600092610305575b50508160011b916000199060031b1c1916176003555b81516001600160401b0381116102ef57600454600181811c911680156102e5575b60208210146102cf57601f811161026a575b50602092601f821160011461020557928192936000926101fa575b50508160011b916000199060031b1c1916176004555b670de0b6b3a7640000810290808204670de0b6b3a764000014901517156101ce5733156101e4576002548181018091116101ce57600255600033815280602052604081208281540190556040519182527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203393a3600580546001600160a01b03191630179055604051610acb908161047c8239f35b634e487b7160e01b600052601160045260246000fd5b63ec442f0560e01b600052600060045260246000fd5b015190503880610121565b601f198216936004600052806000209160005b8681106102525750836001959610610239575b505050811b01600455610137565b015160001960f88460031b161c1916905538808061022b565b91926020600181928685015181550194019201610218565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c810191602084106102c5575b601f0160051c01905b8181106102b95750610106565b600081556001016102ac565b90915081906102a3565b634e487b7160e01b600052602260045260246000fd5b90607f16906100f4565b634e487b7160e01b600052604160045260246000fd5b0151905038806100bd565b601f198216906003600052806000209160005b81811061035f57509583600195969710610346575b505050811b016003556100d3565b015160001960f88460031b161c19169055388080610338565b9192602060018192868b015181550194019201610323565b60036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c810191602084106103d2575b601f0160051c01905b8181106103c657506100a3565b600081556001016103b9565b90915081906103b0565b90607f1690610091565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176102ef57604052565b81601f820112156103e6578051906001600160401b0382116102ef5761043f601f8301601f19166020016103eb565b92828452602083830101116103e65760005b82811061046657505060206000918301015290565b8060208092840101518282870101520161045156fe6080604052600436101561001257600080fd5b60003560e01c806306fdde0314610127578063095ea7b31461012257806318160ddd1461011d57806323b872dd146101185780632c27d3ab14610113578063313ce5671461010e5780633e8a4ee11461010957806347e7ef2414610104578063658612e9146100ff578063678edca3146100fa57806370a08231146100f557806395d89b41146100f0578063a9059cbb146100eb578063c7012626146100e6578063d9eeebed146100e1578063dd62ed3e146100dc5763f7d8f616146100d757600080fd5b610831565b6107d9565b6107ac565b6106ae565b61067d565b6105c5565b61058b565b610572565b610554565b61052f565b6104f0565b6104d4565b61044f565b61037d565b61035f565b61029c565b610175565b91909160208152825180602083015260005b81811061015f575060409293506000838284010152601f8019910116010190565b806020809287010151604082860101520161013e565b3461026b57600036600319011261026b5760405160006003548060011c9060018116908115610261575b60208310821461024d57828552602085019190811561023457506001146101e1575b6101dd846101d181860382610870565b6040519182918261012c565b0390f35b600360009081529250907fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b818410610220575050016101d1826101c1565b80548484015260209093019260010161020d565b60ff191682525090151560051b0190506101d1826101c1565b634e487b7160e01b84526022600452602484fd5b91607f169161019f565b600080fd5b600435906001600160a01b038216820361026b57565b602435906001600160a01b038216820361026b57565b3461026b57604036600319011261026b576102b5610270565b6024353315610349576001600160a01b038216918215610333576102f9829133600052600160205260406000209060018060a01b0316600052602052604060002090565b5560405190815233907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590602090a3602060405160018152f35b634a1406b160e11b600052600060045260246000fd5b63e602df0560e01b600052600060045260246000fd5b3461026b57600036600319011261026b576020600254604051908152f35b3461026b57606036600319011261026b57610396610270565b61039e610286565b6001600160a01b038216600090815260016020908152604080832033845290915290205491604435919060001984106103e8575b6103dc9350610906565b60405160018152602090f35b828410610404576103ff836103dc95033383610a4b565b6103d2565b8284637dc7a0d960e11b6000523360045260245260445260646000fd5b9181601f8401121561026b5782359167ffffffffffffffff831161026b576020838186019501011161026b57565b3461026b57606036600319011261026b5760043567ffffffffffffffff811161026b57610480903690600401610421565b9060243591604435918284018085116104be576020946104aa936104a393610897565b36916108af565b01516040516001600160a01b039091168152f35b634e487b7160e01b600052601160045260246000fd5b3461026b57600036600319011261026b57602060405160128152f35b3461026b57602036600319011261026b576001600160a01b03610511610270565b166bffffffffffffffffffffffff60a01b6005541617600555600080f35b3461026b57604036600319011261026b57610548610270565b50602060405160018152f35b3461026b57600036600319011261026b576020600654604051908152f35b3461026b57602036600319011261026b57600435600655005b3461026b57602036600319011261026b576001600160a01b036105ac610270565b1660005260006020526020604060002054604051908152f35b3461026b57600036600319011261026b5760405160006004548060011c9060018116908115610673575b60208310821461024d5782855260208501919081156102345750600114610620576101dd846101d181860382610870565b600460009081529250907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b81841061065f575050016101d1826101c1565b80548484015260209093019260010161064c565b91607f16916105ef565b3461026b57604036600319011261026b576106a3610699610270565b6024359033610906565b602060405160018152f35b3461026b57604036600319011261026b5760043567ffffffffffffffff811161026b576107696106e56101dd923690600401610421565b9060243591602081101561077b577f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d95561071e8284610a33565b925b60065483604051926080845281608085015260a0840137600060a0858401015285602083015260408201526000606082015260a0813394601f80199101168101030190a26108f6565b60405190151581529081906020820190565b7f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d9556107a68284610a15565b92610720565b3461026b57600036600319011261026b57604060018060a01b036005541660065482519182526020820152f35b3461026b57604036600319011261026b5760206108286107f7610270565b6107ff610286565b6001600160a01b0391821660009081526001855260408082209290931681526020919091522090565b54604051908152f35b3461026b57600036600319011261026b576005546040516001600160a01b039091168152602090f35b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761089257604052565b61085a565b9093929384831161026b57841161026b578101920390565b92919267ffffffffffffffff821161089257604051916108d9601f8201601f191660200184610870565b82948184528183011161026b578281602093846000960137010152565b906109019133610906565b600190565b916001600160a01b0383169182156109ff576001600160a01b0381169384156109e9576001600160a01b0381166000908152602081905260408120909190548481106109cd579284926109b2926109967fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef976109c897039160018060a01b03166000526000602052604060002090565b55506001600160a01b0316600090815260208190526040902090565b8054820190556040519081529081906020820190565b0390a3565b63391434e360e21b835260048690526024526044849052606482fd5b63ec442f0560e01b600052600060045260246000fd5b634b637e8f60e11b600052600060045260246000fd5b9060201161026b57610a2e600c601492018236916108af565b015190565b9060141161026b57610a2e81601492508236916108af565b6001600160a01b0316908115610349576001600160a01b0381161561033357610a9291600052600160205260406000209060018060a01b0316600052602052604060002090565b5556fea2646970667358221220477e1e9f73c860ed10c7bda1f9f4af9df34a1271ce5520fe53fe1ebb73297e0564736f6c634300081a0033"; - -type MockZRC20ConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: MockZRC20ConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class MockZRC20__factory extends ContractFactory { - constructor(...args: MockZRC20ConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - initialSupply: BigNumberish, - name: string, - symbol: string, - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction( - initialSupply, - name, - symbol, - overrides || {} - ); - } - override deploy( - initialSupply: BigNumberish, - name: string, - symbol: string, - overrides?: NonPayableOverrides & { from?: string } - ) { - return super.deploy( - initialSupply, - name, - symbol, - overrides || {} - ) as Promise< - MockZRC20 & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): MockZRC20__factory { - return super.connect(runner) as MockZRC20__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): MockZRC20Interface { - return new Interface(_abi) as MockZRC20Interface; - } - static connect(address: string, runner?: ContractRunner | null): MockZRC20 { - return new Contract(address, _abi, runner) as unknown as MockZRC20; - } -} diff --git a/typechain-types/factories/contracts/shared/TestUniswapRouter__factory.ts b/typechain-types/factories/contracts/shared/TestUniswapRouter__factory.ts deleted file mode 100644 index ef58b5c0..00000000 --- a/typechain-types/factories/contracts/shared/TestUniswapRouter__factory.ts +++ /dev/null @@ -1,623 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { - Signer, - AddressLike, - ContractDeployTransaction, - ContractRunner, -} from "ethers"; -import type { NonPayableOverrides } from "../../../common"; -import type { - TestUniswapRouter, - TestUniswapRouterInterface, -} from "../../../contracts/shared/TestUniswapRouter"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "_factory", - type: "address", - }, - { - internalType: "address", - name: "_WETH", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [], - name: "AdditionsOverflow", - type: "error", - }, - { - inputs: [], - name: "Expired", - type: "error", - }, - { - inputs: [], - name: "IdenticalAddresses", - type: "error", - }, - { - inputs: [], - name: "InsufficientAAmount", - type: "error", - }, - { - inputs: [], - name: "InsufficientAmount", - type: "error", - }, - { - inputs: [], - name: "InsufficientBAmount", - type: "error", - }, - { - inputs: [], - name: "InsufficientInputAmount", - type: "error", - }, - { - inputs: [], - name: "InsufficientLiquidity", - type: "error", - }, - { - inputs: [], - name: "InsufficientOutputAmount", - type: "error", - }, - { - inputs: [], - name: "InvalidPath", - type: "error", - }, - { - inputs: [], - name: "MultiplicationsOverflow", - type: "error", - }, - { - inputs: [], - name: "SubtractionsUnderflow", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, - { - inputs: [], - name: "WETH", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "tokenA", - type: "address", - }, - { - internalType: "address", - name: "tokenB", - type: "address", - }, - { - internalType: "uint256", - name: "amountADesired", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountBDesired", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountAMin", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountBMin", - type: "uint256", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "addLiquidity", - outputs: [ - { - internalType: "uint256", - name: "amountA", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountB", - type: "uint256", - }, - { - internalType: "uint256", - name: "liquidity", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "uint256", - name: "amountTokenDesired", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountTokenMin", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountETHMin", - type: "uint256", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "addLiquidityETH", - outputs: [ - { - internalType: "uint256", - name: "amountToken", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountETH", - type: "uint256", - }, - { - internalType: "uint256", - name: "liquidity", - type: "uint256", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [], - name: "factory", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountOut", - type: "uint256", - }, - { - internalType: "uint256", - name: "reserveIn", - type: "uint256", - }, - { - internalType: "uint256", - name: "reserveOut", - type: "uint256", - }, - ], - name: "getAmountIn", - outputs: [ - { - internalType: "uint256", - name: "amountIn", - type: "uint256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountIn", - type: "uint256", - }, - { - internalType: "uint256", - name: "reserveIn", - type: "uint256", - }, - { - internalType: "uint256", - name: "reserveOut", - type: "uint256", - }, - ], - name: "getAmountOut", - outputs: [ - { - internalType: "uint256", - name: "amountOut", - type: "uint256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountOut", - type: "uint256", - }, - { - internalType: "address[]", - name: "path", - type: "address[]", - }, - ], - name: "getAmountsIn", - outputs: [ - { - internalType: "uint256[]", - name: "amounts", - type: "uint256[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountIn", - type: "uint256", - }, - { - internalType: "address[]", - name: "path", - type: "address[]", - }, - ], - name: "getAmountsOut", - outputs: [ - { - internalType: "uint256[]", - name: "amounts", - type: "uint256[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountA", - type: "uint256", - }, - { - internalType: "uint256", - name: "reserveA", - type: "uint256", - }, - { - internalType: "uint256", - name: "reserveB", - type: "uint256", - }, - ], - name: "quote", - outputs: [ - { - internalType: "uint256", - name: "amountB", - type: "uint256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "tokenA", - type: "address", - }, - { - internalType: "address", - name: "tokenB", - type: "address", - }, - { - internalType: "uint256", - name: "liquidity", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountAMin", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountBMin", - type: "uint256", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "removeLiquidity", - outputs: [ - { - internalType: "uint256", - name: "amountA", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountB", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "uint256", - name: "liquidity", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountTokenMin", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountETHMin", - type: "uint256", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "removeLiquidityETH", - outputs: [ - { - internalType: "uint256", - name: "amountToken", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountETH", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountIn", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountOutMin", - type: "uint256", - }, - { - internalType: "address[]", - name: "path", - type: "address[]", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "swapExactTokensForTokens", - outputs: [ - { - internalType: "uint256[]", - name: "amounts", - type: "uint256[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountOut", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountInMax", - type: "uint256", - }, - { - internalType: "address[]", - name: "path", - type: "address[]", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "swapTokensForExactTokens", - outputs: [ - { - internalType: "uint256[]", - name: "amounts", - type: "uint256[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - stateMutability: "payable", - type: "receive", - }, -] as const; - -const _bytecode = - "0x60c03460cd57601f611adc38819003918201601f19168301916001600160401b0383118484101760d257808492604094855283398101031260cd57604b602060458360e8565b920160e8565b9060805260a0526040516119e090816100fc823960805181818161013d015281816103ac015281816104a5015281816104eb0152818161056801528181610755015281816108820152818161091d015281816109a70152818161139701526116bf015260a051818181601f0152818161010601528181610705015261097e0152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820360cd5756fe6080604052600436101561004f575b361561001957600080fd5b61004d337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614610ee0565b005b6000803560e01c806302751cec1461095b578063054d50d4146109415780631f00ca741461090557806338ed17391461086157806385f8c259146108475780638803dbee14610734578063ad5c4648146106ef578063ad615dec146106cd578063baa2abde1461051a578063c45a0155146104d5578063d06ca61f1461048d578063e8e33700146103395763f305d719146100ea575061000e565b6100f336610c80565b959394929095421161032a579061012f917f00000000000000000000000000000000000000000000000000000000000000009534908786611692565b94909361016a8561016183867f0000000000000000000000000000000000000000000000000000000000000000611233565b809533906112ac565b6001600160a01b0316803b1561031b57604051630d0e30db60e41b815284816004818a865af1801561031f57908591610306575b505060405163a9059cbb60e01b81526001600160a01b038416600482015260248101879052906020908290604490829088905af19081156102fb576020926101f286959360249387916102ce575b50610ee0565b6040516335313c2160e11b81526001600160a01b0391821660048201529586938492165af19182156102c1578192610288575b50833411610254575b5061025090604051938493846040919493926060820195825260208201520152565b0390f35b8334039034821161027457509061026e6102509233610f3d565b9061022e565b634e487b7160e01b81526011600452602490fd5b9091506020813d6020116102b9575b816102a460209383610ce0565b810103126102b457519038610225565b600080fd5b3d9150610297565b50604051903d90823e3d90fd5b6102ee9150863d88116102f4575b6102e68183610ce0565b810190610ec8565b386101ec565b503d6102dc565b6040513d86823e3d90fd5b8161031091610ce0565b61031b57833861019e565b8380fd5b6040513d87823e3d90fd5b630407b05b60e31b8452600484fd5b503461048a5761010036600319011261048a57610354610c54565b9061035d610c6a565b60c4356001600160a01b03811690819003610486574260e4351061047757916020819260246103e29561039c60a435608435606435604435878d611692565b89856103db6103d0859c9598859e7f0000000000000000000000000000000000000000000000000000000000000000611233565b9788809433906112ac565b33906112ac565b6040516335313c2160e11b815260048101919091529485928391906001600160a01b03165af190811561046b5790610437575b6102509150604051938493846040919493926060820195825260208201520152565b506020813d602011610463575b8161045160209383610ce0565b810103126102b4576102509051610415565b3d9150610444565b604051903d90823e3d90fd5b630407b05b60e31b8352600483fd5b8280fd5b80fd5b503461048a576102506104c96104a236610d8b565b907f0000000000000000000000000000000000000000000000000000000000000000611175565b60405191829182610dcf565b503461048a578060031936011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461048a5760e036600319011261048a57610534610c54565b61053c610c6a565b9060a4356001600160a01b0381169081900361031b574260c4351061032a57906105cc849261058c85847f0000000000000000000000000000000000000000000000000000000000000000611233565b6040516323b872dd60e01b81523360048201526001600160a01b039091166024820181905260448035908301529092909190602090849081906064820190565b038188865af190811561031f576040936024926106b0575b508351958693849263226bf2d160e21b845260048401525af19283156102fb5784928594610672575b506106189082611639565b506001600160a01b0391821691160361066d57905b606435821061065e57608435811061064f576040809350519182526020820152f35b63ef71d09160e01b8352600483fd5b638dc525d160e01b8352600483fd5b61062d565b925092506040823d6040116106a8575b8161068f60409383610ce0565b8101031261031b5761061860208351930151939061060d565b3d9150610682565b6106c89060203d6020116102f4576102e68183610ce0565b6105e4565b503461048a5760206106e76106e136610cc6565b916115fb565b604051908152f35b503461048a578060031936011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461048a5761074336610e09565b959192939490954211610838576107877f000000000000000000000000000000000000000000000000000000000000000091610780368688610d30565b9083611098565b9461079186610e7d565b5111610829578215610815576107a684610eb4565b916107b085610eb4565b9084600110156108015750926107f46107fb936107e287946102509a976107dc60206104c99b01610eb4565b91611233565b6107eb89610e7d565b519133906112ac565b3691610d30565b8361138f565b634e487b7160e01b81526032600452602490fd5b634e487b7160e01b82526032600452602482fd5b63098fb56160e01b8252600482fd5b630407b05b60e31b8252600482fd5b503461048a5760206106e761085b36610cc6565b91611580565b503461048a5761087036610e09565b959192939490954211610838576108b47f0000000000000000000000000000000000000000000000000000000000000000916108ad368688610d30565b9083611175565b94855160001981019081116108f1576108cd9087610ea0565b51106108e2578215610815576107a684610eb4565b6342301c2360e01b8252600482fd5b634e487b7160e01b84526011600452602484fd5b503461048a576102506104c961091a36610d8b565b907f0000000000000000000000000000000000000000000000000000000000000000611098565b503461048a5760206106e761095536610cc6565b91610fe6565b503461048a5761096a36610c80565b959490929391954211610c45578495610a047f00000000000000000000000000000000000000000000000000000000000000009360206109cb86867f0000000000000000000000000000000000000000000000000000000000000000611233565b6040516323b872dd60e01b81523360048201526001600160a01b0390911660248201819052604482019390935292839081906064820190565b03818b855af1918215610c3a57604092610c1d575b50602482518099819363226bf2d160e21b83523060048401525af1958615610c125787908897610bd4575b50610a4f8484611639565b506001600160a01b03848116911603610bce5795945b8610610bbf578410610bb05760405163a9059cbb60e01b602082019081526001600160a01b038516602483015260448201879052879283929091908390610ab981606481015b03601f198101835282610ce0565b51925af1610ac5610efd565b81610b81575b5015610b3c5784906001600160a01b0316803b15610b38578190602460405180948193632e1a7d4d60e01b83528860048401525af1801561031f57916040958492610b1c94610b28575b5050610f3d565b82519182526020820152f35b81610b3291610ce0565b38610b15565b5080fd5b60405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c4544006044820152606490fd5b8051801592508215610b96575b505038610acb565b610ba99250602080918301019101610ec8565b3880610b8e565b63ef71d09160e01b8652600486fd5b638dc525d160e01b8752600487fd5b94610a65565b9650506040863d604011610c0a575b81610bf060409383610ce0565b81010312610c0657602086519601519538610a44565b8680fd5b3d9150610be3565b6040513d89823e3d90fd5b610c359060203d6020116102f4576102e68183610ce0565b610a19565b6040513d8a823e3d90fd5b630407b05b60e31b8552600485fd5b600435906001600160a01b03821682036102b457565b602435906001600160a01b03821682036102b457565b60c09060031901126102b4576004356001600160a01b03811681036102b457906024359060443590606435906084356001600160a01b03811681036102b4579060a43590565b60609060031901126102b457600435906024359060443590565b90601f8019910116810190811067ffffffffffffffff821117610d0257604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610d025760051b60200190565b9291610d3b82610d18565b93610d496040519586610ce0565b602085848152019260051b81019182116102b457915b818310610d6b57505050565b82356001600160a01b03811681036102b457815260209283019201610d5f565b9060406003198301126102b457600435916024359067ffffffffffffffff82116102b457806023830112156102b457816024610dcc93600401359101610d30565b90565b602060408183019282815284518094520192019060005b818110610df35750505090565b8251845260209384019390920191600101610de6565b9060a06003198301126102b457600435916024359160443567ffffffffffffffff81116102b457826023820112156102b45780600401359267ffffffffffffffff84116102b45760248460051b830101116102b45760240191906064356001600160a01b03811681036102b4579060843590565b805115610e8a5760200190565b634e487b7160e01b600052603260045260246000fd5b8051821015610e8a5760209160051b010190565b356001600160a01b03811681036102b45790565b908160209103126102b4575180151581036102b45790565b15610ee757565b634e487b7160e01b600052600160045260246000fd5b3d15610f38573d9067ffffffffffffffff8211610d025760405191610f2c601f8201601f191660200184610ce0565b82523d6000602084013e565b606090565b6000809160209360405190610f528683610ce0565b83825285820191601f19870136843751925af1610f6d610efd565b5015610f765750565b6084906040519062461bcd60e51b82526004820152602360248201527f5472616e7366657248656c7065723a204554485f5452414e534645525f46414960448201526213115160ea1b6064820152fd5b8115610fd0570490565b634e487b7160e01b600052601260045260246000fd5b9190918015611055578215801561104d575b61103c5761101261100b61101892611829565b9283611892565b9261186a565b90810190811061102b57610dcc91610fc6565b63a259879560e01b60005260046000fd5b63bb55fd2760e01b60005260046000fd5b508115610ff8565b63098fb56160e01b60005260046000fd5b9061107082610d18565b61107d6040519182610ce0565b828152809261108e601f1991610d18565b0190602036910137565b9092916002815110611164576110ae8151611066565b938451600019810190811161114e576110c79086610ea0565b528051600019810190811161114e57805b6110e157505050565b600019810181811161114e5761113d6111366111256001600160a01b036111088588610ea0565b51166001600160a01b0361111c8789610ea0565b511690886118d7565b90611130868b610ea0565b51611580565b9187610ea0565b52801561114e5760001901806110d8565b634e487b7160e01b600052601160045260246000fd5b6320db826760e01b60005260046000fd5b92919260028451106111645761118b8451611066565b9161119583610e7d565b5260005b8451600019810190811161114e5781101561120e576001600160a01b036111c08287610ea0565b5116906001810180821161114e5760019261120790611200906111ef906001600160a01b0361111c868d610ea0565b906111fa868a610ea0565b51610fe6565b9186610ea0565b5201611199565b50509150565b908160209103126102b457516001600160a01b03811681036102b45790565b60405163e6a4390560e01b81526001600160a01b039283166004820152928216602484015260209183916044918391165afa9081156112a057600091611277575090565b610dcc915060203d602011611299575b6112918183610ce0565b810190611214565b503d611287565b6040513d6000823e3d90fd5b6040516323b872dd60e01b602082019081526001600160a01b03938416602483015293909216604483015260648201939093526000928392909183906112f58160848101610aab565b51925af1611301610efd565b81611360575b501561130f57565b60405162461bcd60e51b8152602060048201526024808201527f5472616e7366657248656c7065723a205452414e534645525f46524f4d5f46416044820152631253115160e21b6064820152608490fd5b8051801592508215611375575b505038611307565b6113889250602080918301019101610ec8565b388061136d565b9291600060207f0000000000000000000000000000000000000000000000000000000000000000825b8551600019810190811161114e57811015611576576001600160a01b036113df8288610ea0565b51166001820180831161114e576001600160a01b036113fe828a610ea0565b511661140a8184611639565b50926114186000938d610ea0565b51936001600160a01b0316810361156f578293905b8a5160011981019081116115515786101561156557600286018087116115515761148290611471906001600160a01b0390611468908f610ea0565b5116858a611233565b935b6001600160a01b039289611233565b1691604051916114928984610ce0565b84835289368a850137833b1561154d5760405163022c0d9f60e01b8152600481019690965260248601526001600160a01b03166044850152608060648501528051608485018190528392859290919089855b838110611532575050508360a484838383839684010152601f801991011681010301925af180156102c157906001939291611522575b5050016113b8565b61152b91610ce0565b388061151a565b80830182015189820160a401528796508895508b91016114e4565b8480fd5b634e487b7160e01b85526011600452602485fd5b6114828a93611473565b829061142d565b5050505050509050565b919082156115ea57801580156115e2575b61103c576115a2836115a792611892565b61186a565b908083116115d1576115c3926115bd9103611829565b90610fc6565b6001810190811061102b5790565b631a0b9f1f60e21b60005260046000fd5b508115611591565b6342301c2360e01b60005260046000fd5b80156116285781158015611620575b61103c57610dcc9261161b91611892565b610fc6565b50821561160a565b632ca2f52b60e11b60005260046000fd5b9091906001600160a01b0380841690821680821461168157101561167c57915b906001600160a01b0383161561166b57565b63d92e233d60e01b60005260046000fd5b611659565b630bd969eb60e41b60005260046000fd5b60405163e6a4390560e01b81526001600160a01b03828116600483015283811660248301529396949594937f0000000000000000000000000000000000000000000000000000000000000000908116939291602081604481885afa9081156112a05760009161180a575b506001600160a01b0316156117a1575b61171693506118d7565b9290801580611799575b1561172d57505050509091565b61173c848288979596976115fb565b9483861161176357505050508110611752579091565b63ef71d09160e01b60005260046000fd5b8361177e9496506117759395506115fb565b93841115610ee0565b8210611788579091565b638dc525d160e01b60005260046000fd5b508315611720565b6040516364e329cb60e11b81526001600160a01b0383811660048301528416602482015293602090859060449082906000905af19384156112a057611716946117eb575b5061170c565b6118039060203d602011611299576112918183610ce0565b50386117e5565b611823915060203d602011611299576112918183610ce0565b386116fc565b6000908015908115611850575b501561183f5790565b632bcb93b560e11b60005260046000fd5b9150506103e56118638183029283610fc6565b1438611836565b600090801590811561187f57501561183f5790565b9150506103e86118638183029283610fc6565b9060009180159182156118aa575b50501561183f5790565b808202935091506118bb9083610fc6565b1438806118a0565b51906001600160701b03821682036102b457565b9060606004926118fc6118ea8685611639565b50956001600160a01b03928590611233565b1660405193848092630240bc6b60e21b82525afa9182156112a057600090819361194a575b506001600160701b03928316939216916001600160a01b039182169116036119465791565b9091565b92506060833d6060116119a2575b8161196560609383610ce0565b8101031261048a57611976836118c3565b906040611985602086016118c3565b94015163ffffffff81160361048a57506001600160701b03611921565b3d915061195856fea26469706673582212206700b602d379deb2e7682bb41e3d93df2ecdf1594eeaba1a8b04a7d2398e71cc64736f6c634300081a0033"; - -type TestUniswapRouterConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: TestUniswapRouterConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class TestUniswapRouter__factory extends ContractFactory { - constructor(...args: TestUniswapRouterConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - _factory: AddressLike, - _WETH: AddressLike, - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(_factory, _WETH, overrides || {}); - } - override deploy( - _factory: AddressLike, - _WETH: AddressLike, - overrides?: NonPayableOverrides & { from?: string } - ) { - return super.deploy(_factory, _WETH, overrides || {}) as Promise< - TestUniswapRouter & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): TestUniswapRouter__factory { - return super.connect(runner) as TestUniswapRouter__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): TestUniswapRouterInterface { - return new Interface(_abi) as TestUniswapRouterInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): TestUniswapRouter { - return new Contract(address, _abi, runner) as unknown as TestUniswapRouter; - } -} diff --git a/typechain-types/factories/contracts/shared/WZETA__factory.ts b/typechain-types/factories/contracts/shared/WZETA__factory.ts deleted file mode 100644 index 3feef4cd..00000000 --- a/typechain-types/factories/contracts/shared/WZETA__factory.ts +++ /dev/null @@ -1,345 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; -import type { NonPayableOverrides } from "../../../common"; -import type { WZETA, WZETAInterface } from "../../../contracts/shared/WZETA"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "src", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "guy", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "wad", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "dst", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "wad", - type: "uint256", - }, - ], - name: "Deposit", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "src", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "dst", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "wad", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "src", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "wad", - type: "uint256", - }, - ], - name: "Withdrawal", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "address", - name: "", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "guy", - type: "address", - }, - { - internalType: "uint256", - name: "wad", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "decimals", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "deposit", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [], - name: "name", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "symbol", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "dst", - type: "address", - }, - { - internalType: "uint256", - name: "wad", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "src", - type: "address", - }, - { - internalType: "address", - name: "dst", - type: "address", - }, - { - internalType: "uint256", - name: "wad", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "wad", - type: "uint256", - }, - ], - name: "withdraw", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - stateMutability: "payable", - type: "receive", - }, -] as const; - -const _bytecode = - "0x60806040526040518060400160405280600c81526020017f57726170706564205a65746100000000000000000000000000000000000000008152506000908051906020019062000051929190620000d0565b506040518060400160405280600581526020017f575a455441000000000000000000000000000000000000000000000000000000815250600190805190602001906200009f929190620000d0565b506012600260006101000a81548160ff021916908360ff160217905550348015620000c957600080fd5b50620001e5565b828054620000de9062000180565b90600052602060002090601f0160209004810192826200010257600085556200014e565b82601f106200011d57805160ff19168380011785556200014e565b828001600101855582156200014e579182015b828111156200014d57825182559160200191906001019062000130565b5b5090506200015d919062000161565b5090565b5b808211156200017c57600081600090555060010162000162565b5090565b600060028204905060018216806200019957607f821691505b60208210811415620001b057620001af620001b6565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b610eeb80620001f56000396000f3fe6080604052600436106100a05760003560e01c8063313ce56711610064578063313ce567146101ad57806370a08231146101d857806395d89b4114610215578063a9059cbb14610240578063d0e30db01461027d578063dd62ed3e14610287576100af565b806306fdde03146100b4578063095ea7b3146100df57806318160ddd1461011c57806323b872dd146101475780632e1a7d4d14610184576100af565b366100af576100ad6102c4565b005b600080fd5b3480156100c057600080fd5b506100c961036a565b6040516100d69190610c5b565b60405180910390f35b3480156100eb57600080fd5b5061010660048036038101906101019190610b6d565b6103f8565b6040516101139190610c40565b60405180910390f35b34801561012857600080fd5b506101316104ea565b60405161013e9190610c7d565b60405180910390f35b34801561015357600080fd5b5061016e60048036038101906101699190610b1a565b6104f2565b60405161017b9190610c40565b60405180910390f35b34801561019057600080fd5b506101ab60048036038101906101a69190610bad565b610856565b005b3480156101b957600080fd5b506101c2610990565b6040516101cf9190610c98565b60405180910390f35b3480156101e457600080fd5b506101ff60048036038101906101fa9190610aad565b6109a3565b60405161020c9190610c7d565b60405180910390f35b34801561022157600080fd5b5061022a6109bb565b6040516102379190610c5b565b60405180910390f35b34801561024c57600080fd5b5061026760048036038101906102629190610b6d565b610a49565b6040516102749190610c40565b60405180910390f35b6102856102c4565b005b34801561029357600080fd5b506102ae60048036038101906102a99190610ada565b610a5e565b6040516102bb9190610c7d565b60405180910390f35b34600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546103139190610ccf565b925050819055503373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040516103609190610c7d565b60405180910390a2565b6000805461037790610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103a390610de1565b80156103f05780601f106103c5576101008083540402835291602001916103f0565b820191906000526020600020905b8154815290600101906020018083116103d357829003601f168201915b505050505081565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104d89190610c7d565b60405180910390a36001905092915050565b600047905090565b600081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561054057600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561061857507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b1561073a5781600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156106a657600080fd5b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107329190610d25565b925050819055505b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107899190610d25565b9250508190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107df9190610ccf565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516108439190610c7d565b60405180910390a3600190509392505050565b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156108a257600080fd5b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546108f19190610d25565b925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561093e573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65826040516109859190610c7d565b60405180910390a250565b600260009054906101000a900460ff1681565b60036020528060005260406000206000915090505481565b600180546109c890610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546109f490610de1565b8015610a415780601f10610a1657610100808354040283529160200191610a41565b820191906000526020600020905b815481529060010190602001808311610a2457829003601f168201915b505050505081565b6000610a563384846104f2565b905092915050565b6004602052816000526040600020602052806000526040600020600091509150505481565b600081359050610a9281610e87565b92915050565b600081359050610aa781610e9e565b92915050565b600060208284031215610ac357610ac2610e71565b5b6000610ad184828501610a83565b91505092915050565b60008060408385031215610af157610af0610e71565b5b6000610aff85828601610a83565b9250506020610b1085828601610a83565b9150509250929050565b600080600060608486031215610b3357610b32610e71565b5b6000610b4186828701610a83565b9350506020610b5286828701610a83565b9250506040610b6386828701610a98565b9150509250925092565b60008060408385031215610b8457610b83610e71565b5b6000610b9285828601610a83565b9250506020610ba385828601610a98565b9150509250929050565b600060208284031215610bc357610bc2610e71565b5b6000610bd184828501610a98565b91505092915050565b610be381610d6b565b82525050565b6000610bf482610cb3565b610bfe8185610cbe565b9350610c0e818560208601610dae565b610c1781610e76565b840191505092915050565b610c2b81610d97565b82525050565b610c3a81610da1565b82525050565b6000602082019050610c556000830184610bda565b92915050565b60006020820190508181036000830152610c758184610be9565b905092915050565b6000602082019050610c926000830184610c22565b92915050565b6000602082019050610cad6000830184610c31565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610cda82610d97565b9150610ce583610d97565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610d1a57610d19610e13565b5b828201905092915050565b6000610d3082610d97565b9150610d3b83610d97565b925082821015610d4e57610d4d610e13565b5b828203905092915050565b6000610d6482610d77565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015610dcc578082015181840152602081019050610db1565b83811115610ddb576000848401525b50505050565b60006002820490506001821680610df957607f821691505b60208210811415610e0d57610e0c610e42565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b610e9081610d59565b8114610e9b57600080fd5b50565b610ea781610d97565b8114610eb257600080fd5b5056fea26469706673582212205e81d9c0c47aaf640f04def7376d1342406c24d638e336622e05ff606c53be6164736f6c63430008070033"; - -type WZETAConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: WZETAConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class WZETA__factory extends ContractFactory { - constructor(...args: WZETAConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(overrides || {}); - } - override deploy(overrides?: NonPayableOverrides & { from?: string }) { - return super.deploy(overrides || {}) as Promise< - WZETA & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): WZETA__factory { - return super.connect(runner) as WZETA__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): WZETAInterface { - return new Interface(_abi) as WZETAInterface; - } - static connect(address: string, runner?: ContractRunner | null): WZETA { - return new Contract(address, _abi, runner) as unknown as WZETA; - } -} diff --git a/typechain-types/factories/contracts/shared/index.ts b/typechain-types/factories/contracts/shared/index.ts deleted file mode 100644 index 4fb59882..00000000 --- a/typechain-types/factories/contracts/shared/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as interfaces from "./interfaces"; -export * as libraries from "./libraries"; -export { MockZRC20__factory } from "./MockZRC20__factory"; -export { TestUniswapRouter__factory } from "./TestUniswapRouter__factory"; -export { WZETA__factory } from "./WZETA__factory"; diff --git a/typechain-types/factories/contracts/shared/interfaces/IERC20__factory.ts b/typechain-types/factories/contracts/shared/interfaces/IERC20__factory.ts deleted file mode 100644 index ca549c2e..00000000 --- a/typechain-types/factories/contracts/shared/interfaces/IERC20__factory.ts +++ /dev/null @@ -1,244 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IERC20, - IERC20Interface, -} from "../../../../contracts/shared/interfaces/IERC20"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "spender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "decimals", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "name", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "symbol", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class IERC20__factory { - static readonly abi = _abi; - static createInterface(): IERC20Interface { - return new Interface(_abi) as IERC20Interface; - } - static connect(address: string, runner?: ContractRunner | null): IERC20 { - return new Contract(address, _abi, runner) as unknown as IERC20; - } -} diff --git a/typechain-types/factories/contracts/shared/interfaces/IWETH__factory.ts b/typechain-types/factories/contracts/shared/interfaces/IWETH__factory.ts deleted file mode 100644 index 6d7343aa..00000000 --- a/typechain-types/factories/contracts/shared/interfaces/IWETH__factory.ts +++ /dev/null @@ -1,66 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IWETH, - IWETHInterface, -} from "../../../../contracts/shared/interfaces/IWETH"; - -const _abi = [ - { - inputs: [], - name: "deposit", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "withdraw", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class IWETH__factory { - static readonly abi = _abi; - static createInterface(): IWETHInterface { - return new Interface(_abi) as IWETHInterface; - } - static connect(address: string, runner?: ContractRunner | null): IWETH { - return new Contract(address, _abi, runner) as unknown as IWETH; - } -} diff --git a/typechain-types/factories/contracts/shared/interfaces/IZRC20.sol/IZRC20Metadata__factory.ts b/typechain-types/factories/contracts/shared/interfaces/IZRC20.sol/IZRC20Metadata__factory.ts deleted file mode 100644 index 5fcb52ff..00000000 --- a/typechain-types/factories/contracts/shared/interfaces/IZRC20.sol/IZRC20Metadata__factory.ts +++ /dev/null @@ -1,358 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IZRC20Metadata, - IZRC20MetadataInterface, -} from "../../../../../contracts/shared/interfaces/IZRC20.sol/IZRC20Metadata"; - -const _abi = [ - { - inputs: [], - name: "GAS_LIMIT", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "PROTOCOL_FLAT_FEE", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "burn", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "decimals", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "deposit", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "name", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "newName", - type: "string", - }, - ], - name: "setName", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "newSymbol", - type: "string", - }, - ], - name: "setSymbol", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "symbol", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "recipient", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "recipient", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "to", - type: "bytes", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "withdraw", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "withdrawGasFee", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "gasLimit", - type: "uint256", - }, - ], - name: "withdrawGasFeeWithGasLimit", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -export class IZRC20Metadata__factory { - static readonly abi = _abi; - static createInterface(): IZRC20MetadataInterface { - return new Interface(_abi) as IZRC20MetadataInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): IZRC20Metadata { - return new Contract(address, _abi, runner) as unknown as IZRC20Metadata; - } -} diff --git a/typechain-types/factories/contracts/shared/interfaces/IZRC20.sol/IZRC20__factory.ts b/typechain-types/factories/contracts/shared/interfaces/IZRC20.sol/IZRC20__factory.ts deleted file mode 100644 index d3e47731..00000000 --- a/typechain-types/factories/contracts/shared/interfaces/IZRC20.sol/IZRC20__factory.ts +++ /dev/null @@ -1,316 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IZRC20, - IZRC20Interface, -} from "../../../../../contracts/shared/interfaces/IZRC20.sol/IZRC20"; - -const _abi = [ - { - inputs: [], - name: "GAS_LIMIT", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "PROTOCOL_FLAT_FEE", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "burn", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "deposit", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "newName", - type: "string", - }, - ], - name: "setName", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "newSymbol", - type: "string", - }, - ], - name: "setSymbol", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "recipient", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "recipient", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "to", - type: "bytes", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "withdraw", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "withdrawGasFee", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "gasLimit", - type: "uint256", - }, - ], - name: "withdrawGasFeeWithGasLimit", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -export class IZRC20__factory { - static readonly abi = _abi; - static createInterface(): IZRC20Interface { - return new Interface(_abi) as IZRC20Interface; - } - static connect(address: string, runner?: ContractRunner | null): IZRC20 { - return new Contract(address, _abi, runner) as unknown as IZRC20; - } -} diff --git a/typechain-types/factories/contracts/shared/interfaces/IZRC20.sol/ZRC20Events__factory.ts b/typechain-types/factories/contracts/shared/interfaces/IZRC20.sol/ZRC20Events__factory.ts deleted file mode 100644 index b2eaccbb..00000000 --- a/typechain-types/factories/contracts/shared/interfaces/IZRC20.sol/ZRC20Events__factory.ts +++ /dev/null @@ -1,186 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - ZRC20Events, - ZRC20EventsInterface, -} from "../../../../../contracts/shared/interfaces/IZRC20.sol/ZRC20Events"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "spender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "from", - type: "bytes", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Deposit", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "gasLimit", - type: "uint256", - }, - ], - name: "UpdatedGasLimit", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "gateway", - type: "address", - }, - ], - name: "UpdatedGateway", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "protocolFlatFee", - type: "uint256", - }, - ], - name: "UpdatedProtocolFlatFee", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "systemContract", - type: "address", - }, - ], - name: "UpdatedSystemContract", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "to", - type: "bytes", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "gasFee", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "protocolFlatFee", - type: "uint256", - }, - ], - name: "Withdrawal", - type: "event", - }, -] as const; - -export class ZRC20Events__factory { - static readonly abi = _abi; - static createInterface(): ZRC20EventsInterface { - return new Interface(_abi) as ZRC20EventsInterface; - } - static connect(address: string, runner?: ContractRunner | null): ZRC20Events { - return new Contract(address, _abi, runner) as unknown as ZRC20Events; - } -} diff --git a/typechain-types/factories/contracts/shared/interfaces/IZRC20.sol/index.ts b/typechain-types/factories/contracts/shared/interfaces/IZRC20.sol/index.ts deleted file mode 100644 index 98e010d3..00000000 --- a/typechain-types/factories/contracts/shared/interfaces/IZRC20.sol/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { IZRC20__factory } from "./IZRC20__factory"; -export { IZRC20Metadata__factory } from "./IZRC20Metadata__factory"; -export { ZRC20Events__factory } from "./ZRC20Events__factory"; diff --git a/typechain-types/factories/contracts/shared/interfaces/index.ts b/typechain-types/factories/contracts/shared/interfaces/index.ts deleted file mode 100644 index 7bc279e5..00000000 --- a/typechain-types/factories/contracts/shared/interfaces/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as izrc20Sol from "./IZRC20.sol"; -export { IERC20__factory } from "./IERC20__factory"; -export { IWETH__factory } from "./IWETH__factory"; diff --git a/typechain-types/factories/contracts/shared/libraries/SafeMath.sol/Math__factory.ts b/typechain-types/factories/contracts/shared/libraries/SafeMath.sol/Math__factory.ts deleted file mode 100644 index 0920a070..00000000 --- a/typechain-types/factories/contracts/shared/libraries/SafeMath.sol/Math__factory.ts +++ /dev/null @@ -1,79 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; -import type { NonPayableOverrides } from "../../../../../common"; -import type { - Math, - MathInterface, -} from "../../../../../contracts/shared/libraries/SafeMath.sol/Math"; - -const _abi = [ - { - inputs: [], - name: "AdditionsOverflow", - type: "error", - }, - { - inputs: [], - name: "MultiplicationsOverflow", - type: "error", - }, - { - inputs: [], - name: "SubtractionsUnderflow", - type: "error", - }, -] as const; - -const _bytecode = - "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea264697066735822122020081ae02c128e41244d5ac258288e5e7860648140063c588acc5334b6d7f6fd64736f6c634300081a0033"; - -type MathConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: MathConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class Math__factory extends ContractFactory { - constructor(...args: MathConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(overrides || {}); - } - override deploy(overrides?: NonPayableOverrides & { from?: string }) { - return super.deploy(overrides || {}) as Promise< - Math & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): Math__factory { - return super.connect(runner) as Math__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): MathInterface { - return new Interface(_abi) as MathInterface; - } - static connect(address: string, runner?: ContractRunner | null): Math { - return new Contract(address, _abi, runner) as unknown as Math; - } -} diff --git a/typechain-types/factories/contracts/shared/libraries/SafeMath.sol/index.ts b/typechain-types/factories/contracts/shared/libraries/SafeMath.sol/index.ts deleted file mode 100644 index a249c748..00000000 --- a/typechain-types/factories/contracts/shared/libraries/SafeMath.sol/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { Math__factory } from "./Math__factory"; diff --git a/typechain-types/factories/contracts/shared/libraries/UniswapV2Library__factory.ts b/typechain-types/factories/contracts/shared/libraries/UniswapV2Library__factory.ts deleted file mode 100644 index cd0add9c..00000000 --- a/typechain-types/factories/contracts/shared/libraries/UniswapV2Library__factory.ts +++ /dev/null @@ -1,102 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; -import type { NonPayableOverrides } from "../../../../common"; -import type { - UniswapV2Library, - UniswapV2LibraryInterface, -} from "../../../../contracts/shared/libraries/UniswapV2Library"; - -const _abi = [ - { - inputs: [], - name: "IdenticalAddresses", - type: "error", - }, - { - inputs: [], - name: "InsufficientAmount", - type: "error", - }, - { - inputs: [], - name: "InsufficientInputAmount", - type: "error", - }, - { - inputs: [], - name: "InsufficientLiquidity", - type: "error", - }, - { - inputs: [], - name: "InsufficientOutputAmount", - type: "error", - }, - { - inputs: [], - name: "InvalidPath", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, -] as const; - -const _bytecode = - "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea264697066735822122070e323217c7c31ba4306140b5901f664059af9e4e7e4f2d52b7e37e76a4b7cc264736f6c634300081a0033"; - -type UniswapV2LibraryConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: UniswapV2LibraryConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class UniswapV2Library__factory extends ContractFactory { - constructor(...args: UniswapV2LibraryConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(overrides || {}); - } - override deploy(overrides?: NonPayableOverrides & { from?: string }) { - return super.deploy(overrides || {}) as Promise< - UniswapV2Library & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): UniswapV2Library__factory { - return super.connect(runner) as UniswapV2Library__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): UniswapV2LibraryInterface { - return new Interface(_abi) as UniswapV2LibraryInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): UniswapV2Library { - return new Contract(address, _abi, runner) as unknown as UniswapV2Library; - } -} diff --git a/typechain-types/factories/contracts/shared/libraries/index.ts b/typechain-types/factories/contracts/shared/libraries/index.ts deleted file mode 100644 index 4fe77c91..00000000 --- a/typechain-types/factories/contracts/shared/libraries/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as safeMathSol from "./SafeMath.sol"; -export { UniswapV2Library__factory } from "./UniswapV2Library__factory"; diff --git a/typechain-types/factories/contracts/testing/EVMSetup.t.sol/EVMSetup__factory.ts b/typechain-types/factories/contracts/testing/EVMSetup.t.sol/EVMSetup__factory.ts deleted file mode 100644 index b73bab93..00000000 --- a/typechain-types/factories/contracts/testing/EVMSetup.t.sol/EVMSetup__factory.ts +++ /dev/null @@ -1,883 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { - Signer, - AddressLike, - ContractDeployTransaction, - ContractRunner, -} from "ethers"; -import type { NonPayableOverrides } from "../../../../common"; -import type { - EVMSetup, - EVMSetupInterface, -} from "../../../../contracts/testing/EVMSetup.t.sol/EVMSetup"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "_deployer", - type: "address", - }, - { - internalType: "address", - name: "_tss", - type: "address", - }, - { - internalType: "address", - name: "_wzeta", - type: "address", - }, - { - internalType: "address", - name: "_systemContract", - type: "address", - }, - { - internalType: "address", - name: "_nodeLogicMock", - type: "address", - }, - { - internalType: "address", - name: "_uniswapV2Router", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "", - type: "string", - }, - ], - name: "log", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "", - type: "address", - }, - ], - name: "log_address", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256[]", - name: "val", - type: "uint256[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "int256[]", - name: "val", - type: "int256[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address[]", - name: "val", - type: "address[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "log_bytes", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - name: "log_bytes32", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "int256", - name: "", - type: "int256", - }, - ], - name: "log_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "address", - name: "val", - type: "address", - }, - ], - name: "log_named_address", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256[]", - name: "val", - type: "uint256[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256[]", - name: "val", - type: "int256[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "address[]", - name: "val", - type: "address[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "bytes", - name: "val", - type: "bytes", - }, - ], - name: "log_named_bytes", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "bytes32", - name: "val", - type: "bytes32", - }, - ], - name: "log_named_bytes32", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256", - name: "val", - type: "int256", - }, - { - indexed: false, - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "log_named_decimal_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "val", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "log_named_decimal_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256", - name: "val", - type: "int256", - }, - ], - name: "log_named_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "string", - name: "val", - type: "string", - }, - ], - name: "log_named_string", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "val", - type: "uint256", - }, - ], - name: "log_named_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "", - type: "string", - }, - ], - name: "log_string", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "log_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "logs", - type: "event", - }, - { - inputs: [], - name: "IS_TEST", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "chainIdETH", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "custody", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "deployer", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeArtifacts", - outputs: [ - { - internalType: "string[]", - name: "excludedArtifacts_", - type: "string[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeContracts", - outputs: [ - { - internalType: "address[]", - name: "excludedContracts_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeSelectors", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzSelector[]", - name: "excludedSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeSenders", - outputs: [ - { - internalType: "address[]", - name: "excludedSenders_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "failed", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "nodeLogicMockAddr", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "chainId", - type: "uint256", - }, - ], - name: "setupEVMChain", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "systemContract", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetArtifactSelectors", - outputs: [ - { - components: [ - { - internalType: "string", - name: "artifact", - type: "string", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzArtifactSelector[]", - name: "targetedArtifactSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetArtifacts", - outputs: [ - { - internalType: "string[]", - name: "targetedArtifacts_", - type: "string[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetContracts", - outputs: [ - { - internalType: "address[]", - name: "targetedContracts_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetInterfaces", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "string[]", - name: "artifacts", - type: "string[]", - }, - ], - internalType: "struct StdInvariant.FuzzInterface[]", - name: "targetedInterfaces_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetSelectors", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzSelector[]", - name: "targetedSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetSenders", - outputs: [ - { - internalType: "address[]", - name: "targetedSenders_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "tss", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "uniswapV2Router", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "wrapGatewayEVM", - outputs: [ - { - internalType: "contract GatewayEVM", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "wzeta", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "zetaConnector", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "zetaToken", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -const _bytecode = - "0x60803461012957601f61ae8f38819003918201601f19168301916001600160401b0383118484101761012e5780849260c0946040528339810103126101295761004781610144565b9061005460208201610144565b61006060408301610144565b61006c60608401610144565b91600161008760a061008060808801610144565b9601610144565b600c805460ff199081168417909155601f805460a885901b8581031990911660089a909a1b92019190911697909717909117909555602080546001600160a01b03199081166001600160a01b039384161790915560218054821693831693909317909255602280548316938216939093179092556023805482169383169390931790925560248054909216921691909117905560405161ad3690816101598239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036101295756fe6080604052600436101561001257600080fd5b60003560e01c8062173d4614610195578062d62498146101905780631694505e1461018b5780631ed7831c146101865780632ade3880146101815780633e5e3c231461017c5780633f7286f41461017757806362f1b0021461017257806366d9a9a01461016d5780636a26fefe146101685780636ce89fe2146101635780636e6dbb511461015e5780637bf221811461015957806385226c8114610154578063916a17c61461014f578063ad8414bf1461014a578063b0464fdc14610145578063b5508aa914610140578063ba414fa61461013b578063bb88b76914610136578063d05adf6a14610131578063d5f394881461012c578063e20c9f71146101275763fa7626d41461012257600080fd5b611708565b611688565b61165b565b61162d565b611604565b6115df565b611552565b6114a6565b611478565b6113cc565b6112c7565b6107d8565b6107b1565b610788565b61076c565b6106c0565b6105d4565b610554565b6104d4565b610428565b61027f565b610213565b6101e5565b6101aa565b60009103126101a557565b600080fd5b346101a55760003660031901126101a5576021546040516001600160a01b039091168152602090f35b60209060031901126101a55760043590565b346101a5576101f3366101d3565b6000526027602052602060018060a01b0360406000205416604051908152f35b346101a55760003660031901126101a5576024546040516001600160a01b039091168152602090f35b602060408183019282815284518094520192019060005b8181106102605750505090565b82516001600160a01b0316845260209384019390920191600101610253565b346101a55760003660031901126101a55760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b8181106102f0576102ec856102e08187038261175d565b6040519182918261023c565b0390f35b82546001600160a01b03168452602090930192600192830192016102c9565b60005b8381106103225750506000910152565b8181015183820152602001610312565b9060209161034b8151809281855285808601910161030f565b601f01601f1916010190565b9080602083519182815201916020808360051b8301019401926000915b83831061038357505050505090565b90919293946020806103a1600193601f198682030187528951610332565b97019301930191939290610374565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106103e357505050505090565b9091929394602080610419600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610357565b970193019301919392906103d4565b346101a55760003660031901126101a557601e546104458161177f565b90610453604051928361175d565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061049957604051806102ec87826103b0565b600260206001926040516104ac81611741565b848060a01b0386541681526104c2858701611863565b83820152815201920192019190610484565b346101a55760003660031901126101a55760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b818110610535576102ec856102e08187038261175d565b82546001600160a01b031684526020909301926001928301920161051e565b346101a55760003660031901126101a55760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b8181106105b5576102ec856102e08187038261175d565b82546001600160a01b031684526020909301926001928301920161059e565b346101a5576105e2366101d3565b6000526028602052602060018060a01b0360406000205416604051908152f35b906020808351928381520192019060005b8181106106205750505090565b82516001600160e01b031916845260209384019390920191600101610613565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061067357505050505090565b90919293946020806106b1600193603f19868203018752895190836106a18351604084526040840190610332565b9201519084818403910152610602565b97019301930191939290610664565b346101a55760003660031901126101a557601b546106dd8161177f565b906106eb604051928361175d565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b83831061073157604051806102ec8782610640565b6002602060019260405161074481611741565b61074d86611797565b815261075a8587016118bb565b8382015281520192019201919061071c565b346101a55760003660031901126101a557602060405160058152f35b346101a55760003660031901126101a5576023546040516001600160a01b039091168152602090f35b346101a55760003660031901126101a557602080546040516001600160a01b039091168152f35b346101a5576107e6366101d3565b601f5460081c6001600160a01b0316737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156101a5576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610f355761129e575b506040516129ee80820182811067ffffffffffffffff821117611012578291613e36833903906000f08015610f35576023546001600160a01b031660405191610bd68084019284841067ffffffffffffffff8511176110125784936108e193879361a12b87396001600160a01b039081168252919091166020820152604081019190915260600190565b03906000f08015610f35576000828152602760205260409020610928916001600160a01b0316905b80546001600160a01b0319166001600160a01b03909216919091179055565b604051611ebc80820182811067ffffffffffffffff821117611012578291611f7a833903906000f08015610f35576000828152602560205260409020610977916001600160a01b031690610909565b60058114801561114a576040516360f9bb1160e01b815260206004820152604b60248201527f6e6f64655f6d6f64756c65732f407a657461636861696e2f70726f746f636f6c60448201527f2d636f6e7472616374732f6162692f5465737445524332302e736f6c2f54657360648201526a3a22a9219918173539b7b760a91b608482015260008160a481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610f3557610a49916000918291611130575b5060405180938192631fb2437d60e31b835260048301611b5b565b0381737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610f3557610aea91610ad69160009161110d575b5060405190610ad182610ac36020820160c0906040815260046040820152635a65746160e01b60608201526080602082015260046080820152635a45544160e01b60a08201520190565b03601f19810184528361175d565b611c60565b610909846000526028602052604060002090565b610b1d610b11610b04846000526027602052604060002090565b546001600160a01b031690565b6001600160a01b031690565b6020546001600160a01b0316610b40610b04856000526028602052604060002090565b601f5490929060081c6001600160a01b031690803b156101a55760405163c0c53b8b60e01b81526001600160a01b0393841660048201529383166024850152911660448301526000908290606490829084905af18015610f35576110f8575b50610bbd610b11610b11610b04856000526025602052604060002090565b610bd7610b11610b04856000526027602052604060002090565b6020546001600160a01b0316601f5490929060081c6001600160a01b031690803b156101a55760405163c0c53b8b60e01b81526001600160a01b0393841660048201529383166024850152911660448301526000908290606490829084905af18015610f35576110e3575b50801561101757604051611bf380820182811067ffffffffffffffff821117611012578291616824833903906000f08015610f3557610c91610b11610b04856000526027602052604060002090565b90610cfc610cac610b04866000526028602052604060002090565b60208054601f54604051637c643b2f60e11b938101939093526001600160a01b03968716602484015292861660448301528516606482015260089190911c90931660848401528260a48101610ac3565b604051916102c69081840184811067ffffffffffffffff821117611012578493610d3493611cb486396001600160a01b031690611b97565b03906000f08015610f35576000838152602660205260409020610d60916001600160a01b031690610909565b610d7a610b11610b04846000526027602052604060002090565b610d91610b04846000526025602052604060002090565b90803b156101a55760405163ae7a3a6f60e01b81526001600160a01b039290921660048301526000908290602490829084905af18015610f3557610ffd575b50610deb610b11610b04846000526027602052604060002090565b610e02610b04846000526026602052604060002090565b90803b156101a5576040516310188aef60e01b81526001600160a01b039290921660048301526000908290602490829084905af18015610f3557610fe8575b5015610f4f57610e7b610b04610e6a610b11610b11610b04866000526028602052604060002090565b926000526026602052604060002090565b90803b156101a5576040516340c10f1960e01b81526001600160a01b0392909216600483015269d3c21bcecceda100000060248301526000908290604490829084905af18015610f3557610f3a575b505b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156101a5576040516390c5013b60e01b815260008160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610f3557610f1e57005b80610f2d6000610f339361175d565b8061019a565b005b611ae0565b80610f2d6000610f499361175d565b38610eca565b610f6c610b11610b11610b04846000526028602052604060002090565b602054909190610f8890610b04906001600160a01b0316610e6a565b823b156101a5576040516305755ff560e21b81526001600160a01b03928316600482015291166024820152906000908290604490829084905af18015610f3557610fd3575b50610ecc565b80610f2d6000610fe29361175d565b38610fcd565b80610f2d6000610ff79361175d565b38610e41565b80610f2d600061100c9361175d565b38610dd0565b61172b565b604051611d1480820182811067ffffffffffffffff821117611012578291618417833903906000f08015610f355761105f610b11610b04856000526027602052604060002090565b9061107a610cac610b04866000526028602052604060002090565b604051916102c69081840184811067ffffffffffffffff8211176110125784936110b293611cb486396001600160a01b031690611b97565b03906000f08015610f355760008381526026602052604090206110de916001600160a01b031690610909565b610d60565b80610f2d60006110f29361175d565b38610c42565b80610f2d60006111079361175d565b38610b9f565b61112a91503d806000833e611122818361175d565b810190611aec565b38610a79565b61114491503d8084833e611122818361175d565b38610a2e565b6040516360f9bb1160e01b815260206004820152604f60248201527f6e6f64655f6d6f64756c65732f407a657461636861696e2f70726f746f636f6c60448201527f2d636f6e7472616374732f6162692f5a6574612e6e6f6e2d6574682e736f6c2f60648201526e2d32ba30a737b722ba34173539b7b760891b608482015260008160a481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610f3557611215916000918291611130575060405180938192631fb2437d60e31b835260048301611b5b565b0381737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610f355761127e91610ad691600091611283575b5060208054601f54604080516001600160a01b039384169481019490945260089190911c9091169082015290610ad18260608101610ac3565b610aea565b61129891503d806000833e611122818361175d565b38611245565b80610f2d60006112ad9361175d565b38610857565b9060206112c4928181520190610357565b90565b346101a55760003660031901126101a557601a546112e48161177f565b906112f2604051928361175d565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b83831061133757604051806102ec87826112b3565b60016020819261134685611797565b815201920192019190611322565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061138757505050505090565b90919293946020806113bd600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610602565b97019301930191939290611378565b346101a55760003660031901126101a557601d546113e98161177f565b906113f7604051928361175d565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b83831061143d57604051806102ec8782611354565b6002602060019260405161145081611741565b848060a01b0386541681526114668587016118bb565b83820152815201920192019190611428565b346101a557611486366101d3565b6000526025602052602060018060a01b0360406000205416604051908152f35b346101a55760003660031901126101a557601c546114c38161177f565b906114d1604051928361175d565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b83831061151757604051806102ec8782611354565b6002602060019260405161152a81611741565b848060a01b0386541681526115408587016118bb565b83820152815201920192019190611502565b346101a55760003660031901126101a55760195461156f8161177f565b9061157d604051928361175d565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b8383106115c257604051806102ec87826112b3565b6001602081926115d185611797565b8152019201920191906115ad565b346101a55760003660031901126101a55760206115fa611bc8565b6040519015158152f35b346101a55760003660031901126101a5576022546040516001600160a01b039091168152602090f35b346101a55761163b366101d3565b6000526026602052602060018060a01b0360406000205416604051908152f35b346101a55760003660031901126101a557601f5460405160089190911c6001600160a01b03168152602090f35b346101a55760003660031901126101a55760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b8181106116e9576102ec856102e08187038261175d565b82546001600160a01b03168452602090930192600192830192016116d2565b346101a55760003660031901126101a557602060ff601f54166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff82111761101257604052565b90601f8019910116810190811067ffffffffffffffff82111761101257604052565b67ffffffffffffffff81116110125760051b60200190565b9060405191600081548060011c9260018216918215611859575b60208510831461184557848752869392602085019291811561182857506001146117e6575b50506117e49250038361175d565b565b6117f7919250600052602060002090565b906000915b84831061181157506117e493500138806117d6565b8054828401528693506020909201916001016117fc565b9150506117e49491925060ff19168252151560051b0138806117d6565b634e487b7160e01b84526022600452602484fd5b93607f16936117b1565b90815461186f8161177f565b9261187d604051948561175d565b818452602084019060005260206000206000915b83831061189e5750505050565b6001602081926118ad85611797565b815201920192019190611891565b604051815480825290929183906118db6020830191600052602060002090565b926000905b806007830110611a23576117e4945491818110611a04575b8181106119e5575b8181106119c6575b8181106119a7575b818110611988575b818110611969575b81811061194b575b10611936575b50038361175d565b6001600160e01b03191681526020013861192e565b602083811b6001600160e01b03191685529093600191019301611928565b604083901b6001600160e01b0319168452926001906020019301611920565b606083901b6001600160e01b0319168452926001906020019301611918565b608083901b6001600160e01b0319168452926001906020019301611910565b60a083901b6001600160e01b0319168452926001906020019301611908565b60c083901b6001600160e01b0319168452926001906020019301611900565b6001600160e01b031960e084901b1684529260019060200193016118f8565b916008919350610100600191611ad28754611a49838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b0194019201859293916118e0565b6040513d6000823e3d90fd5b6020818303126101a55780519067ffffffffffffffff82116101a5570181601f820112156101a5576020815191019067ffffffffffffffff81116110125760405192611b42601f8301601f19166020018561175d565b818452818301116101a5576112c491602084019061030f565b611b6d60409283835283830190610332565b906020818303910152601081526f0b989e5d1958dbd9194b9bd89a9958dd60821b60208201520190565b6001600160a01b0390911681526040602082018190526112c492910190610332565b908160209103126101a5575190565b60085460ff168015611bd75790565b50604051630667f9d760e41b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190526519985a5b195960d21b6024830152602090829060449082905afa908115610f3557600091611c31575b50151590565b611c53915060203d602011611c59575b611c4b818361175d565b810190611bb9565b38611c2b565b503d611c41565b90611ca560209160405192839181611c81818501978881519384920161030f565b8301611c958251809385808501910161030f565b010103601f19810183528261175d565b51906000f09081156101a55756fe60806040526102c68038038061001481610188565b928339810190604081830312610183578051906001600160a01b03821690818303610183576020810151906001600160401b038211610183570183601f820112156101835780519061006d610068836101c3565b610188565b94828652602083830101116101835760005b82811061016e575050602060009185010152813b1561015a577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a28151156101415760008083602061012995519101845af43d15610139573d91610119610068846101c3565b9283523d6000602085013e6101de565b505b604051608690816102408239f35b6060916101de565b5050341561012b5763b398979f60e01b60005260046000fd5b634c9c8ce360e01b60005260045260246000fd5b8060208092840101518282890101520161007f565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176101ad57604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b0381116101ad57601f01601f191660200190565b9061020457508051156101f357805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580610236575b610215575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b1561020d56fe60806040527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5460009081906001600160a01b0316368280378136915af43d6000803e15604b573d6000f35b3d6000fdfea264697066735822122050f22a01d073962c556a114f7af7ed5d52928a56307a2cc1329dcdbb635986ec64736f6c634300081a003360a0806040523460295730608052611e8d908161002f8239608051818181610f090152610fda0152f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a71461131857508063116191b6146112f1578063248a9ca3146112ca578063252f07bf146112a45780632f2ff15d1461127257806336568abe1461122d5780633f4ba83a146111ab5780634f1ef28614610f5e57806352d1902d14610ef6578063570618e114610ecd5780635b11259114610ea45780635c975abb14610e745780638456cb5914610dff57806385f438c114610dd657806391d1485414610d80578063950837aa14610cb457806399a3c35614610ade5780639a59042714610a725780639b19251a146109f4578063a217fddf146109d8578063ad0818521461082d578063ad3cb1cc146107b3578063c0c53b8b1461057f578063d547741f14610544578063d936547e14610505578063d9caed1214610442578063e609055e146101e8578063e63ab1e9146101ad5763eab103df1461016057600080fd5b346101aa5760203660031901126101aa576004358015158091036101a65761018661157a565b6002805460ff60a01b191660a09290921b60ff60a01b1691909117905580f35b5080fd5b80fd5b50346101aa57806003193601126101aa5760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346101aa5760803660031901126101aa5760043567ffffffffffffffff81116101a65761021a903690600401611417565b6024356001600160a01b03811692919083810361043e5760643567ffffffffffffffff811161043a57610251903690600401611417565b9061025a611b7e565b610262611bba565b60ff60025460a01c161561042b57858752600160205260ff6040882054161561041c576040516370a0823160e01b8152306004820152926020846024818a5afa9384156103db5788946103e6575b506102ee90604051906323b872dd60e01b60208301523360248301523060448301526044356064830152606482526102e96084836113c3565b611c21565b6040516370a0823160e01b8152306004820152926020846024818a5afa9384156103db5788946103a2575b50830392831161038e5791610376917f1dafa057cc5c3bccb5ad974129a2bccd3c74002d9dfd7062404ba9523b18d6ae959493610363604051968796606088526060880191611466565b9260208601528483036040860152611466565b0390a26001600080516020611df88339815191525580f35b634e487b7160e01b87526011600452602487fd5b9093506020813d6020116103d3575b816103be602093836113c3565b810103126103ce57519238610319565b600080fd5b3d91506103b1565b6040513d8a823e3d90fd5b9093506020813d602011610414575b81610402602093836113c3565b810103126103ce5751926102ee6102b0565b3d91506103f5565b630b094f2760e31b8752600487fd5b6373cba66360e01b8752600487fd5b8580fd5b8480fd5b50346101aa5760603660031901126101aa5761045c611383565b61046461136d565b60443590610470611b7e565b6104786115cd565b610480611bba565b6001600160a01b03168084526001602052604084205490929060ff16156104f6576020816104d0847fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb9487611be4565b6040519384526001600160a01b031692a36001600080516020611df88339815191525580f35b630b094f2760e31b8452600484fd5b50346101aa5760203660031901126101aa5760209060ff906040906001600160a01b03610530611383565b168152600184522054166040519015158152f35b50346101aa5760403660031901126101aa5761057b60043561056461136d565b9061057661057182611445565b611669565b611ade565b5080f35b50346101aa5760603660031901126101aa57610599611383565b6105a161136d565b6105a9611399565b600080516020611e38833981519152549260ff8460401c16159367ffffffffffffffff8116801590816107ab575b60011490816107a1575b159081610798575b506107895767ffffffffffffffff198116600117600080516020611e38833981519152558461075c575b506001600160a01b03168015801561074b575b801561073a575b61072b576106c992916106c391610642611c88565b61064a611c88565b610652611c88565b6001600080516020611df88339815191525561066c611c88565b610674611c88565b86546001600160a01b0319908116919091178755600280549091166001600160a01b0385161790556106a5816117c5565b506106af8161185f565b506106b98361185f565b506106c3836116b3565b5061173f565b506106d15780f35b68ff000000000000000019600080516020611e388339815191525416600080516020611e38833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b63d92e233d60e01b8552600485fd5b506001600160a01b0382161561062d565b506001600160a01b03831615610626565b68ffffffffffffffffff19166801000000000000000117600080516020611e388339815191525538610613565b63f92ee8a960e01b8652600486fd5b905015386105e9565b303b1591506105e1565b8691506105d7565b50346101aa57806003193601126101aa5760408051916107d382846113c3565b60058352640352e302e360dc1b6020840152815192839160208352815191826020850152815b838110610816575050828201840152601f01601f19168101030190f35b6020828201810151888301880152879550016107f9565b50346101aa57366003190160a081126101a6576020136101aa5761084f61136d565b610857611399565b906064359160843567ffffffffffffffff811161043e5761087c903690600401611417565b9091610886611b7e565b61088e6115cd565b610896611bba565b6001600160a01b03168086526001602052604086205490949060ff16156109c95785546108ce9082906001600160a01b031687611be4565b85546001600160a01b0316938690853b156101a657604051633ddf4d7d60e11b815290829082906001600160a01b03610905611383565b166004830152602482018a90526001600160a01b0316604482018190526064820186905260a060848301529781838161094260a482018b8d611466565b03925af180156109be576109a9575b50506109917f6478cbb6e28c0823c691dfd74c01c985634faddd4c401b990fe4ec26277ea8d5936040519384938452604060208501526040840191611466565b0390a36001600080516020611df88339815191525580f35b816109b3916113c3565b61043a578538610951565b6040513d84823e3d90fd5b630b094f2760e31b8652600486fd5b50346101aa57806003193601126101aa57602090604051908152f35b50346101aa5760203660031901126101aa57610a0e611383565b610a1661161b565b6001600160a01b03168015610a6357808252600160205260408220600160ff198254161790557faab7954e9d246b167ef88aeddad35209ca2489d95a8aeb59e288d9b19fae5a548280a280f35b63d92e233d60e01b8252600482fd5b50346101aa5760203660031901126101aa57610a8c611383565b610a9461161b565b6001600160a01b03168015610a6357808252600160205260408220805460ff191690557f51085ddf9ebdded84b76e829eb58c4078e4b5bdf97d9a94723f336039da467918280a280f35b50346101aa5760a03660031901126101aa57610af8611383565b610b0061136d565b9060443560643567ffffffffffffffff811161043e57610b24903690600401611417565b9190936084359067ffffffffffffffff8211610cb057608082600401926003199036030112610cb057610b55611b7e565b610b5d6115cd565b610b65611bba565b6001600160a01b03168087526001602052604087205490959060ff161561041c578654610b9d9084906001600160a01b031688611be4565b86546001600160a01b031694853b15610cac5787604051809263aa0c0fc160e01b825289600483015260018060a01b03169788602483015286604483015260a06064830152818381610c08610bf660a483018d8b611466565b8281036003190160848401528a611487565b03925af180156103db57610c6a575b507f7b53ec10a80164e60591c43d9c222e9354886981b880a3fba19c9ceb77fb9721939291610c5c610991926040519586958652606060208701526060860191611466565b908382036040850152611487565b91610c5c88610ca0610991949a7f7b53ec10a80164e60591c43d9c222e9354886981b880a3fba19c9ceb77fb97219897966113c3565b98925050919293610c17565b8780fd5b8680fd5b50346101aa5760203660031901126101aa57610cce611383565b610cd661157a565b6001600160a01b038116908115610d7157600254610d219190610d01906001600160a01b03166119b2565b50600254610d17906001600160a01b0316611a48565b506106c3816116b3565b50600254604080516001600160a01b0383168152602081018490527f4d3470c839d3c4dd664eec934b920c12fe0966e3185103dd40149496815df2b69190a16001600160a01b0319161760025580f35b63d92e233d60e01b8352600483fd5b50346101aa5760403660031901126101aa5760ff6040602092610da161136d565b6004358252600080516020611d9883398151915285528282206001600160a01b03909116825284522054604051911615158152f35b50346101aa57806003193601126101aa576020604051600080516020611d788339815191528152f35b50346101aa57806003193601126101aa57610e18611508565b610e20611bba565b600160ff19600080516020611dd8833981519152541617600080516020611dd8833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101aa57806003193601126101aa57602060ff600080516020611dd883398151915254166040519015158152f35b50346101aa57806003193601126101aa576002546040516001600160a01b039091168152602090f35b50346101aa57806003193601126101aa576020604051600080516020611d588339815191528152f35b50346101aa57806003193601126101aa577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610f4f576020604051600080516020611d388339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101aa57610f73611383565b6024359067ffffffffffffffff82116111a757366023830112156111a75781600401359083610fa1836113fb565b93610faf60405195866113c3565b838552602085019336602482840101116111a757806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611184575b506111755761101261157a565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181611141575b5061105557634c9c8ce360e01b86526004859052602486fd5b9384600080516020611d3883398151915287960361112f5750823b1561111d57600080516020611d3883398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a28051156111025761057b9382915190845af43d156110fa573d916110de836113fb565b926110ec60405194856113c3565b83523d85602085013e611cb6565b606091611cb6565b505050503461110e5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d60201161116d575b8161115d602093836113c3565b81010312610cb05751903861103c565b3d9150611150565b63703e46dd60e11b8452600484fd5b600080516020611d38833981519152546001600160a01b03161415905038611005565b8280fd5b50346101aa57806003193601126101aa576111c4611508565b600080516020611dd88339815191525460ff81161561121e5760ff1916600080516020611dd8833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346101aa5760403660031901126101aa5761124761136d565b336001600160a01b038216036112635761057b90600435611ade565b63334bd91960e11b8252600482fd5b50346101aa5760403660031901126101aa5761057b60043561129261136d565b9061129f61057182611445565b61191b565b50346101aa57806003193601126101aa57602060ff60025460a01c166040519015158152f35b50346101aa5760203660031901126101aa5760206112e9600435611445565b604051908152f35b50346101aa57806003193601126101aa57546040516001600160a01b039091168152602090f35b9050346101a65760203660031901126101a65760043563ffffffff60e01b81168091036111a75760209250637965db0b60e01b811490811561135c575b5015158152f35b6301ffc9a760e01b14905038611355565b602435906001600160a01b03821682036103ce57565b600435906001600160a01b03821682036103ce57565b604435906001600160a01b03821682036103ce57565b35906001600160a01b03821682036103ce57565b90601f8019910116810190811067ffffffffffffffff8211176113e557604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116113e557601f01601f191660200190565b9181601f840112156103ce5782359167ffffffffffffffff83116103ce57602083818601950101116103ce57565b600052600080516020611d9883398151915260205260016040600020015490565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160a01b03611498826113af565b1682526001600160a01b036114af602083016113af565b166020830152604081013560408301526060810135601e19823603018112156103ce57016020813591019067ffffffffffffffff81116103ce5780360382136103ce576080838160606115059601520191611466565b90565b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561154157565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16156115b357565b63e2517d3f60e01b60005233600452600060245260446000fd5b336000908152600080516020611e18833981519152602052604090205460ff16156115f457565b63e2517d3f60e01b60005233600452600080516020611d7883398151915260245260446000fd5b336000908152600080516020611db8833981519152602052604090205460ff161561164257565b63e2517d3f60e01b60005233600452600080516020611d5883398151915260245260446000fd5b6000818152600080516020611d988339815191526020908152604080832033845290915290205460ff161561169b5750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b0381166000908152600080516020611e18833981519152602052604090205460ff16611739576001600160a01b03166000818152600080516020611e1883398151915260205260408120805460ff19166001179055339190600080516020611d7883398151915290600080516020611d188339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020611db8833981519152602052604090205460ff16611739576001600160a01b03166000818152600080516020611db883398151915260205260408120805460ff19166001179055339190600080516020611d5883398151915290600080516020611d188339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16611739576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff19166001179055339190600080516020611d188339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff16611739576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a90600080516020611d188339815191529080a4600190565b6000818152600080516020611d98833981519152602090815260408083206001600160a01b038616845290915290205460ff166119ab576000818152600080516020611d98833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff1916600117905533929190600080516020611d188339815191529080a4600190565b5050600090565b6001600160a01b0381166000908152600080516020611e18833981519152602052604090205460ff1615611739576001600160a01b03166000818152600080516020611e1883398151915260205260408120805460ff19169055339190600080516020611d78833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381166000908152600080516020611db8833981519152602052604090205460ff1615611739576001600160a01b03166000818152600080516020611db883398151915260205260408120805460ff19169055339190600080516020611d58833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020611d98833981519152602090815260408083206001600160a01b038616845290915290205460ff16156119ab576000818152600080516020611d98833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6002600080516020611df88339815191525414611ba9576002600080516020611df883398151915255565b633ee5aeb560e01b60005260046000fd5b60ff600080516020611dd88339815191525416611bd357565b63d93c066560e01b60005260046000fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152611c1f916102e96064836113c3565b565b906000602091828151910182855af115611c7c576000513d611c7357506001600160a01b0381163b155b611c525750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b60011415611c4b565b6040513d6000823e3d90fd5b60ff600080516020611e388339815191525460401c1615611ca557565b631afcd79f60e31b60005260046000fd5b90611cdc5750805115611ccb57805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611d0e575b611ced575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15611ce556fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8619cecd8b9e095ab43867f5b69d492180450fe862e6b50bfbfb24b75dd84c8a10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009e55e7b9c223644eee376bcbcf651816b24106427c658526e048949da61b2c08cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00395f4e35a18c2b5e556b3b2ff855307e76c0b3cc1ca71e19a70e83037e08e7b3f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212206353f97c2bca70990562e73c05a556d800ce6f131c5458a0f2aa0fe6f1af58ff64736f6c634300081a003360a080604052346100ea57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b6040516128fe90816100f0823960805181818161120b01526112db0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880610054565b63f92ee8a960e01b60005260046000fd5b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a7146119015750806310188aef1461188f578063102614b01461179f5780631becceb4146116c457806321e093b11461169b578063248a9ca3146116745780632f2ff15d1461164257806336568abe146115fd57806338e22527146115035780633f4ba83a146114815780634f1ef2861461126057806352d1902d146111f857806357bec62f146111cf5780635b112591146111a65780635c975abb146111765780635d62c8601461113b578063726ac97c1461100c578063744b9b8b14610f295780637bbe9afa14610b1c5780638456cb5914610aa757806391d1485414610a4e578063950837aa146109ab578063a217fddf1461098f578063a2ba193414610972578063a783c78914610949578063aa0c0fc1146107f8578063ad3cb1cc146107ab578063ae7a3a6f1461072f578063c0c53b8b14610519578063cb7ba8e5146103a9578063d09e3b7814610236578063d547741f146101fb578063dda79b75146101d45763e63ab1e91461019757600080fd5b346101d157806003193601126101d15760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b80fd5b50346101d157806003193601126101d157546040516001600160a01b039091168152602090f35b50346101d15760403660031901126101d15761023260043561021b611987565b9061022d61022882611bf9565b611ea1565b6123d1565b5080f35b50346101d15760a03660031901126101d157610250611956565b60243561025b611971565b916064356001600160401b0381116103a55761027b9036906004016119b1565b608435946001600160401b0386116103a157856004019360a0600319883603011261039d576102a8612220565b851561038e576001600160a01b031695861561037f576064016104006102d96102d18388611ae2565b905085611bd6565b116103515750610347927fa795d4377323e4c2d4c346b8050a7dd504c4043be8884c81b8d9690706c8388f94928261031588610339953361224a565b60405197885260018060a01b03166020880152608060408801526080870191611b45565b908482036060860152611b66565b918033930390a380f35b8761036a8461036260449489611ae2565b919050611bd6565b634fe7bc4760e11b8252600452610400602452fd5b63d92e233d60e01b8852600488fd5b63951e19ed60e01b8852600488fd5b8780fd5b8680fd5b8480fd5b5060603660031901126101d1576103be611956565b906024356001600160401b038111610515576103de9036906004016119b1565b604493919335906001600160401b038211610511576080826004019260031990360301126105115761040e612471565b610416611d6f565b61041e612220565b6001600160a01b03831692831561050257848080809334905af1610440611c4a565b50156104f3578394833b156103a557604051636481451b60e11b8152602060048201528581806104736024820188611c92565b038183895af19081156104e85786916104d3575b50506104bb7fde7603a6ed5d07c9f43597ccfe9043d15b66d3284f0de321f5cdf56329e6e035936040519384933485611cf0565b0390a360016000805160206128698339815191525580f35b816104dd91611a90565b6103a5578438610487565b6040513d88823e3d90fd5b632b3f6d1160e21b8452600484fd5b63d92e233d60e01b8552600485fd5b8380fd5b5080fd5b50346101d15760603660031901126101d157610533611956565b61053b611987565b610543611971565b916000805160206128a9833981519152549260ff8460401c1615936001600160401b03811680159081610727575b600114908161071d575b159081610714575b506107055767ffffffffffffffff1981166001176000805160206128a983398151915255846106d8575b506001600160a01b03821690811580156106c7575b6106b8579061061861063b93926105d7612719565b6105df612719565b6105e7612719565b600160008051602061286983398151915255610601612719565b610609612719565b61061281612033565b506120cd565b50610622826120cd565b506001600160601b0360a01b6001541617600155611fad565b5060018060a01b03166001600160601b0360a01b600354161760035561065e5780f35b68ff0000000000000000196000805160206128a983398151915254166000805160206128a9833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b63d92e233d60e01b8652600486fd5b506001600160a01b038416156105c2565b68ffffffffffffffffff191668010000000000000001176000805160206128a983398151915255386105ad565b63f92ee8a960e01b8652600486fd5b90501538610583565b303b15915061057b565b869150610571565b50346101d15760203660031901126101d157610749611956565b610751611d1c565b6001600160a01b03811690811561079c5782546001600160a01b031661078d5761077a90611eeb565b5081546001600160a01b03191617815580f35b631666fe6f60e31b8352600483fd5b63d92e233d60e01b8352600483fd5b50346101d157806003193601126101d157506107f46040516107ce604082611a90565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611a6b565b0390f35b50346101d15760a03660031901126101d157610812611956565b61081a611987565b906044356064356001600160401b0381116103a55761083d9036906004016119b1565b91608435926001600160401b0384116103a1576080846004019460031990360301126103a15761086b612471565b610873611e2f565b61087b612220565b811561093a576001600160a01b03861694851561037f576001600160a01b0316956108a890839088612682565b843b156103a157604051636481451b60e11b81526020600482015287908181806108d5602482018a611c92565b0381838b5af1801561092f5761091a575b50507fde7603a6ed5d07c9f43597ccfe9043d15b66d3284f0de321f5cdf56329e6e035936104bb9160405194859485611cf0565b8161092491611a90565b6103a15786386108e6565b6040513d84823e3d90fd5b63951e19ed60e01b8752600487fd5b50346101d157806003193601126101d15760206040516000805160206127a98339815191528152f35b50346101d157806003193601126101d15760206040516104008152f35b50346101d157806003193601126101d157602090604051908152f35b50346101d15760203660031901126101d1576109c5611956565b6109cd611d1c565b6001600160a01b03811690811561079c576001546109fe91906109f8906001600160a01b031661233b565b50611fad565b50600154604080516001600160a01b0383168152602081018490527f3a7b8d6372645f474fe60c115a2ef21421306a3ed4664fa0023c461413c085799190a16001600160a01b0319161760015580f35b50346101d15760403660031901126101d1576040610a6a611987565b916004358152600080516020612829833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346101d157806003193601126101d157610ac0611dbd565b610ac8612220565b600160ff19600080516020612849833981519152541617600080516020612849833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101d157366003190160a08112610515576020136101d157610b3e611987565b610b46611971565b906064356084356001600160401b0381116103a557610b699036906004016119b1565b610b74929192612471565b610b7c611e2f565b610b84612220565b8115610f1a576001600160a01b038516948515610f0b57610ba58186612622565b15610eea5760405163095ea7b360e01b81526001600160a01b03828116600483015260248201859052861695906020816044818c8b5af1908115610e55578991610ecb575b5015610eb457610c1b91906001600160a01b03610c05611c1a565b16610ea957610c1584878461258a565b50612622565b15610e92576040516370a0823160e01b8152306004820152602081602481885afa908115610d52578791610e60575b5080610c73575b50906104bb600080516020612809833981519152939260405193849384611c30565b6003546001600160a01b03168503610dbe5760025460405163095ea7b360e01b81526001600160a01b039091166004820152602481018290526020816044818b8a5af1908115610db3578891610d84575b5015610d61576002548791906001600160a01b0316803b15610d5d5760248392604051948593849263743e0c9b60e01b845260048401525af18015610d5257610d28575b50906104bb60008051602061280983398151915293925b91929350610c51565b86610d48600080516020612809833981519152959493986104bb93611a90565b9691929350610d08565b6040513d89823e3d90fd5b8280fd5b60025463482b72c160e11b885260048690526001600160a01b0316602452604487fd5b610da6915060203d602011610dac575b610d9e8183611a90565b810190611c7a565b38610cc4565b503d610d94565b6040513d8a823e3d90fd5b8654604051636c9b2a3f60e11b8152600481018790526001600160a01b0390911690602081602481855afa908115610e55578991610e36575b5015610e225791610e1d6104bb9260008051602061280983398151915296959488612682565b610d1f565b631387a34960e01b88526004869052602488fd5b610e4f915060203d602011610dac57610d9e8183611a90565b38610df7565b6040513d8b823e3d90fd5b90506020813d602011610e8a575b81610e7b60209383611a90565b810103126103a1575138610c4a565b3d9150610e6e565b604486868663482b72c160e11b8352600452602452fd5b610c158487846124ad565b604488888863482b72c160e11b8352600452602452fd5b610ee4915060203d602011610dac57610d9e8183611a90565b38610bea565b63482b72c160e11b87526001600160a01b0385166004526024869052604487fd5b63d92e233d60e01b8752600487fd5b63951e19ed60e01b8652600486fd5b50610f33366119de565b909192610f3e612220565b3415610ffd576001600160a01b03169283156105025760608201610400610f70610f688386611ae2565b905086611bd6565b11610fec5750848080803460018060a01b03600154165af1610f90611c4a565b5015610fdd577fa795d4377323e4c2d4c346b8050a7dd504c4043be8884c81b8d9690706c8388f916103396103479260405195348752886020880152608060408801526080870191611b45565b6379cacff160e01b8552600485fd5b8561036a8561036260449487611ae2565b633b38932f60e11b8552600485fd5b5060403660031901126101d157611021611956565b602435906001600160401b038211610d5d57816004019060a060031984360301126105115761104e612220565b341561112c576001600160a01b031691821561111d576064016104006110748284611ae2565b9050116110fa5750828080803460018060a01b03600154165af1611096611c4a565b50156110eb577fc6f891b65320c682b217616a62b51f218fee95d5f0ba83e758ef9ab4ee8e975c610347604051923484528560208501526080604085015285608085015260a0606085015260a0840190611b66565b6379cacff160e01b8352600483fd5b6111078491604493611ae2565b634fe7bc4760e11b835260045250610400602452fd5b63d92e233d60e01b8452600484fd5b633b38932f60e11b8452600484fd5b50346101d157806003193601126101d15760206040517f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b98152f35b50346101d157806003193601126101d157602060ff60008051602061284983398151915254166040519015158152f35b50346101d157806003193601126101d1576001546040516001600160a01b039091168152602090f35b50346101d157806003193601126101d1576002546040516001600160a01b039091168152602090f35b50346101d157806003193601126101d1577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036112515760206040516000805160206127e98339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101d157611275611956565b602435906001600160401b038211610d5d5736602383011215610d5d57816004013590836112a283611ac7565b936112b06040519586611a90565b83855260208501933660248284010111610d5d57806024602093018637850101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630811490811561145e575b5061144f57611313611d1c565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa86918161141b575b5061135657634c9c8ce360e01b86526004859052602486fd5b93846000805160206127e98339815191528796036114095750823b156113f7576000805160206127e983398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a28051156113dc576102329382915190845af46113d6611c4a565b91612747565b50505050346113e85780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011611447575b8161143760209383611a90565b810103126103a15751903861133d565b3d915061142a565b63703e46dd60e11b8452600484fd5b6000805160206127e9833981519152546001600160a01b03161415905038611306565b50346101d157806003193601126101d15761149a611dbd565b6000805160206128498339815191525460ff8116156114f45760ff1916600080516020612849833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50366003190160608112610515576020136101d157611520611987565b6044356001600160401b038111610d5d5761153f9036906004016119b1565b61154a929192612471565b611552611d6f565b61155a612220565b6001600160a01b038216918215610502576107f494507fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f919081856001600160a01b036115a5611c1a565b166115ee576115b39261258a565b935b6115c56040519283923484611c30565b0390a2600160008051602061286983398151915255604051918291602083526020830190611a6b565b6115f7926124ad565b936115b5565b50346101d15760403660031901126101d157611617611987565b336001600160a01b0382160361163357610232906004356123d1565b63334bd91960e11b8252600482fd5b50346101d15760403660031901126101d157610232600435611662611987565b9061166f61022882611bf9565b612189565b50346101d15760203660031901126101d1576020611693600435611bf9565b604051908152f35b50346101d157806003193601126101d1576003546040516001600160a01b039091168152602090f35b50346101d1576116d3366119de565b9190926116de612220565b6020830135801515810361179b5761178c576001600160a01b0316928315610502576117186117106060850185611ae2565b905082611bd6565b61040081116117745750907fd34634f30f94a646fdf4ce7078f38fc5fa0d3f0b193658facea4e3e43330d9749161176e61175f604051938493604085526040850191611b45565b82810360208401523395611b66565b0390a380f35b634fe7bc4760e11b8652600452610400602452604485fd5b630cda5ff960e11b8552600485fd5b8580fd5b50346101d15760803660031901126101d1576117b9611956565b6024356117c4611971565b91606435926001600160401b0384116103a557836004019160a0600319863603011261179b576117f2612220565b8315610f1a576001600160a01b03169384156106b8576064016104006118188285611ae2565b90501161188257507fc6f891b65320c682b217616a62b51f218fee95d5f0ba83e758ef9ab4ee8e975c918161185185610347943361224a565b60405194855260018060a01b031660208501526080604085015285608085015260a0606085015260a0840190611b66565b8561110760449285611ae2565b50346101d15760203660031901126101d1576118a9611956565b6118b1611d1c565b6001600160a01b03811690811561079c576002546001600160a01b03166118f2576118db90611eeb565b506001600160601b0360a01b600254161760025580f35b630646e00b60e11b8352600483fd5b9050346105155760203660031901126105155760043563ffffffff60e01b8116809103610d5d5760209250637965db0b60e01b8114908115611945575b5015158152f35b6301ffc9a760e01b1490503861193e565b600435906001600160a01b038216820361196c57565b600080fd5b604435906001600160a01b038216820361196c57565b602435906001600160a01b038216820361196c57565b35906001600160a01b038216820361196c57565b9181601f8401121561196c578235916001600160401b03831161196c576020838186019501011161196c57565b90606060031983011261196c576004356001600160a01b038116810361196c57916024356001600160401b03811161196c5781611a1d916004016119b1565b92909291604435906001600160401b03821161196c5760a090829003600319011261196c5760040190565b60005b838110611a5b5750506000910152565b8181015183820152602001611a4b565b90602091611a8481518092818552858086019101611a48565b601f01601f1916010190565b90601f801991011681019081106001600160401b03821117611ab157604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b038111611ab157601f01601f191660200190565b903590601e198136030182121561196c57018035906001600160401b03821161196c5760200191813603831361196c57565b9035601e198236030181121561196c5701602081359101916001600160401b03821161196c57813603831361196c57565b908060209392818452848401376000828201840152601f01601f1916010190565b906001600160a01b03611b788361199d565b168152602082013580151580910361196c5760208201526001600160a01b03611ba36040840161199d565b166040820152608080611bcd611bbc6060860186611b14565b60a0606087015260a0860191611b45565b93013591015290565b91908201809211611be357565b634e487b7160e01b600052601160045260246000fd5b60005260008051602061282983398151915260205260016040600020015490565b6004356001600160a01b038116810361196c5790565b604090611c47949281528160208201520191611b45565b90565b3d15611c75573d90611c5b82611ac7565b91611c696040519384611a90565b82523d6000602084013e565b606090565b9081602091031261196c5751801515810361196c5790565b611c479190608090611ce0906001600160a01b03611caf8261199d565b1684526001600160a01b03611cc66020830161199d565b166020850152604081013560408501526060810190611b14565b9190928160608201520191611b45565b9291611c479492611d0e928552606060208601526060850191611b45565b916040818403910152611c92565b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1615611d5557565b63e2517d3f60e01b60005233600452600060245260446000fd5b336000908152600080516020612889833981519152602052604090205460ff1615611d9657565b63e2517d3f60e01b600052336004526000805160206127a983398151915260245260446000fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1615611df657565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527f8e1abba0e730025cbab32adfc4f51c1ad3a74360c4b2cfb4780a6c5f316e0509602052604090205460ff1615611e6857565b63e2517d3f60e01b600052336004527f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b960245260446000fd5b60008181526000805160206128298339815191526020908152604080832033845290915290205460ff1615611ed35750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b03811660009081527f8e1abba0e730025cbab32adfc4f51c1ad3a74360c4b2cfb4780a6c5f316e0509602052604090205460ff16611fa7576001600160a01b031660008181527f8e1abba0e730025cbab32adfc4f51c1ad3a74360c4b2cfb4780a6c5f316e050960205260408120805460ff191660011790553391907f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b9906000805160206127c98339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020612889833981519152602052604090205460ff16611fa7576001600160a01b0316600081815260008051602061288983398151915260205260408120805460ff191660011790553391906000805160206127a9833981519152906000805160206127c98339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16611fa7576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391906000805160206127c98339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff16611fa7576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a906000805160206127c98339815191529080a4600190565b6000818152600080516020612829833981519152602090815260408083206001600160a01b038616845290915290205460ff16612219576000818152600080516020612829833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291906000805160206127c98339815191529080a4600190565b5050600090565b60ff600080516020612849833981519152541661223957565b63d93c066560e01b60005260046000fd5b60035492939290916001600160a01b03908116911681036122765763e4dd681d60e01b60005260046000fd5b600054604051636c9b2a3f60e11b8152600481018390526001600160a01b039091169490602081602481895afa90811561232f57600091612310575b50156122fb576122f99394604051936323b872dd60e01b602086015260018060a01b0316602485015260448401526064830152606482526122f4608483611a90565b6126be565b565b50631387a34960e01b60005260045260246000fd5b612329915060203d602011610dac57610d9e8183611a90565b386122b2565b6040513d6000823e3d90fd5b6001600160a01b0381166000908152600080516020612889833981519152602052604090205460ff1615611fa7576001600160a01b0316600081815260008051602061288983398151915260205260408120805460ff191690553391906000805160206127a9833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020612829833981519152602090815260408083206001600160a01b038616845290915290205460ff1615612219576000818152600080516020612829833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6002600080516020612869833981519152541461249c57600260008051602061286983398151915255565b633ee5aeb560e01b60005260046000fd5b6040516319db301560e21b815292916004356001600160a01b03811692919083900361196c57846124f581949260009683946004850152604060248501526044840191611b45565b039134906001600160a01b03165af190811561232f57600091612516575090565b903d8082843e6125268184611a90565b820191602081840312610515578051906001600160401b038211610d5d570182601f820112156105155780519161255c83611ac7565b9361256a6040519586611a90565b838552602084840101116101d1575090611c479160208085019101611a48565b9060048310156125d2575b908260009392849360405192839283378101848152039134905af16125b8611c4a565b90156125c15790565b632b3f6d1160e21b60005260046000fd5b9081356001600160e01b0319166319db301560e21b811461261157636481451b60e11b146126005790612595565b6379a2cd4b60e11b60005260046000fd5b63ed69977560e01b60005260046000fd5b60405163095ea7b360e01b81526001600160a01b039283166004820152600060248201819052909260209284926044928492165af190811561232f57600091612669575090565b611c47915060203d602011610dac57610d9e8183611a90565b60405163a9059cbb60e01b60208201526001600160a01b039290921660248301526044808301939093529181526122f9916122f4606483611a90565b906000602091828151910182855af11561232f576000513d61271057506001600160a01b0381163b155b6126ef5750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b600114156126e8565b60ff6000805160206128a98339815191525460401c161561273657565b631afcd79f60e31b60005260046000fd5b9061276d575080511561275c57805190602001fd5b63d6bda27560e01b60005260046000fd5b8151158061279f575b61277e575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b1561277656fe0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b738202dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f007bdc20c26beb8eedd348733c28a5c4c2f7f7f1183cba8898195258fcdca273bcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220e3ceedd3e1180302ea91f43717e98df4951453d3ade1c5982edc0e113031242064736f6c634300081a003360a0806040523460295730608052611bc4908161002f8239608051818181610bd40152610ca50152f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a71461107a57508063106e629014610fe2578063116191b614610fbb57806321e093b114610f92578063248a9ca314610f6b5780632f2ff15d14610f3957806336568abe14610ef45780633f4ba83a14610e725780634f1ef28614610c2957806352d1902d14610bc15780635b11259114610b985780635c975abb14610b685780636f8728ad146109a45780636fb9a7af1461081a578063743e0c9b146107b35780638456cb591461073e57806385f438c11461071557806391d14854146106bc578063950837aa146105ea578063a217fddf146105ce578063a783c78914610593578063ad3cb1cc14610519578063d547741f146104de578063e63ab1e9146104a35763f8c8765e1461013457600080fd5b346104a05760803660031901126104a05761014d6110cf565b6101556110ea565b906044356001600160a01b03811680820361049c576064356001600160a01b0381169490919085830361049857600080516020611b6f833981519152549567ffffffffffffffff60ff8860401c1615971680159081610490575b6001149081610486575b15908161047d575b5061046e57866101cf611259565b61043c575b600080516020611b6f833981519152549567ffffffffffffffff60ff8860401c1615971680159081610434575b600114908161042a575b159081610421575b506104125786610221611259565b6103e0575b6001600160a01b03169081159081156103ce575b81156103c5575b81156103bc575b506103ad57916102f49493916102ee936102606119df565b6102686119df565b6102706119df565b6001600080516020611b0f8339815191525561028a6119df565b6102926119df565b6001600160601b0360a01b8a541617895560018060a01b03166001600160601b0360a01b60015416176001556001600160601b0360a01b60025416176002556102da816115ad565b506102e483611489565b506102ee83611515565b50611647565b50610356575b6103015780f35b60ff60401b19600080516020611b6f8339815191525416600080516020611b6f833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b60ff60401b19600080516020611b6f8339815191525416600080516020611b6f833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a16102fa565b63d92e233d60e01b8852600488fd5b90501538610248565b84159150610241565b6001600160a01b03841615915061023a565b600160401b60ff60401b19600080516020611b6f833981519152541617600080516020611b6f83398151915255610226565b63f92ee8a960e01b8952600489fd5b90501538610213565b303b15915061020b565b889150610201565b600160401b60ff60401b19600080516020611b6f833981519152541617600080516020611b6f833981519152556101d4565b63f92ee8a960e01b8852600488fd5b905015386101c1565b303b1591506101b9565b8891506101af565b8680fd5b8480fd5b80fd5b50346104a057806003193601126104a05760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346104a05760403660031901126104a0576105156004356104fe6110ea565b9061051061050b82611196565b6113d8565b6118d8565b5080f35b50346104a057806003193601126104a05760408051916105398284611114565b60058352640352e302e360dc1b6020840152815192839160208352815191826020850152815b83811061057c575050828201840152601f01601f19168101030190f35b60208282018101518883018801528795500161055f565b50346104a057806003193601126104a05760206040517f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb8152f35b50346104a057806003193601126104a057602090604051908152f35b50346104a05760203660031901126104a0576106046110cf565b61060c611385565b6001600160a01b0381169081156106ad5760025461065d9190610637906001600160a01b031661179a565b5060025461064d906001600160a01b0316611830565b5061065781611489565b50611515565b50600254604080516001600160a01b0383168152602081018490527f33770ab682353c17917ad3e667f05905fc8dda00671ef1ed33bef9bc8db0323e9190a16001600160a01b0319161760025580f35b63d92e233d60e01b8352600483fd5b50346104a05760403660031901126104a05760406106d86110ea565b916004358152600080516020611acf833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346104a057806003193601126104a0576020604051600080516020611aaf8339815191528152f35b50346104a057806003193601126104a057610757611313565b61075f611422565b600160ff19600080516020611aef833981519152541617600080516020611aef833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346104a05760203660031901126104a0576107cd611422565b6001546040516323b872dd60e01b60208201523360248201523060448201526004356064808301919091528152610817916001600160a01b0316610812608483611114565b611978565b80f35b50346104a057366003190160a081126109a0576020136104a05761083c6110ea565b60443560643567ffffffffffffffff811161099c5761085f903690600401611168565b9091610869611289565b6108716112c5565b610879611422565b60015485546108969183916001600160a01b03908116911661144c565b84546001546001600160a01b03918216958792909116863b1561099857604051633ddf4d7d60e11b81529183918391906001600160a01b036108d66110cf565b16600484015260248301526001600160a01b0316604482018190526064820186905260a060848301529781838161091160a482018b8d6111b7565b03925af1801561098d57610978575b50506109607f23b9573b29ff81f01c7aa1968188e1cb7d5858b08582e111fdaf386d9ef9bd8d9360405193849384526040602085015260408401916111b7565b0390a26001600080516020611b0f8339815191525580f35b8161098291611114565b61049c578438610920565b6040513d84823e3d90fd5b8280fd5b8380fd5b5080fd5b50346104a05760a03660031901126104a0576109be6110cf565b906024359060443567ffffffffffffffff81116109a0576109e3903690600401611168565b909260843567ffffffffffffffff811161099c5760808160040191600319903603011261099c57610a12611289565b610a1a6112c5565b610a22611422565b6001548454610a3f9184916001600160a01b03908116911661144c565b83546001546001600160a01b03918216979116873b15610b645794610aa78798610ab99383809a996040519687958694859363aa0c0fc160e01b8552600485015260018060a01b03169c8d60248501528b604485015260a060648501528c60a48501916111b7565b828103600319016084840152896111d8565b03925af18015610b5957610b1b575b5061096090610b0d7f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff095969760405195869586526060602087015260608601916111b7565b9083820360408501526111d8565b90610b0d86610b4f7f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff0979861096095611114565b9695505090610ac8565b6040513d88823e3d90fd5b8580fd5b50346104a057806003193601126104a057602060ff600080516020611aef83398151915254166040519015158152f35b50346104a057806003193601126104a0576002546040516001600160a01b039091168152602090f35b50346104a057806003193601126104a0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610c1a576020604051600080516020611a8f8339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126104a057610c3e6110cf565b6024359067ffffffffffffffff821161099857366023830112156109985781600401359083610c6c8361114c565b93610c7a6040519586611114565b8385526020850193366024828401011161099857806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610e4f575b50610e4057610cdd611385565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181610e0c575b50610d2057634c9c8ce360e01b86526004859052602486fd5b9384600080516020611a8f833981519152879603610dfa5750823b15610de857600080516020611a8f83398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115610dcd576105159382915190845af43d15610dc5573d91610da98361114c565b92610db76040519485611114565b83523d85602085013e611a0d565b606091611a0d565b5050505034610dd95780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011610e38575b81610e2860209383611114565b8101031261049857519038610d07565b3d9150610e1b565b63703e46dd60e11b8452600484fd5b600080516020611a8f833981519152546001600160a01b03161415905038610cd0565b50346104a057806003193601126104a057610e8b611313565b600080516020611aef8339815191525460ff811615610ee55760ff1916600080516020611aef833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346104a05760403660031901126104a057610f0e6110ea565b336001600160a01b03821603610f2a57610515906004356118d8565b63334bd91960e11b8252600482fd5b50346104a05760403660031901126104a057610515600435610f596110ea565b90610f6661050b82611196565b611703565b50346104a05760203660031901126104a0576020610f8a600435611196565b604051908152f35b50346104a057806003193601126104a0576001546040516001600160a01b039091168152602090f35b50346104a057806003193601126104a057546040516001600160a01b039091168152602090f35b50346104a05760603660031901126104a057610ffc6110cf565b7f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d560206024359261102b611289565b6110336112c5565b61103b611422565b60015461105490859083906001600160a01b031661144c565b6040519384526001600160a01b031692a26001600080516020611b0f8339815191525580f35b9050346109a05760203660031901126109a05760043563ffffffff60e01b81168091036109985760209250637965db0b60e01b81149081156110be575b5015158152f35b6301ffc9a760e01b149050386110b7565b600435906001600160a01b03821682036110e557565b600080fd5b602435906001600160a01b03821682036110e557565b35906001600160a01b03821682036110e557565b90601f8019910116810190811067ffffffffffffffff82111761113657604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161113657601f01601f191660200190565b9181601f840112156110e55782359167ffffffffffffffff83116110e557602083818601950101116110e557565b600052600080516020611acf83398151915260205260016040600020015490565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160a01b036111e982611100565b1682526001600160a01b0361120060208301611100565b166020830152604081013560408301526060810135601e19823603018112156110e557016020813591019067ffffffffffffffff81116110e55780360382136110e55760808381606061125696015201916111b7565b90565b600167ffffffffffffffff19600080516020611b6f833981519152541617600080516020611b6f83398151915255565b6002600080516020611b0f83398151915254146112b4576002600080516020611b0f83398151915255565b633ee5aeb560e01b60005260046000fd5b336000908152600080516020611b2f833981519152602052604090205460ff16156112ec57565b63e2517d3f60e01b60005233600452600080516020611aaf83398151915260245260446000fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561134c57565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16156113be57565b63e2517d3f60e01b60005233600452600060245260446000fd5b6000818152600080516020611acf8339815191526020908152604080832033845290915290205460ff161561140a5750565b63e2517d3f60e01b6000523360045260245260446000fd5b60ff600080516020611aef833981519152541661143b57565b63d93c066560e01b60005260046000fd5b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815261148791610812606483611114565b565b6001600160a01b0381166000908152600080516020611b2f833981519152602052604090205460ff1661150f576001600160a01b03166000818152600080516020611b2f83398151915260205260408120805460ff19166001179055339190600080516020611aaf83398151915290600080516020611a6f8339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020611b4f833981519152602052604090205460ff1661150f576001600160a01b03166000818152600080516020611b4f83398151915260205260408120805460ff191660011790553391907f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb90600080516020611a6f8339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1661150f576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff19166001179055339190600080516020611a6f8339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1661150f576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a90600080516020611a6f8339815191529080a4600190565b6000818152600080516020611acf833981519152602090815260408083206001600160a01b038616845290915290205460ff16611793576000818152600080516020611acf833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff1916600117905533929190600080516020611a6f8339815191529080a4600190565b5050600090565b6001600160a01b0381166000908152600080516020611b2f833981519152602052604090205460ff161561150f576001600160a01b03166000818152600080516020611b2f83398151915260205260408120805460ff19169055339190600080516020611aaf833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381166000908152600080516020611b4f833981519152602052604090205460ff161561150f576001600160a01b03166000818152600080516020611b4f83398151915260205260408120805460ff191690553391907f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020611acf833981519152602090815260408083206001600160a01b038616845290915290205460ff1615611793576000818152600080516020611acf833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b906000602091828151910182855af1156119d3576000513d6119ca57506001600160a01b0381163b155b6119a95750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b600114156119a2565b6040513d6000823e3d90fd5b60ff600080516020611b6f8339815191525460401c16156119fc57565b631afcd79f60e31b60005260046000fd5b90611a335750805115611a2257805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611a65575b611a44575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15611a3c56fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00395f4e35a18c2b5e556b3b2ff855307e76c0b3cc1ca71e19a70e83037e08e7b37bdc20c26beb8eedd348733c28a5c4c2f7f7f1183cba8898195258fcdca273bcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212202bdad00032481621f5688942b2f2636896811e160d422fd2afd2200c14598d1164736f6c634300081a003360a0806040523460295730608052611ce5908161002f8239608051818181610cb70152610d880152f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a71461115157508063106e6290146110c5578063116191b61461109e57806321e093b114611075578063248a9ca31461104e5780632f2ff15d1461101c57806336568abe14610fd75780633f4ba83a14610f555780634f1ef28614610d0c57806352d1902d14610ca45780635b11259114610c7b5780635c975abb14610c4b5780636f8728ad14610a8a5780636f8b44b0146109d85780636fb9a7af1461085c578063743e0c9b146107db5780638456cb591461076657806385f438c11461073d57806391d14854146106e4578063950837aa14610612578063a217fddf146105f6578063a783c789146105cd578063ad3cb1cc14610553578063d547741f14610518578063d5abeb01146104fa578063e63ab1e9146104bf5763f8c8765e1461014a57600080fd5b346104bc5760803660031901126104bc576101636111a6565b61016b6111c1565b906044356001600160a01b0381168082036104b8576064356001600160a01b038116949091908583036104b457600080516020611c90833981519152549567ffffffffffffffff60ff8860401c16159716801590816104ac575b60011490816104a2575b159081610499575b5061048a57866101e5611330565b610458575b600080516020611c90833981519152549567ffffffffffffffff60ff8860401c1615971680159081610450575b6001149081610446575b15908161043d575b5061042e5786610237611330565b6103fc575b6001600160a01b03169081159081156103ea575b81156103e1575b81156103d8575b506103c9579161030a94939161030493610276611ae0565b61027e611ae0565b610286611ae0565b6001600080516020611c30833981519152556102a0611ae0565b6102a8611ae0565b6001600160601b0360a01b8a541617895560018060a01b03166001600160601b0360a01b60015416176001556001600160601b0360a01b60025416176002556102f081611727565b506102fa83611615565b50610304836116a1565b506117c1565b50610372575b60001960035561031d5780f35b60ff60401b19600080516020611c908339815191525416600080516020611c90833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b60ff60401b19600080516020611c908339815191525416600080516020611c90833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1610310565b63d92e233d60e01b8852600488fd5b9050153861025e565b84159150610257565b6001600160a01b038416159150610250565b600160401b60ff60401b19600080516020611c90833981519152541617600080516020611c908339815191525561023c565b63f92ee8a960e01b8952600489fd5b90501538610229565b303b159150610221565b889150610217565b600160401b60ff60401b19600080516020611c90833981519152541617600080516020611c90833981519152556101ea565b63f92ee8a960e01b8852600488fd5b905015386101d7565b303b1591506101cf565b8891506101c5565b8680fd5b8480fd5b80fd5b50346104bc57806003193601126104bc5760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346104bc57806003193601126104bc576020600354604051908152f35b50346104bc5760403660031901126104bc5761054f6004356105386111c1565b9061054a6105458261126d565b6114af565b611a40565b5080f35b50346104bc57806003193601126104bc57604080519161057382846111eb565b60058352640352e302e360dc1b6020840152815192839160208352815191826020850152815b8381106105b6575050828201840152601f01601f19168101030190f35b602082820181015188830188015287955001610599565b50346104bc57806003193601126104bc576020604051600080516020611b708339815191528152f35b50346104bc57806003193601126104bc57602090604051908152f35b50346104bc5760203660031901126104bc5761062c6111a6565b61063461145c565b6001600160a01b0381169081156106d557600254610685919061065f906001600160a01b0316611914565b50600254610675906001600160a01b03166119aa565b5061067f81611615565b506116a1565b50600254604080516001600160a01b0383168152602081018490527f33770ab682353c17917ad3e667f05905fc8dda00671ef1ed33bef9bc8db0323e9190a16001600160a01b0319161760025580f35b63d92e233d60e01b8352600483fd5b50346104bc5760403660031901126104bc5760406107006111c1565b916004358152600080516020611bf0833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346104bc57806003193601126104bc576020604051600080516020611bd08339815191528152f35b50346104bc57806003193601126104bc5761077f6113ea565b6107876114f9565b600160ff19600080516020611c10833981519152541617600080516020611c10833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346104bc5760203660031901126104bc576107f56114f9565b60015481906001600160a01b0316803b156108595781809160446040518094819363079cc67960e41b835233600484015260043560248401525af1801561084e5761083d5750f35b81610847916111eb565b6104bc5780f35b6040513d84823e3d90fd5b50fd5b50346104bc57366003190160a081126109d4576020136104bc5761087e6111c1565b60443560643567ffffffffffffffff81116109d0576108a190369060040161123f565b90916108ab611360565b6108b361139c565b6108bb6114f9565b84546108d5906084359083906001600160a01b0316611523565b84546001546001600160a01b03918216958792909116863b156109cc57604051633ddf4d7d60e11b81529183918391906001600160a01b036109156111a6565b16600484015260248301526001600160a01b0316604482018190526064820186905260a060848301529781838161095060a482018b8d61128e565b03925af1801561084e576109b7575b505061099f7f23b9573b29ff81f01c7aa1968188e1cb7d5858b08582e111fdaf386d9ef9bd8d93604051938493845260406020850152604084019161128e565b0390a26001600080516020611c308339815191525580f35b816109c1916111eb565b6104b857843861095f565b8280fd5b8380fd5b5080fd5b50346104bc5760203660031901126104bc57600080516020611b708339815191528152600080516020611bf08339815191526020908152604080832033600090815292529020546004359060ff1615610a655760207f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c91610a576114f9565b80600355604051908152a180f35b63e2517d3f60e01b825233600452600080516020611b70833981519152602452604482fd5b50346104bc5760a03660031901126104bc57610aa46111a6565b906024359060443567ffffffffffffffff81116109d457610ac990369060040161123f565b909260843567ffffffffffffffff81116109d0576080816004019160031990360301126109d057610af8611360565b610b0061139c565b610b086114f9565b8354610b22906064359084906001600160a01b0316611523565b83546001546001600160a01b03918216979116873b15610c475794610b8a8798610b9c9383809a996040519687958694859363aa0c0fc160e01b8552600485015260018060a01b03169c8d60248501528b604485015260a060648501528c60a485019161128e565b828103600319016084840152896112af565b03925af18015610c3c57610bfe575b5061099f90610bf07f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff0959697604051958695865260606020870152606086019161128e565b9083820360408501526112af565b90610bf086610c327f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff0979861099f956111eb565b9695505090610bab565b6040513d88823e3d90fd5b8580fd5b50346104bc57806003193601126104bc57602060ff600080516020611c1083398151915254166040519015158152f35b50346104bc57806003193601126104bc576002546040516001600160a01b039091168152602090f35b50346104bc57806003193601126104bc577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610cfd576020604051600080516020611bb08339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126104bc57610d216111a6565b6024359067ffffffffffffffff82116109cc57366023830112156109cc5781600401359083610d4f83611223565b93610d5d60405195866111eb565b838552602085019336602482840101116109cc57806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610f32575b50610f2357610dc061145c565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181610eef575b50610e0357634c9c8ce360e01b86526004859052602486fd5b9384600080516020611bb0833981519152879603610edd5750823b15610ecb57600080516020611bb083398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115610eb05761054f9382915190845af43d15610ea8573d91610e8c83611223565b92610e9a60405194856111eb565b83523d85602085013e611b0e565b606091611b0e565b5050505034610ebc5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011610f1b575b81610f0b602093836111eb565b810103126104b457519038610dea565b3d9150610efe565b63703e46dd60e11b8452600484fd5b600080516020611bb0833981519152546001600160a01b03161415905038610db3565b50346104bc57806003193601126104bc57610f6e6113ea565b600080516020611c108339815191525460ff811615610fc85760ff1916600080516020611c10833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346104bc5760403660031901126104bc57610ff16111c1565b336001600160a01b0382160361100d5761054f90600435611a40565b63334bd91960e11b8252600482fd5b50346104bc5760403660031901126104bc5761054f60043561103c6111c1565b906110496105458261126d565b61187d565b50346104bc5760203660031901126104bc57602061106d60043561126d565b604051908152f35b50346104bc57806003193601126104bc576001546040516001600160a01b039091168152602090f35b50346104bc57806003193601126104bc57546040516001600160a01b039091168152602090f35b50346104bc5760603660031901126104bc576110df6111a6565b7f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d560206024359261110e611360565b61111661139c565b61111e6114f9565b61112b6044358583611523565b6040519384526001600160a01b031692a26001600080516020611c308339815191525580f35b9050346109d45760203660031901126109d45760043563ffffffff60e01b81168091036109cc5760209250637965db0b60e01b8114908115611195575b5015158152f35b6301ffc9a760e01b1490503861118e565b600435906001600160a01b03821682036111bc57565b600080fd5b602435906001600160a01b03821682036111bc57565b35906001600160a01b03821682036111bc57565b90601f8019910116810190811067ffffffffffffffff82111761120d57604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161120d57601f01601f191660200190565b9181601f840112156111bc5782359167ffffffffffffffff83116111bc57602083818601950101116111bc57565b600052600080516020611bf083398151915260205260016040600020015490565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160a01b036112c0826111d7565b1682526001600160a01b036112d7602083016111d7565b166020830152604081013560408301526060810135601e19823603018112156111bc57016020813591019067ffffffffffffffff81116111bc5780360382136111bc5760808381606061132d960152019161128e565b90565b600167ffffffffffffffff19600080516020611c90833981519152541617600080516020611c9083398151915255565b6002600080516020611c30833981519152541461138b576002600080516020611c3083398151915255565b633ee5aeb560e01b60005260046000fd5b336000908152600080516020611c50833981519152602052604090205460ff16156113c357565b63e2517d3f60e01b60005233600452600080516020611bd083398151915260245260446000fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561142357565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff161561149557565b63e2517d3f60e01b60005233600452600060245260446000fd5b6000818152600080516020611bf08339815191526020908152604080832033845290915290205460ff16156114e15750565b63e2517d3f60e01b6000523360045260245260446000fd5b60ff600080516020611c10833981519152541661151257565b63d93c066560e01b60005260046000fd5b6001546040516318160ddd60e01b81526000949392916001600160a01b031690602081600481855afa908115610c3c5786916115e3575b5083018084116115cf57600354106115c057803b156104b857849291836064926040519687958694630f22c5f760e11b865260018060a01b03166004860152602485015260448401525af1801561084e576115b3575050565b816115bd916111eb565b50565b63c30436e960e01b8552600485fd5b634e487b7160e01b86526011600452602486fd5b90506020813d60201161160d575b816115fe602093836111eb565b81010312610c4757513861155a565b3d91506115f1565b6001600160a01b0381166000908152600080516020611c50833981519152602052604090205460ff1661169b576001600160a01b03166000818152600080516020611c5083398151915260205260408120805460ff19166001179055339190600080516020611bd083398151915290600080516020611b908339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020611c70833981519152602052604090205460ff1661169b576001600160a01b03166000818152600080516020611c7083398151915260205260408120805460ff19166001179055339190600080516020611b7083398151915290600080516020611b908339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1661169b576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff19166001179055339190600080516020611b908339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1661169b576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a90600080516020611b908339815191529080a4600190565b6000818152600080516020611bf0833981519152602090815260408083206001600160a01b038616845290915290205460ff1661190d576000818152600080516020611bf0833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff1916600117905533929190600080516020611b908339815191529080a4600190565b5050600090565b6001600160a01b0381166000908152600080516020611c50833981519152602052604090205460ff161561169b576001600160a01b03166000818152600080516020611c5083398151915260205260408120805460ff19169055339190600080516020611bd0833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381166000908152600080516020611c70833981519152602052604090205460ff161561169b576001600160a01b03166000818152600080516020611c7083398151915260205260408120805460ff19169055339190600080516020611b70833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020611bf0833981519152602090815260408083206001600160a01b038616845290915290205460ff161561190d576000818152600080516020611bf0833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b60ff600080516020611c908339815191525460401c1615611afd57565b631afcd79f60e31b60005260046000fd5b90611b345750805115611b2357805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611b66575b611b45575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15611b3d56fe0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00395f4e35a18c2b5e556b3b2ff855307e76c0b3cc1ca71e19a70e83037e08e7b37bdc20c26beb8eedd348733c28a5c4c2f7f7f1183cba8898195258fcdca273bcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212203f211d602b36c7fdf0f3b0fe8233e5a85a6bfca3cf4c804bfdd1d764320a84b564736f6c634300081a003360e0346100d757601f610bd638819003918201601f19168301916001600160401b038311848410176100dc578084926060946040528339810103126100d757610047816100f2565b906040610056602083016100f2565b9101519160805260a05260c052604051610acf90816101078239608051818181608a0152610196015260a05181818160dd0152818161070a015281816107e5015281816108990152818161094901526109f9015260c051818181604f0152818161076701528181610846015281816108f5015281816109ac0152610a530152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036100d75756fe6080604052600436106101815760003560e01c8063589dd5da1461007757806385e1f4d0146100375763ced52b4003610181576100c7565b346100725760003660031901126100725760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b600080fd5b34610072576000366003190112610072577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b600091031261007257565b34610072576000366003190112610072576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761013e57604052565b61010c565b90601f8019910116810190811067ffffffffffffffff82111761013e57604052565b67ffffffffffffffff811161013e57601f01601f191660200190565b600080604051368282378036810183815203907f00000000000000000000000000000000000000000000000000000000000000005af43d1561023c573d906101c882610165565b916101d66040519384610143565b82523d6000602084013e5b156101f7576101ef366106c3565b602081519101f35b60405162461bcd60e51b815260206004820152601b60248201527f476174657761792064656c656761746563616c6c206661696c656400000000006044820152606490fd5b6060906101e1565b906004116100725790600490565b909291928360041161007257831161007257600401916003190190565b356001600160e01b031981169291906004821061028a575050565b6001600160e01b031960049290920360031b82901b16169150565b6001600160a01b0381160361007257565b81601f82011215610072578035906102cd82610165565b926102db6040519485610143565b8284526020838301011161007257816000926020809301838601378301015290565b3590610308826102a5565b565b91909160a081840312610072576040519061032482610122565b81938135610331816102a5565b835260208201358015158103610072576020840152610352604083016102fd565b604084015260608201359167ffffffffffffffff83116100725761037c60809392849383016102b6565b60608501520135910152565b9160608383031261007257823561039e816102a5565b92602081013567ffffffffffffffff811161007257836103bf9183016102b6565b92604082013567ffffffffffffffff8111610072576103de920161030a565b90565b919082519283825260005b84811061040d575050826000602080949584010152601f8019910116010190565b806020809284010151828286010152016103ec565b9060018060a01b03825116815260208201511515602082015260018060a01b036040830151166040820152608080610469606085015160a0606086015260a08501906103e1565b93015191015290565b9081526001600160a01b0391821660208201529116604082015260a0606082018190526103de9391926104a7918401906103e1565b916080818403910152610422565b6040513d6000823e3d90fd5b91909160a0818403126100725780356104d9816102a5565b9260208201359260408301356104ee816102a5565b92606081013567ffffffffffffffff8111610072578361050f9183016102b6565b92608082013567ffffffffffffffff8111610072576103de920161030a565b9081526001600160a01b0391821660208201529116604082015260608101919091526000608082015260e060a082018190526103de939192610572918401906103e1565b9160c0818403910152610422565b9081526001600160a01b039182166020820152918116604083015260608201929092529116608082015260e060a082018190526103de939192610572918401906103e1565b906080828203126100725781356105db816102a5565b9260208301359260408101356105f0816102a5565b92606082013567ffffffffffffffff8111610072576103de920161030a565b9081526001600160a01b0391821660208201529116604082015260608101919091526000608082015260c060a082018190526103de92910190610422565b9081526001600160a01b039182166020820152918116604083015260608201929092529116608082015260c060a082018190526103de92910190610422565b9190916040818403126100725780356106a4816102a5565b92602082013567ffffffffffffffff8111610072576103de920161030a565b6106e16106d1826000610244565b6001600160e01b0319929161026f565b16631c9ab25f60e21b81036107ba575061070081610708926000610252565b81019061068c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169190823b156100725760405163ced6e79360e01b815292600092849283918591839161078f919034906001600160a01b0316337f00000000000000000000000000000000000000000000000000000000000000006004870161060f565b03925af180156107b5576107a05750565b806107af600061030893610143565b806100bc565b6104b5565b630102614b60e41b810361086e57506107d8816107e0926000610252565b8101906105c5565b9290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b156100725760405163ced6e79360e01b815294600094869485938793859361078f9391926001600160a01b0391821692909116337f00000000000000000000000000000000000000000000000000000000000000006004880161064d565b63744b9b8b60e01b810361091d575061088c81610894926000610252565b810190610388565b9091907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156100725760405163ad82a62760e01b815293600093859384928692849261078f92909134906001600160a01b0316337f00000000000000000000000000000000000000000000000000000000000000006004880161052e565b631a13c76f60e31b81036109d4575061093b81610943926000610252565b8101906104c1565b909391927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b156100725760405163ad82a62760e01b815295600095879586948894869461078f94919390926001600160a01b0392831692909116337f000000000000000000000000000000000000000000000000000000000000000060048901610580565b6306fb33ad60e21b146109e5575b50565b61088c816109f4926000610252565b9091907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b15610072576040516375e7f8e360e11b8152936000938593849286928492610a7b9290916001600160a01b0316337f000000000000000000000000000000000000000000000000000000000000000060048701610472565b03925af180156107b557156109e257806107af60006103089361014356fea2646970667358221220a71cbde33d0601ceacd47bd11f54cc311e513e7ffbb3ec6ec289e9912d3be94b64736f6c634300081a0033a2646970667358221220928d1f0cf196771916c55c50b6eab6883a793637fb05e7baf38f61f26998f5b164736f6c634300081a0033"; - -type EVMSetupConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: EVMSetupConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class EVMSetup__factory extends ContractFactory { - constructor(...args: EVMSetupConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - _deployer: AddressLike, - _tss: AddressLike, - _wzeta: AddressLike, - _systemContract: AddressLike, - _nodeLogicMock: AddressLike, - _uniswapV2Router: AddressLike, - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction( - _deployer, - _tss, - _wzeta, - _systemContract, - _nodeLogicMock, - _uniswapV2Router, - overrides || {} - ); - } - override deploy( - _deployer: AddressLike, - _tss: AddressLike, - _wzeta: AddressLike, - _systemContract: AddressLike, - _nodeLogicMock: AddressLike, - _uniswapV2Router: AddressLike, - overrides?: NonPayableOverrides & { from?: string } - ) { - return super.deploy( - _deployer, - _tss, - _wzeta, - _systemContract, - _nodeLogicMock, - _uniswapV2Router, - overrides || {} - ) as Promise< - EVMSetup & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): EVMSetup__factory { - return super.connect(runner) as EVMSetup__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): EVMSetupInterface { - return new Interface(_abi) as EVMSetupInterface; - } - static connect(address: string, runner?: ContractRunner | null): EVMSetup { - return new Contract(address, _abi, runner) as unknown as EVMSetup; - } -} diff --git a/typechain-types/factories/contracts/testing/EVMSetup.t.sol/ITestERC20__factory.ts b/typechain-types/factories/contracts/testing/EVMSetup.t.sol/ITestERC20__factory.ts deleted file mode 100644 index 6263b2c5..00000000 --- a/typechain-types/factories/contracts/testing/EVMSetup.t.sol/ITestERC20__factory.ts +++ /dev/null @@ -1,40 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - ITestERC20, - ITestERC20Interface, -} from "../../../../contracts/testing/EVMSetup.t.sol/ITestERC20"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "mint", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class ITestERC20__factory { - static readonly abi = _abi; - static createInterface(): ITestERC20Interface { - return new Interface(_abi) as ITestERC20Interface; - } - static connect(address: string, runner?: ContractRunner | null): ITestERC20 { - return new Contract(address, _abi, runner) as unknown as ITestERC20; - } -} diff --git a/typechain-types/factories/contracts/testing/EVMSetup.t.sol/IZetaNonEth__factory.ts b/typechain-types/factories/contracts/testing/EVMSetup.t.sol/IZetaNonEth__factory.ts deleted file mode 100644 index 7d3f4969..00000000 --- a/typechain-types/factories/contracts/testing/EVMSetup.t.sol/IZetaNonEth__factory.ts +++ /dev/null @@ -1,40 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IZetaNonEth, - IZetaNonEthInterface, -} from "../../../../contracts/testing/EVMSetup.t.sol/IZetaNonEth"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "tssAddress_", - type: "address", - }, - { - internalType: "address", - name: "connectorAddress_", - type: "address", - }, - ], - name: "updateTssAndConnectorAddresses", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class IZetaNonEth__factory { - static readonly abi = _abi; - static createInterface(): IZetaNonEthInterface { - return new Interface(_abi) as IZetaNonEthInterface; - } - static connect(address: string, runner?: ContractRunner | null): IZetaNonEth { - return new Contract(address, _abi, runner) as unknown as IZetaNonEth; - } -} diff --git a/typechain-types/factories/contracts/testing/EVMSetup.t.sol/index.ts b/typechain-types/factories/contracts/testing/EVMSetup.t.sol/index.ts deleted file mode 100644 index c430174b..00000000 --- a/typechain-types/factories/contracts/testing/EVMSetup.t.sol/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { EVMSetup__factory } from "./EVMSetup__factory"; -export { ITestERC20__factory } from "./ITestERC20__factory"; -export { IZetaNonEth__factory } from "./IZetaNonEth__factory"; diff --git a/typechain-types/factories/contracts/testing/FoundrySetup.t.sol/FoundrySetup__factory.ts b/typechain-types/factories/contracts/testing/FoundrySetup.t.sol/FoundrySetup__factory.ts deleted file mode 100644 index 0adef753..00000000 --- a/typechain-types/factories/contracts/testing/FoundrySetup.t.sol/FoundrySetup__factory.ts +++ /dev/null @@ -1,944 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; -import type { NonPayableOverrides } from "../../../../common"; -import type { - FoundrySetup, - FoundrySetupInterface, -} from "../../../../contracts/testing/FoundrySetup.t.sol/FoundrySetup"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "", - type: "string", - }, - ], - name: "log", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "", - type: "address", - }, - ], - name: "log_address", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256[]", - name: "val", - type: "uint256[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "int256[]", - name: "val", - type: "int256[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address[]", - name: "val", - type: "address[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "log_bytes", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - name: "log_bytes32", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "int256", - name: "", - type: "int256", - }, - ], - name: "log_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "address", - name: "val", - type: "address", - }, - ], - name: "log_named_address", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256[]", - name: "val", - type: "uint256[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256[]", - name: "val", - type: "int256[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "address[]", - name: "val", - type: "address[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "bytes", - name: "val", - type: "bytes", - }, - ], - name: "log_named_bytes", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "bytes32", - name: "val", - type: "bytes32", - }, - ], - name: "log_named_bytes32", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256", - name: "val", - type: "int256", - }, - { - indexed: false, - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "log_named_decimal_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "val", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "log_named_decimal_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256", - name: "val", - type: "int256", - }, - ], - name: "log_named_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "string", - name: "val", - type: "string", - }, - ], - name: "log_named_string", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "val", - type: "uint256", - }, - ], - name: "log_named_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "", - type: "string", - }, - ], - name: "log_string", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "log_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "logs", - type: "event", - }, - { - inputs: [], - name: "FUNGIBLE_MODULE_ADDRESS", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "IS_TEST", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "bnb_bnb", - outputs: [ - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "uint256", - name: "chainId", - type: "uint256", - }, - { - internalType: "bool", - name: "isGasToken", - type: "bool", - }, - { - internalType: "uint8", - name: "decimals", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "chainIdBNB", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "chainIdETH", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "chainIdZeta", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "deployer", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "eth_eth", - outputs: [ - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "uint256", - name: "chainId", - type: "uint256", - }, - { - internalType: "bool", - name: "isGasToken", - type: "bool", - }, - { - internalType: "uint8", - name: "decimals", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "evmSetup", - outputs: [ - { - internalType: "contract EVMSetup", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeArtifacts", - outputs: [ - { - internalType: "string[]", - name: "excludedArtifacts_", - type: "string[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeContracts", - outputs: [ - { - internalType: "address[]", - name: "excludedContracts_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeSelectors", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzSelector[]", - name: "excludedSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeSenders", - outputs: [ - { - internalType: "address[]", - name: "excludedSenders_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "failed", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "nodeLogicMock", - outputs: [ - { - internalType: "contract NodeLogicMock", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "setUp", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "targetArtifactSelectors", - outputs: [ - { - components: [ - { - internalType: "string", - name: "artifact", - type: "string", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzArtifactSelector[]", - name: "targetedArtifactSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetArtifacts", - outputs: [ - { - internalType: "string[]", - name: "targetedArtifacts_", - type: "string[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetContracts", - outputs: [ - { - internalType: "address[]", - name: "targetedContracts_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetInterfaces", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "string[]", - name: "artifacts", - type: "string[]", - }, - ], - internalType: "struct StdInvariant.FuzzInterface[]", - name: "targetedInterfaces_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetSelectors", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzSelector[]", - name: "targetedSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetSenders", - outputs: [ - { - internalType: "address[]", - name: "targetedSenders_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "tokenSetup", - outputs: [ - { - internalType: "contract TokenSetup", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "tss", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "usdc_bnb", - outputs: [ - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "uint256", - name: "chainId", - type: "uint256", - }, - { - internalType: "bool", - name: "isGasToken", - type: "bool", - }, - { - internalType: "uint8", - name: "decimals", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "usdc_eth", - outputs: [ - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "uint256", - name: "chainId", - type: "uint256", - }, - { - internalType: "bool", - name: "isGasToken", - type: "bool", - }, - { - internalType: "uint8", - name: "decimals", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "zetaSetup", - outputs: [ - { - internalType: "contract ZetaSetup", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -const _bytecode = - "0x60808060405234607d57600c805460ff19166001179055601f80546001600160a81b031916610101179055602080546001600160a01b031990811673735b14bb79463307aacbed86daf3322b1e6226ab17909155602180549091166002179055611b5860225560056023556061602455620254219081620000838239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c9081630a9254e41461114b575080631ed7831c146110cd5780632ade388014610f1657806336e543ae14610eed5780633ce4a5bc14610ec65780633e5e3c2314610e485780633f7286f414610dca5780633fe46ed114610da157806349f8cb0914610be35780634dff22af14610bc557806366141ce214610b9c57806366d9a9a014610a7b5780636a26fefe14610a5d5780636e6dbb5114610a3457806374c2ad231461087657806385226c81146107ec578063916a17c614610744578063b0464fdc1461069c578063b1c388b81461067e578063b50f3138146104c0578063b5508aa914610436578063ba414fa614610411578063bc03090d146103e8578063d5f39488146103bb578063e20c9f7114610331578063ebb2b7e41461016f5763fa7626d41461014a57600080fd5b3461016c578060031936011261016c57602060ff601f54166040519015158152f35b80fd5b503461016c578060031936011261016c5760355460365460405160375490936001600160a01b03928316939092169084836101a9836133e7565b808352926001811690811561031257506001146102b4575b6101cd9250038561346d565b6040519180603854906101df826133e7565b808652916001811690811561028d575060011461022c575b50509061020a836102289493038361346d565b603954603a549260405196879660ff808760081c1696169488613532565b0390f35b603881527f38395c5dceade9603479b177b68959049485df8aa97b39f3533039af5f45619994939250905b808210610271575091925090820160200161020a836101f7565b9192936001816020925483858901015201910190939291610257565b60ff191660208088019190915292151560051b8601909201925061020a91508490506101f7565b50603784529083907f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae5b8183106102f65750509060206101cd928201016101c1565b6020919350806001915483858b010152019101909186926102de565b602092506101cd94915060ff191682840152151560051b8201016101c1565b503461016c578060031936011261016c5760405180916020601554928381520191601582527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475915b81811061039c57610228856103908187038261346d565b6040519182918261335c565b82546001600160a01b0316845260209093019260019283019201610379565b503461016c578060031936011261016c57601f5460405160089190911c6001600160a01b03168152602090f35b503461016c578060031936011261016c576025546040516001600160a01b039091168152602090f35b503461016c578060031936011261016c57602061042c613ace565b6040519015158152f35b503461016c578060031936011261016c57601954610453816138b2565b91610461604051938461346d565b818352601981527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b8383106104a3576040518061022887826135cc565b6001602081926104b28561348e565b81520192019201919061048e565b503461016c578060031936011261016c57603b54603c54604051603d5490936001600160a01b03928316939092169084836104fa836133e7565b808352926001811690811561065f5750600114610601575b61051e9250038561346d565b6040519180603e5490610530826133e7565b80865291600181169081156105da5750600114610579575b50509061055b836102289493038361346d565b603f546040549260405196879660ff808760081c1696169488613532565b603e81527f8d800d6614d35eed73733ee453164a3b48076eb3138f466adeeb9dec7bb31f7094939250905b8082106105be575091925090820160200161055b83610548565b91929360018160209254838589010152019101909392916105a4565b60ff191660208088019190915292151560051b8601909201925061055b9150849050610548565b50603d84529083907fece66cfdbd22e3f37d348a3d8e19074452862cd65fd4b9a11f0336d1ac6d1dc35b81831061064357505090602061051e92820101610512565b6020919350806001915483858b0101520191019091869261062b565b6020925061051e94915060ff191682840152151560051b820101610512565b503461016c578060031936011261016c576020602254604051908152f35b503461016c578060031936011261016c57601c546106b9816138b2565b916106c7604051938461346d565b818352601c81527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211602084015b8383106107095760405180610228878261362c565b6002602060019260405161071c81613452565b848060a01b0386541681526107328587016138c9565b838201528152019201920191906106f4565b503461016c578060031936011261016c57601d54610761816138b2565b9161076f604051938461346d565b818352601d81527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f602084015b8383106107b15760405180610228878261362c565b600260206001926040516107c481613452565b848060a01b0386541681526107da8587016138c9565b8382015281520192019201919061079c565b503461016c578060031936011261016c57601a54610809816138b2565b91610817604051938461346d565b818352601a81527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310610859576040518061022887826135cc565b6001602081926108688561348e565b815201920192019190610844565b503461016c578060031936011261016c57602954602a54604051602b5490936001600160a01b03928316939092169084836108b0836133e7565b8083529260018116908115610a1557506001146109b7575b6108d49250038561346d565b6040519180602c54906108e6826133e7565b8086529160018116908115610990575060011461092f575b505090610911836102289493038361346d565b602d54602e549260405196879660ff808760081c1696169488613532565b602c81527f7416c943b4a09859521022fd2e90eac0dd9026dad28fa317782a135f28a8609194939250905b8082106109745750919250908201602001610911836108fe565b919293600181602092548385890101520191019093929161095a565b60ff191660208088019190915292151560051b8601909201925061091191508490506108fe565b50602b84529083907f11c44e4875b74d31ff9fd779bf2566af7bd15b87fc985d01f5094b89e3669e4f5b8183106109f95750509060206108d4928201016108c8565b6020919350806001915483858b010152019101909186926109e1565b602092506108d494915060ff191682840152151560051b8201016108c8565b503461016c578060031936011261016c576021546040516001600160a01b039091168152602090f35b503461016c578060031936011261016c576020602354604051908152f35b503461016c578060031936011261016c57601b54610a98816138b2565b610aa5604051918261346d565b818152601b83526020810191837f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1845b838310610b6157868587604051928392602084019060208552518091526040840160408260051b8601019392905b828210610b1257505050500390f35b91936001919395506020610b518192603f198a820301865288519083610b4183516040845260408401906133c2565b920151908481840391015261358e565b9601920192018594939192610b03565b60026020600192604051610b7481613452565b610b7d8661348e565b8152610b8a8587016138c9565b83820152815201920192019190610ad5565b503461016c578060031936011261016c576028546040516001600160a01b039091168152602090f35b503461016c578060031936011261016c576020602454604051908152f35b503461016c578060031936011261016c57602f5460305460405160315490936001600160a01b0392831693909216908483610c1d836133e7565b8083529260018116908115610d825750600114610d24575b610c419250038561346d565b604051918060325490610c53826133e7565b8086529160018116908115610cfd5750600114610c9c575b505090610c7e836102289493038361346d565b6033546034549260405196879660ff808760081c1696169488613532565b603281527f11df491316f14931039edfd4f8964c9a443b862f02d4c7611d18c2bc4e6ff69794939250905b808210610ce15750919250908201602001610c7e83610c6b565b9192936001816020925483858901015201910190939291610cc7565b60ff191660208088019190915292151560051b86019092019250610c7e9150849050610c6b565b50603184529083907fc54045fa7c6ec765e825df7f9e9bf9dec12c5cef146f93a5eee56772ee647fbc5b818310610d66575050906020610c4192820101610c35565b6020919350806001915483858b01015201910190918692610d4e565b60209250610c4194915060ff191682840152151560051b820101610c35565b503461016c578060031936011261016c576027546040516001600160a01b039091168152602090f35b503461016c578060031936011261016c5760405180916020601754928381520191601782527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15915b818110610e2957610228856103908187038261346d565b82546001600160a01b0316845260209093019260019283019201610e12565b503461016c578060031936011261016c5760405180916020601854928381520191601882527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e915b818110610ea757610228856103908187038261346d565b82546001600160a01b0316845260209093019260019283019201610e90565b503461016c578060031936011261016c57602080546040516001600160a01b039091168152f35b503461016c578060031936011261016c576026546040516001600160a01b039091168152602090f35b503461016c578060031936011261016c57601e54610f33816138b2565b610f40604051918261346d565b818152601e83526020810191837f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350845b8383106110445786858760405192839260208401906020855251809152604084019160408260051b8601019392815b838310610fac5786860387f35b919395509193603f198782030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b850101940192855b82811061101957505050505060208060019297019301930190928695949293610f9f565b9091929394602080611037600193605f1987820301895289516133c2565b9701950193929101610ff5565b60405161105081613452565b82546001600160a01b0316815260018301805461106c816138b2565b9161107a604051938461346d565b8183528a526020808b20908b9084015b8382106110b0575050505060019282602092836002950152815201920192019190610f70565b6001602081926110bf8661348e565b81520193019101909161108a565b503461016c578060031936011261016c5760405180916020601654928381520191601682527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289915b81811061112c57610228856103908187038261346d565b82546001600160a01b0316845260209093019260019283019201611115565b9050346133585781600319360112613358576021546001600160a01b0316737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156133545763c88a5e6d60e01b8252600482015269d3c21bcecceda1000000602482015281808260448183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561320c57613344575b5050601f54602054604051620103f8808201949391926001600160a01b039081169260081c16906001600160401b0386118487101761333057946040928492869762014ff485398252602082015203019082f0801561320c57602580546001600160a01b0319166001600160a01b03929092169182179055803b1561332d57818091600460405180948193630a5b8ad760e31b83525af180156124a257613318575b5050601f54602154602554604051620b9ea360e11b81526001600160a01b039283169360081c831692909116602082600481845afa9182156124ed5785926132f7575b5060405163bb88b76960e01b8152602081600481855afa9081156132ec5786916132ae575b5060405163330a0e7160e11b815292602084600481865afa92831561328157600494889461328c575b5060209060405195868092630b4a282f60e11b82525afa938415613281578794613241575b506040519561ae8f95868801968888106001600160401b0389111761322d579160c0979593918997959362003b858939865260208601526001600160a01b039081166040860152908116606085015290811660808401521660a082015203019082f0801561320c5760018060a01b03166001600160601b0360a01b60265416176026556040516165e0808201908282106001600160401b03831117613219579082916200ea148339039082f0801561320c57602780546001600160a01b0319166001600160a01b0392831617905560265460235483929190911690813b156128d4578291602483926040519485938492637bf2218160e01b845260048401525af180156124a2576131f7575b505060275460255460265460405163330a0e7160e11b81526001600160a01b039384169385939281169216602082600481845afa92831561252c576114e2936101649386916131d8575b5060018060a01b03601f5460081c169060018060a01b036021541692604051946114a386613421565b8552602085015260018060a01b03166040840152606083015260808201528360235495604051968795869463389893e960e21b8652600486019061380c565b61012060a485015260036101248501526208aa8960eb1b610144850152600160c485015260e484015260126101048401525af19081156124a25782916131be575b5060018060a01b038151166001600160601b0360a01b602954161760295560018060a01b036020820151166001600160601b0360a01b602a541617602a5560408101519182516001600160401b038111612bfc57611582602b546133e7565b601f811161315b575b506020601f82116001146130f8578293948293926130ed575b50508160011b916000199060031b1c191617602b555b60608201519182516001600160401b038111612b17576115db602c546133e7565b601f811161308a575b506020601f82116001146130275783948293949261301c575b50508160011b916000199060031b1c191617602c555b6080810151602d5560a081015115159060ff61ff0060c0602e5493015160081b1692169061ffff19161717602e5560018060a01b03602754168160018060a01b036025541660018060a01b0360265416926040519363330a0e7160e11b8552602085600481865afa801561252c576116f4958591612ffd575b5060018060a01b03601f5460081c169060018060a01b036021541692604051956116b587613421565b8652602086015260018060a01b0316604085015260608401526080830152602354918360405180968195829463389893e960e21b84526004840161384b565b03925af19081156124a2578291612fe3575b5060018060a01b038151166001600160601b0360a01b602f541617602f5560018060a01b036020820151166001600160601b0360a01b603054161760305560408101519182516001600160401b038111612bfc576117656031546133e7565b601f8111612f80575b506020601f8211600114612f1d57829394829392612f12575b50508160011b916000199060031b1c1916176031555b60608201519182516001600160401b038111612b17576117be6032546133e7565b601f8111612eaf575b506020601f8211600114612e4c57839482939492612e41575b50508160011b916000199060031b1c1916176032555b608081015160335560a081015115159060ff61ff0060c060345493015160081b1692169061ffff191617176034558060018060a01b0360265416602454813b156128d4578291602483926040519485938492637bf2218160e01b845260048401525af180156124a257612e2c575b505060275460255460265460405163330a0e7160e11b81526001600160a01b039384169385939281169216602082600481845afa92831561252c5761191693610164938691612e0d575b5060018060a01b03601f5460081c169060018060a01b036021541692604051946118d786613421565b8552602085015260018060a01b03166040840152606083015260808201528360245495604051968795869463389893e960e21b8652600486019061380c565b61012060a485015260036101248501526221272160e91b610144850152600160c485015260e484015260126101048401525af19081156124a2578291612df3575b5060018060a01b038151166001600160601b0360a01b603554161760355560018060a01b036020820151166001600160601b0360a01b603654161760365560408101519182516001600160401b038111612bfc576119b66037546133e7565b601f8111612d90575b506020601f8211600114612d2d57829394829392612d22575b50508160011b916000199060031b1c1916176037555b60608201519182516001600160401b038111612b1757611a0f6038546133e7565b601f8111612cbf575b506020601f8211600114612c5c57839482939492612c51575b50508160011b916000199060031b1c1916176038555b608081015160395560a081015115159060ff61ff0060c0603a5493015160081b1692169061ffff19161717603a5560018060a01b03602754168160018060a01b036025541660018060a01b0360265416926040519363330a0e7160e11b8552602085600481865afa801561252c57611b28958591612c32575b5060018060a01b03601f5460081c169060018060a01b03602154169260405195611ae987613421565b8652602086015260018060a01b0316604085015260608401526080830152602454918360405180968195829463389893e960e21b84526004840161384b565b03925af19081156124a2578291612c10575b5060018060a01b038151166001600160601b0360a01b603b541617603b5560018060a01b036020820151166001600160601b0360a01b603c541617603c5560408101519182516001600160401b038111612bfc57611b99603d546133e7565b601f8111612b99575b506020601f8211600114612b3657829394829392612b2b575b50508160011b916000199060031b1c191617603d555b60608201519182516001600160401b038111612b1757611bf2603e546133e7565b601f8111612ab4575b506020601f8211600114612a5157839482939492612a46575b50508160011b916000199060031b1c191617603e555b6080810151603f5560a081015115159060ff61ff0060c060405493015160081b1692169061ffff191617176040558060018060a01b036025541660405163330a0e7160e11b8152602081600481855afa9081156128f7576004916020918591612a29575b5060018060a01b031692836001600160601b0360a01b602854161760285560405192838092633c12ad4d60e21b82525afa9081156128f75783916129e7575b50813b156128d4576040516325128ee960e21b81526001600160a01b0390911660048201529082908290602490829084905af180156124a2576129d2575b5060018060a01b0360285416602254813b156128d457829160248392604051948593849263d7b3eeaf60e01b845260048401525af180156124a2576129bd575b50602854602354602654604051621ac49360e31b8152600481018390526001600160a01b039384169390929160209184916024918391165afa91821561252c57849261299c575b50823b156125a357604051638016f22b60e01b815260048101919091526001600160a01b039190911660248201529082908290604490829084905af180156124a257612987575b5060285460248054602654604051621ac49360e31b8152600481018390526001600160a01b0394851694909360209285928391165afa91821561252c578492612966575b50823b156125a357604051638016f22b60e01b815260048101919091526001600160a01b039190911660248201529082908290604490829084905af180156124a257612951575b50602854602554604051630b4a282f60e11b81526001600160a01b0392831692909160209183916004918391165afa9081156128f7578391612917575b50813b156128d457604051635f54c24f60e11b81526001600160a01b0390911660048201529082908290602490829084905af180156124a257612902575b50602854602554604051620b9ea360e11b81526001600160a01b0392831692909160209183916004918391165afa9081156128f75783916128d8575b50813b156128d45760405162b8969960e81b81526001600160a01b0390911660048201529082908290602490829084905af180156124a2576128bf575b506028546023546029546001600160a01b039283169216823b156125a357604051630d1fce9f60e21b815260048101929092526001600160a01b031660248201529082908290604490829084905af180156124a2576128aa575b506028546023546029546001600160a01b039283169216823b156125a35760405163f59e8a6760e01b81526004810192909252600060248301526001600160a01b031660448201529082908290606490829084905af180156124a257612895575b506028546023546029546001600160a01b039283169216823b156125a35760405163f9a4169760e01b815260048101929092526001600160a01b03166024820152600060448201529082908290606490829084905af180156124a257612880575b506030546001600160a01b0316806127ac575b50602854602354602654604051633178d80160e11b815260048101839052926001600160a01b039081169160209185916024918391165afa92831561252c57849361276e575b50602554604051620b9ea360e11b81529190602090839060049082906001600160a01b03165afa9182156124ed57859261274d575b50803b156124ad5761212e938580946040519687958694859363f59e8a6760e01b855260048501613892565b03925af180156124a257612738575b50602854602354602554604051620b9ea360e11b8152926001600160a01b039081169160209185916004918391165afa92831561252c578493612714575b50602654604051633178d80160e11b8152600481018490529190602090839060249082906001600160a01b03165afa9182156124ed5785926126d8575b50803b156124ad576121e4938580946040519687958694859363f9a4169760e01b855260048501613892565b03925af180156124a2576126c3575b506028546024546035546001600160a01b039283169216823b156125a357604051630d1fce9f60e21b815260048101929092526001600160a01b031660248201529082908290604490829084905af180156124a2576126ae575b506028546024546035546001600160a01b039283169216823b156125a35760405163f59e8a6760e01b81526004810192909252600060248301526001600160a01b031660448201529082908290606490829084905af180156124a257612699575b506028546024546035546001600160a01b039283169216823b156125a35760405163f9a4169760e01b815260048101929092526001600160a01b03166024820152600060448201529082908290606490829084905af180156124a257612684575b50603c546001600160a01b0316806125b0575b5060285460248054602654604051633178d80160e11b8152600481018390529391926001600160a01b03928316926020928692918391165afa92831561252c57849361256d575b50602554604051620b9ea360e11b81529190602090839060049082906001600160a01b03165afa9182156124ed57859261254c575b50803b156124ad576123ca938580946040519687958694859363f59e8a6760e01b855260048501613892565b03925af180156124a257612537575b50602854602454602554604051620b9ea360e11b8152926001600160a01b039081169160209185916004918391165afa92831561252c5784936124f8575b50602654604051633178d80160e11b8152600481018490529190602090839060249082906001600160a01b03165afa9182156124ed5785926124b1575b50803b156124ad57612480938580946040519687958694859363f9a4169760e01b855260048501613892565b03925af180156124a2576124915750f35b8161249b9161346d565b61016c5780f35b6040513d84823e3d90fd5b8480fd5b9091506020813d6020116124e5575b816124cd6020938361346d565b810103126124ad576124de906136c8565b9038612454565b3d91506124c0565b6040513d87823e3d90fd5b602491935061251e9060203d602011612525575b612516818361346d565b8101906136a4565b9290612417565b503d61250c565b6040513d86823e3d90fd5b816125419161346d565b61016c5780386123d9565b61256691925060203d60201161252557612516818361346d565b903861239e565b9092506020813d6020116125a8575b816125896020938361346d565b810103126125a35761259c6004916136c8565b9290612369565b505050fd5b3d915061257c565b602854602454603b5490916001600160a01b039182169116803b156124ad576125f3938580946040519687958694859363f59e8a6760e01b855260048501613892565b03925af180156124a25761266f575b50602854602454603b54603c546001600160a01b03918216939082169116803b156124ad5761264b938580946040519687958694859363f9a4169760e01b855260048501613892565b03925af180156124a2571561232257816126649161346d565b61016c578038612322565b816126799161346d565b61016c578038612602565b8161268e9161346d565b61016c57803861230f565b816126a39161346d565b61016c5780386122ae565b816126b89161346d565b61016c57803861224d565b816126cd9161346d565b61016c5780386121f3565b9091506020813d60201161270c575b816126f46020938361346d565b810103126124ad57612705906136c8565b90386121b8565b3d91506126e7565b60249193506127319060203d60201161252557612516818361346d565b929061217b565b816127429161346d565b61016c57803861213d565b61276791925060203d60201161252557612516818361346d565b9038612102565b9092506020813d6020116127a4575b8161278a6020938361346d565b810103126125a35761279d6004916136c8565b92906120cd565b3d915061277d565b602854602354602f5490916001600160a01b039182169116803b156124ad576127ef938580946040519687958694859363f59e8a6760e01b855260048501613892565b03925af180156124a25761286b575b50602854602354602f546030546001600160a01b03918216939082169116803b156124ad57612847938580946040519687958694859363f9a4169760e01b855260048501613892565b03925af180156124a2571561208757816128609161346d565b61016c578038612087565b816128759161346d565b61016c5780386127fe565b8161288a9161346d565b61016c578038612074565b8161289f9161346d565b61016c578038612013565b816128b49161346d565b61016c578038611fb2565b816128c99161346d565b61016c578038611f58565b5050fd5b6128f1915060203d60201161252557612516818361346d565b38611f1b565b6040513d85823e3d90fd5b8161290c9161346d565b61016c578038611edf565b90506020813d602011612949575b816129326020938361346d565b810103126128d457612943906136c8565b38611ea1565b3d9150612925565b8161295b9161346d565b61016c578038611e64565b61298091925060203d60201161252557612516818361346d565b9038611e1d565b816129919161346d565b61016c578038611dd9565b6129b691925060203d60201161252557612516818361346d565b9038611d92565b816129c79161346d565b61016c578038611d4b565b816129dc9161346d565b61016c578038611d0b565b90506020813d602011612a21575b81612a026020938361346d565b810103126128d457516001600160a01b03811681036128d45738611ccd565b3d91506129f5565b612a409150823d841161252557612516818361346d565b38611c8e565b015190503880611c14565b603e845280842090601f198316855b818110612a9c57509583600195969710612a83575b505050811b01603e55611c2a565b015160001960f88460031b161c19169055388080612a75565b9192602060018192868b015181550194019201612a60565b603e84527f8d800d6614d35eed73733ee453164a3b48076eb3138f466adeeb9dec7bb31f70601f830160051c81019160208410612b0d575b601f0160051c01905b818110612b025750611bfb565b848155600101612af5565b9091508190612aec565b634e487b7160e01b83526041600452602483fd5b015190503880611bbb565b603d835280832090601f198316845b818110612b8157509583600195969710612b68575b505050811b01603d55611bd1565b015160001960f88460031b161c19169055388080612b5a565b9192602060018192868b015181550194019201612b45565b603d83527fece66cfdbd22e3f37d348a3d8e19074452862cd65fd4b9a11f0336d1ac6d1dc3601f830160051c81019160208410612bf2575b601f0160051c01905b818110612be75750611ba2565b838155600101612bda565b9091508190612bd1565b634e487b7160e01b82526041600452602482fd5b612c2c91503d8084833e612c24818361346d565b810190613730565b38611b3a565b612c4b915060203d60201161252557612516818361346d565b38611ac0565b015190503880611a31565b6038845280842090601f198316855b818110612ca757509583600195969710612c8e575b505050811b01603855611a47565b015160001960f88460031b161c19169055388080612c80565b9192602060018192868b015181550194019201612c6b565b603884527f38395c5dceade9603479b177b68959049485df8aa97b39f3533039af5f456199601f830160051c81019160208410612d18575b601f0160051c01905b818110612d0d5750611a18565b848155600101612d00565b9091508190612cf7565b0151905038806119d8565b6037835280832090601f198316845b818110612d7857509583600195969710612d5f575b505050811b016037556119ee565b015160001960f88460031b161c19169055388080612d51565b9192602060018192868b015181550194019201612d3c565b603783527f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae601f830160051c81019160208410612de9575b601f0160051c01905b818110612dde57506119bf565b838155600101612dd1565b9091508190612dc8565b612e0791503d8084833e612c24818361346d565b38611957565b612e26915060203d60201161252557612516818361346d565b386118ae565b81612e369161346d565b61016c578038611864565b0151905038806117e0565b6032845280842090601f198316855b818110612e9757509583600195969710612e7e575b505050811b016032556117f6565b015160001960f88460031b161c19169055388080612e70565b9192602060018192868b015181550194019201612e5b565b603284527f11df491316f14931039edfd4f8964c9a443b862f02d4c7611d18c2bc4e6ff697601f830160051c81019160208410612f08575b601f0160051c01905b818110612efd57506117c7565b848155600101612ef0565b9091508190612ee7565b015190503880611787565b6031835280832090601f198316845b818110612f6857509583600195969710612f4f575b505050811b0160315561179d565b015160001960f88460031b161c19169055388080612f41565b9192602060018192868b015181550194019201612f2c565b603183527fc54045fa7c6ec765e825df7f9e9bf9dec12c5cef146f93a5eee56772ee647fbc601f830160051c81019160208410612fd9575b601f0160051c01905b818110612fce575061176e565b838155600101612fc1565b9091508190612fb8565b612ff791503d8084833e612c24818361346d565b38611706565b613016915060203d60201161252557612516818361346d565b3861168c565b0151905038806115fd565b602c845280842090601f198316855b81811061307257509583600195969710613059575b505050811b01602c55611613565b015160001960f88460031b161c1916905538808061304b565b9192602060018192868b015181550194019201613036565b602c84527f7416c943b4a09859521022fd2e90eac0dd9026dad28fa317782a135f28a86091601f830160051c810191602084106130e3575b601f0160051c01905b8181106130d857506115e4565b8481556001016130cb565b90915081906130c2565b0151905038806115a4565b602b835280832090601f198316845b8181106131435750958360019596971061312a575b505050811b01602b556115ba565b015160001960f88460031b161c1916905538808061311c565b9192602060018192868b015181550194019201613107565b602b83527f11c44e4875b74d31ff9fd779bf2566af7bd15b87fc985d01f5094b89e3669e4f601f830160051c810191602084106131b4575b601f0160051c01905b8181106131a9575061158b565b83815560010161319c565b9091508190613193565b6131d291503d8084833e612c24818361346d565b38611523565b6131f1915060203d60201161252557612516818361346d565b3861147a565b816132019161346d565b61016c578038611430565b50604051903d90823e3d90fd5b634e487b7160e01b84526041600452602484fd5b634e487b7160e01b8a52604160045260248afd5b9093506020813d602011613279575b8161325d6020938361346d565b810103126132755761326e906136c8565b9238611324565b8680fd5b3d9150613250565b6040513d89823e3d90fd5b60209194506132a790823d841161252557612516818361346d565b93906112ff565b90506020813d6020116132e4575b816132c96020938361346d565b810103126132e0576132da906136c8565b386112d6565b8580fd5b3d91506132bc565b6040513d88823e3d90fd5b61331191925060203d60201161252557612516818361346d565b90386112b1565b816133229161346d565b61016c57803861126e565b50fd5b634e487b7160e01b85526041600452602485fd5b61334d9161346d565b38816111cc565b8280fd5b5080fd5b602060408183019282815284518094520192019060005b8181106133805750505090565b82516001600160a01b0316845260209384019390920191600101613373565b60005b8381106133b25750506000910152565b81810151838201526020016133a2565b906020916133db8151809281855285808601910161339f565b601f01601f1916010190565b90600182811c92168015613417575b602083101461340157565b634e487b7160e01b600052602260045260246000fd5b91607f16916133f6565b60a081019081106001600160401b0382111761343c57604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761343c57604052565b90601f801991011681019081106001600160401b0382111761343c57604052565b90604051918260008254926134a2846133e7565b808452936001811690811561351057506001146134c9575b506134c79250038361346d565b565b90506000929192526020600020906000915b8183106134f45750509060206134c792820101386134ba565b60209193508060019154838589010152019101909184926134db565b9050602092506134c794915060ff191682840152151560051b820101386134ba565b95919361356d60c09699989460ff9661357b9460018060a01b03168a5260018060a01b031660208a015260e060408a015260e08901906133c2565b9087820360608901526133c2565b966080860152151560a085015216910152565b906020808351928381520192019060005b8181106135ac5750505090565b82516001600160e01b03191684526020938401939092019160010161359f565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106135ff57505050505090565b909192939460208061361d600193603f1986820301875289516133c2565b970193019301919392906135f0565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061365f57505050505090565b9091929394602080613695600193603f198682030187526040838b51878060a01b0381511684520151918185820152019061358e565b97019301930191939290613650565b908160209103126136c357516001600160a01b03811681036136c35790565b600080fd5b51906001600160a01b03821682036136c357565b81601f820112156136c35780516001600160401b03811161343c576040519261370f601f8301601f19166020018561346d565b818452602082840101116136c35761372d916020808501910161339f565b90565b6020818303126136c3578051906001600160401b0382116136c3570160e0818303126136c3576040519160e083018381106001600160401b0382111761343c5760405261377c826136c8565b835261378a602083016136c8565b602084015260408201516001600160401b0381116136c357816137ae9184016136dc565b60408401526060820151906001600160401b0382116136c3576137d29183016136dc565b60608301526080810151608083015260a08101519081151582036136c35760c09160a0840152015160ff811681036136c35760c082015290565b80516001600160a01b03908116835260208083015182169084015260408083015182169084015260608083015182169084015260809182015116910152565b8061385e6101009260069496959661380c565b61012060a08201526004610120820152635553444360e01b610140820152610160810194600060c083015260e08201520152565b9081526001600160a01b0391821660208201529116604082015260600190565b6001600160401b03811161343c5760051b60200190565b90604051918281549182825260208201906000526020600020926000905b806007830110613a29576134c7945491818110613a0a575b8181106139eb575b8181106139cc575b8181106139ad575b81811061398e575b81811061396f575b818110613952575b1061393d575b50038361346d565b6001600160e01b031916815260200138613935565b602083811b6001600160e01b03191685529093019260010161392f565b604083901b6001600160e01b0319168452602090930192600101613927565b606083901b6001600160e01b031916845260209093019260010161391f565b608083901b6001600160e01b0319168452602090930192600101613917565b60a083901b6001600160e01b031916845260209093019260010161390f565b60c083901b6001600160e01b0319168452602090930192600101613907565b60e083901b6001600160e01b03191684526020909301926001016138ff565b916008919350610100600191865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e08201520194019201859293916138e7565b60085460ff168015613add5790565b50604051630667f9d760e41b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d60048201526519985a5b195960d21b6024820152602081604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115613b7857600091613b46575b50151590565b90506020813d602011613b70575b81613b616020938361346d565b810103126136c3575138613b40565b3d9150613b54565b6040513d6000823e3d90fdfe60803461012957601f61ae8f38819003918201601f19168301916001600160401b0383118484101761012e5780849260c0946040528339810103126101295761004781610144565b9061005460208201610144565b61006060408301610144565b61006c60608401610144565b91600161008760a061008060808801610144565b9601610144565b600c805460ff199081168417909155601f805460a885901b8581031990911660089a909a1b92019190911697909717909117909555602080546001600160a01b03199081166001600160a01b039384161790915560218054821693831693909317909255602280548316938216939093179092556023805482169383169390931790925560248054909216921691909117905560405161ad3690816101598239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036101295756fe6080604052600436101561001257600080fd5b60003560e01c8062173d4614610195578062d62498146101905780631694505e1461018b5780631ed7831c146101865780632ade3880146101815780633e5e3c231461017c5780633f7286f41461017757806362f1b0021461017257806366d9a9a01461016d5780636a26fefe146101685780636ce89fe2146101635780636e6dbb511461015e5780637bf221811461015957806385226c8114610154578063916a17c61461014f578063ad8414bf1461014a578063b0464fdc14610145578063b5508aa914610140578063ba414fa61461013b578063bb88b76914610136578063d05adf6a14610131578063d5f394881461012c578063e20c9f71146101275763fa7626d41461012257600080fd5b611708565b611688565b61165b565b61162d565b611604565b6115df565b611552565b6114a6565b611478565b6113cc565b6112c7565b6107d8565b6107b1565b610788565b61076c565b6106c0565b6105d4565b610554565b6104d4565b610428565b61027f565b610213565b6101e5565b6101aa565b60009103126101a557565b600080fd5b346101a55760003660031901126101a5576021546040516001600160a01b039091168152602090f35b60209060031901126101a55760043590565b346101a5576101f3366101d3565b6000526027602052602060018060a01b0360406000205416604051908152f35b346101a55760003660031901126101a5576024546040516001600160a01b039091168152602090f35b602060408183019282815284518094520192019060005b8181106102605750505090565b82516001600160a01b0316845260209384019390920191600101610253565b346101a55760003660031901126101a55760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b8181106102f0576102ec856102e08187038261175d565b6040519182918261023c565b0390f35b82546001600160a01b03168452602090930192600192830192016102c9565b60005b8381106103225750506000910152565b8181015183820152602001610312565b9060209161034b8151809281855285808601910161030f565b601f01601f1916010190565b9080602083519182815201916020808360051b8301019401926000915b83831061038357505050505090565b90919293946020806103a1600193601f198682030187528951610332565b97019301930191939290610374565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106103e357505050505090565b9091929394602080610419600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610357565b970193019301919392906103d4565b346101a55760003660031901126101a557601e546104458161177f565b90610453604051928361175d565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061049957604051806102ec87826103b0565b600260206001926040516104ac81611741565b848060a01b0386541681526104c2858701611863565b83820152815201920192019190610484565b346101a55760003660031901126101a55760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b818110610535576102ec856102e08187038261175d565b82546001600160a01b031684526020909301926001928301920161051e565b346101a55760003660031901126101a55760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b8181106105b5576102ec856102e08187038261175d565b82546001600160a01b031684526020909301926001928301920161059e565b346101a5576105e2366101d3565b6000526028602052602060018060a01b0360406000205416604051908152f35b906020808351928381520192019060005b8181106106205750505090565b82516001600160e01b031916845260209384019390920191600101610613565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061067357505050505090565b90919293946020806106b1600193603f19868203018752895190836106a18351604084526040840190610332565b9201519084818403910152610602565b97019301930191939290610664565b346101a55760003660031901126101a557601b546106dd8161177f565b906106eb604051928361175d565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b83831061073157604051806102ec8782610640565b6002602060019260405161074481611741565b61074d86611797565b815261075a8587016118bb565b8382015281520192019201919061071c565b346101a55760003660031901126101a557602060405160058152f35b346101a55760003660031901126101a5576023546040516001600160a01b039091168152602090f35b346101a55760003660031901126101a557602080546040516001600160a01b039091168152f35b346101a5576107e6366101d3565b601f5460081c6001600160a01b0316737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156101a5576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610f355761129e575b506040516129ee80820182811067ffffffffffffffff821117611012578291613e36833903906000f08015610f35576023546001600160a01b031660405191610bd68084019284841067ffffffffffffffff8511176110125784936108e193879361a12b87396001600160a01b039081168252919091166020820152604081019190915260600190565b03906000f08015610f35576000828152602760205260409020610928916001600160a01b0316905b80546001600160a01b0319166001600160a01b03909216919091179055565b604051611ebc80820182811067ffffffffffffffff821117611012578291611f7a833903906000f08015610f35576000828152602560205260409020610977916001600160a01b031690610909565b60058114801561114a576040516360f9bb1160e01b815260206004820152604b60248201527f6e6f64655f6d6f64756c65732f407a657461636861696e2f70726f746f636f6c60448201527f2d636f6e7472616374732f6162692f5465737445524332302e736f6c2f54657360648201526a3a22a9219918173539b7b760a91b608482015260008160a481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610f3557610a49916000918291611130575b5060405180938192631fb2437d60e31b835260048301611b5b565b0381737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610f3557610aea91610ad69160009161110d575b5060405190610ad182610ac36020820160c0906040815260046040820152635a65746160e01b60608201526080602082015260046080820152635a45544160e01b60a08201520190565b03601f19810184528361175d565b611c60565b610909846000526028602052604060002090565b610b1d610b11610b04846000526027602052604060002090565b546001600160a01b031690565b6001600160a01b031690565b6020546001600160a01b0316610b40610b04856000526028602052604060002090565b601f5490929060081c6001600160a01b031690803b156101a55760405163c0c53b8b60e01b81526001600160a01b0393841660048201529383166024850152911660448301526000908290606490829084905af18015610f35576110f8575b50610bbd610b11610b11610b04856000526025602052604060002090565b610bd7610b11610b04856000526027602052604060002090565b6020546001600160a01b0316601f5490929060081c6001600160a01b031690803b156101a55760405163c0c53b8b60e01b81526001600160a01b0393841660048201529383166024850152911660448301526000908290606490829084905af18015610f35576110e3575b50801561101757604051611bf380820182811067ffffffffffffffff821117611012578291616824833903906000f08015610f3557610c91610b11610b04856000526027602052604060002090565b90610cfc610cac610b04866000526028602052604060002090565b60208054601f54604051637c643b2f60e11b938101939093526001600160a01b03968716602484015292861660448301528516606482015260089190911c90931660848401528260a48101610ac3565b604051916102c69081840184811067ffffffffffffffff821117611012578493610d3493611cb486396001600160a01b031690611b97565b03906000f08015610f35576000838152602660205260409020610d60916001600160a01b031690610909565b610d7a610b11610b04846000526027602052604060002090565b610d91610b04846000526025602052604060002090565b90803b156101a55760405163ae7a3a6f60e01b81526001600160a01b039290921660048301526000908290602490829084905af18015610f3557610ffd575b50610deb610b11610b04846000526027602052604060002090565b610e02610b04846000526026602052604060002090565b90803b156101a5576040516310188aef60e01b81526001600160a01b039290921660048301526000908290602490829084905af18015610f3557610fe8575b5015610f4f57610e7b610b04610e6a610b11610b11610b04866000526028602052604060002090565b926000526026602052604060002090565b90803b156101a5576040516340c10f1960e01b81526001600160a01b0392909216600483015269d3c21bcecceda100000060248301526000908290604490829084905af18015610f3557610f3a575b505b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156101a5576040516390c5013b60e01b815260008160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610f3557610f1e57005b80610f2d6000610f339361175d565b8061019a565b005b611ae0565b80610f2d6000610f499361175d565b38610eca565b610f6c610b11610b11610b04846000526028602052604060002090565b602054909190610f8890610b04906001600160a01b0316610e6a565b823b156101a5576040516305755ff560e21b81526001600160a01b03928316600482015291166024820152906000908290604490829084905af18015610f3557610fd3575b50610ecc565b80610f2d6000610fe29361175d565b38610fcd565b80610f2d6000610ff79361175d565b38610e41565b80610f2d600061100c9361175d565b38610dd0565b61172b565b604051611d1480820182811067ffffffffffffffff821117611012578291618417833903906000f08015610f355761105f610b11610b04856000526027602052604060002090565b9061107a610cac610b04866000526028602052604060002090565b604051916102c69081840184811067ffffffffffffffff8211176110125784936110b293611cb486396001600160a01b031690611b97565b03906000f08015610f355760008381526026602052604090206110de916001600160a01b031690610909565b610d60565b80610f2d60006110f29361175d565b38610c42565b80610f2d60006111079361175d565b38610b9f565b61112a91503d806000833e611122818361175d565b810190611aec565b38610a79565b61114491503d8084833e611122818361175d565b38610a2e565b6040516360f9bb1160e01b815260206004820152604f60248201527f6e6f64655f6d6f64756c65732f407a657461636861696e2f70726f746f636f6c60448201527f2d636f6e7472616374732f6162692f5a6574612e6e6f6e2d6574682e736f6c2f60648201526e2d32ba30a737b722ba34173539b7b760891b608482015260008160a481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610f3557611215916000918291611130575060405180938192631fb2437d60e31b835260048301611b5b565b0381737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610f355761127e91610ad691600091611283575b5060208054601f54604080516001600160a01b039384169481019490945260089190911c9091169082015290610ad18260608101610ac3565b610aea565b61129891503d806000833e611122818361175d565b38611245565b80610f2d60006112ad9361175d565b38610857565b9060206112c4928181520190610357565b90565b346101a55760003660031901126101a557601a546112e48161177f565b906112f2604051928361175d565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b83831061133757604051806102ec87826112b3565b60016020819261134685611797565b815201920192019190611322565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061138757505050505090565b90919293946020806113bd600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610602565b97019301930191939290611378565b346101a55760003660031901126101a557601d546113e98161177f565b906113f7604051928361175d565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b83831061143d57604051806102ec8782611354565b6002602060019260405161145081611741565b848060a01b0386541681526114668587016118bb565b83820152815201920192019190611428565b346101a557611486366101d3565b6000526025602052602060018060a01b0360406000205416604051908152f35b346101a55760003660031901126101a557601c546114c38161177f565b906114d1604051928361175d565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b83831061151757604051806102ec8782611354565b6002602060019260405161152a81611741565b848060a01b0386541681526115408587016118bb565b83820152815201920192019190611502565b346101a55760003660031901126101a55760195461156f8161177f565b9061157d604051928361175d565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b8383106115c257604051806102ec87826112b3565b6001602081926115d185611797565b8152019201920191906115ad565b346101a55760003660031901126101a55760206115fa611bc8565b6040519015158152f35b346101a55760003660031901126101a5576022546040516001600160a01b039091168152602090f35b346101a55761163b366101d3565b6000526026602052602060018060a01b0360406000205416604051908152f35b346101a55760003660031901126101a557601f5460405160089190911c6001600160a01b03168152602090f35b346101a55760003660031901126101a55760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b8181106116e9576102ec856102e08187038261175d565b82546001600160a01b03168452602090930192600192830192016116d2565b346101a55760003660031901126101a557602060ff601f54166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff82111761101257604052565b90601f8019910116810190811067ffffffffffffffff82111761101257604052565b67ffffffffffffffff81116110125760051b60200190565b9060405191600081548060011c9260018216918215611859575b60208510831461184557848752869392602085019291811561182857506001146117e6575b50506117e49250038361175d565b565b6117f7919250600052602060002090565b906000915b84831061181157506117e493500138806117d6565b8054828401528693506020909201916001016117fc565b9150506117e49491925060ff19168252151560051b0138806117d6565b634e487b7160e01b84526022600452602484fd5b93607f16936117b1565b90815461186f8161177f565b9261187d604051948561175d565b818452602084019060005260206000206000915b83831061189e5750505050565b6001602081926118ad85611797565b815201920192019190611891565b604051815480825290929183906118db6020830191600052602060002090565b926000905b806007830110611a23576117e4945491818110611a04575b8181106119e5575b8181106119c6575b8181106119a7575b818110611988575b818110611969575b81811061194b575b10611936575b50038361175d565b6001600160e01b03191681526020013861192e565b602083811b6001600160e01b03191685529093600191019301611928565b604083901b6001600160e01b0319168452926001906020019301611920565b606083901b6001600160e01b0319168452926001906020019301611918565b608083901b6001600160e01b0319168452926001906020019301611910565b60a083901b6001600160e01b0319168452926001906020019301611908565b60c083901b6001600160e01b0319168452926001906020019301611900565b6001600160e01b031960e084901b1684529260019060200193016118f8565b916008919350610100600191611ad28754611a49838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b0194019201859293916118e0565b6040513d6000823e3d90fd5b6020818303126101a55780519067ffffffffffffffff82116101a5570181601f820112156101a5576020815191019067ffffffffffffffff81116110125760405192611b42601f8301601f19166020018561175d565b818452818301116101a5576112c491602084019061030f565b611b6d60409283835283830190610332565b906020818303910152601081526f0b989e5d1958dbd9194b9bd89a9958dd60821b60208201520190565b6001600160a01b0390911681526040602082018190526112c492910190610332565b908160209103126101a5575190565b60085460ff168015611bd75790565b50604051630667f9d760e41b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190526519985a5b195960d21b6024830152602090829060449082905afa908115610f3557600091611c31575b50151590565b611c53915060203d602011611c59575b611c4b818361175d565b810190611bb9565b38611c2b565b503d611c41565b90611ca560209160405192839181611c81818501978881519384920161030f565b8301611c958251809385808501910161030f565b010103601f19810183528261175d565b51906000f09081156101a55756fe60806040526102c68038038061001481610188565b928339810190604081830312610183578051906001600160a01b03821690818303610183576020810151906001600160401b038211610183570183601f820112156101835780519061006d610068836101c3565b610188565b94828652602083830101116101835760005b82811061016e575050602060009185010152813b1561015a577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a28151156101415760008083602061012995519101845af43d15610139573d91610119610068846101c3565b9283523d6000602085013e6101de565b505b604051608690816102408239f35b6060916101de565b5050341561012b5763b398979f60e01b60005260046000fd5b634c9c8ce360e01b60005260045260246000fd5b8060208092840101518282890101520161007f565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176101ad57604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b0381116101ad57601f01601f191660200190565b9061020457508051156101f357805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580610236575b610215575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b1561020d56fe60806040527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5460009081906001600160a01b0316368280378136915af43d6000803e15604b573d6000f35b3d6000fdfea264697066735822122050f22a01d073962c556a114f7af7ed5d52928a56307a2cc1329dcdbb635986ec64736f6c634300081a003360a0806040523460295730608052611e8d908161002f8239608051818181610f090152610fda0152f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a71461131857508063116191b6146112f1578063248a9ca3146112ca578063252f07bf146112a45780632f2ff15d1461127257806336568abe1461122d5780633f4ba83a146111ab5780634f1ef28614610f5e57806352d1902d14610ef6578063570618e114610ecd5780635b11259114610ea45780635c975abb14610e745780638456cb5914610dff57806385f438c114610dd657806391d1485414610d80578063950837aa14610cb457806399a3c35614610ade5780639a59042714610a725780639b19251a146109f4578063a217fddf146109d8578063ad0818521461082d578063ad3cb1cc146107b3578063c0c53b8b1461057f578063d547741f14610544578063d936547e14610505578063d9caed1214610442578063e609055e146101e8578063e63ab1e9146101ad5763eab103df1461016057600080fd5b346101aa5760203660031901126101aa576004358015158091036101a65761018661157a565b6002805460ff60a01b191660a09290921b60ff60a01b1691909117905580f35b5080fd5b80fd5b50346101aa57806003193601126101aa5760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346101aa5760803660031901126101aa5760043567ffffffffffffffff81116101a65761021a903690600401611417565b6024356001600160a01b03811692919083810361043e5760643567ffffffffffffffff811161043a57610251903690600401611417565b9061025a611b7e565b610262611bba565b60ff60025460a01c161561042b57858752600160205260ff6040882054161561041c576040516370a0823160e01b8152306004820152926020846024818a5afa9384156103db5788946103e6575b506102ee90604051906323b872dd60e01b60208301523360248301523060448301526044356064830152606482526102e96084836113c3565b611c21565b6040516370a0823160e01b8152306004820152926020846024818a5afa9384156103db5788946103a2575b50830392831161038e5791610376917f1dafa057cc5c3bccb5ad974129a2bccd3c74002d9dfd7062404ba9523b18d6ae959493610363604051968796606088526060880191611466565b9260208601528483036040860152611466565b0390a26001600080516020611df88339815191525580f35b634e487b7160e01b87526011600452602487fd5b9093506020813d6020116103d3575b816103be602093836113c3565b810103126103ce57519238610319565b600080fd5b3d91506103b1565b6040513d8a823e3d90fd5b9093506020813d602011610414575b81610402602093836113c3565b810103126103ce5751926102ee6102b0565b3d91506103f5565b630b094f2760e31b8752600487fd5b6373cba66360e01b8752600487fd5b8580fd5b8480fd5b50346101aa5760603660031901126101aa5761045c611383565b61046461136d565b60443590610470611b7e565b6104786115cd565b610480611bba565b6001600160a01b03168084526001602052604084205490929060ff16156104f6576020816104d0847fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb9487611be4565b6040519384526001600160a01b031692a36001600080516020611df88339815191525580f35b630b094f2760e31b8452600484fd5b50346101aa5760203660031901126101aa5760209060ff906040906001600160a01b03610530611383565b168152600184522054166040519015158152f35b50346101aa5760403660031901126101aa5761057b60043561056461136d565b9061057661057182611445565b611669565b611ade565b5080f35b50346101aa5760603660031901126101aa57610599611383565b6105a161136d565b6105a9611399565b600080516020611e38833981519152549260ff8460401c16159367ffffffffffffffff8116801590816107ab575b60011490816107a1575b159081610798575b506107895767ffffffffffffffff198116600117600080516020611e38833981519152558461075c575b506001600160a01b03168015801561074b575b801561073a575b61072b576106c992916106c391610642611c88565b61064a611c88565b610652611c88565b6001600080516020611df88339815191525561066c611c88565b610674611c88565b86546001600160a01b0319908116919091178755600280549091166001600160a01b0385161790556106a5816117c5565b506106af8161185f565b506106b98361185f565b506106c3836116b3565b5061173f565b506106d15780f35b68ff000000000000000019600080516020611e388339815191525416600080516020611e38833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b63d92e233d60e01b8552600485fd5b506001600160a01b0382161561062d565b506001600160a01b03831615610626565b68ffffffffffffffffff19166801000000000000000117600080516020611e388339815191525538610613565b63f92ee8a960e01b8652600486fd5b905015386105e9565b303b1591506105e1565b8691506105d7565b50346101aa57806003193601126101aa5760408051916107d382846113c3565b60058352640352e302e360dc1b6020840152815192839160208352815191826020850152815b838110610816575050828201840152601f01601f19168101030190f35b6020828201810151888301880152879550016107f9565b50346101aa57366003190160a081126101a6576020136101aa5761084f61136d565b610857611399565b906064359160843567ffffffffffffffff811161043e5761087c903690600401611417565b9091610886611b7e565b61088e6115cd565b610896611bba565b6001600160a01b03168086526001602052604086205490949060ff16156109c95785546108ce9082906001600160a01b031687611be4565b85546001600160a01b0316938690853b156101a657604051633ddf4d7d60e11b815290829082906001600160a01b03610905611383565b166004830152602482018a90526001600160a01b0316604482018190526064820186905260a060848301529781838161094260a482018b8d611466565b03925af180156109be576109a9575b50506109917f6478cbb6e28c0823c691dfd74c01c985634faddd4c401b990fe4ec26277ea8d5936040519384938452604060208501526040840191611466565b0390a36001600080516020611df88339815191525580f35b816109b3916113c3565b61043a578538610951565b6040513d84823e3d90fd5b630b094f2760e31b8652600486fd5b50346101aa57806003193601126101aa57602090604051908152f35b50346101aa5760203660031901126101aa57610a0e611383565b610a1661161b565b6001600160a01b03168015610a6357808252600160205260408220600160ff198254161790557faab7954e9d246b167ef88aeddad35209ca2489d95a8aeb59e288d9b19fae5a548280a280f35b63d92e233d60e01b8252600482fd5b50346101aa5760203660031901126101aa57610a8c611383565b610a9461161b565b6001600160a01b03168015610a6357808252600160205260408220805460ff191690557f51085ddf9ebdded84b76e829eb58c4078e4b5bdf97d9a94723f336039da467918280a280f35b50346101aa5760a03660031901126101aa57610af8611383565b610b0061136d565b9060443560643567ffffffffffffffff811161043e57610b24903690600401611417565b9190936084359067ffffffffffffffff8211610cb057608082600401926003199036030112610cb057610b55611b7e565b610b5d6115cd565b610b65611bba565b6001600160a01b03168087526001602052604087205490959060ff161561041c578654610b9d9084906001600160a01b031688611be4565b86546001600160a01b031694853b15610cac5787604051809263aa0c0fc160e01b825289600483015260018060a01b03169788602483015286604483015260a06064830152818381610c08610bf660a483018d8b611466565b8281036003190160848401528a611487565b03925af180156103db57610c6a575b507f7b53ec10a80164e60591c43d9c222e9354886981b880a3fba19c9ceb77fb9721939291610c5c610991926040519586958652606060208701526060860191611466565b908382036040850152611487565b91610c5c88610ca0610991949a7f7b53ec10a80164e60591c43d9c222e9354886981b880a3fba19c9ceb77fb97219897966113c3565b98925050919293610c17565b8780fd5b8680fd5b50346101aa5760203660031901126101aa57610cce611383565b610cd661157a565b6001600160a01b038116908115610d7157600254610d219190610d01906001600160a01b03166119b2565b50600254610d17906001600160a01b0316611a48565b506106c3816116b3565b50600254604080516001600160a01b0383168152602081018490527f4d3470c839d3c4dd664eec934b920c12fe0966e3185103dd40149496815df2b69190a16001600160a01b0319161760025580f35b63d92e233d60e01b8352600483fd5b50346101aa5760403660031901126101aa5760ff6040602092610da161136d565b6004358252600080516020611d9883398151915285528282206001600160a01b03909116825284522054604051911615158152f35b50346101aa57806003193601126101aa576020604051600080516020611d788339815191528152f35b50346101aa57806003193601126101aa57610e18611508565b610e20611bba565b600160ff19600080516020611dd8833981519152541617600080516020611dd8833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101aa57806003193601126101aa57602060ff600080516020611dd883398151915254166040519015158152f35b50346101aa57806003193601126101aa576002546040516001600160a01b039091168152602090f35b50346101aa57806003193601126101aa576020604051600080516020611d588339815191528152f35b50346101aa57806003193601126101aa577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610f4f576020604051600080516020611d388339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101aa57610f73611383565b6024359067ffffffffffffffff82116111a757366023830112156111a75781600401359083610fa1836113fb565b93610faf60405195866113c3565b838552602085019336602482840101116111a757806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611184575b506111755761101261157a565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181611141575b5061105557634c9c8ce360e01b86526004859052602486fd5b9384600080516020611d3883398151915287960361112f5750823b1561111d57600080516020611d3883398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a28051156111025761057b9382915190845af43d156110fa573d916110de836113fb565b926110ec60405194856113c3565b83523d85602085013e611cb6565b606091611cb6565b505050503461110e5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d60201161116d575b8161115d602093836113c3565b81010312610cb05751903861103c565b3d9150611150565b63703e46dd60e11b8452600484fd5b600080516020611d38833981519152546001600160a01b03161415905038611005565b8280fd5b50346101aa57806003193601126101aa576111c4611508565b600080516020611dd88339815191525460ff81161561121e5760ff1916600080516020611dd8833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346101aa5760403660031901126101aa5761124761136d565b336001600160a01b038216036112635761057b90600435611ade565b63334bd91960e11b8252600482fd5b50346101aa5760403660031901126101aa5761057b60043561129261136d565b9061129f61057182611445565b61191b565b50346101aa57806003193601126101aa57602060ff60025460a01c166040519015158152f35b50346101aa5760203660031901126101aa5760206112e9600435611445565b604051908152f35b50346101aa57806003193601126101aa57546040516001600160a01b039091168152602090f35b9050346101a65760203660031901126101a65760043563ffffffff60e01b81168091036111a75760209250637965db0b60e01b811490811561135c575b5015158152f35b6301ffc9a760e01b14905038611355565b602435906001600160a01b03821682036103ce57565b600435906001600160a01b03821682036103ce57565b604435906001600160a01b03821682036103ce57565b35906001600160a01b03821682036103ce57565b90601f8019910116810190811067ffffffffffffffff8211176113e557604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116113e557601f01601f191660200190565b9181601f840112156103ce5782359167ffffffffffffffff83116103ce57602083818601950101116103ce57565b600052600080516020611d9883398151915260205260016040600020015490565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160a01b03611498826113af565b1682526001600160a01b036114af602083016113af565b166020830152604081013560408301526060810135601e19823603018112156103ce57016020813591019067ffffffffffffffff81116103ce5780360382136103ce576080838160606115059601520191611466565b90565b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561154157565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16156115b357565b63e2517d3f60e01b60005233600452600060245260446000fd5b336000908152600080516020611e18833981519152602052604090205460ff16156115f457565b63e2517d3f60e01b60005233600452600080516020611d7883398151915260245260446000fd5b336000908152600080516020611db8833981519152602052604090205460ff161561164257565b63e2517d3f60e01b60005233600452600080516020611d5883398151915260245260446000fd5b6000818152600080516020611d988339815191526020908152604080832033845290915290205460ff161561169b5750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b0381166000908152600080516020611e18833981519152602052604090205460ff16611739576001600160a01b03166000818152600080516020611e1883398151915260205260408120805460ff19166001179055339190600080516020611d7883398151915290600080516020611d188339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020611db8833981519152602052604090205460ff16611739576001600160a01b03166000818152600080516020611db883398151915260205260408120805460ff19166001179055339190600080516020611d5883398151915290600080516020611d188339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16611739576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff19166001179055339190600080516020611d188339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff16611739576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a90600080516020611d188339815191529080a4600190565b6000818152600080516020611d98833981519152602090815260408083206001600160a01b038616845290915290205460ff166119ab576000818152600080516020611d98833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff1916600117905533929190600080516020611d188339815191529080a4600190565b5050600090565b6001600160a01b0381166000908152600080516020611e18833981519152602052604090205460ff1615611739576001600160a01b03166000818152600080516020611e1883398151915260205260408120805460ff19169055339190600080516020611d78833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381166000908152600080516020611db8833981519152602052604090205460ff1615611739576001600160a01b03166000818152600080516020611db883398151915260205260408120805460ff19169055339190600080516020611d58833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020611d98833981519152602090815260408083206001600160a01b038616845290915290205460ff16156119ab576000818152600080516020611d98833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6002600080516020611df88339815191525414611ba9576002600080516020611df883398151915255565b633ee5aeb560e01b60005260046000fd5b60ff600080516020611dd88339815191525416611bd357565b63d93c066560e01b60005260046000fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152611c1f916102e96064836113c3565b565b906000602091828151910182855af115611c7c576000513d611c7357506001600160a01b0381163b155b611c525750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b60011415611c4b565b6040513d6000823e3d90fd5b60ff600080516020611e388339815191525460401c1615611ca557565b631afcd79f60e31b60005260046000fd5b90611cdc5750805115611ccb57805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611d0e575b611ced575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15611ce556fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8619cecd8b9e095ab43867f5b69d492180450fe862e6b50bfbfb24b75dd84c8a10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009e55e7b9c223644eee376bcbcf651816b24106427c658526e048949da61b2c08cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00395f4e35a18c2b5e556b3b2ff855307e76c0b3cc1ca71e19a70e83037e08e7b3f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212206353f97c2bca70990562e73c05a556d800ce6f131c5458a0f2aa0fe6f1af58ff64736f6c634300081a003360a080604052346100ea57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b6040516128fe90816100f0823960805181818161120b01526112db0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880610054565b63f92ee8a960e01b60005260046000fd5b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a7146119015750806310188aef1461188f578063102614b01461179f5780631becceb4146116c457806321e093b11461169b578063248a9ca3146116745780632f2ff15d1461164257806336568abe146115fd57806338e22527146115035780633f4ba83a146114815780634f1ef2861461126057806352d1902d146111f857806357bec62f146111cf5780635b112591146111a65780635c975abb146111765780635d62c8601461113b578063726ac97c1461100c578063744b9b8b14610f295780637bbe9afa14610b1c5780638456cb5914610aa757806391d1485414610a4e578063950837aa146109ab578063a217fddf1461098f578063a2ba193414610972578063a783c78914610949578063aa0c0fc1146107f8578063ad3cb1cc146107ab578063ae7a3a6f1461072f578063c0c53b8b14610519578063cb7ba8e5146103a9578063d09e3b7814610236578063d547741f146101fb578063dda79b75146101d45763e63ab1e91461019757600080fd5b346101d157806003193601126101d15760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b80fd5b50346101d157806003193601126101d157546040516001600160a01b039091168152602090f35b50346101d15760403660031901126101d15761023260043561021b611987565b9061022d61022882611bf9565b611ea1565b6123d1565b5080f35b50346101d15760a03660031901126101d157610250611956565b60243561025b611971565b916064356001600160401b0381116103a55761027b9036906004016119b1565b608435946001600160401b0386116103a157856004019360a0600319883603011261039d576102a8612220565b851561038e576001600160a01b031695861561037f576064016104006102d96102d18388611ae2565b905085611bd6565b116103515750610347927fa795d4377323e4c2d4c346b8050a7dd504c4043be8884c81b8d9690706c8388f94928261031588610339953361224a565b60405197885260018060a01b03166020880152608060408801526080870191611b45565b908482036060860152611b66565b918033930390a380f35b8761036a8461036260449489611ae2565b919050611bd6565b634fe7bc4760e11b8252600452610400602452fd5b63d92e233d60e01b8852600488fd5b63951e19ed60e01b8852600488fd5b8780fd5b8680fd5b8480fd5b5060603660031901126101d1576103be611956565b906024356001600160401b038111610515576103de9036906004016119b1565b604493919335906001600160401b038211610511576080826004019260031990360301126105115761040e612471565b610416611d6f565b61041e612220565b6001600160a01b03831692831561050257848080809334905af1610440611c4a565b50156104f3578394833b156103a557604051636481451b60e11b8152602060048201528581806104736024820188611c92565b038183895af19081156104e85786916104d3575b50506104bb7fde7603a6ed5d07c9f43597ccfe9043d15b66d3284f0de321f5cdf56329e6e035936040519384933485611cf0565b0390a360016000805160206128698339815191525580f35b816104dd91611a90565b6103a5578438610487565b6040513d88823e3d90fd5b632b3f6d1160e21b8452600484fd5b63d92e233d60e01b8552600485fd5b8380fd5b5080fd5b50346101d15760603660031901126101d157610533611956565b61053b611987565b610543611971565b916000805160206128a9833981519152549260ff8460401c1615936001600160401b03811680159081610727575b600114908161071d575b159081610714575b506107055767ffffffffffffffff1981166001176000805160206128a983398151915255846106d8575b506001600160a01b03821690811580156106c7575b6106b8579061061861063b93926105d7612719565b6105df612719565b6105e7612719565b600160008051602061286983398151915255610601612719565b610609612719565b61061281612033565b506120cd565b50610622826120cd565b506001600160601b0360a01b6001541617600155611fad565b5060018060a01b03166001600160601b0360a01b600354161760035561065e5780f35b68ff0000000000000000196000805160206128a983398151915254166000805160206128a9833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b63d92e233d60e01b8652600486fd5b506001600160a01b038416156105c2565b68ffffffffffffffffff191668010000000000000001176000805160206128a983398151915255386105ad565b63f92ee8a960e01b8652600486fd5b90501538610583565b303b15915061057b565b869150610571565b50346101d15760203660031901126101d157610749611956565b610751611d1c565b6001600160a01b03811690811561079c5782546001600160a01b031661078d5761077a90611eeb565b5081546001600160a01b03191617815580f35b631666fe6f60e31b8352600483fd5b63d92e233d60e01b8352600483fd5b50346101d157806003193601126101d157506107f46040516107ce604082611a90565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611a6b565b0390f35b50346101d15760a03660031901126101d157610812611956565b61081a611987565b906044356064356001600160401b0381116103a55761083d9036906004016119b1565b91608435926001600160401b0384116103a1576080846004019460031990360301126103a15761086b612471565b610873611e2f565b61087b612220565b811561093a576001600160a01b03861694851561037f576001600160a01b0316956108a890839088612682565b843b156103a157604051636481451b60e11b81526020600482015287908181806108d5602482018a611c92565b0381838b5af1801561092f5761091a575b50507fde7603a6ed5d07c9f43597ccfe9043d15b66d3284f0de321f5cdf56329e6e035936104bb9160405194859485611cf0565b8161092491611a90565b6103a15786386108e6565b6040513d84823e3d90fd5b63951e19ed60e01b8752600487fd5b50346101d157806003193601126101d15760206040516000805160206127a98339815191528152f35b50346101d157806003193601126101d15760206040516104008152f35b50346101d157806003193601126101d157602090604051908152f35b50346101d15760203660031901126101d1576109c5611956565b6109cd611d1c565b6001600160a01b03811690811561079c576001546109fe91906109f8906001600160a01b031661233b565b50611fad565b50600154604080516001600160a01b0383168152602081018490527f3a7b8d6372645f474fe60c115a2ef21421306a3ed4664fa0023c461413c085799190a16001600160a01b0319161760015580f35b50346101d15760403660031901126101d1576040610a6a611987565b916004358152600080516020612829833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346101d157806003193601126101d157610ac0611dbd565b610ac8612220565b600160ff19600080516020612849833981519152541617600080516020612849833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101d157366003190160a08112610515576020136101d157610b3e611987565b610b46611971565b906064356084356001600160401b0381116103a557610b699036906004016119b1565b610b74929192612471565b610b7c611e2f565b610b84612220565b8115610f1a576001600160a01b038516948515610f0b57610ba58186612622565b15610eea5760405163095ea7b360e01b81526001600160a01b03828116600483015260248201859052861695906020816044818c8b5af1908115610e55578991610ecb575b5015610eb457610c1b91906001600160a01b03610c05611c1a565b16610ea957610c1584878461258a565b50612622565b15610e92576040516370a0823160e01b8152306004820152602081602481885afa908115610d52578791610e60575b5080610c73575b50906104bb600080516020612809833981519152939260405193849384611c30565b6003546001600160a01b03168503610dbe5760025460405163095ea7b360e01b81526001600160a01b039091166004820152602481018290526020816044818b8a5af1908115610db3578891610d84575b5015610d61576002548791906001600160a01b0316803b15610d5d5760248392604051948593849263743e0c9b60e01b845260048401525af18015610d5257610d28575b50906104bb60008051602061280983398151915293925b91929350610c51565b86610d48600080516020612809833981519152959493986104bb93611a90565b9691929350610d08565b6040513d89823e3d90fd5b8280fd5b60025463482b72c160e11b885260048690526001600160a01b0316602452604487fd5b610da6915060203d602011610dac575b610d9e8183611a90565b810190611c7a565b38610cc4565b503d610d94565b6040513d8a823e3d90fd5b8654604051636c9b2a3f60e11b8152600481018790526001600160a01b0390911690602081602481855afa908115610e55578991610e36575b5015610e225791610e1d6104bb9260008051602061280983398151915296959488612682565b610d1f565b631387a34960e01b88526004869052602488fd5b610e4f915060203d602011610dac57610d9e8183611a90565b38610df7565b6040513d8b823e3d90fd5b90506020813d602011610e8a575b81610e7b60209383611a90565b810103126103a1575138610c4a565b3d9150610e6e565b604486868663482b72c160e11b8352600452602452fd5b610c158487846124ad565b604488888863482b72c160e11b8352600452602452fd5b610ee4915060203d602011610dac57610d9e8183611a90565b38610bea565b63482b72c160e11b87526001600160a01b0385166004526024869052604487fd5b63d92e233d60e01b8752600487fd5b63951e19ed60e01b8652600486fd5b50610f33366119de565b909192610f3e612220565b3415610ffd576001600160a01b03169283156105025760608201610400610f70610f688386611ae2565b905086611bd6565b11610fec5750848080803460018060a01b03600154165af1610f90611c4a565b5015610fdd577fa795d4377323e4c2d4c346b8050a7dd504c4043be8884c81b8d9690706c8388f916103396103479260405195348752886020880152608060408801526080870191611b45565b6379cacff160e01b8552600485fd5b8561036a8561036260449487611ae2565b633b38932f60e11b8552600485fd5b5060403660031901126101d157611021611956565b602435906001600160401b038211610d5d57816004019060a060031984360301126105115761104e612220565b341561112c576001600160a01b031691821561111d576064016104006110748284611ae2565b9050116110fa5750828080803460018060a01b03600154165af1611096611c4a565b50156110eb577fc6f891b65320c682b217616a62b51f218fee95d5f0ba83e758ef9ab4ee8e975c610347604051923484528560208501526080604085015285608085015260a0606085015260a0840190611b66565b6379cacff160e01b8352600483fd5b6111078491604493611ae2565b634fe7bc4760e11b835260045250610400602452fd5b63d92e233d60e01b8452600484fd5b633b38932f60e11b8452600484fd5b50346101d157806003193601126101d15760206040517f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b98152f35b50346101d157806003193601126101d157602060ff60008051602061284983398151915254166040519015158152f35b50346101d157806003193601126101d1576001546040516001600160a01b039091168152602090f35b50346101d157806003193601126101d1576002546040516001600160a01b039091168152602090f35b50346101d157806003193601126101d1577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036112515760206040516000805160206127e98339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101d157611275611956565b602435906001600160401b038211610d5d5736602383011215610d5d57816004013590836112a283611ac7565b936112b06040519586611a90565b83855260208501933660248284010111610d5d57806024602093018637850101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630811490811561145e575b5061144f57611313611d1c565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa86918161141b575b5061135657634c9c8ce360e01b86526004859052602486fd5b93846000805160206127e98339815191528796036114095750823b156113f7576000805160206127e983398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a28051156113dc576102329382915190845af46113d6611c4a565b91612747565b50505050346113e85780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011611447575b8161143760209383611a90565b810103126103a15751903861133d565b3d915061142a565b63703e46dd60e11b8452600484fd5b6000805160206127e9833981519152546001600160a01b03161415905038611306565b50346101d157806003193601126101d15761149a611dbd565b6000805160206128498339815191525460ff8116156114f45760ff1916600080516020612849833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50366003190160608112610515576020136101d157611520611987565b6044356001600160401b038111610d5d5761153f9036906004016119b1565b61154a929192612471565b611552611d6f565b61155a612220565b6001600160a01b038216918215610502576107f494507fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f919081856001600160a01b036115a5611c1a565b166115ee576115b39261258a565b935b6115c56040519283923484611c30565b0390a2600160008051602061286983398151915255604051918291602083526020830190611a6b565b6115f7926124ad565b936115b5565b50346101d15760403660031901126101d157611617611987565b336001600160a01b0382160361163357610232906004356123d1565b63334bd91960e11b8252600482fd5b50346101d15760403660031901126101d157610232600435611662611987565b9061166f61022882611bf9565b612189565b50346101d15760203660031901126101d1576020611693600435611bf9565b604051908152f35b50346101d157806003193601126101d1576003546040516001600160a01b039091168152602090f35b50346101d1576116d3366119de565b9190926116de612220565b6020830135801515810361179b5761178c576001600160a01b0316928315610502576117186117106060850185611ae2565b905082611bd6565b61040081116117745750907fd34634f30f94a646fdf4ce7078f38fc5fa0d3f0b193658facea4e3e43330d9749161176e61175f604051938493604085526040850191611b45565b82810360208401523395611b66565b0390a380f35b634fe7bc4760e11b8652600452610400602452604485fd5b630cda5ff960e11b8552600485fd5b8580fd5b50346101d15760803660031901126101d1576117b9611956565b6024356117c4611971565b91606435926001600160401b0384116103a557836004019160a0600319863603011261179b576117f2612220565b8315610f1a576001600160a01b03169384156106b8576064016104006118188285611ae2565b90501161188257507fc6f891b65320c682b217616a62b51f218fee95d5f0ba83e758ef9ab4ee8e975c918161185185610347943361224a565b60405194855260018060a01b031660208501526080604085015285608085015260a0606085015260a0840190611b66565b8561110760449285611ae2565b50346101d15760203660031901126101d1576118a9611956565b6118b1611d1c565b6001600160a01b03811690811561079c576002546001600160a01b03166118f2576118db90611eeb565b506001600160601b0360a01b600254161760025580f35b630646e00b60e11b8352600483fd5b9050346105155760203660031901126105155760043563ffffffff60e01b8116809103610d5d5760209250637965db0b60e01b8114908115611945575b5015158152f35b6301ffc9a760e01b1490503861193e565b600435906001600160a01b038216820361196c57565b600080fd5b604435906001600160a01b038216820361196c57565b602435906001600160a01b038216820361196c57565b35906001600160a01b038216820361196c57565b9181601f8401121561196c578235916001600160401b03831161196c576020838186019501011161196c57565b90606060031983011261196c576004356001600160a01b038116810361196c57916024356001600160401b03811161196c5781611a1d916004016119b1565b92909291604435906001600160401b03821161196c5760a090829003600319011261196c5760040190565b60005b838110611a5b5750506000910152565b8181015183820152602001611a4b565b90602091611a8481518092818552858086019101611a48565b601f01601f1916010190565b90601f801991011681019081106001600160401b03821117611ab157604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b038111611ab157601f01601f191660200190565b903590601e198136030182121561196c57018035906001600160401b03821161196c5760200191813603831361196c57565b9035601e198236030181121561196c5701602081359101916001600160401b03821161196c57813603831361196c57565b908060209392818452848401376000828201840152601f01601f1916010190565b906001600160a01b03611b788361199d565b168152602082013580151580910361196c5760208201526001600160a01b03611ba36040840161199d565b166040820152608080611bcd611bbc6060860186611b14565b60a0606087015260a0860191611b45565b93013591015290565b91908201809211611be357565b634e487b7160e01b600052601160045260246000fd5b60005260008051602061282983398151915260205260016040600020015490565b6004356001600160a01b038116810361196c5790565b604090611c47949281528160208201520191611b45565b90565b3d15611c75573d90611c5b82611ac7565b91611c696040519384611a90565b82523d6000602084013e565b606090565b9081602091031261196c5751801515810361196c5790565b611c479190608090611ce0906001600160a01b03611caf8261199d565b1684526001600160a01b03611cc66020830161199d565b166020850152604081013560408501526060810190611b14565b9190928160608201520191611b45565b9291611c479492611d0e928552606060208601526060850191611b45565b916040818403910152611c92565b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1615611d5557565b63e2517d3f60e01b60005233600452600060245260446000fd5b336000908152600080516020612889833981519152602052604090205460ff1615611d9657565b63e2517d3f60e01b600052336004526000805160206127a983398151915260245260446000fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1615611df657565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527f8e1abba0e730025cbab32adfc4f51c1ad3a74360c4b2cfb4780a6c5f316e0509602052604090205460ff1615611e6857565b63e2517d3f60e01b600052336004527f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b960245260446000fd5b60008181526000805160206128298339815191526020908152604080832033845290915290205460ff1615611ed35750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b03811660009081527f8e1abba0e730025cbab32adfc4f51c1ad3a74360c4b2cfb4780a6c5f316e0509602052604090205460ff16611fa7576001600160a01b031660008181527f8e1abba0e730025cbab32adfc4f51c1ad3a74360c4b2cfb4780a6c5f316e050960205260408120805460ff191660011790553391907f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b9906000805160206127c98339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020612889833981519152602052604090205460ff16611fa7576001600160a01b0316600081815260008051602061288983398151915260205260408120805460ff191660011790553391906000805160206127a9833981519152906000805160206127c98339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16611fa7576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391906000805160206127c98339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff16611fa7576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a906000805160206127c98339815191529080a4600190565b6000818152600080516020612829833981519152602090815260408083206001600160a01b038616845290915290205460ff16612219576000818152600080516020612829833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291906000805160206127c98339815191529080a4600190565b5050600090565b60ff600080516020612849833981519152541661223957565b63d93c066560e01b60005260046000fd5b60035492939290916001600160a01b03908116911681036122765763e4dd681d60e01b60005260046000fd5b600054604051636c9b2a3f60e11b8152600481018390526001600160a01b039091169490602081602481895afa90811561232f57600091612310575b50156122fb576122f99394604051936323b872dd60e01b602086015260018060a01b0316602485015260448401526064830152606482526122f4608483611a90565b6126be565b565b50631387a34960e01b60005260045260246000fd5b612329915060203d602011610dac57610d9e8183611a90565b386122b2565b6040513d6000823e3d90fd5b6001600160a01b0381166000908152600080516020612889833981519152602052604090205460ff1615611fa7576001600160a01b0316600081815260008051602061288983398151915260205260408120805460ff191690553391906000805160206127a9833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020612829833981519152602090815260408083206001600160a01b038616845290915290205460ff1615612219576000818152600080516020612829833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6002600080516020612869833981519152541461249c57600260008051602061286983398151915255565b633ee5aeb560e01b60005260046000fd5b6040516319db301560e21b815292916004356001600160a01b03811692919083900361196c57846124f581949260009683946004850152604060248501526044840191611b45565b039134906001600160a01b03165af190811561232f57600091612516575090565b903d8082843e6125268184611a90565b820191602081840312610515578051906001600160401b038211610d5d570182601f820112156105155780519161255c83611ac7565b9361256a6040519586611a90565b838552602084840101116101d1575090611c479160208085019101611a48565b9060048310156125d2575b908260009392849360405192839283378101848152039134905af16125b8611c4a565b90156125c15790565b632b3f6d1160e21b60005260046000fd5b9081356001600160e01b0319166319db301560e21b811461261157636481451b60e11b146126005790612595565b6379a2cd4b60e11b60005260046000fd5b63ed69977560e01b60005260046000fd5b60405163095ea7b360e01b81526001600160a01b039283166004820152600060248201819052909260209284926044928492165af190811561232f57600091612669575090565b611c47915060203d602011610dac57610d9e8183611a90565b60405163a9059cbb60e01b60208201526001600160a01b039290921660248301526044808301939093529181526122f9916122f4606483611a90565b906000602091828151910182855af11561232f576000513d61271057506001600160a01b0381163b155b6126ef5750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b600114156126e8565b60ff6000805160206128a98339815191525460401c161561273657565b631afcd79f60e31b60005260046000fd5b9061276d575080511561275c57805190602001fd5b63d6bda27560e01b60005260046000fd5b8151158061279f575b61277e575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b1561277656fe0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b738202dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f007bdc20c26beb8eedd348733c28a5c4c2f7f7f1183cba8898195258fcdca273bcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220e3ceedd3e1180302ea91f43717e98df4951453d3ade1c5982edc0e113031242064736f6c634300081a003360a0806040523460295730608052611bc4908161002f8239608051818181610bd40152610ca50152f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a71461107a57508063106e629014610fe2578063116191b614610fbb57806321e093b114610f92578063248a9ca314610f6b5780632f2ff15d14610f3957806336568abe14610ef45780633f4ba83a14610e725780634f1ef28614610c2957806352d1902d14610bc15780635b11259114610b985780635c975abb14610b685780636f8728ad146109a45780636fb9a7af1461081a578063743e0c9b146107b35780638456cb591461073e57806385f438c11461071557806391d14854146106bc578063950837aa146105ea578063a217fddf146105ce578063a783c78914610593578063ad3cb1cc14610519578063d547741f146104de578063e63ab1e9146104a35763f8c8765e1461013457600080fd5b346104a05760803660031901126104a05761014d6110cf565b6101556110ea565b906044356001600160a01b03811680820361049c576064356001600160a01b0381169490919085830361049857600080516020611b6f833981519152549567ffffffffffffffff60ff8860401c1615971680159081610490575b6001149081610486575b15908161047d575b5061046e57866101cf611259565b61043c575b600080516020611b6f833981519152549567ffffffffffffffff60ff8860401c1615971680159081610434575b600114908161042a575b159081610421575b506104125786610221611259565b6103e0575b6001600160a01b03169081159081156103ce575b81156103c5575b81156103bc575b506103ad57916102f49493916102ee936102606119df565b6102686119df565b6102706119df565b6001600080516020611b0f8339815191525561028a6119df565b6102926119df565b6001600160601b0360a01b8a541617895560018060a01b03166001600160601b0360a01b60015416176001556001600160601b0360a01b60025416176002556102da816115ad565b506102e483611489565b506102ee83611515565b50611647565b50610356575b6103015780f35b60ff60401b19600080516020611b6f8339815191525416600080516020611b6f833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b60ff60401b19600080516020611b6f8339815191525416600080516020611b6f833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a16102fa565b63d92e233d60e01b8852600488fd5b90501538610248565b84159150610241565b6001600160a01b03841615915061023a565b600160401b60ff60401b19600080516020611b6f833981519152541617600080516020611b6f83398151915255610226565b63f92ee8a960e01b8952600489fd5b90501538610213565b303b15915061020b565b889150610201565b600160401b60ff60401b19600080516020611b6f833981519152541617600080516020611b6f833981519152556101d4565b63f92ee8a960e01b8852600488fd5b905015386101c1565b303b1591506101b9565b8891506101af565b8680fd5b8480fd5b80fd5b50346104a057806003193601126104a05760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346104a05760403660031901126104a0576105156004356104fe6110ea565b9061051061050b82611196565b6113d8565b6118d8565b5080f35b50346104a057806003193601126104a05760408051916105398284611114565b60058352640352e302e360dc1b6020840152815192839160208352815191826020850152815b83811061057c575050828201840152601f01601f19168101030190f35b60208282018101518883018801528795500161055f565b50346104a057806003193601126104a05760206040517f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb8152f35b50346104a057806003193601126104a057602090604051908152f35b50346104a05760203660031901126104a0576106046110cf565b61060c611385565b6001600160a01b0381169081156106ad5760025461065d9190610637906001600160a01b031661179a565b5060025461064d906001600160a01b0316611830565b5061065781611489565b50611515565b50600254604080516001600160a01b0383168152602081018490527f33770ab682353c17917ad3e667f05905fc8dda00671ef1ed33bef9bc8db0323e9190a16001600160a01b0319161760025580f35b63d92e233d60e01b8352600483fd5b50346104a05760403660031901126104a05760406106d86110ea565b916004358152600080516020611acf833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346104a057806003193601126104a0576020604051600080516020611aaf8339815191528152f35b50346104a057806003193601126104a057610757611313565b61075f611422565b600160ff19600080516020611aef833981519152541617600080516020611aef833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346104a05760203660031901126104a0576107cd611422565b6001546040516323b872dd60e01b60208201523360248201523060448201526004356064808301919091528152610817916001600160a01b0316610812608483611114565b611978565b80f35b50346104a057366003190160a081126109a0576020136104a05761083c6110ea565b60443560643567ffffffffffffffff811161099c5761085f903690600401611168565b9091610869611289565b6108716112c5565b610879611422565b60015485546108969183916001600160a01b03908116911661144c565b84546001546001600160a01b03918216958792909116863b1561099857604051633ddf4d7d60e11b81529183918391906001600160a01b036108d66110cf565b16600484015260248301526001600160a01b0316604482018190526064820186905260a060848301529781838161091160a482018b8d6111b7565b03925af1801561098d57610978575b50506109607f23b9573b29ff81f01c7aa1968188e1cb7d5858b08582e111fdaf386d9ef9bd8d9360405193849384526040602085015260408401916111b7565b0390a26001600080516020611b0f8339815191525580f35b8161098291611114565b61049c578438610920565b6040513d84823e3d90fd5b8280fd5b8380fd5b5080fd5b50346104a05760a03660031901126104a0576109be6110cf565b906024359060443567ffffffffffffffff81116109a0576109e3903690600401611168565b909260843567ffffffffffffffff811161099c5760808160040191600319903603011261099c57610a12611289565b610a1a6112c5565b610a22611422565b6001548454610a3f9184916001600160a01b03908116911661144c565b83546001546001600160a01b03918216979116873b15610b645794610aa78798610ab99383809a996040519687958694859363aa0c0fc160e01b8552600485015260018060a01b03169c8d60248501528b604485015260a060648501528c60a48501916111b7565b828103600319016084840152896111d8565b03925af18015610b5957610b1b575b5061096090610b0d7f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff095969760405195869586526060602087015260608601916111b7565b9083820360408501526111d8565b90610b0d86610b4f7f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff0979861096095611114565b9695505090610ac8565b6040513d88823e3d90fd5b8580fd5b50346104a057806003193601126104a057602060ff600080516020611aef83398151915254166040519015158152f35b50346104a057806003193601126104a0576002546040516001600160a01b039091168152602090f35b50346104a057806003193601126104a0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610c1a576020604051600080516020611a8f8339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126104a057610c3e6110cf565b6024359067ffffffffffffffff821161099857366023830112156109985781600401359083610c6c8361114c565b93610c7a6040519586611114565b8385526020850193366024828401011161099857806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610e4f575b50610e4057610cdd611385565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181610e0c575b50610d2057634c9c8ce360e01b86526004859052602486fd5b9384600080516020611a8f833981519152879603610dfa5750823b15610de857600080516020611a8f83398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115610dcd576105159382915190845af43d15610dc5573d91610da98361114c565b92610db76040519485611114565b83523d85602085013e611a0d565b606091611a0d565b5050505034610dd95780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011610e38575b81610e2860209383611114565b8101031261049857519038610d07565b3d9150610e1b565b63703e46dd60e11b8452600484fd5b600080516020611a8f833981519152546001600160a01b03161415905038610cd0565b50346104a057806003193601126104a057610e8b611313565b600080516020611aef8339815191525460ff811615610ee55760ff1916600080516020611aef833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346104a05760403660031901126104a057610f0e6110ea565b336001600160a01b03821603610f2a57610515906004356118d8565b63334bd91960e11b8252600482fd5b50346104a05760403660031901126104a057610515600435610f596110ea565b90610f6661050b82611196565b611703565b50346104a05760203660031901126104a0576020610f8a600435611196565b604051908152f35b50346104a057806003193601126104a0576001546040516001600160a01b039091168152602090f35b50346104a057806003193601126104a057546040516001600160a01b039091168152602090f35b50346104a05760603660031901126104a057610ffc6110cf565b7f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d560206024359261102b611289565b6110336112c5565b61103b611422565b60015461105490859083906001600160a01b031661144c565b6040519384526001600160a01b031692a26001600080516020611b0f8339815191525580f35b9050346109a05760203660031901126109a05760043563ffffffff60e01b81168091036109985760209250637965db0b60e01b81149081156110be575b5015158152f35b6301ffc9a760e01b149050386110b7565b600435906001600160a01b03821682036110e557565b600080fd5b602435906001600160a01b03821682036110e557565b35906001600160a01b03821682036110e557565b90601f8019910116810190811067ffffffffffffffff82111761113657604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161113657601f01601f191660200190565b9181601f840112156110e55782359167ffffffffffffffff83116110e557602083818601950101116110e557565b600052600080516020611acf83398151915260205260016040600020015490565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160a01b036111e982611100565b1682526001600160a01b0361120060208301611100565b166020830152604081013560408301526060810135601e19823603018112156110e557016020813591019067ffffffffffffffff81116110e55780360382136110e55760808381606061125696015201916111b7565b90565b600167ffffffffffffffff19600080516020611b6f833981519152541617600080516020611b6f83398151915255565b6002600080516020611b0f83398151915254146112b4576002600080516020611b0f83398151915255565b633ee5aeb560e01b60005260046000fd5b336000908152600080516020611b2f833981519152602052604090205460ff16156112ec57565b63e2517d3f60e01b60005233600452600080516020611aaf83398151915260245260446000fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561134c57565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16156113be57565b63e2517d3f60e01b60005233600452600060245260446000fd5b6000818152600080516020611acf8339815191526020908152604080832033845290915290205460ff161561140a5750565b63e2517d3f60e01b6000523360045260245260446000fd5b60ff600080516020611aef833981519152541661143b57565b63d93c066560e01b60005260046000fd5b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815261148791610812606483611114565b565b6001600160a01b0381166000908152600080516020611b2f833981519152602052604090205460ff1661150f576001600160a01b03166000818152600080516020611b2f83398151915260205260408120805460ff19166001179055339190600080516020611aaf83398151915290600080516020611a6f8339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020611b4f833981519152602052604090205460ff1661150f576001600160a01b03166000818152600080516020611b4f83398151915260205260408120805460ff191660011790553391907f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb90600080516020611a6f8339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1661150f576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff19166001179055339190600080516020611a6f8339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1661150f576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a90600080516020611a6f8339815191529080a4600190565b6000818152600080516020611acf833981519152602090815260408083206001600160a01b038616845290915290205460ff16611793576000818152600080516020611acf833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff1916600117905533929190600080516020611a6f8339815191529080a4600190565b5050600090565b6001600160a01b0381166000908152600080516020611b2f833981519152602052604090205460ff161561150f576001600160a01b03166000818152600080516020611b2f83398151915260205260408120805460ff19169055339190600080516020611aaf833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381166000908152600080516020611b4f833981519152602052604090205460ff161561150f576001600160a01b03166000818152600080516020611b4f83398151915260205260408120805460ff191690553391907f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020611acf833981519152602090815260408083206001600160a01b038616845290915290205460ff1615611793576000818152600080516020611acf833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b906000602091828151910182855af1156119d3576000513d6119ca57506001600160a01b0381163b155b6119a95750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b600114156119a2565b6040513d6000823e3d90fd5b60ff600080516020611b6f8339815191525460401c16156119fc57565b631afcd79f60e31b60005260046000fd5b90611a335750805115611a2257805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611a65575b611a44575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15611a3c56fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00395f4e35a18c2b5e556b3b2ff855307e76c0b3cc1ca71e19a70e83037e08e7b37bdc20c26beb8eedd348733c28a5c4c2f7f7f1183cba8898195258fcdca273bcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212202bdad00032481621f5688942b2f2636896811e160d422fd2afd2200c14598d1164736f6c634300081a003360a0806040523460295730608052611ce5908161002f8239608051818181610cb70152610d880152f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a71461115157508063106e6290146110c5578063116191b61461109e57806321e093b114611075578063248a9ca31461104e5780632f2ff15d1461101c57806336568abe14610fd75780633f4ba83a14610f555780634f1ef28614610d0c57806352d1902d14610ca45780635b11259114610c7b5780635c975abb14610c4b5780636f8728ad14610a8a5780636f8b44b0146109d85780636fb9a7af1461085c578063743e0c9b146107db5780638456cb591461076657806385f438c11461073d57806391d14854146106e4578063950837aa14610612578063a217fddf146105f6578063a783c789146105cd578063ad3cb1cc14610553578063d547741f14610518578063d5abeb01146104fa578063e63ab1e9146104bf5763f8c8765e1461014a57600080fd5b346104bc5760803660031901126104bc576101636111a6565b61016b6111c1565b906044356001600160a01b0381168082036104b8576064356001600160a01b038116949091908583036104b457600080516020611c90833981519152549567ffffffffffffffff60ff8860401c16159716801590816104ac575b60011490816104a2575b159081610499575b5061048a57866101e5611330565b610458575b600080516020611c90833981519152549567ffffffffffffffff60ff8860401c1615971680159081610450575b6001149081610446575b15908161043d575b5061042e5786610237611330565b6103fc575b6001600160a01b03169081159081156103ea575b81156103e1575b81156103d8575b506103c9579161030a94939161030493610276611ae0565b61027e611ae0565b610286611ae0565b6001600080516020611c30833981519152556102a0611ae0565b6102a8611ae0565b6001600160601b0360a01b8a541617895560018060a01b03166001600160601b0360a01b60015416176001556001600160601b0360a01b60025416176002556102f081611727565b506102fa83611615565b50610304836116a1565b506117c1565b50610372575b60001960035561031d5780f35b60ff60401b19600080516020611c908339815191525416600080516020611c90833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b60ff60401b19600080516020611c908339815191525416600080516020611c90833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1610310565b63d92e233d60e01b8852600488fd5b9050153861025e565b84159150610257565b6001600160a01b038416159150610250565b600160401b60ff60401b19600080516020611c90833981519152541617600080516020611c908339815191525561023c565b63f92ee8a960e01b8952600489fd5b90501538610229565b303b159150610221565b889150610217565b600160401b60ff60401b19600080516020611c90833981519152541617600080516020611c90833981519152556101ea565b63f92ee8a960e01b8852600488fd5b905015386101d7565b303b1591506101cf565b8891506101c5565b8680fd5b8480fd5b80fd5b50346104bc57806003193601126104bc5760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346104bc57806003193601126104bc576020600354604051908152f35b50346104bc5760403660031901126104bc5761054f6004356105386111c1565b9061054a6105458261126d565b6114af565b611a40565b5080f35b50346104bc57806003193601126104bc57604080519161057382846111eb565b60058352640352e302e360dc1b6020840152815192839160208352815191826020850152815b8381106105b6575050828201840152601f01601f19168101030190f35b602082820181015188830188015287955001610599565b50346104bc57806003193601126104bc576020604051600080516020611b708339815191528152f35b50346104bc57806003193601126104bc57602090604051908152f35b50346104bc5760203660031901126104bc5761062c6111a6565b61063461145c565b6001600160a01b0381169081156106d557600254610685919061065f906001600160a01b0316611914565b50600254610675906001600160a01b03166119aa565b5061067f81611615565b506116a1565b50600254604080516001600160a01b0383168152602081018490527f33770ab682353c17917ad3e667f05905fc8dda00671ef1ed33bef9bc8db0323e9190a16001600160a01b0319161760025580f35b63d92e233d60e01b8352600483fd5b50346104bc5760403660031901126104bc5760406107006111c1565b916004358152600080516020611bf0833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346104bc57806003193601126104bc576020604051600080516020611bd08339815191528152f35b50346104bc57806003193601126104bc5761077f6113ea565b6107876114f9565b600160ff19600080516020611c10833981519152541617600080516020611c10833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346104bc5760203660031901126104bc576107f56114f9565b60015481906001600160a01b0316803b156108595781809160446040518094819363079cc67960e41b835233600484015260043560248401525af1801561084e5761083d5750f35b81610847916111eb565b6104bc5780f35b6040513d84823e3d90fd5b50fd5b50346104bc57366003190160a081126109d4576020136104bc5761087e6111c1565b60443560643567ffffffffffffffff81116109d0576108a190369060040161123f565b90916108ab611360565b6108b361139c565b6108bb6114f9565b84546108d5906084359083906001600160a01b0316611523565b84546001546001600160a01b03918216958792909116863b156109cc57604051633ddf4d7d60e11b81529183918391906001600160a01b036109156111a6565b16600484015260248301526001600160a01b0316604482018190526064820186905260a060848301529781838161095060a482018b8d61128e565b03925af1801561084e576109b7575b505061099f7f23b9573b29ff81f01c7aa1968188e1cb7d5858b08582e111fdaf386d9ef9bd8d93604051938493845260406020850152604084019161128e565b0390a26001600080516020611c308339815191525580f35b816109c1916111eb565b6104b857843861095f565b8280fd5b8380fd5b5080fd5b50346104bc5760203660031901126104bc57600080516020611b708339815191528152600080516020611bf08339815191526020908152604080832033600090815292529020546004359060ff1615610a655760207f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c91610a576114f9565b80600355604051908152a180f35b63e2517d3f60e01b825233600452600080516020611b70833981519152602452604482fd5b50346104bc5760a03660031901126104bc57610aa46111a6565b906024359060443567ffffffffffffffff81116109d457610ac990369060040161123f565b909260843567ffffffffffffffff81116109d0576080816004019160031990360301126109d057610af8611360565b610b0061139c565b610b086114f9565b8354610b22906064359084906001600160a01b0316611523565b83546001546001600160a01b03918216979116873b15610c475794610b8a8798610b9c9383809a996040519687958694859363aa0c0fc160e01b8552600485015260018060a01b03169c8d60248501528b604485015260a060648501528c60a485019161128e565b828103600319016084840152896112af565b03925af18015610c3c57610bfe575b5061099f90610bf07f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff0959697604051958695865260606020870152606086019161128e565b9083820360408501526112af565b90610bf086610c327f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff0979861099f956111eb565b9695505090610bab565b6040513d88823e3d90fd5b8580fd5b50346104bc57806003193601126104bc57602060ff600080516020611c1083398151915254166040519015158152f35b50346104bc57806003193601126104bc576002546040516001600160a01b039091168152602090f35b50346104bc57806003193601126104bc577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610cfd576020604051600080516020611bb08339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126104bc57610d216111a6565b6024359067ffffffffffffffff82116109cc57366023830112156109cc5781600401359083610d4f83611223565b93610d5d60405195866111eb565b838552602085019336602482840101116109cc57806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610f32575b50610f2357610dc061145c565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181610eef575b50610e0357634c9c8ce360e01b86526004859052602486fd5b9384600080516020611bb0833981519152879603610edd5750823b15610ecb57600080516020611bb083398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115610eb05761054f9382915190845af43d15610ea8573d91610e8c83611223565b92610e9a60405194856111eb565b83523d85602085013e611b0e565b606091611b0e565b5050505034610ebc5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011610f1b575b81610f0b602093836111eb565b810103126104b457519038610dea565b3d9150610efe565b63703e46dd60e11b8452600484fd5b600080516020611bb0833981519152546001600160a01b03161415905038610db3565b50346104bc57806003193601126104bc57610f6e6113ea565b600080516020611c108339815191525460ff811615610fc85760ff1916600080516020611c10833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346104bc5760403660031901126104bc57610ff16111c1565b336001600160a01b0382160361100d5761054f90600435611a40565b63334bd91960e11b8252600482fd5b50346104bc5760403660031901126104bc5761054f60043561103c6111c1565b906110496105458261126d565b61187d565b50346104bc5760203660031901126104bc57602061106d60043561126d565b604051908152f35b50346104bc57806003193601126104bc576001546040516001600160a01b039091168152602090f35b50346104bc57806003193601126104bc57546040516001600160a01b039091168152602090f35b50346104bc5760603660031901126104bc576110df6111a6565b7f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d560206024359261110e611360565b61111661139c565b61111e6114f9565b61112b6044358583611523565b6040519384526001600160a01b031692a26001600080516020611c308339815191525580f35b9050346109d45760203660031901126109d45760043563ffffffff60e01b81168091036109cc5760209250637965db0b60e01b8114908115611195575b5015158152f35b6301ffc9a760e01b1490503861118e565b600435906001600160a01b03821682036111bc57565b600080fd5b602435906001600160a01b03821682036111bc57565b35906001600160a01b03821682036111bc57565b90601f8019910116810190811067ffffffffffffffff82111761120d57604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161120d57601f01601f191660200190565b9181601f840112156111bc5782359167ffffffffffffffff83116111bc57602083818601950101116111bc57565b600052600080516020611bf083398151915260205260016040600020015490565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160a01b036112c0826111d7565b1682526001600160a01b036112d7602083016111d7565b166020830152604081013560408301526060810135601e19823603018112156111bc57016020813591019067ffffffffffffffff81116111bc5780360382136111bc5760808381606061132d960152019161128e565b90565b600167ffffffffffffffff19600080516020611c90833981519152541617600080516020611c9083398151915255565b6002600080516020611c30833981519152541461138b576002600080516020611c3083398151915255565b633ee5aeb560e01b60005260046000fd5b336000908152600080516020611c50833981519152602052604090205460ff16156113c357565b63e2517d3f60e01b60005233600452600080516020611bd083398151915260245260446000fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561142357565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff161561149557565b63e2517d3f60e01b60005233600452600060245260446000fd5b6000818152600080516020611bf08339815191526020908152604080832033845290915290205460ff16156114e15750565b63e2517d3f60e01b6000523360045260245260446000fd5b60ff600080516020611c10833981519152541661151257565b63d93c066560e01b60005260046000fd5b6001546040516318160ddd60e01b81526000949392916001600160a01b031690602081600481855afa908115610c3c5786916115e3575b5083018084116115cf57600354106115c057803b156104b857849291836064926040519687958694630f22c5f760e11b865260018060a01b03166004860152602485015260448401525af1801561084e576115b3575050565b816115bd916111eb565b50565b63c30436e960e01b8552600485fd5b634e487b7160e01b86526011600452602486fd5b90506020813d60201161160d575b816115fe602093836111eb565b81010312610c4757513861155a565b3d91506115f1565b6001600160a01b0381166000908152600080516020611c50833981519152602052604090205460ff1661169b576001600160a01b03166000818152600080516020611c5083398151915260205260408120805460ff19166001179055339190600080516020611bd083398151915290600080516020611b908339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020611c70833981519152602052604090205460ff1661169b576001600160a01b03166000818152600080516020611c7083398151915260205260408120805460ff19166001179055339190600080516020611b7083398151915290600080516020611b908339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1661169b576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff19166001179055339190600080516020611b908339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1661169b576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a90600080516020611b908339815191529080a4600190565b6000818152600080516020611bf0833981519152602090815260408083206001600160a01b038616845290915290205460ff1661190d576000818152600080516020611bf0833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff1916600117905533929190600080516020611b908339815191529080a4600190565b5050600090565b6001600160a01b0381166000908152600080516020611c50833981519152602052604090205460ff161561169b576001600160a01b03166000818152600080516020611c5083398151915260205260408120805460ff19169055339190600080516020611bd0833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381166000908152600080516020611c70833981519152602052604090205460ff161561169b576001600160a01b03166000818152600080516020611c7083398151915260205260408120805460ff19169055339190600080516020611b70833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020611bf0833981519152602090815260408083206001600160a01b038616845290915290205460ff161561190d576000818152600080516020611bf0833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b60ff600080516020611c908339815191525460401c1615611afd57565b631afcd79f60e31b60005260046000fd5b90611b345750805115611b2357805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611b66575b611b45575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15611b3d56fe0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00395f4e35a18c2b5e556b3b2ff855307e76c0b3cc1ca71e19a70e83037e08e7b37bdc20c26beb8eedd348733c28a5c4c2f7f7f1183cba8898195258fcdca273bcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212203f211d602b36c7fdf0f3b0fe8233e5a85a6bfca3cf4c804bfdd1d764320a84b564736f6c634300081a003360e0346100d757601f610bd638819003918201601f19168301916001600160401b038311848410176100dc578084926060946040528339810103126100d757610047816100f2565b906040610056602083016100f2565b9101519160805260a05260c052604051610acf90816101078239608051818181608a0152610196015260a05181818160dd0152818161070a015281816107e5015281816108990152818161094901526109f9015260c051818181604f0152818161076701528181610846015281816108f5015281816109ac0152610a530152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036100d75756fe6080604052600436106101815760003560e01c8063589dd5da1461007757806385e1f4d0146100375763ced52b4003610181576100c7565b346100725760003660031901126100725760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b600080fd5b34610072576000366003190112610072577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b600091031261007257565b34610072576000366003190112610072576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761013e57604052565b61010c565b90601f8019910116810190811067ffffffffffffffff82111761013e57604052565b67ffffffffffffffff811161013e57601f01601f191660200190565b600080604051368282378036810183815203907f00000000000000000000000000000000000000000000000000000000000000005af43d1561023c573d906101c882610165565b916101d66040519384610143565b82523d6000602084013e5b156101f7576101ef366106c3565b602081519101f35b60405162461bcd60e51b815260206004820152601b60248201527f476174657761792064656c656761746563616c6c206661696c656400000000006044820152606490fd5b6060906101e1565b906004116100725790600490565b909291928360041161007257831161007257600401916003190190565b356001600160e01b031981169291906004821061028a575050565b6001600160e01b031960049290920360031b82901b16169150565b6001600160a01b0381160361007257565b81601f82011215610072578035906102cd82610165565b926102db6040519485610143565b8284526020838301011161007257816000926020809301838601378301015290565b3590610308826102a5565b565b91909160a081840312610072576040519061032482610122565b81938135610331816102a5565b835260208201358015158103610072576020840152610352604083016102fd565b604084015260608201359167ffffffffffffffff83116100725761037c60809392849383016102b6565b60608501520135910152565b9160608383031261007257823561039e816102a5565b92602081013567ffffffffffffffff811161007257836103bf9183016102b6565b92604082013567ffffffffffffffff8111610072576103de920161030a565b90565b919082519283825260005b84811061040d575050826000602080949584010152601f8019910116010190565b806020809284010151828286010152016103ec565b9060018060a01b03825116815260208201511515602082015260018060a01b036040830151166040820152608080610469606085015160a0606086015260a08501906103e1565b93015191015290565b9081526001600160a01b0391821660208201529116604082015260a0606082018190526103de9391926104a7918401906103e1565b916080818403910152610422565b6040513d6000823e3d90fd5b91909160a0818403126100725780356104d9816102a5565b9260208201359260408301356104ee816102a5565b92606081013567ffffffffffffffff8111610072578361050f9183016102b6565b92608082013567ffffffffffffffff8111610072576103de920161030a565b9081526001600160a01b0391821660208201529116604082015260608101919091526000608082015260e060a082018190526103de939192610572918401906103e1565b9160c0818403910152610422565b9081526001600160a01b039182166020820152918116604083015260608201929092529116608082015260e060a082018190526103de939192610572918401906103e1565b906080828203126100725781356105db816102a5565b9260208301359260408101356105f0816102a5565b92606082013567ffffffffffffffff8111610072576103de920161030a565b9081526001600160a01b0391821660208201529116604082015260608101919091526000608082015260c060a082018190526103de92910190610422565b9081526001600160a01b039182166020820152918116604083015260608201929092529116608082015260c060a082018190526103de92910190610422565b9190916040818403126100725780356106a4816102a5565b92602082013567ffffffffffffffff8111610072576103de920161030a565b6106e16106d1826000610244565b6001600160e01b0319929161026f565b16631c9ab25f60e21b81036107ba575061070081610708926000610252565b81019061068c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169190823b156100725760405163ced6e79360e01b815292600092849283918591839161078f919034906001600160a01b0316337f00000000000000000000000000000000000000000000000000000000000000006004870161060f565b03925af180156107b5576107a05750565b806107af600061030893610143565b806100bc565b6104b5565b630102614b60e41b810361086e57506107d8816107e0926000610252565b8101906105c5565b9290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b156100725760405163ced6e79360e01b815294600094869485938793859361078f9391926001600160a01b0391821692909116337f00000000000000000000000000000000000000000000000000000000000000006004880161064d565b63744b9b8b60e01b810361091d575061088c81610894926000610252565b810190610388565b9091907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156100725760405163ad82a62760e01b815293600093859384928692849261078f92909134906001600160a01b0316337f00000000000000000000000000000000000000000000000000000000000000006004880161052e565b631a13c76f60e31b81036109d4575061093b81610943926000610252565b8101906104c1565b909391927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b156100725760405163ad82a62760e01b815295600095879586948894869461078f94919390926001600160a01b0392831692909116337f000000000000000000000000000000000000000000000000000000000000000060048901610580565b6306fb33ad60e21b146109e5575b50565b61088c816109f4926000610252565b9091907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b15610072576040516375e7f8e360e11b8152936000938593849286928492610a7b9290916001600160a01b0316337f000000000000000000000000000000000000000000000000000000000000000060048701610472565b03925af180156107b557156109e257806107af60006103089361014356fea2646970667358221220a71cbde33d0601ceacd47bd11f54cc311e513e7ffbb3ec6ec289e9912d3be94b64736f6c634300081a0033a2646970667358221220928d1f0cf196771916c55c50b6eab6883a793637fb05e7baf38f61f26998f5b164736f6c634300081a003360808060405234602f57600160ff19600c541617600c55600160ff19601f541617601f556165ab90816100358239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80631ed7831c146101275780632ade3880146101225780633693a15a1461011d5780633e5e3c23146101185780633f7286f41461011357806351976f441461010e57806366d9a9a01461010957806385226c8114610104578063916a17c6146100ff578063a0d788b7146100fa578063b0464fdc146100f5578063b5508aa9146100f0578063ba414fa6146100eb578063c986b404146100e6578063e20c9f71146100e1578063e2624fa4146100dc5763fa7626d4146100d757600080fd5b61142f565b61136b565b611229565b611116565b611017565b610f8a565b610ede565b610e7e565b610dd2565b610ccd565b610bc1565b610777565b6106e6565b610666565b6105e8565b61031f565b61017f565b600091031261013757565b600080fd5b602060408183019282815284518094520192019060005b8181106101605750505090565b82516001600160a01b0316845260209384019390920191600101610153565b346101375760003660031901126101375760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b8181106101f0576101ec856101e0818703826104c7565b6040519182918261013c565b0390f35b82546001600160a01b03168452602090930192600192830192016101c9565b60005b8381106102225750506000910152565b8181015183820152602001610212565b9060209161024b8151809281855285808601910161020f565b601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061028a57505050505090565b9091929394603f198282030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b85010194019260005b8281106102f45750505050506020806001929701930193019193929061027b565b9091929394602080610312600193605f198782030189528951610232565b97019501939291016102d3565b3461013757600036600319011261013757601e5461033c81611452565b9061034a60405192836104c7565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061039057604051806101ec8782610257565b600260206001926040516103a381610471565b848060a01b0386541681526103b9858701611469565b8382015281520192019201919061037b565b634e487b7160e01b600052603260045260246000fd5b6020548110156104005760206000526006602060002091020190600090565b6103cb565b8054821015610400576000526006602060002091020190600090565b90600182811c92168015610451575b602083101461043b57565b634e487b7160e01b600052602260045260246000fd5b91607f1691610430565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761048c57604052565b61045b565b60e081019081106001600160401b0382111761048c57604052565b60a081019081106001600160401b0382111761048c57604052565b90601f801991011681019081106001600160401b0382111761048c57604052565b90604051918260008254926104fc84610421565b808452936001811690811561056a5750600114610523575b50610521925003836104c7565b565b90506000929192526020600020906000915b81831061054e5750509060206105219282010138610514565b6020919350806001915483858901015201910190918492610535565b90506020925061052194915060ff191682840152151560051b82010138610514565b9591936105c760c09699989460ff966105d59460018060a01b03168a5260018060a01b031660208a015260e060408a015260e0890190610232565b908782036060890152610232565b966080860152151560a085015216910152565b34610137576020366003190112610137576004356020548110156101375761060f906103e1565b50805460018201546001600160a01b03918216929116906101ec90610636600282016104e8565b93610643600383016104e8565b91600560048201549101549260405196879660ff808760081c169616948861058c565b346101375760003660031901126101375760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b8181106106c7576101ec856101e0818703826104c7565b82546001600160a01b03168452602090930192600192830192016106b0565b346101375760003660031901126101375760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b818110610747576101ec856101e0818703826104c7565b82546001600160a01b0316845260209093019260019283019201610730565b6001600160a01b0381160361013757565b346101375760403660031901126101375760043561079481610766565b602435906107a182610766565b6000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b0382166004820152600081602481836000805160206165568339815191525af18015610a8557610aee575b506040516360f9bb1160e01b815260206004820152603960248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76322d636f72652f627560448201527f696c642f556e69737761705632466163746f72792e6a736f6e0000000000000060648201526000816084816000805160206165568339815191525afa908115610a85576108a4916000918291610ab3575b5060405180938192631fb2437d60e31b83526004830161152b565b03816000805160206165568339815191525afa8015610a8557610903926108f092600092610acd575b50604080516001600160a01b03909216602083015290926108fe91849190820190565b03601f1981018452836104c7565b612d93565b6040516360f9bb1160e01b815260206004820152603f60248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76322d7065726970686560448201527f72792f6275696c642f556e69737761705632526f7574657230322e6a736f6e0060648201529091906000816084816000805160206165568339815191525afa908115610a85576109b3916000918291610ab3575060405180938192631fb2437d60e31b83526004830161152b565b03816000805160206165568339815191525afa8015610a8557610a06926108f092600092610a8a575b50604080516001600160a01b03808816602083015290921690820152916108fe9083906060820190565b906000805160206165568339815191523b15610137576040516390c5013b60e01b8152600081600481836000805160206165568339815191525af18015610a8557610a6a575b50604080516001600160a01b03928316815292909116602083015290f35b80610a796000610a7f936104c7565b8061012c565b38610a4c565b6114c1565b6108fe919250610aac903d806000833e610aa481836104c7565b8101906114cd565b91906109dc565b610ac791503d8084833e610aa481836104c7565b38610889565b6108fe919250610ae7903d806000833e610aa481836104c7565b91906108cd565b80610a796000610afd936104c7565b386107f5565b906020808351928381520192019060005b818110610b215750505090565b82516001600160e01b031916845260209384019390920191600101610b14565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610b7457505050505090565b9091929394602080610bb2600193603f1986820301875289519083610ba28351604084526040840190610232565b9201519084818403910152610b03565b97019301930191939290610b65565b3461013757600036600319011261013757601b54610bde81611452565b90610bec60405192836104c7565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b838310610c3257604051806101ec8782610b41565b60026020600192604051610c4581610471565b610c4e866104e8565b8152610c5b85870161156b565b83820152815201920192019190610c1d565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610ca057505050505090565b9091929394602080610cbe600193603f198682030187528951610232565b97019301930191939290610c91565b3461013757600036600319011261013757601a54610cea81611452565b90610cf860405192836104c7565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310610d3d57604051806101ec8782610c6d565b600160208192610d4c856104e8565b815201920192019190610d28565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610d8d57505050505090565b9091929394602080610dc3600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610b03565b97019301930191939290610d7e565b3461013757600036600319011261013757601d54610def81611452565b90610dfd60405192836104c7565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b838310610e4357604051806101ec8782610d5a565b60026020600192604051610e5681610471565b848060a01b038654168152610e6c85870161156b565b83820152815201920192019190610e2e565b346101375760e036600319011261013757610edc600435610e9e81610766565b602435610eaa81610766565b604435610eb681610766565b606435610ec281610766565b60843591610ecf83610766565b60a4359360c4359561180a565b005b3461013757600036600319011261013757601c54610efb81611452565b90610f0960405192836104c7565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b838310610f4f57604051806101ec8782610d5a565b60026020600192604051610f6281610471565b848060a01b038654168152610f7885870161156b565b83820152815201920192019190610f3a565b3461013757600036600319011261013757601954610fa781611452565b90610fb560405192836104c7565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b838310610ffa57604051806101ec8782610c6d565b600160208192611009856104e8565b815201920192019190610fe5565b34610137576000366003190112610137576020611032611ae3565b6040519015158152f35b906110b39060018060a01b03835116815260018060a01b03602084015116602082015260c08061109061107e604087015160e0604087015260e0860190610232565b60608701518582036060870152610232565b946080810151608085015260a0810151151560a0850152015191019060ff169052565b90565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106110e957505050505090565b9091929394602080611107600193603f19868203018752895161103c565b970193019301919392906110da565b346101375760003660031901126101375760205461113381611452565b9061114160405192836104c7565b8082526020820160206000527fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb6000915b83831061118757604051806101ec87826110b6565b6006602060019260405161119a81610491565b855460a086901b869003166001600160a01b0390811682528587015416838201526111c7600287016104e8565b60408201526111d8600387016104e8565b60608201526004860154608082015261121b61121160058801546112086111ff8260ff1690565b151560a0860152565b60081c60ff1690565b60ff1660c0830152565b815201920192019190611172565b346101375760003660031901126101375760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b81811061128a576101ec856101e0818703826104c7565b82546001600160a01b0316845260209093019260019283019201611273565b6040519061052160e0836104c7565b60405190610521610160836104c7565b6001600160401b03811161048c57601f01601f191660200190565b81601f82011215610137578035906112fa826112c8565b9261130860405194856104c7565b8284526020838301011161013757816000926020809301838601378301015290565b8015150361013757565b60c435906105218261132a565b60ff81160361013757565b610104359061052182611341565b9060206110b392818152019061103c565b3461013757366003190161012081126101375760a01361013757604051611391816104ac565b60043561139d81610766565b81526024356113ab81610766565b60208201526044356113bc81610766565b60408201526064356113cd81610766565b60608201526084356113de81610766565b608082015260a4356001600160401b038111610137576101ec916114096114239236906004016112e3565b611411611334565b60e4359161141d61134c565b9361202b565b6040519182918261135a565b3461013757600036600319011261013757602060ff601f54166040519015158152f35b6001600160401b03811161048c5760051b60200190565b90815461147581611452565b9261148360405194856104c7565b818452602084019060005260206000206000915b8383106114a45750505050565b6001602081926114b3856104e8565b815201920192019190611497565b6040513d6000823e3d90fd5b602081830312610137578051906001600160401b038211610137570181601f820112156101375760208151910190611504816112c8565b9261151260405194856104c7565b81845281830111610137576110b391602084019061020f565b61153d60409283835283830190610232565b90602081830391015260148152730b995d9b4b989e5d1958dbd9194b9bd89a9958dd60621b60208201520190565b6040518154808252909291839061158b6020830191600052602060002090565b926000905b8060078301106116d3576105219454918181106116b4575b818110611695575b818110611676575b818110611657575b818110611638575b818110611619575b8181106115fb575b106115e6575b5003836104c7565b6001600160e01b0319168152602001386115de565b602083811b6001600160e01b031916855290936001910193016115d8565b604083901b6001600160e01b03191684529260019060200193016115d0565b606083901b6001600160e01b03191684529260019060200193016115c8565b608083901b6001600160e01b03191684529260019060200193016115c0565b60a083901b6001600160e01b03191684529260019060200193016115b8565b60c083901b6001600160e01b03191684529260019060200193016115b0565b6001600160e01b031960e084901b1684529260019060200193016115a8565b91600891935061010060019161178287546116f9838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b019401920185929391611590565b519061052182610766565b9081602091031261013757516110b381610766565b9081602091031261013757516110b38161132a565b634e487b7160e01b600052601160045260246000fd5b9061038482018092116117ea57565b6117c5565b90816060910312610137578051916040602083015192015190565b9291909493946000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b0387166004820152600081602481836000805160206165568339815191525af18015610a8557611abf575b506040516364e329cb60e11b81526001600160a01b0383811660048301528481166024830152909160209183916044918391600091165af18015610a8557611a92575b5060405163095ea7b360e01b81526001600160a01b0384166004820152602481018590526020818060448101038160006001600160a01b0387165af18015610a8557611a75575b5060405163095ea7b360e01b81526001600160a01b038416600482015260248101879052906020828060448101038160006001600160a01b0388165af18015610a85576060966000936119aa92611a48575b5061194a426117db565b60405162e8e33760e81b81526001600160a01b03948516600482015295841660248701526044860197909752606485019890985260006084850181905260a4850152961660c483015260e482019390935293849283918290610104820190565b03926001600160a01b03165af18015610a8557611a19575b506000805160206165568339815191523b15610137576040516390c5013b60e01b8152600081600481836000805160206165568339815191525af18015610a8557611a0a5750565b80610a796000610521936104c7565b611a3a9060603d606011611a41575b611a3281836104c7565b8101906117ef565b50506119c2565b503d611a28565b611a699060203d602011611a6e575b611a6181836104c7565b8101906117b0565b611940565b503d611a57565b611a8d9060203d602011611a6e57611a6181836104c7565b6118ee565b611ab39060203d602011611ab8575b611aab81836104c7565b81019061179b565b6118a7565b503d611aa1565b80610a796000611ace936104c7565b38611864565b90816020910312610137575190565b60085460ff168015611af25790565b50604051630667f9d760e41b8152600080516020616556833981519152600482018190526519985a5b195960d21b6024830152602090829060449082905afa908115610a8557600091611b46575b50151590565b611b68915060203d602011611b6e575b611b6081836104c7565b810190611ad4565b38611b40565b503d611b56565b60405190611b8282610491565b600060c083828152826020820152606060408201526060808201528260808201528260a08201520152565b60405190611bba82610491565b600060c08360608152606060208201528260408201528260608201528260808201528260a08201520152565b90611bf96020928281519485920161020f565b0190565b60031115611c0757565b634e487b7160e01b600052602160045260246000fd5b6003821015611c075752565b959297969391611c5790611c4960ff936101008a526101008a0190610232565b9088820360208a0152610232565b9716604086015260608501526003831015611c07576080840192909252600160a08401526001600160a01b0391821660c08401521660e090910152565b15611c9b57565b60405162461bcd60e51b815260206004820152602260248201527f476174657761792045564d206e6f742073657420666f7220746869732063686160448201526134b760f11b6064820152608490fd5b9081602091031261013757516110b381611341565b60ff16604d81116117ea57600a0a90565b90816402540be40002916402540be4008304036117ea57565b90816064029160648304036117ea57565b9081620f42400291620f42408304036117ea57565b601f8211611d5d57505050565b6000526020600020906020601f840160051c83019310611d98575b601f0160051c01905b818110611d8c575050565b60008155600101611d81565b9091508190611d78565b91909182516001600160401b03811161048c57611dc981611dc38454610421565b84611d50565b6020601f8211600114611e0a578190611dfb939495600092611dff575b50508160011b916000199060031b1c19161790565b9055565b015190503880611de6565b601f19821690611e1f84600052602060002090565b9160005b818110611e5b57509583600195969710611e42575b505050811b019055565b015160001960f88460031b161c19169055388080611e38565b9192602060018192868b015181550194019201611e23565b6020546801000000000000000081101561048c57806001611e9992016020556020610405565b61201557815181546001600160a01b039182166001600160a01b031991821617835560208401516001840180549190931691161790556040820151805160028301916001600160401b03821161048c57611efd82611ef78554610421565b85611d50565b602090601f8311600114611f9a5793611f8593611f3b8460c0956005956105219a99600092611dff5750508160011b916000199060031b1c19161790565b90555b611f4f606086015160038301611da2565b608085015160048201550192611f7d611f6b60a0830151151590565b859060ff801983541691151516179055565b015160ff1690565b61ff0082549160081b169061ff001916179055565b90601f19831691611fb085600052602060002090565b9260005b818110611ffd575084600594610521999894611f85989460c09860019510611fe4575b505050811b019055611f3e565b015160001960f88460031b161c19169055388080611fd7565b92936020600181928786015181550195019301611fb4565b634e487b7160e01b600052600060045260246000fd5b9391929092612038611b75565b50612041611bad565b60405163348051d760e11b8152600481018490529092906000816024816000805160206165568339815191525afa908115610a85576120c3916120d191600091612d78575b506040516602d2921969918160cd1b60208201529283916120bd6120ad602785018c611be6565b6301037b7160e51b815260040190565b90611be6565b03601f1981018352826104c7565b83526040516405a524332360dc1b60208201526120f5816120c36025820189611be6565b602084019081528215612d715760015b612113604086019182611c1d565b8451915190519161212383611bfd565b8851600490602090612145906001600160a01b03165b6001600160a01b031690565b60405163bb88b76960e01b815292839182905afa8015610a8557600491600091612d52575b508a51602090612182906001600160a01b0316612139565b604051633c12ad4d60e21b815293849182905afa918215610a8557600092612d31575b50604051946118e592838701938785106001600160401b0386111761048c5787966121e2968a938e93614c718b396001600160a01b031696611c29565b03906000f0948515610a85576001600160a01b03909516606084019081529460808401966000885283600014612c9857805160049060209061222c906001600160a01b0316612139565b604051630f39296f60e21b815292839182905afa908115610a8557600091612c79575b506000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03919091166004820152600081602481836000805160206165568339815191525af18015610a8557612c64575b5080516004906020906122c1906001600160a01b0316612139565b60405163bb88b76960e01b815292839182905afa908115610a8557600091612c45575b5087516001600160a01b03918216916122fd9116612139565b90803b15610137576040516377140add60e11b8152600481018690526001600160a01b039290921660248301526000908290604490829084905af18015610a8557612c30575b50805160049060209061235e906001600160a01b0316612139565b60405163bb88b76960e01b815292839182905afa908115610a8557600091612c11575b506001600160a01b0316803b156101375760405163a7cb050760e01b815260048101859052633b9aca006024820152906000908290604490829084905af18015610a8557612bfc575b506000805160206165568339815191523b15610137576040516390c5013b60e01b8152600081600481836000805160206165568339815191525af18015610a8557612be7575b505b8651612426906001600160a01b0316612139565b6060820180519091906001600160a01b031660405163313ce56760e01b8152602081600481865afa908115610a85576124709161246b91600091612b84575b50611d00565b611d11565b823b15610137576040516340c10f1960e01b81526001600160a01b039290921660048301526024820152906000908290604490829084905af18015610a8557612bd2575b5087516124c9906001600160a01b0316612139565b82516004906020906124e3906001600160a01b0316612139565b604051630f39296f60e21b815292839182905afa908115610a8557600091612bb3575b508951600490602090612521906001600160a01b0316612139565b60405163313ce56760e01b815292839182905afa908115610a85576125519161246b91600091612b845750611d00565b823b15610137576040516340c10f1960e01b81526001600160a01b039290921660048301526024820152906000908290604490829084905af18015610a8557612b6f575b5080516001600160a01b03166000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03919091166004820152600081602481836000805160206165568339815191525af18015610a8557612b5a575b5080516001600160a01b03166000805160206165568339815191523b156101375760405163c88a5e6d60e01b81526001600160a01b0391909116600482015269d3c21bcecceda10000006024820152600081604481836000805160206165568339815191525af18015610a8557612b45575b508151600490602090612684906001600160a01b0316612139565b604051620b9ea360e11b815292839182905afa908115610a8557600091612b26575b506001600160a01b0316803b15610137576000683635c9adc5dea0000091600460405180948193630d0e30db60e41b83525af18015610a8557612b11575b506126f66126f188611d00565b611d2a565b60a0870190815260c087019068056bc75e2d63100000825260046020612725612139875160018060a01b031690565b604051630b4a282f60e11b815292839182905afa8015610a8557600491600091612af2575b508551602090612762906001600160a01b0316612139565b6040516359d0f71360e01b815293849182905afa8015610a85578c600493600092612ac9575b505161279c906001600160a01b0316612139565b87516020906127b3906001600160a01b0316612139565b604051620b9ea360e11b815295869182905afa928315610a85576127fa94600094612aa8575b5087516001600160a01b03169186519388519560018060a01b03169261180a565b8951600490612811906001600160a01b0316612139565b855190949060209061282b906001600160a01b0316612139565b604051620b9ea360e11b815293849182905afa908115610a8557600492600092612a83575b50516001600160a01b03165b92519351865190969060209061287a906001600160a01b0316612139565b604051632daa48c160e11b815294859182905afa908115610a8557600493600092612a59575b50516020906128b7906001600160a01b0316612139565b60405163342a30c360e01b815294859182905afa908115610a8557612958976129539661294395600094612a32575b5061291961293394956129096128fa6112a9565b6001600160a01b03909c168c52565b6001600160a01b031660208b0152565b604089015260608801526001600160a01b03166080870152565b6001600160a01b031660a0850152565b6001600160a01b031660c0830152565b613394565b6000805160206165568339815191523b15610137576040516390c5013b60e01b815293600085600481836000805160206165568339815191525af18015610a85576129cf6129c1612139612a149a611211996129fc95612a1d575b50516001600160a01b031690565b99516001600160a01b031690565b9151916129ec6129dd6112a9565b6001600160a01b03909b168b52565b6001600160a01b031660208a0152565b604088015260608701526080860152151560a0850152565b6110b381611e73565b80610a796000612a2c936104c7565b386129b3565b6129339450612a526129199160203d602011611ab857611aab81836104c7565b94506128e6565b6020919250612139612a7a6128b792843d8611611ab857611aab81836104c7565b939250506128a0565b61285c919250612aa19060203d602011611ab857611aab81836104c7565b9190612850565b612ac291945060203d602011611ab857611aab81836104c7565b92386127d9565b61279c919250612aea6121399160203d602011611ab857611aab81836104c7565b929150612788565b612b0b915060203d602011611ab857611aab81836104c7565b3861274a565b80610a796000612b20936104c7565b386126e4565b612b3f915060203d602011611ab857611aab81836104c7565b386126a6565b80610a796000612b54936104c7565b38612669565b80610a796000612b69936104c7565b386125f7565b80610a796000612b7e936104c7565b38612595565b612ba6915060203d602011612bac575b612b9e81836104c7565b810190611ceb565b38612465565b503d612b94565b612bcc915060203d602011611ab857611aab81836104c7565b38612506565b80610a796000612be1936104c7565b386124b4565b80610a796000612bf6936104c7565b38612410565b80610a796000612c0b936104c7565b386123ca565b612c2a915060203d602011611ab857611aab81836104c7565b38612381565b80610a796000612c3f936104c7565b38612343565b612c5e915060203d602011611ab857611aab81836104c7565b386122e4565b80610a796000612c73936104c7565b386122a6565b612c92915060203d602011611ab857611aab81836104c7565b3861224f565b6020810151612caf906001600160a01b0316612139565b604051621ac49360e31b81526004810185905290602090829060249082905afa8015610a8557612cf291600091612d12575b506001600160a01b03161515611c94565b612d0d612d00838584612e19565b6001600160a01b03168952565b612412565b612d2b915060203d602011611ab857611aab81836104c7565b38612ce1565b612d4b91925060203d602011611ab857611aab81836104c7565b90386121a5565b612d6b915060203d602011611ab857611aab81836104c7565b3861216a565b6002612105565b612d8d91503d806000833e610aa481836104c7565b38612086565b90612dd860209160405192839181612db4818501978881519384920161020f565b8301612dc88251809385808501910161020f565b010103601f1981018352826104c7565b51906000f090811561013757565b9091612dfd6110b393604084526040840190610232565b916020818403910152610232565b604d81116117ea57600a0a90565b9160405190610b5990818301908382106001600160401b0383111761048c5780612e499285946141188639612de6565b03906000f08015610a855760405163313ce56760e01b81526001600160a01b03919091169290602081600481875afa8015610a855760ff91600091613358575b506060830180519092909116906001600160a01b03166000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03919091166004820152600081602481836000805160206165568339815191525af18015610a8557613343575b50602083018051909390612f11906001600160a01b0316612139565b60405163ad8414bf60e01b81526004810187905290602090829060249082905afa908115610a8557612f7a91602091600091613326575b5060405163095ea7b360e01b81526001600160a01b039091166004820152600019602482015291829081906044820190565b038160008b5af18015610a8557613309575b508351612fa1906001600160a01b0316612139565b60405163ad8414bf60e01b8152600481018790529190602090839060249082905afa918215610a85576000926132e8575b50612fe4612fdf84612e0b565b611d3b565b91873b15610137576040516340c10f1960e01b81526001600160a01b039190911660048201526024810192909252600082604481838b5af1918215610a85576080926132d3575b500180519092906001600160a01b0316613047612fdf84612e0b565b90873b15610137576040516340c10f1960e01b81526001600160a01b039190911660048201526024810191909152600081604481838b5af18015610a85576130a992612fdf926130a392612a1d5750516001600160a01b031690565b92612e0b565b90853b15610137576040516340c10f1960e01b81526001600160a01b03919091166004820152602481019190915260008160448183895af18015610a85576132be575b506000805160206165568339815191523b15610137576040516390c5013b60e01b815290600082600481836000805160206165568339815191525af1918215610a855761314592612a1d5750516001600160a01b031690565b916000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03939093166004840152600083602481836000805160206165568339815191525af1928315610a85576121396020936131b8926131d896612a1d5750516001600160a01b031690565b604051808095819463ad8414bf60e01b8352600483019190602083019252565b03915afa908115610a855760009161329f575b506001600160a01b0316803b1561013757604051634d8c928d60e11b81526001600160a01b0383166004820152906000908290602490829084905af18015610a855761328a575b506000805160206165568339815191523b15610137576040516390c5013b60e01b8152600081600481836000805160206165568339815191525af18015610a855761327b575090565b80610a7960006110b3936104c7565b80610a796000613299936104c7565b38613232565b6132b8915060203d602011611ab857611aab81836104c7565b386131eb565b80610a7960006132cd936104c7565b386130ec565b80610a7960006132e2936104c7565b3861302b565b61330291925060203d602011611ab857611aab81836104c7565b9038612fd2565b6133219060203d602011611a6e57611a6181836104c7565b612f8c565b61333d9150823d8411611ab857611aab81836104c7565b38612f48565b80610a796000613352936104c7565b38612ef5565b613371915060203d602011612bac57612b9e81836104c7565b38612e89565b1561337e57565b634e487b7160e01b600052600160045260246000fd5b60c0810180519091906001600160a01b03166000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03919091166004820152600081602481836000805160206165568339815191525af18015610a855761365e575b50805161341390612139906001600160a01b031681565b60a08201805160408085018051915163095ea7b360e01b81526001600160a01b0390931660048401526024830191909152949192602090829060449082906000905af18015610a8557613641575b5060208301805190929061347f90612139906001600160a01b031681565b815160608601805160405163095ea7b360e01b81526001600160a01b03909316600484015260248301529691602090829060449082906000905af18015610a8557613624575b50845184516001600160a01b0391821691168082116135f6575b505060808501516001600160a01b031685516001600160a01b031685516001600160a01b03169061350f926136cb565b956135246001600160a01b0388161515613377565b82516001600160a01b031686519092906001600160a01b031686519092906001600160a01b03169151905186519092906001600160a01b03169361356795613834565b93516001600160a01b031692516001600160a01b031690516001600160a01b031691516001600160a01b03169261359c6112a9565b6001600160a01b0390961686526001600160a01b031660208601526001600160a01b031660408501526001600160a01b031660608401526001600160a01b0316608083015260a0820152600060c08201526119c290613c54565b6001600160a01b039091168552613615905b6001600160a01b03168652565b855181518752815238806134df565b61363c9060203d602011611a6e57611a6181836104c7565b6134c5565b6136599060203d602011611a6e57611a6181836104c7565b613461565b80610a79600061366d936104c7565b386133fc565b1561367a57565b60405162461bcd60e51b815260206004820152602360248201527f556e6973776170563353657475704c69623a20506f6f6c206e6f7420637265616044820152621d195960ea1b6064820152608490fd5b60405163a167129560e01b81526001600160a01b0383811660048301528481166024830152610bb8604483015290949391166020856064816000855af1928315610a8557613758956020946137dc575b50604051630b4c774160e11b81526001600160a01b03918216600482015292166024830152610bb860448301529093849190829081906064820190565b03915afa918215610a85576000926137bb575b506001600160a01b038216613781811515613673565b803b156101375760405163f637731d60e01b8152600160601b6004820152906000908290602490829084905af18015610a8557611a0a5750565b6137d591925060203d602011611ab857611aab81836104c7565b903861376b565b6137f290853d8711611ab857611aab81836104c7565b61371b565b51906001600160801b038216820361013757565b919082608091031261013757815191613826602082016137f7565b916060604083015192015190565b916138bd6000966080966139699661387961384e426117db565b9561386961385a6112b8565b6001600160a01b039099168952565b6001600160a01b03166020880152565b610bb86040870152620d89b3196060870152620d89b4868a015260a086015260c085015260e0840188905261010084018890526001600160a01b0316610120840152565b610140820190815260408051634418b22b60e11b815283516001600160a01b0390811660048301526020850151811660248301529184015162ffffff1660448201526060840151600290810b60648301526080850151900b608482015260a084015160a482015260c084015160c482015260e084015160e48201526101008401516101048201526101209093015116610124830152516101448201529384928391908290610164820190565b03926001600160a01b03165af1908115610a8557600091613988575090565b6139aa915060803d6080116139b0575b6139a281836104c7565b81019061380b565b50505090565b503d613998565b6040519061018082018281106001600160401b0382111761048c576040526000610160838281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015282610120820152826101408201520152565b90816020910312610137576110b3906137f7565b15613a3c57565b60405162461bcd60e51b8152602060048201526015602482015274506f6f6c20686173206e6f206c697175696469747960581b6044820152606490fd5b51908160020b820361013757565b519061ffff8216820361013757565b908160e0910312610137578051613aac81610766565b91613ab960208301613a79565b91613ac660408201613a87565b91613ad360608301613a87565b91613ae060808201613a87565b9160c060a0830151613af181611341565b9201516110b38161132a565b15613b0457565b60405162461bcd60e51b81526020600482015260116024820152700556e657870656374656420746f6b656e3607c1b6044820152606490fd5b15613b4457565b60405162461bcd60e51b8152602060048201526011602482015270556e657870656374656420746f6b656e3160781b6044820152606490fd5b15613b8457565b60405162461bcd60e51b815260206004820152601960248201527f506f736974696f6e20686173206e6f206c6971756964697479000000000000006044820152606490fd5b15613bd057565b60405162461bcd60e51b815260206004820152601860248201527f506f736974696f6e20746f6b656e73206d69736d6174636800000000000000006044820152606490fd5b15613c1c57565b60405162461bcd60e51b815260206004820152601060248201526f2ab732bc3832b1ba32b21037bbb732b960811b6044820152606490fd5b90613c5d6139b7565b8251909290613c74906001600160a01b0316612139565b6060820151909190613c8e906001600160a01b0316612139565b604051630d34328160e11b815290926001600160a01b03169190602081600481865afa8015610a8557613ce36001600160801b0391613ceb93600091613fc4575b506001600160801b03166060890181905290565b161515613a35565b604051633850c7bd60e01b815260e081600481865afa908115610a8557613d2591600091600091613f88575b5060020b6020880152613608565b604051630dfe168160e01b815291602083600481845afa908115610a8557600493600092613f66575b506001600160a01b03909116608087019081529060209060405163d21220a760e01b815294859182905afa928315610a8557600093613f45575b506001600160a01b0392831660a08701908152815160208401519194613db2928116911614613afd565b82516040830151613dd0916001600160a01b03918216911614613b3d565b60a08201938451613de19082614003565b6001600160801b031660c08c019081526101008c01969460e08d0194919390928d6101400190613e13919060020b9052565b60020b6101208d01526001600160a01b03908116875216825251613e41906001600160801b03161515613b7d565b519051613e9195602094613e6e936001600160a01b039384169316929092149182613f18575b5050613bc9565b84519060405180809681946331a9108f60e11b8352600483019190602083019252565b03916001600160a01b03165afa8015610a85576121396080613ed0613edf93613ef096600091613ef9575b506001600160a01b031660408a0181905290565b9301516001600160a01b031690565b6001600160a01b0390911614613c15565b51610160830152565b613f12915060203d602011611ab857611aab81836104c7565b38613ebc565b5190516001600160a01b039182169250613f329116612139565b6001600160a01b03909116143880613e67565b613f5f91935060203d602011611ab857611aab81836104c7565b9138613d88565b6020919250613f8190823d8411611ab857611aab81836104c7565b9190613d4e565b6136089250613faf915060e03d60e011613fbd575b613fa781836104c7565b810190613a96565b505050505091909190613d17565b503d613f9d565b613fe6915060203d602011613fec575b613fde81836104c7565b810190613a21565b38613ccf565b503d613fd4565b519062ffffff8216820361013757565b60405163133f757160e31b8152600481019290925261018090829060249082906001600160a01b03165afa908115610a8557600091829183918491859161404d575b509091929394565b949350505050610180823d821161410f575b8161406d61018093836104c7565b8101031261410c5781516bffffffffffffffffffffffff81160361410c575061409860208201611790565b506140a560408201611790565b906140b260608201611790565b916140bf60808301613ff3565b506140cc60a08301613a79565b916140d960c08201613a79565b916141016101606140ec60e085016137f7565b936140fa61014082016137f7565b50016137f7565b509392919038614045565b80fd5b3d915061405f56fe60806040523461032457610b598038038061001981610329565b9283398101906040818303126103245780516001600160401b038111610324578261004591830161034e565b60208201519092906001600160401b03811161032457610065920161034e565b81516001600160401b03811161022f57600354600181811c9116801561031a575b602082101461020f57601f81116102b5575b50602092601f82116001146102505792819293600092610245575b50508160011b916000199060031b1c1916176003555b80516001600160401b03811161022f57600454600181811c91168015610225575b602082101461020f57601f81116101aa575b50602091601f82116001146101465791819260009261013b575b50508160011b916000199060031b1c1916176004555b60405161079f90816103ba8239f35b015190503880610116565b601f198216926004600052806000209160005b85811061019257508360019510610179575b505050811b0160045561012c565b015160001960f88460031b161c1916905538808061016b565b91926020600181928685015181550194019201610159565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c81019160208410610205575b601f0160051c01905b8181106101f957506100fc565b600081556001016101ec565b90915081906101e3565b634e487b7160e01b600052602260045260246000fd5b90607f16906100ea565b634e487b7160e01b600052604160045260246000fd5b0151905038806100b3565b601f198216936003600052806000209160005b86811061029d5750836001959610610284575b505050811b016003556100c9565b015160001960f88460031b161c19169055388080610276565b91926020600181928685015181550194019201610263565b60036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c81019160208410610310575b601f0160051c01905b8181106103045750610098565b600081556001016102f7565b90915081906102ee565b90607f1690610086565b600080fd5b6040519190601f01601f191682016001600160401b0381118382101761022f57604052565b81601f82011215610324578051906001600160401b03821161022f5761037d601f8301601f1916602001610329565b92828452602083830101116103245760005b8281106103a457505060206000918301015290565b8060208092840101518282870101520161038f56fe608080604052600436101561001357600080fd5b60003560e01c90816306fdde031461058857508063095ea7b31461050257806318160ddd146104e457806323b872dd146103f7578063313ce567146103db57806340c10f191461032f57806370a08231146102f557806395d89b41146101d45780639dc29fac1461011f578063a9059cbb146100ee5763dd62ed3e1461009857600080fd5b346100e95760403660031901126100e9576100b16106a4565b6100b96106ba565b6001600160a01b039182166000908152600160209081526040808320949093168252928352819020549051908152f35b600080fd5b346100e95760403660031901126100e95761011461010a6106a4565b60243590336106d0565b602060405160018152f35b346100e95760403660031901126100e9576101386106a4565b6001600160a01b031660243581156101be576000908282528160205260408220548181106101a65760208285937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93869787528684520360408620558060025403600255604051908152a380f35b60649363391434e360e21b8452600452602452604452fd5b634b637e8f60e11b600052600060045260246000fd5b346100e95760003660031901126100e95760405160006004548060011c906001811680156102eb575b6020831081146102d7578285529081156102bb5750600114610264575b50819003601f01601f191681019067ffffffffffffffff82118183101761024e5761024a8291826040528261065b565b0390f35b634e487b7160e01b600052604160045260246000fd5b905060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b6000905b8282106102a55750602091508201018261021a565b6001816020925483858801015201910190610290565b90506020925060ff191682840152151560051b8201018261021a565b634e487b7160e01b84526022600452602484fd5b91607f16916101fd565b346100e95760203660031901126100e9576001600160a01b036103166106a4565b1660005260006020526020604060002054604051908152f35b346100e95760403660031901126100e9576103486106a4565b602435906001600160a01b031680156103c557600254918083018093116103af576020926002557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600093849284845283825260408420818154019055604051908152a380f35b634e487b7160e01b600052601160045260246000fd5b63ec442f0560e01b600052600060045260246000fd5b346100e95760003660031901126100e957602060405160128152f35b346100e95760603660031901126100e9576104106106a4565b6104186106ba565b6001600160a01b0382166000818152600160209081526040808320338452909152902054909260443592916000198110610458575b5061011493506106d0565b8381106104c75784156104b157331561049b57610114946000526001602052604060002060018060a01b033316600052602052836040600020910390558461044d565b634a1406b160e11b600052600060045260246000fd5b63e602df0560e01b600052600060045260246000fd5b8390637dc7a0d960e11b6000523360045260245260445260646000fd5b346100e95760003660031901126100e9576020600254604051908152f35b346100e95760403660031901126100e95761051b6106a4565b6024359033156104b1576001600160a01b031690811561049b57336000526001602052604060002082600052602052806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346100e95760003660031901126100e95760006003548060011c90600181168015610651575b6020831081146102d7578285529081156102bb57506001146105fa5750819003601f01601f191681019067ffffffffffffffff82118183101761024e5761024a8291826040528261065b565b905060036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b6000905b82821061063b5750602091508201018261021a565b6001816020925483858801015201910190610626565b91607f16916105ae565b91909160208152825180602083015260005b81811061068e575060409293506000838284010152601f8019910116010190565b806020809287010151604082860101520161066d565b600435906001600160a01b03821682036100e957565b602435906001600160a01b03821682036100e957565b6001600160a01b03169081156101be576001600160a01b03169182156103c557600082815280602052604081205482811061074f5791604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815280845220818154019055604051908152a3565b916064928463391434e360e21b8452600452602452604452fdfea2646970667358221220244a0a20c657fff7862703acb5cfe7ea7d2b0fc51d1a41b0a338be948dd8f1cf64736f6c634300081a003360c06040523461041a576118e5803803806100198161041f565b92833981016101008282031261041a5781516001600160401b03811161041a5781610045918401610444565b602083015190916001600160401b03821161041a57610065918401610444565b9160408101519160ff831680930361041a576060820151936080830151600381101561041a5760a0840151916100a960e06100a260c088016104af565b96016104af565b946001600160a01b03169384158015610409575b6103f8578051906001600160401b0382116102f55760065490600182811c921680156103ee575b60208310146102d55781601f84931161037e575b50602090601f83116001146103165760009261030b575b50508160011b916000199060031b1c1916176006555b8051906001600160401b0382116102f55760075490600182811c921680156102eb575b60208310146102d55781601f849311610265575b50602090601f83116001146101fd576000926101f2575b50508160011b916000199060031b1c1916176007555b6008549560805260a05260015560018060a01b03196000541617600055610100600160a81b039060081b169160018060a81b031916171760085560405161142190816104c4823960805181818161018101528181610b7b01526110d8015260a051816109fa0152f35b015190503880610173565b600760009081528281209350601f198516905b81811061024d5750908460019594939210610234575b505050811b01600755610189565b015160001960f88460031b161c19169055388080610226565b92936020600181928786015181550195019301610210565b60076000529091507fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688601f840160051c810191602085106102cb575b90601f859493920160051c01905b8181106102bc575061015c565b600081558493506001016102af565b90915081906102a1565b634e487b7160e01b600052602260045260246000fd5b91607f1691610148565b634e487b7160e01b600052604160045260246000fd5b01519050388061010f565b600660009081528281209350601f198516905b818110610366575090846001959493921061034d575b505050811b01600655610125565b015160001960f88460031b161c1916905538808061033f565b92936020600181928786015181550195019301610329565b60066000529091507ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f601f840160051c810191602085106103e4575b90601f859493920160051c01905b8181106103d557506100f8565b600081558493506001016103c8565b90915081906103ba565b91607f16916100e4565b63d92e233d60e01b60005260046000fd5b506001600160a01b038616156100bd565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176102f557604052565b81601f8201121561041a578051906001600160401b0382116102f557610473601f8301601f191660200161041f565b928284526020838301011161041a5760005b82811061049a57505060206000918301015290565b80602080928401015182828701015201610485565b51906001600160a01b038216820361041a5756fe608080604052600436101561001357600080fd5b60003560e01c90816306fdde0314610e8157508063091d278814610e63578063095ea7b314610e3d57806318160ddd14610e1f57806323b872dd14610d9e578063313ce56714610d7d5780633ce4a5bc14610d4e57806340c10f1914610d2957806342966c6814610d0c57806347e7ef2414610bf65780634d8943bb14610bd857806370a0823114610b9e57806385e1f4d014610b635780638b851b9514610b3957806395d89b4114610a695780639dc29fac14610a42578063a3413d03146109e7578063a9059cbb146109b6578063b84c824614610851578063c47f0027146106d6578063c701262614610574578063c835d7cc146104eb578063ccc7759914610445578063d9eeebed1461042c578063dd62ed3e146103db578063eddeb1231461037b578063f2441b3214610352578063f687d12a146102e15763fc5fecd51461015e57600080fd5b346102dc5760203660031901126102dc57600054604051630be1554760e01b81527f00000000000000000000000000000000000000000000000000000000000000006004820181905290916001600160a01b031690602083602481855afa92831561028e576000936102ab575b506001600160a01b0383161561029a5760209060246040518094819363d7fd7afb60e01b835260048301525afa90811561028e57600091610259575b5080156102485761021e61022791600435906110a6565b600254906110b9565b604080516001600160a01b03939093168352602083019190915290f35b0390f35b630e661aed60e41b60005260046000fd5b906020823d602011610286575b8161027360209383610f82565b8101031261028357505138610207565b80fd5b3d9150610266565b6040513d6000823e3d90fd5b633c7ff9cb60e11b60005260046000fd5b6102ce91935060203d6020116102d5575b6102c68183610f82565b810190611087565b91386101cb565b503d6102bc565b600080fd5b346102dc5760203660031901126102dc5760043573735b14bb79463307aacbed86daf3322b1e6226ab3303610341576020817fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a92600155604051908152a1005b632b2add3d60e01b60005260046000fd5b346102dc5760003660031901126102dc576000546040516001600160a01b039091168152602090f35b346102dc5760203660031901126102dc5760043573735b14bb79463307aacbed86daf3322b1e6226ab3303610341576020817fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f92600255604051908152a1005b346102dc5760403660031901126102dc576103f4610f56565b6103fc610f6c565b6001600160a01b039182166000908152600460209081526040808320949093168252928352819020549051908152f35b346102dc5760003660031901126102dc576102276110c6565b346102dc5760203660031901126102dc5761045e610f56565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610341576001600160a01b0381169081156104da5760088054610100600160a81b03191691811b610100600160a81b03169190911790556040519081527f88815d964e380677e86d817e7d65dea59cb7b4c3b5b7a0c8ec7ea4a74f90a38790602090a1005b63d92e233d60e01b60005260046000fd5b346102dc5760203660031901126102dc57610504610f56565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610341576001600160a01b031680156104da576020817fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae926bffffffffffffffffffffffff60a01b6000541617600055604051908152a1005b346102dc5760403660031901126102dc5760043567ffffffffffffffff81116102dc57366023820112156102dc576105b6903690602481600401359101610fa4565b60206024359160006105c66110c6565b93906064604051809481936323b872dd60e01b835233600484015273735b14bb79463307aacbed86daf3322b1e6226ab602484015288604484015260018060a01b03165af190811561028e57600091610697575b5015610686577f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d9559161064c8433611331565b6002549061066560405193608085526080850190610f15565b946020840152604083015260608201528033930390a2602060405160018152f35b63053e6b6b60e11b60005260046000fd5b6020813d6020116106ce575b816106b060209383610f82565b810103126106ca575190811515820361028357508461061a565b5080fd5b3d91506106a3565b346102dc576106e436610feb565b73735b14bb79463307aacbed86daf3322b1e6226ab330361034157805167ffffffffffffffff811161083b5761071b60065461102a565b601f81116107ce575b50602091601f821160011461076257918192600092610757575b5050600019600383901b1c191660019190911b17600655005b01519050828061073e565b601f1982169260066000526000805160206113cc8339815191529160005b8581106107b65750836001951061079d575b505050811b01600655005b015160001960f88460031b161c19169055828080610792565b91926020600181928685015181550194019201610780565b6006600052601f820160051c6000805160206113cc833981519152019060208310610825575b601f0160051c6000805160206113cc83398151915201905b8181106108195750610724565b6000815560010161080c565b6000805160206113cc83398151915291506107f4565b634e487b7160e01b600052604160045260246000fd5b346102dc5761085f36610feb565b73735b14bb79463307aacbed86daf3322b1e6226ab330361034157805167ffffffffffffffff811161083b5761089660075461102a565b601f8111610949575b50602091601f82116001146108dd579181926000926108d2575b5050600019600383901b1c191660019190911b17600755005b0151905082806108b9565b601f1982169260076000526000805160206113ac8339815191529160005b85811061093157508360019510610918575b505050811b01600755005b015160001960f88460031b161c1916905582808061090d565b919260206001819286850151815501940192016108fb565b6007600052601f820160051c6000805160206113ac8339815191520190602083106109a0575b601f0160051c6000805160206113ac83398151915201905b818110610994575061089f565b60008155600101610987565b6000805160206113ac833981519152915061096f565b346102dc5760403660031901126102dc576109dc6109d2610f56565b6024359033611230565b602060405160018152f35b346102dc5760003660031901126102dc577f00000000000000000000000000000000000000000000000000000000000000006040516003821015610a2c576020918152f35b634e487b7160e01b600052602160045260246000fd5b346102dc5760403660031901126102dc57610a67610a5e610f56565b60243590611331565b005b346102dc5760003660031901126102dc576040516000600754610a8b8161102a565b8084529060018116908115610b155750600114610ac7575b61024483610ab381850382610f82565b604051918291602083526020830190610f15565b91905060076000526000805160206113ac833981519152916000905b808210610afb57509091508101602001610ab3610aa3565b919260018160209254838588010152019101909291610ae3565b60ff191660208086019190915291151560051b84019091019150610ab39050610aa3565b346102dc5760003660031901126102dc5760088054604051911c6001600160a01b03168152602090f35b346102dc5760003660031901126102dc5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346102dc5760203660031901126102dc576001600160a01b03610bbf610f56565b1660005260036020526020604060002054604051908152f35b346102dc5760003660031901126102dc576020600254604051908152f35b346102dc5760403660031901126102dc57610c0f610f56565b6024359073735b14bb79463307aacbed86daf3322b1e6226ab33141580610cf7575b80610cdf575b610cce57610cae81610c6a847f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab3946112d6565b60405173735b14bb79463307aacbed86daf3322b1e6226ab60601b60208201526014815290610c9a603483610f82565b604051928392604084526040840190610f15565b60208301959095526001600160a01b0316930390a2602060405160018152f35b636edaef2f60e11b60005260046000fd5b506008805433911c6001600160a01b03161415610c37565b506000546001600160a01b0316331415610c31565b346102dc5760203660031901126102dc576109dc60043533611331565b346102dc5760403660031901126102dc57610a67610d45610f56565b602435906112d6565b346102dc5760003660031901126102dc57602060405173735b14bb79463307aacbed86daf3322b1e6226ab8152f35b346102dc5760003660031901126102dc57602060ff60085416604051908152f35b346102dc5760603660031901126102dc57610db7610f56565b610dbf610f6c565b90610dce604435809383611230565b6001600160a01b0381166000908152600460209081526040808320338452909152902054828110610e0e576109dc92610e0691611064565b9033906111c9565b6310bad14760e01b60005260046000fd5b346102dc5760003660031901126102dc576020600554604051908152f35b346102dc5760403660031901126102dc576109dc610e59610f56565b60243590336111c9565b346102dc5760003660031901126102dc576020600154604051908152f35b346102dc5760003660031901126102dc576000600654610ea08161102a565b8084529060018116908115610b155750600114610ec75761024483610ab381850382610f82565b91905060066000526000805160206113cc833981519152916000905b808210610efb57509091508101602001610ab3610aa3565b919260018160209254838588010152019101909291610ee3565b919082519283825260005b848110610f41575050826000602080949584010152601f8019910116010190565b80602080928401015182828601015201610f20565b600435906001600160a01b03821682036102dc57565b602435906001600160a01b03821682036102dc57565b90601f8019910116810190811067ffffffffffffffff82111761083b57604052565b92919267ffffffffffffffff821161083b5760405191610fce601f8201601f191660200184610f82565b8294818452818301116102dc578281602093846000960137010152565b60206003198201126102dc576004359067ffffffffffffffff82116102dc57806023830112156102dc5781602461102793600401359101610fa4565b90565b90600182811c9216801561105a575b602083101461104457565b634e487b7160e01b600052602260045260246000fd5b91607f1691611039565b9190820391821161107157565b634e487b7160e01b600052601160045260246000fd5b908160209103126102dc57516001600160a01b03811681036102dc5790565b8181029291811591840414171561107157565b9190820180921161107157565b600054604051630be1554760e01b81527f0000000000000000000000000000000000000000000000000000000000000000600482018190529092916001600160a01b031690602084602481855afa93841561028e576000946111a8575b506001600160a01b0384161561029a5760209060246040518094819363d7fd7afb60e01b835260048301525afa90811561028e57600091611176575b5080156102485761021e61102791600154906110a6565b906020823d6020116111a0575b8161119060209383610f82565b810103126102835750513861115f565b3d9150611183565b6111c291945060203d6020116102d5576102c68183610f82565b9238611123565b6001600160a01b03169081156104da576001600160a01b03169182156104da5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260048252604060002085600052825280604060002055604051908152a3565b6001600160a01b03169081156104da576001600160a01b03169182156104da578160005260036020526040600020548181106112c557816112947fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93602093611064565b8460005260038352604060002055846000526003825260406000206112ba8282546110b9565b9055604051908152a3565b63fe382aa760e01b60005260046000fd5b6001600160a01b03169081156104da577fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020826113186000946005546110b9565b60055584845260038252604084206112ba8282546110b9565b6001600160a01b031680156104da57806000526003602052604060002054918083106112c5576020816113877fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93600096611064565b84865260038352604086205561139f81600554611064565b600555604051908152a356fea66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688f652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3fa2646970667358221220143426ebea1dd98ec97cac7a50bf56d05abc5cfb38e424354c050953db17fb6764736f6c634300081a00330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da26469706673582212206717e45fdf103a1ef42406c04560a62655c0f1b8dc7c77591c01b71b30c96d8e64736f6c634300081a003360803460a357601f620103f838819003918201601f19168301916001600160401b0383118484101760a857808492604094855283398101031260a3576001604e602060488460be565b930160be565b918160ff19600c541617600c55601f54906101008360a81b039060081b1690828060a81b0319161717601f5560018060a01b031660018060a01b03196020541617602055604051620103269081620000d28239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820360a35756fe6080604052600436101561001257600080fd5b60003560e01c8062173d46146101b65780631694505e146101b15780631ed7831c146101ac5780632ade3880146101a75780632c76d7a6146101a2578063342a30c31461019d5780633ce4a5bc146101985780633e5e3c23146101935780633f7286f41461018e57806351976f441461018957806352dc56b81461018457806359d0f7131461017f5780635b5491821461017a57806366141ce21461017557806366d9a9a01461017057806385226c811461016b578063916a17c614610166578063a0d788b714610161578063b0464fdc1461015c578063b5508aa914610157578063ba414fa614610152578063bb88b7691461014d578063d5f3948814610148578063e20c9f7114610143578063f04ab5341461013e5763fa7626d41461013957600080fd5b611c24565b611bfb565b611b7b565b611b4e565b611b25565b611b00565b611a73565b6119c7565b6116c8565b61161c565b611517565b61140b565b611324565b6112fb565b6112d2565b610684565b610636565b6105a5565b610525565b6104fe565b6104d5565b6104ac565b610400565b610260565b6101f4565b6101cb565b60009103126101c657565b600080fd5b346101c65760003660031901126101c6576021546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c6576024546040516001600160a01b039091168152602090f35b602060408183019282815284518094520192019060005b8181106102415750505090565b82516001600160a01b0316845260209384019390920191600101610234565b346101c65760003660031901126101c65760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b8181106102d1576102cd856102c181870382611c79565b6040519182918261021d565b0390f35b82546001600160a01b03168452602090930192600192830192016102aa565b60005b8381106103035750506000910152565b81810151838201526020016102f3565b9060209161032c815180928185528580860191016102f0565b601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061036b57505050505090565b9091929394603f198282030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b85010194019260005b8281106103d55750505050506020806001929701930193019193929061035c565b90919293946020806103f3600193605f198782030189528951610313565b97019501939291016103b4565b346101c65760003660031901126101c657601e5461041d81611c9b565b9061042b6040519283611c79565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061047157604051806102cd8782610338565b6002602060019260405161048481611c5d565b848060a01b03865416815261049a858701611d7f565b8382015281520192019201919061045c565b346101c65760003660031901126101c6576026546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c6576027546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c657602080546040516001600160a01b039091168152f35b346101c65760003660031901126101c65760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b818110610586576102cd856102c181870382611c79565b82546001600160a01b031684526020909301926001928301920161056f565b346101c65760003660031901126101c65760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b818110610606576102cd856102c181870382611c79565b82546001600160a01b03168452602090930192600192830192016105ef565b6001600160a01b038116036101c657565b346101c65760403660031901126101c65761066860043561065681610625565b6024359061066382610625565b611ea1565b604080516001600160a01b039384168152919092166020820152f35b346101c65760003660031901126101c657601f5460081c6001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af18015611104576112bd575b5060405161088580820182811067ffffffffffffffff8211176111bc57829162005e27833903906000f0801561110457602180546001600160a01b0319166001600160a01b03909216919091179055600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af18015611104576112a8575b506020546001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af1801561110457611293575b506020546001600160a01b0316600080516020620102d18339815191523b156101c65760405163c88a5e6d60e01b81526001600160a01b03919091166004820152678ac7230489e80000602482015260008160448183600080516020620102d18339815191525af180156111045761127e575b5060215461088e90610882906001600160a01b031681565b6001600160a01b031690565b803b156101c6576000678ac7230489e8000091600460405180948193630d0e30db60e41b83525af1801561110457611269575b50600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af1801561110457611254575b50601f5460081c6001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af180156111045761123f575b50601f5460081c6001600160a01b0316600080516020620102d18339815191523b156101c65760405163c88a5e6d60e01b81526001600160a01b03919091166004820152678ac7230489e80000602482015260008160448183600080516020620102d18339815191525af180156111045761122a575b506021546109ff90610882906001600160a01b031681565b803b156101c6576000678ac7230489e8000091600460405180948193630d0e30db60e41b83525af1801561110457611215575b50600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af1801561110457611200575b50601f54610af090610ad390610ab19060081c6001600160a01b0316602154610aab906001600160a01b0316610882565b90611ea1565b602480546001600160a01b0319166001600160a01b0390921691909117905590565b60018060a01b03166001600160601b0360a01b6023541617602355565b601f54610b8790610b4d90610b6a90610b2a9060081c6001600160a01b0316602154610b24906001600160a01b0316610882565b906125b2565b602780546001600160a01b0319166001600160a01b039092169190911790559092565b60018060a01b03166001600160601b0360a01b6026541617602655565b60018060a01b03166001600160601b0360a01b6025541617602555565b6020546001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af18015611104576111eb575b506021546001600160a01b03166023546001600160a01b03166024549091906001600160a01b03169160405192610b3a918285019385851067ffffffffffffffff8611176111bc578594610c6294620052ed87396001600160a01b0391821681529181166020830152909116604082015260600190565b03906000f0801561110457602280546001600160a01b0319166001600160a01b039092169190911790556040516128e080820182811067ffffffffffffffff8211176111bc57829162002a0d833903906000f0801561110457600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af18015611104576111d6575b50601f5460081c6001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af18015611104576111c1575b506040516192d980820182811067ffffffffffffffff8211176111bc578291620066ac833903906000f0801561110457602880546001600160a01b0319166001600160a01b03929092169182179055610dc290610882565b906040519161094c9081840184811067ffffffffffffffff8211176111bc578493610e09936200f98586396001600160a01b03908116825291909116602082015260400190565b03906000f0801561110457602980546001600160a01b0319166001600160a01b03929092169182179055610e3c90610882565b6021546001600160a01b0316601f5460081c6001600160a01b0316823b156101c65760405163485cc95560e01b81526001600160a01b03928316600482015291166024820152906000908290604490829084905af18015611104576111a7575b50600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af1801561110457611192575b506020546001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af180156111045761117d575b5060006020610fb7610f6861088261088260215460018060a01b031690565b602954610f7d906001600160a01b0316610882565b60405163095ea7b360e01b81526001600160a01b039091166004820152678ac7230489e80000602482015293849283919082906044820190565b03925af1801561110457611160575b50600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af180156111045761114b575b50601f5460081c6001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af1801561110457611136575b5060006020611095610f6861088261088260215460018060a01b031690565b03925af1801561110457611109575b50600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af18015611104576110ed57005b806110fc600061110293611c79565b806101bb565b005b611dd7565b61112a9060203d60201161112f575b6111228183611c79565b8101906121e1565b6110a4565b503d611118565b806110fc600061114593611c79565b38611076565b806110fc600061115a93611c79565b3861100e565b6111789060203d60201161112f576111228183611c79565b610fc6565b806110fc600061118c93611c79565b38610f49565b806110fc60006111a193611c79565b38610ee4565b806110fc60006111b693611c79565b38610e9c565b611c47565b806110fc60006111d093611c79565b38610d6a565b806110fc60006111e593611c79565b38610d02565b806110fc60006111fa93611c79565b38610beb565b806110fc600061120f93611c79565b38610a7a565b806110fc600061122493611c79565b38610a32565b806110fc600061123993611c79565b386109e7565b806110fc600061124e93611c79565b38610971565b806110fc600061126393611c79565b38610909565b806110fc600061127893611c79565b386108c1565b806110fc600061128d93611c79565b3861086a565b806110fc60006112a293611c79565b386107f7565b806110fc60006112b793611c79565b38610792565b806110fc60006112cc93611c79565b386106fc565b346101c65760003660031901126101c6576023546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c6576025546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c6576028546040516001600160a01b039091168152602090f35b906020808351928381520192019060005b81811061136b5750505090565b82516001600160e01b03191684526020938401939092019160010161135e565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106113be57505050505090565b90919293946020806113fc600193603f19868203018752895190836113ec8351604084526040840190610313565b920151908481840391015261134d565b970193019301919392906113af565b346101c65760003660031901126101c657601b5461142881611c9b565b906114366040519283611c79565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b83831061147c57604051806102cd878261138b565b6002602060019260405161148f81611c5d565b61149886611cb3565b81526114a58587016121f9565b83820152815201920192019190611467565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106114ea57505050505090565b9091929394602080611508600193603f198682030187528951610313565b970193019301919392906114db565b346101c65760003660031901126101c657601a5461153481611c9b565b906115426040519283611c79565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b83831061158757604051806102cd87826114b7565b60016020819261159685611cb3565b815201920192019190611572565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106115d757505050505090565b909192939460208061160d600193603f198682030187526040838b51878060a01b0381511684520151918185820152019061134d565b970193019301919392906115c8565b346101c65760003660031901126101c657601d5461163981611c9b565b906116476040519283611c79565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b83831061168d57604051806102cd87826115a4565b600260206001926040516116a081611c5d565b848060a01b0386541681526116b68587016121f9565b83820152815201920192019190611678565b346101c65760e03660031901126101c6576004356116e581610625565b602435906116f282610625565b6044356116fe81610625565b6064359161170b83610625565b6084359261171884610625565b60a4359260c43595600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b038716600482015260008160248183600080516020620102d18339815191525af18015611104576119b2575b506040516364e329cb60e11b81526001600160a01b0383811660048301528481166024830152909160209183916044918391600091165af1801561110457611985575b5060405163095ea7b360e01b81526001600160a01b0384166004820152602481018590526020818060448101038160006001600160a01b0387165af1801561110457611968575b5060405163095ea7b360e01b81526001600160a01b038416600482015260248101879052906020828060448101038160006001600160a01b0388165af18015611104576060966000936118bc9261194b575b5061185c42612433565b60405162e8e33760e81b81526001600160a01b03948516600482015295841660248701526044860197909752606485019890985260006084850181905260a4850152961660c483015260e482019390935293849283918290610104820190565b03926001600160a01b03165af180156111045761191c5750600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af18015611104576110ed57005b61193d9060603d606011611944575b6119358183611c79565b810190612458565b50506110a4565b503d61192b565b6119639060203d60201161112f576111228183611c79565b611852565b6119809060203d60201161112f576111228183611c79565b611800565b6119a69060203d6020116119ab575b61199e8183611c79565b81019061241e565b6117b9565b503d611994565b806110fc60006119c193611c79565b38611776565b346101c65760003660031901126101c657601c546119e481611c9b565b906119f26040519283611c79565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b838310611a3857604051806102cd87826115a4565b60026020600192604051611a4b81611c5d565b848060a01b038654168152611a618587016121f9565b83820152815201920192019190611a23565b346101c65760003660031901126101c657601954611a9081611c9b565b90611a9e6040519283611c79565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b838310611ae357604051806102cd87826114b7565b600160208192611af285611cb3565b815201920192019190611ace565b346101c65760003660031901126101c6576020611b1b612482565b6040519015158152f35b346101c65760003660031901126101c6576022546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c657601f5460405160089190911c6001600160a01b03168152602090f35b346101c65760003660031901126101c65760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b818110611bdc576102cd856102c181870382611c79565b82546001600160a01b0316845260209093019260019283019201611bc5565b346101c65760003660031901126101c6576029546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c657602060ff601f54166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176111bc57604052565b90601f8019910116810190811067ffffffffffffffff8211176111bc57604052565b67ffffffffffffffff81116111bc5760051b60200190565b9060405191600081548060011c9260018216918215611d75575b602085108314611d61578487528693926020850192918115611d445750600114611d02575b5050611d0092500383611c79565b565b611d13919250600052602060002090565b906000915b848310611d2d5750611d009350013880611cf2565b805482840152869350602090920191600101611d18565b915050611d009491925060ff19168252151560051b013880611cf2565b634e487b7160e01b84526022600452602484fd5b93607f1693611ccd565b908154611d8b81611c9b565b92611d996040519485611c79565b818452602084019060005260206000206000915b838310611dba5750505050565b600160208192611dc985611cb3565b815201920192019190611dad565b6040513d6000823e3d90fd5b67ffffffffffffffff81116111bc57601f01601f191660200190565b6020818303126101c65780519067ffffffffffffffff82116101c6570181601f820112156101c65760208151910190611e3781611de3565b92611e456040519485611c79565b818452818301116101c657611e5e9160208401906102f0565b90565b611e7360409283835283830190610313565b90602081830391015260148152730b995d9b4b989e5d1958dbd9194b9bd89a9958dd60621b60208201520190565b919091600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b038216600482015260008160248183600080516020620102d18339815191525af18015611104576121cc575b506040516360f9bb1160e01b815260206004820152603960248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76322d636f72652f627560448201527f696c642f556e69737761705632466163746f72792e6a736f6e000000000000006064820152600081608481600080516020620102d18339815191525afa90811561110457611faa916000918291612191575b5060405180938192631fb2437d60e31b835260048301611e61565b0381600080516020620102d18339815191525afa80156111045761200a92611ff7926000926121ab575b50604080516001600160a01b039092166020830152909261200591849190820190565b03601f198101845283611c79565b612515565b6040516360f9bb1160e01b815260206004820152603f60248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76322d7065726970686560448201527f72792f6275696c642f556e69737761705632526f7574657230322e6a736f6e006064820152909290600081608481600080516020620102d18339815191525afa908115611104576120bb916000918291612191575060405180938192631fb2437d60e31b835260048301611e61565b0381600080516020620102d18339815191525afa80156111045761210f92611ff792600092612168575b50604080516001600160a01b03808916602083015290921690820152916120059083906060820190565b90600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af18015611104576121595750565b806110fc6000611d0093611c79565b61200591925061218a903d806000833e6121828183611c79565b810190611dff565b91906120e5565b6121a591503d8084833e6121828183611c79565b38611f8f565b6120059192506121c5903d806000833e6121828183611c79565b9190611fd4565b806110fc60006121db93611c79565b38611efa565b908160209103126101c6575180151581036101c65790565b604051815480825290929183906122196020830191600052602060002090565b926000905b80600783011061236157611d00945491818110612342575b818110612323575b818110612304575b8181106122e5575b8181106122c6575b8181106122a7575b818110612289575b10612274575b500383611c79565b6001600160e01b03191681526020013861226c565b602083811b6001600160e01b03191685529093600191019301612266565b604083901b6001600160e01b031916845292600190602001930161225e565b606083901b6001600160e01b0319168452926001906020019301612256565b608083901b6001600160e01b031916845292600190602001930161224e565b60a083901b6001600160e01b0319168452926001906020019301612246565b60c083901b6001600160e01b031916845292600190602001930161223e565b6001600160e01b031960e084901b168452926001906020019301612236565b9160089193506101006001916124108754612387838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b01940192018592939161221e565b908160209103126101c65751611e5e81610625565b90610384820180921161244257565b634e487b7160e01b600052601160045260246000fd5b908160609103126101c6578051916040602083015192015190565b908160209103126101c6575190565b60085460ff1680156124915790565b50604051630667f9d760e41b8152600080516020620102d1833981519152600482018190526519985a5b195960d21b6024830152602090829060449082905afa908115611104576000916124e6575b50151590565b612508915060203d60201161250e575b6125008183611c79565b810190612473565b386124e0565b503d6124f6565b9061255a6020916040519283918161253681850197888151938492016102f0565b830161254a825180938580850191016102f0565b010103601f198101835282611c79565b51906000f09081156101c657565b61257a60409283835283830190610313565b90602081830391015260098152682e62797465636f646560b81b60208201520190565b604051906125ac602083611c79565b60008252565b600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af18015611104576129f7575b506040516360f9bb1160e01b815260206004820152605c60248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76332d636f72652f617260448201527f746966616374732f636f6e7472616374732f556e69737761705633466163746f60648201527f72792e736f6c2f556e69737761705633466163746f72792e6a736f6e00000000608482015260008160a481600080516020620102d18339815191525afa908115611104576126e09160009182916129a7575b5060405180938192631fb2437d60e31b835260048301612568565b0381600080516020620102d18339815191525afa801561110457612715916000916129dc575b5061270f61259d565b90612515565b6040516360f9bb1160e01b815260206004820152605560248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76332d7065726970686560448201527f72792f6172746966616374732f636f6e7472616374732f53776170526f757465606482015274391739b7b617a9bbb0b82937baba32b9173539b7b760591b608482015290929060008160a481600080516020620102d18339815191525afa908115611104576127e49160009182916129a7575060405180938192631fb2437d60e31b835260048301612568565b0381600080516020620102d18339815191525afa801561110457612836916000916129c1575b50604080516001600160a01b038088166020830152861691810191909152906120058260608101611ff7565b6040516360f9bb1160e01b815260206004820152607560248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76332d7065726970686560448201527f72792f6172746966616374732f636f6e7472616374732f4e6f6e66756e67696260648201527f6c65506f736974696f6e4d616e616765722e736f6c2f4e6f6e66756e6769626c60848201527432a837b9b4ba34b7b726b0b730b3b2b9173539b7b760591b60a482015290929060008160c481600080516020620102d18339815191525afa9081156111045761292b9160009182916129a7575060405180938192631fb2437d60e31b835260048301612568565b0381600080516020620102d18339815191525afa80156111045761210f928592600092612986575b50604080516001600160a01b03808a16602083015292831691810191909152921660608301526120058260808101611ff7565b6120059192506129a0903d806000833e6121828183611c79565b9190612953565b6129bb91503d8084833e6121828183611c79565b386126c5565b6129d691503d806000833e6121828183611c79565b3861280a565b6129f191503d806000833e6121828183611c79565b38612706565b806110fc6000612a0693611c79565b3861260a56fe60a080604052346100ea57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b6040516127f090816100f08239608051818181610db80152610e4c0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880610054565b63f92ee8a960e01b60005260046000fd5b600080fdfe6080806040526004361015610067575b50361561001b57600080fd5b610023611f8e565b6000546001600160a01b03163314158061004f575b61003e57005b63b3af013760e01b60005260046000fd5b506000805160206126fb833981519152331415610038565b600090813560e01c90816301ffc9a714611b2b5750806306cb898314611818578063184b0793146117195780632095dedb146115e457806321501a95146113f757806321e093b1146113d0578063248a9ca3146113a95780632722feee146113805780632810ae63146112f65780632f2ff15d146112c457806336568abe1461127f5780633f4ba83a146111fd578063485cc955146110345780634f1ef28614610e0d57806352d1902d14610da55780635c975abb14610d755780637b15118b14610b445780637c0dcb5f146108885780638456cb591461081357806391d14854146107ba57806397a1cef11461074d57806397d340f5146107305780639d4ba465146105c4578063a217fddf146105a8578063ad3cb1cc1461055b578063bcf7f32b146104b4578063c39aca371461033d578063d547741f14610302578063e63ab1e9146102c75763f45346dc0361000f57346102c45760603660031901126102c4576101d3611c4a565b906024356101df611c60565b926000805160206126fb83398151915233036102b5576101fd611f8e565b6001600160a01b03811693841580156102a4575b610295578215610286576001600160a01b038116916000805160206126fb8339815191528314801561027d575b61026e5761024d918491612503565b15610256578280f35b606493632050a1dd60e11b8452600452602452604452fd5b63416aebb560e11b8552600485fd5b5030831461023e565b635d67094f60e01b8452600484fd5b63d92e233d60e01b8452600484fd5b506001600160a01b03811615610211565b632160203f60e11b8352600483fd5b80fd5b50346102c457806003193601126102c45760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346102c45760403660031901126102c457610339600435610322611c34565b9061033461032f82611efe565b6120bd565b612330565b5080f35b50346102c45761034c36611cf8565b95949291909361035a611fdf565b6000805160206126fb83398151915233036104a557610377611f8e565b6001600160a01b0381169687158015610494575b610485578315610476576001600160a01b038316926000805160206126fb8339815191528414801561046d575b61045e57846103c79184612503565b1561044357869750823b1561043f5786946103fa869260405198899788968795632de7eb0b60e11b875260048701611e8e565b03925af180156104345761041f575b50600160008051602061277b8339815191525580f35b8161042991611bb1565b6102c4578038610409565b6040513d84823e3d90fd5b8680fd5b60648785858b632050a1dd60e11b8452600452602452604452fd5b63416aebb560e11b8852600488fd5b503084146103b8565b635d67094f60e01b8752600487fd5b63d92e233d60e01b8752600487fd5b506001600160a01b0383161561038b565b632160203f60e11b8652600486fd5b50346102c4576104c336611cf8565b90936104d29695939296611fdf565b6000805160206126fb83398151915233036104a5576104ef611f8e565b6001600160a01b03811615801561054a575b61053b57859660018060a01b031691823b1561043f5786946103fa869260405198899788968795632de7eb0b60e11b875260048701611e8e565b63d92e233d60e01b8652600486fd5b506001600160a01b03871615610501565b50346102c457806003193601126102c457506105a460405161057e604082611bb1565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611cb7565b0390f35b50346102c457806003193601126102c457602090604051908152f35b50346102c45760803660031901126102c4576105de611c4a565b90602435916105eb611c60565b90606435916001600160401b03831161072c576080600319843603011261072c57610614611fdf565b6000805160206126fb833981519152330361071d57610631611f8e565b6001600160a01b038216908115801561070c575b6106fd5785156106ee576001600160a01b038116926000805160206126fb833981519152841480156106e5575b6106d657610681918791612503565b156106bc5750829350803b156106b8576103fa8392918392604051948580948193636481451b60e11b835260040160048301611e29565b5050fd5b6064949250632050a1dd60e11b8452600452602452604452fd5b63416aebb560e11b8652600486fd5b50308414610672565b635d67094f60e01b8552600485fd5b63d92e233d60e01b8552600485fd5b506001600160a01b03811615610645565b632160203f60e11b8452600484fd5b8380fd5b50346102c457806003193601126102c45760206040516108008152f35b50346102c45760803660031901126102c4576004356001600160401b0381116107b65761077e903690600401611bed565b506064356001600160401b0381116107b65760a09060031990360301126102c4576004906107aa611f8e565b63e4dd681d60e01b8152fd5b5080fd5b50346102c45760403660031901126102c45760406107d6611c34565b91600435815260008051602061273b833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346102c457806003193601126102c45761082c61204b565b610834611f8e565b600160ff1960008051602061275b83398151915254161760008051602061275b833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346102c45760803660031901126102c4576004356001600160401b0381116107b6576108b9903690600401611bed565b90602435916108c6611c60565b906064356001600160401b03811161072c57806004019060a06003198236030112610b40576108f3611f8e565b8251156106fd5785156106ee576064016108006109108284611d75565b905011610b1d5750604051630123a4f160e31b8152939485946001600160a01b03851694602082600481895afa918215610ada578792610ae5575b509061095791836123d0565b604051634d8943bb60e01b815290602082600481895afa918215610ada578792610aa3575b50604051630123a4f160e31b8152926020846004818a5afa938415610a98578894610a4f575b507f07bf64173efd8f3dfb9e4eb3834bab9d5b85a3d89a1c6425797329de0668502c9593610a49936109fd9693602093604051936109df85611b80565b84526001858501526040519889986101208a526101208a0190611cb7565b9a85890152604088015260608701526080860152610a37858903918260a08801528a8a5260c0870190602080918051845201511515910152565b01610100840152602033960190611f1f565b0390a380f35b975094925090926020873d602011610a90575b81610a6f60209383611bb1565b81010312610a8b579551879692949293909290919060206109a2565b600080fd5b3d9150610a62565b6040513d8a823e3d90fd5b965090506020863d602011610ad2575b81610ac060209383611bb1565b81010312610a8b57869551903861097c565b3d9150610ab3565b6040513d89823e3d90fd5b915095506020813d602011610b15575b81610b0260209383611bb1565b81010312610a8b5751869561095761094b565b3d9150610af5565b610b2a8591604493611d75565b63cd6f4e6d60e01b835260045250610800602452fd5b8480fd5b50346102c45760e03660031901126102c4576004356001600160401b0381116107b657610b75903690600401611bed565b9060243591610b82611c60565b906064356001600160401b03811161072c57610ba2903690600401611c8a565b9490916040366083190112610b405760c435916001600160401b038311610d7157826004019360a0600319853603011261043f57610bde611f8e565b82511561048557811561047657608435938415610d6257606401610800610c10610c088389611d75565b90508b611da7565b11610d345750968697610c278588859a999a6123d0565b604051634d8943bb60e01b815290986001600160a01b031693602082600481885afa918215610d29578992610cea575b5098610c9a9596979899610c78604051986101208a526101208a0190611cb7565b95602089015260408801526060870152608086015284830360a0860152611e08565b9160c082015260a43591821515809303610b4057610a4982917fd90f94752d2b12f364f4a2237ebe1aff24ba6127585376bf4935f6a7be17dd2a9460e08401528281036101008401523395611f1f565b959697985090506020853d602011610d21575b81610d0a60209383611bb1565b81010312610a8b5793518997969594610c9a610c57565b3d9150610cfd565b6040513d8b823e3d90fd5b87610d4d8a610d456044948a611d75565b919050611da7565b63cd6f4e6d60e01b8252600452610800602452fd5b6360ee124760e01b8852600488fd5b8580fd5b50346102c457806003193601126102c457602060ff60008051602061275b83398151915254166040519015158152f35b50346102c457806003193601126102c4577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610dfe57602060405160008051602061271b8339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126102c457610e22611c4a565b906024356001600160401b0381116107b657610e42903690600401611bed565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611011575b506110025781805260008051602061273b83398151915260209081526040808420336000908152925290205460ff1615610fea576040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa80958596610fb6575b50610ef057634c9c8ce360e01b84526004839052602484fd5b90918460008051602061271b8339815191528103610fa45750813b15610f925760008051602061271b83398151915280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a28151839015610f78578083602061033995519101845af4610f7261201b565b91612699565b50505034610f835780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011610fe2575b81610fd260209383611bb1565b81010312610b4057519438610ed7565b3d9150610fc5565b63e2517d3f60e01b8252336004526024829052604482fd5b63703e46dd60e11b8252600482fd5b60008051602061271b833981519152546001600160a01b03161415905038610e77565b50346102c45760403660031901126102c45761104e611c4a565b611056611c34565b60008051602061279b833981519152549160ff8360401c1615926001600160401b038116801590816111f5575b60011490816111eb575b1590816111e2575b506111d35767ffffffffffffffff19811660011760008051602061279b83398151915255836111a6575b506001600160a01b03169081158015611195575b61029557611124906110e361262b565b6110eb61262b565b6110f361262b565b6110fb61262b565b61110361262b565b600160008051602061277b8339815191525561111e81612107565b506121b9565b5082546001600160a01b03191617825561113b5780f35b68ff00000000000000001960008051602061279b833981519152541660008051602061279b833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b506001600160a01b038116156110d3565b68ffffffffffffffffff1916680100000000000000011760008051602061279b83398151915255386110bf565b63f92ee8a960e01b8552600485fd5b90501538611095565b303b15915061108d565b859150611083565b50346102c457806003193601126102c45761121661204b565b60008051602061275b8339815191525460ff8116156112705760ff191660008051602061275b833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346102c45760403660031901126102c457611299611c34565b336001600160a01b038216036112b55761033990600435612330565b63334bd91960e11b8252600482fd5b50346102c45760403660031901126102c4576103396004356112e4611c34565b906112f161032f82611efe565b612287565b50346102c45760e03660031901126102c4576004356001600160401b0381116107b657611327903690600401611bed565b506064356001600160401b0381116107b657611347903690600401611c8a565b505060403660831901126102c45760c4356001600160401b0381116107b65760a09060031990360301126102c4576004906107aa611f8e565b50346102c457806003193601126102c45760206040516000805160206126fb8339815191528152f35b50346102c45760203660031901126102c45760206113c8600435611efe565b604051908152f35b50346102c457806003193601126102c457546040516001600160a01b039091168152602090f35b50346102c45760803660031901126102c457600435906001600160401b0382116102c457606060031983360301126102c457602435611434611c60565b926064356001600160401b03811161072c57611454903690600401611c8a565b61145f929192611fdf565b6000805160206126fb83398151915233036115d55761147c611f8e565b6001600160a01b03861695861561053b5784156115c6576000805160206126fb833981519152871480156115bd575b6106d65785546114c9908690309033906001600160a01b03166125d9565b156115a55785546001600160a01b0316803b1561043f5786808092602460405180958193632e1a7d4d60e01b83528c60048401525af19182611590575b505061152357604486868963793cd7bf60e11b8352600452602452fd5b858080878194989697985af161153761201b565b50156115795794849560018060a01b0386541690823b1561043f5786946103fa869260405198899788968795632de7eb0b60e11b875260040160048701611e8e565b604485838863793cd7bf60e11b8352600452602452fd5b8161159a91611bb1565b61043f578638611506565b63793cd7bf60e11b8652306004526024859052604486fd5b503087146114ab565b6319c08f4960e01b8652600486fd5b632160203f60e11b8552600485fd5b50346102c45760403660031901126102c4576115fe611c4a565b90602435916001600160401b0383116107b657826004019060c060031985360301126117155761162c611fdf565b6000805160206126fb83398151915233036102b557611649611f8e565b6001600160a01b0316908115611706578293823b15611701576103fa926116ef858094604051968795869485936316a67dbf60e11b85526020600486015260a46116a76116968380611dd7565b60c060248a015260e4890191611e08565b936001600160a01b036116bc60248301611c76565b166044880152604481013560648801526116d860648201611dca565b151560848801526084810135828801520190611dd7565b8483036023190160c486015290611e08565b505050fd5b63d92e233d60e01b8352600483fd5b8280fd5b50346102c45760403660031901126102c457611733611c4a565b90602435916001600160401b0383116107b657608060031984360301126107b65761175c611fdf565b6000805160206126fb833981519152330361180957611779611f8e565b6001600160a01b03169182156117fa578282933b156106b8576117b98392918392604051958680948193636481451b60e11b835260040160048301611e29565b03925af180156117ed576117dd575b600160008051602061277b8339815191525580f35b6117e691611bb1565b38816117c8565b50604051903d90823e3d90fd5b63d92e233d60e01b8252600482fd5b632160203f60e11b8252600482fd5b50346102c45760c03660031901126102c4576004356001600160401b0381116107b657611849903690600401611bed565b611851611c34565b6044356001600160401b03811161072c57611870903690600401611c8a565b90916040366063190112610b405760a435926001600160401b038411610d7157836004019260a0600319863603011261043f576118ab611f8e565b606435938415610d625760648601926108006118d26118ca8685611d75565b905085611da7565b11611b1a57604051956118e487611b80565b86526084358015158103611b165760208701526040519160a083018381106001600160401b03821117611b025760405261191d90611c76565b825261192b60248801611dca565b926020830193845261193f60448901611c76565b9460408401958652356001600160401b038111611afe5761196690600436918b0101611bed565b95606084019687526084608085019901358952895115611aef5787516040805163fc5fecd560e01b815260048101929092526001600160a01b03929092169a91816024818e5afa908115611ae4578c908d92611ab2575b506119c982338361257d565b15611a8257505093611a7493611a3c611a2660a099957f306ee13f48319a123b222c69908e44dcf91abffc20cacc502e3cf5a4ff23e0e49b9995611a1860809a6040519d8e8181520190611cb7565b8c810360208e015291611e08565b885160408b0152602090980151151560608a0152565b87870386890152516001600160a01b03908116875290511515602087015290511660408501525160a060608501819052840190611cb7565b94519101528033930390a380f35b633338088960e11b8d526001600160a01b03166004526000805160206126fb83398151915260245260445260648bfd5b9050611ad6915060403d604011611add575b611ace8183611bb1565b810190611fb8565b90386119bd565b503d611ac4565b6040513d8e823e3d90fd5b63d92e233d60e01b8b5260048bfd5b8a80fd5b634e487b7160e01b8b52604160045260248bfd5b8980fd5b604489610d4d85610d458887611d75565b9050346107b65760203660031901126107b65760043563ffffffff60e01b81168091036117155760209250637965db0b60e01b8114908115611b6f575b5015158152f35b6301ffc9a760e01b14905038611b68565b604081019081106001600160401b03821117611b9b57604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b03821117611b9b57604052565b6001600160401b038111611b9b57601f01601f191660200190565b81601f82011215610a8b57803590611c0482611bd2565b92611c126040519485611bb1565b82845260208383010111610a8b57816000926020809301838601378301015290565b602435906001600160a01b0382168203610a8b57565b600435906001600160a01b0382168203610a8b57565b604435906001600160a01b0382168203610a8b57565b35906001600160a01b0382168203610a8b57565b9181601f84011215610a8b578235916001600160401b038311610a8b5760208381860195010111610a8b57565b919082519283825260005b848110611ce3575050826000602080949584010152601f8019910116010190565b80602080928401015182828601015201611cc2565b60a0600319820112610a8b576004356001600160401b038111610a8b5760608183036003190112610a8b57600401916024356001600160a01b0381168103610a8b5791604435916064356001600160a01b0381168103610a8b5791608435906001600160401b038211610a8b57611d7191600401611c8a565b9091565b903590601e1981360301821215610a8b57018035906001600160401b038211610a8b57602001918136038313610a8b57565b91908201809211611db457565b634e487b7160e01b600052601160045260246000fd5b35908115158203610a8b57565b9035601e1982360301811215610a8b5701602081359101916001600160401b038211610a8b578136038313610a8b57565b908060209392818452848401376000828201840152601f01601f1916010190565b60208152611e8b9160a090611e7b906001600160a01b03611e4982611c76565b166020850152600180841b03611e6160208301611c76565b166040850152604081013560608501526060810190611dd7565b9190926080808201520191611e08565b90565b90939192611e8b9593608083526040611ebb611eaa8880611dd7565b6060608088015260e0870191611e08565b966001600160a01b03611ed060208301611c76565b1660a0860152013560c08401526001600160a01b031660208301526040820152808403606090910152611e08565b60005260008051602061273b83398151915260205260016040600020015490565b906001600160a01b03611f3183611c76565b168152611f4060208301611dca565b151560208201526001600160a01b03611f5b60408401611c76565b166040820152608080611f85611f746060860186611dd7565b60a0606087015260a0860191611e08565b93013591015290565b60ff60008051602061275b8339815191525416611fa757565b63d93c066560e01b60005260046000fd5b9190826040910312610a8b5781516001600160a01b0381168103610a8b5760209092015190565b600260008051602061277b833981519152541461200a57600260008051602061277b83398151915255565b633ee5aeb560e01b60005260046000fd5b3d15612046573d9061202c82611bd2565b9161203a6040519384611bb1565b82523d6000602084013e565b606090565b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561208457565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b600081815260008051602061273b8339815191526020908152604080832033845290915290205460ff16156120ef5750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff166121b3576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50600090565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff166121b3576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b600081815260008051602061273b833981519152602090815260408083206001600160a01b038616845290915290205460ff1661232957600081815260008051602061273b833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b5050600090565b600081815260008051602061273b833981519152602090815260408083206001600160a01b038616845290915290205460ff161561232957600081815260008051602061273b833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6040805163fc5fecd560e01b8152600481019490945290916001600160a01b0381169184602481855afa9384156124df576000906000956124bb575b5061241885338361257d565b15612484575061242a833033846125d9565b1561245a578261243991612659565b1561244357505090565b637112ae7760e01b60005260045260245260446000fd5b506084916040519163489ca9b760e01b835260048301523360248301523060448301526064820152fd5b633338088960e11b60009081526001600160a01b039091166004526000805160206126fb8339815191526024526044859052606490fd5b90506124d791945060403d604011611add57611ace8183611bb1565b93903861240c565b6040513d6000823e3d90fd5b90816020910312610a8b57518015158103610a8b5790565b6040516311f9fbc960e21b81526001600160a01b039283166004820152602481019390935260209183916044918391600091165af16000918161254c575b50611e8b5750600090565b61256f91925060203d602011612576575b6125678183611bb1565b8101906124eb565b9038612541565b503d61255d565b6040516323b872dd60e01b81526001600160a01b0392831660048201526000805160206126fb8339815191526024820152604481019390935260209183916064918391600091165af16000918161254c5750611e8b5750600090565b6040516323b872dd60e01b81526001600160a01b03928316600482015292821660248401526044830193909352909160209183916064918391600091165af16000918161254c5750611e8b5750600090565b60ff60008051602061279b8339815191525460401c161561264857565b631afcd79f60e31b60005260046000fd5b604051630852cd8d60e31b81526004810192909252602090829060249082906000906001600160a01b03165af16000918161254c5750611e8b5750600090565b906126bf57508051156126ae57805190602001fd5b63d6bda27560e01b60005260046000fd5b815115806126f1575b6126d0575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b156126c856fe000000000000000000000000735b14bb79463307aacbed86daf3322b1e6226ab360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220542941658a96d6dd4010b90beba1b2fc5ed2076ef97c9889b30ab9ceda5036f064736f6c634300081a003360c03461010057601f610b3a38819003918201601f19168301916001600160401b0383118484101761010557808492606094604052833981010312610100576100478161011b565b9061006060406100596020840161011b565b920161011b565b9173735b14bb79463307aacbed86daf3322b1e6226ab33036100ef57600380546001600160a01b0319166001600160a01b039290921691909117905560805260a0526040517f80699e81136d69cb8367ad52a994e25c722a86da654b561d0c14b61a777e7ac5600080a1610a0a9081610130823960805181818161018a015261065d015260a051816106d70152f35b632b2add3d60e01b60005260046000fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036101005756fe608080604052600436101561001357600080fd5b600090813560e01c9081630be1554714610817575080631f0e251b146107915780633ce4a5bc14610762578063513a9c051461072f578063569541b914610706578063842da36d146106c157806391dd645f146105f057806397770dff1461054c578063a7cb0507146104da578063c39aca3714610263578063c62178ac1461023a578063c63585cc146101e2578063d7fd7afb146101b9578063d936a012146101745763ee2815ba146100c657600080fd5b34610171576040366003190112610171576004356100e2610864565b9073735b14bb79463307aacbed86daf3322b1e6226ab33036101625780835260016020908152604080852080546001600160a01b0319166001600160a01b0390951694851790558051928352908201929092527fd1b36d30f6248e97c473b4d1348ca164a4ef6759022f54a58ec200326c39c45d91819081015b0390a180f35b632b2add3d60e01b8352600483fd5b80fd5b50346101715780600319360112610171576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461017157602036600319011261017157604060209160043581528083522054604051908152f35b5034610171576060366003190112610171576101fc610849565b610204610864565b604435929091906001600160a01b03841684036101715760206102288585856108d3565b6040516001600160a01b039091168152f35b50346101715780600319360112610171576004546040516001600160a01b039091168152602090f35b50346101715760a0366003190112610171576004359067ffffffffffffffff82116101715781360360606003198201126104d65761029f610864565b92604435906064356001600160a01b038116908190036104d25760843567ffffffffffffffff81116104ce57366023820112156104ce5780600401359367ffffffffffffffff85116104615736602486840101116104615773735b14bb79463307aacbed86daf3322b1e6226ab33036104bf5773735b14bb79463307aacbed86daf3322b1e6226ab831480156104b6575b6104a7576040516311f9fbc960e21b815260048101849052602481018290529697959688966001600160a01b0316906020816044818b865af1801561049c57610465575b50833b156104615760405197636f218ab760e11b8952608060048a01528560040135906022190181121561045d57850160246004820135910167ffffffffffffffff8211610459578136038113610459576103da91606060848c015260e48b01916108b2565b60248601356001600160a01b038116919082900361045957889760248b98968a968a989660448a9861042d9860a48b0152013560c4890152838801526044870152600319868503016064870152016108b2565b03925af1801561044c5761043e5780f35b6104479161087a565b388180f35b50604051903d90823e3d90fd5b8880fd5b8780fd5b8680fd5b6020813d602011610494575b8161047e6020938361087a565b8101031261045d57518015158114610374578780fd5b3d9150610471565b6040513d8a823e3d90fd5b63416aebb560e11b8752600487fd5b50308314610330565b632b2add3d60e01b8752600487fd5b8580fd5b8480fd5b5080fd5b50346101715760403660031901126101715760043560243573735b14bb79463307aacbed86daf3322b1e6226ab330361016257816040917f49f492222906ac486c3c1401fa545626df1f0c0e5a77a05597ea2ed66af9850d93855284602052808386205582519182526020820152a180f35b503461017157602036600319011261017157610566610849565b73735b14bb79463307aacbed86daf3322b1e6226ab33036105e1576001600160a01b031680156105d2576020817fdba79d534382d1a8ae108e4c8ecb27c6ae42ab8b91d44eedf88bd329f3868d5e926001600160601b0360a01b6003541617600355604051908152a180f35b63d92e233d60e01b8252600482fd5b632b2add3d60e01b8252600482fd5b50346101715760403660031901126101715760043561060d610864565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610162576003547f0ecec485166da6139b13bb7e033e9446e2d35348e80ebf1180d4afe2dba1704e9291610681916001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006108d3565b81845260026020908152604080862080546001600160a01b0319166001600160a01b0390941693841790558051938452908301919091528190810161015c565b50346101715780600319360112610171576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101715780600319360112610171576003546040516001600160a01b039091168152602090f35b503461017157602036600319011261017157602090600435815260028252604060018060a01b0391205416604051908152f35b5034610171578060031936011261017157602060405173735b14bb79463307aacbed86daf3322b1e6226ab8152f35b5034610171576020366003190112610171576107ab610849565b73735b14bb79463307aacbed86daf3322b1e6226ab33036105e1576001600160a01b031680156105d2576020817f3ade88e3922d64780e1bf4460d364c2970b69da813f9c0c07a1c187b5647636c926001600160601b0360a01b6004541617600455604051908152a180f35b9050346104d65760203660031901126104d6576004358252600160209081526040909220546001600160a01b03168152f35b600435906001600160a01b038216820361085f57565b600080fd5b602435906001600160a01b038216820361085f57565b90601f8019910116810190811067ffffffffffffffff82111761089c57604052565b634e487b7160e01b600052604160045260246000fd5b908060209392818452848401376000828201840152601f01601f1916010190565b91906001600160a01b038083169082168082146109c35710156109be57905b6001600160a01b038216156109ad576040519060208201926001600160601b03199060601b1683526001600160601b03199060601b1660348201526028815261093c60488261087a565b5190209060405191602083019160ff60f81b83526001600160601b03199060601b16602184015260358301527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f60558301526055825261099d60758361087a565b905190206001600160a01b031690565b633c5a83ed60e11b60005260046000fd5b6108f2565b63658f3e7f60e11b60005260046000fdfea26469706673582212203d5f24fd62859186e7d8a9f41a0e370a08bd7cbc34344f0eb46593f3ba299ff564736f6c634300081a003360806040523461011457610014600054610119565b601f81116100cb575b507f577261707065642045746865720000000000000000000000000000000000001a60005560015461004e90610119565b601f8111610081575b6008630ae8aa8960e31b016001556002805460ff1916601217905560405161073190816101548239f35b6001600052601f0160051c7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6908101905b8181106100bf5750610057565b600081556001016100b2565b60008052601f0160051c7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563908101905b818110610108575061001d565b600081556001016100fb565b600080fd5b90600182811c92168015610149575b602083101461013357565b634e487b7160e01b600052602260045260246000fd5b91607f169161012856fe60806040526004361015610023575b361561001957600080fd5b6100216106b2565b005b60003560e01c806306fdde0314610423578063095ea7b3146103a957806318160ddd1461038d57806323b872dd1461035e5780632e1a7d4d146102b9578063313ce5671461029857806370a082311461025e57806395d89b411461013d578063a9059cbb1461010b578063d0e30db0146100f75763dd62ed3e0361000e57346100f25760403660031901126100f2576100ba610526565b6100c261053c565b6001600160a01b039182166000908152600460209081526040808320949093168252928352819020549051908152f35b600080fd5b60003660031901126100f2576100216106b2565b346100f25760403660031901126100f2576020610133610129610526565b60243590336105a8565b6040519015158152f35b346100f25760003660031901126100f2576000604051816001548060011c90600181168015610254575b6020831081146102405782855290811561022457506001146101d0575b50819003601f01601f1916810167ffffffffffffffff8111828210176101bc576101b89250604052604051918291826104dd565b0390f35b634e487b7160e01b83526041600452602483fd5b600184529050827fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b82821061020e57506020915082010183610184565b60018160209254838588010152019101906101f9565b90506020925060ff191682840152151560051b82010183610184565b634e487b7160e01b86526022600452602486fd5b91607f1691610167565b346100f25760203660031901126100f2576001600160a01b0361027f610526565b1660005260036020526020604060002054604051908152f35b346100f25760003660031901126100f257602060ff60025416604051908152f35b346100f25760203660031901126100f2576004353360005260036020526102e7816040600020541015610552565b3360005260036020526040600020610300828254610578565b90558060008115610355575b600080809381933390f115610349576040519081527f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b6560203392a2005b6040513d6000823e3d90fd5b506108fc61030c565b346100f25760603660031901126100f257602061013361037c610526565b61038461053c565b604435916105a8565b346100f25760003660031901126100f257602047604051908152f35b346100f25760403660031901126100f2576103c2610526565b3360008181526004602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b346100f25760003660031901126100f25760006040518182548060011c906001811680156104d3575b60208310811461024057828552908115610224575060011461049c5750819003601f01601f1916810167ffffffffffffffff8111828210176101bc576101b89250604052604051918291826104dd565b90508280526020832083905b8282106104bd57506020915082010183610184565b60018160209254838588010152019101906104a8565b91607f169161044c565b91909160208152825180602083015260005b818110610510575060409293506000838284010152601f8019910116010190565b80602080928701015160408286010152016104ef565b600435906001600160a01b03821682036100f257565b602435906001600160a01b03821682036100f257565b1561055957565b60405162461bcd60e51b81526020600482015260006024820152604490fd5b9190820391821161058557565b634e487b7160e01b600052601160045260246000fd5b9190820180921161058557565b60207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9160018060a01b03169283600052600382526105ee856040600020541015610552565b3384141580610691575b610646575b83600052600382526040600020610615868254610578565b905560018060a01b0316938460005260038252604060002061063882825461059b565b9055604051908152a3600190565b6000848152600483526040808220338352845290205461066890861115610552565b600084815260048352604080822033835284529020805461068a908790610578565b90556105fd565b506000848152600483526040808220338352845290205460001914156105f8565b33600052600360205260406000206106cb34825461059b565b90556040513481527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a256fea26469706673582212209e220afc3d58f06e9fcfb74d0eadc71ef1ec14a29eb328f69f1935849690effe64736f6c634300081a003360808060405234602f57600160ff19600c541617600c55600160ff19601f541617601f556192a490816100358239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c8062173d46146102465780631ed7831c146102415780632558fcec1461023c5780632ade38801461023757806332030cef14610232578063347f3a7c1461022d5780633e5e3c23146102285780633f7286f41461022357806366d9a9a01461021e578063735de9f7146102195780638016f22b146102145780638327f7901461020f57806385226c811461020a5780638c52853c14610205578063916a17c614610200578063944a3ba4146101fb578063acfdc212146101f6578063ad82a627146101f1578063b0464fdc146101ec578063b184b87c146101e7578063b1c388b8146101e2578063b5508aa9146101dd578063b8969900146101d8578063ba414fa6146101d3578063bea9849e146101ce578063cc5ad8b6146101c9578063ced6e793146101c4578063d333abf6146101bf578063d7b3eeaf146101ba578063e20c9f71146101b5578063ebcff1c6146101b0578063f51a071d146101ab578063f59e8a67146101a6578063f9a41697146101a15763fa7626d41461019c57600080fd5b6116ef565b6116b5565b61165c565b6115ec565b6112b0565b611230565b611217565b6111e3565b61117e565b611151565b611112565b6110ed565b6110ae565b611021565b611004565b610f68565b610ebc565b610e35565b610d99565b610d06565b610c5a565b610b95565b610b08565b610a33565b6108a8565b61087f565b6107d3565b610695565b610615565b6105c2565b610586565b6104a9565b610365565b6102d5565b61025b565b600091031261025657565b600080fd5b34610256576000366003190112610256576026546040516001600160a01b039091168152602090f35b906020808351928381520192019060005b8181106102a25750505090565b82516001600160a01b0316845260209384019390920191600101610295565b9060206102d2928181520190610284565b90565b346102565760003660031901126102565760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b818110610346576103428561033681870382610966565b604051918291826102c1565b0390f35b82546001600160a01b031684526020909301926001928301920161031f565b34610256576020366003190112610256576004356000526022602052602060018060a01b0360406000205416604051908152f35b60005b8381106103ac5750506000910152565b818101518382015260200161039c565b906020916103d581518092818552858086019101610399565b601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061041457505050505090565b9091929394603f198282030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b85010194019260005b82811061047e57505050505060208060019297019301930191939290610405565b909192939460208061049c600193605f1987820301895289516103bc565b970195019392910161045d565b3461025657600036600319011261025657601e546104c681611712565b906104d46040519283610966565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061051a576040518061034287826103e1565b6002602060019260405161052d8161090f565b848060a01b0386541681526105438587016117f3565b83820152815201920192019190610505565b6001600160a01b0381160361025657565b6064359061057382610555565b565b9060206102d29281815201906103bc565b34610256576020366003190112610256576103426105ae6004356105a981610555565b61184b565b6040519182916020835260208301906103bc565b34610256576040366003190112610256576106136024356004356105e582610555565b600052602260205260406000209060018060a01b03166bffffffffffffffffffffffff60a01b825416179055565b005b346102565760003660031901126102565760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b818110610676576103428561033681870382610966565b82546001600160a01b031684526020909301926001928301920161065f565b346102565760003660031901126102565760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b8181106106f6576103428561033681870382610966565b82546001600160a01b03168452602090930192600192830192016106df565b906020808351928381520192019060005b8181106107335750505090565b82516001600160e01b031916845260209384019390920191600101610726565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061078657505050505090565b90919293946020806107c4600193603f19868203018752895190836107b483516040845260408401906103bc565b9201519084818403910152610715565b97019301930191939290610777565b3461025657600036600319011261025657601b546107f081611712565b906107fe6040519283610966565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b83831061084457604051806103428782610753565b600260206001926040516108578161090f565b61086086611729565b815261086d858701611883565b8382015281520192019201919061082f565b34610256576000366003190112610256576025546040516001600160a01b039091168152602090f35b34610256576040366003190112610256576106136024356004356108cb82610555565b600090815260216020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761092a57604052565b6108f9565b61010081019081106001600160401b0382111761092a57604052565b606081019081106001600160401b0382111761092a57604052565b90601f801991011681019081106001600160401b0382111761092a57604052565b60405190610573602083610966565b60405190610573606083610966565b60405190610573608083610966565b6040519061057360c083610966565b6001600160401b03811161092a57601f01601f191660200190565b81601f82011215610256578035906109f5826109c3565b92610a036040519485610966565b8284526020838301011161025657816000926020809301838601378301015290565b908160a09103126102565790565b346102565760a036600319011261025657600435610a5081610555565b6024356001600160401b03811161025657610a6f9036906004016109de565b90606435604435610a7f82610555565b608435936001600160401b03851161025657610aa2610613953690600401610a25565b93611f79565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610adb57505050505090565b9091929394602080610af9600193603f1986820301875289516103bc565b97019301930191939290610acc565b3461025657600036600319011261025657601a54610b2581611712565b90610b336040519283610966565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310610b7857604051806103428782610aa8565b600160208192610b8785611729565b815201920192019190610b63565b34610256576040366003190112610256576020602435600435610bb782610555565b60009081526023835260408082206001600160a01b03938416835260205290205b5416604051908152f35b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610c1557505050505090565b9091929394602080610c4b600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610715565b97019301930191939290610c06565b3461025657600036600319011261025657601d54610c7781611712565b90610c856040519283610966565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b838310610ccb57604051806103428782610be2565b60026020600192604051610cde8161090f565b848060a01b038654168152610cf4858701611883565b83820152815201920192019190610cb6565b3461025657602036600319011261025657600435610d2381610555565b601f8054610100600160a81b03191660089290921b610100600160a81b0316919091179055005b9181601f84011215610256578235916001600160401b038311610256576020838186019501011161025657565b60409060a31901126102565760a490565b604090608319011261025657608490565b346102565761010036600319011261025657600435610db781610555565b6024356001600160401b03811161025657610dd69036906004016109de565b90604435610de2610566565b6084356001600160401b03811161025657610e01903690600401610d4a565b91610e0b36610d77565b9360e435966001600160401b03881161025657610e2f610613983690600401610a25565b96612b04565b346102565760e036600319011261025657602435600435610e5582610555565b604435610e6181610555565b60643590608435610e7181610555565b60a4356001600160401b03811161025657610e90903690600401610d4a565b93909260c435966001600160401b03881161025657610eb6610613983690600401610a25565b96613476565b3461025657600036600319011261025657601c54610ed981611712565b90610ee76040519283610966565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b838310610f2d57604051806103428782610be2565b60026020600192604051610f408161090f565b848060a01b038654168152610f56858701611883565b83820152815201920192019190610f18565b346102565760e036600319011261025657600435610f8581610555565b6024356001600160401b03811161025657610fa49036906004016109de565b90604435610fb181610555565b6064356001600160401b03811161025657610fd0903690600401610d4a565b90610fda36610d88565b9260c435956001600160401b03871161025657610ffe610613973690600401610a25565b956138d4565b346102565760003660031901126102565760208054604051908152f35b346102565760003660031901126102565760195461103e81611712565b9061104c6040519283610966565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b83831061109157604051806103428782610aa8565b6001602081926110a085611729565b81520192019201919061107c565b34610256576020366003190112610256576004356110cb81610555565b602680546001600160a01b0319166001600160a01b0392909216919091179055005b34610256576000366003190112610256576020611108613d3b565b6040519015158152f35b346102565760203660031901126102565760043561112f81610555565b602580546001600160a01b0319166001600160a01b0392909216919091179055005b3461025657600036600319011261025657601f5460405160089190911c6001600160a01b03168152602090f35b346102565760c03660031901126102565760243560043561119e82610555565b6044356111aa81610555565b606435608435916111ba83610555565b60a435946001600160401b038611610256576111dd610613963690600401610a25565b94613e3f565b34610256576020366003190112610256576004356000526021602052602060018060a01b0360406000205416604051908152f35b3461025657602036600319011261025657600435602055005b346102565760003660031901126102565760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b818110611291576103428561033681870382610966565b82546001600160a01b031684526020909301926001928301920161127a565b346102565760a0366003190112610256576004356024356112d081610555565b604435916112dd83610555565b6064356001600160401b038111610256576112fc903690600401610d4a565b6084356001600160401b0381116102565761131b903690600401610a25565b601f549095906004906020906113449060081c6001600160a01b03165b6001600160a01b031690565b6040516313917f7760e11b815292839182905afa90811561151d576000916115bd575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d576115a8575b50601f546113d79060081c6001600160a01b0316611338565b604051606087901b6001600160601b03191660208201529261140684603481015b03601f198101865285610966565b61140e610996565b9384526001600160a01b038716602085015285604085015261144a61143d876000526022602052604060002090565b546001600160a01b031690565b90823b156102565760009461147786926040519889978896879563bcf7f32b60e01b875260048701614072565b03926216e360f1908161158d575b5061152257611492611d28565b60205460405163348051d760e11b8152600481019190915290919060008160248160008051602061924f8339815191525afa801561151d57610613956114ef6114ea866040946114f5966000916114fa575b5061413d565b6141c7565b016141bd565b616213565b61151791503d806000833e61150f8183610966565b810190611b3b565b386114e4565b611afa565b505060205460405163348051d760e11b81526004810191909152905060008160248160008051602061924f8339815191525afa90811561151d57610613916114ea91600091611572575b506140b9565b61158791503d806000833e61150f8183610966565b3861156c565b8061159c60006115a293610966565b8061024b565b38611485565b8061159c60006115b793610966565b386113be565b6115df915060203d6020116115e5575b6115d78183610966565b810190611c26565b38611367565b503d6115cd565b3461025657604036600319011261025657602060243560043561160e82610555565b60009081526024835260408082206001600160a01b0393841683526020529020610bd8565b6060906003190112610256576004359060243561164f81610555565b906044356102d281610555565b346102565761061361169661167036611633565b9291600052602360205260406000209060018060a01b0316600052602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b34610256576106136116966116c936611633565b9291600052602460205260406000209060018060a01b0316600052602052604060002090565b3461025657600036600319011261025657602060ff601f54166040519015158152f35b6001600160401b03811161092a5760051b60200190565b9060405191600081548060011c92600182169182156117e9575b6020851083146117d55784875286939260208501929181156117b85750600114611776575b505061057392500383610966565b611787919250600052602060002090565b906000915b8483106117a157506105739350013880611768565b80548284015286935060209092019160010161178c565b9150506105739491925060ff19168252151560051b013880611768565b634e487b7160e01b84526022600452602484fd5b93607f1693611743565b9081546117ff81611712565b9261180d6040519485610966565b818452602084019060005260206000206000915b83831061182e5750505050565b60016020819261183d85611729565b815201920192019190611821565b90813b6000611859826109c3565b6118666040519182610966565b828152611872836109c3565b602082019190601f1901368337943c565b604051815480825290929183906118a36020830191600052602060002090565b926000905b8060078301106119eb576105739454918181106119cc575b8181106119ad575b81811061198e575b81811061196f575b818110611950575b818110611931575b818110611913575b106118fe575b500383610966565b6001600160e01b0319168152602001386118f6565b602083811b6001600160e01b031916855290936001910193016118f0565b604083901b6001600160e01b03191684529260019060200193016118e8565b606083901b6001600160e01b03191684529260019060200193016118e0565b608083901b6001600160e01b03191684529260019060200193016118d8565b60a083901b6001600160e01b03191684529260019060200193016118d0565b60c083901b6001600160e01b03191684529260019060200193016118c8565b6001600160e01b031960e084901b1684529260019060200193016118c0565b916008919350610100600191611a9a8754611a11838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b0194019201859293916118a8565b60405190611ab58261092f565b606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b90816020910312610256575190565b6040513d6000823e3d90fd5b90929192611b13816109c3565b91611b216040519384610966565b829482845282820111610256576020610573930190610399565b602081830312610256578051906001600160401b03821161025657019080601f830112156102565781516102d292602001611b06565b90610573601b602960405180956802db1b430b4b724b2160bd1b6020830152611ba38151809260208686019101610399565b81017f5d205b4552524f525d2047617465776179206e6f7420666f756e640000000000838201520301600419810185520183610966565b9060208251920151916bffffffffffffffffffffffff1983169260148210611c00575050565b6001600160601b031960149290920360031b82901b16169150565b519061057382610555565b9081602091031261025657516102d281610555565b90610573601b602960405180956802db1b430b4b724b2160bd1b6020830152611c6d8151809260208686019101610399565b81017f5d205b4552524f525d20437573746f6479206e6f7420666f756e640000000000838201520301600419810185520183610966565b906105736033602960405180956802db1b430b4b724b2160bd1b6020830152611cd68151809260208686019101610399565b81017f5d205b494e464f5d2045524332302f5a45544120776974686472617720636f6d8382015272706c65746564207375636365737366756c6c7960681b604982015203016013810185520183610966565b3d15611d53573d90611d39826109c3565b91611d476040519384610966565b82523d6000602084013e565b606090565b60266105739193929360296040519586926802db1b430b4b724b2160bd1b6020850152611d8e8151809260208688019101610399565b83017f5d205b4552524f525d2045524332302f5a4554412077697468647261772066618382015265034b632b21d160d51b6049820152611dd8825180936020604f85019101610399565b01010301601f198101845283610966565b8015150361025657565b91909160a081840312610256576040519060a082018281106001600160401b0382111761092a5760405281938135611e2a81610555565b83526020820135611e3a81611de9565b60208401526040820135611e4d81610555565b60408401526060820135916001600160401b03831161025657611e7660809392849383016109de565b60608501520135910152565b906105736023602960405180956802db1b430b4b724b2160bd1b6020830152611eb48151809260208686019101610399565b81017f5d205b4552524f525d2047617320746f6b656e207472616e736665722066616983820152621b195960ea1b604982015203016003810185520183610966565b906105736032602960405180956802db1b430b4b724b2160bd1b6020830152611f288151809260208686019101610399565b81017f5d205b494e464f5d2047617320746f6b656e207472616e7366657220636f6d7083820152716c65746564207375636365737366756c6c7960701b604982015203016012810185520183610966565b9293919093611f86611aa8565b60405163085e1f4d60e41b81529095906001600160a01b03831690602081600481855afa90811561151d57611fd59161143d91600091612657575b50808a526000526021602052604060002090565b6001600160a01b0390811660208901818152929190611ff390611338565b16156125df5761203761203161204f9261201e61133861143d8d516000526022602052604060002090565b1460408b0190815294611bda565b611bda565b60601c90565b6001600160a01b031660608901908152925b51151590565b1561223f57516004919060209061206e906001600160a01b0316611338565b604051635b11259160e01b815293849182905afa91821561151d5760009261221e575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af191821561151d57600080866121068295839561211f9861220a575b50516001600160a01b031690565b5af1612110611d28565b50151560c08701908152612049565b15612190575050915160405163348051d760e11b815260048101919091529150600090508160248160008051602061924f8339815191525afa90811561151d57610573916114ea91600091612175575b50611ef6565b61218a91503d806000833e61150f8183610966565b3861216f565b845160405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa95861561151d576121e16114ea610573986121ea946000916121ef575b50611e82565b51933690611df3565b614ddf565b61220491503d806000833e61150f8183610966565b386121db565b8061159c8661221893610966565b386120f8565b61223891925060203d6020116115e5576115d78183610966565b9038612091565b80516004919060209061225a906001600160a01b0316611338565b60405163dda79b7560e01b815293849182905afa91821561151d576000926125be575b506001600160a01b03919091166080880181815291906122ad906122a090611338565b1560a08a01908152612049565b6125465751600491906020906122cb906001600160a01b0316611338565b604051635b11259160e01b815293849182905afa91821561151d57600092612525575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af191821561151d576113386123629261133892612370956125165750516001600160a01b031690565b91516001600160a01b031690565b6123a361143d8461238c8a516000526024602052604060002090565b9060018060a01b0316600052602052604060002090565b90823b1561025657604051636ce5768960e11b81526001600160a01b0391821660048201529116602482015260448101849052906000908290606490829084905af19081612501575b5061247f5761242e946123fd611d28565b90600060c08201528160e0820152600081516040518099819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d576114ea6121ea936121e1926105739a600091612464575b50611d58565b61247991503d806000833e61150f8183610966565b3861245e565b5050505060008161249660c06124b6940160019052565b516040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea916000916124e6575b50611ca4565b6124fb91503d806000833e61150f8183610966565b386124e0565b8061159c600061251093610966565b386123ec565b8061159c600061221893610966565b61253f91925060203d6020116115e5576115d78183610966565b90386122ee565b50505050505050600061257391516040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea916000916125a3575b50611c3b565b6125b891503d806000833e61150f8183610966565b3861259d565b6125d891925060203d6020116115e5576115d78183610966565b903861227d565b50505050505050600061260c91516040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea9160009161263c575b50611b71565b61265191503d806000833e61150f8183610966565b38612636565b612679915060203d60201161267f575b6126718183610966565b810190611aeb565b38611fc1565b503d612667565b6040519061014082018281106001600160401b0382111761092a5760405260606101208360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201528260e082015260006101008201520152565b356102d281611de9565b908060209392818452848401376000828201840152601f01601f1916010190565b90516001600160a01b039081168252918216602082015291166040820152606081019190915260a0608082018190526102d2939101916126f3565b90610573603c602960405180956802db1b430b4b724b2160bd1b60208301526127818151809260208686019101610399565b81017f5d205b494e464f5d2045524332302f5a45544120776974686472617720616e64838201527f2063616c6c20636f6d706c65746564207375636365737366756c6c790000000060498201520301601c810185520183610966565b602f6105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526128138151809260208688019101610399565b83017f5d205b4552524f525d2045524332302f5a45544120776974686472617720616e838201526e0321031b0b636103330b4b632b21d1608d1b6049820152611dd8825180936020605885019101610399565b906004116102565790600490565b356001600160e01b031981169291906004821061288f575050565b6001600160e01b031960049290920360031b82901b16169150565b90610573605a60405180947f526563656976657220636f6e747261637420646f6573206e6f7420636f6e746160208301527f696e2066756e6374696f6e20776974682073656c6563746f722000000000000060408301526129148151809260208686019101610399565b81010301601f198101845283610966565b600a6105739193929360296040519586926802db1b430b4b724b2160bd1b602085015261295b8151809260208688019101610399565b83016902e902da2a92927a92e960b51b83820152611dd8825180936020603385019101610399565b9080601f830112156102565781516102d292602001611b06565b906020828203126102565781516001600160401b038111610256576102d29201612983565b90516001600160a01b03908116825290911660208201526060604082018190526102d2939101916126f3565b90610573603b602960405180956802db1b430b4b724b2160bd1b6020830152612a208151809260208686019101610399565b81017f5d205b494e464f5d2047617320746f6b656e207472616e7366657220616e6420838201527f63616c6c20636f6d706c65746564207375636365737366756c6c79000000000060498201520301601b810185520183610966565b602e6105739193929360296040519586926802db1b430b4b724b2160bd1b6020850152612ab28151809260208688019101610399565b83017f5d205b4552524f525d2047617320746f6b656e207472616e7366657220616e64838201526d01031b0b636103330b4b632b21d160951b6049820152611dd8825180936020605785019101610399565b95969491939096612b13612686565b60405163085e1f4d60e41b815290986001600160a01b03861691602081600481865afa90811561151d57612b619161143d916000916132d0575b50808d526000526021602052604060002090565b6001600160a01b0390811660208c01818152939190612b7f90611338565b16156132a057612bba6120318c949361202c6040612bd095612bb261133861143d8b516000526022602052604060002090565b149701968752565b6001600160a01b031660608c0190815292612049565b15612f8957612be1602084016126e9565b612e34575b805160049493929190602090612c04906001600160a01b0316611338565b604051635b11259160e01b815296879182905afa94851561151d57600095612e13575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039590951660048601526000856024818360008051602061924f8339815191525af194851561151d576113388992612c9892600098612e055750516001600160a01b031690565b923592612cc1612ca6610987565b6001600160a01b038d168152935b516001600160a01b031690565b92612ce2604051988997889687946338e2252760e01b8652600486016129c2565b0393f19081612de4575b50612d8157612d3094612cfd611d28565b90600061010082015281610120820152600081516040518099819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d576114ea6121ea936121e1926105739a600091612d66575b50612a7c565b612d7b91503d806000833e61150f8183610966565b38612d60565b50505050600081612496610100612d99940160019052565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091612dc9575b506129ee565b612dde91503d806000833e61150f8183610966565b38612dc3565b612e00903d806000833e612df88183610966565b81019061299d565b612cec565b8061159c8a61221893610966565b612e2d91955060203d6020116115e5576115d78183610966565b9338612c27565b612e47612e418686612866565b90612874565b8251612e6e90612e6a908390612e65906001600160a01b031661184b565b61544d565b1590565b612e785750612be6565b9250505087925060009150612e9360c0612ebd990160019052565b604051631623433d60e31b81526001600160e01b0319909116600482015296879081906024820190565b038160008051602061924f8339815191525afa95861561151d57612f1896612eed91600091612f6e575b506128aa565b9060e08101918252600081516040518099819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d576114ea6121ea936121e1926105739a600092612f51575b505190612925565b612f679192503d806000833e61150f8183610966565b9038612f49565b612f8391503d806000833e61150f8183610966565b38612ee7565b80519194929160049190602090612fa8906001600160a01b0316611338565b60405163dda79b7560e01b815293849182905afa91821561151d5760009261327f575b506001600160a01b039190911660808b018181529190612fff908c906120499060a090612ff790611338565b159201918252565b61324f57516004919060209061301d906001600160a01b0316611338565b604051635b11259160e01b815293849182905afa91821561151d5760009261322e575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af191821561151d576113386130b292611338928e956125165750516001600160a01b031690565b92868a6130c36020863596016126e9565b1561321a575061143d6131069161238c6130f460009a5b612cb46130e5610987565b6001600160a01b03909d168d52565b95516000526024602052604060002090565b93803b156102565788966131366000979388946040519a8b998a9889966356840c2960e11b885260048801612714565b0393f19081613205575b506131a25761315194612cfd611d28565b038160008051602061924f8339815191525afa801561151d576114ea6121ea936121e1926105739a600091613187575b506127dd565b61319c91503d806000833e61150f8183610966565b38613181565b505050506000816124966101006131ba940160019052565b038160008051602061924f8339815191525afa90811561151d57610573916114ea916000916131ea575b5061274f565b6131ff91503d806000833e61150f8183610966565b386131e4565b8061159c600061321493610966565b38613140565b6131069161238c6130f461143d939a6130da565b61324891925060203d6020116115e5576115d78183610966565b9038613040565b50505050505050505050600061257391516040518093819263348051d760e11b8352600483019190602083019252565b61329991925060203d6020116115e5576115d78183610966565b9038612fcb565b50505050505050505050600061260c91516040518093819263348051d760e11b8352600483019190602083019252565b6132e9915060203d60201161267f576126718183610966565b38612b4d565b60256105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526133258151809260208688019101610399565b83017f5d205b4552524f525d205a52433230206e6f7420666f756e6420666f722061738382015264039b2ba1d160dd1b6049820152611dd8825180936020604e85019101610399565b9060408061338584516060855260608501906103bc565b6020808601516001600160a01b03169085015293015191015290565b9194926133bb6102d297959260a0855260a085019061336e565b6001600160a01b0396871660208501526040840191909152941660608201528084036080909101526126f3565b90610573603a602960405180956802db1b430b4b724b2160bd1b602083015261341a8151809260208686019101610399565b81017f5d205b494e464f5d205a657461436861696e206465706f73697420616e642063838201527f616c6c20636f6d706c65746564207375636365737366756c6c7900000000000060498201520301601a810185520183610966565b95969491909661349761143d8661238c8a6000526023602052604060002090565b926001600160a01b038416156136b457601f546004906020906134c59060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091613695575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57613680575b50601f546135589060081c6001600160a01b0316611338565b6040516001600160601b031960608c901b166020820152601481529161357f603484610966565b613587610996565b9283526001600160a01b038b166020840152896040840152813b1561025657600087936135ce82968994604051998a988997889663c39aca3760e01b8852600488016133a1565b03926216e360f1908161366b575b506135f357610573956135ed611d28565b95615710565b50505050505061362060006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091613650575b506133e8565b61366591503d806000833e61150f8183610966565b3861364a565b8061159c600061367a93610966565b386135dc565b8061159c600061368f93610966565b3861353f565b6136ae915060203d6020116115e5576115d78183610966565b386134e8565b50505050509150506136e5915060006020546040518094819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d5760009261377a575b50604051632b65311f60e11b81526001600160a01b03909116600482015260008180602481015b038160008051602061924f8339815191525afa801561151d57610573926114ea9260009261375d575b506132ef565b6137739192503d806000833e61150f8183610966565b9038613757565b61372e9192506137956000913d8084833e61150f8183610966565b929150613707565b6040519060e082018281106001600160401b0382111761092a57604052606060c083600081526000602082015260006040820152600083820152826080820152600060a08201520152565b90610573602d602960405180956802db1b430b4b724b2160bd1b602083015261381a8151809260208686019101610399565b81017f5d205b494e464f5d2045564d20657865637574696f6e20636f6d706c65746564838201526c207375636365737366756c6c7960981b60498201520301600d810185520183610966565b60206105739193929360296040519586926802db1b430b4b724b2160bd1b8585015261389a81518092878688019101610399565b83017f5d205b4552524f525d2045564d20657865637574696f6e206661696c65643a2083820152611dd88251809387604985019101610399565b939194959290600460206138e661379d565b60405163085e1f4d60e41b815290989092839182906001600160a01b03165afa90811561151d576139319161143d91600091613d1c575b508089526000526021602052604060002090565b6001600160a01b039081166020880181815292919061394f90611338565b1615613ced5761203161396191611bda565b6001600160a01b031660408701908152602088019161397f836126e9565b613be3575b6004949596979860206139a0611338845160018060a01b031690565b604051635b11259160e01b815297889182905afa95861561151d57600096613bc2575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039690961660048701526000866024818360008051602061924f8339815191525af191821561151d57613a37611338613a3f926000998a96613bb45750516001600160a01b031690565b9135946126e9565b8214613baa57613a6582935b612cb4613a56610987565b6001600160a01b039096168652565b92613a86604051988997889687946338e2252760e01b8652600486016129c2565b0393f19081613b91575b50613b3157613ad292613aa1611d28565b90600060a08201528160c0820152600081516040518097819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d576114ea613b1193613b089261057398600091613b16575b50613866565b51913690611df3565b6146df565b613b2b91503d806000833e61150f8183610966565b38613b02565b505060008161249660a0613b46940160019052565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091613b76575b506137e8565b613b8b91503d806000833e61150f8183610966565b38613b70565b613ba5903d806000833e612df88183610966565b613a90565b613a658993613a4b565b8061159c8861221893610966565b613bdc91965060203d6020116115e5576115d78183610966565b94386139c3565b613bf0612e418686612866565b98613c0b612e6a8b612e656105a9875160018060a01b031690565b613c16579850613984565b50505050505090916000613c5b94613c316060840160019052565b604051631623433d60e31b81526001600160e01b0319909116600482015294859081906024820190565b038160008051602061924f8339815191525afa93841561151d57613cb594613c8a91600091612f6e57506128aa565b9060808101918252600081516040518097819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d576114ea613b1193613b089261057398600092612f5157505190612925565b5050935160405163348051d760e11b81526004810191909152945060009350849250829150506024810161260c565b613d35915060203d60201161267f576126718183610966565b3861391d565b60085460ff168015613d4a5790565b50604051630667f9d760e41b815260008051602061924f833981519152600482018190526519985a5b195960d21b6024830152602090829060449082905afa90811561151d57600091613d9e575b50151590565b613db7915060203d60201161267f576126718183610966565b38613d98565b906105736031602960405180956802db1b430b4b724b2160bd1b6020830152613def8151809260208686019101610399565b81017f5d205b494e464f5d205a657461436861696e206465706f73697420636f6d706c838201527065746564207375636365737366756c6c7960781b604982015203016011810185520183610966565b939194929094613e6061143d8461238c886000526023602052604060002090565b906001600160a01b0382161561404257601f54600490602090613e8e9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091614023575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d5761400e575b50601f54613f219060081c6001600160a01b0316611338565b803b1561025657604051633d14d1b760e21b81526001600160a01b038481166004830152602482018690529290921660448301526000908290606490829084905af19081613ff9575b50613f815761057395613f7b611d28565b95615db5565b505050505050613fae60006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091613fde575b50613dbd565b613ff391503d806000833e61150f8183610966565b38613fd8565b8061159c600061400893610966565b38613f6a565b8061159c600061401d93610966565b38613f08565b61403c915060203d6020116115e5576115d78183610966565b38613eb1565b505060205460405163348051d760e11b8152600481019190915294509092506000915083905080602481016136e5565b909261408d6102d2969495939560a0845260a084019061336e565b6001600160a01b03958616602084015260006040840152941660608201528084036080909101526126f3565b906105736033602960405180956802db1b430b4b724b2160bd1b60208301526140eb8151809260208686019101610399565b81017f5d205b494e464f5d205a657461436861696e20657865637574696f6e20636f6d8382015272706c65746564207375636365737366756c6c7960681b604982015203016013810185520183610966565b60266105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526141738151809260208688019101610399565b83017f5d205b4552524f525d205a657461436861696e20657865637574696f6e2066618382015265034b632b21d160d51b6049820152611dd8825180936020604f85019101610399565b356102d281610555565b6141f46142026105739260405192839163104c13eb60e21b602084015260206024840181815201906103bc565b03601f198101835282610966565b617fe7565b90610573601e602960405180956802db1b430b4b724b2160bd1b60208301526142398151809260208686019101610399565b81017f5d205b494e464f5d2063616c6c4f6e5265766572742069732066616c73650000838201520301600119810185520183610966565b90610573601f602960405180956802db1b430b4b724b2160bd1b60208301526142a28151809260208686019101610399565b81017f5d205b4552524f525d2072657665727441646472657373206973207a65726f00838201520301600019810185520183610966565b90608060606102d29360018060a01b03815116845260018060a01b0360208201511660208501526040810151604085015201519181606082015201906103bc565b9060206102d29281815201906142d9565b600b90602d61057393959460296040519788946802db1b430b4b724b2160bd1b6020870152614363815180926020868a019101610399565b85017f5d205b494e464f5d20457865637574696e67206f6e526576657274206f6e2072838201526c032bb32b93a20b2323932b9b99609d1b60498201526143b4825180936020605685019101610399565b01016a0161031b7b73a32bc3a1d160ad1b83820152611dd8825180936020603885019101610399565b6001600160a01b039182168152602081019290925290911660408201526080606082018190526102d2929101906142d9565b6001600160a01b0390911681526040602082018190526102d2929101906142d9565b602081830312610256578051906001600160401b03821161025657019080601f830112156102565781519161446583611712565b926144736040519485610966565b80845260208085019160051b830101918383116102565760208101915b83831061449f57505050505090565b82516001600160401b038111610256578201906060828703601f19011261025657604051906144cd8261094b565b60208301516001600160401b0381116102565760209084010187601f82011215610256578051906144fd82611712565b9161450b6040519384610966565b80835260208084019160051b830101918a831161025657602001905b8282106145795750505082526040830151916001600160401b0383116102565761456960608561455f8b602080999881990101612983565b8685015201611c1b565b6040820152815201920191614490565b8151815260209182019101614527565b634e487b7160e01b600052603260045260246000fd5b8051156145ac5760200190565b614589565b8051600110156145ac5760400190565b8051600210156145ac5760600190565b80518210156145ac5760209160051b010190565b90610573601d602960405180956802db1b430b4b724b2160bd1b60208301526146178151809260208686019101610399565b81017f5d205b494e464f5d204576656e742066726f6d206f6e5265766572743a000000838201520301600219810185520183610966565b6040519061465d604083610966565b600a825269101032b6b4ba3a32b91d60b11b6020830152565b60405190614685604083610966565b600782526610103230ba309d60c91b6020830152565b604051906146aa604083610966565b60078252662020746f70696360c81b6020830152565b604051906146cf604083610966565b60018252601d60f91b6020830152565b9190606083019081516146f06109a5565b6001600160a01b03851681529060006020830152600060408301526060820152602085015115614d705760008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57614d5b575b5084516001600160a01b031615614cda5760405163348051d760e11b81526004810183905260008160248160008051602061924f8339815191525afa90811561151d57600091614cbf575b5085516147e7906000906001600160a01b03165b604051632b65311f60e11b81526001600160a01b03909116600482015291829081906024820190565b038160008051602061924f8339815191525afa801561151d5761483d91600091614ca4575b506000604051614823816141f4886020830161431a565b604051809481926371aad10d60e01b835260048301610575565b038160008051602061924f8339815191525afa90811561151d5761486d936114ea93600093614c87575b5061432b565b601f5460049060209061488b9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091614c68575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57614c53575b50601f5461491e9060081c6001600160a01b0316611338565b85519091906001600160a01b031690823b1561025657614958926000928360405180968195829463184b079360e01b84526004840161440f565b03926216e360f19081614c3e575b5061498c57600080614984604061057397015160018060a01b031690565b935193616ba4565b9150506040519163064554e960e21b83526000836004818360008051602061924f8339815191525af192831561151d57600093614c1b575b5060005b8351811015614c15576149ef60406149e083876145d1565b5101516001600160a01b031690565b6040830151614a06906001600160a01b0316611338565b6001600160a01b0390911614614a1f575b6001016149c8565b60405163348051d760e11b815260048101849052909491929060008160248160008051602061924f8339815191525afa90811561151d57614a6c916114ea91600091614bfc575b506145e5565b614a8060006147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d57614ab391600091614be3575b50614aae61464e565b618002565b614ae160006020614ac488886145d1565b510151604051809381926371aad10d60e01b835260048301610575565b038160008051602061924f8339815191525afa801561151d57614b0f91600091614bca575b50614aae614676565b60005b614b1c86866145d1565b515151811015614bc157806000614b41614b6193614b3a8a8a6145d1565b51516145d1565b5160405180948192631623433d60e31b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d57600192614ba291600091614ba8575b50614b9361469b565b83614b9c6146c0565b91618046565b01614b12565b614bbb913d8091833e61150f8183610966565b38614b8a565b50919093614a17565b614bdd913d8091833e61150f8183610966565b38614b06565b614bf6913d8091833e61150f8183610966565b38614aa5565b614c0f913d8091833e61150f8183610966565b38614a66565b50505050565b614c3791933d8091833e614c2f8183610966565b810190614431565b91386149c4565b8061159c6000614c4d93610966565b38614966565b8061159c6000614c6293610966565b38614905565b614c81915060203d6020116115e5576115d78183610966565b386148ae565b614c9d9193503d806000833e61150f8183610966565b9138614867565b614cb991503d806000833e61150f8183610966565b3861480c565b614cd491503d806000833e61150f8183610966565b386147aa565b5060205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa94851561151d57614984604060009392614d336114ea6105739a87968791614d41575b50614270565b01516001600160a01b031690565b614d5591503d8089833e61150f8183610966565b38614d2d565b8061159c6000614d6a93610966565b3861475f565b5060405163348051d760e11b81526004810182905260008160248160008051602061924f8339815191525afa94851561151d57614984604060009392614d336114ea6105739a87968791614dc5575b50614207565b614dd991503d8089833e61150f8183610966565b38614dbf565b93929060608501928351614df16109a5565b6001600160a01b0387168152906001600160a01b03841660208301528260408301526060820152614e256020880151151590565b156153bd5760008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d576153a8575b5086516001600160a01b03161561533e5760405163348051d760e11b81526004810185905260008160248160008051602061924f8339815191525afa90811561151d57600091615323575b508751614ed2906000906001600160a01b03166147be565b038160008051602061924f8339815191525afa801561151d57614f0d91600091614ca457506000604051614823816141f4886020830161431a565b038160008051602061924f8339815191525afa90811561151d57614f3c936114ea93600093614c87575061432b565b601f54600490602090614f5a9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091615304575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d576152ef575b506001600160a01b03831661524f57601f54614ffb9060081c6001600160a01b0316611338565b87519091906001600160a01b031690823b1561025657615035926000928360405180968195829463184b079360e01b84526004840161440f565b03926216e360f1908161523a575b50615062576040959095015161057395906001600160a01b0316614984565b50509150505b60405163064554e960e21b8152916000836004818360008051602061924f8339815191525af192831561151d5760009361521f575b5060005b8351811015614c15576150b960406149e083876145d1565b60408301516150d0906001600160a01b0316611338565b6001600160a01b03909116146150e9575b6001016150a1565b60405163348051d760e11b815260048101849052909491929060008160248160008051602061924f8339815191525afa90811561151d57615135916114ea91600091614bfc57506145e5565b61514960006147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d5761517691600091614be35750614aae61464e565b61518760006020614ac488886145d1565b038160008051602061924f8339815191525afa801561151d576151b491600091614bca5750614aae614676565b60005b6151c186866145d1565b51515181101561521657806000614b416151df93614b3a8a8a6145d1565b038160008051602061924f8339815191525afa91821561151d5760019261521091600091614ba85750614b9361469b565b016151b7565b509190936150e1565b61523391933d8091833e614c2f8183610966565b913861509d565b8061159c600061524993610966565b38615043565b601f546152679060081c6001600160a01b0316611338565b87519091906001600160a01b031690823b15610256576152a39260009283604051809681958294639d4ba46560e01b84528a8c600486016143dd565b03926216e360f190816152da575b506152d0576040959095015161057395906001600160a01b0316614984565b5050915050615068565b8061159c60006152e993610966565b386152b1565b8061159c60006152fe93610966565b38614fd4565b61531d915060203d6020116115e5576115d78183610966565b38614f7d565b61533891503d806000833e61150f8183610966565b38614eba565b5060205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d5761057397614d336114ea614984946040946000916153935750614270565b614d5591503d806000833e61150f8183610966565b8061159c60006153b793610966565b38614e6f565b5060405163348051d760e11b81526004810184905260008160248160008051602061924f8339815191525afa90811561151d5761057397614d336114ea6149849460409460009161540e5750614207565b614dd991503d806000833e61150f8183610966565b634e487b7160e01b600052601160045260246000fd5b906104b0820180921161544857565b615423565b919060005b600481018082116154485784511061549757602081850101516001600160e01b031983811691161461548f57600019811461544857600101615452565b506001925050565b506000925050565b604051906154ac8261092f565b600060e083606081528260208201528260408201528260608201528260808201528260a08201528260c08201520152565b604051906154ec604083610966565b600782526619195c1bdcda5d60ca1b6020830152565b60405190615511604083610966565b601082526f19195c1bdcda5d08185b990818d85b1b60821b6020830152565b600990601461057393959460296040519788946802db1b430b4b724b2160bd1b6020870152615568815180926020868a019101610399565b85017302e902da2a92927a92e902d32ba30a1b430b4b7160651b8382015261559a825180936020603d85019101610399565b0101680103330b4b632b21d160bd1b83820152611dd8825180936020601d85019101610399565b919082604091031261025657602082516155da81610555565b92015190565b9081602091031261025657516102d281611de9565b90610573603a602960405180956802db1b430b4b724b2160bd1b60208301526156278151809260208686019101610399565b81017f5d205b4552524f525d204661696c656420746f206d696e74205a524332302074838201527f6f6b656e7320666f722070726f746f636f6c206164647265737300000000000060498201520301601a810185520183610966565b9190820391821161544857565b90610573602f602960405180956802db1b430b4b724b2160bd1b60208301526156c28151809260208686019101610399565b81017f5d205b4552524f525d204661696c656420746f206275726e2072656d61696e69838201526e6e67205a5243323020746f6b656e7360881b60498201520301600f810185520183610966565b9094939195615751939661572261549f565b9161572b615502565b835260006020546040518098819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa95861561151d576114ea826157b99861578893600091615d9a575b50865190615530565b6040805163fc5fecd560e01b815260808901356004820152966001600160a01b038416939190889081906024820190565b0381865afa801561151d57600097600091615d65575b50604085019081526001600160a01b039097166020850190815296601f546004906020906158089060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091615d46575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03821660048201526000816024818360008051602061924f8339815191525af1801561151d57615d31575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018d905260208160448160008a5af190811561151d57600091615d12575b5015156060870190815260008051602061924f8339815191523b15610256576040516303223eab60e11b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af190811561151d5761592e92612e6a92615cfd575b5051151590565b615c805780519060a0860191825260c086019861594b8a60019052565b805161595f906001600160a01b0316611338565b8603615bf8575b505060008051602061924f8339815191523b15610256576040516390c5013b60e01b8152906000826004818360008051602061924f8339815191525af191821561151d576159bb92615be3575b50518b615683565b608085018181529a9015615bc4575050601f54600491506020906159ea9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091615ba5575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57600092602092615a9292615b91575b508a51604051948580948193630852cd8d60e31b8352600483019190602083019252565b03925af1801561151d57615abd92612e6a92600092615b59575b5060e0612049910191829015159052565b615ae157615adb615ad361057397519451151590565b943690611df3565b90618832565b505050505050615b0e60006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091615b3e575b50615690565b615b5391503d806000833e61150f8183610966565b38615b38565b612049919250615b8260e09160203d602011615b8a575b615b7a8183610966565b8101906155e0565b929150615aac565b503d615b70565b8061159c86615b9f93610966565b38615a6e565b615bbe915060203d6020116115e5576115d78183610966565b38615a0d565b9496509450956105739850615bde925060409150016141bd565b61788e565b8061159c6000615bf293610966565b386159b3565b60008a52516001600160a01b03169051601f54600490602090615c269060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa91821561151d57615c56938f92600094615c5f575b5086618362565b81523880615966565b615c7991945060203d6020116115e5576115d78183610966565b9238615c4f565b5050505050505050505050615cb260006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091615ce2575b506155f5565b615cf791503d806000833e61150f8183610966565b38615cdc565b8061159c6000615d0c93610966565b38615927565b615d2b915060203d602011615b8a57615b7a8183610966565b386158be565b8061159c6000615d4093610966565b38615880565b615d5f915060203d6020116115e5576115d78183610966565b3861582b565b9050615d8a91975060403d604011615d93575b615d828183610966565b8101906155c1565b969096386157cf565b503d615d78565b615daf91503d806000833e61150f8183610966565b3861577f565b90949391956157519396615dc761549f565b9161572b6154dd565b90610573601e602960405180956802db1b430b4b724b2160bd1b6020830152615e028151809260208686019101610399565b81017f5d205b4552524f525d2061626f727441646472657373206973207a65726f0000838201520301600119810185520183610966565b6007600461057392949394602f6040519687926e021b0b713ba103a3930b739b332b91608d1b6020850152615e778151809260208688019101610399565b83016301037b3160e51b83820152615e99825180936020603385019101610399565b01016620746f6b656e7360c81b838201520301601819810185520183610966565b600460129295946017610573956029604051998a966802db1b430b4b724b2160bd1b6020890152615ef4815180926020868c019101610399565b87017f5d205b4552524f525d205472616e7366657272696e672000000000000000000083820152615f2f825180936020604085019101610399565b01016301037b3160e51b83820152615f51825180936020601b85019101610399565b0101710103a37b5b2b739903a379039b2b73232b9160751b83820152611dd8825180936020601685019101610399565b602d6105739193929360296040519586926802db1b430b4b724b2160bd1b6020850152615fb78151809260208688019101610399565b83017f5d205b494e464f5d205472616e7366657272696e6720746f6b656e7320746f20838201526c030b137b93a20b2323932b9b99609d1b6049820152611dd8825180936020605685019101610399565b6102d29160a0616021835160c0845260c08401906103bc565b92600180831b036020820151166020840152604081015160408401526060810151151560608401526080810151608084015201519060a08184039101526103bc565b9060206102d2928181520190616008565b601d90601261057393959460296040519788946802db1b430b4b724b2160bd1b60208701526160ac815180926020868a019101610399565b85017102e902da4a72327ae9021b7b73a3930b1ba160751b838201526160dc825180936020603b85019101610399565b01017f20657865637574696e67206f6e41626f72742c20636f6e746578743a2000000083820152611dd8825180936020602f85019101610399565b6001600160a01b0390911681526040602082018190526102d292910190616008565b90610573601c602960405180956802db1b430b4b724b2160bd1b602083015261616b8151809260208686019101610399565b81017f5d205b494e464f5d204576656e742066726f6d206f6e41626f72743a00000000838201520301600319810185520183610966565b601a6105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526161d88151809260208688019101610399565b83017f5d205b4552524f525d206f6e41626f7274206661696c65643a2000000000000083820152611dd8825180936020604385019101610399565b6001600160a01b0381169360009390928515616a625760205460405163348051d760e11b81526004810191909152858160248160008051602061924f8339815191525afa90811561151d578691616a48575b50604051632b65311f60e11b81526001600160a01b038516600482015290868260248160008051602061924f8339815191525afa91821561151d5787926162b7926114ea928592616a2c575b50615f81565b616836575b604080516001600160a01b0390951660208601526162dd90859081016113f8565b6162e56109b4565b9384526001600160a01b0385166020850152604084018590528415156060850152608084015260a083015260205460405163348051d760e11b8152600481019190915283818060248101038160008051602061924f8339815191525afa90811561151d57849161681c575b50604051632b65311f60e11b81526001600160a01b0383166004820152848160248160008051602061924f8339815191525afa801561151d576163aa918691616802575b5085604051614823816141f48960208301616063565b038160008051602061924f8339815191525afa90811561151d576163d9936114ea9388936167e6575b50616074565b601f546004906020906163f79060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d5784916167c7575b5060008051602061924f8339815191523b156167975760405163ca669fa760e01b81526001600160a01b0391909116600482015283816024818360008051602061924f8339815191525af1801561151d576167b3575b5060008051602061924f8339815191523b156167af576040516320d797a960e11b815283816004818360008051602061924f8339815191525af1801561151d5761679b575b50601f546164cd9060081c6001600160a01b0316611338565b90813b15616797579183916164f99383604051809681958294632095dedb60e01b845260048401616117565b03925af19081616783575b50616583576165399150616516611d28565b816020546040518095819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d5761057393836114ea9492616568575b50506161a2565b61657c92503d8091833e61150f8183610966565b3880616561565b60405163064554e960e21b81529181836004818360008051602061924f8339815191525af192831561151d578293616767575b50815b8351811015614c1557816165d561133860406149e085896145d1565b146165e3575b6001016165b9565b60205460405163348051d760e11b81526004810191909152909490838160248160008051602061924f8339815191525afa90811561151d57616630916114ea91869161674d575b50616139565b616643836147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d5761666f9185916167395750614aae61464e565b61667f836020614ac488886145d1565b038160008051602061924f8339815191525afa801561151d576166ab9185916167255750614aae614676565b825b6166b786866145d1565b51515181101561671e578084614b416166d493614b3a8a8a6145d1565b038160008051602061924f8339815191525afa91821561151d5760019261670491879161670a5750614b9361469b565b016166ad565b614bbb91503d8089833e61150f8183610966565b50936165db565b614bdd91503d8087833e61150f8183610966565b614bf691503d8087833e61150f8183610966565b61676191503d8088833e61150f8183610966565b3861662a565b61677c9193503d8084833e614c2f8183610966565b91386165b6565b8061159c8461679193610966565b38616504565b8380fd5b8061159c856167a993610966565b386164b4565b8280fd5b8061159c856167c193610966565b3861646f565b6167e0915060203d6020116115e5576115d78183610966565b38616419565b6167fb9193503d808a833e61150f8183610966565b91386163d3565b61681691503d8088833e61150f8183610966565b38616394565b61683091503d8086833e61150f8183610966565b38616350565b601f546004906020906168549060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d578691616a0d575b5060008051602061924f8339815191523b156169d85760405163ca669fa760e01b81526001600160a01b038216600482015286816024818360008051602061924f8339815191525af1801561151d576169f9575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018790526020816044818a805af1801561151d576169dc575b5060008051602061924f8339815191523b156169d85760405163ca669fa760e01b81526001600160a01b0391909116600482015285816024818360008051602061924f8339815191525af1801561151d576169c4575b5060405163a9059cbb60e01b81526001600160a01b0384166004820152602481018690529360208560448189805af190811561151d576113f8956162dd926169a5575b509450506162bc565b6169bd9060203d602011615b8a57615b7a8183610966565b503861699c565b8061159c876169d293610966565b38616959565b8580fd5b6169f49060203d602011615b8a57615b7a8183610966565b616903565b8061159c88616a0793610966565b386168ca565b616a26915060203d6020116115e5576115d78183610966565b38616876565b616a419192503d8087833e61150f8183610966565b90386162b1565b616a5c91503d8088833e61150f8183610966565b38616265565b60205460405163348051d760e11b815260048101919091528590818160248160008051602061924f8339815191525afa90811561151d57616aae916114ea918491616b8a575b50615dd0565b5060405163348051d760e11b81526000600482018190528160248160008051602061924f8339815191525afa90811561151d57600091616b6f575b50604051632b65311f60e11b81526000600482018190528180602481015b038160008051602061924f8339815191525afa801561151d57616b4e92616b3692600092616b52575b50615e39565b60405162461bcd60e51b815291829160048301610575565b0390fd5b616b689192503d806000833e61150f8183610966565b9084616b30565b616b8491503d806000833e61150f8183610966565b81616ae9565b616b9e91503d8086833e61150f8183610966565b84616aa8565b6001600160a01b03811695949093909290919086156173e95760205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d576000916173ce575b50604051632b65311f60e11b81526001600160a01b038716600482015260008160248160008051602061924f8339815191525afa801561151d57616c4a926114ea926000926173b85750615f81565b6001600160a01b038116801515806173af575b6171ab575b50604080516001600160a01b039097166020880152616cae9190616c9390889081015b03601f198101895288610966565b616c9b6109b4565b9687526001600160a01b03166020870152565b604085015260016060850152608084015260a083015260205460405163348051d760e11b815260048101919091526000818060248101038160008051602061924f8339815191525afa90811561151d57600091617190575b50604051632b65311f60e11b81526001600160a01b038316600482015260008160248160008051602061924f8339815191525afa801561151d57616d6391600091617175575b506000604051614823816141f48960208301616063565b038160008051602061924f8339815191525afa90811561151d57616d92936114ea9360009361715f5750616074565b601f54600490602090616db09060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617140575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d5761712b575b5060008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57617116575b50601f54616e899060081c6001600160a01b0316611338565b91823b1561025657616eb59260009283604051809681958294632095dedb60e01b845260048401616117565b03925af19081617101575b50616f355750616ece611d28565b60205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa91821561151d57610573926114ea92600091616f1a575b506161a2565b616f2f91503d806000833e61150f8183610966565b38616f14565b60405163064554e960e21b8152906000826004818360008051602061924f8339815191525af191821561151d576000926170e6575b5060005b82518110156170e15781616f8a61133860406149e085886145d1565b14616f98575b600101616f6e565b60205460405163348051d760e11b8152600481019190915290939060008160248160008051602061924f8339815191525afa90811561151d57616fe6916114ea916000916170ce5750616139565b616ffa60006147be60406149e088886145d1565b038160008051602061924f8339815191525afa801561151d5761702791600091614be35750614aae61464e565b61703860006020614ac487876145d1565b038160008051602061924f8339815191525afa801561151d5761706591600091614bca5750614aae614676565b60005b61707285856145d1565b5151518110156170c757806000614b4161709093614b3a89896145d1565b038160008051602061924f8339815191525afa91821561151d576001926170c191600091614ba85750614b9361469b565b01617068565b5092616f90565b616761913d8091833e61150f8183610966565b505050565b6170fa91923d8091833e614c2f8183610966565b9038616f6a565b8061159c600061711093610966565b38616ec0565b8061159c600061712593610966565b38616e70565b8061159c600061713a93610966565b38616e2a565b617159915060203d6020116115e5576115d78183610966565b38616dd3565b6167fb9193503d806000833e61150f8183610966565b61718a91503d806000833e61150f8183610966565b38616d4c565b6171a591503d806000833e61150f8183610966565b38616d06565b601f549091906004906020906171cc9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617390575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03821660048201526000816024818360008051602061924f8339815191525af1801561151d5761737b575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018590526020816044816000885af1801561151d5761735e575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57617349575b5060405163a9059cbb60e01b81526001600160a01b03871660048201526024810184905291602090839060449082906000905af1801561151d57616c8597616cae93616c939261732a575b5097505090616c62565b6173429060203d602011615b8a57615b7a8183610966565b5038617320565b8061159c600061735893610966565b386172d5565b6173769060203d602011615b8a57615b7a8183610966565b61727e565b8061159c600061738a93610966565b38617244565b6173a9915060203d6020116115e5576115d78183610966565b386171ef565b50821515616c5d565b616a419192503d806000833e61150f8183610966565b6173e391503d806000833e61150f8183610966565b38616bfb565b95509250505060205460405163348051d760e11b81526000818061741585600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57617444916114ea916000916178735750615dd0565b6001600160a01b038416908115158061786a575b156177e15760405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d576000916177c6575b5060405163348051d760e11b8152600481018490529460008660248160008051602061924f8339815191525afa95861561151d576000966177a3575b50604051632b65311f60e11b81526001600160a01b03909116600482015260008180602481015b038160008051602061924f8339815191525afa90811561151d57600091617788575b50604051632b65311f60e11b81526001600160a01b03861660048201529060008260248160008051602061924f8339815191525afa90811561151d57600497617572946114ea9460009461776b575b50615eba565b601f5460209061758d9060081c6001600160a01b0316611338565b6040516313917f7760e11b815295869182905afa93841561151d5760009461774a575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03851660048201526000816024818360008051602061924f8339815191525af1801561151d57617735575b506040516311f9fbc960e21b81526001600160a01b0385166004820152602481018390526020816044816000865af1801561151d57617718575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039490941660048501526000846024818360008051602061924f8339815191525af192831561151d576176d794602094617703575b5060405163a9059cbb60e01b81526001600160a01b03909116600482015260248101929092529092839190829060009082906044820190565b03925af1801561151d576176e85750565b6177009060203d602011615b8a57615b7a8183610966565b50565b8061159c600061771293610966565b3861769e565b6177309060203d602011615b8a57615b7a8183610966565b61763f565b8061159c600061774493610966565b38617605565b61776491945060203d6020116115e5576115d78183610966565b92386175b0565b6177819194503d806000833e61150f8183610966565b923861756c565b61779d91503d806000833e61150f8183610966565b3861751d565b6174fb9196506177be6000913d8084833e61150f8183610966565b9691506174d4565b6177db91503d806000833e61150f8183610966565b38617498565b60405163348051d760e11b8152600481018490528560008260248160008051602061924f8339815191525afa91821561151d57600092617847575b50604051632b65311f60e11b81526001600160a01b0390911660048201526000818060248101616b07565b616b079192506178626000913d8084833e61150f8183610966565b92915061781c565b50821515617458565b61788891503d806000833e61150f8183610966565b38616aa8565b6001600160a01b03811695949093909290919086156173e95760205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d57600091617fcc575b50604051632b65311f60e11b81526001600160a01b038716600482015260008160248160008051602061924f8339815191525afa801561151d57617934926114ea926000926173b85750615f81565b6001600160a01b03811680151580617fc3575b617dbf575b50604080516001600160a01b0390971660208801526179739190616c939088908101616c85565b604085015260006060850152608084015260a083015260205460405163348051d760e11b815260048101919091526000818060248101038160008051602061924f8339815191525afa90811561151d57600091617da4575b50604051632b65311f60e11b81526001600160a01b038316600482015260008160248160008051602061924f8339815191525afa801561151d57617a279160009161717557506000604051614823816141f48960208301616063565b038160008051602061924f8339815191525afa90811561151d57617a56936114ea9360009361715f5750616074565b601f54600490602090617a749060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617d85575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57617d70575b5060008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57617d5b575b50601f54617b4d9060081c6001600160a01b0316611338565b91823b1561025657617b799260009283604051809681958294632095dedb60e01b845260048401616117565b03925af19081617d46575b50617b925750616ece611d28565b60405163064554e960e21b8152906000826004818360008051602061924f8339815191525af191821561151d57600092617d2b575b5060005b82518110156170e15781617be761133860406149e085886145d1565b14617bf5575b600101617bcb565b60205460405163348051d760e11b8152600481019190915290939060008160248160008051602061924f8339815191525afa90811561151d57617c43916114ea916000916170ce5750616139565b617c5760006147be60406149e088886145d1565b038160008051602061924f8339815191525afa801561151d57617c8491600091614be35750614aae61464e565b617c9560006020614ac487876145d1565b038160008051602061924f8339815191525afa801561151d57617cc291600091614bca5750614aae614676565b60005b617ccf85856145d1565b515151811015617d2457806000614b41617ced93614b3a89896145d1565b038160008051602061924f8339815191525afa91821561151d57600192617d1e91600091614ba85750614b9361469b565b01617cc5565b5092617bed565b617d3f91923d8091833e614c2f8183610966565b9038617bc7565b8061159c6000617d5593610966565b38617b84565b8061159c6000617d6a93610966565b38617b34565b8061159c6000617d7f93610966565b38617aee565b617d9e915060203d6020116115e5576115d78183610966565b38617a97565b617db991503d806000833e61150f8183610966565b386179cb565b601f54909190600490602090617de09060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617fa4575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03821660048201526000816024818360008051602061924f8339815191525af1801561151d57617f8f575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018590526020816044816000885af1801561151d57617f72575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57617f5d575b5060405163a9059cbb60e01b81526001600160a01b03871660048201526024810184905291602090839060449082906000905af1801561151d57616c859761797393616c9392617f3e575b509750509061794c565b617f569060203d602011615b8a57615b7a8183610966565b5038617f34565b8061159c6000617f6c93610966565b38617ee9565b617f8a9060203d602011615b8a57615b7a8183610966565b617e92565b8061159c6000617f9e93610966565b38617e58565b617fbd915060203d6020116115e5576115d78183610966565b38617e03565b50821515617947565b617fe191503d806000833e61150f8183610966565b386178e5565b600080916020815191016a636f6e736f6c652e6c6f675afa50565b614202618034916141f461057394604051948593634b5c427760e01b60208601526040602486015260648501906103bc565b838103602319016044850152906103bc565b6141f4610573946180936142029461807c96604051978896635ab84e1f60e01b60208901526080602489015260a48801906103bc565b9160448701526023198683030160648701526103bc565b838103602319016084850152906103bc565b156180ac57565b60405162461bcd60e51b8152602060048201526016602482015275155b9a5cddd85c081c9bdd5d195c881b9bdd081cd95d60521b6044820152606490fd5b156180f157565b60405162461bcd60e51b815260206004820152600d60248201526c15d6915510481b9bdd081cd95d609a1b6044820152606490fd5b604051608091906181378382610966565b6003815291601f1901366020840137565b604051606091906181598382610966565b6002815291601f1901366020840137565b602081830312610256578051906001600160401b03821161025657019080601f8301121561025657815161819d81611712565b926181ab6040519485610966565b81845260208085019260051b82010192831161025657602001905b8282106181d35750505090565b81518152602091820191016181c6565b919260809361820892979695978452602084015260a0604084015260a0830190610284565b6001600160a01b0390951660608201520152565b6040519061822b604083610966565b600282526134b760f11b6020830152565b6001600791601a61057394969560296040519889946802db1b430b4b724b2160bd1b6020870152618276815180926020868a019101610399565b85017f5d205b494e464f5d2053776170207375636365737366756c3a20000000000000838201526182b1825180936020604385019101610399565b0101600160fd1b838201526182d0825180936020601b85019101610399565b010166081b995959195960ca1b838201520301601819810185520183610966565b601f6105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526183278151809260208688019101610399565b83017f5d205b4552524f525d20556e69737761702073776170206661696c65643a200083820152611dd8825180936020604885019101610399565b60255493946001600160a01b0390941693909291906183828515156180a5565b6026546183a29061839b906001600160a01b0316611338565b15156180ea565b60405163095ea7b360e01b81526001600160a01b039586166004820152602481018790529484169460208160448160008a5af1801561151d5761869b575b5060006183eb618126565b91618408866183f98561459f565b6001600160a01b039091169052565b602654618422906001600160a01b03165b6183f9856145b1565b61842f846183f9856145c1565b61843842615439565b60255490939061845290611338906001600160a01b031681565b90838a61847660405197889687958694634401edf760e11b86528d600487016181e3565b03925af1908161867a575b506184f95750505050618492611d28565b60205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa91821561151d576102d2926114ea926000916184de575b506182f1565b6184f391503d806000833e61150f8183610966565b386184d8565b60265461851991906001600160a01b0316809361851461821c565b61916f565b918251156186735761852d6185369361459f565b5161851461821c565b9081511561866e5760205460405163348051d760e11b81526004810191909152925060008360248160008051602061924f8339815191525afa90811561151d576185ae93600092618651575b50600061858e8461459f565b516040518096819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa93841561151d5760009461862f575b506000600491604051928380926306fdde0360e01b82525afa801561151d5761860e94618609936114ea93600093618612575b5061823c565b61459f565b5190565b6186289193503d806000833e61150f8183610966565b9138618603565b60049194506186496000913d8084833e61150f8183610966565b9491506185d0565b6186679192503d806000833e61150f8183610966565b9038618582565b505090565b5050505090565b618696903d806000833e61868e8183610966565b81019061816a565b618481565b6186b39060203d602011615b8a57615b7a8183610966565b6183e0565b604051906186c7604083610966565b600382526267617360e81b6020830152565b60046012929594602e610573956029604051998a966802db1b430b4b724b2160bd1b6020890152618713815180926020868c019101610399565b87017f5d205b4552524f525d2072657665727441646472657373206973207a65726f2c838201526d0103a3930b739b332b93934b733960951b6049820152618765825180936020605785019101610399565b01016301037b3160e51b83820152615f51825180936020603285019101610399565b1561878e57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b6001600160a01b03918216815291166020820152604081019190915260a06060820181905260009082015260c0608082018190526102d2929101906142d9565b6080906102d2939260018060a01b03168152606060208201526000606082015281604082015201906142d9565b93949190946060860151926188456109a5565b6001600160a01b0382168152936001600160a01b038416602086015285604086015260608501526188796020880151151590565b15618e15575060008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57618e00575b5060405163348051d760e11b81526004810186905260008160248160008051602061924f8339815191525afa90811561151d57600091618de5575b508651618917906000906001600160a01b03166147be565b038160008051602061924f8339815191525afa801561151d5761895391600091618dca575b506000604051614823816141f48a6020830161431a565b038160008051602061924f8339815191525afa90811561151d57618982936114ea93600093614c87575061432b565b600460206189a061133861143d896000526021602052604060002090565b604051635b11259160e01b815292839182905afa90811561151d57600091618dab575b5060008051602061924f8339815191523b15610256576040516303223eab60e11b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57618d96575b5015618cc85750618a3b61133861143d856000526021602052604060002090565b608085015185519192916001600160a01b0316833b156102565760405163cb7ba8e560e01b815294600094869485938491618a799160048401618805565b0393f1801561151d57618cb3575b505b60008051602061924f8339815191523b15610256576040516390c5013b60e01b81526000816004818360008051602061924f8339815191525af1801561151d57618c9e575b5060405163064554e960e21b8152916000836004818360008051602061924f8339815191525af192831561151d57600093618c83575b5060005b8351811015614c1557618b2060406149e083876145d1565b8251618b34906001600160a01b0316611338565b6001600160a01b0390911614618b4d575b600101618b08565b60405163348051d760e11b815260048101849052909491929060008160248160008051602061924f8339815191525afa90811561151d57618b99916114ea91600091614bfc57506145e5565b618bad60006147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d57618bda91600091614be35750614aae61464e565b618beb60006020614ac488886145d1565b038160008051602061924f8339815191525afa801561151d57618c1891600091614bca5750614aae614676565b60005b618c2586866145d1565b515151811015618c7a57806000614b41618c4393614b3a8a8a6145d1565b038160008051602061924f8339815191525afa91821561151d57600192618c7491600091614ba85750614b9361469b565b01618c1b565b50919093618b45565b618c9791933d8091833e614c2f8183610966565b9138618b04565b8061159c6000618cad93610966565b38618ace565b8061159c6000618cc293610966565b38618a87565b909160046020618ce861133861143d886000526021602052604060002090565b60405163dda79b7560e01b815292839182905afa90811561151d57600091618d77575b50608086015186516001600160a01b0392831694919216843b15610256576000948591618d4e60405198899788968794634cd1e1ab60e11b8652600486016187c5565b0393f1801561151d57618d62575b50618a89565b8061159c6000618d7193610966565b38618d5c565b618d90915060203d6020116115e5576115d78183610966565b38618d0b565b8061159c6000618da593610966565b38618a1a565b618dc4915060203d6020116115e5576115d78183610966565b386189c3565b618ddf91503d806000833e61150f8183610966565b3861893c565b618dfa91503d806000833e61150f8183610966565b386188ff565b8061159c6000618e0f93610966565b386188c4565b60405163348051d760e11b81526004810187905294969095929491935060008260248160008051602061924f8339815191525afa801561151d576114ea612cb491618e679460009161540e5750614207565b936001600160a01b03851615618fa8575b506020618e9761133861143d6004946000526021602052604060002090565b604051635b11259160e01b815292839182905afa90811561151d57600091618f89575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57618f74575b5015618f325750600080806105739481945af1618f2c611d28565b50618787565b60405163a9059cbb60e01b81526001600160a01b039283166004820152602481019390935260209183916044918391600091165af1801561151d576176e85750565b8061159c6000618f8393610966565b38618f11565b618fa2915060203d6020116115e5576115d78183610966565b38618eba565b60405163348051d760e11b81526004810183905291945060008260248160008051602061924f8339815191525afa91821561151d5760009261913b575b5060405163348051d760e11b8152600481018790529060008260248160008051602061924f8339815191525afa91821561151d5760009261911e575b50600084156190bc57506190336186b8565b604051632b65311f60e11b81526001600160a01b03831660048201529260008460248160008051602061924f8339815191525afa92831561151d576190946114ea618e97956113389561143d9560049a60209a60009461909f575b506186d9565b979450505050618e78565b6190b59194503d806000833e61150f8183610966565b923861908e565b604051632b65311f60e11b81526001600160a01b0387166004820152818160248160008051602061924f8339815191525afa91821561151d578092619103575b5050619033565b61911792503d8091833e61150f8183610966565b38806190fc565b6191349192503d806000833e61150f8183610966565b9038619021565b6191519192503d806000833e61150f8183610966565b9038618fe5565b6040906102d2939281528160208201520190610284565b90919261918b90618419619181618148565b956183f98761459f565b6020815191012061919a61821c565b6020815191012014600014619211576025546191e69260009290916191c990611338906001600160a01b031681565b906040518095819482936307c0329d60e21b845260048401619158565b03915afa90811561151d576000916191fc575090565b6102d291503d806000833e61868e8183610966565b6025546191e692600092909161923190611338906001600160a01b031681565b9060405180958194829363d06ca61f60e01b84526004840161915856fe0000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da26469706673582212201fce51ed1ff9d0f5f4ea6ac5dba002558bc8864b5d87779ba4c2fa367c0a470364736f6c634300081a003360c034608d57601f61094c38819003918201601f19168301916001600160401b038311848410176092578084926040948552833981010312608d57604b602060458360a8565b920160a8565b9060805260a05260405161089090816100bc8239608051818181603d015261012d015260a0518181816084015281816106960152818161074e01526107db0152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203608d5756fe6080604052600436106101185760003560e01c8063ced52b40146100715763d9d2f07403610118573461006c57600036600319011261006c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b600080fd5b3461006c57600036600319011261006c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b600091031261006c57565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b038211176100f857604052565b6100c1565b6001600160401b0381116100f857601f01601f191660200190565b600080604051368282378036810183815203907f00000000000000000000000000000000000000000000000000000000000000005af43d156101d3573d9061015f826100fd565b9161016d60405193846100d7565b82523d6000602084013e5b1561018e576101863661065f565b602081519101f35b60405162461bcd60e51b815260206004820152601f60248201527f476174657761795a45564d2064656c656761746563616c6c206661696c6564006044820152606490fd5b606090610178565b909291928360041161006c57831161006c57600401916003190190565b81601f8201121561006c5780359061020f826100fd565b9261021d60405194856100d7565b8284526020838301011161006c57816000926020809301838601378301015290565b6001600160a01b0381160361006c57565b3590811515820361006c57565b919082604091031261006c57604051604081018181106001600160401b038211176100f85760405260206102978183958035855201610250565b910152565b91909160a08184031261006c576040519060a082018281106001600160401b038211176100f857604052819381356102d38161023f565b83526102e160208301610250565b602084015260408201356102f48161023f565b60408401526060820135916001600160401b03831161006c5761031d60809392849383016101f8565b60608501520135910152565b9160e08383031261006c5782356001600160401b03811161006c57826103509185016101f8565b9260208101359260408201356103658161023f565b9260608301356001600160401b03811161006c57826103859185016101f8565b92610393836080830161025d565b9260c08201356001600160401b03811161006c576103b1920161029c565b90565b919082519283825260005b8481106103e0575050826000602080949584010152601f8019910116010190565b806020809284010151828286010152016103bf565b9060018060a01b03825116815260208201511515602082015260018060a01b03604083015116604082015260808061043c606085015160a0606086015260a08501906103b4565b93015191015290565b93946103b19795610475610498946104ae969460018060a01b0316885261010060208901526101008801906103b4565b60408701939093526001600160a01b0316606086015284820360808601526103b4565b845160a0840152602090940151151560c0830152565b60e08184039101526103f5565b6040513d6000823e3d90fd5b9060808282031261006c5781356001600160401b03811161006c57816104ee9184016101f8565b9260208301359260408101356105038161023f565b9260608201356001600160401b03811161006c576103b1920161029c565b6001600160a01b03909116815260a0602082018190526103b1959394919261054b918401906103b4565b60408301949094526001600160a01b031660608201528083036080909101526103f5565b91909160c08184031261006c5780356001600160401b03811161006c57836105989183016101f8565b9260208201356105a78161023f565b9260408301356001600160401b03811161006c57826105c79185016101f8565b926105d5836060830161025d565b9260a08201356001600160401b03811161006c576103b1920161029c565b926103b1969461061f6106529461063c9460018060a01b0316875260e0602088015260e08701906103b4565b6001600160a01b03909216604086015284820360608601526103b4565b84516080840152602090940151151560a0830152565b60c08184039101526103f5565b6000356001600160e01b0319166306cb898360e01b8103610723575061068a816106929260006101db565b81019061056f565b90937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561006c576000946106f5869260405198899788968795632c612e1f60e21b875260018060a01b03169033600488016105f3565b03925af1801561071e57610707575b50565b80610716600061071c936100d7565b806100b6565b565b6104bb565b637c0dcb5f60e01b81036107ac5750610741816107499260006101db565b8101906104c7565b9290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b1561006c57600080946106f5604051978896879586946308327f7960e41b865260018060a01b0316913360048701610521565b637b15118b60e01b146107bc5750565b6107cb816107d39260006101db565b810190610329565b9194909390927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169290833b1561006c5761083c600096928793604051998a988997889663567ee10960e11b885260018060a01b0316913360048901610445565b03925af1801561071e57156107045780610716600061071c936100d756fea2646970667358221220c3b911f522f83c8ee9102b4245bed2a13c90092e91b0140cf5e5b3a0b9aa0c6f64736f6c634300081a00330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da26469706673582212203f694ab51e5f913424b6717e51b1a640475332aae62978b7605f0d4ee97dccf764736f6c634300081a0033a2646970667358221220be0a7c814d079da2a24e01b5c1502c7933b2d2be63ee891808548d4407206d1864736f6c634300081a0033"; - -type FoundrySetupConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: FoundrySetupConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class FoundrySetup__factory extends ContractFactory { - constructor(...args: FoundrySetupConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(overrides || {}); - } - override deploy(overrides?: NonPayableOverrides & { from?: string }) { - return super.deploy(overrides || {}) as Promise< - FoundrySetup & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): FoundrySetup__factory { - return super.connect(runner) as FoundrySetup__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): FoundrySetupInterface { - return new Interface(_abi) as FoundrySetupInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): FoundrySetup { - return new Contract(address, _abi, runner) as unknown as FoundrySetup; - } -} diff --git a/typechain-types/factories/contracts/testing/FoundrySetup.t.sol/index.ts b/typechain-types/factories/contracts/testing/FoundrySetup.t.sol/index.ts deleted file mode 100644 index 9928f380..00000000 --- a/typechain-types/factories/contracts/testing/FoundrySetup.t.sol/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { FoundrySetup__factory } from "./FoundrySetup__factory"; diff --git a/typechain-types/factories/contracts/testing/TokenSetup.t.sol/TokenSetup__factory.ts b/typechain-types/factories/contracts/testing/TokenSetup.t.sol/TokenSetup__factory.ts deleted file mode 100644 index 8e39fcc9..00000000 --- a/typechain-types/factories/contracts/testing/TokenSetup.t.sol/TokenSetup__factory.ts +++ /dev/null @@ -1,906 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; -import type { NonPayableOverrides } from "../../../../common"; -import type { - TokenSetup, - TokenSetupInterface, -} from "../../../../contracts/testing/TokenSetup.t.sol/TokenSetup"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "", - type: "string", - }, - ], - name: "log", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "", - type: "address", - }, - ], - name: "log_address", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256[]", - name: "val", - type: "uint256[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "int256[]", - name: "val", - type: "int256[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address[]", - name: "val", - type: "address[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "log_bytes", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - name: "log_bytes32", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "int256", - name: "", - type: "int256", - }, - ], - name: "log_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "address", - name: "val", - type: "address", - }, - ], - name: "log_named_address", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256[]", - name: "val", - type: "uint256[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256[]", - name: "val", - type: "int256[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "address[]", - name: "val", - type: "address[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "bytes", - name: "val", - type: "bytes", - }, - ], - name: "log_named_bytes", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "bytes32", - name: "val", - type: "bytes32", - }, - ], - name: "log_named_bytes32", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256", - name: "val", - type: "int256", - }, - { - indexed: false, - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "log_named_decimal_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "val", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "log_named_decimal_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256", - name: "val", - type: "int256", - }, - ], - name: "log_named_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "string", - name: "val", - type: "string", - }, - ], - name: "log_named_string", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "val", - type: "uint256", - }, - ], - name: "log_named_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "", - type: "string", - }, - ], - name: "log_string", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "log_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "logs", - type: "event", - }, - { - inputs: [], - name: "IS_TEST", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "contract ZetaSetup", - name: "zetaSetup", - type: "address", - }, - { - internalType: "contract EVMSetup", - name: "evmSetup", - type: "address", - }, - { - internalType: "contract NodeLogicMock", - name: "nodeLogicMock", - type: "address", - }, - { - internalType: "address", - name: "deployer", - type: "address", - }, - { - internalType: "address", - name: "tss", - type: "address", - }, - ], - internalType: "struct TokenSetup.Contracts", - name: "contracts", - type: "tuple", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "bool", - name: "isGasToken", - type: "bool", - }, - { - internalType: "uint256", - name: "chainId", - type: "uint256", - }, - { - internalType: "uint8", - name: "decimals", - type: "uint8", - }, - ], - name: "createToken", - outputs: [ - { - components: [ - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "uint256", - name: "chainId", - type: "uint256", - }, - { - internalType: "bool", - name: "isGasToken", - type: "bool", - }, - { - internalType: "uint8", - name: "decimals", - type: "uint8", - }, - ], - internalType: "struct TokenSetup.TokenInfo", - name: "", - type: "tuple", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "excludeArtifacts", - outputs: [ - { - internalType: "string[]", - name: "excludedArtifacts_", - type: "string[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeContracts", - outputs: [ - { - internalType: "address[]", - name: "excludedContracts_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeSelectors", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzSelector[]", - name: "excludedSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeSenders", - outputs: [ - { - internalType: "address[]", - name: "excludedSenders_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "failed", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "foreignCoins", - outputs: [ - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "uint256", - name: "chainId", - type: "uint256", - }, - { - internalType: "bool", - name: "isGasToken", - type: "bool", - }, - { - internalType: "uint8", - name: "decimals", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "getForeignCoins", - outputs: [ - { - components: [ - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "uint256", - name: "chainId", - type: "uint256", - }, - { - internalType: "bool", - name: "isGasToken", - type: "bool", - }, - { - internalType: "uint8", - name: "decimals", - type: "uint8", - }, - ], - internalType: "struct TokenSetup.TokenInfo[]", - name: "", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "deployer", - type: "address", - }, - { - internalType: "address", - name: "wzeta", - type: "address", - }, - ], - name: "prepareUniswapV2", - outputs: [ - { - internalType: "address", - name: "factory", - type: "address", - }, - { - internalType: "address", - name: "router", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "targetArtifactSelectors", - outputs: [ - { - components: [ - { - internalType: "string", - name: "artifact", - type: "string", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzArtifactSelector[]", - name: "targetedArtifactSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetArtifacts", - outputs: [ - { - internalType: "string[]", - name: "targetedArtifacts_", - type: "string[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetContracts", - outputs: [ - { - internalType: "address[]", - name: "targetedContracts_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetInterfaces", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "string[]", - name: "artifacts", - type: "string[]", - }, - ], - internalType: "struct StdInvariant.FuzzInterface[]", - name: "targetedInterfaces_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetSelectors", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzSelector[]", - name: "targetedSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetSenders", - outputs: [ - { - internalType: "address[]", - name: "targetedSenders_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "uniswapV2Router", - type: "address", - }, - { - internalType: "address", - name: "uniswapV2Factory", - type: "address", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "address", - name: "wzeta", - type: "address", - }, - { - internalType: "address", - name: "deployer", - type: "address", - }, - { - internalType: "uint256", - name: "zrc20Amount", - type: "uint256", - }, - { - internalType: "uint256", - name: "wzetaAmount", - type: "uint256", - }, - ], - name: "uniswapV2AddLiquidity", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -const _bytecode = - "0x60808060405234602f57600160ff19600c541617600c55600160ff19601f541617601f556165ab90816100358239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80631ed7831c146101275780632ade3880146101225780633693a15a1461011d5780633e5e3c23146101185780633f7286f41461011357806351976f441461010e57806366d9a9a01461010957806385226c8114610104578063916a17c6146100ff578063a0d788b7146100fa578063b0464fdc146100f5578063b5508aa9146100f0578063ba414fa6146100eb578063c986b404146100e6578063e20c9f71146100e1578063e2624fa4146100dc5763fa7626d4146100d757600080fd5b61142f565b61136b565b611229565b611116565b611017565b610f8a565b610ede565b610e7e565b610dd2565b610ccd565b610bc1565b610777565b6106e6565b610666565b6105e8565b61031f565b61017f565b600091031261013757565b600080fd5b602060408183019282815284518094520192019060005b8181106101605750505090565b82516001600160a01b0316845260209384019390920191600101610153565b346101375760003660031901126101375760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b8181106101f0576101ec856101e0818703826104c7565b6040519182918261013c565b0390f35b82546001600160a01b03168452602090930192600192830192016101c9565b60005b8381106102225750506000910152565b8181015183820152602001610212565b9060209161024b8151809281855285808601910161020f565b601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061028a57505050505090565b9091929394603f198282030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b85010194019260005b8281106102f45750505050506020806001929701930193019193929061027b565b9091929394602080610312600193605f198782030189528951610232565b97019501939291016102d3565b3461013757600036600319011261013757601e5461033c81611452565b9061034a60405192836104c7565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061039057604051806101ec8782610257565b600260206001926040516103a381610471565b848060a01b0386541681526103b9858701611469565b8382015281520192019201919061037b565b634e487b7160e01b600052603260045260246000fd5b6020548110156104005760206000526006602060002091020190600090565b6103cb565b8054821015610400576000526006602060002091020190600090565b90600182811c92168015610451575b602083101461043b57565b634e487b7160e01b600052602260045260246000fd5b91607f1691610430565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761048c57604052565b61045b565b60e081019081106001600160401b0382111761048c57604052565b60a081019081106001600160401b0382111761048c57604052565b90601f801991011681019081106001600160401b0382111761048c57604052565b90604051918260008254926104fc84610421565b808452936001811690811561056a5750600114610523575b50610521925003836104c7565b565b90506000929192526020600020906000915b81831061054e5750509060206105219282010138610514565b6020919350806001915483858901015201910190918492610535565b90506020925061052194915060ff191682840152151560051b82010138610514565b9591936105c760c09699989460ff966105d59460018060a01b03168a5260018060a01b031660208a015260e060408a015260e0890190610232565b908782036060890152610232565b966080860152151560a085015216910152565b34610137576020366003190112610137576004356020548110156101375761060f906103e1565b50805460018201546001600160a01b03918216929116906101ec90610636600282016104e8565b93610643600383016104e8565b91600560048201549101549260405196879660ff808760081c169616948861058c565b346101375760003660031901126101375760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b8181106106c7576101ec856101e0818703826104c7565b82546001600160a01b03168452602090930192600192830192016106b0565b346101375760003660031901126101375760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b818110610747576101ec856101e0818703826104c7565b82546001600160a01b0316845260209093019260019283019201610730565b6001600160a01b0381160361013757565b346101375760403660031901126101375760043561079481610766565b602435906107a182610766565b6000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b0382166004820152600081602481836000805160206165568339815191525af18015610a8557610aee575b506040516360f9bb1160e01b815260206004820152603960248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76322d636f72652f627560448201527f696c642f556e69737761705632466163746f72792e6a736f6e0000000000000060648201526000816084816000805160206165568339815191525afa908115610a85576108a4916000918291610ab3575b5060405180938192631fb2437d60e31b83526004830161152b565b03816000805160206165568339815191525afa8015610a8557610903926108f092600092610acd575b50604080516001600160a01b03909216602083015290926108fe91849190820190565b03601f1981018452836104c7565b612d93565b6040516360f9bb1160e01b815260206004820152603f60248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76322d7065726970686560448201527f72792f6275696c642f556e69737761705632526f7574657230322e6a736f6e0060648201529091906000816084816000805160206165568339815191525afa908115610a85576109b3916000918291610ab3575060405180938192631fb2437d60e31b83526004830161152b565b03816000805160206165568339815191525afa8015610a8557610a06926108f092600092610a8a575b50604080516001600160a01b03808816602083015290921690820152916108fe9083906060820190565b906000805160206165568339815191523b15610137576040516390c5013b60e01b8152600081600481836000805160206165568339815191525af18015610a8557610a6a575b50604080516001600160a01b03928316815292909116602083015290f35b80610a796000610a7f936104c7565b8061012c565b38610a4c565b6114c1565b6108fe919250610aac903d806000833e610aa481836104c7565b8101906114cd565b91906109dc565b610ac791503d8084833e610aa481836104c7565b38610889565b6108fe919250610ae7903d806000833e610aa481836104c7565b91906108cd565b80610a796000610afd936104c7565b386107f5565b906020808351928381520192019060005b818110610b215750505090565b82516001600160e01b031916845260209384019390920191600101610b14565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610b7457505050505090565b9091929394602080610bb2600193603f1986820301875289519083610ba28351604084526040840190610232565b9201519084818403910152610b03565b97019301930191939290610b65565b3461013757600036600319011261013757601b54610bde81611452565b90610bec60405192836104c7565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b838310610c3257604051806101ec8782610b41565b60026020600192604051610c4581610471565b610c4e866104e8565b8152610c5b85870161156b565b83820152815201920192019190610c1d565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610ca057505050505090565b9091929394602080610cbe600193603f198682030187528951610232565b97019301930191939290610c91565b3461013757600036600319011261013757601a54610cea81611452565b90610cf860405192836104c7565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310610d3d57604051806101ec8782610c6d565b600160208192610d4c856104e8565b815201920192019190610d28565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610d8d57505050505090565b9091929394602080610dc3600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610b03565b97019301930191939290610d7e565b3461013757600036600319011261013757601d54610def81611452565b90610dfd60405192836104c7565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b838310610e4357604051806101ec8782610d5a565b60026020600192604051610e5681610471565b848060a01b038654168152610e6c85870161156b565b83820152815201920192019190610e2e565b346101375760e036600319011261013757610edc600435610e9e81610766565b602435610eaa81610766565b604435610eb681610766565b606435610ec281610766565b60843591610ecf83610766565b60a4359360c4359561180a565b005b3461013757600036600319011261013757601c54610efb81611452565b90610f0960405192836104c7565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b838310610f4f57604051806101ec8782610d5a565b60026020600192604051610f6281610471565b848060a01b038654168152610f7885870161156b565b83820152815201920192019190610f3a565b3461013757600036600319011261013757601954610fa781611452565b90610fb560405192836104c7565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b838310610ffa57604051806101ec8782610c6d565b600160208192611009856104e8565b815201920192019190610fe5565b34610137576000366003190112610137576020611032611ae3565b6040519015158152f35b906110b39060018060a01b03835116815260018060a01b03602084015116602082015260c08061109061107e604087015160e0604087015260e0860190610232565b60608701518582036060870152610232565b946080810151608085015260a0810151151560a0850152015191019060ff169052565b90565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106110e957505050505090565b9091929394602080611107600193603f19868203018752895161103c565b970193019301919392906110da565b346101375760003660031901126101375760205461113381611452565b9061114160405192836104c7565b8082526020820160206000527fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb6000915b83831061118757604051806101ec87826110b6565b6006602060019260405161119a81610491565b855460a086901b869003166001600160a01b0390811682528587015416838201526111c7600287016104e8565b60408201526111d8600387016104e8565b60608201526004860154608082015261121b61121160058801546112086111ff8260ff1690565b151560a0860152565b60081c60ff1690565b60ff1660c0830152565b815201920192019190611172565b346101375760003660031901126101375760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b81811061128a576101ec856101e0818703826104c7565b82546001600160a01b0316845260209093019260019283019201611273565b6040519061052160e0836104c7565b60405190610521610160836104c7565b6001600160401b03811161048c57601f01601f191660200190565b81601f82011215610137578035906112fa826112c8565b9261130860405194856104c7565b8284526020838301011161013757816000926020809301838601378301015290565b8015150361013757565b60c435906105218261132a565b60ff81160361013757565b610104359061052182611341565b9060206110b392818152019061103c565b3461013757366003190161012081126101375760a01361013757604051611391816104ac565b60043561139d81610766565b81526024356113ab81610766565b60208201526044356113bc81610766565b60408201526064356113cd81610766565b60608201526084356113de81610766565b608082015260a4356001600160401b038111610137576101ec916114096114239236906004016112e3565b611411611334565b60e4359161141d61134c565b9361202b565b6040519182918261135a565b3461013757600036600319011261013757602060ff601f54166040519015158152f35b6001600160401b03811161048c5760051b60200190565b90815461147581611452565b9261148360405194856104c7565b818452602084019060005260206000206000915b8383106114a45750505050565b6001602081926114b3856104e8565b815201920192019190611497565b6040513d6000823e3d90fd5b602081830312610137578051906001600160401b038211610137570181601f820112156101375760208151910190611504816112c8565b9261151260405194856104c7565b81845281830111610137576110b391602084019061020f565b61153d60409283835283830190610232565b90602081830391015260148152730b995d9b4b989e5d1958dbd9194b9bd89a9958dd60621b60208201520190565b6040518154808252909291839061158b6020830191600052602060002090565b926000905b8060078301106116d3576105219454918181106116b4575b818110611695575b818110611676575b818110611657575b818110611638575b818110611619575b8181106115fb575b106115e6575b5003836104c7565b6001600160e01b0319168152602001386115de565b602083811b6001600160e01b031916855290936001910193016115d8565b604083901b6001600160e01b03191684529260019060200193016115d0565b606083901b6001600160e01b03191684529260019060200193016115c8565b608083901b6001600160e01b03191684529260019060200193016115c0565b60a083901b6001600160e01b03191684529260019060200193016115b8565b60c083901b6001600160e01b03191684529260019060200193016115b0565b6001600160e01b031960e084901b1684529260019060200193016115a8565b91600891935061010060019161178287546116f9838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b019401920185929391611590565b519061052182610766565b9081602091031261013757516110b381610766565b9081602091031261013757516110b38161132a565b634e487b7160e01b600052601160045260246000fd5b9061038482018092116117ea57565b6117c5565b90816060910312610137578051916040602083015192015190565b9291909493946000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b0387166004820152600081602481836000805160206165568339815191525af18015610a8557611abf575b506040516364e329cb60e11b81526001600160a01b0383811660048301528481166024830152909160209183916044918391600091165af18015610a8557611a92575b5060405163095ea7b360e01b81526001600160a01b0384166004820152602481018590526020818060448101038160006001600160a01b0387165af18015610a8557611a75575b5060405163095ea7b360e01b81526001600160a01b038416600482015260248101879052906020828060448101038160006001600160a01b0388165af18015610a85576060966000936119aa92611a48575b5061194a426117db565b60405162e8e33760e81b81526001600160a01b03948516600482015295841660248701526044860197909752606485019890985260006084850181905260a4850152961660c483015260e482019390935293849283918290610104820190565b03926001600160a01b03165af18015610a8557611a19575b506000805160206165568339815191523b15610137576040516390c5013b60e01b8152600081600481836000805160206165568339815191525af18015610a8557611a0a5750565b80610a796000610521936104c7565b611a3a9060603d606011611a41575b611a3281836104c7565b8101906117ef565b50506119c2565b503d611a28565b611a699060203d602011611a6e575b611a6181836104c7565b8101906117b0565b611940565b503d611a57565b611a8d9060203d602011611a6e57611a6181836104c7565b6118ee565b611ab39060203d602011611ab8575b611aab81836104c7565b81019061179b565b6118a7565b503d611aa1565b80610a796000611ace936104c7565b38611864565b90816020910312610137575190565b60085460ff168015611af25790565b50604051630667f9d760e41b8152600080516020616556833981519152600482018190526519985a5b195960d21b6024830152602090829060449082905afa908115610a8557600091611b46575b50151590565b611b68915060203d602011611b6e575b611b6081836104c7565b810190611ad4565b38611b40565b503d611b56565b60405190611b8282610491565b600060c083828152826020820152606060408201526060808201528260808201528260a08201520152565b60405190611bba82610491565b600060c08360608152606060208201528260408201528260608201528260808201528260a08201520152565b90611bf96020928281519485920161020f565b0190565b60031115611c0757565b634e487b7160e01b600052602160045260246000fd5b6003821015611c075752565b959297969391611c5790611c4960ff936101008a526101008a0190610232565b9088820360208a0152610232565b9716604086015260608501526003831015611c07576080840192909252600160a08401526001600160a01b0391821660c08401521660e090910152565b15611c9b57565b60405162461bcd60e51b815260206004820152602260248201527f476174657761792045564d206e6f742073657420666f7220746869732063686160448201526134b760f11b6064820152608490fd5b9081602091031261013757516110b381611341565b60ff16604d81116117ea57600a0a90565b90816402540be40002916402540be4008304036117ea57565b90816064029160648304036117ea57565b9081620f42400291620f42408304036117ea57565b601f8211611d5d57505050565b6000526020600020906020601f840160051c83019310611d98575b601f0160051c01905b818110611d8c575050565b60008155600101611d81565b9091508190611d78565b91909182516001600160401b03811161048c57611dc981611dc38454610421565b84611d50565b6020601f8211600114611e0a578190611dfb939495600092611dff575b50508160011b916000199060031b1c19161790565b9055565b015190503880611de6565b601f19821690611e1f84600052602060002090565b9160005b818110611e5b57509583600195969710611e42575b505050811b019055565b015160001960f88460031b161c19169055388080611e38565b9192602060018192868b015181550194019201611e23565b6020546801000000000000000081101561048c57806001611e9992016020556020610405565b61201557815181546001600160a01b039182166001600160a01b031991821617835560208401516001840180549190931691161790556040820151805160028301916001600160401b03821161048c57611efd82611ef78554610421565b85611d50565b602090601f8311600114611f9a5793611f8593611f3b8460c0956005956105219a99600092611dff5750508160011b916000199060031b1c19161790565b90555b611f4f606086015160038301611da2565b608085015160048201550192611f7d611f6b60a0830151151590565b859060ff801983541691151516179055565b015160ff1690565b61ff0082549160081b169061ff001916179055565b90601f19831691611fb085600052602060002090565b9260005b818110611ffd575084600594610521999894611f85989460c09860019510611fe4575b505050811b019055611f3e565b015160001960f88460031b161c19169055388080611fd7565b92936020600181928786015181550195019301611fb4565b634e487b7160e01b600052600060045260246000fd5b9391929092612038611b75565b50612041611bad565b60405163348051d760e11b8152600481018490529092906000816024816000805160206165568339815191525afa908115610a85576120c3916120d191600091612d78575b506040516602d2921969918160cd1b60208201529283916120bd6120ad602785018c611be6565b6301037b7160e51b815260040190565b90611be6565b03601f1981018352826104c7565b83526040516405a524332360dc1b60208201526120f5816120c36025820189611be6565b602084019081528215612d715760015b612113604086019182611c1d565b8451915190519161212383611bfd565b8851600490602090612145906001600160a01b03165b6001600160a01b031690565b60405163bb88b76960e01b815292839182905afa8015610a8557600491600091612d52575b508a51602090612182906001600160a01b0316612139565b604051633c12ad4d60e21b815293849182905afa918215610a8557600092612d31575b50604051946118e592838701938785106001600160401b0386111761048c5787966121e2968a938e93614c718b396001600160a01b031696611c29565b03906000f0948515610a85576001600160a01b03909516606084019081529460808401966000885283600014612c9857805160049060209061222c906001600160a01b0316612139565b604051630f39296f60e21b815292839182905afa908115610a8557600091612c79575b506000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03919091166004820152600081602481836000805160206165568339815191525af18015610a8557612c64575b5080516004906020906122c1906001600160a01b0316612139565b60405163bb88b76960e01b815292839182905afa908115610a8557600091612c45575b5087516001600160a01b03918216916122fd9116612139565b90803b15610137576040516377140add60e11b8152600481018690526001600160a01b039290921660248301526000908290604490829084905af18015610a8557612c30575b50805160049060209061235e906001600160a01b0316612139565b60405163bb88b76960e01b815292839182905afa908115610a8557600091612c11575b506001600160a01b0316803b156101375760405163a7cb050760e01b815260048101859052633b9aca006024820152906000908290604490829084905af18015610a8557612bfc575b506000805160206165568339815191523b15610137576040516390c5013b60e01b8152600081600481836000805160206165568339815191525af18015610a8557612be7575b505b8651612426906001600160a01b0316612139565b6060820180519091906001600160a01b031660405163313ce56760e01b8152602081600481865afa908115610a85576124709161246b91600091612b84575b50611d00565b611d11565b823b15610137576040516340c10f1960e01b81526001600160a01b039290921660048301526024820152906000908290604490829084905af18015610a8557612bd2575b5087516124c9906001600160a01b0316612139565b82516004906020906124e3906001600160a01b0316612139565b604051630f39296f60e21b815292839182905afa908115610a8557600091612bb3575b508951600490602090612521906001600160a01b0316612139565b60405163313ce56760e01b815292839182905afa908115610a85576125519161246b91600091612b845750611d00565b823b15610137576040516340c10f1960e01b81526001600160a01b039290921660048301526024820152906000908290604490829084905af18015610a8557612b6f575b5080516001600160a01b03166000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03919091166004820152600081602481836000805160206165568339815191525af18015610a8557612b5a575b5080516001600160a01b03166000805160206165568339815191523b156101375760405163c88a5e6d60e01b81526001600160a01b0391909116600482015269d3c21bcecceda10000006024820152600081604481836000805160206165568339815191525af18015610a8557612b45575b508151600490602090612684906001600160a01b0316612139565b604051620b9ea360e11b815292839182905afa908115610a8557600091612b26575b506001600160a01b0316803b15610137576000683635c9adc5dea0000091600460405180948193630d0e30db60e41b83525af18015610a8557612b11575b506126f66126f188611d00565b611d2a565b60a0870190815260c087019068056bc75e2d63100000825260046020612725612139875160018060a01b031690565b604051630b4a282f60e11b815292839182905afa8015610a8557600491600091612af2575b508551602090612762906001600160a01b0316612139565b6040516359d0f71360e01b815293849182905afa8015610a85578c600493600092612ac9575b505161279c906001600160a01b0316612139565b87516020906127b3906001600160a01b0316612139565b604051620b9ea360e11b815295869182905afa928315610a85576127fa94600094612aa8575b5087516001600160a01b03169186519388519560018060a01b03169261180a565b8951600490612811906001600160a01b0316612139565b855190949060209061282b906001600160a01b0316612139565b604051620b9ea360e11b815293849182905afa908115610a8557600492600092612a83575b50516001600160a01b03165b92519351865190969060209061287a906001600160a01b0316612139565b604051632daa48c160e11b815294859182905afa908115610a8557600493600092612a59575b50516020906128b7906001600160a01b0316612139565b60405163342a30c360e01b815294859182905afa908115610a8557612958976129539661294395600094612a32575b5061291961293394956129096128fa6112a9565b6001600160a01b03909c168c52565b6001600160a01b031660208b0152565b604089015260608801526001600160a01b03166080870152565b6001600160a01b031660a0850152565b6001600160a01b031660c0830152565b613394565b6000805160206165568339815191523b15610137576040516390c5013b60e01b815293600085600481836000805160206165568339815191525af18015610a85576129cf6129c1612139612a149a611211996129fc95612a1d575b50516001600160a01b031690565b99516001600160a01b031690565b9151916129ec6129dd6112a9565b6001600160a01b03909b168b52565b6001600160a01b031660208a0152565b604088015260608701526080860152151560a0850152565b6110b381611e73565b80610a796000612a2c936104c7565b386129b3565b6129339450612a526129199160203d602011611ab857611aab81836104c7565b94506128e6565b6020919250612139612a7a6128b792843d8611611ab857611aab81836104c7565b939250506128a0565b61285c919250612aa19060203d602011611ab857611aab81836104c7565b9190612850565b612ac291945060203d602011611ab857611aab81836104c7565b92386127d9565b61279c919250612aea6121399160203d602011611ab857611aab81836104c7565b929150612788565b612b0b915060203d602011611ab857611aab81836104c7565b3861274a565b80610a796000612b20936104c7565b386126e4565b612b3f915060203d602011611ab857611aab81836104c7565b386126a6565b80610a796000612b54936104c7565b38612669565b80610a796000612b69936104c7565b386125f7565b80610a796000612b7e936104c7565b38612595565b612ba6915060203d602011612bac575b612b9e81836104c7565b810190611ceb565b38612465565b503d612b94565b612bcc915060203d602011611ab857611aab81836104c7565b38612506565b80610a796000612be1936104c7565b386124b4565b80610a796000612bf6936104c7565b38612410565b80610a796000612c0b936104c7565b386123ca565b612c2a915060203d602011611ab857611aab81836104c7565b38612381565b80610a796000612c3f936104c7565b38612343565b612c5e915060203d602011611ab857611aab81836104c7565b386122e4565b80610a796000612c73936104c7565b386122a6565b612c92915060203d602011611ab857611aab81836104c7565b3861224f565b6020810151612caf906001600160a01b0316612139565b604051621ac49360e31b81526004810185905290602090829060249082905afa8015610a8557612cf291600091612d12575b506001600160a01b03161515611c94565b612d0d612d00838584612e19565b6001600160a01b03168952565b612412565b612d2b915060203d602011611ab857611aab81836104c7565b38612ce1565b612d4b91925060203d602011611ab857611aab81836104c7565b90386121a5565b612d6b915060203d602011611ab857611aab81836104c7565b3861216a565b6002612105565b612d8d91503d806000833e610aa481836104c7565b38612086565b90612dd860209160405192839181612db4818501978881519384920161020f565b8301612dc88251809385808501910161020f565b010103601f1981018352826104c7565b51906000f090811561013757565b9091612dfd6110b393604084526040840190610232565b916020818403910152610232565b604d81116117ea57600a0a90565b9160405190610b5990818301908382106001600160401b0383111761048c5780612e499285946141188639612de6565b03906000f08015610a855760405163313ce56760e01b81526001600160a01b03919091169290602081600481875afa8015610a855760ff91600091613358575b506060830180519092909116906001600160a01b03166000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03919091166004820152600081602481836000805160206165568339815191525af18015610a8557613343575b50602083018051909390612f11906001600160a01b0316612139565b60405163ad8414bf60e01b81526004810187905290602090829060249082905afa908115610a8557612f7a91602091600091613326575b5060405163095ea7b360e01b81526001600160a01b039091166004820152600019602482015291829081906044820190565b038160008b5af18015610a8557613309575b508351612fa1906001600160a01b0316612139565b60405163ad8414bf60e01b8152600481018790529190602090839060249082905afa918215610a85576000926132e8575b50612fe4612fdf84612e0b565b611d3b565b91873b15610137576040516340c10f1960e01b81526001600160a01b039190911660048201526024810192909252600082604481838b5af1918215610a85576080926132d3575b500180519092906001600160a01b0316613047612fdf84612e0b565b90873b15610137576040516340c10f1960e01b81526001600160a01b039190911660048201526024810191909152600081604481838b5af18015610a85576130a992612fdf926130a392612a1d5750516001600160a01b031690565b92612e0b565b90853b15610137576040516340c10f1960e01b81526001600160a01b03919091166004820152602481019190915260008160448183895af18015610a85576132be575b506000805160206165568339815191523b15610137576040516390c5013b60e01b815290600082600481836000805160206165568339815191525af1918215610a855761314592612a1d5750516001600160a01b031690565b916000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03939093166004840152600083602481836000805160206165568339815191525af1928315610a85576121396020936131b8926131d896612a1d5750516001600160a01b031690565b604051808095819463ad8414bf60e01b8352600483019190602083019252565b03915afa908115610a855760009161329f575b506001600160a01b0316803b1561013757604051634d8c928d60e11b81526001600160a01b0383166004820152906000908290602490829084905af18015610a855761328a575b506000805160206165568339815191523b15610137576040516390c5013b60e01b8152600081600481836000805160206165568339815191525af18015610a855761327b575090565b80610a7960006110b3936104c7565b80610a796000613299936104c7565b38613232565b6132b8915060203d602011611ab857611aab81836104c7565b386131eb565b80610a7960006132cd936104c7565b386130ec565b80610a7960006132e2936104c7565b3861302b565b61330291925060203d602011611ab857611aab81836104c7565b9038612fd2565b6133219060203d602011611a6e57611a6181836104c7565b612f8c565b61333d9150823d8411611ab857611aab81836104c7565b38612f48565b80610a796000613352936104c7565b38612ef5565b613371915060203d602011612bac57612b9e81836104c7565b38612e89565b1561337e57565b634e487b7160e01b600052600160045260246000fd5b60c0810180519091906001600160a01b03166000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03919091166004820152600081602481836000805160206165568339815191525af18015610a855761365e575b50805161341390612139906001600160a01b031681565b60a08201805160408085018051915163095ea7b360e01b81526001600160a01b0390931660048401526024830191909152949192602090829060449082906000905af18015610a8557613641575b5060208301805190929061347f90612139906001600160a01b031681565b815160608601805160405163095ea7b360e01b81526001600160a01b03909316600484015260248301529691602090829060449082906000905af18015610a8557613624575b50845184516001600160a01b0391821691168082116135f6575b505060808501516001600160a01b031685516001600160a01b031685516001600160a01b03169061350f926136cb565b956135246001600160a01b0388161515613377565b82516001600160a01b031686519092906001600160a01b031686519092906001600160a01b03169151905186519092906001600160a01b03169361356795613834565b93516001600160a01b031692516001600160a01b031690516001600160a01b031691516001600160a01b03169261359c6112a9565b6001600160a01b0390961686526001600160a01b031660208601526001600160a01b031660408501526001600160a01b031660608401526001600160a01b0316608083015260a0820152600060c08201526119c290613c54565b6001600160a01b039091168552613615905b6001600160a01b03168652565b855181518752815238806134df565b61363c9060203d602011611a6e57611a6181836104c7565b6134c5565b6136599060203d602011611a6e57611a6181836104c7565b613461565b80610a79600061366d936104c7565b386133fc565b1561367a57565b60405162461bcd60e51b815260206004820152602360248201527f556e6973776170563353657475704c69623a20506f6f6c206e6f7420637265616044820152621d195960ea1b6064820152608490fd5b60405163a167129560e01b81526001600160a01b0383811660048301528481166024830152610bb8604483015290949391166020856064816000855af1928315610a8557613758956020946137dc575b50604051630b4c774160e11b81526001600160a01b03918216600482015292166024830152610bb860448301529093849190829081906064820190565b03915afa918215610a85576000926137bb575b506001600160a01b038216613781811515613673565b803b156101375760405163f637731d60e01b8152600160601b6004820152906000908290602490829084905af18015610a8557611a0a5750565b6137d591925060203d602011611ab857611aab81836104c7565b903861376b565b6137f290853d8711611ab857611aab81836104c7565b61371b565b51906001600160801b038216820361013757565b919082608091031261013757815191613826602082016137f7565b916060604083015192015190565b916138bd6000966080966139699661387961384e426117db565b9561386961385a6112b8565b6001600160a01b039099168952565b6001600160a01b03166020880152565b610bb86040870152620d89b3196060870152620d89b4868a015260a086015260c085015260e0840188905261010084018890526001600160a01b0316610120840152565b610140820190815260408051634418b22b60e11b815283516001600160a01b0390811660048301526020850151811660248301529184015162ffffff1660448201526060840151600290810b60648301526080850151900b608482015260a084015160a482015260c084015160c482015260e084015160e48201526101008401516101048201526101209093015116610124830152516101448201529384928391908290610164820190565b03926001600160a01b03165af1908115610a8557600091613988575090565b6139aa915060803d6080116139b0575b6139a281836104c7565b81019061380b565b50505090565b503d613998565b6040519061018082018281106001600160401b0382111761048c576040526000610160838281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015282610120820152826101408201520152565b90816020910312610137576110b3906137f7565b15613a3c57565b60405162461bcd60e51b8152602060048201526015602482015274506f6f6c20686173206e6f206c697175696469747960581b6044820152606490fd5b51908160020b820361013757565b519061ffff8216820361013757565b908160e0910312610137578051613aac81610766565b91613ab960208301613a79565b91613ac660408201613a87565b91613ad360608301613a87565b91613ae060808201613a87565b9160c060a0830151613af181611341565b9201516110b38161132a565b15613b0457565b60405162461bcd60e51b81526020600482015260116024820152700556e657870656374656420746f6b656e3607c1b6044820152606490fd5b15613b4457565b60405162461bcd60e51b8152602060048201526011602482015270556e657870656374656420746f6b656e3160781b6044820152606490fd5b15613b8457565b60405162461bcd60e51b815260206004820152601960248201527f506f736974696f6e20686173206e6f206c6971756964697479000000000000006044820152606490fd5b15613bd057565b60405162461bcd60e51b815260206004820152601860248201527f506f736974696f6e20746f6b656e73206d69736d6174636800000000000000006044820152606490fd5b15613c1c57565b60405162461bcd60e51b815260206004820152601060248201526f2ab732bc3832b1ba32b21037bbb732b960811b6044820152606490fd5b90613c5d6139b7565b8251909290613c74906001600160a01b0316612139565b6060820151909190613c8e906001600160a01b0316612139565b604051630d34328160e11b815290926001600160a01b03169190602081600481865afa8015610a8557613ce36001600160801b0391613ceb93600091613fc4575b506001600160801b03166060890181905290565b161515613a35565b604051633850c7bd60e01b815260e081600481865afa908115610a8557613d2591600091600091613f88575b5060020b6020880152613608565b604051630dfe168160e01b815291602083600481845afa908115610a8557600493600092613f66575b506001600160a01b03909116608087019081529060209060405163d21220a760e01b815294859182905afa928315610a8557600093613f45575b506001600160a01b0392831660a08701908152815160208401519194613db2928116911614613afd565b82516040830151613dd0916001600160a01b03918216911614613b3d565b60a08201938451613de19082614003565b6001600160801b031660c08c019081526101008c01969460e08d0194919390928d6101400190613e13919060020b9052565b60020b6101208d01526001600160a01b03908116875216825251613e41906001600160801b03161515613b7d565b519051613e9195602094613e6e936001600160a01b039384169316929092149182613f18575b5050613bc9565b84519060405180809681946331a9108f60e11b8352600483019190602083019252565b03916001600160a01b03165afa8015610a85576121396080613ed0613edf93613ef096600091613ef9575b506001600160a01b031660408a0181905290565b9301516001600160a01b031690565b6001600160a01b0390911614613c15565b51610160830152565b613f12915060203d602011611ab857611aab81836104c7565b38613ebc565b5190516001600160a01b039182169250613f329116612139565b6001600160a01b03909116143880613e67565b613f5f91935060203d602011611ab857611aab81836104c7565b9138613d88565b6020919250613f8190823d8411611ab857611aab81836104c7565b9190613d4e565b6136089250613faf915060e03d60e011613fbd575b613fa781836104c7565b810190613a96565b505050505091909190613d17565b503d613f9d565b613fe6915060203d602011613fec575b613fde81836104c7565b810190613a21565b38613ccf565b503d613fd4565b519062ffffff8216820361013757565b60405163133f757160e31b8152600481019290925261018090829060249082906001600160a01b03165afa908115610a8557600091829183918491859161404d575b509091929394565b949350505050610180823d821161410f575b8161406d61018093836104c7565b8101031261410c5781516bffffffffffffffffffffffff81160361410c575061409860208201611790565b506140a560408201611790565b906140b260608201611790565b916140bf60808301613ff3565b506140cc60a08301613a79565b916140d960c08201613a79565b916141016101606140ec60e085016137f7565b936140fa61014082016137f7565b50016137f7565b509392919038614045565b80fd5b3d915061405f56fe60806040523461032457610b598038038061001981610329565b9283398101906040818303126103245780516001600160401b038111610324578261004591830161034e565b60208201519092906001600160401b03811161032457610065920161034e565b81516001600160401b03811161022f57600354600181811c9116801561031a575b602082101461020f57601f81116102b5575b50602092601f82116001146102505792819293600092610245575b50508160011b916000199060031b1c1916176003555b80516001600160401b03811161022f57600454600181811c91168015610225575b602082101461020f57601f81116101aa575b50602091601f82116001146101465791819260009261013b575b50508160011b916000199060031b1c1916176004555b60405161079f90816103ba8239f35b015190503880610116565b601f198216926004600052806000209160005b85811061019257508360019510610179575b505050811b0160045561012c565b015160001960f88460031b161c1916905538808061016b565b91926020600181928685015181550194019201610159565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c81019160208410610205575b601f0160051c01905b8181106101f957506100fc565b600081556001016101ec565b90915081906101e3565b634e487b7160e01b600052602260045260246000fd5b90607f16906100ea565b634e487b7160e01b600052604160045260246000fd5b0151905038806100b3565b601f198216936003600052806000209160005b86811061029d5750836001959610610284575b505050811b016003556100c9565b015160001960f88460031b161c19169055388080610276565b91926020600181928685015181550194019201610263565b60036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c81019160208410610310575b601f0160051c01905b8181106103045750610098565b600081556001016102f7565b90915081906102ee565b90607f1690610086565b600080fd5b6040519190601f01601f191682016001600160401b0381118382101761022f57604052565b81601f82011215610324578051906001600160401b03821161022f5761037d601f8301601f1916602001610329565b92828452602083830101116103245760005b8281106103a457505060206000918301015290565b8060208092840101518282870101520161038f56fe608080604052600436101561001357600080fd5b60003560e01c90816306fdde031461058857508063095ea7b31461050257806318160ddd146104e457806323b872dd146103f7578063313ce567146103db57806340c10f191461032f57806370a08231146102f557806395d89b41146101d45780639dc29fac1461011f578063a9059cbb146100ee5763dd62ed3e1461009857600080fd5b346100e95760403660031901126100e9576100b16106a4565b6100b96106ba565b6001600160a01b039182166000908152600160209081526040808320949093168252928352819020549051908152f35b600080fd5b346100e95760403660031901126100e95761011461010a6106a4565b60243590336106d0565b602060405160018152f35b346100e95760403660031901126100e9576101386106a4565b6001600160a01b031660243581156101be576000908282528160205260408220548181106101a65760208285937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93869787528684520360408620558060025403600255604051908152a380f35b60649363391434e360e21b8452600452602452604452fd5b634b637e8f60e11b600052600060045260246000fd5b346100e95760003660031901126100e95760405160006004548060011c906001811680156102eb575b6020831081146102d7578285529081156102bb5750600114610264575b50819003601f01601f191681019067ffffffffffffffff82118183101761024e5761024a8291826040528261065b565b0390f35b634e487b7160e01b600052604160045260246000fd5b905060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b6000905b8282106102a55750602091508201018261021a565b6001816020925483858801015201910190610290565b90506020925060ff191682840152151560051b8201018261021a565b634e487b7160e01b84526022600452602484fd5b91607f16916101fd565b346100e95760203660031901126100e9576001600160a01b036103166106a4565b1660005260006020526020604060002054604051908152f35b346100e95760403660031901126100e9576103486106a4565b602435906001600160a01b031680156103c557600254918083018093116103af576020926002557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600093849284845283825260408420818154019055604051908152a380f35b634e487b7160e01b600052601160045260246000fd5b63ec442f0560e01b600052600060045260246000fd5b346100e95760003660031901126100e957602060405160128152f35b346100e95760603660031901126100e9576104106106a4565b6104186106ba565b6001600160a01b0382166000818152600160209081526040808320338452909152902054909260443592916000198110610458575b5061011493506106d0565b8381106104c75784156104b157331561049b57610114946000526001602052604060002060018060a01b033316600052602052836040600020910390558461044d565b634a1406b160e11b600052600060045260246000fd5b63e602df0560e01b600052600060045260246000fd5b8390637dc7a0d960e11b6000523360045260245260445260646000fd5b346100e95760003660031901126100e9576020600254604051908152f35b346100e95760403660031901126100e95761051b6106a4565b6024359033156104b1576001600160a01b031690811561049b57336000526001602052604060002082600052602052806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346100e95760003660031901126100e95760006003548060011c90600181168015610651575b6020831081146102d7578285529081156102bb57506001146105fa5750819003601f01601f191681019067ffffffffffffffff82118183101761024e5761024a8291826040528261065b565b905060036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b6000905b82821061063b5750602091508201018261021a565b6001816020925483858801015201910190610626565b91607f16916105ae565b91909160208152825180602083015260005b81811061068e575060409293506000838284010152601f8019910116010190565b806020809287010151604082860101520161066d565b600435906001600160a01b03821682036100e957565b602435906001600160a01b03821682036100e957565b6001600160a01b03169081156101be576001600160a01b03169182156103c557600082815280602052604081205482811061074f5791604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815280845220818154019055604051908152a3565b916064928463391434e360e21b8452600452602452604452fdfea2646970667358221220244a0a20c657fff7862703acb5cfe7ea7d2b0fc51d1a41b0a338be948dd8f1cf64736f6c634300081a003360c06040523461041a576118e5803803806100198161041f565b92833981016101008282031261041a5781516001600160401b03811161041a5781610045918401610444565b602083015190916001600160401b03821161041a57610065918401610444565b9160408101519160ff831680930361041a576060820151936080830151600381101561041a5760a0840151916100a960e06100a260c088016104af565b96016104af565b946001600160a01b03169384158015610409575b6103f8578051906001600160401b0382116102f55760065490600182811c921680156103ee575b60208310146102d55781601f84931161037e575b50602090601f83116001146103165760009261030b575b50508160011b916000199060031b1c1916176006555b8051906001600160401b0382116102f55760075490600182811c921680156102eb575b60208310146102d55781601f849311610265575b50602090601f83116001146101fd576000926101f2575b50508160011b916000199060031b1c1916176007555b6008549560805260a05260015560018060a01b03196000541617600055610100600160a81b039060081b169160018060a81b031916171760085560405161142190816104c4823960805181818161018101528181610b7b01526110d8015260a051816109fa0152f35b015190503880610173565b600760009081528281209350601f198516905b81811061024d5750908460019594939210610234575b505050811b01600755610189565b015160001960f88460031b161c19169055388080610226565b92936020600181928786015181550195019301610210565b60076000529091507fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688601f840160051c810191602085106102cb575b90601f859493920160051c01905b8181106102bc575061015c565b600081558493506001016102af565b90915081906102a1565b634e487b7160e01b600052602260045260246000fd5b91607f1691610148565b634e487b7160e01b600052604160045260246000fd5b01519050388061010f565b600660009081528281209350601f198516905b818110610366575090846001959493921061034d575b505050811b01600655610125565b015160001960f88460031b161c1916905538808061033f565b92936020600181928786015181550195019301610329565b60066000529091507ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f601f840160051c810191602085106103e4575b90601f859493920160051c01905b8181106103d557506100f8565b600081558493506001016103c8565b90915081906103ba565b91607f16916100e4565b63d92e233d60e01b60005260046000fd5b506001600160a01b038616156100bd565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176102f557604052565b81601f8201121561041a578051906001600160401b0382116102f557610473601f8301601f191660200161041f565b928284526020838301011161041a5760005b82811061049a57505060206000918301015290565b80602080928401015182828701015201610485565b51906001600160a01b038216820361041a5756fe608080604052600436101561001357600080fd5b60003560e01c90816306fdde0314610e8157508063091d278814610e63578063095ea7b314610e3d57806318160ddd14610e1f57806323b872dd14610d9e578063313ce56714610d7d5780633ce4a5bc14610d4e57806340c10f1914610d2957806342966c6814610d0c57806347e7ef2414610bf65780634d8943bb14610bd857806370a0823114610b9e57806385e1f4d014610b635780638b851b9514610b3957806395d89b4114610a695780639dc29fac14610a42578063a3413d03146109e7578063a9059cbb146109b6578063b84c824614610851578063c47f0027146106d6578063c701262614610574578063c835d7cc146104eb578063ccc7759914610445578063d9eeebed1461042c578063dd62ed3e146103db578063eddeb1231461037b578063f2441b3214610352578063f687d12a146102e15763fc5fecd51461015e57600080fd5b346102dc5760203660031901126102dc57600054604051630be1554760e01b81527f00000000000000000000000000000000000000000000000000000000000000006004820181905290916001600160a01b031690602083602481855afa92831561028e576000936102ab575b506001600160a01b0383161561029a5760209060246040518094819363d7fd7afb60e01b835260048301525afa90811561028e57600091610259575b5080156102485761021e61022791600435906110a6565b600254906110b9565b604080516001600160a01b03939093168352602083019190915290f35b0390f35b630e661aed60e41b60005260046000fd5b906020823d602011610286575b8161027360209383610f82565b8101031261028357505138610207565b80fd5b3d9150610266565b6040513d6000823e3d90fd5b633c7ff9cb60e11b60005260046000fd5b6102ce91935060203d6020116102d5575b6102c68183610f82565b810190611087565b91386101cb565b503d6102bc565b600080fd5b346102dc5760203660031901126102dc5760043573735b14bb79463307aacbed86daf3322b1e6226ab3303610341576020817fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a92600155604051908152a1005b632b2add3d60e01b60005260046000fd5b346102dc5760003660031901126102dc576000546040516001600160a01b039091168152602090f35b346102dc5760203660031901126102dc5760043573735b14bb79463307aacbed86daf3322b1e6226ab3303610341576020817fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f92600255604051908152a1005b346102dc5760403660031901126102dc576103f4610f56565b6103fc610f6c565b6001600160a01b039182166000908152600460209081526040808320949093168252928352819020549051908152f35b346102dc5760003660031901126102dc576102276110c6565b346102dc5760203660031901126102dc5761045e610f56565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610341576001600160a01b0381169081156104da5760088054610100600160a81b03191691811b610100600160a81b03169190911790556040519081527f88815d964e380677e86d817e7d65dea59cb7b4c3b5b7a0c8ec7ea4a74f90a38790602090a1005b63d92e233d60e01b60005260046000fd5b346102dc5760203660031901126102dc57610504610f56565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610341576001600160a01b031680156104da576020817fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae926bffffffffffffffffffffffff60a01b6000541617600055604051908152a1005b346102dc5760403660031901126102dc5760043567ffffffffffffffff81116102dc57366023820112156102dc576105b6903690602481600401359101610fa4565b60206024359160006105c66110c6565b93906064604051809481936323b872dd60e01b835233600484015273735b14bb79463307aacbed86daf3322b1e6226ab602484015288604484015260018060a01b03165af190811561028e57600091610697575b5015610686577f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d9559161064c8433611331565b6002549061066560405193608085526080850190610f15565b946020840152604083015260608201528033930390a2602060405160018152f35b63053e6b6b60e11b60005260046000fd5b6020813d6020116106ce575b816106b060209383610f82565b810103126106ca575190811515820361028357508461061a565b5080fd5b3d91506106a3565b346102dc576106e436610feb565b73735b14bb79463307aacbed86daf3322b1e6226ab330361034157805167ffffffffffffffff811161083b5761071b60065461102a565b601f81116107ce575b50602091601f821160011461076257918192600092610757575b5050600019600383901b1c191660019190911b17600655005b01519050828061073e565b601f1982169260066000526000805160206113cc8339815191529160005b8581106107b65750836001951061079d575b505050811b01600655005b015160001960f88460031b161c19169055828080610792565b91926020600181928685015181550194019201610780565b6006600052601f820160051c6000805160206113cc833981519152019060208310610825575b601f0160051c6000805160206113cc83398151915201905b8181106108195750610724565b6000815560010161080c565b6000805160206113cc83398151915291506107f4565b634e487b7160e01b600052604160045260246000fd5b346102dc5761085f36610feb565b73735b14bb79463307aacbed86daf3322b1e6226ab330361034157805167ffffffffffffffff811161083b5761089660075461102a565b601f8111610949575b50602091601f82116001146108dd579181926000926108d2575b5050600019600383901b1c191660019190911b17600755005b0151905082806108b9565b601f1982169260076000526000805160206113ac8339815191529160005b85811061093157508360019510610918575b505050811b01600755005b015160001960f88460031b161c1916905582808061090d565b919260206001819286850151815501940192016108fb565b6007600052601f820160051c6000805160206113ac8339815191520190602083106109a0575b601f0160051c6000805160206113ac83398151915201905b818110610994575061089f565b60008155600101610987565b6000805160206113ac833981519152915061096f565b346102dc5760403660031901126102dc576109dc6109d2610f56565b6024359033611230565b602060405160018152f35b346102dc5760003660031901126102dc577f00000000000000000000000000000000000000000000000000000000000000006040516003821015610a2c576020918152f35b634e487b7160e01b600052602160045260246000fd5b346102dc5760403660031901126102dc57610a67610a5e610f56565b60243590611331565b005b346102dc5760003660031901126102dc576040516000600754610a8b8161102a565b8084529060018116908115610b155750600114610ac7575b61024483610ab381850382610f82565b604051918291602083526020830190610f15565b91905060076000526000805160206113ac833981519152916000905b808210610afb57509091508101602001610ab3610aa3565b919260018160209254838588010152019101909291610ae3565b60ff191660208086019190915291151560051b84019091019150610ab39050610aa3565b346102dc5760003660031901126102dc5760088054604051911c6001600160a01b03168152602090f35b346102dc5760003660031901126102dc5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346102dc5760203660031901126102dc576001600160a01b03610bbf610f56565b1660005260036020526020604060002054604051908152f35b346102dc5760003660031901126102dc576020600254604051908152f35b346102dc5760403660031901126102dc57610c0f610f56565b6024359073735b14bb79463307aacbed86daf3322b1e6226ab33141580610cf7575b80610cdf575b610cce57610cae81610c6a847f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab3946112d6565b60405173735b14bb79463307aacbed86daf3322b1e6226ab60601b60208201526014815290610c9a603483610f82565b604051928392604084526040840190610f15565b60208301959095526001600160a01b0316930390a2602060405160018152f35b636edaef2f60e11b60005260046000fd5b506008805433911c6001600160a01b03161415610c37565b506000546001600160a01b0316331415610c31565b346102dc5760203660031901126102dc576109dc60043533611331565b346102dc5760403660031901126102dc57610a67610d45610f56565b602435906112d6565b346102dc5760003660031901126102dc57602060405173735b14bb79463307aacbed86daf3322b1e6226ab8152f35b346102dc5760003660031901126102dc57602060ff60085416604051908152f35b346102dc5760603660031901126102dc57610db7610f56565b610dbf610f6c565b90610dce604435809383611230565b6001600160a01b0381166000908152600460209081526040808320338452909152902054828110610e0e576109dc92610e0691611064565b9033906111c9565b6310bad14760e01b60005260046000fd5b346102dc5760003660031901126102dc576020600554604051908152f35b346102dc5760403660031901126102dc576109dc610e59610f56565b60243590336111c9565b346102dc5760003660031901126102dc576020600154604051908152f35b346102dc5760003660031901126102dc576000600654610ea08161102a565b8084529060018116908115610b155750600114610ec75761024483610ab381850382610f82565b91905060066000526000805160206113cc833981519152916000905b808210610efb57509091508101602001610ab3610aa3565b919260018160209254838588010152019101909291610ee3565b919082519283825260005b848110610f41575050826000602080949584010152601f8019910116010190565b80602080928401015182828601015201610f20565b600435906001600160a01b03821682036102dc57565b602435906001600160a01b03821682036102dc57565b90601f8019910116810190811067ffffffffffffffff82111761083b57604052565b92919267ffffffffffffffff821161083b5760405191610fce601f8201601f191660200184610f82565b8294818452818301116102dc578281602093846000960137010152565b60206003198201126102dc576004359067ffffffffffffffff82116102dc57806023830112156102dc5781602461102793600401359101610fa4565b90565b90600182811c9216801561105a575b602083101461104457565b634e487b7160e01b600052602260045260246000fd5b91607f1691611039565b9190820391821161107157565b634e487b7160e01b600052601160045260246000fd5b908160209103126102dc57516001600160a01b03811681036102dc5790565b8181029291811591840414171561107157565b9190820180921161107157565b600054604051630be1554760e01b81527f0000000000000000000000000000000000000000000000000000000000000000600482018190529092916001600160a01b031690602084602481855afa93841561028e576000946111a8575b506001600160a01b0384161561029a5760209060246040518094819363d7fd7afb60e01b835260048301525afa90811561028e57600091611176575b5080156102485761021e61102791600154906110a6565b906020823d6020116111a0575b8161119060209383610f82565b810103126102835750513861115f565b3d9150611183565b6111c291945060203d6020116102d5576102c68183610f82565b9238611123565b6001600160a01b03169081156104da576001600160a01b03169182156104da5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260048252604060002085600052825280604060002055604051908152a3565b6001600160a01b03169081156104da576001600160a01b03169182156104da578160005260036020526040600020548181106112c557816112947fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93602093611064565b8460005260038352604060002055846000526003825260406000206112ba8282546110b9565b9055604051908152a3565b63fe382aa760e01b60005260046000fd5b6001600160a01b03169081156104da577fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020826113186000946005546110b9565b60055584845260038252604084206112ba8282546110b9565b6001600160a01b031680156104da57806000526003602052604060002054918083106112c5576020816113877fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93600096611064565b84865260038352604086205561139f81600554611064565b600555604051908152a356fea66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688f652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3fa2646970667358221220143426ebea1dd98ec97cac7a50bf56d05abc5cfb38e424354c050953db17fb6764736f6c634300081a00330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da26469706673582212206717e45fdf103a1ef42406c04560a62655c0f1b8dc7c77591c01b71b30c96d8e64736f6c634300081a0033"; - -type TokenSetupConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: TokenSetupConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class TokenSetup__factory extends ContractFactory { - constructor(...args: TokenSetupConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(overrides || {}); - } - override deploy(overrides?: NonPayableOverrides & { from?: string }) { - return super.deploy(overrides || {}) as Promise< - TokenSetup & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): TokenSetup__factory { - return super.connect(runner) as TokenSetup__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): TokenSetupInterface { - return new Interface(_abi) as TokenSetupInterface; - } - static connect(address: string, runner?: ContractRunner | null): TokenSetup { - return new Contract(address, _abi, runner) as unknown as TokenSetup; - } -} diff --git a/typechain-types/factories/contracts/testing/TokenSetup.t.sol/index.ts b/typechain-types/factories/contracts/testing/TokenSetup.t.sol/index.ts deleted file mode 100644 index abe40ca7..00000000 --- a/typechain-types/factories/contracts/testing/TokenSetup.t.sol/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { TokenSetup__factory } from "./TokenSetup__factory"; diff --git a/typechain-types/factories/contracts/testing/UniswapV2SetupLib.sol/IUniswapV2Factory__factory.ts b/typechain-types/factories/contracts/testing/UniswapV2SetupLib.sol/IUniswapV2Factory__factory.ts deleted file mode 100644 index cf273e28..00000000 --- a/typechain-types/factories/contracts/testing/UniswapV2SetupLib.sol/IUniswapV2Factory__factory.ts +++ /dev/null @@ -1,73 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IUniswapV2Factory, - IUniswapV2FactoryInterface, -} from "../../../../contracts/testing/UniswapV2SetupLib.sol/IUniswapV2Factory"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "tokenA", - type: "address", - }, - { - internalType: "address", - name: "tokenB", - type: "address", - }, - ], - name: "createPair", - outputs: [ - { - internalType: "address", - name: "pair", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "tokenA", - type: "address", - }, - { - internalType: "address", - name: "tokenB", - type: "address", - }, - ], - name: "getPair", - outputs: [ - { - internalType: "address", - name: "pair", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -export class IUniswapV2Factory__factory { - static readonly abi = _abi; - static createInterface(): IUniswapV2FactoryInterface { - return new Interface(_abi) as IUniswapV2FactoryInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): IUniswapV2Factory { - return new Contract(address, _abi, runner) as unknown as IUniswapV2Factory; - } -} diff --git a/typechain-types/factories/contracts/testing/UniswapV2SetupLib.sol/IUniswapV2Router02__factory.ts b/typechain-types/factories/contracts/testing/UniswapV2SetupLib.sol/IUniswapV2Router02__factory.ts deleted file mode 100644 index e2050933..00000000 --- a/typechain-types/factories/contracts/testing/UniswapV2SetupLib.sol/IUniswapV2Router02__factory.ts +++ /dev/null @@ -1,89 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IUniswapV2Router02, - IUniswapV2Router02Interface, -} from "../../../../contracts/testing/UniswapV2SetupLib.sol/IUniswapV2Router02"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "tokenA", - type: "address", - }, - { - internalType: "address", - name: "tokenB", - type: "address", - }, - { - internalType: "uint256", - name: "amountADesired", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountBDesired", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountAMin", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountBMin", - type: "uint256", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "addLiquidity", - outputs: [ - { - internalType: "uint256", - name: "amountA", - type: "uint256", - }, - { - internalType: "uint256", - name: "amountB", - type: "uint256", - }, - { - internalType: "uint256", - name: "liquidity", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class IUniswapV2Router02__factory { - static readonly abi = _abi; - static createInterface(): IUniswapV2Router02Interface { - return new Interface(_abi) as IUniswapV2Router02Interface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): IUniswapV2Router02 { - return new Contract(address, _abi, runner) as unknown as IUniswapV2Router02; - } -} diff --git a/typechain-types/factories/contracts/testing/UniswapV2SetupLib.sol/UniswapV2SetupLib__factory.ts b/typechain-types/factories/contracts/testing/UniswapV2SetupLib.sol/UniswapV2SetupLib__factory.ts deleted file mode 100644 index 291fcce2..00000000 --- a/typechain-types/factories/contracts/testing/UniswapV2SetupLib.sol/UniswapV2SetupLib__factory.ts +++ /dev/null @@ -1,707 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; -import type { NonPayableOverrides } from "../../../../common"; -import type { - UniswapV2SetupLib, - UniswapV2SetupLibInterface, -} from "../../../../contracts/testing/UniswapV2SetupLib.sol/UniswapV2SetupLib"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "", - type: "string", - }, - ], - name: "log", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "", - type: "address", - }, - ], - name: "log_address", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256[]", - name: "val", - type: "uint256[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "int256[]", - name: "val", - type: "int256[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address[]", - name: "val", - type: "address[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "log_bytes", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - name: "log_bytes32", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "int256", - name: "", - type: "int256", - }, - ], - name: "log_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "address", - name: "val", - type: "address", - }, - ], - name: "log_named_address", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256[]", - name: "val", - type: "uint256[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256[]", - name: "val", - type: "int256[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "address[]", - name: "val", - type: "address[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "bytes", - name: "val", - type: "bytes", - }, - ], - name: "log_named_bytes", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "bytes32", - name: "val", - type: "bytes32", - }, - ], - name: "log_named_bytes32", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256", - name: "val", - type: "int256", - }, - { - indexed: false, - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "log_named_decimal_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "val", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "log_named_decimal_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256", - name: "val", - type: "int256", - }, - ], - name: "log_named_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "string", - name: "val", - type: "string", - }, - ], - name: "log_named_string", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "val", - type: "uint256", - }, - ], - name: "log_named_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "", - type: "string", - }, - ], - name: "log_string", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "log_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "logs", - type: "event", - }, - { - inputs: [], - name: "IS_TEST", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeArtifacts", - outputs: [ - { - internalType: "string[]", - name: "excludedArtifacts_", - type: "string[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeContracts", - outputs: [ - { - internalType: "address[]", - name: "excludedContracts_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeSelectors", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzSelector[]", - name: "excludedSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeSenders", - outputs: [ - { - internalType: "address[]", - name: "excludedSenders_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "failed", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "deployer", - type: "address", - }, - { - internalType: "address", - name: "wzeta", - type: "address", - }, - ], - name: "prepareUniswapV2", - outputs: [ - { - internalType: "address", - name: "factory", - type: "address", - }, - { - internalType: "address", - name: "router", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "targetArtifactSelectors", - outputs: [ - { - components: [ - { - internalType: "string", - name: "artifact", - type: "string", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzArtifactSelector[]", - name: "targetedArtifactSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetArtifacts", - outputs: [ - { - internalType: "string[]", - name: "targetedArtifacts_", - type: "string[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetContracts", - outputs: [ - { - internalType: "address[]", - name: "targetedContracts_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetInterfaces", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "string[]", - name: "artifacts", - type: "string[]", - }, - ], - internalType: "struct StdInvariant.FuzzInterface[]", - name: "targetedInterfaces_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetSelectors", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzSelector[]", - name: "targetedSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetSenders", - outputs: [ - { - internalType: "address[]", - name: "targetedSenders_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "uniswapV2Router", - type: "address", - }, - { - internalType: "address", - name: "uniswapV2Factory", - type: "address", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "address", - name: "wzeta", - type: "address", - }, - { - internalType: "address", - name: "deployer", - type: "address", - }, - { - internalType: "uint256", - name: "zrc20Amount", - type: "uint256", - }, - { - internalType: "uint256", - name: "wzetaAmount", - type: "uint256", - }, - ], - name: "uniswapV2AddLiquidity", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -const _bytecode = - "0x60808060405234602f57600160ff19600c541617600c55600160ff19601f541617601f5561170090816100358239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80631ed7831c146100f75780632ade3880146100f25780633e5e3c23146100ed5780633f7286f4146100e857806351976f44146100e357806366d9a9a0146100de57806385226c81146100d9578063916a17c6146100d4578063a0d788b7146100cf578063b0464fdc146100ca578063b5508aa9146100c5578063ba414fa6146100c0578063e20c9f71146100bb5763fa7626d4146100b657600080fd5b6110ae565b61102e565b611009565b610f7c565b610ed0565b610bb3565b610b07565b610a02565b6108f6565b6104ac565b61041b565b61039b565b6102ef565b61014f565b600091031261010757565b600080fd5b602060408183019282815284518094520192019060005b8181106101305750505090565b82516001600160a01b0316845260209384019390920191600101610123565b346101075760003660031901126101075760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b8181106101c0576101bc856101b081870382611108565b6040519182918261010c565b0390f35b82546001600160a01b0316845260209093019260019283019201610199565b60005b8381106101f25750506000910152565b81810151838201526020016101e2565b9060209161021b815180928185528580860191016101df565b601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061025a57505050505090565b9091929394603f198282030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b85010194019260005b8281106102c45750505050506020806001929701930193019193929061024b565b90919293946020806102e2600193605f198782030189528951610202565b97019501939291016102a3565b3461010757600036600319011261010757601e5461030c8161112a565b9061031a6040519283611108565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061036057604051806101bc8782610227565b60026020600192604051610373816110e7565b848060a01b03865416815261038985870161120e565b8382015281520192019201919061034b565b346101075760003660031901126101075760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b8181106103fc576101bc856101b081870382611108565b82546001600160a01b03168452602090930192600192830192016103e5565b346101075760003660031901126101075760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b81811061047c576101bc856101b081870382611108565b82546001600160a01b0316845260209093019260019283019201610465565b6001600160a01b0381160361010757565b34610107576040366003190112610107576004356104c98161049b565b602435906104d68261049b565b6000805160206116ab8339815191523b15610107576040516303223eab60e11b81526001600160a01b0382166004820152600081602481836000805160206116ab8339815191525af180156107ba57610823575b506040516360f9bb1160e01b815260206004820152603960248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76322d636f72652f627560448201527f696c642f556e69737761705632466163746f72792e6a736f6e0000000000000060648201526000816084816000805160206116ab8339815191525afa9081156107ba576105d99160009182916107e8575b5060405180938192631fb2437d60e31b8352600483016112e4565b03816000805160206116ab8339815191525afa80156107ba576106389261062592600092610802575b50604080516001600160a01b039092166020830152909261063391849190820190565b03601f198101845283611108565b611657565b6040516360f9bb1160e01b815260206004820152603f60248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76322d7065726970686560448201527f72792f6275696c642f556e69737761705632526f7574657230322e6a736f6e0060648201529091906000816084816000805160206116ab8339815191525afa9081156107ba576106e89160009182916107e8575060405180938192631fb2437d60e31b8352600483016112e4565b03816000805160206116ab8339815191525afa80156107ba5761073b92610625926000926107bf575b50604080516001600160a01b03808816602083015290921690820152916106339083906060820190565b906000805160206116ab8339815191523b15610107576040516390c5013b60e01b8152600081600481836000805160206116ab8339815191525af180156107ba5761079f575b50604080516001600160a01b03928316815292909116602083015290f35b806107ae60006107b493611108565b806100fc565b38610781565b611266565b6106339192506107e1903d806000833e6107d98183611108565b810190611272565b9190610711565b6107fc91503d8084833e6107d98183611108565b386105be565b61063391925061081c903d806000833e6107d98183611108565b9190610602565b806107ae600061083293611108565b3861052a565b906020808351928381520192019060005b8181106108565750505090565b82516001600160e01b031916845260209384019390920191600101610849565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106108a957505050505090565b90919293946020806108e7600193603f19868203018752895190836108d78351604084526040840190610202565b9201519084818403910152610838565b9701930193019193929061089a565b3461010757600036600319011261010757601b546109138161112a565b906109216040519283611108565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b83831061096757604051806101bc8782610876565b6002602060019260405161097a816110e7565b61098386611142565b8152610990858701611324565b83820152815201920192019190610952565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106109d557505050505090565b90919293946020806109f3600193603f198682030187528951610202565b970193019301919392906109c6565b3461010757600036600319011261010757601a54610a1f8161112a565b90610a2d6040519283611108565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310610a7257604051806101bc87826109a2565b600160208192610a8185611142565b815201920192019190610a5d565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610ac257505050505090565b9091929394602080610af8600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610838565b97019301930191939290610ab3565b3461010757600036600319011261010757601d54610b248161112a565b90610b326040519283611108565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b838310610b7857604051806101bc8782610a8f565b60026020600192604051610b8b816110e7565b848060a01b038654168152610ba1858701611324565b83820152815201920192019190610b63565b346101075760e036600319011261010757600435610bd08161049b565b60243590610bdd8261049b565b604435610be98161049b565b60643591610bf68361049b565b60843592610c038461049b565b60a4359260c435956000805160206116ab8339815191523b15610107576040516303223eab60e11b81526001600160a01b0387166004820152600081602481836000805160206116ab8339815191525af180156107ba57610ebb575b506040516364e329cb60e11b81526001600160a01b0383811660048301528481166024830152909160209183916044918391600091165af180156107ba57610e8e575b5060405163095ea7b360e01b81526001600160a01b0384166004820152602481018590526020818060448101038160006001600160a01b0387165af180156107ba57610e71575b5060405163095ea7b360e01b81526001600160a01b038416600482015260248101879052906020828060448101038160006001600160a01b0388165af180156107ba57606096600093610da592610e44575b50610d4542611576565b60405162e8e33760e81b81526001600160a01b03948516600482015295841660248701526044860197909752606485019890985260006084850181905260a4850152961660c483015260e482019390935293849283918290610104820190565b03926001600160a01b03165af180156107ba57610e15575b506000805160206116ab8339815191523b15610107576040516390c5013b60e01b8152600081600481836000805160206116ab8339815191525af180156107ba57610e0457005b806107ae6000610e1393611108565b005b610e369060603d606011610e3d575b610e2e8183611108565b81019061159b565b5050610dbd565b503d610e24565b610e659060203d602011610e6a575b610e5d8183611108565b81019061155e565b610d3b565b503d610e53565b610e899060203d602011610e6a57610e5d8183611108565b610ce9565b610eaf9060203d602011610eb4575b610ea78183611108565b810190611549565b610ca2565b503d610e9d565b806107ae6000610eca93611108565b38610c5f565b3461010757600036600319011261010757601c54610eed8161112a565b90610efb6040519283611108565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b838310610f4157604051806101bc8782610a8f565b60026020600192604051610f54816110e7565b848060a01b038654168152610f6a858701611324565b83820152815201920192019190610f2c565b3461010757600036600319011261010757601954610f998161112a565b90610fa76040519283611108565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b838310610fec57604051806101bc87826109a2565b600160208192610ffb85611142565b815201920192019190610fd7565b346101075760003660031901126101075760206110246115c5565b6040519015158152f35b346101075760003660031901126101075760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b81811061108f576101bc856101b081870382611108565b82546001600160a01b0316845260209093019260019283019201611078565b3461010757600036600319011261010757602060ff601f54166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff82111761110357604052565b6110d1565b90601f8019910116810190811067ffffffffffffffff82111761110357604052565b67ffffffffffffffff81116111035760051b60200190565b9060405191600081548060011c9260018216918215611204575b6020851083146111f05784875286939260208501929181156111d35750600114611191575b505061118f92500383611108565b565b6111a2919250600052602060002090565b906000915b8483106111bc575061118f9350013880611181565b8054828401528693506020909201916001016111a7565b91505061118f9491925060ff19168252151560051b013880611181565b634e487b7160e01b84526022600452602484fd5b93607f169361115c565b90815461121a8161112a565b926112286040519485611108565b818452602084019060005260206000206000915b8383106112495750505050565b60016020819261125885611142565b81520192019201919061123c565b6040513d6000823e3d90fd5b6020818303126101075780519067ffffffffffffffff8211610107570181601f82011215610107576020815191019067ffffffffffffffff811161110357604051926112c8601f8301601f191660200185611108565b81845281830111610107576112e19160208401906101df565b90565b6112f660409283835283830190610202565b90602081830391015260148152730b995d9b4b989e5d1958dbd9194b9bd89a9958dd60621b60208201520190565b604051815480825290929183906113446020830191600052602060002090565b926000905b80600783011061148c5761118f94549181811061146d575b81811061144e575b81811061142f575b818110611410575b8181106113f1575b8181106113d2575b8181106113b4575b1061139f575b500383611108565b6001600160e01b031916815260200138611397565b602083811b6001600160e01b03191685529093600191019301611391565b604083901b6001600160e01b0319168452926001906020019301611389565b606083901b6001600160e01b0319168452926001906020019301611381565b608083901b6001600160e01b0319168452926001906020019301611379565b60a083901b6001600160e01b0319168452926001906020019301611371565b60c083901b6001600160e01b0319168452926001906020019301611369565b6001600160e01b031960e084901b168452926001906020019301611361565b91600891935061010060019161153b87546114b2838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b019401920185929391611349565b9081602091031261010757516112e18161049b565b90816020910312610107575180151581036101075790565b90610384820180921161158557565b634e487b7160e01b600052601160045260246000fd5b90816060910312610107578051916040602083015192015190565b90816020910312610107575190565b60085460ff1680156115d45790565b50604051630667f9d760e41b81526000805160206116ab833981519152600482018190526519985a5b195960d21b6024830152602090829060449082905afa9081156107ba57600091611628575b50151590565b61164a915060203d602011611650575b6116428183611108565b8101906115b6565b38611622565b503d611638565b9061169c6020916040519283918161167881850197888151938492016101df565b830161168c825180938580850191016101df565b010103601f198101835282611108565b51906000f09081156101075756fe0000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da264697066735822122070848a0cc1973f426e3799a52c16b95b6ec3a7e21ac143cbfbd9350f8180ed2d64736f6c634300081a0033"; - -type UniswapV2SetupLibConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: UniswapV2SetupLibConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class UniswapV2SetupLib__factory extends ContractFactory { - constructor(...args: UniswapV2SetupLibConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(overrides || {}); - } - override deploy(overrides?: NonPayableOverrides & { from?: string }) { - return super.deploy(overrides || {}) as Promise< - UniswapV2SetupLib & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): UniswapV2SetupLib__factory { - return super.connect(runner) as UniswapV2SetupLib__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): UniswapV2SetupLibInterface { - return new Interface(_abi) as UniswapV2SetupLibInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): UniswapV2SetupLib { - return new Contract(address, _abi, runner) as unknown as UniswapV2SetupLib; - } -} diff --git a/typechain-types/factories/contracts/testing/UniswapV2SetupLib.sol/index.ts b/typechain-types/factories/contracts/testing/UniswapV2SetupLib.sol/index.ts deleted file mode 100644 index 50a444e2..00000000 --- a/typechain-types/factories/contracts/testing/UniswapV2SetupLib.sol/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { IUniswapV2Factory__factory } from "./IUniswapV2Factory__factory"; -export { IUniswapV2Router02__factory } from "./IUniswapV2Router02__factory"; -export { UniswapV2SetupLib__factory } from "./UniswapV2SetupLib__factory"; diff --git a/typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/INonfungiblePositionManager__factory.ts b/typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/INonfungiblePositionManager__factory.ts deleted file mode 100644 index 51f16cb0..00000000 --- a/typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/INonfungiblePositionManager__factory.ts +++ /dev/null @@ -1,213 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - INonfungiblePositionManager, - INonfungiblePositionManagerInterface, -} from "../../../../contracts/testing/UniswapV3SetupLib.sol/INonfungiblePositionManager"; - -const _abi = [ - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "token0", - type: "address", - }, - { - internalType: "address", - name: "token1", - type: "address", - }, - { - internalType: "uint24", - name: "fee", - type: "uint24", - }, - { - internalType: "int24", - name: "tickLower", - type: "int24", - }, - { - internalType: "int24", - name: "tickUpper", - type: "int24", - }, - { - internalType: "uint256", - name: "amount0Desired", - type: "uint256", - }, - { - internalType: "uint256", - name: "amount1Desired", - type: "uint256", - }, - { - internalType: "uint256", - name: "amount0Min", - type: "uint256", - }, - { - internalType: "uint256", - name: "amount1Min", - type: "uint256", - }, - { - internalType: "address", - name: "recipient", - type: "address", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - internalType: "struct INonfungiblePositionManager.MintParams", - name: "params", - type: "tuple", - }, - ], - name: "mint", - outputs: [ - { - internalType: "uint256", - name: "tokenId", - type: "uint256", - }, - { - internalType: "uint128", - name: "liquidity", - type: "uint128", - }, - { - internalType: "uint256", - name: "amount0", - type: "uint256", - }, - { - internalType: "uint256", - name: "amount1", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "tokenId", - type: "uint256", - }, - ], - name: "ownerOf", - outputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "tokenId", - type: "uint256", - }, - ], - name: "positions", - outputs: [ - { - internalType: "uint96", - name: "nonce", - type: "uint96", - }, - { - internalType: "address", - name: "operator", - type: "address", - }, - { - internalType: "address", - name: "token0", - type: "address", - }, - { - internalType: "address", - name: "token1", - type: "address", - }, - { - internalType: "uint24", - name: "fee", - type: "uint24", - }, - { - internalType: "int24", - name: "tickLower", - type: "int24", - }, - { - internalType: "int24", - name: "tickUpper", - type: "int24", - }, - { - internalType: "uint128", - name: "liquidity", - type: "uint128", - }, - { - internalType: "uint256", - name: "feeGrowthInside0LastX128", - type: "uint256", - }, - { - internalType: "uint256", - name: "feeGrowthInside1LastX128", - type: "uint256", - }, - { - internalType: "uint128", - name: "tokensOwed0", - type: "uint128", - }, - { - internalType: "uint128", - name: "tokensOwed1", - type: "uint128", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -export class INonfungiblePositionManager__factory { - static readonly abi = _abi; - static createInterface(): INonfungiblePositionManagerInterface { - return new Interface(_abi) as INonfungiblePositionManagerInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): INonfungiblePositionManager { - return new Contract( - address, - _abi, - runner - ) as unknown as INonfungiblePositionManager; - } -} diff --git a/typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Factory__factory.ts b/typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Factory__factory.ts deleted file mode 100644 index 0e1a3933..00000000 --- a/typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Factory__factory.ts +++ /dev/null @@ -1,83 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IUniswapV3Factory, - IUniswapV3FactoryInterface, -} from "../../../../contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Factory"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "tokenA", - type: "address", - }, - { - internalType: "address", - name: "tokenB", - type: "address", - }, - { - internalType: "uint24", - name: "fee", - type: "uint24", - }, - ], - name: "createPool", - outputs: [ - { - internalType: "address", - name: "pool", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "tokenA", - type: "address", - }, - { - internalType: "address", - name: "tokenB", - type: "address", - }, - { - internalType: "uint24", - name: "fee", - type: "uint24", - }, - ], - name: "getPool", - outputs: [ - { - internalType: "address", - name: "pool", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -export class IUniswapV3Factory__factory { - static readonly abi = _abi; - static createInterface(): IUniswapV3FactoryInterface { - return new Interface(_abi) as IUniswapV3FactoryInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): IUniswapV3Factory { - return new Contract(address, _abi, runner) as unknown as IUniswapV3Factory; - } -} diff --git a/typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Pool__factory.ts b/typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Pool__factory.ts deleted file mode 100644 index d8abbdfe..00000000 --- a/typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Pool__factory.ts +++ /dev/null @@ -1,120 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IUniswapV3Pool, - IUniswapV3PoolInterface, -} from "../../../../contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Pool"; - -const _abi = [ - { - inputs: [ - { - internalType: "uint160", - name: "sqrtPriceX96", - type: "uint160", - }, - ], - name: "initialize", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "liquidity", - outputs: [ - { - internalType: "uint128", - name: "", - type: "uint128", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "slot0", - outputs: [ - { - internalType: "uint160", - name: "sqrtPriceX96", - type: "uint160", - }, - { - internalType: "int24", - name: "tick", - type: "int24", - }, - { - internalType: "uint16", - name: "observationIndex", - type: "uint16", - }, - { - internalType: "uint16", - name: "observationCardinality", - type: "uint16", - }, - { - internalType: "uint16", - name: "observationCardinalityNext", - type: "uint16", - }, - { - internalType: "uint8", - name: "feeProtocol", - type: "uint8", - }, - { - internalType: "bool", - name: "unlocked", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "token0", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "token1", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -export class IUniswapV3Pool__factory { - static readonly abi = _abi; - static createInterface(): IUniswapV3PoolInterface { - return new Interface(_abi) as IUniswapV3PoolInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): IUniswapV3Pool { - return new Contract(address, _abi, runner) as unknown as IUniswapV3Pool; - } -} diff --git a/typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/UniswapV3SetupLib__factory.ts b/typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/UniswapV3SetupLib__factory.ts deleted file mode 100644 index a7cf2f15..00000000 --- a/typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/UniswapV3SetupLib__factory.ts +++ /dev/null @@ -1,635 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; -import type { NonPayableOverrides } from "../../../../common"; -import type { - UniswapV3SetupLib, - UniswapV3SetupLibInterface, -} from "../../../../contracts/testing/UniswapV3SetupLib.sol/UniswapV3SetupLib"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "", - type: "string", - }, - ], - name: "log", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "", - type: "address", - }, - ], - name: "log_address", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256[]", - name: "val", - type: "uint256[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "int256[]", - name: "val", - type: "int256[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address[]", - name: "val", - type: "address[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "log_bytes", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - name: "log_bytes32", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "int256", - name: "", - type: "int256", - }, - ], - name: "log_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "address", - name: "val", - type: "address", - }, - ], - name: "log_named_address", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256[]", - name: "val", - type: "uint256[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256[]", - name: "val", - type: "int256[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "address[]", - name: "val", - type: "address[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "bytes", - name: "val", - type: "bytes", - }, - ], - name: "log_named_bytes", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "bytes32", - name: "val", - type: "bytes32", - }, - ], - name: "log_named_bytes32", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256", - name: "val", - type: "int256", - }, - { - indexed: false, - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "log_named_decimal_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "val", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "log_named_decimal_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256", - name: "val", - type: "int256", - }, - ], - name: "log_named_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "string", - name: "val", - type: "string", - }, - ], - name: "log_named_string", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "val", - type: "uint256", - }, - ], - name: "log_named_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "", - type: "string", - }, - ], - name: "log_string", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "log_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "logs", - type: "event", - }, - { - inputs: [], - name: "IS_TEST", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeArtifacts", - outputs: [ - { - internalType: "string[]", - name: "excludedArtifacts_", - type: "string[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeContracts", - outputs: [ - { - internalType: "address[]", - name: "excludedContracts_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeSelectors", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzSelector[]", - name: "excludedSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeSenders", - outputs: [ - { - internalType: "address[]", - name: "excludedSenders_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "failed", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetArtifactSelectors", - outputs: [ - { - components: [ - { - internalType: "string", - name: "artifact", - type: "string", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzArtifactSelector[]", - name: "targetedArtifactSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetArtifacts", - outputs: [ - { - internalType: "string[]", - name: "targetedArtifacts_", - type: "string[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetContracts", - outputs: [ - { - internalType: "address[]", - name: "targetedContracts_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetInterfaces", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "string[]", - name: "artifacts", - type: "string[]", - }, - ], - internalType: "struct StdInvariant.FuzzInterface[]", - name: "targetedInterfaces_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetSelectors", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzSelector[]", - name: "targetedSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetSenders", - outputs: [ - { - internalType: "address[]", - name: "targetedSenders_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -const _bytecode = - "0x60808060405234602f57600160ff19600c541617600c55600160ff19601f541617601f55610e1e90816100358239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c9081631ed7831c146107db575080632ade3880146106195780633e5e3c23146105995780633f7286f41461051957806366d9a9a0146103f257806385226c8114610365578063916a17c6146102b9578063b0464fdc1461020d578063b5508aa914610180578063ba414fa61461015b578063e20c9f71146100cb5763fa7626d4146100a357600080fd5b346100c65760003660031901126100c657602060ff601f54166040519015158152f35b600080fd5b346100c65760003660031901126100c65760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b81811061013c576101388561012c81870382610a23565b60405191829182610857565b0390f35b82546001600160a01b0316845260209093019260019283019201610115565b346100c65760003660031901126100c6576020610176610d32565b6040519015158152f35b346100c65760003660031901126100c65760195461019d81610a45565b906101ab6040519283610a23565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b8383106101f057604051806101388782610919565b6001602081926101ff85610a5d565b8152019201920191906101db565b346100c65760003660031901126100c657601c5461022a81610a45565b906102386040519283610a23565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b83831061027e57604051806101388782610979565b60026020600192604051610291816109f1565b848060a01b0386541681526102a7858701610b2d565b83820152815201920192019190610269565b346100c65760003660031901126100c657601d546102d681610a45565b906102e46040519283610a23565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b83831061032a57604051806101388782610979565b6002602060019260405161033d816109f1565b848060a01b038654168152610353858701610b2d565b83820152815201920192019190610315565b346100c65760003660031901126100c657601a5461038281610a45565b906103906040519283610a23565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b8383106103d557604051806101388782610919565b6001602081926103e485610a5d565b8152019201920191906103c0565b346100c65760003660031901126100c657601b5461040f81610a45565b9061041d6040519283610a23565b808252602082019081601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b8383106104de57848660405191829160208301906020845251809152604083019060408160051b85010192916000905b82821061048f57505050500390f35b919360019193955060206104ce8192603f198a8203018652885190836104be835160408452604084019061089a565b92015190848184039101526108db565b9601920192018594939192610480565b600260206001926040516104f1816109f1565b6104fa86610a5d565b8152610507858701610b2d565b83820152815201920192019190610450565b346100c65760003660031901126100c65760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b81811061057a576101388561012c81870382610a23565b82546001600160a01b0316845260209093019260019283019201610563565b346100c65760003660031901126100c65760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b8181106105fa576101388561012c81870382610a23565b82546001600160a01b03168452602090930192600192830192016105e3565b346100c65760003660031901126100c657601e5461063681610a45565b906106446040519283610a23565b808252602082019081601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061074d57848660405191829160208301906020845251809152604083019060408160051b85010192916000905b8282106106b657505050500390f35b919390929450603f198682030182528451906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b85010194019260005b82811061072257505050505060208060019296019201920185949391926106a7565b9091929394602080610740600193605f19878203018952895161089a565b9701950193929101610700565b604051610759816109f1565b82546001600160a01b0316815260018301805461077581610a45565b916107836040519384610a23565b81835260208301906000526020600020906000905b8382106107be575050505060019282602092836002950152815201920192019190610677565b6001602081926107cd86610a5d565b815201930191019091610798565b346100c65760003660031901126100c657601654808252602082019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b818110610838576101388561012c81870382610a23565b82546001600160a01b0316845260209093019260019283019201610821565b602060408183019282815284518094520192019060005b81811061087b5750505090565b82516001600160a01b031684526020938401939092019160010161086e565b919082519283825260005b8481106108c6575050826000602080949584010152601f8019910116010190565b806020809284010151828286010152016108a5565b906020808351928381520192019060005b8181106108f95750505090565b82516001600160e01b0319168452602093840193909201916001016108ec565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061094c57505050505090565b909192939460208061096a600193603f19868203018752895161089a565b9701930193019193929061093d565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106109ac57505050505090565b90919293946020806109e2600193603f198682030187526040838b51878060a01b038151168452015191818582015201906108db565b9701930193019193929061099d565b6040810190811067ffffffffffffffff821117610a0d57604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610a0d57604052565b67ffffffffffffffff8111610a0d5760051b60200190565b906040519160008154918260011c92600181168015610b23575b602085108114610b0f57848752869392918115610aed5750600114610aa6575b50610aa492500383610a23565b565b90506000929192526020600020906000915b818310610ad1575050906020610aa49282010138610a97565b6020919350806001915483858901015201910190918492610ab8565b905060209250610aa494915060ff191682840152151560051b82010138610a97565b634e487b7160e01b84526022600452602484fd5b93607f1693610a77565b90604051918281549182825260208201906000526020600020926000905b806007830110610c8d57610aa4945491818110610c6e575b818110610c4f575b818110610c30575b818110610c11575b818110610bf2575b818110610bd3575b818110610bb6575b10610ba1575b500383610a23565b6001600160e01b031916815260200138610b99565b602083811b6001600160e01b031916855290930192600101610b93565b604083901b6001600160e01b0319168452602090930192600101610b8b565b606083901b6001600160e01b0319168452602090930192600101610b83565b608083901b6001600160e01b0319168452602090930192600101610b7b565b60a083901b6001600160e01b0319168452602090930192600101610b73565b60c083901b6001600160e01b0319168452602090930192600101610b6b565b60e083901b6001600160e01b0319168452602090930192600101610b63565b916008919350610100600191865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e0820152019401920185929391610b4b565b60085460ff168015610d415790565b50604051630667f9d760e41b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d60048201526519985a5b195960d21b6024820152602081604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610ddc57600091610daa575b50151590565b90506020813d602011610dd4575b81610dc560209383610a23565b810103126100c6575138610da4565b3d9150610db8565b6040513d6000823e3d90fdfea26469706673582212203e5e20172b926adac7c008c082cf586b2caaca080bb260a31479a8fab7e0c52064736f6c634300081a0033"; - -type UniswapV3SetupLibConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: UniswapV3SetupLibConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class UniswapV3SetupLib__factory extends ContractFactory { - constructor(...args: UniswapV3SetupLibConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(overrides || {}); - } - override deploy(overrides?: NonPayableOverrides & { from?: string }) { - return super.deploy(overrides || {}) as Promise< - UniswapV3SetupLib & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): UniswapV3SetupLib__factory { - return super.connect(runner) as UniswapV3SetupLib__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): UniswapV3SetupLibInterface { - return new Interface(_abi) as UniswapV3SetupLibInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): UniswapV3SetupLib { - return new Contract(address, _abi, runner) as unknown as UniswapV3SetupLib; - } -} diff --git a/typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/index.ts b/typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/index.ts deleted file mode 100644 index 880f67ce..00000000 --- a/typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { INonfungiblePositionManager__factory } from "./INonfungiblePositionManager__factory"; -export { IUniswapV3Factory__factory } from "./IUniswapV3Factory__factory"; -export { IUniswapV3Pool__factory } from "./IUniswapV3Pool__factory"; -export { UniswapV3SetupLib__factory } from "./UniswapV3SetupLib__factory"; diff --git a/typechain-types/factories/contracts/testing/ZetaSetup.t.sol/ZetaSetup__factory.ts b/typechain-types/factories/contracts/testing/ZetaSetup.t.sol/ZetaSetup__factory.ts deleted file mode 100644 index 15ec54da..00000000 --- a/typechain-types/factories/contracts/testing/ZetaSetup.t.sol/ZetaSetup__factory.ts +++ /dev/null @@ -1,889 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { - Signer, - AddressLike, - ContractDeployTransaction, - ContractRunner, -} from "ethers"; -import type { NonPayableOverrides } from "../../../../common"; -import type { - ZetaSetup, - ZetaSetupInterface, -} from "../../../../contracts/testing/ZetaSetup.t.sol/ZetaSetup"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "_deployer", - type: "address", - }, - { - internalType: "address", - name: "_fungibleModuleAddress", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "", - type: "string", - }, - ], - name: "log", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "", - type: "address", - }, - ], - name: "log_address", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256[]", - name: "val", - type: "uint256[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "int256[]", - name: "val", - type: "int256[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address[]", - name: "val", - type: "address[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "log_bytes", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - name: "log_bytes32", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "int256", - name: "", - type: "int256", - }, - ], - name: "log_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "address", - name: "val", - type: "address", - }, - ], - name: "log_named_address", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256[]", - name: "val", - type: "uint256[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256[]", - name: "val", - type: "int256[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "address[]", - name: "val", - type: "address[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "bytes", - name: "val", - type: "bytes", - }, - ], - name: "log_named_bytes", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "bytes32", - name: "val", - type: "bytes32", - }, - ], - name: "log_named_bytes32", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256", - name: "val", - type: "int256", - }, - { - indexed: false, - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "log_named_decimal_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "val", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "log_named_decimal_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256", - name: "val", - type: "int256", - }, - ], - name: "log_named_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "string", - name: "val", - type: "string", - }, - ], - name: "log_named_string", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "val", - type: "uint256", - }, - ], - name: "log_named_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "", - type: "string", - }, - ], - name: "log_string", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "log_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "logs", - type: "event", - }, - { - inputs: [], - name: "FUNGIBLE_MODULE_ADDRESS", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "IS_TEST", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "deployer", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeArtifacts", - outputs: [ - { - internalType: "string[]", - name: "excludedArtifacts_", - type: "string[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeContracts", - outputs: [ - { - internalType: "address[]", - name: "excludedContracts_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeSelectors", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzSelector[]", - name: "excludedSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeSenders", - outputs: [ - { - internalType: "address[]", - name: "excludedSenders_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "failed", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "nodeLogicMock", - outputs: [ - { - internalType: "contract NodeLogicMock", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "deployer", - type: "address", - }, - { - internalType: "address", - name: "wzeta", - type: "address", - }, - ], - name: "prepareUniswapV2", - outputs: [ - { - internalType: "address", - name: "factory", - type: "address", - }, - { - internalType: "address", - name: "router", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "setupZetaChain", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "systemContract", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetArtifactSelectors", - outputs: [ - { - components: [ - { - internalType: "string", - name: "artifact", - type: "string", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzArtifactSelector[]", - name: "targetedArtifactSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetArtifacts", - outputs: [ - { - internalType: "string[]", - name: "targetedArtifacts_", - type: "string[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetContracts", - outputs: [ - { - internalType: "address[]", - name: "targetedContracts_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetInterfaces", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "string[]", - name: "artifacts", - type: "string[]", - }, - ], - internalType: "struct StdInvariant.FuzzInterface[]", - name: "targetedInterfaces_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetSelectors", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzSelector[]", - name: "targetedSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetSenders", - outputs: [ - { - internalType: "address[]", - name: "targetedSenders_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "uniswapV2Router", - type: "address", - }, - { - internalType: "address", - name: "uniswapV2Factory", - type: "address", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "address", - name: "wzeta", - type: "address", - }, - { - internalType: "address", - name: "deployer", - type: "address", - }, - { - internalType: "uint256", - name: "zrc20Amount", - type: "uint256", - }, - { - internalType: "uint256", - name: "wzetaAmount", - type: "uint256", - }, - ], - name: "uniswapV2AddLiquidity", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "uniswapV2Factory", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "uniswapV2Router", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "uniswapV3Factory", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "uniswapV3PositionManager", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "uniswapV3Router", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "wrapGatewayZEVM", - outputs: [ - { - internalType: "contract GatewayZEVM", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "wzeta", - outputs: [ - { - internalType: "address payable", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -const _bytecode = - "0x60803460a357601f620103f838819003918201601f19168301916001600160401b0383118484101760a857808492604094855283398101031260a3576001604e602060488460be565b930160be565b918160ff19600c541617600c55601f54906101008360a81b039060081b1690828060a81b0319161717601f5560018060a01b031660018060a01b03196020541617602055604051620103269081620000d28239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820360a35756fe6080604052600436101561001257600080fd5b60003560e01c8062173d46146101b65780631694505e146101b15780631ed7831c146101ac5780632ade3880146101a75780632c76d7a6146101a2578063342a30c31461019d5780633ce4a5bc146101985780633e5e3c23146101935780633f7286f41461018e57806351976f441461018957806352dc56b81461018457806359d0f7131461017f5780635b5491821461017a57806366141ce21461017557806366d9a9a01461017057806385226c811461016b578063916a17c614610166578063a0d788b714610161578063b0464fdc1461015c578063b5508aa914610157578063ba414fa614610152578063bb88b7691461014d578063d5f3948814610148578063e20c9f7114610143578063f04ab5341461013e5763fa7626d41461013957600080fd5b611c24565b611bfb565b611b7b565b611b4e565b611b25565b611b00565b611a73565b6119c7565b6116c8565b61161c565b611517565b61140b565b611324565b6112fb565b6112d2565b610684565b610636565b6105a5565b610525565b6104fe565b6104d5565b6104ac565b610400565b610260565b6101f4565b6101cb565b60009103126101c657565b600080fd5b346101c65760003660031901126101c6576021546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c6576024546040516001600160a01b039091168152602090f35b602060408183019282815284518094520192019060005b8181106102415750505090565b82516001600160a01b0316845260209384019390920191600101610234565b346101c65760003660031901126101c65760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b8181106102d1576102cd856102c181870382611c79565b6040519182918261021d565b0390f35b82546001600160a01b03168452602090930192600192830192016102aa565b60005b8381106103035750506000910152565b81810151838201526020016102f3565b9060209161032c815180928185528580860191016102f0565b601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061036b57505050505090565b9091929394603f198282030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b85010194019260005b8281106103d55750505050506020806001929701930193019193929061035c565b90919293946020806103f3600193605f198782030189528951610313565b97019501939291016103b4565b346101c65760003660031901126101c657601e5461041d81611c9b565b9061042b6040519283611c79565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061047157604051806102cd8782610338565b6002602060019260405161048481611c5d565b848060a01b03865416815261049a858701611d7f565b8382015281520192019201919061045c565b346101c65760003660031901126101c6576026546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c6576027546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c657602080546040516001600160a01b039091168152f35b346101c65760003660031901126101c65760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b818110610586576102cd856102c181870382611c79565b82546001600160a01b031684526020909301926001928301920161056f565b346101c65760003660031901126101c65760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b818110610606576102cd856102c181870382611c79565b82546001600160a01b03168452602090930192600192830192016105ef565b6001600160a01b038116036101c657565b346101c65760403660031901126101c65761066860043561065681610625565b6024359061066382610625565b611ea1565b604080516001600160a01b039384168152919092166020820152f35b346101c65760003660031901126101c657601f5460081c6001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af18015611104576112bd575b5060405161088580820182811067ffffffffffffffff8211176111bc57829162005e27833903906000f0801561110457602180546001600160a01b0319166001600160a01b03909216919091179055600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af18015611104576112a8575b506020546001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af1801561110457611293575b506020546001600160a01b0316600080516020620102d18339815191523b156101c65760405163c88a5e6d60e01b81526001600160a01b03919091166004820152678ac7230489e80000602482015260008160448183600080516020620102d18339815191525af180156111045761127e575b5060215461088e90610882906001600160a01b031681565b6001600160a01b031690565b803b156101c6576000678ac7230489e8000091600460405180948193630d0e30db60e41b83525af1801561110457611269575b50600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af1801561110457611254575b50601f5460081c6001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af180156111045761123f575b50601f5460081c6001600160a01b0316600080516020620102d18339815191523b156101c65760405163c88a5e6d60e01b81526001600160a01b03919091166004820152678ac7230489e80000602482015260008160448183600080516020620102d18339815191525af180156111045761122a575b506021546109ff90610882906001600160a01b031681565b803b156101c6576000678ac7230489e8000091600460405180948193630d0e30db60e41b83525af1801561110457611215575b50600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af1801561110457611200575b50601f54610af090610ad390610ab19060081c6001600160a01b0316602154610aab906001600160a01b0316610882565b90611ea1565b602480546001600160a01b0319166001600160a01b0390921691909117905590565b60018060a01b03166001600160601b0360a01b6023541617602355565b601f54610b8790610b4d90610b6a90610b2a9060081c6001600160a01b0316602154610b24906001600160a01b0316610882565b906125b2565b602780546001600160a01b0319166001600160a01b039092169190911790559092565b60018060a01b03166001600160601b0360a01b6026541617602655565b60018060a01b03166001600160601b0360a01b6025541617602555565b6020546001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af18015611104576111eb575b506021546001600160a01b03166023546001600160a01b03166024549091906001600160a01b03169160405192610b3a918285019385851067ffffffffffffffff8611176111bc578594610c6294620052ed87396001600160a01b0391821681529181166020830152909116604082015260600190565b03906000f0801561110457602280546001600160a01b0319166001600160a01b039092169190911790556040516128e080820182811067ffffffffffffffff8211176111bc57829162002a0d833903906000f0801561110457600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af18015611104576111d6575b50601f5460081c6001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af18015611104576111c1575b506040516192d980820182811067ffffffffffffffff8211176111bc578291620066ac833903906000f0801561110457602880546001600160a01b0319166001600160a01b03929092169182179055610dc290610882565b906040519161094c9081840184811067ffffffffffffffff8211176111bc578493610e09936200f98586396001600160a01b03908116825291909116602082015260400190565b03906000f0801561110457602980546001600160a01b0319166001600160a01b03929092169182179055610e3c90610882565b6021546001600160a01b0316601f5460081c6001600160a01b0316823b156101c65760405163485cc95560e01b81526001600160a01b03928316600482015291166024820152906000908290604490829084905af18015611104576111a7575b50600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af1801561110457611192575b506020546001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af180156111045761117d575b5060006020610fb7610f6861088261088260215460018060a01b031690565b602954610f7d906001600160a01b0316610882565b60405163095ea7b360e01b81526001600160a01b039091166004820152678ac7230489e80000602482015293849283919082906044820190565b03925af1801561110457611160575b50600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af180156111045761114b575b50601f5460081c6001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af1801561110457611136575b5060006020611095610f6861088261088260215460018060a01b031690565b03925af1801561110457611109575b50600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af18015611104576110ed57005b806110fc600061110293611c79565b806101bb565b005b611dd7565b61112a9060203d60201161112f575b6111228183611c79565b8101906121e1565b6110a4565b503d611118565b806110fc600061114593611c79565b38611076565b806110fc600061115a93611c79565b3861100e565b6111789060203d60201161112f576111228183611c79565b610fc6565b806110fc600061118c93611c79565b38610f49565b806110fc60006111a193611c79565b38610ee4565b806110fc60006111b693611c79565b38610e9c565b611c47565b806110fc60006111d093611c79565b38610d6a565b806110fc60006111e593611c79565b38610d02565b806110fc60006111fa93611c79565b38610beb565b806110fc600061120f93611c79565b38610a7a565b806110fc600061122493611c79565b38610a32565b806110fc600061123993611c79565b386109e7565b806110fc600061124e93611c79565b38610971565b806110fc600061126393611c79565b38610909565b806110fc600061127893611c79565b386108c1565b806110fc600061128d93611c79565b3861086a565b806110fc60006112a293611c79565b386107f7565b806110fc60006112b793611c79565b38610792565b806110fc60006112cc93611c79565b386106fc565b346101c65760003660031901126101c6576023546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c6576025546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c6576028546040516001600160a01b039091168152602090f35b906020808351928381520192019060005b81811061136b5750505090565b82516001600160e01b03191684526020938401939092019160010161135e565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106113be57505050505090565b90919293946020806113fc600193603f19868203018752895190836113ec8351604084526040840190610313565b920151908481840391015261134d565b970193019301919392906113af565b346101c65760003660031901126101c657601b5461142881611c9b565b906114366040519283611c79565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b83831061147c57604051806102cd878261138b565b6002602060019260405161148f81611c5d565b61149886611cb3565b81526114a58587016121f9565b83820152815201920192019190611467565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106114ea57505050505090565b9091929394602080611508600193603f198682030187528951610313565b970193019301919392906114db565b346101c65760003660031901126101c657601a5461153481611c9b565b906115426040519283611c79565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b83831061158757604051806102cd87826114b7565b60016020819261159685611cb3565b815201920192019190611572565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106115d757505050505090565b909192939460208061160d600193603f198682030187526040838b51878060a01b0381511684520151918185820152019061134d565b970193019301919392906115c8565b346101c65760003660031901126101c657601d5461163981611c9b565b906116476040519283611c79565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b83831061168d57604051806102cd87826115a4565b600260206001926040516116a081611c5d565b848060a01b0386541681526116b68587016121f9565b83820152815201920192019190611678565b346101c65760e03660031901126101c6576004356116e581610625565b602435906116f282610625565b6044356116fe81610625565b6064359161170b83610625565b6084359261171884610625565b60a4359260c43595600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b038716600482015260008160248183600080516020620102d18339815191525af18015611104576119b2575b506040516364e329cb60e11b81526001600160a01b0383811660048301528481166024830152909160209183916044918391600091165af1801561110457611985575b5060405163095ea7b360e01b81526001600160a01b0384166004820152602481018590526020818060448101038160006001600160a01b0387165af1801561110457611968575b5060405163095ea7b360e01b81526001600160a01b038416600482015260248101879052906020828060448101038160006001600160a01b0388165af18015611104576060966000936118bc9261194b575b5061185c42612433565b60405162e8e33760e81b81526001600160a01b03948516600482015295841660248701526044860197909752606485019890985260006084850181905260a4850152961660c483015260e482019390935293849283918290610104820190565b03926001600160a01b03165af180156111045761191c5750600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af18015611104576110ed57005b61193d9060603d606011611944575b6119358183611c79565b810190612458565b50506110a4565b503d61192b565b6119639060203d60201161112f576111228183611c79565b611852565b6119809060203d60201161112f576111228183611c79565b611800565b6119a69060203d6020116119ab575b61199e8183611c79565b81019061241e565b6117b9565b503d611994565b806110fc60006119c193611c79565b38611776565b346101c65760003660031901126101c657601c546119e481611c9b565b906119f26040519283611c79565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b838310611a3857604051806102cd87826115a4565b60026020600192604051611a4b81611c5d565b848060a01b038654168152611a618587016121f9565b83820152815201920192019190611a23565b346101c65760003660031901126101c657601954611a9081611c9b565b90611a9e6040519283611c79565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b838310611ae357604051806102cd87826114b7565b600160208192611af285611cb3565b815201920192019190611ace565b346101c65760003660031901126101c6576020611b1b612482565b6040519015158152f35b346101c65760003660031901126101c6576022546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c657601f5460405160089190911c6001600160a01b03168152602090f35b346101c65760003660031901126101c65760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b818110611bdc576102cd856102c181870382611c79565b82546001600160a01b0316845260209093019260019283019201611bc5565b346101c65760003660031901126101c6576029546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c657602060ff601f54166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176111bc57604052565b90601f8019910116810190811067ffffffffffffffff8211176111bc57604052565b67ffffffffffffffff81116111bc5760051b60200190565b9060405191600081548060011c9260018216918215611d75575b602085108314611d61578487528693926020850192918115611d445750600114611d02575b5050611d0092500383611c79565b565b611d13919250600052602060002090565b906000915b848310611d2d5750611d009350013880611cf2565b805482840152869350602090920191600101611d18565b915050611d009491925060ff19168252151560051b013880611cf2565b634e487b7160e01b84526022600452602484fd5b93607f1693611ccd565b908154611d8b81611c9b565b92611d996040519485611c79565b818452602084019060005260206000206000915b838310611dba5750505050565b600160208192611dc985611cb3565b815201920192019190611dad565b6040513d6000823e3d90fd5b67ffffffffffffffff81116111bc57601f01601f191660200190565b6020818303126101c65780519067ffffffffffffffff82116101c6570181601f820112156101c65760208151910190611e3781611de3565b92611e456040519485611c79565b818452818301116101c657611e5e9160208401906102f0565b90565b611e7360409283835283830190610313565b90602081830391015260148152730b995d9b4b989e5d1958dbd9194b9bd89a9958dd60621b60208201520190565b919091600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b038216600482015260008160248183600080516020620102d18339815191525af18015611104576121cc575b506040516360f9bb1160e01b815260206004820152603960248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76322d636f72652f627560448201527f696c642f556e69737761705632466163746f72792e6a736f6e000000000000006064820152600081608481600080516020620102d18339815191525afa90811561110457611faa916000918291612191575b5060405180938192631fb2437d60e31b835260048301611e61565b0381600080516020620102d18339815191525afa80156111045761200a92611ff7926000926121ab575b50604080516001600160a01b039092166020830152909261200591849190820190565b03601f198101845283611c79565b612515565b6040516360f9bb1160e01b815260206004820152603f60248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76322d7065726970686560448201527f72792f6275696c642f556e69737761705632526f7574657230322e6a736f6e006064820152909290600081608481600080516020620102d18339815191525afa908115611104576120bb916000918291612191575060405180938192631fb2437d60e31b835260048301611e61565b0381600080516020620102d18339815191525afa80156111045761210f92611ff792600092612168575b50604080516001600160a01b03808916602083015290921690820152916120059083906060820190565b90600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af18015611104576121595750565b806110fc6000611d0093611c79565b61200591925061218a903d806000833e6121828183611c79565b810190611dff565b91906120e5565b6121a591503d8084833e6121828183611c79565b38611f8f565b6120059192506121c5903d806000833e6121828183611c79565b9190611fd4565b806110fc60006121db93611c79565b38611efa565b908160209103126101c6575180151581036101c65790565b604051815480825290929183906122196020830191600052602060002090565b926000905b80600783011061236157611d00945491818110612342575b818110612323575b818110612304575b8181106122e5575b8181106122c6575b8181106122a7575b818110612289575b10612274575b500383611c79565b6001600160e01b03191681526020013861226c565b602083811b6001600160e01b03191685529093600191019301612266565b604083901b6001600160e01b031916845292600190602001930161225e565b606083901b6001600160e01b0319168452926001906020019301612256565b608083901b6001600160e01b031916845292600190602001930161224e565b60a083901b6001600160e01b0319168452926001906020019301612246565b60c083901b6001600160e01b031916845292600190602001930161223e565b6001600160e01b031960e084901b168452926001906020019301612236565b9160089193506101006001916124108754612387838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b01940192018592939161221e565b908160209103126101c65751611e5e81610625565b90610384820180921161244257565b634e487b7160e01b600052601160045260246000fd5b908160609103126101c6578051916040602083015192015190565b908160209103126101c6575190565b60085460ff1680156124915790565b50604051630667f9d760e41b8152600080516020620102d1833981519152600482018190526519985a5b195960d21b6024830152602090829060449082905afa908115611104576000916124e6575b50151590565b612508915060203d60201161250e575b6125008183611c79565b810190612473565b386124e0565b503d6124f6565b9061255a6020916040519283918161253681850197888151938492016102f0565b830161254a825180938580850191016102f0565b010103601f198101835282611c79565b51906000f09081156101c657565b61257a60409283835283830190610313565b90602081830391015260098152682e62797465636f646560b81b60208201520190565b604051906125ac602083611c79565b60008252565b600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af18015611104576129f7575b506040516360f9bb1160e01b815260206004820152605c60248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76332d636f72652f617260448201527f746966616374732f636f6e7472616374732f556e69737761705633466163746f60648201527f72792e736f6c2f556e69737761705633466163746f72792e6a736f6e00000000608482015260008160a481600080516020620102d18339815191525afa908115611104576126e09160009182916129a7575b5060405180938192631fb2437d60e31b835260048301612568565b0381600080516020620102d18339815191525afa801561110457612715916000916129dc575b5061270f61259d565b90612515565b6040516360f9bb1160e01b815260206004820152605560248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76332d7065726970686560448201527f72792f6172746966616374732f636f6e7472616374732f53776170526f757465606482015274391739b7b617a9bbb0b82937baba32b9173539b7b760591b608482015290929060008160a481600080516020620102d18339815191525afa908115611104576127e49160009182916129a7575060405180938192631fb2437d60e31b835260048301612568565b0381600080516020620102d18339815191525afa801561110457612836916000916129c1575b50604080516001600160a01b038088166020830152861691810191909152906120058260608101611ff7565b6040516360f9bb1160e01b815260206004820152607560248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76332d7065726970686560448201527f72792f6172746966616374732f636f6e7472616374732f4e6f6e66756e67696260648201527f6c65506f736974696f6e4d616e616765722e736f6c2f4e6f6e66756e6769626c60848201527432a837b9b4ba34b7b726b0b730b3b2b9173539b7b760591b60a482015290929060008160c481600080516020620102d18339815191525afa9081156111045761292b9160009182916129a7575060405180938192631fb2437d60e31b835260048301612568565b0381600080516020620102d18339815191525afa80156111045761210f928592600092612986575b50604080516001600160a01b03808a16602083015292831691810191909152921660608301526120058260808101611ff7565b6120059192506129a0903d806000833e6121828183611c79565b9190612953565b6129bb91503d8084833e6121828183611c79565b386126c5565b6129d691503d806000833e6121828183611c79565b3861280a565b6129f191503d806000833e6121828183611c79565b38612706565b806110fc6000612a0693611c79565b3861260a56fe60a080604052346100ea57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b6040516127f090816100f08239608051818181610db80152610e4c0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880610054565b63f92ee8a960e01b60005260046000fd5b600080fdfe6080806040526004361015610067575b50361561001b57600080fd5b610023611f8e565b6000546001600160a01b03163314158061004f575b61003e57005b63b3af013760e01b60005260046000fd5b506000805160206126fb833981519152331415610038565b600090813560e01c90816301ffc9a714611b2b5750806306cb898314611818578063184b0793146117195780632095dedb146115e457806321501a95146113f757806321e093b1146113d0578063248a9ca3146113a95780632722feee146113805780632810ae63146112f65780632f2ff15d146112c457806336568abe1461127f5780633f4ba83a146111fd578063485cc955146110345780634f1ef28614610e0d57806352d1902d14610da55780635c975abb14610d755780637b15118b14610b445780637c0dcb5f146108885780638456cb591461081357806391d14854146107ba57806397a1cef11461074d57806397d340f5146107305780639d4ba465146105c4578063a217fddf146105a8578063ad3cb1cc1461055b578063bcf7f32b146104b4578063c39aca371461033d578063d547741f14610302578063e63ab1e9146102c75763f45346dc0361000f57346102c45760603660031901126102c4576101d3611c4a565b906024356101df611c60565b926000805160206126fb83398151915233036102b5576101fd611f8e565b6001600160a01b03811693841580156102a4575b610295578215610286576001600160a01b038116916000805160206126fb8339815191528314801561027d575b61026e5761024d918491612503565b15610256578280f35b606493632050a1dd60e11b8452600452602452604452fd5b63416aebb560e11b8552600485fd5b5030831461023e565b635d67094f60e01b8452600484fd5b63d92e233d60e01b8452600484fd5b506001600160a01b03811615610211565b632160203f60e11b8352600483fd5b80fd5b50346102c457806003193601126102c45760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346102c45760403660031901126102c457610339600435610322611c34565b9061033461032f82611efe565b6120bd565b612330565b5080f35b50346102c45761034c36611cf8565b95949291909361035a611fdf565b6000805160206126fb83398151915233036104a557610377611f8e565b6001600160a01b0381169687158015610494575b610485578315610476576001600160a01b038316926000805160206126fb8339815191528414801561046d575b61045e57846103c79184612503565b1561044357869750823b1561043f5786946103fa869260405198899788968795632de7eb0b60e11b875260048701611e8e565b03925af180156104345761041f575b50600160008051602061277b8339815191525580f35b8161042991611bb1565b6102c4578038610409565b6040513d84823e3d90fd5b8680fd5b60648785858b632050a1dd60e11b8452600452602452604452fd5b63416aebb560e11b8852600488fd5b503084146103b8565b635d67094f60e01b8752600487fd5b63d92e233d60e01b8752600487fd5b506001600160a01b0383161561038b565b632160203f60e11b8652600486fd5b50346102c4576104c336611cf8565b90936104d29695939296611fdf565b6000805160206126fb83398151915233036104a5576104ef611f8e565b6001600160a01b03811615801561054a575b61053b57859660018060a01b031691823b1561043f5786946103fa869260405198899788968795632de7eb0b60e11b875260048701611e8e565b63d92e233d60e01b8652600486fd5b506001600160a01b03871615610501565b50346102c457806003193601126102c457506105a460405161057e604082611bb1565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611cb7565b0390f35b50346102c457806003193601126102c457602090604051908152f35b50346102c45760803660031901126102c4576105de611c4a565b90602435916105eb611c60565b90606435916001600160401b03831161072c576080600319843603011261072c57610614611fdf565b6000805160206126fb833981519152330361071d57610631611f8e565b6001600160a01b038216908115801561070c575b6106fd5785156106ee576001600160a01b038116926000805160206126fb833981519152841480156106e5575b6106d657610681918791612503565b156106bc5750829350803b156106b8576103fa8392918392604051948580948193636481451b60e11b835260040160048301611e29565b5050fd5b6064949250632050a1dd60e11b8452600452602452604452fd5b63416aebb560e11b8652600486fd5b50308414610672565b635d67094f60e01b8552600485fd5b63d92e233d60e01b8552600485fd5b506001600160a01b03811615610645565b632160203f60e11b8452600484fd5b8380fd5b50346102c457806003193601126102c45760206040516108008152f35b50346102c45760803660031901126102c4576004356001600160401b0381116107b65761077e903690600401611bed565b506064356001600160401b0381116107b65760a09060031990360301126102c4576004906107aa611f8e565b63e4dd681d60e01b8152fd5b5080fd5b50346102c45760403660031901126102c45760406107d6611c34565b91600435815260008051602061273b833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346102c457806003193601126102c45761082c61204b565b610834611f8e565b600160ff1960008051602061275b83398151915254161760008051602061275b833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346102c45760803660031901126102c4576004356001600160401b0381116107b6576108b9903690600401611bed565b90602435916108c6611c60565b906064356001600160401b03811161072c57806004019060a06003198236030112610b40576108f3611f8e565b8251156106fd5785156106ee576064016108006109108284611d75565b905011610b1d5750604051630123a4f160e31b8152939485946001600160a01b03851694602082600481895afa918215610ada578792610ae5575b509061095791836123d0565b604051634d8943bb60e01b815290602082600481895afa918215610ada578792610aa3575b50604051630123a4f160e31b8152926020846004818a5afa938415610a98578894610a4f575b507f07bf64173efd8f3dfb9e4eb3834bab9d5b85a3d89a1c6425797329de0668502c9593610a49936109fd9693602093604051936109df85611b80565b84526001858501526040519889986101208a526101208a0190611cb7565b9a85890152604088015260608701526080860152610a37858903918260a08801528a8a5260c0870190602080918051845201511515910152565b01610100840152602033960190611f1f565b0390a380f35b975094925090926020873d602011610a90575b81610a6f60209383611bb1565b81010312610a8b579551879692949293909290919060206109a2565b600080fd5b3d9150610a62565b6040513d8a823e3d90fd5b965090506020863d602011610ad2575b81610ac060209383611bb1565b81010312610a8b57869551903861097c565b3d9150610ab3565b6040513d89823e3d90fd5b915095506020813d602011610b15575b81610b0260209383611bb1565b81010312610a8b5751869561095761094b565b3d9150610af5565b610b2a8591604493611d75565b63cd6f4e6d60e01b835260045250610800602452fd5b8480fd5b50346102c45760e03660031901126102c4576004356001600160401b0381116107b657610b75903690600401611bed565b9060243591610b82611c60565b906064356001600160401b03811161072c57610ba2903690600401611c8a565b9490916040366083190112610b405760c435916001600160401b038311610d7157826004019360a0600319853603011261043f57610bde611f8e565b82511561048557811561047657608435938415610d6257606401610800610c10610c088389611d75565b90508b611da7565b11610d345750968697610c278588859a999a6123d0565b604051634d8943bb60e01b815290986001600160a01b031693602082600481885afa918215610d29578992610cea575b5098610c9a9596979899610c78604051986101208a526101208a0190611cb7565b95602089015260408801526060870152608086015284830360a0860152611e08565b9160c082015260a43591821515809303610b4057610a4982917fd90f94752d2b12f364f4a2237ebe1aff24ba6127585376bf4935f6a7be17dd2a9460e08401528281036101008401523395611f1f565b959697985090506020853d602011610d21575b81610d0a60209383611bb1565b81010312610a8b5793518997969594610c9a610c57565b3d9150610cfd565b6040513d8b823e3d90fd5b87610d4d8a610d456044948a611d75565b919050611da7565b63cd6f4e6d60e01b8252600452610800602452fd5b6360ee124760e01b8852600488fd5b8580fd5b50346102c457806003193601126102c457602060ff60008051602061275b83398151915254166040519015158152f35b50346102c457806003193601126102c4577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610dfe57602060405160008051602061271b8339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126102c457610e22611c4a565b906024356001600160401b0381116107b657610e42903690600401611bed565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611011575b506110025781805260008051602061273b83398151915260209081526040808420336000908152925290205460ff1615610fea576040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa80958596610fb6575b50610ef057634c9c8ce360e01b84526004839052602484fd5b90918460008051602061271b8339815191528103610fa45750813b15610f925760008051602061271b83398151915280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a28151839015610f78578083602061033995519101845af4610f7261201b565b91612699565b50505034610f835780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011610fe2575b81610fd260209383611bb1565b81010312610b4057519438610ed7565b3d9150610fc5565b63e2517d3f60e01b8252336004526024829052604482fd5b63703e46dd60e11b8252600482fd5b60008051602061271b833981519152546001600160a01b03161415905038610e77565b50346102c45760403660031901126102c45761104e611c4a565b611056611c34565b60008051602061279b833981519152549160ff8360401c1615926001600160401b038116801590816111f5575b60011490816111eb575b1590816111e2575b506111d35767ffffffffffffffff19811660011760008051602061279b83398151915255836111a6575b506001600160a01b03169081158015611195575b61029557611124906110e361262b565b6110eb61262b565b6110f361262b565b6110fb61262b565b61110361262b565b600160008051602061277b8339815191525561111e81612107565b506121b9565b5082546001600160a01b03191617825561113b5780f35b68ff00000000000000001960008051602061279b833981519152541660008051602061279b833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b506001600160a01b038116156110d3565b68ffffffffffffffffff1916680100000000000000011760008051602061279b83398151915255386110bf565b63f92ee8a960e01b8552600485fd5b90501538611095565b303b15915061108d565b859150611083565b50346102c457806003193601126102c45761121661204b565b60008051602061275b8339815191525460ff8116156112705760ff191660008051602061275b833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346102c45760403660031901126102c457611299611c34565b336001600160a01b038216036112b55761033990600435612330565b63334bd91960e11b8252600482fd5b50346102c45760403660031901126102c4576103396004356112e4611c34565b906112f161032f82611efe565b612287565b50346102c45760e03660031901126102c4576004356001600160401b0381116107b657611327903690600401611bed565b506064356001600160401b0381116107b657611347903690600401611c8a565b505060403660831901126102c45760c4356001600160401b0381116107b65760a09060031990360301126102c4576004906107aa611f8e565b50346102c457806003193601126102c45760206040516000805160206126fb8339815191528152f35b50346102c45760203660031901126102c45760206113c8600435611efe565b604051908152f35b50346102c457806003193601126102c457546040516001600160a01b039091168152602090f35b50346102c45760803660031901126102c457600435906001600160401b0382116102c457606060031983360301126102c457602435611434611c60565b926064356001600160401b03811161072c57611454903690600401611c8a565b61145f929192611fdf565b6000805160206126fb83398151915233036115d55761147c611f8e565b6001600160a01b03861695861561053b5784156115c6576000805160206126fb833981519152871480156115bd575b6106d65785546114c9908690309033906001600160a01b03166125d9565b156115a55785546001600160a01b0316803b1561043f5786808092602460405180958193632e1a7d4d60e01b83528c60048401525af19182611590575b505061152357604486868963793cd7bf60e11b8352600452602452fd5b858080878194989697985af161153761201b565b50156115795794849560018060a01b0386541690823b1561043f5786946103fa869260405198899788968795632de7eb0b60e11b875260040160048701611e8e565b604485838863793cd7bf60e11b8352600452602452fd5b8161159a91611bb1565b61043f578638611506565b63793cd7bf60e11b8652306004526024859052604486fd5b503087146114ab565b6319c08f4960e01b8652600486fd5b632160203f60e11b8552600485fd5b50346102c45760403660031901126102c4576115fe611c4a565b90602435916001600160401b0383116107b657826004019060c060031985360301126117155761162c611fdf565b6000805160206126fb83398151915233036102b557611649611f8e565b6001600160a01b0316908115611706578293823b15611701576103fa926116ef858094604051968795869485936316a67dbf60e11b85526020600486015260a46116a76116968380611dd7565b60c060248a015260e4890191611e08565b936001600160a01b036116bc60248301611c76565b166044880152604481013560648801526116d860648201611dca565b151560848801526084810135828801520190611dd7565b8483036023190160c486015290611e08565b505050fd5b63d92e233d60e01b8352600483fd5b8280fd5b50346102c45760403660031901126102c457611733611c4a565b90602435916001600160401b0383116107b657608060031984360301126107b65761175c611fdf565b6000805160206126fb833981519152330361180957611779611f8e565b6001600160a01b03169182156117fa578282933b156106b8576117b98392918392604051958680948193636481451b60e11b835260040160048301611e29565b03925af180156117ed576117dd575b600160008051602061277b8339815191525580f35b6117e691611bb1565b38816117c8565b50604051903d90823e3d90fd5b63d92e233d60e01b8252600482fd5b632160203f60e11b8252600482fd5b50346102c45760c03660031901126102c4576004356001600160401b0381116107b657611849903690600401611bed565b611851611c34565b6044356001600160401b03811161072c57611870903690600401611c8a565b90916040366063190112610b405760a435926001600160401b038411610d7157836004019260a0600319863603011261043f576118ab611f8e565b606435938415610d625760648601926108006118d26118ca8685611d75565b905085611da7565b11611b1a57604051956118e487611b80565b86526084358015158103611b165760208701526040519160a083018381106001600160401b03821117611b025760405261191d90611c76565b825261192b60248801611dca565b926020830193845261193f60448901611c76565b9460408401958652356001600160401b038111611afe5761196690600436918b0101611bed565b95606084019687526084608085019901358952895115611aef5787516040805163fc5fecd560e01b815260048101929092526001600160a01b03929092169a91816024818e5afa908115611ae4578c908d92611ab2575b506119c982338361257d565b15611a8257505093611a7493611a3c611a2660a099957f306ee13f48319a123b222c69908e44dcf91abffc20cacc502e3cf5a4ff23e0e49b9995611a1860809a6040519d8e8181520190611cb7565b8c810360208e015291611e08565b885160408b0152602090980151151560608a0152565b87870386890152516001600160a01b03908116875290511515602087015290511660408501525160a060608501819052840190611cb7565b94519101528033930390a380f35b633338088960e11b8d526001600160a01b03166004526000805160206126fb83398151915260245260445260648bfd5b9050611ad6915060403d604011611add575b611ace8183611bb1565b810190611fb8565b90386119bd565b503d611ac4565b6040513d8e823e3d90fd5b63d92e233d60e01b8b5260048bfd5b8a80fd5b634e487b7160e01b8b52604160045260248bfd5b8980fd5b604489610d4d85610d458887611d75565b9050346107b65760203660031901126107b65760043563ffffffff60e01b81168091036117155760209250637965db0b60e01b8114908115611b6f575b5015158152f35b6301ffc9a760e01b14905038611b68565b604081019081106001600160401b03821117611b9b57604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b03821117611b9b57604052565b6001600160401b038111611b9b57601f01601f191660200190565b81601f82011215610a8b57803590611c0482611bd2565b92611c126040519485611bb1565b82845260208383010111610a8b57816000926020809301838601378301015290565b602435906001600160a01b0382168203610a8b57565b600435906001600160a01b0382168203610a8b57565b604435906001600160a01b0382168203610a8b57565b35906001600160a01b0382168203610a8b57565b9181601f84011215610a8b578235916001600160401b038311610a8b5760208381860195010111610a8b57565b919082519283825260005b848110611ce3575050826000602080949584010152601f8019910116010190565b80602080928401015182828601015201611cc2565b60a0600319820112610a8b576004356001600160401b038111610a8b5760608183036003190112610a8b57600401916024356001600160a01b0381168103610a8b5791604435916064356001600160a01b0381168103610a8b5791608435906001600160401b038211610a8b57611d7191600401611c8a565b9091565b903590601e1981360301821215610a8b57018035906001600160401b038211610a8b57602001918136038313610a8b57565b91908201809211611db457565b634e487b7160e01b600052601160045260246000fd5b35908115158203610a8b57565b9035601e1982360301811215610a8b5701602081359101916001600160401b038211610a8b578136038313610a8b57565b908060209392818452848401376000828201840152601f01601f1916010190565b60208152611e8b9160a090611e7b906001600160a01b03611e4982611c76565b166020850152600180841b03611e6160208301611c76565b166040850152604081013560608501526060810190611dd7565b9190926080808201520191611e08565b90565b90939192611e8b9593608083526040611ebb611eaa8880611dd7565b6060608088015260e0870191611e08565b966001600160a01b03611ed060208301611c76565b1660a0860152013560c08401526001600160a01b031660208301526040820152808403606090910152611e08565b60005260008051602061273b83398151915260205260016040600020015490565b906001600160a01b03611f3183611c76565b168152611f4060208301611dca565b151560208201526001600160a01b03611f5b60408401611c76565b166040820152608080611f85611f746060860186611dd7565b60a0606087015260a0860191611e08565b93013591015290565b60ff60008051602061275b8339815191525416611fa757565b63d93c066560e01b60005260046000fd5b9190826040910312610a8b5781516001600160a01b0381168103610a8b5760209092015190565b600260008051602061277b833981519152541461200a57600260008051602061277b83398151915255565b633ee5aeb560e01b60005260046000fd5b3d15612046573d9061202c82611bd2565b9161203a6040519384611bb1565b82523d6000602084013e565b606090565b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561208457565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b600081815260008051602061273b8339815191526020908152604080832033845290915290205460ff16156120ef5750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff166121b3576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50600090565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff166121b3576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b600081815260008051602061273b833981519152602090815260408083206001600160a01b038616845290915290205460ff1661232957600081815260008051602061273b833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b5050600090565b600081815260008051602061273b833981519152602090815260408083206001600160a01b038616845290915290205460ff161561232957600081815260008051602061273b833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6040805163fc5fecd560e01b8152600481019490945290916001600160a01b0381169184602481855afa9384156124df576000906000956124bb575b5061241885338361257d565b15612484575061242a833033846125d9565b1561245a578261243991612659565b1561244357505090565b637112ae7760e01b60005260045260245260446000fd5b506084916040519163489ca9b760e01b835260048301523360248301523060448301526064820152fd5b633338088960e11b60009081526001600160a01b039091166004526000805160206126fb8339815191526024526044859052606490fd5b90506124d791945060403d604011611add57611ace8183611bb1565b93903861240c565b6040513d6000823e3d90fd5b90816020910312610a8b57518015158103610a8b5790565b6040516311f9fbc960e21b81526001600160a01b039283166004820152602481019390935260209183916044918391600091165af16000918161254c575b50611e8b5750600090565b61256f91925060203d602011612576575b6125678183611bb1565b8101906124eb565b9038612541565b503d61255d565b6040516323b872dd60e01b81526001600160a01b0392831660048201526000805160206126fb8339815191526024820152604481019390935260209183916064918391600091165af16000918161254c5750611e8b5750600090565b6040516323b872dd60e01b81526001600160a01b03928316600482015292821660248401526044830193909352909160209183916064918391600091165af16000918161254c5750611e8b5750600090565b60ff60008051602061279b8339815191525460401c161561264857565b631afcd79f60e31b60005260046000fd5b604051630852cd8d60e31b81526004810192909252602090829060249082906000906001600160a01b03165af16000918161254c5750611e8b5750600090565b906126bf57508051156126ae57805190602001fd5b63d6bda27560e01b60005260046000fd5b815115806126f1575b6126d0575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b156126c856fe000000000000000000000000735b14bb79463307aacbed86daf3322b1e6226ab360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220542941658a96d6dd4010b90beba1b2fc5ed2076ef97c9889b30ab9ceda5036f064736f6c634300081a003360c03461010057601f610b3a38819003918201601f19168301916001600160401b0383118484101761010557808492606094604052833981010312610100576100478161011b565b9061006060406100596020840161011b565b920161011b565b9173735b14bb79463307aacbed86daf3322b1e6226ab33036100ef57600380546001600160a01b0319166001600160a01b039290921691909117905560805260a0526040517f80699e81136d69cb8367ad52a994e25c722a86da654b561d0c14b61a777e7ac5600080a1610a0a9081610130823960805181818161018a015261065d015260a051816106d70152f35b632b2add3d60e01b60005260046000fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036101005756fe608080604052600436101561001357600080fd5b600090813560e01c9081630be1554714610817575080631f0e251b146107915780633ce4a5bc14610762578063513a9c051461072f578063569541b914610706578063842da36d146106c157806391dd645f146105f057806397770dff1461054c578063a7cb0507146104da578063c39aca3714610263578063c62178ac1461023a578063c63585cc146101e2578063d7fd7afb146101b9578063d936a012146101745763ee2815ba146100c657600080fd5b34610171576040366003190112610171576004356100e2610864565b9073735b14bb79463307aacbed86daf3322b1e6226ab33036101625780835260016020908152604080852080546001600160a01b0319166001600160a01b0390951694851790558051928352908201929092527fd1b36d30f6248e97c473b4d1348ca164a4ef6759022f54a58ec200326c39c45d91819081015b0390a180f35b632b2add3d60e01b8352600483fd5b80fd5b50346101715780600319360112610171576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461017157602036600319011261017157604060209160043581528083522054604051908152f35b5034610171576060366003190112610171576101fc610849565b610204610864565b604435929091906001600160a01b03841684036101715760206102288585856108d3565b6040516001600160a01b039091168152f35b50346101715780600319360112610171576004546040516001600160a01b039091168152602090f35b50346101715760a0366003190112610171576004359067ffffffffffffffff82116101715781360360606003198201126104d65761029f610864565b92604435906064356001600160a01b038116908190036104d25760843567ffffffffffffffff81116104ce57366023820112156104ce5780600401359367ffffffffffffffff85116104615736602486840101116104615773735b14bb79463307aacbed86daf3322b1e6226ab33036104bf5773735b14bb79463307aacbed86daf3322b1e6226ab831480156104b6575b6104a7576040516311f9fbc960e21b815260048101849052602481018290529697959688966001600160a01b0316906020816044818b865af1801561049c57610465575b50833b156104615760405197636f218ab760e11b8952608060048a01528560040135906022190181121561045d57850160246004820135910167ffffffffffffffff8211610459578136038113610459576103da91606060848c015260e48b01916108b2565b60248601356001600160a01b038116919082900361045957889760248b98968a968a989660448a9861042d9860a48b0152013560c4890152838801526044870152600319868503016064870152016108b2565b03925af1801561044c5761043e5780f35b6104479161087a565b388180f35b50604051903d90823e3d90fd5b8880fd5b8780fd5b8680fd5b6020813d602011610494575b8161047e6020938361087a565b8101031261045d57518015158114610374578780fd5b3d9150610471565b6040513d8a823e3d90fd5b63416aebb560e11b8752600487fd5b50308314610330565b632b2add3d60e01b8752600487fd5b8580fd5b8480fd5b5080fd5b50346101715760403660031901126101715760043560243573735b14bb79463307aacbed86daf3322b1e6226ab330361016257816040917f49f492222906ac486c3c1401fa545626df1f0c0e5a77a05597ea2ed66af9850d93855284602052808386205582519182526020820152a180f35b503461017157602036600319011261017157610566610849565b73735b14bb79463307aacbed86daf3322b1e6226ab33036105e1576001600160a01b031680156105d2576020817fdba79d534382d1a8ae108e4c8ecb27c6ae42ab8b91d44eedf88bd329f3868d5e926001600160601b0360a01b6003541617600355604051908152a180f35b63d92e233d60e01b8252600482fd5b632b2add3d60e01b8252600482fd5b50346101715760403660031901126101715760043561060d610864565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610162576003547f0ecec485166da6139b13bb7e033e9446e2d35348e80ebf1180d4afe2dba1704e9291610681916001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006108d3565b81845260026020908152604080862080546001600160a01b0319166001600160a01b0390941693841790558051938452908301919091528190810161015c565b50346101715780600319360112610171576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101715780600319360112610171576003546040516001600160a01b039091168152602090f35b503461017157602036600319011261017157602090600435815260028252604060018060a01b0391205416604051908152f35b5034610171578060031936011261017157602060405173735b14bb79463307aacbed86daf3322b1e6226ab8152f35b5034610171576020366003190112610171576107ab610849565b73735b14bb79463307aacbed86daf3322b1e6226ab33036105e1576001600160a01b031680156105d2576020817f3ade88e3922d64780e1bf4460d364c2970b69da813f9c0c07a1c187b5647636c926001600160601b0360a01b6004541617600455604051908152a180f35b9050346104d65760203660031901126104d6576004358252600160209081526040909220546001600160a01b03168152f35b600435906001600160a01b038216820361085f57565b600080fd5b602435906001600160a01b038216820361085f57565b90601f8019910116810190811067ffffffffffffffff82111761089c57604052565b634e487b7160e01b600052604160045260246000fd5b908060209392818452848401376000828201840152601f01601f1916010190565b91906001600160a01b038083169082168082146109c35710156109be57905b6001600160a01b038216156109ad576040519060208201926001600160601b03199060601b1683526001600160601b03199060601b1660348201526028815261093c60488261087a565b5190209060405191602083019160ff60f81b83526001600160601b03199060601b16602184015260358301527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f60558301526055825261099d60758361087a565b905190206001600160a01b031690565b633c5a83ed60e11b60005260046000fd5b6108f2565b63658f3e7f60e11b60005260046000fdfea26469706673582212203d5f24fd62859186e7d8a9f41a0e370a08bd7cbc34344f0eb46593f3ba299ff564736f6c634300081a003360806040523461011457610014600054610119565b601f81116100cb575b507f577261707065642045746865720000000000000000000000000000000000001a60005560015461004e90610119565b601f8111610081575b6008630ae8aa8960e31b016001556002805460ff1916601217905560405161073190816101548239f35b6001600052601f0160051c7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6908101905b8181106100bf5750610057565b600081556001016100b2565b60008052601f0160051c7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563908101905b818110610108575061001d565b600081556001016100fb565b600080fd5b90600182811c92168015610149575b602083101461013357565b634e487b7160e01b600052602260045260246000fd5b91607f169161012856fe60806040526004361015610023575b361561001957600080fd5b6100216106b2565b005b60003560e01c806306fdde0314610423578063095ea7b3146103a957806318160ddd1461038d57806323b872dd1461035e5780632e1a7d4d146102b9578063313ce5671461029857806370a082311461025e57806395d89b411461013d578063a9059cbb1461010b578063d0e30db0146100f75763dd62ed3e0361000e57346100f25760403660031901126100f2576100ba610526565b6100c261053c565b6001600160a01b039182166000908152600460209081526040808320949093168252928352819020549051908152f35b600080fd5b60003660031901126100f2576100216106b2565b346100f25760403660031901126100f2576020610133610129610526565b60243590336105a8565b6040519015158152f35b346100f25760003660031901126100f2576000604051816001548060011c90600181168015610254575b6020831081146102405782855290811561022457506001146101d0575b50819003601f01601f1916810167ffffffffffffffff8111828210176101bc576101b89250604052604051918291826104dd565b0390f35b634e487b7160e01b83526041600452602483fd5b600184529050827fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b82821061020e57506020915082010183610184565b60018160209254838588010152019101906101f9565b90506020925060ff191682840152151560051b82010183610184565b634e487b7160e01b86526022600452602486fd5b91607f1691610167565b346100f25760203660031901126100f2576001600160a01b0361027f610526565b1660005260036020526020604060002054604051908152f35b346100f25760003660031901126100f257602060ff60025416604051908152f35b346100f25760203660031901126100f2576004353360005260036020526102e7816040600020541015610552565b3360005260036020526040600020610300828254610578565b90558060008115610355575b600080809381933390f115610349576040519081527f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b6560203392a2005b6040513d6000823e3d90fd5b506108fc61030c565b346100f25760603660031901126100f257602061013361037c610526565b61038461053c565b604435916105a8565b346100f25760003660031901126100f257602047604051908152f35b346100f25760403660031901126100f2576103c2610526565b3360008181526004602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b346100f25760003660031901126100f25760006040518182548060011c906001811680156104d3575b60208310811461024057828552908115610224575060011461049c5750819003601f01601f1916810167ffffffffffffffff8111828210176101bc576101b89250604052604051918291826104dd565b90508280526020832083905b8282106104bd57506020915082010183610184565b60018160209254838588010152019101906104a8565b91607f169161044c565b91909160208152825180602083015260005b818110610510575060409293506000838284010152601f8019910116010190565b80602080928701015160408286010152016104ef565b600435906001600160a01b03821682036100f257565b602435906001600160a01b03821682036100f257565b1561055957565b60405162461bcd60e51b81526020600482015260006024820152604490fd5b9190820391821161058557565b634e487b7160e01b600052601160045260246000fd5b9190820180921161058557565b60207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9160018060a01b03169283600052600382526105ee856040600020541015610552565b3384141580610691575b610646575b83600052600382526040600020610615868254610578565b905560018060a01b0316938460005260038252604060002061063882825461059b565b9055604051908152a3600190565b6000848152600483526040808220338352845290205461066890861115610552565b600084815260048352604080822033835284529020805461068a908790610578565b90556105fd565b506000848152600483526040808220338352845290205460001914156105f8565b33600052600360205260406000206106cb34825461059b565b90556040513481527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a256fea26469706673582212209e220afc3d58f06e9fcfb74d0eadc71ef1ec14a29eb328f69f1935849690effe64736f6c634300081a003360808060405234602f57600160ff19600c541617600c55600160ff19601f541617601f556192a490816100358239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c8062173d46146102465780631ed7831c146102415780632558fcec1461023c5780632ade38801461023757806332030cef14610232578063347f3a7c1461022d5780633e5e3c23146102285780633f7286f41461022357806366d9a9a01461021e578063735de9f7146102195780638016f22b146102145780638327f7901461020f57806385226c811461020a5780638c52853c14610205578063916a17c614610200578063944a3ba4146101fb578063acfdc212146101f6578063ad82a627146101f1578063b0464fdc146101ec578063b184b87c146101e7578063b1c388b8146101e2578063b5508aa9146101dd578063b8969900146101d8578063ba414fa6146101d3578063bea9849e146101ce578063cc5ad8b6146101c9578063ced6e793146101c4578063d333abf6146101bf578063d7b3eeaf146101ba578063e20c9f71146101b5578063ebcff1c6146101b0578063f51a071d146101ab578063f59e8a67146101a6578063f9a41697146101a15763fa7626d41461019c57600080fd5b6116ef565b6116b5565b61165c565b6115ec565b6112b0565b611230565b611217565b6111e3565b61117e565b611151565b611112565b6110ed565b6110ae565b611021565b611004565b610f68565b610ebc565b610e35565b610d99565b610d06565b610c5a565b610b95565b610b08565b610a33565b6108a8565b61087f565b6107d3565b610695565b610615565b6105c2565b610586565b6104a9565b610365565b6102d5565b61025b565b600091031261025657565b600080fd5b34610256576000366003190112610256576026546040516001600160a01b039091168152602090f35b906020808351928381520192019060005b8181106102a25750505090565b82516001600160a01b0316845260209384019390920191600101610295565b9060206102d2928181520190610284565b90565b346102565760003660031901126102565760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b818110610346576103428561033681870382610966565b604051918291826102c1565b0390f35b82546001600160a01b031684526020909301926001928301920161031f565b34610256576020366003190112610256576004356000526022602052602060018060a01b0360406000205416604051908152f35b60005b8381106103ac5750506000910152565b818101518382015260200161039c565b906020916103d581518092818552858086019101610399565b601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061041457505050505090565b9091929394603f198282030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b85010194019260005b82811061047e57505050505060208060019297019301930191939290610405565b909192939460208061049c600193605f1987820301895289516103bc565b970195019392910161045d565b3461025657600036600319011261025657601e546104c681611712565b906104d46040519283610966565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061051a576040518061034287826103e1565b6002602060019260405161052d8161090f565b848060a01b0386541681526105438587016117f3565b83820152815201920192019190610505565b6001600160a01b0381160361025657565b6064359061057382610555565b565b9060206102d29281815201906103bc565b34610256576020366003190112610256576103426105ae6004356105a981610555565b61184b565b6040519182916020835260208301906103bc565b34610256576040366003190112610256576106136024356004356105e582610555565b600052602260205260406000209060018060a01b03166bffffffffffffffffffffffff60a01b825416179055565b005b346102565760003660031901126102565760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b818110610676576103428561033681870382610966565b82546001600160a01b031684526020909301926001928301920161065f565b346102565760003660031901126102565760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b8181106106f6576103428561033681870382610966565b82546001600160a01b03168452602090930192600192830192016106df565b906020808351928381520192019060005b8181106107335750505090565b82516001600160e01b031916845260209384019390920191600101610726565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061078657505050505090565b90919293946020806107c4600193603f19868203018752895190836107b483516040845260408401906103bc565b9201519084818403910152610715565b97019301930191939290610777565b3461025657600036600319011261025657601b546107f081611712565b906107fe6040519283610966565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b83831061084457604051806103428782610753565b600260206001926040516108578161090f565b61086086611729565b815261086d858701611883565b8382015281520192019201919061082f565b34610256576000366003190112610256576025546040516001600160a01b039091168152602090f35b34610256576040366003190112610256576106136024356004356108cb82610555565b600090815260216020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761092a57604052565b6108f9565b61010081019081106001600160401b0382111761092a57604052565b606081019081106001600160401b0382111761092a57604052565b90601f801991011681019081106001600160401b0382111761092a57604052565b60405190610573602083610966565b60405190610573606083610966565b60405190610573608083610966565b6040519061057360c083610966565b6001600160401b03811161092a57601f01601f191660200190565b81601f82011215610256578035906109f5826109c3565b92610a036040519485610966565b8284526020838301011161025657816000926020809301838601378301015290565b908160a09103126102565790565b346102565760a036600319011261025657600435610a5081610555565b6024356001600160401b03811161025657610a6f9036906004016109de565b90606435604435610a7f82610555565b608435936001600160401b03851161025657610aa2610613953690600401610a25565b93611f79565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610adb57505050505090565b9091929394602080610af9600193603f1986820301875289516103bc565b97019301930191939290610acc565b3461025657600036600319011261025657601a54610b2581611712565b90610b336040519283610966565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310610b7857604051806103428782610aa8565b600160208192610b8785611729565b815201920192019190610b63565b34610256576040366003190112610256576020602435600435610bb782610555565b60009081526023835260408082206001600160a01b03938416835260205290205b5416604051908152f35b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610c1557505050505090565b9091929394602080610c4b600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610715565b97019301930191939290610c06565b3461025657600036600319011261025657601d54610c7781611712565b90610c856040519283610966565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b838310610ccb57604051806103428782610be2565b60026020600192604051610cde8161090f565b848060a01b038654168152610cf4858701611883565b83820152815201920192019190610cb6565b3461025657602036600319011261025657600435610d2381610555565b601f8054610100600160a81b03191660089290921b610100600160a81b0316919091179055005b9181601f84011215610256578235916001600160401b038311610256576020838186019501011161025657565b60409060a31901126102565760a490565b604090608319011261025657608490565b346102565761010036600319011261025657600435610db781610555565b6024356001600160401b03811161025657610dd69036906004016109de565b90604435610de2610566565b6084356001600160401b03811161025657610e01903690600401610d4a565b91610e0b36610d77565b9360e435966001600160401b03881161025657610e2f610613983690600401610a25565b96612b04565b346102565760e036600319011261025657602435600435610e5582610555565b604435610e6181610555565b60643590608435610e7181610555565b60a4356001600160401b03811161025657610e90903690600401610d4a565b93909260c435966001600160401b03881161025657610eb6610613983690600401610a25565b96613476565b3461025657600036600319011261025657601c54610ed981611712565b90610ee76040519283610966565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b838310610f2d57604051806103428782610be2565b60026020600192604051610f408161090f565b848060a01b038654168152610f56858701611883565b83820152815201920192019190610f18565b346102565760e036600319011261025657600435610f8581610555565b6024356001600160401b03811161025657610fa49036906004016109de565b90604435610fb181610555565b6064356001600160401b03811161025657610fd0903690600401610d4a565b90610fda36610d88565b9260c435956001600160401b03871161025657610ffe610613973690600401610a25565b956138d4565b346102565760003660031901126102565760208054604051908152f35b346102565760003660031901126102565760195461103e81611712565b9061104c6040519283610966565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b83831061109157604051806103428782610aa8565b6001602081926110a085611729565b81520192019201919061107c565b34610256576020366003190112610256576004356110cb81610555565b602680546001600160a01b0319166001600160a01b0392909216919091179055005b34610256576000366003190112610256576020611108613d3b565b6040519015158152f35b346102565760203660031901126102565760043561112f81610555565b602580546001600160a01b0319166001600160a01b0392909216919091179055005b3461025657600036600319011261025657601f5460405160089190911c6001600160a01b03168152602090f35b346102565760c03660031901126102565760243560043561119e82610555565b6044356111aa81610555565b606435608435916111ba83610555565b60a435946001600160401b038611610256576111dd610613963690600401610a25565b94613e3f565b34610256576020366003190112610256576004356000526021602052602060018060a01b0360406000205416604051908152f35b3461025657602036600319011261025657600435602055005b346102565760003660031901126102565760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b818110611291576103428561033681870382610966565b82546001600160a01b031684526020909301926001928301920161127a565b346102565760a0366003190112610256576004356024356112d081610555565b604435916112dd83610555565b6064356001600160401b038111610256576112fc903690600401610d4a565b6084356001600160401b0381116102565761131b903690600401610a25565b601f549095906004906020906113449060081c6001600160a01b03165b6001600160a01b031690565b6040516313917f7760e11b815292839182905afa90811561151d576000916115bd575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d576115a8575b50601f546113d79060081c6001600160a01b0316611338565b604051606087901b6001600160601b03191660208201529261140684603481015b03601f198101865285610966565b61140e610996565b9384526001600160a01b038716602085015285604085015261144a61143d876000526022602052604060002090565b546001600160a01b031690565b90823b156102565760009461147786926040519889978896879563bcf7f32b60e01b875260048701614072565b03926216e360f1908161158d575b5061152257611492611d28565b60205460405163348051d760e11b8152600481019190915290919060008160248160008051602061924f8339815191525afa801561151d57610613956114ef6114ea866040946114f5966000916114fa575b5061413d565b6141c7565b016141bd565b616213565b61151791503d806000833e61150f8183610966565b810190611b3b565b386114e4565b611afa565b505060205460405163348051d760e11b81526004810191909152905060008160248160008051602061924f8339815191525afa90811561151d57610613916114ea91600091611572575b506140b9565b61158791503d806000833e61150f8183610966565b3861156c565b8061159c60006115a293610966565b8061024b565b38611485565b8061159c60006115b793610966565b386113be565b6115df915060203d6020116115e5575b6115d78183610966565b810190611c26565b38611367565b503d6115cd565b3461025657604036600319011261025657602060243560043561160e82610555565b60009081526024835260408082206001600160a01b0393841683526020529020610bd8565b6060906003190112610256576004359060243561164f81610555565b906044356102d281610555565b346102565761061361169661167036611633565b9291600052602360205260406000209060018060a01b0316600052602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b34610256576106136116966116c936611633565b9291600052602460205260406000209060018060a01b0316600052602052604060002090565b3461025657600036600319011261025657602060ff601f54166040519015158152f35b6001600160401b03811161092a5760051b60200190565b9060405191600081548060011c92600182169182156117e9575b6020851083146117d55784875286939260208501929181156117b85750600114611776575b505061057392500383610966565b611787919250600052602060002090565b906000915b8483106117a157506105739350013880611768565b80548284015286935060209092019160010161178c565b9150506105739491925060ff19168252151560051b013880611768565b634e487b7160e01b84526022600452602484fd5b93607f1693611743565b9081546117ff81611712565b9261180d6040519485610966565b818452602084019060005260206000206000915b83831061182e5750505050565b60016020819261183d85611729565b815201920192019190611821565b90813b6000611859826109c3565b6118666040519182610966565b828152611872836109c3565b602082019190601f1901368337943c565b604051815480825290929183906118a36020830191600052602060002090565b926000905b8060078301106119eb576105739454918181106119cc575b8181106119ad575b81811061198e575b81811061196f575b818110611950575b818110611931575b818110611913575b106118fe575b500383610966565b6001600160e01b0319168152602001386118f6565b602083811b6001600160e01b031916855290936001910193016118f0565b604083901b6001600160e01b03191684529260019060200193016118e8565b606083901b6001600160e01b03191684529260019060200193016118e0565b608083901b6001600160e01b03191684529260019060200193016118d8565b60a083901b6001600160e01b03191684529260019060200193016118d0565b60c083901b6001600160e01b03191684529260019060200193016118c8565b6001600160e01b031960e084901b1684529260019060200193016118c0565b916008919350610100600191611a9a8754611a11838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b0194019201859293916118a8565b60405190611ab58261092f565b606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b90816020910312610256575190565b6040513d6000823e3d90fd5b90929192611b13816109c3565b91611b216040519384610966565b829482845282820111610256576020610573930190610399565b602081830312610256578051906001600160401b03821161025657019080601f830112156102565781516102d292602001611b06565b90610573601b602960405180956802db1b430b4b724b2160bd1b6020830152611ba38151809260208686019101610399565b81017f5d205b4552524f525d2047617465776179206e6f7420666f756e640000000000838201520301600419810185520183610966565b9060208251920151916bffffffffffffffffffffffff1983169260148210611c00575050565b6001600160601b031960149290920360031b82901b16169150565b519061057382610555565b9081602091031261025657516102d281610555565b90610573601b602960405180956802db1b430b4b724b2160bd1b6020830152611c6d8151809260208686019101610399565b81017f5d205b4552524f525d20437573746f6479206e6f7420666f756e640000000000838201520301600419810185520183610966565b906105736033602960405180956802db1b430b4b724b2160bd1b6020830152611cd68151809260208686019101610399565b81017f5d205b494e464f5d2045524332302f5a45544120776974686472617720636f6d8382015272706c65746564207375636365737366756c6c7960681b604982015203016013810185520183610966565b3d15611d53573d90611d39826109c3565b91611d476040519384610966565b82523d6000602084013e565b606090565b60266105739193929360296040519586926802db1b430b4b724b2160bd1b6020850152611d8e8151809260208688019101610399565b83017f5d205b4552524f525d2045524332302f5a4554412077697468647261772066618382015265034b632b21d160d51b6049820152611dd8825180936020604f85019101610399565b01010301601f198101845283610966565b8015150361025657565b91909160a081840312610256576040519060a082018281106001600160401b0382111761092a5760405281938135611e2a81610555565b83526020820135611e3a81611de9565b60208401526040820135611e4d81610555565b60408401526060820135916001600160401b03831161025657611e7660809392849383016109de565b60608501520135910152565b906105736023602960405180956802db1b430b4b724b2160bd1b6020830152611eb48151809260208686019101610399565b81017f5d205b4552524f525d2047617320746f6b656e207472616e736665722066616983820152621b195960ea1b604982015203016003810185520183610966565b906105736032602960405180956802db1b430b4b724b2160bd1b6020830152611f288151809260208686019101610399565b81017f5d205b494e464f5d2047617320746f6b656e207472616e7366657220636f6d7083820152716c65746564207375636365737366756c6c7960701b604982015203016012810185520183610966565b9293919093611f86611aa8565b60405163085e1f4d60e41b81529095906001600160a01b03831690602081600481855afa90811561151d57611fd59161143d91600091612657575b50808a526000526021602052604060002090565b6001600160a01b0390811660208901818152929190611ff390611338565b16156125df5761203761203161204f9261201e61133861143d8d516000526022602052604060002090565b1460408b0190815294611bda565b611bda565b60601c90565b6001600160a01b031660608901908152925b51151590565b1561223f57516004919060209061206e906001600160a01b0316611338565b604051635b11259160e01b815293849182905afa91821561151d5760009261221e575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af191821561151d57600080866121068295839561211f9861220a575b50516001600160a01b031690565b5af1612110611d28565b50151560c08701908152612049565b15612190575050915160405163348051d760e11b815260048101919091529150600090508160248160008051602061924f8339815191525afa90811561151d57610573916114ea91600091612175575b50611ef6565b61218a91503d806000833e61150f8183610966565b3861216f565b845160405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa95861561151d576121e16114ea610573986121ea946000916121ef575b50611e82565b51933690611df3565b614ddf565b61220491503d806000833e61150f8183610966565b386121db565b8061159c8661221893610966565b386120f8565b61223891925060203d6020116115e5576115d78183610966565b9038612091565b80516004919060209061225a906001600160a01b0316611338565b60405163dda79b7560e01b815293849182905afa91821561151d576000926125be575b506001600160a01b03919091166080880181815291906122ad906122a090611338565b1560a08a01908152612049565b6125465751600491906020906122cb906001600160a01b0316611338565b604051635b11259160e01b815293849182905afa91821561151d57600092612525575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af191821561151d576113386123629261133892612370956125165750516001600160a01b031690565b91516001600160a01b031690565b6123a361143d8461238c8a516000526024602052604060002090565b9060018060a01b0316600052602052604060002090565b90823b1561025657604051636ce5768960e11b81526001600160a01b0391821660048201529116602482015260448101849052906000908290606490829084905af19081612501575b5061247f5761242e946123fd611d28565b90600060c08201528160e0820152600081516040518099819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d576114ea6121ea936121e1926105739a600091612464575b50611d58565b61247991503d806000833e61150f8183610966565b3861245e565b5050505060008161249660c06124b6940160019052565b516040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea916000916124e6575b50611ca4565b6124fb91503d806000833e61150f8183610966565b386124e0565b8061159c600061251093610966565b386123ec565b8061159c600061221893610966565b61253f91925060203d6020116115e5576115d78183610966565b90386122ee565b50505050505050600061257391516040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea916000916125a3575b50611c3b565b6125b891503d806000833e61150f8183610966565b3861259d565b6125d891925060203d6020116115e5576115d78183610966565b903861227d565b50505050505050600061260c91516040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea9160009161263c575b50611b71565b61265191503d806000833e61150f8183610966565b38612636565b612679915060203d60201161267f575b6126718183610966565b810190611aeb565b38611fc1565b503d612667565b6040519061014082018281106001600160401b0382111761092a5760405260606101208360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201528260e082015260006101008201520152565b356102d281611de9565b908060209392818452848401376000828201840152601f01601f1916010190565b90516001600160a01b039081168252918216602082015291166040820152606081019190915260a0608082018190526102d2939101916126f3565b90610573603c602960405180956802db1b430b4b724b2160bd1b60208301526127818151809260208686019101610399565b81017f5d205b494e464f5d2045524332302f5a45544120776974686472617720616e64838201527f2063616c6c20636f6d706c65746564207375636365737366756c6c790000000060498201520301601c810185520183610966565b602f6105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526128138151809260208688019101610399565b83017f5d205b4552524f525d2045524332302f5a45544120776974686472617720616e838201526e0321031b0b636103330b4b632b21d1608d1b6049820152611dd8825180936020605885019101610399565b906004116102565790600490565b356001600160e01b031981169291906004821061288f575050565b6001600160e01b031960049290920360031b82901b16169150565b90610573605a60405180947f526563656976657220636f6e747261637420646f6573206e6f7420636f6e746160208301527f696e2066756e6374696f6e20776974682073656c6563746f722000000000000060408301526129148151809260208686019101610399565b81010301601f198101845283610966565b600a6105739193929360296040519586926802db1b430b4b724b2160bd1b602085015261295b8151809260208688019101610399565b83016902e902da2a92927a92e960b51b83820152611dd8825180936020603385019101610399565b9080601f830112156102565781516102d292602001611b06565b906020828203126102565781516001600160401b038111610256576102d29201612983565b90516001600160a01b03908116825290911660208201526060604082018190526102d2939101916126f3565b90610573603b602960405180956802db1b430b4b724b2160bd1b6020830152612a208151809260208686019101610399565b81017f5d205b494e464f5d2047617320746f6b656e207472616e7366657220616e6420838201527f63616c6c20636f6d706c65746564207375636365737366756c6c79000000000060498201520301601b810185520183610966565b602e6105739193929360296040519586926802db1b430b4b724b2160bd1b6020850152612ab28151809260208688019101610399565b83017f5d205b4552524f525d2047617320746f6b656e207472616e7366657220616e64838201526d01031b0b636103330b4b632b21d160951b6049820152611dd8825180936020605785019101610399565b95969491939096612b13612686565b60405163085e1f4d60e41b815290986001600160a01b03861691602081600481865afa90811561151d57612b619161143d916000916132d0575b50808d526000526021602052604060002090565b6001600160a01b0390811660208c01818152939190612b7f90611338565b16156132a057612bba6120318c949361202c6040612bd095612bb261133861143d8b516000526022602052604060002090565b149701968752565b6001600160a01b031660608c0190815292612049565b15612f8957612be1602084016126e9565b612e34575b805160049493929190602090612c04906001600160a01b0316611338565b604051635b11259160e01b815296879182905afa94851561151d57600095612e13575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039590951660048601526000856024818360008051602061924f8339815191525af194851561151d576113388992612c9892600098612e055750516001600160a01b031690565b923592612cc1612ca6610987565b6001600160a01b038d168152935b516001600160a01b031690565b92612ce2604051988997889687946338e2252760e01b8652600486016129c2565b0393f19081612de4575b50612d8157612d3094612cfd611d28565b90600061010082015281610120820152600081516040518099819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d576114ea6121ea936121e1926105739a600091612d66575b50612a7c565b612d7b91503d806000833e61150f8183610966565b38612d60565b50505050600081612496610100612d99940160019052565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091612dc9575b506129ee565b612dde91503d806000833e61150f8183610966565b38612dc3565b612e00903d806000833e612df88183610966565b81019061299d565b612cec565b8061159c8a61221893610966565b612e2d91955060203d6020116115e5576115d78183610966565b9338612c27565b612e47612e418686612866565b90612874565b8251612e6e90612e6a908390612e65906001600160a01b031661184b565b61544d565b1590565b612e785750612be6565b9250505087925060009150612e9360c0612ebd990160019052565b604051631623433d60e31b81526001600160e01b0319909116600482015296879081906024820190565b038160008051602061924f8339815191525afa95861561151d57612f1896612eed91600091612f6e575b506128aa565b9060e08101918252600081516040518099819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d576114ea6121ea936121e1926105739a600092612f51575b505190612925565b612f679192503d806000833e61150f8183610966565b9038612f49565b612f8391503d806000833e61150f8183610966565b38612ee7565b80519194929160049190602090612fa8906001600160a01b0316611338565b60405163dda79b7560e01b815293849182905afa91821561151d5760009261327f575b506001600160a01b039190911660808b018181529190612fff908c906120499060a090612ff790611338565b159201918252565b61324f57516004919060209061301d906001600160a01b0316611338565b604051635b11259160e01b815293849182905afa91821561151d5760009261322e575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af191821561151d576113386130b292611338928e956125165750516001600160a01b031690565b92868a6130c36020863596016126e9565b1561321a575061143d6131069161238c6130f460009a5b612cb46130e5610987565b6001600160a01b03909d168d52565b95516000526024602052604060002090565b93803b156102565788966131366000979388946040519a8b998a9889966356840c2960e11b885260048801612714565b0393f19081613205575b506131a25761315194612cfd611d28565b038160008051602061924f8339815191525afa801561151d576114ea6121ea936121e1926105739a600091613187575b506127dd565b61319c91503d806000833e61150f8183610966565b38613181565b505050506000816124966101006131ba940160019052565b038160008051602061924f8339815191525afa90811561151d57610573916114ea916000916131ea575b5061274f565b6131ff91503d806000833e61150f8183610966565b386131e4565b8061159c600061321493610966565b38613140565b6131069161238c6130f461143d939a6130da565b61324891925060203d6020116115e5576115d78183610966565b9038613040565b50505050505050505050600061257391516040518093819263348051d760e11b8352600483019190602083019252565b61329991925060203d6020116115e5576115d78183610966565b9038612fcb565b50505050505050505050600061260c91516040518093819263348051d760e11b8352600483019190602083019252565b6132e9915060203d60201161267f576126718183610966565b38612b4d565b60256105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526133258151809260208688019101610399565b83017f5d205b4552524f525d205a52433230206e6f7420666f756e6420666f722061738382015264039b2ba1d160dd1b6049820152611dd8825180936020604e85019101610399565b9060408061338584516060855260608501906103bc565b6020808601516001600160a01b03169085015293015191015290565b9194926133bb6102d297959260a0855260a085019061336e565b6001600160a01b0396871660208501526040840191909152941660608201528084036080909101526126f3565b90610573603a602960405180956802db1b430b4b724b2160bd1b602083015261341a8151809260208686019101610399565b81017f5d205b494e464f5d205a657461436861696e206465706f73697420616e642063838201527f616c6c20636f6d706c65746564207375636365737366756c6c7900000000000060498201520301601a810185520183610966565b95969491909661349761143d8661238c8a6000526023602052604060002090565b926001600160a01b038416156136b457601f546004906020906134c59060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091613695575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57613680575b50601f546135589060081c6001600160a01b0316611338565b6040516001600160601b031960608c901b166020820152601481529161357f603484610966565b613587610996565b9283526001600160a01b038b166020840152896040840152813b1561025657600087936135ce82968994604051998a988997889663c39aca3760e01b8852600488016133a1565b03926216e360f1908161366b575b506135f357610573956135ed611d28565b95615710565b50505050505061362060006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091613650575b506133e8565b61366591503d806000833e61150f8183610966565b3861364a565b8061159c600061367a93610966565b386135dc565b8061159c600061368f93610966565b3861353f565b6136ae915060203d6020116115e5576115d78183610966565b386134e8565b50505050509150506136e5915060006020546040518094819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d5760009261377a575b50604051632b65311f60e11b81526001600160a01b03909116600482015260008180602481015b038160008051602061924f8339815191525afa801561151d57610573926114ea9260009261375d575b506132ef565b6137739192503d806000833e61150f8183610966565b9038613757565b61372e9192506137956000913d8084833e61150f8183610966565b929150613707565b6040519060e082018281106001600160401b0382111761092a57604052606060c083600081526000602082015260006040820152600083820152826080820152600060a08201520152565b90610573602d602960405180956802db1b430b4b724b2160bd1b602083015261381a8151809260208686019101610399565b81017f5d205b494e464f5d2045564d20657865637574696f6e20636f6d706c65746564838201526c207375636365737366756c6c7960981b60498201520301600d810185520183610966565b60206105739193929360296040519586926802db1b430b4b724b2160bd1b8585015261389a81518092878688019101610399565b83017f5d205b4552524f525d2045564d20657865637574696f6e206661696c65643a2083820152611dd88251809387604985019101610399565b939194959290600460206138e661379d565b60405163085e1f4d60e41b815290989092839182906001600160a01b03165afa90811561151d576139319161143d91600091613d1c575b508089526000526021602052604060002090565b6001600160a01b039081166020880181815292919061394f90611338565b1615613ced5761203161396191611bda565b6001600160a01b031660408701908152602088019161397f836126e9565b613be3575b6004949596979860206139a0611338845160018060a01b031690565b604051635b11259160e01b815297889182905afa95861561151d57600096613bc2575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039690961660048701526000866024818360008051602061924f8339815191525af191821561151d57613a37611338613a3f926000998a96613bb45750516001600160a01b031690565b9135946126e9565b8214613baa57613a6582935b612cb4613a56610987565b6001600160a01b039096168652565b92613a86604051988997889687946338e2252760e01b8652600486016129c2565b0393f19081613b91575b50613b3157613ad292613aa1611d28565b90600060a08201528160c0820152600081516040518097819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d576114ea613b1193613b089261057398600091613b16575b50613866565b51913690611df3565b6146df565b613b2b91503d806000833e61150f8183610966565b38613b02565b505060008161249660a0613b46940160019052565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091613b76575b506137e8565b613b8b91503d806000833e61150f8183610966565b38613b70565b613ba5903d806000833e612df88183610966565b613a90565b613a658993613a4b565b8061159c8861221893610966565b613bdc91965060203d6020116115e5576115d78183610966565b94386139c3565b613bf0612e418686612866565b98613c0b612e6a8b612e656105a9875160018060a01b031690565b613c16579850613984565b50505050505090916000613c5b94613c316060840160019052565b604051631623433d60e31b81526001600160e01b0319909116600482015294859081906024820190565b038160008051602061924f8339815191525afa93841561151d57613cb594613c8a91600091612f6e57506128aa565b9060808101918252600081516040518097819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d576114ea613b1193613b089261057398600092612f5157505190612925565b5050935160405163348051d760e11b81526004810191909152945060009350849250829150506024810161260c565b613d35915060203d60201161267f576126718183610966565b3861391d565b60085460ff168015613d4a5790565b50604051630667f9d760e41b815260008051602061924f833981519152600482018190526519985a5b195960d21b6024830152602090829060449082905afa90811561151d57600091613d9e575b50151590565b613db7915060203d60201161267f576126718183610966565b38613d98565b906105736031602960405180956802db1b430b4b724b2160bd1b6020830152613def8151809260208686019101610399565b81017f5d205b494e464f5d205a657461436861696e206465706f73697420636f6d706c838201527065746564207375636365737366756c6c7960781b604982015203016011810185520183610966565b939194929094613e6061143d8461238c886000526023602052604060002090565b906001600160a01b0382161561404257601f54600490602090613e8e9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091614023575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d5761400e575b50601f54613f219060081c6001600160a01b0316611338565b803b1561025657604051633d14d1b760e21b81526001600160a01b038481166004830152602482018690529290921660448301526000908290606490829084905af19081613ff9575b50613f815761057395613f7b611d28565b95615db5565b505050505050613fae60006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091613fde575b50613dbd565b613ff391503d806000833e61150f8183610966565b38613fd8565b8061159c600061400893610966565b38613f6a565b8061159c600061401d93610966565b38613f08565b61403c915060203d6020116115e5576115d78183610966565b38613eb1565b505060205460405163348051d760e11b8152600481019190915294509092506000915083905080602481016136e5565b909261408d6102d2969495939560a0845260a084019061336e565b6001600160a01b03958616602084015260006040840152941660608201528084036080909101526126f3565b906105736033602960405180956802db1b430b4b724b2160bd1b60208301526140eb8151809260208686019101610399565b81017f5d205b494e464f5d205a657461436861696e20657865637574696f6e20636f6d8382015272706c65746564207375636365737366756c6c7960681b604982015203016013810185520183610966565b60266105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526141738151809260208688019101610399565b83017f5d205b4552524f525d205a657461436861696e20657865637574696f6e2066618382015265034b632b21d160d51b6049820152611dd8825180936020604f85019101610399565b356102d281610555565b6141f46142026105739260405192839163104c13eb60e21b602084015260206024840181815201906103bc565b03601f198101835282610966565b617fe7565b90610573601e602960405180956802db1b430b4b724b2160bd1b60208301526142398151809260208686019101610399565b81017f5d205b494e464f5d2063616c6c4f6e5265766572742069732066616c73650000838201520301600119810185520183610966565b90610573601f602960405180956802db1b430b4b724b2160bd1b60208301526142a28151809260208686019101610399565b81017f5d205b4552524f525d2072657665727441646472657373206973207a65726f00838201520301600019810185520183610966565b90608060606102d29360018060a01b03815116845260018060a01b0360208201511660208501526040810151604085015201519181606082015201906103bc565b9060206102d29281815201906142d9565b600b90602d61057393959460296040519788946802db1b430b4b724b2160bd1b6020870152614363815180926020868a019101610399565b85017f5d205b494e464f5d20457865637574696e67206f6e526576657274206f6e2072838201526c032bb32b93a20b2323932b9b99609d1b60498201526143b4825180936020605685019101610399565b01016a0161031b7b73a32bc3a1d160ad1b83820152611dd8825180936020603885019101610399565b6001600160a01b039182168152602081019290925290911660408201526080606082018190526102d2929101906142d9565b6001600160a01b0390911681526040602082018190526102d2929101906142d9565b602081830312610256578051906001600160401b03821161025657019080601f830112156102565781519161446583611712565b926144736040519485610966565b80845260208085019160051b830101918383116102565760208101915b83831061449f57505050505090565b82516001600160401b038111610256578201906060828703601f19011261025657604051906144cd8261094b565b60208301516001600160401b0381116102565760209084010187601f82011215610256578051906144fd82611712565b9161450b6040519384610966565b80835260208084019160051b830101918a831161025657602001905b8282106145795750505082526040830151916001600160401b0383116102565761456960608561455f8b602080999881990101612983565b8685015201611c1b565b6040820152815201920191614490565b8151815260209182019101614527565b634e487b7160e01b600052603260045260246000fd5b8051156145ac5760200190565b614589565b8051600110156145ac5760400190565b8051600210156145ac5760600190565b80518210156145ac5760209160051b010190565b90610573601d602960405180956802db1b430b4b724b2160bd1b60208301526146178151809260208686019101610399565b81017f5d205b494e464f5d204576656e742066726f6d206f6e5265766572743a000000838201520301600219810185520183610966565b6040519061465d604083610966565b600a825269101032b6b4ba3a32b91d60b11b6020830152565b60405190614685604083610966565b600782526610103230ba309d60c91b6020830152565b604051906146aa604083610966565b60078252662020746f70696360c81b6020830152565b604051906146cf604083610966565b60018252601d60f91b6020830152565b9190606083019081516146f06109a5565b6001600160a01b03851681529060006020830152600060408301526060820152602085015115614d705760008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57614d5b575b5084516001600160a01b031615614cda5760405163348051d760e11b81526004810183905260008160248160008051602061924f8339815191525afa90811561151d57600091614cbf575b5085516147e7906000906001600160a01b03165b604051632b65311f60e11b81526001600160a01b03909116600482015291829081906024820190565b038160008051602061924f8339815191525afa801561151d5761483d91600091614ca4575b506000604051614823816141f4886020830161431a565b604051809481926371aad10d60e01b835260048301610575565b038160008051602061924f8339815191525afa90811561151d5761486d936114ea93600093614c87575b5061432b565b601f5460049060209061488b9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091614c68575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57614c53575b50601f5461491e9060081c6001600160a01b0316611338565b85519091906001600160a01b031690823b1561025657614958926000928360405180968195829463184b079360e01b84526004840161440f565b03926216e360f19081614c3e575b5061498c57600080614984604061057397015160018060a01b031690565b935193616ba4565b9150506040519163064554e960e21b83526000836004818360008051602061924f8339815191525af192831561151d57600093614c1b575b5060005b8351811015614c15576149ef60406149e083876145d1565b5101516001600160a01b031690565b6040830151614a06906001600160a01b0316611338565b6001600160a01b0390911614614a1f575b6001016149c8565b60405163348051d760e11b815260048101849052909491929060008160248160008051602061924f8339815191525afa90811561151d57614a6c916114ea91600091614bfc575b506145e5565b614a8060006147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d57614ab391600091614be3575b50614aae61464e565b618002565b614ae160006020614ac488886145d1565b510151604051809381926371aad10d60e01b835260048301610575565b038160008051602061924f8339815191525afa801561151d57614b0f91600091614bca575b50614aae614676565b60005b614b1c86866145d1565b515151811015614bc157806000614b41614b6193614b3a8a8a6145d1565b51516145d1565b5160405180948192631623433d60e31b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d57600192614ba291600091614ba8575b50614b9361469b565b83614b9c6146c0565b91618046565b01614b12565b614bbb913d8091833e61150f8183610966565b38614b8a565b50919093614a17565b614bdd913d8091833e61150f8183610966565b38614b06565b614bf6913d8091833e61150f8183610966565b38614aa5565b614c0f913d8091833e61150f8183610966565b38614a66565b50505050565b614c3791933d8091833e614c2f8183610966565b810190614431565b91386149c4565b8061159c6000614c4d93610966565b38614966565b8061159c6000614c6293610966565b38614905565b614c81915060203d6020116115e5576115d78183610966565b386148ae565b614c9d9193503d806000833e61150f8183610966565b9138614867565b614cb991503d806000833e61150f8183610966565b3861480c565b614cd491503d806000833e61150f8183610966565b386147aa565b5060205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa94851561151d57614984604060009392614d336114ea6105739a87968791614d41575b50614270565b01516001600160a01b031690565b614d5591503d8089833e61150f8183610966565b38614d2d565b8061159c6000614d6a93610966565b3861475f565b5060405163348051d760e11b81526004810182905260008160248160008051602061924f8339815191525afa94851561151d57614984604060009392614d336114ea6105739a87968791614dc5575b50614207565b614dd991503d8089833e61150f8183610966565b38614dbf565b93929060608501928351614df16109a5565b6001600160a01b0387168152906001600160a01b03841660208301528260408301526060820152614e256020880151151590565b156153bd5760008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d576153a8575b5086516001600160a01b03161561533e5760405163348051d760e11b81526004810185905260008160248160008051602061924f8339815191525afa90811561151d57600091615323575b508751614ed2906000906001600160a01b03166147be565b038160008051602061924f8339815191525afa801561151d57614f0d91600091614ca457506000604051614823816141f4886020830161431a565b038160008051602061924f8339815191525afa90811561151d57614f3c936114ea93600093614c87575061432b565b601f54600490602090614f5a9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091615304575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d576152ef575b506001600160a01b03831661524f57601f54614ffb9060081c6001600160a01b0316611338565b87519091906001600160a01b031690823b1561025657615035926000928360405180968195829463184b079360e01b84526004840161440f565b03926216e360f1908161523a575b50615062576040959095015161057395906001600160a01b0316614984565b50509150505b60405163064554e960e21b8152916000836004818360008051602061924f8339815191525af192831561151d5760009361521f575b5060005b8351811015614c15576150b960406149e083876145d1565b60408301516150d0906001600160a01b0316611338565b6001600160a01b03909116146150e9575b6001016150a1565b60405163348051d760e11b815260048101849052909491929060008160248160008051602061924f8339815191525afa90811561151d57615135916114ea91600091614bfc57506145e5565b61514960006147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d5761517691600091614be35750614aae61464e565b61518760006020614ac488886145d1565b038160008051602061924f8339815191525afa801561151d576151b491600091614bca5750614aae614676565b60005b6151c186866145d1565b51515181101561521657806000614b416151df93614b3a8a8a6145d1565b038160008051602061924f8339815191525afa91821561151d5760019261521091600091614ba85750614b9361469b565b016151b7565b509190936150e1565b61523391933d8091833e614c2f8183610966565b913861509d565b8061159c600061524993610966565b38615043565b601f546152679060081c6001600160a01b0316611338565b87519091906001600160a01b031690823b15610256576152a39260009283604051809681958294639d4ba46560e01b84528a8c600486016143dd565b03926216e360f190816152da575b506152d0576040959095015161057395906001600160a01b0316614984565b5050915050615068565b8061159c60006152e993610966565b386152b1565b8061159c60006152fe93610966565b38614fd4565b61531d915060203d6020116115e5576115d78183610966565b38614f7d565b61533891503d806000833e61150f8183610966565b38614eba565b5060205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d5761057397614d336114ea614984946040946000916153935750614270565b614d5591503d806000833e61150f8183610966565b8061159c60006153b793610966565b38614e6f565b5060405163348051d760e11b81526004810184905260008160248160008051602061924f8339815191525afa90811561151d5761057397614d336114ea6149849460409460009161540e5750614207565b614dd991503d806000833e61150f8183610966565b634e487b7160e01b600052601160045260246000fd5b906104b0820180921161544857565b615423565b919060005b600481018082116154485784511061549757602081850101516001600160e01b031983811691161461548f57600019811461544857600101615452565b506001925050565b506000925050565b604051906154ac8261092f565b600060e083606081528260208201528260408201528260608201528260808201528260a08201528260c08201520152565b604051906154ec604083610966565b600782526619195c1bdcda5d60ca1b6020830152565b60405190615511604083610966565b601082526f19195c1bdcda5d08185b990818d85b1b60821b6020830152565b600990601461057393959460296040519788946802db1b430b4b724b2160bd1b6020870152615568815180926020868a019101610399565b85017302e902da2a92927a92e902d32ba30a1b430b4b7160651b8382015261559a825180936020603d85019101610399565b0101680103330b4b632b21d160bd1b83820152611dd8825180936020601d85019101610399565b919082604091031261025657602082516155da81610555565b92015190565b9081602091031261025657516102d281611de9565b90610573603a602960405180956802db1b430b4b724b2160bd1b60208301526156278151809260208686019101610399565b81017f5d205b4552524f525d204661696c656420746f206d696e74205a524332302074838201527f6f6b656e7320666f722070726f746f636f6c206164647265737300000000000060498201520301601a810185520183610966565b9190820391821161544857565b90610573602f602960405180956802db1b430b4b724b2160bd1b60208301526156c28151809260208686019101610399565b81017f5d205b4552524f525d204661696c656420746f206275726e2072656d61696e69838201526e6e67205a5243323020746f6b656e7360881b60498201520301600f810185520183610966565b9094939195615751939661572261549f565b9161572b615502565b835260006020546040518098819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa95861561151d576114ea826157b99861578893600091615d9a575b50865190615530565b6040805163fc5fecd560e01b815260808901356004820152966001600160a01b038416939190889081906024820190565b0381865afa801561151d57600097600091615d65575b50604085019081526001600160a01b039097166020850190815296601f546004906020906158089060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091615d46575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03821660048201526000816024818360008051602061924f8339815191525af1801561151d57615d31575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018d905260208160448160008a5af190811561151d57600091615d12575b5015156060870190815260008051602061924f8339815191523b15610256576040516303223eab60e11b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af190811561151d5761592e92612e6a92615cfd575b5051151590565b615c805780519060a0860191825260c086019861594b8a60019052565b805161595f906001600160a01b0316611338565b8603615bf8575b505060008051602061924f8339815191523b15610256576040516390c5013b60e01b8152906000826004818360008051602061924f8339815191525af191821561151d576159bb92615be3575b50518b615683565b608085018181529a9015615bc4575050601f54600491506020906159ea9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091615ba5575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57600092602092615a9292615b91575b508a51604051948580948193630852cd8d60e31b8352600483019190602083019252565b03925af1801561151d57615abd92612e6a92600092615b59575b5060e0612049910191829015159052565b615ae157615adb615ad361057397519451151590565b943690611df3565b90618832565b505050505050615b0e60006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091615b3e575b50615690565b615b5391503d806000833e61150f8183610966565b38615b38565b612049919250615b8260e09160203d602011615b8a575b615b7a8183610966565b8101906155e0565b929150615aac565b503d615b70565b8061159c86615b9f93610966565b38615a6e565b615bbe915060203d6020116115e5576115d78183610966565b38615a0d565b9496509450956105739850615bde925060409150016141bd565b61788e565b8061159c6000615bf293610966565b386159b3565b60008a52516001600160a01b03169051601f54600490602090615c269060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa91821561151d57615c56938f92600094615c5f575b5086618362565b81523880615966565b615c7991945060203d6020116115e5576115d78183610966565b9238615c4f565b5050505050505050505050615cb260006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091615ce2575b506155f5565b615cf791503d806000833e61150f8183610966565b38615cdc565b8061159c6000615d0c93610966565b38615927565b615d2b915060203d602011615b8a57615b7a8183610966565b386158be565b8061159c6000615d4093610966565b38615880565b615d5f915060203d6020116115e5576115d78183610966565b3861582b565b9050615d8a91975060403d604011615d93575b615d828183610966565b8101906155c1565b969096386157cf565b503d615d78565b615daf91503d806000833e61150f8183610966565b3861577f565b90949391956157519396615dc761549f565b9161572b6154dd565b90610573601e602960405180956802db1b430b4b724b2160bd1b6020830152615e028151809260208686019101610399565b81017f5d205b4552524f525d2061626f727441646472657373206973207a65726f0000838201520301600119810185520183610966565b6007600461057392949394602f6040519687926e021b0b713ba103a3930b739b332b91608d1b6020850152615e778151809260208688019101610399565b83016301037b3160e51b83820152615e99825180936020603385019101610399565b01016620746f6b656e7360c81b838201520301601819810185520183610966565b600460129295946017610573956029604051998a966802db1b430b4b724b2160bd1b6020890152615ef4815180926020868c019101610399565b87017f5d205b4552524f525d205472616e7366657272696e672000000000000000000083820152615f2f825180936020604085019101610399565b01016301037b3160e51b83820152615f51825180936020601b85019101610399565b0101710103a37b5b2b739903a379039b2b73232b9160751b83820152611dd8825180936020601685019101610399565b602d6105739193929360296040519586926802db1b430b4b724b2160bd1b6020850152615fb78151809260208688019101610399565b83017f5d205b494e464f5d205472616e7366657272696e6720746f6b656e7320746f20838201526c030b137b93a20b2323932b9b99609d1b6049820152611dd8825180936020605685019101610399565b6102d29160a0616021835160c0845260c08401906103bc565b92600180831b036020820151166020840152604081015160408401526060810151151560608401526080810151608084015201519060a08184039101526103bc565b9060206102d2928181520190616008565b601d90601261057393959460296040519788946802db1b430b4b724b2160bd1b60208701526160ac815180926020868a019101610399565b85017102e902da4a72327ae9021b7b73a3930b1ba160751b838201526160dc825180936020603b85019101610399565b01017f20657865637574696e67206f6e41626f72742c20636f6e746578743a2000000083820152611dd8825180936020602f85019101610399565b6001600160a01b0390911681526040602082018190526102d292910190616008565b90610573601c602960405180956802db1b430b4b724b2160bd1b602083015261616b8151809260208686019101610399565b81017f5d205b494e464f5d204576656e742066726f6d206f6e41626f72743a00000000838201520301600319810185520183610966565b601a6105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526161d88151809260208688019101610399565b83017f5d205b4552524f525d206f6e41626f7274206661696c65643a2000000000000083820152611dd8825180936020604385019101610399565b6001600160a01b0381169360009390928515616a625760205460405163348051d760e11b81526004810191909152858160248160008051602061924f8339815191525afa90811561151d578691616a48575b50604051632b65311f60e11b81526001600160a01b038516600482015290868260248160008051602061924f8339815191525afa91821561151d5787926162b7926114ea928592616a2c575b50615f81565b616836575b604080516001600160a01b0390951660208601526162dd90859081016113f8565b6162e56109b4565b9384526001600160a01b0385166020850152604084018590528415156060850152608084015260a083015260205460405163348051d760e11b8152600481019190915283818060248101038160008051602061924f8339815191525afa90811561151d57849161681c575b50604051632b65311f60e11b81526001600160a01b0383166004820152848160248160008051602061924f8339815191525afa801561151d576163aa918691616802575b5085604051614823816141f48960208301616063565b038160008051602061924f8339815191525afa90811561151d576163d9936114ea9388936167e6575b50616074565b601f546004906020906163f79060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d5784916167c7575b5060008051602061924f8339815191523b156167975760405163ca669fa760e01b81526001600160a01b0391909116600482015283816024818360008051602061924f8339815191525af1801561151d576167b3575b5060008051602061924f8339815191523b156167af576040516320d797a960e11b815283816004818360008051602061924f8339815191525af1801561151d5761679b575b50601f546164cd9060081c6001600160a01b0316611338565b90813b15616797579183916164f99383604051809681958294632095dedb60e01b845260048401616117565b03925af19081616783575b50616583576165399150616516611d28565b816020546040518095819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d5761057393836114ea9492616568575b50506161a2565b61657c92503d8091833e61150f8183610966565b3880616561565b60405163064554e960e21b81529181836004818360008051602061924f8339815191525af192831561151d578293616767575b50815b8351811015614c1557816165d561133860406149e085896145d1565b146165e3575b6001016165b9565b60205460405163348051d760e11b81526004810191909152909490838160248160008051602061924f8339815191525afa90811561151d57616630916114ea91869161674d575b50616139565b616643836147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d5761666f9185916167395750614aae61464e565b61667f836020614ac488886145d1565b038160008051602061924f8339815191525afa801561151d576166ab9185916167255750614aae614676565b825b6166b786866145d1565b51515181101561671e578084614b416166d493614b3a8a8a6145d1565b038160008051602061924f8339815191525afa91821561151d5760019261670491879161670a5750614b9361469b565b016166ad565b614bbb91503d8089833e61150f8183610966565b50936165db565b614bdd91503d8087833e61150f8183610966565b614bf691503d8087833e61150f8183610966565b61676191503d8088833e61150f8183610966565b3861662a565b61677c9193503d8084833e614c2f8183610966565b91386165b6565b8061159c8461679193610966565b38616504565b8380fd5b8061159c856167a993610966565b386164b4565b8280fd5b8061159c856167c193610966565b3861646f565b6167e0915060203d6020116115e5576115d78183610966565b38616419565b6167fb9193503d808a833e61150f8183610966565b91386163d3565b61681691503d8088833e61150f8183610966565b38616394565b61683091503d8086833e61150f8183610966565b38616350565b601f546004906020906168549060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d578691616a0d575b5060008051602061924f8339815191523b156169d85760405163ca669fa760e01b81526001600160a01b038216600482015286816024818360008051602061924f8339815191525af1801561151d576169f9575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018790526020816044818a805af1801561151d576169dc575b5060008051602061924f8339815191523b156169d85760405163ca669fa760e01b81526001600160a01b0391909116600482015285816024818360008051602061924f8339815191525af1801561151d576169c4575b5060405163a9059cbb60e01b81526001600160a01b0384166004820152602481018690529360208560448189805af190811561151d576113f8956162dd926169a5575b509450506162bc565b6169bd9060203d602011615b8a57615b7a8183610966565b503861699c565b8061159c876169d293610966565b38616959565b8580fd5b6169f49060203d602011615b8a57615b7a8183610966565b616903565b8061159c88616a0793610966565b386168ca565b616a26915060203d6020116115e5576115d78183610966565b38616876565b616a419192503d8087833e61150f8183610966565b90386162b1565b616a5c91503d8088833e61150f8183610966565b38616265565b60205460405163348051d760e11b815260048101919091528590818160248160008051602061924f8339815191525afa90811561151d57616aae916114ea918491616b8a575b50615dd0565b5060405163348051d760e11b81526000600482018190528160248160008051602061924f8339815191525afa90811561151d57600091616b6f575b50604051632b65311f60e11b81526000600482018190528180602481015b038160008051602061924f8339815191525afa801561151d57616b4e92616b3692600092616b52575b50615e39565b60405162461bcd60e51b815291829160048301610575565b0390fd5b616b689192503d806000833e61150f8183610966565b9084616b30565b616b8491503d806000833e61150f8183610966565b81616ae9565b616b9e91503d8086833e61150f8183610966565b84616aa8565b6001600160a01b03811695949093909290919086156173e95760205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d576000916173ce575b50604051632b65311f60e11b81526001600160a01b038716600482015260008160248160008051602061924f8339815191525afa801561151d57616c4a926114ea926000926173b85750615f81565b6001600160a01b038116801515806173af575b6171ab575b50604080516001600160a01b039097166020880152616cae9190616c9390889081015b03601f198101895288610966565b616c9b6109b4565b9687526001600160a01b03166020870152565b604085015260016060850152608084015260a083015260205460405163348051d760e11b815260048101919091526000818060248101038160008051602061924f8339815191525afa90811561151d57600091617190575b50604051632b65311f60e11b81526001600160a01b038316600482015260008160248160008051602061924f8339815191525afa801561151d57616d6391600091617175575b506000604051614823816141f48960208301616063565b038160008051602061924f8339815191525afa90811561151d57616d92936114ea9360009361715f5750616074565b601f54600490602090616db09060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617140575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d5761712b575b5060008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57617116575b50601f54616e899060081c6001600160a01b0316611338565b91823b1561025657616eb59260009283604051809681958294632095dedb60e01b845260048401616117565b03925af19081617101575b50616f355750616ece611d28565b60205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa91821561151d57610573926114ea92600091616f1a575b506161a2565b616f2f91503d806000833e61150f8183610966565b38616f14565b60405163064554e960e21b8152906000826004818360008051602061924f8339815191525af191821561151d576000926170e6575b5060005b82518110156170e15781616f8a61133860406149e085886145d1565b14616f98575b600101616f6e565b60205460405163348051d760e11b8152600481019190915290939060008160248160008051602061924f8339815191525afa90811561151d57616fe6916114ea916000916170ce5750616139565b616ffa60006147be60406149e088886145d1565b038160008051602061924f8339815191525afa801561151d5761702791600091614be35750614aae61464e565b61703860006020614ac487876145d1565b038160008051602061924f8339815191525afa801561151d5761706591600091614bca5750614aae614676565b60005b61707285856145d1565b5151518110156170c757806000614b4161709093614b3a89896145d1565b038160008051602061924f8339815191525afa91821561151d576001926170c191600091614ba85750614b9361469b565b01617068565b5092616f90565b616761913d8091833e61150f8183610966565b505050565b6170fa91923d8091833e614c2f8183610966565b9038616f6a565b8061159c600061711093610966565b38616ec0565b8061159c600061712593610966565b38616e70565b8061159c600061713a93610966565b38616e2a565b617159915060203d6020116115e5576115d78183610966565b38616dd3565b6167fb9193503d806000833e61150f8183610966565b61718a91503d806000833e61150f8183610966565b38616d4c565b6171a591503d806000833e61150f8183610966565b38616d06565b601f549091906004906020906171cc9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617390575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03821660048201526000816024818360008051602061924f8339815191525af1801561151d5761737b575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018590526020816044816000885af1801561151d5761735e575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57617349575b5060405163a9059cbb60e01b81526001600160a01b03871660048201526024810184905291602090839060449082906000905af1801561151d57616c8597616cae93616c939261732a575b5097505090616c62565b6173429060203d602011615b8a57615b7a8183610966565b5038617320565b8061159c600061735893610966565b386172d5565b6173769060203d602011615b8a57615b7a8183610966565b61727e565b8061159c600061738a93610966565b38617244565b6173a9915060203d6020116115e5576115d78183610966565b386171ef565b50821515616c5d565b616a419192503d806000833e61150f8183610966565b6173e391503d806000833e61150f8183610966565b38616bfb565b95509250505060205460405163348051d760e11b81526000818061741585600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57617444916114ea916000916178735750615dd0565b6001600160a01b038416908115158061786a575b156177e15760405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d576000916177c6575b5060405163348051d760e11b8152600481018490529460008660248160008051602061924f8339815191525afa95861561151d576000966177a3575b50604051632b65311f60e11b81526001600160a01b03909116600482015260008180602481015b038160008051602061924f8339815191525afa90811561151d57600091617788575b50604051632b65311f60e11b81526001600160a01b03861660048201529060008260248160008051602061924f8339815191525afa90811561151d57600497617572946114ea9460009461776b575b50615eba565b601f5460209061758d9060081c6001600160a01b0316611338565b6040516313917f7760e11b815295869182905afa93841561151d5760009461774a575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03851660048201526000816024818360008051602061924f8339815191525af1801561151d57617735575b506040516311f9fbc960e21b81526001600160a01b0385166004820152602481018390526020816044816000865af1801561151d57617718575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039490941660048501526000846024818360008051602061924f8339815191525af192831561151d576176d794602094617703575b5060405163a9059cbb60e01b81526001600160a01b03909116600482015260248101929092529092839190829060009082906044820190565b03925af1801561151d576176e85750565b6177009060203d602011615b8a57615b7a8183610966565b50565b8061159c600061771293610966565b3861769e565b6177309060203d602011615b8a57615b7a8183610966565b61763f565b8061159c600061774493610966565b38617605565b61776491945060203d6020116115e5576115d78183610966565b92386175b0565b6177819194503d806000833e61150f8183610966565b923861756c565b61779d91503d806000833e61150f8183610966565b3861751d565b6174fb9196506177be6000913d8084833e61150f8183610966565b9691506174d4565b6177db91503d806000833e61150f8183610966565b38617498565b60405163348051d760e11b8152600481018490528560008260248160008051602061924f8339815191525afa91821561151d57600092617847575b50604051632b65311f60e11b81526001600160a01b0390911660048201526000818060248101616b07565b616b079192506178626000913d8084833e61150f8183610966565b92915061781c565b50821515617458565b61788891503d806000833e61150f8183610966565b38616aa8565b6001600160a01b03811695949093909290919086156173e95760205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d57600091617fcc575b50604051632b65311f60e11b81526001600160a01b038716600482015260008160248160008051602061924f8339815191525afa801561151d57617934926114ea926000926173b85750615f81565b6001600160a01b03811680151580617fc3575b617dbf575b50604080516001600160a01b0390971660208801526179739190616c939088908101616c85565b604085015260006060850152608084015260a083015260205460405163348051d760e11b815260048101919091526000818060248101038160008051602061924f8339815191525afa90811561151d57600091617da4575b50604051632b65311f60e11b81526001600160a01b038316600482015260008160248160008051602061924f8339815191525afa801561151d57617a279160009161717557506000604051614823816141f48960208301616063565b038160008051602061924f8339815191525afa90811561151d57617a56936114ea9360009361715f5750616074565b601f54600490602090617a749060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617d85575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57617d70575b5060008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57617d5b575b50601f54617b4d9060081c6001600160a01b0316611338565b91823b1561025657617b799260009283604051809681958294632095dedb60e01b845260048401616117565b03925af19081617d46575b50617b925750616ece611d28565b60405163064554e960e21b8152906000826004818360008051602061924f8339815191525af191821561151d57600092617d2b575b5060005b82518110156170e15781617be761133860406149e085886145d1565b14617bf5575b600101617bcb565b60205460405163348051d760e11b8152600481019190915290939060008160248160008051602061924f8339815191525afa90811561151d57617c43916114ea916000916170ce5750616139565b617c5760006147be60406149e088886145d1565b038160008051602061924f8339815191525afa801561151d57617c8491600091614be35750614aae61464e565b617c9560006020614ac487876145d1565b038160008051602061924f8339815191525afa801561151d57617cc291600091614bca5750614aae614676565b60005b617ccf85856145d1565b515151811015617d2457806000614b41617ced93614b3a89896145d1565b038160008051602061924f8339815191525afa91821561151d57600192617d1e91600091614ba85750614b9361469b565b01617cc5565b5092617bed565b617d3f91923d8091833e614c2f8183610966565b9038617bc7565b8061159c6000617d5593610966565b38617b84565b8061159c6000617d6a93610966565b38617b34565b8061159c6000617d7f93610966565b38617aee565b617d9e915060203d6020116115e5576115d78183610966565b38617a97565b617db991503d806000833e61150f8183610966565b386179cb565b601f54909190600490602090617de09060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617fa4575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03821660048201526000816024818360008051602061924f8339815191525af1801561151d57617f8f575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018590526020816044816000885af1801561151d57617f72575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57617f5d575b5060405163a9059cbb60e01b81526001600160a01b03871660048201526024810184905291602090839060449082906000905af1801561151d57616c859761797393616c9392617f3e575b509750509061794c565b617f569060203d602011615b8a57615b7a8183610966565b5038617f34565b8061159c6000617f6c93610966565b38617ee9565b617f8a9060203d602011615b8a57615b7a8183610966565b617e92565b8061159c6000617f9e93610966565b38617e58565b617fbd915060203d6020116115e5576115d78183610966565b38617e03565b50821515617947565b617fe191503d806000833e61150f8183610966565b386178e5565b600080916020815191016a636f6e736f6c652e6c6f675afa50565b614202618034916141f461057394604051948593634b5c427760e01b60208601526040602486015260648501906103bc565b838103602319016044850152906103bc565b6141f4610573946180936142029461807c96604051978896635ab84e1f60e01b60208901526080602489015260a48801906103bc565b9160448701526023198683030160648701526103bc565b838103602319016084850152906103bc565b156180ac57565b60405162461bcd60e51b8152602060048201526016602482015275155b9a5cddd85c081c9bdd5d195c881b9bdd081cd95d60521b6044820152606490fd5b156180f157565b60405162461bcd60e51b815260206004820152600d60248201526c15d6915510481b9bdd081cd95d609a1b6044820152606490fd5b604051608091906181378382610966565b6003815291601f1901366020840137565b604051606091906181598382610966565b6002815291601f1901366020840137565b602081830312610256578051906001600160401b03821161025657019080601f8301121561025657815161819d81611712565b926181ab6040519485610966565b81845260208085019260051b82010192831161025657602001905b8282106181d35750505090565b81518152602091820191016181c6565b919260809361820892979695978452602084015260a0604084015260a0830190610284565b6001600160a01b0390951660608201520152565b6040519061822b604083610966565b600282526134b760f11b6020830152565b6001600791601a61057394969560296040519889946802db1b430b4b724b2160bd1b6020870152618276815180926020868a019101610399565b85017f5d205b494e464f5d2053776170207375636365737366756c3a20000000000000838201526182b1825180936020604385019101610399565b0101600160fd1b838201526182d0825180936020601b85019101610399565b010166081b995959195960ca1b838201520301601819810185520183610966565b601f6105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526183278151809260208688019101610399565b83017f5d205b4552524f525d20556e69737761702073776170206661696c65643a200083820152611dd8825180936020604885019101610399565b60255493946001600160a01b0390941693909291906183828515156180a5565b6026546183a29061839b906001600160a01b0316611338565b15156180ea565b60405163095ea7b360e01b81526001600160a01b039586166004820152602481018790529484169460208160448160008a5af1801561151d5761869b575b5060006183eb618126565b91618408866183f98561459f565b6001600160a01b039091169052565b602654618422906001600160a01b03165b6183f9856145b1565b61842f846183f9856145c1565b61843842615439565b60255490939061845290611338906001600160a01b031681565b90838a61847660405197889687958694634401edf760e11b86528d600487016181e3565b03925af1908161867a575b506184f95750505050618492611d28565b60205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa91821561151d576102d2926114ea926000916184de575b506182f1565b6184f391503d806000833e61150f8183610966565b386184d8565b60265461851991906001600160a01b0316809361851461821c565b61916f565b918251156186735761852d6185369361459f565b5161851461821c565b9081511561866e5760205460405163348051d760e11b81526004810191909152925060008360248160008051602061924f8339815191525afa90811561151d576185ae93600092618651575b50600061858e8461459f565b516040518096819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa93841561151d5760009461862f575b506000600491604051928380926306fdde0360e01b82525afa801561151d5761860e94618609936114ea93600093618612575b5061823c565b61459f565b5190565b6186289193503d806000833e61150f8183610966565b9138618603565b60049194506186496000913d8084833e61150f8183610966565b9491506185d0565b6186679192503d806000833e61150f8183610966565b9038618582565b505090565b5050505090565b618696903d806000833e61868e8183610966565b81019061816a565b618481565b6186b39060203d602011615b8a57615b7a8183610966565b6183e0565b604051906186c7604083610966565b600382526267617360e81b6020830152565b60046012929594602e610573956029604051998a966802db1b430b4b724b2160bd1b6020890152618713815180926020868c019101610399565b87017f5d205b4552524f525d2072657665727441646472657373206973207a65726f2c838201526d0103a3930b739b332b93934b733960951b6049820152618765825180936020605785019101610399565b01016301037b3160e51b83820152615f51825180936020603285019101610399565b1561878e57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b6001600160a01b03918216815291166020820152604081019190915260a06060820181905260009082015260c0608082018190526102d2929101906142d9565b6080906102d2939260018060a01b03168152606060208201526000606082015281604082015201906142d9565b93949190946060860151926188456109a5565b6001600160a01b0382168152936001600160a01b038416602086015285604086015260608501526188796020880151151590565b15618e15575060008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57618e00575b5060405163348051d760e11b81526004810186905260008160248160008051602061924f8339815191525afa90811561151d57600091618de5575b508651618917906000906001600160a01b03166147be565b038160008051602061924f8339815191525afa801561151d5761895391600091618dca575b506000604051614823816141f48a6020830161431a565b038160008051602061924f8339815191525afa90811561151d57618982936114ea93600093614c87575061432b565b600460206189a061133861143d896000526021602052604060002090565b604051635b11259160e01b815292839182905afa90811561151d57600091618dab575b5060008051602061924f8339815191523b15610256576040516303223eab60e11b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57618d96575b5015618cc85750618a3b61133861143d856000526021602052604060002090565b608085015185519192916001600160a01b0316833b156102565760405163cb7ba8e560e01b815294600094869485938491618a799160048401618805565b0393f1801561151d57618cb3575b505b60008051602061924f8339815191523b15610256576040516390c5013b60e01b81526000816004818360008051602061924f8339815191525af1801561151d57618c9e575b5060405163064554e960e21b8152916000836004818360008051602061924f8339815191525af192831561151d57600093618c83575b5060005b8351811015614c1557618b2060406149e083876145d1565b8251618b34906001600160a01b0316611338565b6001600160a01b0390911614618b4d575b600101618b08565b60405163348051d760e11b815260048101849052909491929060008160248160008051602061924f8339815191525afa90811561151d57618b99916114ea91600091614bfc57506145e5565b618bad60006147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d57618bda91600091614be35750614aae61464e565b618beb60006020614ac488886145d1565b038160008051602061924f8339815191525afa801561151d57618c1891600091614bca5750614aae614676565b60005b618c2586866145d1565b515151811015618c7a57806000614b41618c4393614b3a8a8a6145d1565b038160008051602061924f8339815191525afa91821561151d57600192618c7491600091614ba85750614b9361469b565b01618c1b565b50919093618b45565b618c9791933d8091833e614c2f8183610966565b9138618b04565b8061159c6000618cad93610966565b38618ace565b8061159c6000618cc293610966565b38618a87565b909160046020618ce861133861143d886000526021602052604060002090565b60405163dda79b7560e01b815292839182905afa90811561151d57600091618d77575b50608086015186516001600160a01b0392831694919216843b15610256576000948591618d4e60405198899788968794634cd1e1ab60e11b8652600486016187c5565b0393f1801561151d57618d62575b50618a89565b8061159c6000618d7193610966565b38618d5c565b618d90915060203d6020116115e5576115d78183610966565b38618d0b565b8061159c6000618da593610966565b38618a1a565b618dc4915060203d6020116115e5576115d78183610966565b386189c3565b618ddf91503d806000833e61150f8183610966565b3861893c565b618dfa91503d806000833e61150f8183610966565b386188ff565b8061159c6000618e0f93610966565b386188c4565b60405163348051d760e11b81526004810187905294969095929491935060008260248160008051602061924f8339815191525afa801561151d576114ea612cb491618e679460009161540e5750614207565b936001600160a01b03851615618fa8575b506020618e9761133861143d6004946000526021602052604060002090565b604051635b11259160e01b815292839182905afa90811561151d57600091618f89575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57618f74575b5015618f325750600080806105739481945af1618f2c611d28565b50618787565b60405163a9059cbb60e01b81526001600160a01b039283166004820152602481019390935260209183916044918391600091165af1801561151d576176e85750565b8061159c6000618f8393610966565b38618f11565b618fa2915060203d6020116115e5576115d78183610966565b38618eba565b60405163348051d760e11b81526004810183905291945060008260248160008051602061924f8339815191525afa91821561151d5760009261913b575b5060405163348051d760e11b8152600481018790529060008260248160008051602061924f8339815191525afa91821561151d5760009261911e575b50600084156190bc57506190336186b8565b604051632b65311f60e11b81526001600160a01b03831660048201529260008460248160008051602061924f8339815191525afa92831561151d576190946114ea618e97956113389561143d9560049a60209a60009461909f575b506186d9565b979450505050618e78565b6190b59194503d806000833e61150f8183610966565b923861908e565b604051632b65311f60e11b81526001600160a01b0387166004820152818160248160008051602061924f8339815191525afa91821561151d578092619103575b5050619033565b61911792503d8091833e61150f8183610966565b38806190fc565b6191349192503d806000833e61150f8183610966565b9038619021565b6191519192503d806000833e61150f8183610966565b9038618fe5565b6040906102d2939281528160208201520190610284565b90919261918b90618419619181618148565b956183f98761459f565b6020815191012061919a61821c565b6020815191012014600014619211576025546191e69260009290916191c990611338906001600160a01b031681565b906040518095819482936307c0329d60e21b845260048401619158565b03915afa90811561151d576000916191fc575090565b6102d291503d806000833e61868e8183610966565b6025546191e692600092909161923190611338906001600160a01b031681565b9060405180958194829363d06ca61f60e01b84526004840161915856fe0000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da26469706673582212201fce51ed1ff9d0f5f4ea6ac5dba002558bc8864b5d87779ba4c2fa367c0a470364736f6c634300081a003360c034608d57601f61094c38819003918201601f19168301916001600160401b038311848410176092578084926040948552833981010312608d57604b602060458360a8565b920160a8565b9060805260a05260405161089090816100bc8239608051818181603d015261012d015260a0518181816084015281816106960152818161074e01526107db0152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203608d5756fe6080604052600436106101185760003560e01c8063ced52b40146100715763d9d2f07403610118573461006c57600036600319011261006c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b600080fd5b3461006c57600036600319011261006c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b600091031261006c57565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b038211176100f857604052565b6100c1565b6001600160401b0381116100f857601f01601f191660200190565b600080604051368282378036810183815203907f00000000000000000000000000000000000000000000000000000000000000005af43d156101d3573d9061015f826100fd565b9161016d60405193846100d7565b82523d6000602084013e5b1561018e576101863661065f565b602081519101f35b60405162461bcd60e51b815260206004820152601f60248201527f476174657761795a45564d2064656c656761746563616c6c206661696c6564006044820152606490fd5b606090610178565b909291928360041161006c57831161006c57600401916003190190565b81601f8201121561006c5780359061020f826100fd565b9261021d60405194856100d7565b8284526020838301011161006c57816000926020809301838601378301015290565b6001600160a01b0381160361006c57565b3590811515820361006c57565b919082604091031261006c57604051604081018181106001600160401b038211176100f85760405260206102978183958035855201610250565b910152565b91909160a08184031261006c576040519060a082018281106001600160401b038211176100f857604052819381356102d38161023f565b83526102e160208301610250565b602084015260408201356102f48161023f565b60408401526060820135916001600160401b03831161006c5761031d60809392849383016101f8565b60608501520135910152565b9160e08383031261006c5782356001600160401b03811161006c57826103509185016101f8565b9260208101359260408201356103658161023f565b9260608301356001600160401b03811161006c57826103859185016101f8565b92610393836080830161025d565b9260c08201356001600160401b03811161006c576103b1920161029c565b90565b919082519283825260005b8481106103e0575050826000602080949584010152601f8019910116010190565b806020809284010151828286010152016103bf565b9060018060a01b03825116815260208201511515602082015260018060a01b03604083015116604082015260808061043c606085015160a0606086015260a08501906103b4565b93015191015290565b93946103b19795610475610498946104ae969460018060a01b0316885261010060208901526101008801906103b4565b60408701939093526001600160a01b0316606086015284820360808601526103b4565b845160a0840152602090940151151560c0830152565b60e08184039101526103f5565b6040513d6000823e3d90fd5b9060808282031261006c5781356001600160401b03811161006c57816104ee9184016101f8565b9260208301359260408101356105038161023f565b9260608201356001600160401b03811161006c576103b1920161029c565b6001600160a01b03909116815260a0602082018190526103b1959394919261054b918401906103b4565b60408301949094526001600160a01b031660608201528083036080909101526103f5565b91909160c08184031261006c5780356001600160401b03811161006c57836105989183016101f8565b9260208201356105a78161023f565b9260408301356001600160401b03811161006c57826105c79185016101f8565b926105d5836060830161025d565b9260a08201356001600160401b03811161006c576103b1920161029c565b926103b1969461061f6106529461063c9460018060a01b0316875260e0602088015260e08701906103b4565b6001600160a01b03909216604086015284820360608601526103b4565b84516080840152602090940151151560a0830152565b60c08184039101526103f5565b6000356001600160e01b0319166306cb898360e01b8103610723575061068a816106929260006101db565b81019061056f565b90937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561006c576000946106f5869260405198899788968795632c612e1f60e21b875260018060a01b03169033600488016105f3565b03925af1801561071e57610707575b50565b80610716600061071c936100d7565b806100b6565b565b6104bb565b637c0dcb5f60e01b81036107ac5750610741816107499260006101db565b8101906104c7565b9290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b1561006c57600080946106f5604051978896879586946308327f7960e41b865260018060a01b0316913360048701610521565b637b15118b60e01b146107bc5750565b6107cb816107d39260006101db565b810190610329565b9194909390927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169290833b1561006c5761083c600096928793604051998a988997889663567ee10960e11b885260018060a01b0316913360048901610445565b03925af1801561071e57156107045780610716600061071c936100d756fea2646970667358221220c3b911f522f83c8ee9102b4245bed2a13c90092e91b0140cf5e5b3a0b9aa0c6f64736f6c634300081a00330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da26469706673582212203f694ab51e5f913424b6717e51b1a640475332aae62978b7605f0d4ee97dccf764736f6c634300081a0033"; - -type ZetaSetupConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: ZetaSetupConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class ZetaSetup__factory extends ContractFactory { - constructor(...args: ZetaSetupConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - _deployer: AddressLike, - _fungibleModuleAddress: AddressLike, - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction( - _deployer, - _fungibleModuleAddress, - overrides || {} - ); - } - override deploy( - _deployer: AddressLike, - _fungibleModuleAddress: AddressLike, - overrides?: NonPayableOverrides & { from?: string } - ) { - return super.deploy( - _deployer, - _fungibleModuleAddress, - overrides || {} - ) as Promise< - ZetaSetup & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): ZetaSetup__factory { - return super.connect(runner) as ZetaSetup__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): ZetaSetupInterface { - return new Interface(_abi) as ZetaSetupInterface; - } - static connect(address: string, runner?: ContractRunner | null): ZetaSetup { - return new Contract(address, _abi, runner) as unknown as ZetaSetup; - } -} diff --git a/typechain-types/factories/contracts/testing/ZetaSetup.t.sol/index.ts b/typechain-types/factories/contracts/testing/ZetaSetup.t.sol/index.ts deleted file mode 100644 index d5842d93..00000000 --- a/typechain-types/factories/contracts/testing/ZetaSetup.t.sol/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { ZetaSetup__factory } from "./ZetaSetup__factory"; diff --git a/typechain-types/factories/contracts/testing/index.ts b/typechain-types/factories/contracts/testing/index.ts deleted file mode 100644 index 5dde307f..00000000 --- a/typechain-types/factories/contracts/testing/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as evmSetupTSol from "./EVMSetup.t.sol"; -export * as foundrySetupTSol from "./FoundrySetup.t.sol"; -export * as tokenSetupTSol from "./TokenSetup.t.sol"; -export * as uniswapV2SetupLibSol from "./UniswapV2SetupLib.sol"; -export * as uniswapV3SetupLibSol from "./UniswapV3SetupLib.sol"; -export * as zetaSetupTSol from "./ZetaSetup.t.sol"; -export * as mock from "./mock"; -export * as mockGateway from "./mockGateway"; diff --git a/typechain-types/factories/contracts/testing/mock/ERC20Mock__factory.ts b/typechain-types/factories/contracts/testing/mock/ERC20Mock__factory.ts deleted file mode 100644 index 127e2b0a..00000000 --- a/typechain-types/factories/contracts/testing/mock/ERC20Mock__factory.ts +++ /dev/null @@ -1,430 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; -import type { NonPayableOverrides } from "../../../../common"; -import type { - ERC20Mock, - ERC20MockInterface, -} from "../../../../contracts/testing/mock/ERC20Mock"; - -const _abi = [ - { - inputs: [ - { - internalType: "string", - name: "name_", - type: "string", - }, - { - internalType: "string", - name: "symbol_", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "allowance", - type: "uint256", - }, - { - internalType: "uint256", - name: "needed", - type: "uint256", - }, - ], - name: "ERC20InsufficientAllowance", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "uint256", - name: "balance", - type: "uint256", - }, - { - internalType: "uint256", - name: "needed", - type: "uint256", - }, - ], - name: "ERC20InsufficientBalance", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "approver", - type: "address", - }, - ], - name: "ERC20InvalidApprover", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - ], - name: "ERC20InvalidReceiver", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "ERC20InvalidSender", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "ERC20InvalidSpender", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "spender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "burn", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "decimals", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "mint", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "name", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "symbol", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -const _bytecode = - "0x60806040523461032457610b598038038061001981610329565b9283398101906040818303126103245780516001600160401b038111610324578261004591830161034e565b60208201519092906001600160401b03811161032457610065920161034e565b81516001600160401b03811161022f57600354600181811c9116801561031a575b602082101461020f57601f81116102b5575b50602092601f82116001146102505792819293600092610245575b50508160011b916000199060031b1c1916176003555b80516001600160401b03811161022f57600454600181811c91168015610225575b602082101461020f57601f81116101aa575b50602091601f82116001146101465791819260009261013b575b50508160011b916000199060031b1c1916176004555b60405161079f90816103ba8239f35b015190503880610116565b601f198216926004600052806000209160005b85811061019257508360019510610179575b505050811b0160045561012c565b015160001960f88460031b161c1916905538808061016b565b91926020600181928685015181550194019201610159565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c81019160208410610205575b601f0160051c01905b8181106101f957506100fc565b600081556001016101ec565b90915081906101e3565b634e487b7160e01b600052602260045260246000fd5b90607f16906100ea565b634e487b7160e01b600052604160045260246000fd5b0151905038806100b3565b601f198216936003600052806000209160005b86811061029d5750836001959610610284575b505050811b016003556100c9565b015160001960f88460031b161c19169055388080610276565b91926020600181928685015181550194019201610263565b60036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c81019160208410610310575b601f0160051c01905b8181106103045750610098565b600081556001016102f7565b90915081906102ee565b90607f1690610086565b600080fd5b6040519190601f01601f191682016001600160401b0381118382101761022f57604052565b81601f82011215610324578051906001600160401b03821161022f5761037d601f8301601f1916602001610329565b92828452602083830101116103245760005b8281106103a457505060206000918301015290565b8060208092840101518282870101520161038f56fe608080604052600436101561001357600080fd5b60003560e01c90816306fdde031461058857508063095ea7b31461050257806318160ddd146104e457806323b872dd146103f7578063313ce567146103db57806340c10f191461032f57806370a08231146102f557806395d89b41146101d45780639dc29fac1461011f578063a9059cbb146100ee5763dd62ed3e1461009857600080fd5b346100e95760403660031901126100e9576100b16106a4565b6100b96106ba565b6001600160a01b039182166000908152600160209081526040808320949093168252928352819020549051908152f35b600080fd5b346100e95760403660031901126100e95761011461010a6106a4565b60243590336106d0565b602060405160018152f35b346100e95760403660031901126100e9576101386106a4565b6001600160a01b031660243581156101be576000908282528160205260408220548181106101a65760208285937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93869787528684520360408620558060025403600255604051908152a380f35b60649363391434e360e21b8452600452602452604452fd5b634b637e8f60e11b600052600060045260246000fd5b346100e95760003660031901126100e95760405160006004548060011c906001811680156102eb575b6020831081146102d7578285529081156102bb5750600114610264575b50819003601f01601f191681019067ffffffffffffffff82118183101761024e5761024a8291826040528261065b565b0390f35b634e487b7160e01b600052604160045260246000fd5b905060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b6000905b8282106102a55750602091508201018261021a565b6001816020925483858801015201910190610290565b90506020925060ff191682840152151560051b8201018261021a565b634e487b7160e01b84526022600452602484fd5b91607f16916101fd565b346100e95760203660031901126100e9576001600160a01b036103166106a4565b1660005260006020526020604060002054604051908152f35b346100e95760403660031901126100e9576103486106a4565b602435906001600160a01b031680156103c557600254918083018093116103af576020926002557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600093849284845283825260408420818154019055604051908152a380f35b634e487b7160e01b600052601160045260246000fd5b63ec442f0560e01b600052600060045260246000fd5b346100e95760003660031901126100e957602060405160128152f35b346100e95760603660031901126100e9576104106106a4565b6104186106ba565b6001600160a01b0382166000818152600160209081526040808320338452909152902054909260443592916000198110610458575b5061011493506106d0565b8381106104c75784156104b157331561049b57610114946000526001602052604060002060018060a01b033316600052602052836040600020910390558461044d565b634a1406b160e11b600052600060045260246000fd5b63e602df0560e01b600052600060045260246000fd5b8390637dc7a0d960e11b6000523360045260245260445260646000fd5b346100e95760003660031901126100e9576020600254604051908152f35b346100e95760403660031901126100e95761051b6106a4565b6024359033156104b1576001600160a01b031690811561049b57336000526001602052604060002082600052602052806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346100e95760003660031901126100e95760006003548060011c90600181168015610651575b6020831081146102d7578285529081156102bb57506001146105fa5750819003601f01601f191681019067ffffffffffffffff82118183101761024e5761024a8291826040528261065b565b905060036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b6000905b82821061063b5750602091508201018261021a565b6001816020925483858801015201910190610626565b91607f16916105ae565b91909160208152825180602083015260005b81811061068e575060409293506000838284010152601f8019910116010190565b806020809287010151604082860101520161066d565b600435906001600160a01b03821682036100e957565b602435906001600160a01b03821682036100e957565b6001600160a01b03169081156101be576001600160a01b03169182156103c557600082815280602052604081205482811061074f5791604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815280845220818154019055604051908152a3565b916064928463391434e360e21b8452600452602452604452fdfea2646970667358221220244a0a20c657fff7862703acb5cfe7ea7d2b0fc51d1a41b0a338be948dd8f1cf64736f6c634300081a0033"; - -type ERC20MockConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: ERC20MockConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class ERC20Mock__factory extends ContractFactory { - constructor(...args: ERC20MockConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - name_: string, - symbol_: string, - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(name_, symbol_, overrides || {}); - } - override deploy( - name_: string, - symbol_: string, - overrides?: NonPayableOverrides & { from?: string } - ) { - return super.deploy(name_, symbol_, overrides || {}) as Promise< - ERC20Mock & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): ERC20Mock__factory { - return super.connect(runner) as ERC20Mock__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): ERC20MockInterface { - return new Interface(_abi) as ERC20MockInterface; - } - static connect(address: string, runner?: ContractRunner | null): ERC20Mock { - return new Contract(address, _abi, runner) as unknown as ERC20Mock; - } -} diff --git a/typechain-types/factories/contracts/testing/mock/ZRC20Mock.sol/IZRC20Mock__factory.ts b/typechain-types/factories/contracts/testing/mock/ZRC20Mock.sol/IZRC20Mock__factory.ts deleted file mode 100644 index 51996bef..00000000 --- a/typechain-types/factories/contracts/testing/mock/ZRC20Mock.sol/IZRC20Mock__factory.ts +++ /dev/null @@ -1,352 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IZRC20Mock, - IZRC20MockInterface, -} from "../../../../../contracts/testing/mock/ZRC20Mock.sol/IZRC20Mock"; - -const _abi = [ - { - inputs: [], - name: "GAS_LIMIT", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "PROTOCOL_FLAT_FEE", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "burn", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "burn", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "deposit", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "mint", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "newName", - type: "string", - }, - ], - name: "setName", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "newSymbol", - type: "string", - }, - ], - name: "setSymbol", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "recipient", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "recipient", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "to", - type: "bytes", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "withdraw", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "withdrawGasFee", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "gasLimit", - type: "uint256", - }, - ], - name: "withdrawGasFeeWithGasLimit", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -export class IZRC20Mock__factory { - static readonly abi = _abi; - static createInterface(): IZRC20MockInterface { - return new Interface(_abi) as IZRC20MockInterface; - } - static connect(address: string, runner?: ContractRunner | null): IZRC20Mock { - return new Contract(address, _abi, runner) as unknown as IZRC20Mock; - } -} diff --git a/typechain-types/factories/contracts/testing/mock/ZRC20Mock.sol/ZRC20Mock__factory.ts b/typechain-types/factories/contracts/testing/mock/ZRC20Mock.sol/ZRC20Mock__factory.ts deleted file mode 100644 index ba755827..00000000 --- a/typechain-types/factories/contracts/testing/mock/ZRC20Mock.sol/ZRC20Mock__factory.ts +++ /dev/null @@ -1,844 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { - Signer, - BigNumberish, - AddressLike, - ContractDeployTransaction, - ContractRunner, -} from "ethers"; -import type { NonPayableOverrides } from "../../../../../common"; -import type { - ZRC20Mock, - ZRC20MockInterface, -} from "../../../../../contracts/testing/mock/ZRC20Mock.sol/ZRC20Mock"; - -const _abi = [ - { - inputs: [ - { - internalType: "string", - name: "name_", - type: "string", - }, - { - internalType: "string", - name: "symbol_", - type: "string", - }, - { - internalType: "uint8", - name: "decimals_", - type: "uint8", - }, - { - internalType: "uint256", - name: "chainid_", - type: "uint256", - }, - { - internalType: "enum CoinType", - name: "coinType_", - type: "uint8", - }, - { - internalType: "uint256", - name: "gasLimit_", - type: "uint256", - }, - { - internalType: "address", - name: "systemContractAddress_", - type: "address", - }, - { - internalType: "address", - name: "gatewayAddress_", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [], - name: "CallerIsNotFungibleModule", - type: "error", - }, - { - inputs: [], - name: "GasFeeTransferFailed", - type: "error", - }, - { - inputs: [], - name: "InvalidSender", - type: "error", - }, - { - inputs: [], - name: "LowAllowance", - type: "error", - }, - { - inputs: [], - name: "LowBalance", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, - { - inputs: [], - name: "ZeroGasCoin", - type: "error", - }, - { - inputs: [], - name: "ZeroGasPrice", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "spender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "from", - type: "bytes", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Deposit", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "gasLimit", - type: "uint256", - }, - ], - name: "UpdatedGasLimit", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "gateway", - type: "address", - }, - ], - name: "UpdatedGateway", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "protocolFlatFee", - type: "uint256", - }, - ], - name: "UpdatedProtocolFlatFee", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "systemContract", - type: "address", - }, - ], - name: "UpdatedSystemContract", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "to", - type: "bytes", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "gasFee", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "protocolFlatFee", - type: "uint256", - }, - ], - name: "Withdrawal", - type: "event", - }, - { - inputs: [], - name: "CHAIN_ID", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "COIN_TYPE", - outputs: [ - { - internalType: "enum CoinType", - name: "", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "FUNGIBLE_MODULE_ADDRESS", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "GAS_LIMIT", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "PROTOCOL_FLAT_FEE", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "SYSTEM_CONTRACT_ADDRESS", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "burn", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "burn", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "decimals", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "deposit", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "gatewayAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "mint", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "name", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "newName", - type: "string", - }, - ], - name: "setName", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "newSymbol", - type: "string", - }, - ], - name: "setSymbol", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "symbol", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "recipient", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "recipient", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "gasLimit_", - type: "uint256", - }, - ], - name: "updateGasLimit", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - ], - name: "updateGatewayAddress", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "protocolFlatFee_", - type: "uint256", - }, - ], - name: "updateProtocolFlatFee", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - ], - name: "updateSystemContractAddress", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "to", - type: "bytes", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "withdraw", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "withdrawGasFee", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "gasLimit", - type: "uint256", - }, - ], - name: "withdrawGasFeeWithGasLimit", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -const _bytecode = - "0x60c06040523461041a576118e5803803806100198161041f565b92833981016101008282031261041a5781516001600160401b03811161041a5781610045918401610444565b602083015190916001600160401b03821161041a57610065918401610444565b9160408101519160ff831680930361041a576060820151936080830151600381101561041a5760a0840151916100a960e06100a260c088016104af565b96016104af565b946001600160a01b03169384158015610409575b6103f8578051906001600160401b0382116102f55760065490600182811c921680156103ee575b60208310146102d55781601f84931161037e575b50602090601f83116001146103165760009261030b575b50508160011b916000199060031b1c1916176006555b8051906001600160401b0382116102f55760075490600182811c921680156102eb575b60208310146102d55781601f849311610265575b50602090601f83116001146101fd576000926101f2575b50508160011b916000199060031b1c1916176007555b6008549560805260a05260015560018060a01b03196000541617600055610100600160a81b039060081b169160018060a81b031916171760085560405161142190816104c4823960805181818161018101528181610b7b01526110d8015260a051816109fa0152f35b015190503880610173565b600760009081528281209350601f198516905b81811061024d5750908460019594939210610234575b505050811b01600755610189565b015160001960f88460031b161c19169055388080610226565b92936020600181928786015181550195019301610210565b60076000529091507fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688601f840160051c810191602085106102cb575b90601f859493920160051c01905b8181106102bc575061015c565b600081558493506001016102af565b90915081906102a1565b634e487b7160e01b600052602260045260246000fd5b91607f1691610148565b634e487b7160e01b600052604160045260246000fd5b01519050388061010f565b600660009081528281209350601f198516905b818110610366575090846001959493921061034d575b505050811b01600655610125565b015160001960f88460031b161c1916905538808061033f565b92936020600181928786015181550195019301610329565b60066000529091507ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f601f840160051c810191602085106103e4575b90601f859493920160051c01905b8181106103d557506100f8565b600081558493506001016103c8565b90915081906103ba565b91607f16916100e4565b63d92e233d60e01b60005260046000fd5b506001600160a01b038616156100bd565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176102f557604052565b81601f8201121561041a578051906001600160401b0382116102f557610473601f8301601f191660200161041f565b928284526020838301011161041a5760005b82811061049a57505060206000918301015290565b80602080928401015182828701015201610485565b51906001600160a01b038216820361041a5756fe608080604052600436101561001357600080fd5b60003560e01c90816306fdde0314610e8157508063091d278814610e63578063095ea7b314610e3d57806318160ddd14610e1f57806323b872dd14610d9e578063313ce56714610d7d5780633ce4a5bc14610d4e57806340c10f1914610d2957806342966c6814610d0c57806347e7ef2414610bf65780634d8943bb14610bd857806370a0823114610b9e57806385e1f4d014610b635780638b851b9514610b3957806395d89b4114610a695780639dc29fac14610a42578063a3413d03146109e7578063a9059cbb146109b6578063b84c824614610851578063c47f0027146106d6578063c701262614610574578063c835d7cc146104eb578063ccc7759914610445578063d9eeebed1461042c578063dd62ed3e146103db578063eddeb1231461037b578063f2441b3214610352578063f687d12a146102e15763fc5fecd51461015e57600080fd5b346102dc5760203660031901126102dc57600054604051630be1554760e01b81527f00000000000000000000000000000000000000000000000000000000000000006004820181905290916001600160a01b031690602083602481855afa92831561028e576000936102ab575b506001600160a01b0383161561029a5760209060246040518094819363d7fd7afb60e01b835260048301525afa90811561028e57600091610259575b5080156102485761021e61022791600435906110a6565b600254906110b9565b604080516001600160a01b03939093168352602083019190915290f35b0390f35b630e661aed60e41b60005260046000fd5b906020823d602011610286575b8161027360209383610f82565b8101031261028357505138610207565b80fd5b3d9150610266565b6040513d6000823e3d90fd5b633c7ff9cb60e11b60005260046000fd5b6102ce91935060203d6020116102d5575b6102c68183610f82565b810190611087565b91386101cb565b503d6102bc565b600080fd5b346102dc5760203660031901126102dc5760043573735b14bb79463307aacbed86daf3322b1e6226ab3303610341576020817fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a92600155604051908152a1005b632b2add3d60e01b60005260046000fd5b346102dc5760003660031901126102dc576000546040516001600160a01b039091168152602090f35b346102dc5760203660031901126102dc5760043573735b14bb79463307aacbed86daf3322b1e6226ab3303610341576020817fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f92600255604051908152a1005b346102dc5760403660031901126102dc576103f4610f56565b6103fc610f6c565b6001600160a01b039182166000908152600460209081526040808320949093168252928352819020549051908152f35b346102dc5760003660031901126102dc576102276110c6565b346102dc5760203660031901126102dc5761045e610f56565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610341576001600160a01b0381169081156104da5760088054610100600160a81b03191691811b610100600160a81b03169190911790556040519081527f88815d964e380677e86d817e7d65dea59cb7b4c3b5b7a0c8ec7ea4a74f90a38790602090a1005b63d92e233d60e01b60005260046000fd5b346102dc5760203660031901126102dc57610504610f56565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610341576001600160a01b031680156104da576020817fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae926bffffffffffffffffffffffff60a01b6000541617600055604051908152a1005b346102dc5760403660031901126102dc5760043567ffffffffffffffff81116102dc57366023820112156102dc576105b6903690602481600401359101610fa4565b60206024359160006105c66110c6565b93906064604051809481936323b872dd60e01b835233600484015273735b14bb79463307aacbed86daf3322b1e6226ab602484015288604484015260018060a01b03165af190811561028e57600091610697575b5015610686577f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d9559161064c8433611331565b6002549061066560405193608085526080850190610f15565b946020840152604083015260608201528033930390a2602060405160018152f35b63053e6b6b60e11b60005260046000fd5b6020813d6020116106ce575b816106b060209383610f82565b810103126106ca575190811515820361028357508461061a565b5080fd5b3d91506106a3565b346102dc576106e436610feb565b73735b14bb79463307aacbed86daf3322b1e6226ab330361034157805167ffffffffffffffff811161083b5761071b60065461102a565b601f81116107ce575b50602091601f821160011461076257918192600092610757575b5050600019600383901b1c191660019190911b17600655005b01519050828061073e565b601f1982169260066000526000805160206113cc8339815191529160005b8581106107b65750836001951061079d575b505050811b01600655005b015160001960f88460031b161c19169055828080610792565b91926020600181928685015181550194019201610780565b6006600052601f820160051c6000805160206113cc833981519152019060208310610825575b601f0160051c6000805160206113cc83398151915201905b8181106108195750610724565b6000815560010161080c565b6000805160206113cc83398151915291506107f4565b634e487b7160e01b600052604160045260246000fd5b346102dc5761085f36610feb565b73735b14bb79463307aacbed86daf3322b1e6226ab330361034157805167ffffffffffffffff811161083b5761089660075461102a565b601f8111610949575b50602091601f82116001146108dd579181926000926108d2575b5050600019600383901b1c191660019190911b17600755005b0151905082806108b9565b601f1982169260076000526000805160206113ac8339815191529160005b85811061093157508360019510610918575b505050811b01600755005b015160001960f88460031b161c1916905582808061090d565b919260206001819286850151815501940192016108fb565b6007600052601f820160051c6000805160206113ac8339815191520190602083106109a0575b601f0160051c6000805160206113ac83398151915201905b818110610994575061089f565b60008155600101610987565b6000805160206113ac833981519152915061096f565b346102dc5760403660031901126102dc576109dc6109d2610f56565b6024359033611230565b602060405160018152f35b346102dc5760003660031901126102dc577f00000000000000000000000000000000000000000000000000000000000000006040516003821015610a2c576020918152f35b634e487b7160e01b600052602160045260246000fd5b346102dc5760403660031901126102dc57610a67610a5e610f56565b60243590611331565b005b346102dc5760003660031901126102dc576040516000600754610a8b8161102a565b8084529060018116908115610b155750600114610ac7575b61024483610ab381850382610f82565b604051918291602083526020830190610f15565b91905060076000526000805160206113ac833981519152916000905b808210610afb57509091508101602001610ab3610aa3565b919260018160209254838588010152019101909291610ae3565b60ff191660208086019190915291151560051b84019091019150610ab39050610aa3565b346102dc5760003660031901126102dc5760088054604051911c6001600160a01b03168152602090f35b346102dc5760003660031901126102dc5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346102dc5760203660031901126102dc576001600160a01b03610bbf610f56565b1660005260036020526020604060002054604051908152f35b346102dc5760003660031901126102dc576020600254604051908152f35b346102dc5760403660031901126102dc57610c0f610f56565b6024359073735b14bb79463307aacbed86daf3322b1e6226ab33141580610cf7575b80610cdf575b610cce57610cae81610c6a847f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab3946112d6565b60405173735b14bb79463307aacbed86daf3322b1e6226ab60601b60208201526014815290610c9a603483610f82565b604051928392604084526040840190610f15565b60208301959095526001600160a01b0316930390a2602060405160018152f35b636edaef2f60e11b60005260046000fd5b506008805433911c6001600160a01b03161415610c37565b506000546001600160a01b0316331415610c31565b346102dc5760203660031901126102dc576109dc60043533611331565b346102dc5760403660031901126102dc57610a67610d45610f56565b602435906112d6565b346102dc5760003660031901126102dc57602060405173735b14bb79463307aacbed86daf3322b1e6226ab8152f35b346102dc5760003660031901126102dc57602060ff60085416604051908152f35b346102dc5760603660031901126102dc57610db7610f56565b610dbf610f6c565b90610dce604435809383611230565b6001600160a01b0381166000908152600460209081526040808320338452909152902054828110610e0e576109dc92610e0691611064565b9033906111c9565b6310bad14760e01b60005260046000fd5b346102dc5760003660031901126102dc576020600554604051908152f35b346102dc5760403660031901126102dc576109dc610e59610f56565b60243590336111c9565b346102dc5760003660031901126102dc576020600154604051908152f35b346102dc5760003660031901126102dc576000600654610ea08161102a565b8084529060018116908115610b155750600114610ec75761024483610ab381850382610f82565b91905060066000526000805160206113cc833981519152916000905b808210610efb57509091508101602001610ab3610aa3565b919260018160209254838588010152019101909291610ee3565b919082519283825260005b848110610f41575050826000602080949584010152601f8019910116010190565b80602080928401015182828601015201610f20565b600435906001600160a01b03821682036102dc57565b602435906001600160a01b03821682036102dc57565b90601f8019910116810190811067ffffffffffffffff82111761083b57604052565b92919267ffffffffffffffff821161083b5760405191610fce601f8201601f191660200184610f82565b8294818452818301116102dc578281602093846000960137010152565b60206003198201126102dc576004359067ffffffffffffffff82116102dc57806023830112156102dc5781602461102793600401359101610fa4565b90565b90600182811c9216801561105a575b602083101461104457565b634e487b7160e01b600052602260045260246000fd5b91607f1691611039565b9190820391821161107157565b634e487b7160e01b600052601160045260246000fd5b908160209103126102dc57516001600160a01b03811681036102dc5790565b8181029291811591840414171561107157565b9190820180921161107157565b600054604051630be1554760e01b81527f0000000000000000000000000000000000000000000000000000000000000000600482018190529092916001600160a01b031690602084602481855afa93841561028e576000946111a8575b506001600160a01b0384161561029a5760209060246040518094819363d7fd7afb60e01b835260048301525afa90811561028e57600091611176575b5080156102485761021e61102791600154906110a6565b906020823d6020116111a0575b8161119060209383610f82565b810103126102835750513861115f565b3d9150611183565b6111c291945060203d6020116102d5576102c68183610f82565b9238611123565b6001600160a01b03169081156104da576001600160a01b03169182156104da5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260048252604060002085600052825280604060002055604051908152a3565b6001600160a01b03169081156104da576001600160a01b03169182156104da578160005260036020526040600020548181106112c557816112947fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93602093611064565b8460005260038352604060002055846000526003825260406000206112ba8282546110b9565b9055604051908152a3565b63fe382aa760e01b60005260046000fd5b6001600160a01b03169081156104da577fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020826113186000946005546110b9565b60055584845260038252604084206112ba8282546110b9565b6001600160a01b031680156104da57806000526003602052604060002054918083106112c5576020816113877fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93600096611064565b84865260038352604086205561139f81600554611064565b600555604051908152a356fea66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688f652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3fa2646970667358221220143426ebea1dd98ec97cac7a50bf56d05abc5cfb38e424354c050953db17fb6764736f6c634300081a0033"; - -type ZRC20MockConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: ZRC20MockConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class ZRC20Mock__factory extends ContractFactory { - constructor(...args: ZRC20MockConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - name_: string, - symbol_: string, - decimals_: BigNumberish, - chainid_: BigNumberish, - coinType_: BigNumberish, - gasLimit_: BigNumberish, - systemContractAddress_: AddressLike, - gatewayAddress_: AddressLike, - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction( - name_, - symbol_, - decimals_, - chainid_, - coinType_, - gasLimit_, - systemContractAddress_, - gatewayAddress_, - overrides || {} - ); - } - override deploy( - name_: string, - symbol_: string, - decimals_: BigNumberish, - chainid_: BigNumberish, - coinType_: BigNumberish, - gasLimit_: BigNumberish, - systemContractAddress_: AddressLike, - gatewayAddress_: AddressLike, - overrides?: NonPayableOverrides & { from?: string } - ) { - return super.deploy( - name_, - symbol_, - decimals_, - chainid_, - coinType_, - gasLimit_, - systemContractAddress_, - gatewayAddress_, - overrides || {} - ) as Promise< - ZRC20Mock & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): ZRC20Mock__factory { - return super.connect(runner) as ZRC20Mock__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): ZRC20MockInterface { - return new Interface(_abi) as ZRC20MockInterface; - } - static connect(address: string, runner?: ContractRunner | null): ZRC20Mock { - return new Contract(address, _abi, runner) as unknown as ZRC20Mock; - } -} diff --git a/typechain-types/factories/contracts/testing/mock/ZRC20Mock.sol/index.ts b/typechain-types/factories/contracts/testing/mock/ZRC20Mock.sol/index.ts deleted file mode 100644 index d06f49b4..00000000 --- a/typechain-types/factories/contracts/testing/mock/ZRC20Mock.sol/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { IZRC20Mock__factory } from "./IZRC20Mock__factory"; -export { ZRC20Mock__factory } from "./ZRC20Mock__factory"; diff --git a/typechain-types/factories/contracts/testing/mock/index.ts b/typechain-types/factories/contracts/testing/mock/index.ts deleted file mode 100644 index 1c164163..00000000 --- a/typechain-types/factories/contracts/testing/mock/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as zrc20MockSol from "./ZRC20Mock.sol"; -export { ERC20Mock__factory } from "./ERC20Mock__factory"; diff --git a/typechain-types/factories/contracts/testing/mockGateway/NodeLogicMock__factory.ts b/typechain-types/factories/contracts/testing/mockGateway/NodeLogicMock__factory.ts deleted file mode 100644 index f8234771..00000000 --- a/typechain-types/factories/contracts/testing/mockGateway/NodeLogicMock__factory.ts +++ /dev/null @@ -1,1340 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; -import type { NonPayableOverrides } from "../../../../common"; -import type { - NodeLogicMock, - NodeLogicMockInterface, -} from "../../../../contracts/testing/mockGateway/NodeLogicMock"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "", - type: "string", - }, - ], - name: "log", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "", - type: "address", - }, - ], - name: "log_address", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256[]", - name: "val", - type: "uint256[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "int256[]", - name: "val", - type: "int256[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address[]", - name: "val", - type: "address[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "log_bytes", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - name: "log_bytes32", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "int256", - name: "", - type: "int256", - }, - ], - name: "log_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "address", - name: "val", - type: "address", - }, - ], - name: "log_named_address", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256[]", - name: "val", - type: "uint256[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256[]", - name: "val", - type: "int256[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "address[]", - name: "val", - type: "address[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "bytes", - name: "val", - type: "bytes", - }, - ], - name: "log_named_bytes", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "bytes32", - name: "val", - type: "bytes32", - }, - ], - name: "log_named_bytes32", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256", - name: "val", - type: "int256", - }, - { - indexed: false, - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "log_named_decimal_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "val", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "log_named_decimal_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256", - name: "val", - type: "int256", - }, - ], - name: "log_named_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "string", - name: "val", - type: "string", - }, - ], - name: "log_named_string", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "val", - type: "uint256", - }, - ], - name: "log_named_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "", - type: "string", - }, - ], - name: "log_string", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "log_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "logs", - type: "event", - }, - { - inputs: [], - name: "IS_TEST", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "chainIdZeta", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - { - internalType: "address", - name: "", - type: "address", - }, - ], - name: "erc20ToZRC20s", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeArtifacts", - outputs: [ - { - internalType: "string[]", - name: "excludedArtifacts_", - type: "string[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeContracts", - outputs: [ - { - internalType: "address[]", - name: "excludedContracts_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeSelectors", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzSelector[]", - name: "excludedSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeSenders", - outputs: [ - { - internalType: "address[]", - name: "excludedSenders_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "failed", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "gasZRC20s", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "gatewayEVMs", - outputs: [ - { - internalType: "contract GatewayEVM", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "gatewayZEVM", - outputs: [ - { - internalType: "contract GatewayZEVM", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - ], - name: "getRuntimeCode", - outputs: [ - { - internalType: "bytes", - name: "code", - type: "bytes", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "chainId", - type: "uint256", - }, - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "receiver", - type: "address", - }, - { - internalType: "bytes", - name: "payload", - type: "bytes", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "handleEVMCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "chainId", - type: "uint256", - }, - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "receiver", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "handleEVMDeposit", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "chainId", - type: "uint256", - }, - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "receiver", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "bytes", - name: "payload", - type: "bytes", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "handleEVMDepositAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "bytes", - name: "receiver", - type: "bytes", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "bytes", - name: "message", - type: "bytes", - }, - { - components: [ - { - internalType: "uint256", - name: "gasLimit", - type: "uint256", - }, - { - internalType: "bool", - name: "isArbitraryCall", - type: "bool", - }, - ], - internalType: "struct CallOptions", - name: "callOptions", - type: "tuple", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "handleZEVMCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "bytes", - name: "receiver", - type: "bytes", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "handleZEVMWithdraw", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "bytes", - name: "receiver", - type: "bytes", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "bytes", - name: "message", - type: "bytes", - }, - { - components: [ - { - internalType: "uint256", - name: "gasLimit", - type: "uint256", - }, - { - internalType: "bool", - name: "isArbitraryCall", - type: "bool", - }, - ], - internalType: "struct CallOptions", - name: "callOptions", - type: "tuple", - }, - { - components: [ - { - internalType: "address", - name: "revertAddress", - type: "address", - }, - { - internalType: "bool", - name: "callOnRevert", - type: "bool", - }, - { - internalType: "address", - name: "abortAddress", - type: "address", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - { - internalType: "uint256", - name: "onRevertGasLimit", - type: "uint256", - }, - ], - internalType: "struct RevertOptions", - name: "revertOptions", - type: "tuple", - }, - ], - name: "handleZEVMWithdrawAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "chainId", - type: "uint256", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - ], - name: "setAssetToZRC20", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "_chainIdZeta", - type: "uint256", - }, - ], - name: "setChainIdZeta", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "chainId", - type: "uint256", - }, - { - internalType: "address", - name: "gasZRC20", - type: "address", - }, - ], - name: "setGasZRC20", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "chainId", - type: "uint256", - }, - { - internalType: "address", - name: "gatewayEVM", - type: "address", - }, - ], - name: "setGatewayEVM", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_gatewayZEVM", - type: "address", - }, - ], - name: "setGatewayZEVM", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_uniswapRouter", - type: "address", - }, - ], - name: "setUniswapRouter", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_wzeta", - type: "address", - }, - ], - name: "setWZETA", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "chainId", - type: "uint256", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - ], - name: "setZRC20ToAsset", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "targetArtifactSelectors", - outputs: [ - { - components: [ - { - internalType: "string", - name: "artifact", - type: "string", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzArtifactSelector[]", - name: "targetedArtifactSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetArtifacts", - outputs: [ - { - internalType: "string[]", - name: "targetedArtifacts_", - type: "string[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetContracts", - outputs: [ - { - internalType: "address[]", - name: "targetedContracts_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetInterfaces", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "string[]", - name: "artifacts", - type: "string[]", - }, - ], - internalType: "struct StdInvariant.FuzzInterface[]", - name: "targetedInterfaces_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetSelectors", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzSelector[]", - name: "targetedSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetSenders", - outputs: [ - { - internalType: "address[]", - name: "targetedSenders_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "uniswapRouter", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "wzeta", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - { - internalType: "address", - name: "", - type: "address", - }, - ], - name: "zrc20ToErc20s", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -const _bytecode = - "0x60808060405234602f57600160ff19600c541617600c55600160ff19601f541617601f556192a490816100358239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c8062173d46146102465780631ed7831c146102415780632558fcec1461023c5780632ade38801461023757806332030cef14610232578063347f3a7c1461022d5780633e5e3c23146102285780633f7286f41461022357806366d9a9a01461021e578063735de9f7146102195780638016f22b146102145780638327f7901461020f57806385226c811461020a5780638c52853c14610205578063916a17c614610200578063944a3ba4146101fb578063acfdc212146101f6578063ad82a627146101f1578063b0464fdc146101ec578063b184b87c146101e7578063b1c388b8146101e2578063b5508aa9146101dd578063b8969900146101d8578063ba414fa6146101d3578063bea9849e146101ce578063cc5ad8b6146101c9578063ced6e793146101c4578063d333abf6146101bf578063d7b3eeaf146101ba578063e20c9f71146101b5578063ebcff1c6146101b0578063f51a071d146101ab578063f59e8a67146101a6578063f9a41697146101a15763fa7626d41461019c57600080fd5b6116ef565b6116b5565b61165c565b6115ec565b6112b0565b611230565b611217565b6111e3565b61117e565b611151565b611112565b6110ed565b6110ae565b611021565b611004565b610f68565b610ebc565b610e35565b610d99565b610d06565b610c5a565b610b95565b610b08565b610a33565b6108a8565b61087f565b6107d3565b610695565b610615565b6105c2565b610586565b6104a9565b610365565b6102d5565b61025b565b600091031261025657565b600080fd5b34610256576000366003190112610256576026546040516001600160a01b039091168152602090f35b906020808351928381520192019060005b8181106102a25750505090565b82516001600160a01b0316845260209384019390920191600101610295565b9060206102d2928181520190610284565b90565b346102565760003660031901126102565760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b818110610346576103428561033681870382610966565b604051918291826102c1565b0390f35b82546001600160a01b031684526020909301926001928301920161031f565b34610256576020366003190112610256576004356000526022602052602060018060a01b0360406000205416604051908152f35b60005b8381106103ac5750506000910152565b818101518382015260200161039c565b906020916103d581518092818552858086019101610399565b601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061041457505050505090565b9091929394603f198282030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b85010194019260005b82811061047e57505050505060208060019297019301930191939290610405565b909192939460208061049c600193605f1987820301895289516103bc565b970195019392910161045d565b3461025657600036600319011261025657601e546104c681611712565b906104d46040519283610966565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061051a576040518061034287826103e1565b6002602060019260405161052d8161090f565b848060a01b0386541681526105438587016117f3565b83820152815201920192019190610505565b6001600160a01b0381160361025657565b6064359061057382610555565b565b9060206102d29281815201906103bc565b34610256576020366003190112610256576103426105ae6004356105a981610555565b61184b565b6040519182916020835260208301906103bc565b34610256576040366003190112610256576106136024356004356105e582610555565b600052602260205260406000209060018060a01b03166bffffffffffffffffffffffff60a01b825416179055565b005b346102565760003660031901126102565760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b818110610676576103428561033681870382610966565b82546001600160a01b031684526020909301926001928301920161065f565b346102565760003660031901126102565760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b8181106106f6576103428561033681870382610966565b82546001600160a01b03168452602090930192600192830192016106df565b906020808351928381520192019060005b8181106107335750505090565b82516001600160e01b031916845260209384019390920191600101610726565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061078657505050505090565b90919293946020806107c4600193603f19868203018752895190836107b483516040845260408401906103bc565b9201519084818403910152610715565b97019301930191939290610777565b3461025657600036600319011261025657601b546107f081611712565b906107fe6040519283610966565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b83831061084457604051806103428782610753565b600260206001926040516108578161090f565b61086086611729565b815261086d858701611883565b8382015281520192019201919061082f565b34610256576000366003190112610256576025546040516001600160a01b039091168152602090f35b34610256576040366003190112610256576106136024356004356108cb82610555565b600090815260216020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761092a57604052565b6108f9565b61010081019081106001600160401b0382111761092a57604052565b606081019081106001600160401b0382111761092a57604052565b90601f801991011681019081106001600160401b0382111761092a57604052565b60405190610573602083610966565b60405190610573606083610966565b60405190610573608083610966565b6040519061057360c083610966565b6001600160401b03811161092a57601f01601f191660200190565b81601f82011215610256578035906109f5826109c3565b92610a036040519485610966565b8284526020838301011161025657816000926020809301838601378301015290565b908160a09103126102565790565b346102565760a036600319011261025657600435610a5081610555565b6024356001600160401b03811161025657610a6f9036906004016109de565b90606435604435610a7f82610555565b608435936001600160401b03851161025657610aa2610613953690600401610a25565b93611f79565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610adb57505050505090565b9091929394602080610af9600193603f1986820301875289516103bc565b97019301930191939290610acc565b3461025657600036600319011261025657601a54610b2581611712565b90610b336040519283610966565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310610b7857604051806103428782610aa8565b600160208192610b8785611729565b815201920192019190610b63565b34610256576040366003190112610256576020602435600435610bb782610555565b60009081526023835260408082206001600160a01b03938416835260205290205b5416604051908152f35b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610c1557505050505090565b9091929394602080610c4b600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610715565b97019301930191939290610c06565b3461025657600036600319011261025657601d54610c7781611712565b90610c856040519283610966565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b838310610ccb57604051806103428782610be2565b60026020600192604051610cde8161090f565b848060a01b038654168152610cf4858701611883565b83820152815201920192019190610cb6565b3461025657602036600319011261025657600435610d2381610555565b601f8054610100600160a81b03191660089290921b610100600160a81b0316919091179055005b9181601f84011215610256578235916001600160401b038311610256576020838186019501011161025657565b60409060a31901126102565760a490565b604090608319011261025657608490565b346102565761010036600319011261025657600435610db781610555565b6024356001600160401b03811161025657610dd69036906004016109de565b90604435610de2610566565b6084356001600160401b03811161025657610e01903690600401610d4a565b91610e0b36610d77565b9360e435966001600160401b03881161025657610e2f610613983690600401610a25565b96612b04565b346102565760e036600319011261025657602435600435610e5582610555565b604435610e6181610555565b60643590608435610e7181610555565b60a4356001600160401b03811161025657610e90903690600401610d4a565b93909260c435966001600160401b03881161025657610eb6610613983690600401610a25565b96613476565b3461025657600036600319011261025657601c54610ed981611712565b90610ee76040519283610966565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b838310610f2d57604051806103428782610be2565b60026020600192604051610f408161090f565b848060a01b038654168152610f56858701611883565b83820152815201920192019190610f18565b346102565760e036600319011261025657600435610f8581610555565b6024356001600160401b03811161025657610fa49036906004016109de565b90604435610fb181610555565b6064356001600160401b03811161025657610fd0903690600401610d4a565b90610fda36610d88565b9260c435956001600160401b03871161025657610ffe610613973690600401610a25565b956138d4565b346102565760003660031901126102565760208054604051908152f35b346102565760003660031901126102565760195461103e81611712565b9061104c6040519283610966565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b83831061109157604051806103428782610aa8565b6001602081926110a085611729565b81520192019201919061107c565b34610256576020366003190112610256576004356110cb81610555565b602680546001600160a01b0319166001600160a01b0392909216919091179055005b34610256576000366003190112610256576020611108613d3b565b6040519015158152f35b346102565760203660031901126102565760043561112f81610555565b602580546001600160a01b0319166001600160a01b0392909216919091179055005b3461025657600036600319011261025657601f5460405160089190911c6001600160a01b03168152602090f35b346102565760c03660031901126102565760243560043561119e82610555565b6044356111aa81610555565b606435608435916111ba83610555565b60a435946001600160401b038611610256576111dd610613963690600401610a25565b94613e3f565b34610256576020366003190112610256576004356000526021602052602060018060a01b0360406000205416604051908152f35b3461025657602036600319011261025657600435602055005b346102565760003660031901126102565760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b818110611291576103428561033681870382610966565b82546001600160a01b031684526020909301926001928301920161127a565b346102565760a0366003190112610256576004356024356112d081610555565b604435916112dd83610555565b6064356001600160401b038111610256576112fc903690600401610d4a565b6084356001600160401b0381116102565761131b903690600401610a25565b601f549095906004906020906113449060081c6001600160a01b03165b6001600160a01b031690565b6040516313917f7760e11b815292839182905afa90811561151d576000916115bd575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d576115a8575b50601f546113d79060081c6001600160a01b0316611338565b604051606087901b6001600160601b03191660208201529261140684603481015b03601f198101865285610966565b61140e610996565b9384526001600160a01b038716602085015285604085015261144a61143d876000526022602052604060002090565b546001600160a01b031690565b90823b156102565760009461147786926040519889978896879563bcf7f32b60e01b875260048701614072565b03926216e360f1908161158d575b5061152257611492611d28565b60205460405163348051d760e11b8152600481019190915290919060008160248160008051602061924f8339815191525afa801561151d57610613956114ef6114ea866040946114f5966000916114fa575b5061413d565b6141c7565b016141bd565b616213565b61151791503d806000833e61150f8183610966565b810190611b3b565b386114e4565b611afa565b505060205460405163348051d760e11b81526004810191909152905060008160248160008051602061924f8339815191525afa90811561151d57610613916114ea91600091611572575b506140b9565b61158791503d806000833e61150f8183610966565b3861156c565b8061159c60006115a293610966565b8061024b565b38611485565b8061159c60006115b793610966565b386113be565b6115df915060203d6020116115e5575b6115d78183610966565b810190611c26565b38611367565b503d6115cd565b3461025657604036600319011261025657602060243560043561160e82610555565b60009081526024835260408082206001600160a01b0393841683526020529020610bd8565b6060906003190112610256576004359060243561164f81610555565b906044356102d281610555565b346102565761061361169661167036611633565b9291600052602360205260406000209060018060a01b0316600052602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b34610256576106136116966116c936611633565b9291600052602460205260406000209060018060a01b0316600052602052604060002090565b3461025657600036600319011261025657602060ff601f54166040519015158152f35b6001600160401b03811161092a5760051b60200190565b9060405191600081548060011c92600182169182156117e9575b6020851083146117d55784875286939260208501929181156117b85750600114611776575b505061057392500383610966565b611787919250600052602060002090565b906000915b8483106117a157506105739350013880611768565b80548284015286935060209092019160010161178c565b9150506105739491925060ff19168252151560051b013880611768565b634e487b7160e01b84526022600452602484fd5b93607f1693611743565b9081546117ff81611712565b9261180d6040519485610966565b818452602084019060005260206000206000915b83831061182e5750505050565b60016020819261183d85611729565b815201920192019190611821565b90813b6000611859826109c3565b6118666040519182610966565b828152611872836109c3565b602082019190601f1901368337943c565b604051815480825290929183906118a36020830191600052602060002090565b926000905b8060078301106119eb576105739454918181106119cc575b8181106119ad575b81811061198e575b81811061196f575b818110611950575b818110611931575b818110611913575b106118fe575b500383610966565b6001600160e01b0319168152602001386118f6565b602083811b6001600160e01b031916855290936001910193016118f0565b604083901b6001600160e01b03191684529260019060200193016118e8565b606083901b6001600160e01b03191684529260019060200193016118e0565b608083901b6001600160e01b03191684529260019060200193016118d8565b60a083901b6001600160e01b03191684529260019060200193016118d0565b60c083901b6001600160e01b03191684529260019060200193016118c8565b6001600160e01b031960e084901b1684529260019060200193016118c0565b916008919350610100600191611a9a8754611a11838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b0194019201859293916118a8565b60405190611ab58261092f565b606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b90816020910312610256575190565b6040513d6000823e3d90fd5b90929192611b13816109c3565b91611b216040519384610966565b829482845282820111610256576020610573930190610399565b602081830312610256578051906001600160401b03821161025657019080601f830112156102565781516102d292602001611b06565b90610573601b602960405180956802db1b430b4b724b2160bd1b6020830152611ba38151809260208686019101610399565b81017f5d205b4552524f525d2047617465776179206e6f7420666f756e640000000000838201520301600419810185520183610966565b9060208251920151916bffffffffffffffffffffffff1983169260148210611c00575050565b6001600160601b031960149290920360031b82901b16169150565b519061057382610555565b9081602091031261025657516102d281610555565b90610573601b602960405180956802db1b430b4b724b2160bd1b6020830152611c6d8151809260208686019101610399565b81017f5d205b4552524f525d20437573746f6479206e6f7420666f756e640000000000838201520301600419810185520183610966565b906105736033602960405180956802db1b430b4b724b2160bd1b6020830152611cd68151809260208686019101610399565b81017f5d205b494e464f5d2045524332302f5a45544120776974686472617720636f6d8382015272706c65746564207375636365737366756c6c7960681b604982015203016013810185520183610966565b3d15611d53573d90611d39826109c3565b91611d476040519384610966565b82523d6000602084013e565b606090565b60266105739193929360296040519586926802db1b430b4b724b2160bd1b6020850152611d8e8151809260208688019101610399565b83017f5d205b4552524f525d2045524332302f5a4554412077697468647261772066618382015265034b632b21d160d51b6049820152611dd8825180936020604f85019101610399565b01010301601f198101845283610966565b8015150361025657565b91909160a081840312610256576040519060a082018281106001600160401b0382111761092a5760405281938135611e2a81610555565b83526020820135611e3a81611de9565b60208401526040820135611e4d81610555565b60408401526060820135916001600160401b03831161025657611e7660809392849383016109de565b60608501520135910152565b906105736023602960405180956802db1b430b4b724b2160bd1b6020830152611eb48151809260208686019101610399565b81017f5d205b4552524f525d2047617320746f6b656e207472616e736665722066616983820152621b195960ea1b604982015203016003810185520183610966565b906105736032602960405180956802db1b430b4b724b2160bd1b6020830152611f288151809260208686019101610399565b81017f5d205b494e464f5d2047617320746f6b656e207472616e7366657220636f6d7083820152716c65746564207375636365737366756c6c7960701b604982015203016012810185520183610966565b9293919093611f86611aa8565b60405163085e1f4d60e41b81529095906001600160a01b03831690602081600481855afa90811561151d57611fd59161143d91600091612657575b50808a526000526021602052604060002090565b6001600160a01b0390811660208901818152929190611ff390611338565b16156125df5761203761203161204f9261201e61133861143d8d516000526022602052604060002090565b1460408b0190815294611bda565b611bda565b60601c90565b6001600160a01b031660608901908152925b51151590565b1561223f57516004919060209061206e906001600160a01b0316611338565b604051635b11259160e01b815293849182905afa91821561151d5760009261221e575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af191821561151d57600080866121068295839561211f9861220a575b50516001600160a01b031690565b5af1612110611d28565b50151560c08701908152612049565b15612190575050915160405163348051d760e11b815260048101919091529150600090508160248160008051602061924f8339815191525afa90811561151d57610573916114ea91600091612175575b50611ef6565b61218a91503d806000833e61150f8183610966565b3861216f565b845160405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa95861561151d576121e16114ea610573986121ea946000916121ef575b50611e82565b51933690611df3565b614ddf565b61220491503d806000833e61150f8183610966565b386121db565b8061159c8661221893610966565b386120f8565b61223891925060203d6020116115e5576115d78183610966565b9038612091565b80516004919060209061225a906001600160a01b0316611338565b60405163dda79b7560e01b815293849182905afa91821561151d576000926125be575b506001600160a01b03919091166080880181815291906122ad906122a090611338565b1560a08a01908152612049565b6125465751600491906020906122cb906001600160a01b0316611338565b604051635b11259160e01b815293849182905afa91821561151d57600092612525575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af191821561151d576113386123629261133892612370956125165750516001600160a01b031690565b91516001600160a01b031690565b6123a361143d8461238c8a516000526024602052604060002090565b9060018060a01b0316600052602052604060002090565b90823b1561025657604051636ce5768960e11b81526001600160a01b0391821660048201529116602482015260448101849052906000908290606490829084905af19081612501575b5061247f5761242e946123fd611d28565b90600060c08201528160e0820152600081516040518099819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d576114ea6121ea936121e1926105739a600091612464575b50611d58565b61247991503d806000833e61150f8183610966565b3861245e565b5050505060008161249660c06124b6940160019052565b516040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea916000916124e6575b50611ca4565b6124fb91503d806000833e61150f8183610966565b386124e0565b8061159c600061251093610966565b386123ec565b8061159c600061221893610966565b61253f91925060203d6020116115e5576115d78183610966565b90386122ee565b50505050505050600061257391516040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea916000916125a3575b50611c3b565b6125b891503d806000833e61150f8183610966565b3861259d565b6125d891925060203d6020116115e5576115d78183610966565b903861227d565b50505050505050600061260c91516040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea9160009161263c575b50611b71565b61265191503d806000833e61150f8183610966565b38612636565b612679915060203d60201161267f575b6126718183610966565b810190611aeb565b38611fc1565b503d612667565b6040519061014082018281106001600160401b0382111761092a5760405260606101208360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201528260e082015260006101008201520152565b356102d281611de9565b908060209392818452848401376000828201840152601f01601f1916010190565b90516001600160a01b039081168252918216602082015291166040820152606081019190915260a0608082018190526102d2939101916126f3565b90610573603c602960405180956802db1b430b4b724b2160bd1b60208301526127818151809260208686019101610399565b81017f5d205b494e464f5d2045524332302f5a45544120776974686472617720616e64838201527f2063616c6c20636f6d706c65746564207375636365737366756c6c790000000060498201520301601c810185520183610966565b602f6105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526128138151809260208688019101610399565b83017f5d205b4552524f525d2045524332302f5a45544120776974686472617720616e838201526e0321031b0b636103330b4b632b21d1608d1b6049820152611dd8825180936020605885019101610399565b906004116102565790600490565b356001600160e01b031981169291906004821061288f575050565b6001600160e01b031960049290920360031b82901b16169150565b90610573605a60405180947f526563656976657220636f6e747261637420646f6573206e6f7420636f6e746160208301527f696e2066756e6374696f6e20776974682073656c6563746f722000000000000060408301526129148151809260208686019101610399565b81010301601f198101845283610966565b600a6105739193929360296040519586926802db1b430b4b724b2160bd1b602085015261295b8151809260208688019101610399565b83016902e902da2a92927a92e960b51b83820152611dd8825180936020603385019101610399565b9080601f830112156102565781516102d292602001611b06565b906020828203126102565781516001600160401b038111610256576102d29201612983565b90516001600160a01b03908116825290911660208201526060604082018190526102d2939101916126f3565b90610573603b602960405180956802db1b430b4b724b2160bd1b6020830152612a208151809260208686019101610399565b81017f5d205b494e464f5d2047617320746f6b656e207472616e7366657220616e6420838201527f63616c6c20636f6d706c65746564207375636365737366756c6c79000000000060498201520301601b810185520183610966565b602e6105739193929360296040519586926802db1b430b4b724b2160bd1b6020850152612ab28151809260208688019101610399565b83017f5d205b4552524f525d2047617320746f6b656e207472616e7366657220616e64838201526d01031b0b636103330b4b632b21d160951b6049820152611dd8825180936020605785019101610399565b95969491939096612b13612686565b60405163085e1f4d60e41b815290986001600160a01b03861691602081600481865afa90811561151d57612b619161143d916000916132d0575b50808d526000526021602052604060002090565b6001600160a01b0390811660208c01818152939190612b7f90611338565b16156132a057612bba6120318c949361202c6040612bd095612bb261133861143d8b516000526022602052604060002090565b149701968752565b6001600160a01b031660608c0190815292612049565b15612f8957612be1602084016126e9565b612e34575b805160049493929190602090612c04906001600160a01b0316611338565b604051635b11259160e01b815296879182905afa94851561151d57600095612e13575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039590951660048601526000856024818360008051602061924f8339815191525af194851561151d576113388992612c9892600098612e055750516001600160a01b031690565b923592612cc1612ca6610987565b6001600160a01b038d168152935b516001600160a01b031690565b92612ce2604051988997889687946338e2252760e01b8652600486016129c2565b0393f19081612de4575b50612d8157612d3094612cfd611d28565b90600061010082015281610120820152600081516040518099819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d576114ea6121ea936121e1926105739a600091612d66575b50612a7c565b612d7b91503d806000833e61150f8183610966565b38612d60565b50505050600081612496610100612d99940160019052565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091612dc9575b506129ee565b612dde91503d806000833e61150f8183610966565b38612dc3565b612e00903d806000833e612df88183610966565b81019061299d565b612cec565b8061159c8a61221893610966565b612e2d91955060203d6020116115e5576115d78183610966565b9338612c27565b612e47612e418686612866565b90612874565b8251612e6e90612e6a908390612e65906001600160a01b031661184b565b61544d565b1590565b612e785750612be6565b9250505087925060009150612e9360c0612ebd990160019052565b604051631623433d60e31b81526001600160e01b0319909116600482015296879081906024820190565b038160008051602061924f8339815191525afa95861561151d57612f1896612eed91600091612f6e575b506128aa565b9060e08101918252600081516040518099819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d576114ea6121ea936121e1926105739a600092612f51575b505190612925565b612f679192503d806000833e61150f8183610966565b9038612f49565b612f8391503d806000833e61150f8183610966565b38612ee7565b80519194929160049190602090612fa8906001600160a01b0316611338565b60405163dda79b7560e01b815293849182905afa91821561151d5760009261327f575b506001600160a01b039190911660808b018181529190612fff908c906120499060a090612ff790611338565b159201918252565b61324f57516004919060209061301d906001600160a01b0316611338565b604051635b11259160e01b815293849182905afa91821561151d5760009261322e575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af191821561151d576113386130b292611338928e956125165750516001600160a01b031690565b92868a6130c36020863596016126e9565b1561321a575061143d6131069161238c6130f460009a5b612cb46130e5610987565b6001600160a01b03909d168d52565b95516000526024602052604060002090565b93803b156102565788966131366000979388946040519a8b998a9889966356840c2960e11b885260048801612714565b0393f19081613205575b506131a25761315194612cfd611d28565b038160008051602061924f8339815191525afa801561151d576114ea6121ea936121e1926105739a600091613187575b506127dd565b61319c91503d806000833e61150f8183610966565b38613181565b505050506000816124966101006131ba940160019052565b038160008051602061924f8339815191525afa90811561151d57610573916114ea916000916131ea575b5061274f565b6131ff91503d806000833e61150f8183610966565b386131e4565b8061159c600061321493610966565b38613140565b6131069161238c6130f461143d939a6130da565b61324891925060203d6020116115e5576115d78183610966565b9038613040565b50505050505050505050600061257391516040518093819263348051d760e11b8352600483019190602083019252565b61329991925060203d6020116115e5576115d78183610966565b9038612fcb565b50505050505050505050600061260c91516040518093819263348051d760e11b8352600483019190602083019252565b6132e9915060203d60201161267f576126718183610966565b38612b4d565b60256105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526133258151809260208688019101610399565b83017f5d205b4552524f525d205a52433230206e6f7420666f756e6420666f722061738382015264039b2ba1d160dd1b6049820152611dd8825180936020604e85019101610399565b9060408061338584516060855260608501906103bc565b6020808601516001600160a01b03169085015293015191015290565b9194926133bb6102d297959260a0855260a085019061336e565b6001600160a01b0396871660208501526040840191909152941660608201528084036080909101526126f3565b90610573603a602960405180956802db1b430b4b724b2160bd1b602083015261341a8151809260208686019101610399565b81017f5d205b494e464f5d205a657461436861696e206465706f73697420616e642063838201527f616c6c20636f6d706c65746564207375636365737366756c6c7900000000000060498201520301601a810185520183610966565b95969491909661349761143d8661238c8a6000526023602052604060002090565b926001600160a01b038416156136b457601f546004906020906134c59060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091613695575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57613680575b50601f546135589060081c6001600160a01b0316611338565b6040516001600160601b031960608c901b166020820152601481529161357f603484610966565b613587610996565b9283526001600160a01b038b166020840152896040840152813b1561025657600087936135ce82968994604051998a988997889663c39aca3760e01b8852600488016133a1565b03926216e360f1908161366b575b506135f357610573956135ed611d28565b95615710565b50505050505061362060006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091613650575b506133e8565b61366591503d806000833e61150f8183610966565b3861364a565b8061159c600061367a93610966565b386135dc565b8061159c600061368f93610966565b3861353f565b6136ae915060203d6020116115e5576115d78183610966565b386134e8565b50505050509150506136e5915060006020546040518094819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d5760009261377a575b50604051632b65311f60e11b81526001600160a01b03909116600482015260008180602481015b038160008051602061924f8339815191525afa801561151d57610573926114ea9260009261375d575b506132ef565b6137739192503d806000833e61150f8183610966565b9038613757565b61372e9192506137956000913d8084833e61150f8183610966565b929150613707565b6040519060e082018281106001600160401b0382111761092a57604052606060c083600081526000602082015260006040820152600083820152826080820152600060a08201520152565b90610573602d602960405180956802db1b430b4b724b2160bd1b602083015261381a8151809260208686019101610399565b81017f5d205b494e464f5d2045564d20657865637574696f6e20636f6d706c65746564838201526c207375636365737366756c6c7960981b60498201520301600d810185520183610966565b60206105739193929360296040519586926802db1b430b4b724b2160bd1b8585015261389a81518092878688019101610399565b83017f5d205b4552524f525d2045564d20657865637574696f6e206661696c65643a2083820152611dd88251809387604985019101610399565b939194959290600460206138e661379d565b60405163085e1f4d60e41b815290989092839182906001600160a01b03165afa90811561151d576139319161143d91600091613d1c575b508089526000526021602052604060002090565b6001600160a01b039081166020880181815292919061394f90611338565b1615613ced5761203161396191611bda565b6001600160a01b031660408701908152602088019161397f836126e9565b613be3575b6004949596979860206139a0611338845160018060a01b031690565b604051635b11259160e01b815297889182905afa95861561151d57600096613bc2575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039690961660048701526000866024818360008051602061924f8339815191525af191821561151d57613a37611338613a3f926000998a96613bb45750516001600160a01b031690565b9135946126e9565b8214613baa57613a6582935b612cb4613a56610987565b6001600160a01b039096168652565b92613a86604051988997889687946338e2252760e01b8652600486016129c2565b0393f19081613b91575b50613b3157613ad292613aa1611d28565b90600060a08201528160c0820152600081516040518097819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d576114ea613b1193613b089261057398600091613b16575b50613866565b51913690611df3565b6146df565b613b2b91503d806000833e61150f8183610966565b38613b02565b505060008161249660a0613b46940160019052565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091613b76575b506137e8565b613b8b91503d806000833e61150f8183610966565b38613b70565b613ba5903d806000833e612df88183610966565b613a90565b613a658993613a4b565b8061159c8861221893610966565b613bdc91965060203d6020116115e5576115d78183610966565b94386139c3565b613bf0612e418686612866565b98613c0b612e6a8b612e656105a9875160018060a01b031690565b613c16579850613984565b50505050505090916000613c5b94613c316060840160019052565b604051631623433d60e31b81526001600160e01b0319909116600482015294859081906024820190565b038160008051602061924f8339815191525afa93841561151d57613cb594613c8a91600091612f6e57506128aa565b9060808101918252600081516040518097819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d576114ea613b1193613b089261057398600092612f5157505190612925565b5050935160405163348051d760e11b81526004810191909152945060009350849250829150506024810161260c565b613d35915060203d60201161267f576126718183610966565b3861391d565b60085460ff168015613d4a5790565b50604051630667f9d760e41b815260008051602061924f833981519152600482018190526519985a5b195960d21b6024830152602090829060449082905afa90811561151d57600091613d9e575b50151590565b613db7915060203d60201161267f576126718183610966565b38613d98565b906105736031602960405180956802db1b430b4b724b2160bd1b6020830152613def8151809260208686019101610399565b81017f5d205b494e464f5d205a657461436861696e206465706f73697420636f6d706c838201527065746564207375636365737366756c6c7960781b604982015203016011810185520183610966565b939194929094613e6061143d8461238c886000526023602052604060002090565b906001600160a01b0382161561404257601f54600490602090613e8e9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091614023575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d5761400e575b50601f54613f219060081c6001600160a01b0316611338565b803b1561025657604051633d14d1b760e21b81526001600160a01b038481166004830152602482018690529290921660448301526000908290606490829084905af19081613ff9575b50613f815761057395613f7b611d28565b95615db5565b505050505050613fae60006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091613fde575b50613dbd565b613ff391503d806000833e61150f8183610966565b38613fd8565b8061159c600061400893610966565b38613f6a565b8061159c600061401d93610966565b38613f08565b61403c915060203d6020116115e5576115d78183610966565b38613eb1565b505060205460405163348051d760e11b8152600481019190915294509092506000915083905080602481016136e5565b909261408d6102d2969495939560a0845260a084019061336e565b6001600160a01b03958616602084015260006040840152941660608201528084036080909101526126f3565b906105736033602960405180956802db1b430b4b724b2160bd1b60208301526140eb8151809260208686019101610399565b81017f5d205b494e464f5d205a657461436861696e20657865637574696f6e20636f6d8382015272706c65746564207375636365737366756c6c7960681b604982015203016013810185520183610966565b60266105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526141738151809260208688019101610399565b83017f5d205b4552524f525d205a657461436861696e20657865637574696f6e2066618382015265034b632b21d160d51b6049820152611dd8825180936020604f85019101610399565b356102d281610555565b6141f46142026105739260405192839163104c13eb60e21b602084015260206024840181815201906103bc565b03601f198101835282610966565b617fe7565b90610573601e602960405180956802db1b430b4b724b2160bd1b60208301526142398151809260208686019101610399565b81017f5d205b494e464f5d2063616c6c4f6e5265766572742069732066616c73650000838201520301600119810185520183610966565b90610573601f602960405180956802db1b430b4b724b2160bd1b60208301526142a28151809260208686019101610399565b81017f5d205b4552524f525d2072657665727441646472657373206973207a65726f00838201520301600019810185520183610966565b90608060606102d29360018060a01b03815116845260018060a01b0360208201511660208501526040810151604085015201519181606082015201906103bc565b9060206102d29281815201906142d9565b600b90602d61057393959460296040519788946802db1b430b4b724b2160bd1b6020870152614363815180926020868a019101610399565b85017f5d205b494e464f5d20457865637574696e67206f6e526576657274206f6e2072838201526c032bb32b93a20b2323932b9b99609d1b60498201526143b4825180936020605685019101610399565b01016a0161031b7b73a32bc3a1d160ad1b83820152611dd8825180936020603885019101610399565b6001600160a01b039182168152602081019290925290911660408201526080606082018190526102d2929101906142d9565b6001600160a01b0390911681526040602082018190526102d2929101906142d9565b602081830312610256578051906001600160401b03821161025657019080601f830112156102565781519161446583611712565b926144736040519485610966565b80845260208085019160051b830101918383116102565760208101915b83831061449f57505050505090565b82516001600160401b038111610256578201906060828703601f19011261025657604051906144cd8261094b565b60208301516001600160401b0381116102565760209084010187601f82011215610256578051906144fd82611712565b9161450b6040519384610966565b80835260208084019160051b830101918a831161025657602001905b8282106145795750505082526040830151916001600160401b0383116102565761456960608561455f8b602080999881990101612983565b8685015201611c1b565b6040820152815201920191614490565b8151815260209182019101614527565b634e487b7160e01b600052603260045260246000fd5b8051156145ac5760200190565b614589565b8051600110156145ac5760400190565b8051600210156145ac5760600190565b80518210156145ac5760209160051b010190565b90610573601d602960405180956802db1b430b4b724b2160bd1b60208301526146178151809260208686019101610399565b81017f5d205b494e464f5d204576656e742066726f6d206f6e5265766572743a000000838201520301600219810185520183610966565b6040519061465d604083610966565b600a825269101032b6b4ba3a32b91d60b11b6020830152565b60405190614685604083610966565b600782526610103230ba309d60c91b6020830152565b604051906146aa604083610966565b60078252662020746f70696360c81b6020830152565b604051906146cf604083610966565b60018252601d60f91b6020830152565b9190606083019081516146f06109a5565b6001600160a01b03851681529060006020830152600060408301526060820152602085015115614d705760008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57614d5b575b5084516001600160a01b031615614cda5760405163348051d760e11b81526004810183905260008160248160008051602061924f8339815191525afa90811561151d57600091614cbf575b5085516147e7906000906001600160a01b03165b604051632b65311f60e11b81526001600160a01b03909116600482015291829081906024820190565b038160008051602061924f8339815191525afa801561151d5761483d91600091614ca4575b506000604051614823816141f4886020830161431a565b604051809481926371aad10d60e01b835260048301610575565b038160008051602061924f8339815191525afa90811561151d5761486d936114ea93600093614c87575b5061432b565b601f5460049060209061488b9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091614c68575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57614c53575b50601f5461491e9060081c6001600160a01b0316611338565b85519091906001600160a01b031690823b1561025657614958926000928360405180968195829463184b079360e01b84526004840161440f565b03926216e360f19081614c3e575b5061498c57600080614984604061057397015160018060a01b031690565b935193616ba4565b9150506040519163064554e960e21b83526000836004818360008051602061924f8339815191525af192831561151d57600093614c1b575b5060005b8351811015614c15576149ef60406149e083876145d1565b5101516001600160a01b031690565b6040830151614a06906001600160a01b0316611338565b6001600160a01b0390911614614a1f575b6001016149c8565b60405163348051d760e11b815260048101849052909491929060008160248160008051602061924f8339815191525afa90811561151d57614a6c916114ea91600091614bfc575b506145e5565b614a8060006147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d57614ab391600091614be3575b50614aae61464e565b618002565b614ae160006020614ac488886145d1565b510151604051809381926371aad10d60e01b835260048301610575565b038160008051602061924f8339815191525afa801561151d57614b0f91600091614bca575b50614aae614676565b60005b614b1c86866145d1565b515151811015614bc157806000614b41614b6193614b3a8a8a6145d1565b51516145d1565b5160405180948192631623433d60e31b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d57600192614ba291600091614ba8575b50614b9361469b565b83614b9c6146c0565b91618046565b01614b12565b614bbb913d8091833e61150f8183610966565b38614b8a565b50919093614a17565b614bdd913d8091833e61150f8183610966565b38614b06565b614bf6913d8091833e61150f8183610966565b38614aa5565b614c0f913d8091833e61150f8183610966565b38614a66565b50505050565b614c3791933d8091833e614c2f8183610966565b810190614431565b91386149c4565b8061159c6000614c4d93610966565b38614966565b8061159c6000614c6293610966565b38614905565b614c81915060203d6020116115e5576115d78183610966565b386148ae565b614c9d9193503d806000833e61150f8183610966565b9138614867565b614cb991503d806000833e61150f8183610966565b3861480c565b614cd491503d806000833e61150f8183610966565b386147aa565b5060205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa94851561151d57614984604060009392614d336114ea6105739a87968791614d41575b50614270565b01516001600160a01b031690565b614d5591503d8089833e61150f8183610966565b38614d2d565b8061159c6000614d6a93610966565b3861475f565b5060405163348051d760e11b81526004810182905260008160248160008051602061924f8339815191525afa94851561151d57614984604060009392614d336114ea6105739a87968791614dc5575b50614207565b614dd991503d8089833e61150f8183610966565b38614dbf565b93929060608501928351614df16109a5565b6001600160a01b0387168152906001600160a01b03841660208301528260408301526060820152614e256020880151151590565b156153bd5760008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d576153a8575b5086516001600160a01b03161561533e5760405163348051d760e11b81526004810185905260008160248160008051602061924f8339815191525afa90811561151d57600091615323575b508751614ed2906000906001600160a01b03166147be565b038160008051602061924f8339815191525afa801561151d57614f0d91600091614ca457506000604051614823816141f4886020830161431a565b038160008051602061924f8339815191525afa90811561151d57614f3c936114ea93600093614c87575061432b565b601f54600490602090614f5a9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091615304575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d576152ef575b506001600160a01b03831661524f57601f54614ffb9060081c6001600160a01b0316611338565b87519091906001600160a01b031690823b1561025657615035926000928360405180968195829463184b079360e01b84526004840161440f565b03926216e360f1908161523a575b50615062576040959095015161057395906001600160a01b0316614984565b50509150505b60405163064554e960e21b8152916000836004818360008051602061924f8339815191525af192831561151d5760009361521f575b5060005b8351811015614c15576150b960406149e083876145d1565b60408301516150d0906001600160a01b0316611338565b6001600160a01b03909116146150e9575b6001016150a1565b60405163348051d760e11b815260048101849052909491929060008160248160008051602061924f8339815191525afa90811561151d57615135916114ea91600091614bfc57506145e5565b61514960006147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d5761517691600091614be35750614aae61464e565b61518760006020614ac488886145d1565b038160008051602061924f8339815191525afa801561151d576151b491600091614bca5750614aae614676565b60005b6151c186866145d1565b51515181101561521657806000614b416151df93614b3a8a8a6145d1565b038160008051602061924f8339815191525afa91821561151d5760019261521091600091614ba85750614b9361469b565b016151b7565b509190936150e1565b61523391933d8091833e614c2f8183610966565b913861509d565b8061159c600061524993610966565b38615043565b601f546152679060081c6001600160a01b0316611338565b87519091906001600160a01b031690823b15610256576152a39260009283604051809681958294639d4ba46560e01b84528a8c600486016143dd565b03926216e360f190816152da575b506152d0576040959095015161057395906001600160a01b0316614984565b5050915050615068565b8061159c60006152e993610966565b386152b1565b8061159c60006152fe93610966565b38614fd4565b61531d915060203d6020116115e5576115d78183610966565b38614f7d565b61533891503d806000833e61150f8183610966565b38614eba565b5060205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d5761057397614d336114ea614984946040946000916153935750614270565b614d5591503d806000833e61150f8183610966565b8061159c60006153b793610966565b38614e6f565b5060405163348051d760e11b81526004810184905260008160248160008051602061924f8339815191525afa90811561151d5761057397614d336114ea6149849460409460009161540e5750614207565b614dd991503d806000833e61150f8183610966565b634e487b7160e01b600052601160045260246000fd5b906104b0820180921161544857565b615423565b919060005b600481018082116154485784511061549757602081850101516001600160e01b031983811691161461548f57600019811461544857600101615452565b506001925050565b506000925050565b604051906154ac8261092f565b600060e083606081528260208201528260408201528260608201528260808201528260a08201528260c08201520152565b604051906154ec604083610966565b600782526619195c1bdcda5d60ca1b6020830152565b60405190615511604083610966565b601082526f19195c1bdcda5d08185b990818d85b1b60821b6020830152565b600990601461057393959460296040519788946802db1b430b4b724b2160bd1b6020870152615568815180926020868a019101610399565b85017302e902da2a92927a92e902d32ba30a1b430b4b7160651b8382015261559a825180936020603d85019101610399565b0101680103330b4b632b21d160bd1b83820152611dd8825180936020601d85019101610399565b919082604091031261025657602082516155da81610555565b92015190565b9081602091031261025657516102d281611de9565b90610573603a602960405180956802db1b430b4b724b2160bd1b60208301526156278151809260208686019101610399565b81017f5d205b4552524f525d204661696c656420746f206d696e74205a524332302074838201527f6f6b656e7320666f722070726f746f636f6c206164647265737300000000000060498201520301601a810185520183610966565b9190820391821161544857565b90610573602f602960405180956802db1b430b4b724b2160bd1b60208301526156c28151809260208686019101610399565b81017f5d205b4552524f525d204661696c656420746f206275726e2072656d61696e69838201526e6e67205a5243323020746f6b656e7360881b60498201520301600f810185520183610966565b9094939195615751939661572261549f565b9161572b615502565b835260006020546040518098819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa95861561151d576114ea826157b99861578893600091615d9a575b50865190615530565b6040805163fc5fecd560e01b815260808901356004820152966001600160a01b038416939190889081906024820190565b0381865afa801561151d57600097600091615d65575b50604085019081526001600160a01b039097166020850190815296601f546004906020906158089060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091615d46575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03821660048201526000816024818360008051602061924f8339815191525af1801561151d57615d31575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018d905260208160448160008a5af190811561151d57600091615d12575b5015156060870190815260008051602061924f8339815191523b15610256576040516303223eab60e11b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af190811561151d5761592e92612e6a92615cfd575b5051151590565b615c805780519060a0860191825260c086019861594b8a60019052565b805161595f906001600160a01b0316611338565b8603615bf8575b505060008051602061924f8339815191523b15610256576040516390c5013b60e01b8152906000826004818360008051602061924f8339815191525af191821561151d576159bb92615be3575b50518b615683565b608085018181529a9015615bc4575050601f54600491506020906159ea9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091615ba5575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57600092602092615a9292615b91575b508a51604051948580948193630852cd8d60e31b8352600483019190602083019252565b03925af1801561151d57615abd92612e6a92600092615b59575b5060e0612049910191829015159052565b615ae157615adb615ad361057397519451151590565b943690611df3565b90618832565b505050505050615b0e60006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091615b3e575b50615690565b615b5391503d806000833e61150f8183610966565b38615b38565b612049919250615b8260e09160203d602011615b8a575b615b7a8183610966565b8101906155e0565b929150615aac565b503d615b70565b8061159c86615b9f93610966565b38615a6e565b615bbe915060203d6020116115e5576115d78183610966565b38615a0d565b9496509450956105739850615bde925060409150016141bd565b61788e565b8061159c6000615bf293610966565b386159b3565b60008a52516001600160a01b03169051601f54600490602090615c269060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa91821561151d57615c56938f92600094615c5f575b5086618362565b81523880615966565b615c7991945060203d6020116115e5576115d78183610966565b9238615c4f565b5050505050505050505050615cb260006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091615ce2575b506155f5565b615cf791503d806000833e61150f8183610966565b38615cdc565b8061159c6000615d0c93610966565b38615927565b615d2b915060203d602011615b8a57615b7a8183610966565b386158be565b8061159c6000615d4093610966565b38615880565b615d5f915060203d6020116115e5576115d78183610966565b3861582b565b9050615d8a91975060403d604011615d93575b615d828183610966565b8101906155c1565b969096386157cf565b503d615d78565b615daf91503d806000833e61150f8183610966565b3861577f565b90949391956157519396615dc761549f565b9161572b6154dd565b90610573601e602960405180956802db1b430b4b724b2160bd1b6020830152615e028151809260208686019101610399565b81017f5d205b4552524f525d2061626f727441646472657373206973207a65726f0000838201520301600119810185520183610966565b6007600461057392949394602f6040519687926e021b0b713ba103a3930b739b332b91608d1b6020850152615e778151809260208688019101610399565b83016301037b3160e51b83820152615e99825180936020603385019101610399565b01016620746f6b656e7360c81b838201520301601819810185520183610966565b600460129295946017610573956029604051998a966802db1b430b4b724b2160bd1b6020890152615ef4815180926020868c019101610399565b87017f5d205b4552524f525d205472616e7366657272696e672000000000000000000083820152615f2f825180936020604085019101610399565b01016301037b3160e51b83820152615f51825180936020601b85019101610399565b0101710103a37b5b2b739903a379039b2b73232b9160751b83820152611dd8825180936020601685019101610399565b602d6105739193929360296040519586926802db1b430b4b724b2160bd1b6020850152615fb78151809260208688019101610399565b83017f5d205b494e464f5d205472616e7366657272696e6720746f6b656e7320746f20838201526c030b137b93a20b2323932b9b99609d1b6049820152611dd8825180936020605685019101610399565b6102d29160a0616021835160c0845260c08401906103bc565b92600180831b036020820151166020840152604081015160408401526060810151151560608401526080810151608084015201519060a08184039101526103bc565b9060206102d2928181520190616008565b601d90601261057393959460296040519788946802db1b430b4b724b2160bd1b60208701526160ac815180926020868a019101610399565b85017102e902da4a72327ae9021b7b73a3930b1ba160751b838201526160dc825180936020603b85019101610399565b01017f20657865637574696e67206f6e41626f72742c20636f6e746578743a2000000083820152611dd8825180936020602f85019101610399565b6001600160a01b0390911681526040602082018190526102d292910190616008565b90610573601c602960405180956802db1b430b4b724b2160bd1b602083015261616b8151809260208686019101610399565b81017f5d205b494e464f5d204576656e742066726f6d206f6e41626f72743a00000000838201520301600319810185520183610966565b601a6105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526161d88151809260208688019101610399565b83017f5d205b4552524f525d206f6e41626f7274206661696c65643a2000000000000083820152611dd8825180936020604385019101610399565b6001600160a01b0381169360009390928515616a625760205460405163348051d760e11b81526004810191909152858160248160008051602061924f8339815191525afa90811561151d578691616a48575b50604051632b65311f60e11b81526001600160a01b038516600482015290868260248160008051602061924f8339815191525afa91821561151d5787926162b7926114ea928592616a2c575b50615f81565b616836575b604080516001600160a01b0390951660208601526162dd90859081016113f8565b6162e56109b4565b9384526001600160a01b0385166020850152604084018590528415156060850152608084015260a083015260205460405163348051d760e11b8152600481019190915283818060248101038160008051602061924f8339815191525afa90811561151d57849161681c575b50604051632b65311f60e11b81526001600160a01b0383166004820152848160248160008051602061924f8339815191525afa801561151d576163aa918691616802575b5085604051614823816141f48960208301616063565b038160008051602061924f8339815191525afa90811561151d576163d9936114ea9388936167e6575b50616074565b601f546004906020906163f79060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d5784916167c7575b5060008051602061924f8339815191523b156167975760405163ca669fa760e01b81526001600160a01b0391909116600482015283816024818360008051602061924f8339815191525af1801561151d576167b3575b5060008051602061924f8339815191523b156167af576040516320d797a960e11b815283816004818360008051602061924f8339815191525af1801561151d5761679b575b50601f546164cd9060081c6001600160a01b0316611338565b90813b15616797579183916164f99383604051809681958294632095dedb60e01b845260048401616117565b03925af19081616783575b50616583576165399150616516611d28565b816020546040518095819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d5761057393836114ea9492616568575b50506161a2565b61657c92503d8091833e61150f8183610966565b3880616561565b60405163064554e960e21b81529181836004818360008051602061924f8339815191525af192831561151d578293616767575b50815b8351811015614c1557816165d561133860406149e085896145d1565b146165e3575b6001016165b9565b60205460405163348051d760e11b81526004810191909152909490838160248160008051602061924f8339815191525afa90811561151d57616630916114ea91869161674d575b50616139565b616643836147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d5761666f9185916167395750614aae61464e565b61667f836020614ac488886145d1565b038160008051602061924f8339815191525afa801561151d576166ab9185916167255750614aae614676565b825b6166b786866145d1565b51515181101561671e578084614b416166d493614b3a8a8a6145d1565b038160008051602061924f8339815191525afa91821561151d5760019261670491879161670a5750614b9361469b565b016166ad565b614bbb91503d8089833e61150f8183610966565b50936165db565b614bdd91503d8087833e61150f8183610966565b614bf691503d8087833e61150f8183610966565b61676191503d8088833e61150f8183610966565b3861662a565b61677c9193503d8084833e614c2f8183610966565b91386165b6565b8061159c8461679193610966565b38616504565b8380fd5b8061159c856167a993610966565b386164b4565b8280fd5b8061159c856167c193610966565b3861646f565b6167e0915060203d6020116115e5576115d78183610966565b38616419565b6167fb9193503d808a833e61150f8183610966565b91386163d3565b61681691503d8088833e61150f8183610966565b38616394565b61683091503d8086833e61150f8183610966565b38616350565b601f546004906020906168549060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d578691616a0d575b5060008051602061924f8339815191523b156169d85760405163ca669fa760e01b81526001600160a01b038216600482015286816024818360008051602061924f8339815191525af1801561151d576169f9575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018790526020816044818a805af1801561151d576169dc575b5060008051602061924f8339815191523b156169d85760405163ca669fa760e01b81526001600160a01b0391909116600482015285816024818360008051602061924f8339815191525af1801561151d576169c4575b5060405163a9059cbb60e01b81526001600160a01b0384166004820152602481018690529360208560448189805af190811561151d576113f8956162dd926169a5575b509450506162bc565b6169bd9060203d602011615b8a57615b7a8183610966565b503861699c565b8061159c876169d293610966565b38616959565b8580fd5b6169f49060203d602011615b8a57615b7a8183610966565b616903565b8061159c88616a0793610966565b386168ca565b616a26915060203d6020116115e5576115d78183610966565b38616876565b616a419192503d8087833e61150f8183610966565b90386162b1565b616a5c91503d8088833e61150f8183610966565b38616265565b60205460405163348051d760e11b815260048101919091528590818160248160008051602061924f8339815191525afa90811561151d57616aae916114ea918491616b8a575b50615dd0565b5060405163348051d760e11b81526000600482018190528160248160008051602061924f8339815191525afa90811561151d57600091616b6f575b50604051632b65311f60e11b81526000600482018190528180602481015b038160008051602061924f8339815191525afa801561151d57616b4e92616b3692600092616b52575b50615e39565b60405162461bcd60e51b815291829160048301610575565b0390fd5b616b689192503d806000833e61150f8183610966565b9084616b30565b616b8491503d806000833e61150f8183610966565b81616ae9565b616b9e91503d8086833e61150f8183610966565b84616aa8565b6001600160a01b03811695949093909290919086156173e95760205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d576000916173ce575b50604051632b65311f60e11b81526001600160a01b038716600482015260008160248160008051602061924f8339815191525afa801561151d57616c4a926114ea926000926173b85750615f81565b6001600160a01b038116801515806173af575b6171ab575b50604080516001600160a01b039097166020880152616cae9190616c9390889081015b03601f198101895288610966565b616c9b6109b4565b9687526001600160a01b03166020870152565b604085015260016060850152608084015260a083015260205460405163348051d760e11b815260048101919091526000818060248101038160008051602061924f8339815191525afa90811561151d57600091617190575b50604051632b65311f60e11b81526001600160a01b038316600482015260008160248160008051602061924f8339815191525afa801561151d57616d6391600091617175575b506000604051614823816141f48960208301616063565b038160008051602061924f8339815191525afa90811561151d57616d92936114ea9360009361715f5750616074565b601f54600490602090616db09060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617140575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d5761712b575b5060008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57617116575b50601f54616e899060081c6001600160a01b0316611338565b91823b1561025657616eb59260009283604051809681958294632095dedb60e01b845260048401616117565b03925af19081617101575b50616f355750616ece611d28565b60205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa91821561151d57610573926114ea92600091616f1a575b506161a2565b616f2f91503d806000833e61150f8183610966565b38616f14565b60405163064554e960e21b8152906000826004818360008051602061924f8339815191525af191821561151d576000926170e6575b5060005b82518110156170e15781616f8a61133860406149e085886145d1565b14616f98575b600101616f6e565b60205460405163348051d760e11b8152600481019190915290939060008160248160008051602061924f8339815191525afa90811561151d57616fe6916114ea916000916170ce5750616139565b616ffa60006147be60406149e088886145d1565b038160008051602061924f8339815191525afa801561151d5761702791600091614be35750614aae61464e565b61703860006020614ac487876145d1565b038160008051602061924f8339815191525afa801561151d5761706591600091614bca5750614aae614676565b60005b61707285856145d1565b5151518110156170c757806000614b4161709093614b3a89896145d1565b038160008051602061924f8339815191525afa91821561151d576001926170c191600091614ba85750614b9361469b565b01617068565b5092616f90565b616761913d8091833e61150f8183610966565b505050565b6170fa91923d8091833e614c2f8183610966565b9038616f6a565b8061159c600061711093610966565b38616ec0565b8061159c600061712593610966565b38616e70565b8061159c600061713a93610966565b38616e2a565b617159915060203d6020116115e5576115d78183610966565b38616dd3565b6167fb9193503d806000833e61150f8183610966565b61718a91503d806000833e61150f8183610966565b38616d4c565b6171a591503d806000833e61150f8183610966565b38616d06565b601f549091906004906020906171cc9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617390575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03821660048201526000816024818360008051602061924f8339815191525af1801561151d5761737b575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018590526020816044816000885af1801561151d5761735e575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57617349575b5060405163a9059cbb60e01b81526001600160a01b03871660048201526024810184905291602090839060449082906000905af1801561151d57616c8597616cae93616c939261732a575b5097505090616c62565b6173429060203d602011615b8a57615b7a8183610966565b5038617320565b8061159c600061735893610966565b386172d5565b6173769060203d602011615b8a57615b7a8183610966565b61727e565b8061159c600061738a93610966565b38617244565b6173a9915060203d6020116115e5576115d78183610966565b386171ef565b50821515616c5d565b616a419192503d806000833e61150f8183610966565b6173e391503d806000833e61150f8183610966565b38616bfb565b95509250505060205460405163348051d760e11b81526000818061741585600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57617444916114ea916000916178735750615dd0565b6001600160a01b038416908115158061786a575b156177e15760405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d576000916177c6575b5060405163348051d760e11b8152600481018490529460008660248160008051602061924f8339815191525afa95861561151d576000966177a3575b50604051632b65311f60e11b81526001600160a01b03909116600482015260008180602481015b038160008051602061924f8339815191525afa90811561151d57600091617788575b50604051632b65311f60e11b81526001600160a01b03861660048201529060008260248160008051602061924f8339815191525afa90811561151d57600497617572946114ea9460009461776b575b50615eba565b601f5460209061758d9060081c6001600160a01b0316611338565b6040516313917f7760e11b815295869182905afa93841561151d5760009461774a575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03851660048201526000816024818360008051602061924f8339815191525af1801561151d57617735575b506040516311f9fbc960e21b81526001600160a01b0385166004820152602481018390526020816044816000865af1801561151d57617718575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039490941660048501526000846024818360008051602061924f8339815191525af192831561151d576176d794602094617703575b5060405163a9059cbb60e01b81526001600160a01b03909116600482015260248101929092529092839190829060009082906044820190565b03925af1801561151d576176e85750565b6177009060203d602011615b8a57615b7a8183610966565b50565b8061159c600061771293610966565b3861769e565b6177309060203d602011615b8a57615b7a8183610966565b61763f565b8061159c600061774493610966565b38617605565b61776491945060203d6020116115e5576115d78183610966565b92386175b0565b6177819194503d806000833e61150f8183610966565b923861756c565b61779d91503d806000833e61150f8183610966565b3861751d565b6174fb9196506177be6000913d8084833e61150f8183610966565b9691506174d4565b6177db91503d806000833e61150f8183610966565b38617498565b60405163348051d760e11b8152600481018490528560008260248160008051602061924f8339815191525afa91821561151d57600092617847575b50604051632b65311f60e11b81526001600160a01b0390911660048201526000818060248101616b07565b616b079192506178626000913d8084833e61150f8183610966565b92915061781c565b50821515617458565b61788891503d806000833e61150f8183610966565b38616aa8565b6001600160a01b03811695949093909290919086156173e95760205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d57600091617fcc575b50604051632b65311f60e11b81526001600160a01b038716600482015260008160248160008051602061924f8339815191525afa801561151d57617934926114ea926000926173b85750615f81565b6001600160a01b03811680151580617fc3575b617dbf575b50604080516001600160a01b0390971660208801526179739190616c939088908101616c85565b604085015260006060850152608084015260a083015260205460405163348051d760e11b815260048101919091526000818060248101038160008051602061924f8339815191525afa90811561151d57600091617da4575b50604051632b65311f60e11b81526001600160a01b038316600482015260008160248160008051602061924f8339815191525afa801561151d57617a279160009161717557506000604051614823816141f48960208301616063565b038160008051602061924f8339815191525afa90811561151d57617a56936114ea9360009361715f5750616074565b601f54600490602090617a749060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617d85575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57617d70575b5060008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57617d5b575b50601f54617b4d9060081c6001600160a01b0316611338565b91823b1561025657617b799260009283604051809681958294632095dedb60e01b845260048401616117565b03925af19081617d46575b50617b925750616ece611d28565b60405163064554e960e21b8152906000826004818360008051602061924f8339815191525af191821561151d57600092617d2b575b5060005b82518110156170e15781617be761133860406149e085886145d1565b14617bf5575b600101617bcb565b60205460405163348051d760e11b8152600481019190915290939060008160248160008051602061924f8339815191525afa90811561151d57617c43916114ea916000916170ce5750616139565b617c5760006147be60406149e088886145d1565b038160008051602061924f8339815191525afa801561151d57617c8491600091614be35750614aae61464e565b617c9560006020614ac487876145d1565b038160008051602061924f8339815191525afa801561151d57617cc291600091614bca5750614aae614676565b60005b617ccf85856145d1565b515151811015617d2457806000614b41617ced93614b3a89896145d1565b038160008051602061924f8339815191525afa91821561151d57600192617d1e91600091614ba85750614b9361469b565b01617cc5565b5092617bed565b617d3f91923d8091833e614c2f8183610966565b9038617bc7565b8061159c6000617d5593610966565b38617b84565b8061159c6000617d6a93610966565b38617b34565b8061159c6000617d7f93610966565b38617aee565b617d9e915060203d6020116115e5576115d78183610966565b38617a97565b617db991503d806000833e61150f8183610966565b386179cb565b601f54909190600490602090617de09060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617fa4575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03821660048201526000816024818360008051602061924f8339815191525af1801561151d57617f8f575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018590526020816044816000885af1801561151d57617f72575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57617f5d575b5060405163a9059cbb60e01b81526001600160a01b03871660048201526024810184905291602090839060449082906000905af1801561151d57616c859761797393616c9392617f3e575b509750509061794c565b617f569060203d602011615b8a57615b7a8183610966565b5038617f34565b8061159c6000617f6c93610966565b38617ee9565b617f8a9060203d602011615b8a57615b7a8183610966565b617e92565b8061159c6000617f9e93610966565b38617e58565b617fbd915060203d6020116115e5576115d78183610966565b38617e03565b50821515617947565b617fe191503d806000833e61150f8183610966565b386178e5565b600080916020815191016a636f6e736f6c652e6c6f675afa50565b614202618034916141f461057394604051948593634b5c427760e01b60208601526040602486015260648501906103bc565b838103602319016044850152906103bc565b6141f4610573946180936142029461807c96604051978896635ab84e1f60e01b60208901526080602489015260a48801906103bc565b9160448701526023198683030160648701526103bc565b838103602319016084850152906103bc565b156180ac57565b60405162461bcd60e51b8152602060048201526016602482015275155b9a5cddd85c081c9bdd5d195c881b9bdd081cd95d60521b6044820152606490fd5b156180f157565b60405162461bcd60e51b815260206004820152600d60248201526c15d6915510481b9bdd081cd95d609a1b6044820152606490fd5b604051608091906181378382610966565b6003815291601f1901366020840137565b604051606091906181598382610966565b6002815291601f1901366020840137565b602081830312610256578051906001600160401b03821161025657019080601f8301121561025657815161819d81611712565b926181ab6040519485610966565b81845260208085019260051b82010192831161025657602001905b8282106181d35750505090565b81518152602091820191016181c6565b919260809361820892979695978452602084015260a0604084015260a0830190610284565b6001600160a01b0390951660608201520152565b6040519061822b604083610966565b600282526134b760f11b6020830152565b6001600791601a61057394969560296040519889946802db1b430b4b724b2160bd1b6020870152618276815180926020868a019101610399565b85017f5d205b494e464f5d2053776170207375636365737366756c3a20000000000000838201526182b1825180936020604385019101610399565b0101600160fd1b838201526182d0825180936020601b85019101610399565b010166081b995959195960ca1b838201520301601819810185520183610966565b601f6105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526183278151809260208688019101610399565b83017f5d205b4552524f525d20556e69737761702073776170206661696c65643a200083820152611dd8825180936020604885019101610399565b60255493946001600160a01b0390941693909291906183828515156180a5565b6026546183a29061839b906001600160a01b0316611338565b15156180ea565b60405163095ea7b360e01b81526001600160a01b039586166004820152602481018790529484169460208160448160008a5af1801561151d5761869b575b5060006183eb618126565b91618408866183f98561459f565b6001600160a01b039091169052565b602654618422906001600160a01b03165b6183f9856145b1565b61842f846183f9856145c1565b61843842615439565b60255490939061845290611338906001600160a01b031681565b90838a61847660405197889687958694634401edf760e11b86528d600487016181e3565b03925af1908161867a575b506184f95750505050618492611d28565b60205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa91821561151d576102d2926114ea926000916184de575b506182f1565b6184f391503d806000833e61150f8183610966565b386184d8565b60265461851991906001600160a01b0316809361851461821c565b61916f565b918251156186735761852d6185369361459f565b5161851461821c565b9081511561866e5760205460405163348051d760e11b81526004810191909152925060008360248160008051602061924f8339815191525afa90811561151d576185ae93600092618651575b50600061858e8461459f565b516040518096819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa93841561151d5760009461862f575b506000600491604051928380926306fdde0360e01b82525afa801561151d5761860e94618609936114ea93600093618612575b5061823c565b61459f565b5190565b6186289193503d806000833e61150f8183610966565b9138618603565b60049194506186496000913d8084833e61150f8183610966565b9491506185d0565b6186679192503d806000833e61150f8183610966565b9038618582565b505090565b5050505090565b618696903d806000833e61868e8183610966565b81019061816a565b618481565b6186b39060203d602011615b8a57615b7a8183610966565b6183e0565b604051906186c7604083610966565b600382526267617360e81b6020830152565b60046012929594602e610573956029604051998a966802db1b430b4b724b2160bd1b6020890152618713815180926020868c019101610399565b87017f5d205b4552524f525d2072657665727441646472657373206973207a65726f2c838201526d0103a3930b739b332b93934b733960951b6049820152618765825180936020605785019101610399565b01016301037b3160e51b83820152615f51825180936020603285019101610399565b1561878e57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b6001600160a01b03918216815291166020820152604081019190915260a06060820181905260009082015260c0608082018190526102d2929101906142d9565b6080906102d2939260018060a01b03168152606060208201526000606082015281604082015201906142d9565b93949190946060860151926188456109a5565b6001600160a01b0382168152936001600160a01b038416602086015285604086015260608501526188796020880151151590565b15618e15575060008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57618e00575b5060405163348051d760e11b81526004810186905260008160248160008051602061924f8339815191525afa90811561151d57600091618de5575b508651618917906000906001600160a01b03166147be565b038160008051602061924f8339815191525afa801561151d5761895391600091618dca575b506000604051614823816141f48a6020830161431a565b038160008051602061924f8339815191525afa90811561151d57618982936114ea93600093614c87575061432b565b600460206189a061133861143d896000526021602052604060002090565b604051635b11259160e01b815292839182905afa90811561151d57600091618dab575b5060008051602061924f8339815191523b15610256576040516303223eab60e11b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57618d96575b5015618cc85750618a3b61133861143d856000526021602052604060002090565b608085015185519192916001600160a01b0316833b156102565760405163cb7ba8e560e01b815294600094869485938491618a799160048401618805565b0393f1801561151d57618cb3575b505b60008051602061924f8339815191523b15610256576040516390c5013b60e01b81526000816004818360008051602061924f8339815191525af1801561151d57618c9e575b5060405163064554e960e21b8152916000836004818360008051602061924f8339815191525af192831561151d57600093618c83575b5060005b8351811015614c1557618b2060406149e083876145d1565b8251618b34906001600160a01b0316611338565b6001600160a01b0390911614618b4d575b600101618b08565b60405163348051d760e11b815260048101849052909491929060008160248160008051602061924f8339815191525afa90811561151d57618b99916114ea91600091614bfc57506145e5565b618bad60006147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d57618bda91600091614be35750614aae61464e565b618beb60006020614ac488886145d1565b038160008051602061924f8339815191525afa801561151d57618c1891600091614bca5750614aae614676565b60005b618c2586866145d1565b515151811015618c7a57806000614b41618c4393614b3a8a8a6145d1565b038160008051602061924f8339815191525afa91821561151d57600192618c7491600091614ba85750614b9361469b565b01618c1b565b50919093618b45565b618c9791933d8091833e614c2f8183610966565b9138618b04565b8061159c6000618cad93610966565b38618ace565b8061159c6000618cc293610966565b38618a87565b909160046020618ce861133861143d886000526021602052604060002090565b60405163dda79b7560e01b815292839182905afa90811561151d57600091618d77575b50608086015186516001600160a01b0392831694919216843b15610256576000948591618d4e60405198899788968794634cd1e1ab60e11b8652600486016187c5565b0393f1801561151d57618d62575b50618a89565b8061159c6000618d7193610966565b38618d5c565b618d90915060203d6020116115e5576115d78183610966565b38618d0b565b8061159c6000618da593610966565b38618a1a565b618dc4915060203d6020116115e5576115d78183610966565b386189c3565b618ddf91503d806000833e61150f8183610966565b3861893c565b618dfa91503d806000833e61150f8183610966565b386188ff565b8061159c6000618e0f93610966565b386188c4565b60405163348051d760e11b81526004810187905294969095929491935060008260248160008051602061924f8339815191525afa801561151d576114ea612cb491618e679460009161540e5750614207565b936001600160a01b03851615618fa8575b506020618e9761133861143d6004946000526021602052604060002090565b604051635b11259160e01b815292839182905afa90811561151d57600091618f89575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57618f74575b5015618f325750600080806105739481945af1618f2c611d28565b50618787565b60405163a9059cbb60e01b81526001600160a01b039283166004820152602481019390935260209183916044918391600091165af1801561151d576176e85750565b8061159c6000618f8393610966565b38618f11565b618fa2915060203d6020116115e5576115d78183610966565b38618eba565b60405163348051d760e11b81526004810183905291945060008260248160008051602061924f8339815191525afa91821561151d5760009261913b575b5060405163348051d760e11b8152600481018790529060008260248160008051602061924f8339815191525afa91821561151d5760009261911e575b50600084156190bc57506190336186b8565b604051632b65311f60e11b81526001600160a01b03831660048201529260008460248160008051602061924f8339815191525afa92831561151d576190946114ea618e97956113389561143d9560049a60209a60009461909f575b506186d9565b979450505050618e78565b6190b59194503d806000833e61150f8183610966565b923861908e565b604051632b65311f60e11b81526001600160a01b0387166004820152818160248160008051602061924f8339815191525afa91821561151d578092619103575b5050619033565b61911792503d8091833e61150f8183610966565b38806190fc565b6191349192503d806000833e61150f8183610966565b9038619021565b6191519192503d806000833e61150f8183610966565b9038618fe5565b6040906102d2939281528160208201520190610284565b90919261918b90618419619181618148565b956183f98761459f565b6020815191012061919a61821c565b6020815191012014600014619211576025546191e69260009290916191c990611338906001600160a01b031681565b906040518095819482936307c0329d60e21b845260048401619158565b03915afa90811561151d576000916191fc575090565b6102d291503d806000833e61868e8183610966565b6025546191e692600092909161923190611338906001600160a01b031681565b9060405180958194829363d06ca61f60e01b84526004840161915856fe0000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da26469706673582212201fce51ed1ff9d0f5f4ea6ac5dba002558bc8864b5d87779ba4c2fa367c0a470364736f6c634300081a0033"; - -type NodeLogicMockConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: NodeLogicMockConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class NodeLogicMock__factory extends ContractFactory { - constructor(...args: NodeLogicMockConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(overrides || {}); - } - override deploy(overrides?: NonPayableOverrides & { from?: string }) { - return super.deploy(overrides || {}) as Promise< - NodeLogicMock & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): NodeLogicMock__factory { - return super.connect(runner) as NodeLogicMock__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): NodeLogicMockInterface { - return new Interface(_abi) as NodeLogicMockInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): NodeLogicMock { - return new Contract(address, _abi, runner) as unknown as NodeLogicMock; - } -} diff --git a/typechain-types/factories/contracts/testing/mockGateway/WrapGatewayEVM__factory.ts b/typechain-types/factories/contracts/testing/mockGateway/WrapGatewayEVM__factory.ts deleted file mode 100644 index 1248d3e6..00000000 --- a/typechain-types/factories/contracts/testing/mockGateway/WrapGatewayEVM__factory.ts +++ /dev/null @@ -1,155 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { - Signer, - BigNumberish, - AddressLike, - ContractDeployTransaction, - ContractRunner, -} from "ethers"; -import type { NonPayableOverrides } from "../../../../common"; -import type { - WrapGatewayEVM, - WrapGatewayEVMInterface, -} from "../../../../contracts/testing/mockGateway/WrapGatewayEVM"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "_gateway", - type: "address", - }, - { - internalType: "address", - name: "_nodeLogic", - type: "address", - }, - { - internalType: "uint256", - name: "_chainId", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - stateMutability: "payable", - type: "fallback", - }, - { - inputs: [], - name: "CHAIN_ID", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "GATEWAY_IMPL", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "NODE_LOGIC", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -const _bytecode = - "0x60e0346100d757601f610bd638819003918201601f19168301916001600160401b038311848410176100dc578084926060946040528339810103126100d757610047816100f2565b906040610056602083016100f2565b9101519160805260a05260c052604051610acf90816101078239608051818181608a0152610196015260a05181818160dd0152818161070a015281816107e5015281816108990152818161094901526109f9015260c051818181604f0152818161076701528181610846015281816108f5015281816109ac0152610a530152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036100d75756fe6080604052600436106101815760003560e01c8063589dd5da1461007757806385e1f4d0146100375763ced52b4003610181576100c7565b346100725760003660031901126100725760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b600080fd5b34610072576000366003190112610072577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b600091031261007257565b34610072576000366003190112610072576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761013e57604052565b61010c565b90601f8019910116810190811067ffffffffffffffff82111761013e57604052565b67ffffffffffffffff811161013e57601f01601f191660200190565b600080604051368282378036810183815203907f00000000000000000000000000000000000000000000000000000000000000005af43d1561023c573d906101c882610165565b916101d66040519384610143565b82523d6000602084013e5b156101f7576101ef366106c3565b602081519101f35b60405162461bcd60e51b815260206004820152601b60248201527f476174657761792064656c656761746563616c6c206661696c656400000000006044820152606490fd5b6060906101e1565b906004116100725790600490565b909291928360041161007257831161007257600401916003190190565b356001600160e01b031981169291906004821061028a575050565b6001600160e01b031960049290920360031b82901b16169150565b6001600160a01b0381160361007257565b81601f82011215610072578035906102cd82610165565b926102db6040519485610143565b8284526020838301011161007257816000926020809301838601378301015290565b3590610308826102a5565b565b91909160a081840312610072576040519061032482610122565b81938135610331816102a5565b835260208201358015158103610072576020840152610352604083016102fd565b604084015260608201359167ffffffffffffffff83116100725761037c60809392849383016102b6565b60608501520135910152565b9160608383031261007257823561039e816102a5565b92602081013567ffffffffffffffff811161007257836103bf9183016102b6565b92604082013567ffffffffffffffff8111610072576103de920161030a565b90565b919082519283825260005b84811061040d575050826000602080949584010152601f8019910116010190565b806020809284010151828286010152016103ec565b9060018060a01b03825116815260208201511515602082015260018060a01b036040830151166040820152608080610469606085015160a0606086015260a08501906103e1565b93015191015290565b9081526001600160a01b0391821660208201529116604082015260a0606082018190526103de9391926104a7918401906103e1565b916080818403910152610422565b6040513d6000823e3d90fd5b91909160a0818403126100725780356104d9816102a5565b9260208201359260408301356104ee816102a5565b92606081013567ffffffffffffffff8111610072578361050f9183016102b6565b92608082013567ffffffffffffffff8111610072576103de920161030a565b9081526001600160a01b0391821660208201529116604082015260608101919091526000608082015260e060a082018190526103de939192610572918401906103e1565b9160c0818403910152610422565b9081526001600160a01b039182166020820152918116604083015260608201929092529116608082015260e060a082018190526103de939192610572918401906103e1565b906080828203126100725781356105db816102a5565b9260208301359260408101356105f0816102a5565b92606082013567ffffffffffffffff8111610072576103de920161030a565b9081526001600160a01b0391821660208201529116604082015260608101919091526000608082015260c060a082018190526103de92910190610422565b9081526001600160a01b039182166020820152918116604083015260608201929092529116608082015260c060a082018190526103de92910190610422565b9190916040818403126100725780356106a4816102a5565b92602082013567ffffffffffffffff8111610072576103de920161030a565b6106e16106d1826000610244565b6001600160e01b0319929161026f565b16631c9ab25f60e21b81036107ba575061070081610708926000610252565b81019061068c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169190823b156100725760405163ced6e79360e01b815292600092849283918591839161078f919034906001600160a01b0316337f00000000000000000000000000000000000000000000000000000000000000006004870161060f565b03925af180156107b5576107a05750565b806107af600061030893610143565b806100bc565b6104b5565b630102614b60e41b810361086e57506107d8816107e0926000610252565b8101906105c5565b9290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b156100725760405163ced6e79360e01b815294600094869485938793859361078f9391926001600160a01b0391821692909116337f00000000000000000000000000000000000000000000000000000000000000006004880161064d565b63744b9b8b60e01b810361091d575061088c81610894926000610252565b810190610388565b9091907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156100725760405163ad82a62760e01b815293600093859384928692849261078f92909134906001600160a01b0316337f00000000000000000000000000000000000000000000000000000000000000006004880161052e565b631a13c76f60e31b81036109d4575061093b81610943926000610252565b8101906104c1565b909391927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b156100725760405163ad82a62760e01b815295600095879586948894869461078f94919390926001600160a01b0392831692909116337f000000000000000000000000000000000000000000000000000000000000000060048901610580565b6306fb33ad60e21b146109e5575b50565b61088c816109f4926000610252565b9091907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b15610072576040516375e7f8e360e11b8152936000938593849286928492610a7b9290916001600160a01b0316337f000000000000000000000000000000000000000000000000000000000000000060048701610472565b03925af180156107b557156109e257806107af60006103089361014356fea2646970667358221220a71cbde33d0601ceacd47bd11f54cc311e513e7ffbb3ec6ec289e9912d3be94b64736f6c634300081a0033"; - -type WrapGatewayEVMConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: WrapGatewayEVMConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class WrapGatewayEVM__factory extends ContractFactory { - constructor(...args: WrapGatewayEVMConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - _gateway: AddressLike, - _nodeLogic: AddressLike, - _chainId: BigNumberish, - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction( - _gateway, - _nodeLogic, - _chainId, - overrides || {} - ); - } - override deploy( - _gateway: AddressLike, - _nodeLogic: AddressLike, - _chainId: BigNumberish, - overrides?: NonPayableOverrides & { from?: string } - ) { - return super.deploy( - _gateway, - _nodeLogic, - _chainId, - overrides || {} - ) as Promise< - WrapGatewayEVM & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): WrapGatewayEVM__factory { - return super.connect(runner) as WrapGatewayEVM__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): WrapGatewayEVMInterface { - return new Interface(_abi) as WrapGatewayEVMInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): WrapGatewayEVM { - return new Contract(address, _abi, runner) as unknown as WrapGatewayEVM; - } -} diff --git a/typechain-types/factories/contracts/testing/mockGateway/WrapGatewayZEVM__factory.ts b/typechain-types/factories/contracts/testing/mockGateway/WrapGatewayZEVM__factory.ts deleted file mode 100644 index bf66d86b..00000000 --- a/typechain-types/factories/contracts/testing/mockGateway/WrapGatewayZEVM__factory.ts +++ /dev/null @@ -1,124 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { - Signer, - AddressLike, - ContractDeployTransaction, - ContractRunner, -} from "ethers"; -import type { NonPayableOverrides } from "../../../../common"; -import type { - WrapGatewayZEVM, - WrapGatewayZEVMInterface, -} from "../../../../contracts/testing/mockGateway/WrapGatewayZEVM"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "_gateway", - type: "address", - }, - { - internalType: "address", - name: "_nodeLogic", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - stateMutability: "payable", - type: "fallback", - }, - { - inputs: [], - name: "GATEWAY_ZEVM_IMPL", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "NODE_LOGIC", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -const _bytecode = - "0x60c034608d57601f61094c38819003918201601f19168301916001600160401b038311848410176092578084926040948552833981010312608d57604b602060458360a8565b920160a8565b9060805260a05260405161089090816100bc8239608051818181603d015261012d015260a0518181816084015281816106960152818161074e01526107db0152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203608d5756fe6080604052600436106101185760003560e01c8063ced52b40146100715763d9d2f07403610118573461006c57600036600319011261006c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b600080fd5b3461006c57600036600319011261006c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b600091031261006c57565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b038211176100f857604052565b6100c1565b6001600160401b0381116100f857601f01601f191660200190565b600080604051368282378036810183815203907f00000000000000000000000000000000000000000000000000000000000000005af43d156101d3573d9061015f826100fd565b9161016d60405193846100d7565b82523d6000602084013e5b1561018e576101863661065f565b602081519101f35b60405162461bcd60e51b815260206004820152601f60248201527f476174657761795a45564d2064656c656761746563616c6c206661696c6564006044820152606490fd5b606090610178565b909291928360041161006c57831161006c57600401916003190190565b81601f8201121561006c5780359061020f826100fd565b9261021d60405194856100d7565b8284526020838301011161006c57816000926020809301838601378301015290565b6001600160a01b0381160361006c57565b3590811515820361006c57565b919082604091031261006c57604051604081018181106001600160401b038211176100f85760405260206102978183958035855201610250565b910152565b91909160a08184031261006c576040519060a082018281106001600160401b038211176100f857604052819381356102d38161023f565b83526102e160208301610250565b602084015260408201356102f48161023f565b60408401526060820135916001600160401b03831161006c5761031d60809392849383016101f8565b60608501520135910152565b9160e08383031261006c5782356001600160401b03811161006c57826103509185016101f8565b9260208101359260408201356103658161023f565b9260608301356001600160401b03811161006c57826103859185016101f8565b92610393836080830161025d565b9260c08201356001600160401b03811161006c576103b1920161029c565b90565b919082519283825260005b8481106103e0575050826000602080949584010152601f8019910116010190565b806020809284010151828286010152016103bf565b9060018060a01b03825116815260208201511515602082015260018060a01b03604083015116604082015260808061043c606085015160a0606086015260a08501906103b4565b93015191015290565b93946103b19795610475610498946104ae969460018060a01b0316885261010060208901526101008801906103b4565b60408701939093526001600160a01b0316606086015284820360808601526103b4565b845160a0840152602090940151151560c0830152565b60e08184039101526103f5565b6040513d6000823e3d90fd5b9060808282031261006c5781356001600160401b03811161006c57816104ee9184016101f8565b9260208301359260408101356105038161023f565b9260608201356001600160401b03811161006c576103b1920161029c565b6001600160a01b03909116815260a0602082018190526103b1959394919261054b918401906103b4565b60408301949094526001600160a01b031660608201528083036080909101526103f5565b91909160c08184031261006c5780356001600160401b03811161006c57836105989183016101f8565b9260208201356105a78161023f565b9260408301356001600160401b03811161006c57826105c79185016101f8565b926105d5836060830161025d565b9260a08201356001600160401b03811161006c576103b1920161029c565b926103b1969461061f6106529461063c9460018060a01b0316875260e0602088015260e08701906103b4565b6001600160a01b03909216604086015284820360608601526103b4565b84516080840152602090940151151560a0830152565b60c08184039101526103f5565b6000356001600160e01b0319166306cb898360e01b8103610723575061068a816106929260006101db565b81019061056f565b90937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561006c576000946106f5869260405198899788968795632c612e1f60e21b875260018060a01b03169033600488016105f3565b03925af1801561071e57610707575b50565b80610716600061071c936100d7565b806100b6565b565b6104bb565b637c0dcb5f60e01b81036107ac5750610741816107499260006101db565b8101906104c7565b9290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b1561006c57600080946106f5604051978896879586946308327f7960e41b865260018060a01b0316913360048701610521565b637b15118b60e01b146107bc5750565b6107cb816107d39260006101db565b810190610329565b9194909390927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169290833b1561006c5761083c600096928793604051998a988997889663567ee10960e11b885260018060a01b0316913360048901610445565b03925af1801561071e57156107045780610716600061071c936100d756fea2646970667358221220c3b911f522f83c8ee9102b4245bed2a13c90092e91b0140cf5e5b3a0b9aa0c6f64736f6c634300081a0033"; - -type WrapGatewayZEVMConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: WrapGatewayZEVMConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class WrapGatewayZEVM__factory extends ContractFactory { - constructor(...args: WrapGatewayZEVMConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - _gateway: AddressLike, - _nodeLogic: AddressLike, - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(_gateway, _nodeLogic, overrides || {}); - } - override deploy( - _gateway: AddressLike, - _nodeLogic: AddressLike, - overrides?: NonPayableOverrides & { from?: string } - ) { - return super.deploy(_gateway, _nodeLogic, overrides || {}) as Promise< - WrapGatewayZEVM & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): WrapGatewayZEVM__factory { - return super.connect(runner) as WrapGatewayZEVM__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): WrapGatewayZEVMInterface { - return new Interface(_abi) as WrapGatewayZEVMInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): WrapGatewayZEVM { - return new Contract(address, _abi, runner) as unknown as WrapGatewayZEVM; - } -} diff --git a/typechain-types/factories/contracts/testing/mockGateway/index.ts b/typechain-types/factories/contracts/testing/mockGateway/index.ts deleted file mode 100644 index 035d2175..00000000 --- a/typechain-types/factories/contracts/testing/mockGateway/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { NodeLogicMock__factory } from "./NodeLogicMock__factory"; -export { WrapGatewayEVM__factory } from "./WrapGatewayEVM__factory"; -export { WrapGatewayZEVM__factory } from "./WrapGatewayZEVM__factory"; diff --git a/typechain-types/factories/forge-std/StdAssertions__factory.ts b/typechain-types/factories/forge-std/StdAssertions__factory.ts deleted file mode 100644 index 57fb2c73..00000000 --- a/typechain-types/factories/forge-std/StdAssertions__factory.ts +++ /dev/null @@ -1,402 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - StdAssertions, - StdAssertionsInterface, -} from "../../forge-std/StdAssertions"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "", - type: "string", - }, - ], - name: "log", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "", - type: "address", - }, - ], - name: "log_address", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256[]", - name: "val", - type: "uint256[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "int256[]", - name: "val", - type: "int256[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address[]", - name: "val", - type: "address[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "log_bytes", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - name: "log_bytes32", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "int256", - name: "", - type: "int256", - }, - ], - name: "log_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "address", - name: "val", - type: "address", - }, - ], - name: "log_named_address", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256[]", - name: "val", - type: "uint256[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256[]", - name: "val", - type: "int256[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "address[]", - name: "val", - type: "address[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "bytes", - name: "val", - type: "bytes", - }, - ], - name: "log_named_bytes", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "bytes32", - name: "val", - type: "bytes32", - }, - ], - name: "log_named_bytes32", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256", - name: "val", - type: "int256", - }, - { - indexed: false, - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "log_named_decimal_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "val", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "log_named_decimal_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256", - name: "val", - type: "int256", - }, - ], - name: "log_named_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "string", - name: "val", - type: "string", - }, - ], - name: "log_named_string", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "val", - type: "uint256", - }, - ], - name: "log_named_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "", - type: "string", - }, - ], - name: "log_string", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "log_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "logs", - type: "event", - }, - { - inputs: [], - name: "failed", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -export class StdAssertions__factory { - static readonly abi = _abi; - static createInterface(): StdAssertionsInterface { - return new Interface(_abi) as StdAssertionsInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): StdAssertions { - return new Contract(address, _abi, runner) as unknown as StdAssertions; - } -} diff --git a/typechain-types/factories/forge-std/StdError.sol/StdError__factory.ts b/typechain-types/factories/forge-std/StdError.sol/StdError__factory.ts deleted file mode 100644 index a35e57ec..00000000 --- a/typechain-types/factories/forge-std/StdError.sol/StdError__factory.ts +++ /dev/null @@ -1,181 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; -import type { NonPayableOverrides } from "../../../common"; -import type { - StdError, - StdErrorInterface, -} from "../../../forge-std/StdError.sol/StdError"; - -const _abi = [ - { - inputs: [], - name: "arithmeticError", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "assertionError", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "divisionError", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "encodeStorageError", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "enumConversionError", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "indexOOBError", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "memOverflowError", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "popError", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "zeroVarError", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -const _bytecode = - "0x60808060405234601957610325908161001f823930815050f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c90816305ee86121461023f57508063103329771461020a5780631de45560146101d55780638995290f146101a0578063986c5f681461016b578063b22dc54d14610136578063b67689da14610101578063d160e4de146100cc5763fa784a441461008257600080fd5b60003660031901126100c7576100c3604051634e487b7160e01b602082015260126024820152602481526100b760448261026e565b604051918291826102a6565b0390f35b600080fd5b60003660031901126100c7576100c3604051634e487b7160e01b602082015260226024820152602481526100b760448261026e565b60003660031901126100c7576100c3604051634e487b7160e01b602082015260516024820152602481526100b760448261026e565b60003660031901126100c7576100c3604051634e487b7160e01b602082015260316024820152602481526100b760448261026e565b60003660031901126100c7576100c3604051634e487b7160e01b602082015260416024820152602481526100b760448261026e565b60003660031901126100c7576100c3604051634e487b7160e01b602082015260116024820152602481526100b760448261026e565b60003660031901126100c7576100c3604051634e487b7160e01b602082015260216024820152602481526100b760448261026e565b60003660031901126100c7576100c3604051634e487b7160e01b602082015260016024820152602481526100b760448261026e565b60003660031901126100c7576100c390634e487b7160e01b602082015260326024820152602481526100b76044825b90601f8019910116810190811067ffffffffffffffff82111761029057604052565b634e487b7160e01b600052604160045260246000fd5b91909160208152825180602083015260005b8181106102d9575060409293506000838284010152601f8019910116010190565b80602080928701015160408286010152016102b856fea26469706673582212204ed919a7790d42029c2b80962c84b5151a1deb225f087222b249e206c254860764736f6c634300081a0033"; - -type StdErrorConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: StdErrorConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class StdError__factory extends ContractFactory { - constructor(...args: StdErrorConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(overrides || {}); - } - override deploy(overrides?: NonPayableOverrides & { from?: string }) { - return super.deploy(overrides || {}) as Promise< - StdError & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): StdError__factory { - return super.connect(runner) as StdError__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): StdErrorInterface { - return new Interface(_abi) as StdErrorInterface; - } - static connect(address: string, runner?: ContractRunner | null): StdError { - return new Contract(address, _abi, runner) as unknown as StdError; - } -} diff --git a/typechain-types/factories/forge-std/StdError.sol/index.ts b/typechain-types/factories/forge-std/StdError.sol/index.ts deleted file mode 100644 index 5c898ac1..00000000 --- a/typechain-types/factories/forge-std/StdError.sol/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { StdError__factory } from "./StdError__factory"; diff --git a/typechain-types/factories/forge-std/StdInvariant__factory.ts b/typechain-types/factories/forge-std/StdInvariant__factory.ts deleted file mode 100644 index cf03bc23..00000000 --- a/typechain-types/factories/forge-std/StdInvariant__factory.ts +++ /dev/null @@ -1,203 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - StdInvariant, - StdInvariantInterface, -} from "../../forge-std/StdInvariant"; - -const _abi = [ - { - inputs: [], - name: "excludeArtifacts", - outputs: [ - { - internalType: "string[]", - name: "excludedArtifacts_", - type: "string[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeContracts", - outputs: [ - { - internalType: "address[]", - name: "excludedContracts_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeSelectors", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzSelector[]", - name: "excludedSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeSenders", - outputs: [ - { - internalType: "address[]", - name: "excludedSenders_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetArtifactSelectors", - outputs: [ - { - components: [ - { - internalType: "string", - name: "artifact", - type: "string", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzArtifactSelector[]", - name: "targetedArtifactSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetArtifacts", - outputs: [ - { - internalType: "string[]", - name: "targetedArtifacts_", - type: "string[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetContracts", - outputs: [ - { - internalType: "address[]", - name: "targetedContracts_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetInterfaces", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "string[]", - name: "artifacts", - type: "string[]", - }, - ], - internalType: "struct StdInvariant.FuzzInterface[]", - name: "targetedInterfaces_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetSelectors", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzSelector[]", - name: "targetedSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetSenders", - outputs: [ - { - internalType: "address[]", - name: "targetedSenders_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -export class StdInvariant__factory { - static readonly abi = _abi; - static createInterface(): StdInvariantInterface { - return new Interface(_abi) as StdInvariantInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): StdInvariant { - return new Contract(address, _abi, runner) as unknown as StdInvariant; - } -} diff --git a/typechain-types/factories/forge-std/StdStorage.sol/StdStorageSafe__factory.ts b/typechain-types/factories/forge-std/StdStorage.sol/StdStorageSafe__factory.ts deleted file mode 100644 index 1d99e5a0..00000000 --- a/typechain-types/factories/forge-std/StdStorage.sol/StdStorageSafe__factory.ts +++ /dev/null @@ -1,117 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; -import type { NonPayableOverrides } from "../../../common"; -import type { - StdStorageSafe, - StdStorageSafeInterface, -} from "../../../forge-std/StdStorage.sol/StdStorageSafe"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "who", - type: "address", - }, - { - indexed: false, - internalType: "bytes4", - name: "fsig", - type: "bytes4", - }, - { - indexed: false, - internalType: "bytes32", - name: "keysHash", - type: "bytes32", - }, - { - indexed: false, - internalType: "uint256", - name: "slot", - type: "uint256", - }, - ], - name: "SlotFound", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "who", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "slot", - type: "uint256", - }, - ], - name: "WARNING_UninitedSlot", - type: "event", - }, -] as const; - -const _bytecode = - "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea264697066735822122002a089c13eab48f6d20359918b892f933ee63061fdbe567c8840fc2b45763a6f64736f6c634300081a0033"; - -type StdStorageSafeConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: StdStorageSafeConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class StdStorageSafe__factory extends ContractFactory { - constructor(...args: StdStorageSafeConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(overrides || {}); - } - override deploy(overrides?: NonPayableOverrides & { from?: string }) { - return super.deploy(overrides || {}) as Promise< - StdStorageSafe & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): StdStorageSafe__factory { - return super.connect(runner) as StdStorageSafe__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): StdStorageSafeInterface { - return new Interface(_abi) as StdStorageSafeInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): StdStorageSafe { - return new Contract(address, _abi, runner) as unknown as StdStorageSafe; - } -} diff --git a/typechain-types/factories/forge-std/StdStorage.sol/index.ts b/typechain-types/factories/forge-std/StdStorage.sol/index.ts deleted file mode 100644 index 4f4de1e2..00000000 --- a/typechain-types/factories/forge-std/StdStorage.sol/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { StdStorageSafe__factory } from "./StdStorageSafe__factory"; diff --git a/typechain-types/factories/forge-std/Test__factory.ts b/typechain-types/factories/forge-std/Test__factory.ts deleted file mode 100644 index ae008cdc..00000000 --- a/typechain-types/factories/forge-std/Test__factory.ts +++ /dev/null @@ -1,587 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { Test, TestInterface } from "../../forge-std/Test"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "", - type: "string", - }, - ], - name: "log", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "", - type: "address", - }, - ], - name: "log_address", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256[]", - name: "val", - type: "uint256[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "int256[]", - name: "val", - type: "int256[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address[]", - name: "val", - type: "address[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "log_bytes", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - name: "log_bytes32", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "int256", - name: "", - type: "int256", - }, - ], - name: "log_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "address", - name: "val", - type: "address", - }, - ], - name: "log_named_address", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256[]", - name: "val", - type: "uint256[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256[]", - name: "val", - type: "int256[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "address[]", - name: "val", - type: "address[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "bytes", - name: "val", - type: "bytes", - }, - ], - name: "log_named_bytes", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "bytes32", - name: "val", - type: "bytes32", - }, - ], - name: "log_named_bytes32", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256", - name: "val", - type: "int256", - }, - { - indexed: false, - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "log_named_decimal_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "val", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "log_named_decimal_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256", - name: "val", - type: "int256", - }, - ], - name: "log_named_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "string", - name: "val", - type: "string", - }, - ], - name: "log_named_string", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "val", - type: "uint256", - }, - ], - name: "log_named_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "", - type: "string", - }, - ], - name: "log_string", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "log_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "logs", - type: "event", - }, - { - inputs: [], - name: "IS_TEST", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeArtifacts", - outputs: [ - { - internalType: "string[]", - name: "excludedArtifacts_", - type: "string[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeContracts", - outputs: [ - { - internalType: "address[]", - name: "excludedContracts_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeSelectors", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzSelector[]", - name: "excludedSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeSenders", - outputs: [ - { - internalType: "address[]", - name: "excludedSenders_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "failed", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetArtifactSelectors", - outputs: [ - { - components: [ - { - internalType: "string", - name: "artifact", - type: "string", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzArtifactSelector[]", - name: "targetedArtifactSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetArtifacts", - outputs: [ - { - internalType: "string[]", - name: "targetedArtifacts_", - type: "string[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetContracts", - outputs: [ - { - internalType: "address[]", - name: "targetedContracts_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetInterfaces", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "string[]", - name: "artifacts", - type: "string[]", - }, - ], - internalType: "struct StdInvariant.FuzzInterface[]", - name: "targetedInterfaces_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetSelectors", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzSelector[]", - name: "targetedSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetSenders", - outputs: [ - { - internalType: "address[]", - name: "targetedSenders_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -export class Test__factory { - static readonly abi = _abi; - static createInterface(): TestInterface { - return new Interface(_abi) as TestInterface; - } - static connect(address: string, runner?: ContractRunner | null): Test { - return new Contract(address, _abi, runner) as unknown as Test; - } -} diff --git a/typechain-types/factories/forge-std/Vm.sol/VmSafe__factory.ts b/typechain-types/factories/forge-std/Vm.sol/VmSafe__factory.ts deleted file mode 100644 index a86056f7..00000000 --- a/typechain-types/factories/forge-std/Vm.sol/VmSafe__factory.ts +++ /dev/null @@ -1,9077 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { VmSafe, VmSafeInterface } from "../../../forge-std/Vm.sol/VmSafe"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - ], - name: "accesses", - outputs: [ - { - internalType: "bytes32[]", - name: "readSlots", - type: "bytes32[]", - }, - { - internalType: "bytes32[]", - name: "writeSlots", - type: "bytes32[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - ], - name: "addr", - outputs: [ - { - internalType: "address", - name: "keyAddr", - type: "address", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "maxDelta", - type: "uint256", - }, - ], - name: "assertApproxEqAbs", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "maxDelta", - type: "uint256", - }, - ], - name: "assertApproxEqAbs", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "maxDelta", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertApproxEqAbs", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "maxDelta", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertApproxEqAbs", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "maxDelta", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "assertApproxEqAbsDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "maxDelta", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "assertApproxEqAbsDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "maxDelta", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertApproxEqAbsDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "maxDelta", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertApproxEqAbsDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "maxPercentDelta", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertApproxEqRel", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "maxPercentDelta", - type: "uint256", - }, - ], - name: "assertApproxEqRel", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "maxPercentDelta", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertApproxEqRel", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "maxPercentDelta", - type: "uint256", - }, - ], - name: "assertApproxEqRel", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "maxPercentDelta", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "assertApproxEqRelDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "maxPercentDelta", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertApproxEqRelDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "maxPercentDelta", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "assertApproxEqRelDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "maxPercentDelta", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertApproxEqRelDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32[]", - name: "left", - type: "bytes32[]", - }, - { - internalType: "bytes32[]", - name: "right", - type: "bytes32[]", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256[]", - name: "left", - type: "int256[]", - }, - { - internalType: "int256[]", - name: "right", - type: "int256[]", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "left", - type: "address", - }, - { - internalType: "address", - name: "right", - type: "address", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "left", - type: "string", - }, - { - internalType: "string", - name: "right", - type: "string", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address[]", - name: "left", - type: "address[]", - }, - { - internalType: "address[]", - name: "right", - type: "address[]", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address[]", - name: "left", - type: "address[]", - }, - { - internalType: "address[]", - name: "right", - type: "address[]", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bool", - name: "left", - type: "bool", - }, - { - internalType: "bool", - name: "right", - type: "bool", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "left", - type: "address", - }, - { - internalType: "address", - name: "right", - type: "address", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256[]", - name: "left", - type: "uint256[]", - }, - { - internalType: "uint256[]", - name: "right", - type: "uint256[]", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bool[]", - name: "left", - type: "bool[]", - }, - { - internalType: "bool[]", - name: "right", - type: "bool[]", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256[]", - name: "left", - type: "int256[]", - }, - { - internalType: "int256[]", - name: "right", - type: "int256[]", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "left", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "right", - type: "bytes32", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256[]", - name: "left", - type: "uint256[]", - }, - { - internalType: "uint256[]", - name: "right", - type: "uint256[]", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "left", - type: "bytes", - }, - { - internalType: "bytes", - name: "right", - type: "bytes", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "left", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "right", - type: "bytes32", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string[]", - name: "left", - type: "string[]", - }, - { - internalType: "string[]", - name: "right", - type: "string[]", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32[]", - name: "left", - type: "bytes32[]", - }, - { - internalType: "bytes32[]", - name: "right", - type: "bytes32[]", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "left", - type: "bytes", - }, - { - internalType: "bytes", - name: "right", - type: "bytes", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bool[]", - name: "left", - type: "bool[]", - }, - { - internalType: "bool[]", - name: "right", - type: "bool[]", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes[]", - name: "left", - type: "bytes[]", - }, - { - internalType: "bytes[]", - name: "right", - type: "bytes[]", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string[]", - name: "left", - type: "string[]", - }, - { - internalType: "string[]", - name: "right", - type: "string[]", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "left", - type: "string", - }, - { - internalType: "string", - name: "right", - type: "string", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes[]", - name: "left", - type: "bytes[]", - }, - { - internalType: "bytes[]", - name: "right", - type: "bytes[]", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bool", - name: "left", - type: "bool", - }, - { - internalType: "bool", - name: "right", - type: "bool", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "assertEqDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "assertEqDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertEqDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertEqDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bool", - name: "condition", - type: "bool", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertFalse", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bool", - name: "condition", - type: "bool", - }, - ], - name: "assertFalse", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - ], - name: "assertGe", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertGe", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - ], - name: "assertGe", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertGe", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "assertGeDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertGeDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertGeDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "assertGeDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - ], - name: "assertGt", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertGt", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - ], - name: "assertGt", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertGt", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertGtDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertGtDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "assertGtDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "assertGtDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertLe", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - ], - name: "assertLe", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - ], - name: "assertLe", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertLe", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "assertLeDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertLeDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertLeDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "assertLeDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - ], - name: "assertLt", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertLt", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertLt", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - ], - name: "assertLt", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "assertLtDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertLtDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertLtDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "assertLtDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32[]", - name: "left", - type: "bytes32[]", - }, - { - internalType: "bytes32[]", - name: "right", - type: "bytes32[]", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256[]", - name: "left", - type: "int256[]", - }, - { - internalType: "int256[]", - name: "right", - type: "int256[]", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bool", - name: "left", - type: "bool", - }, - { - internalType: "bool", - name: "right", - type: "bool", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes[]", - name: "left", - type: "bytes[]", - }, - { - internalType: "bytes[]", - name: "right", - type: "bytes[]", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bool", - name: "left", - type: "bool", - }, - { - internalType: "bool", - name: "right", - type: "bool", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bool[]", - name: "left", - type: "bool[]", - }, - { - internalType: "bool[]", - name: "right", - type: "bool[]", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "left", - type: "bytes", - }, - { - internalType: "bytes", - name: "right", - type: "bytes", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address[]", - name: "left", - type: "address[]", - }, - { - internalType: "address[]", - name: "right", - type: "address[]", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256[]", - name: "left", - type: "uint256[]", - }, - { - internalType: "uint256[]", - name: "right", - type: "uint256[]", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bool[]", - name: "left", - type: "bool[]", - }, - { - internalType: "bool[]", - name: "right", - type: "bool[]", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "left", - type: "string", - }, - { - internalType: "string", - name: "right", - type: "string", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address[]", - name: "left", - type: "address[]", - }, - { - internalType: "address[]", - name: "right", - type: "address[]", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "left", - type: "string", - }, - { - internalType: "string", - name: "right", - type: "string", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "left", - type: "address", - }, - { - internalType: "address", - name: "right", - type: "address", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "left", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "right", - type: "bytes32", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "left", - type: "bytes", - }, - { - internalType: "bytes", - name: "right", - type: "bytes", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256[]", - name: "left", - type: "uint256[]", - }, - { - internalType: "uint256[]", - name: "right", - type: "uint256[]", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "left", - type: "address", - }, - { - internalType: "address", - name: "right", - type: "address", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "left", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "right", - type: "bytes32", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string[]", - name: "left", - type: "string[]", - }, - { - internalType: "string[]", - name: "right", - type: "string[]", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32[]", - name: "left", - type: "bytes32[]", - }, - { - internalType: "bytes32[]", - name: "right", - type: "bytes32[]", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string[]", - name: "left", - type: "string[]", - }, - { - internalType: "string[]", - name: "right", - type: "string[]", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256[]", - name: "left", - type: "int256[]", - }, - { - internalType: "int256[]", - name: "right", - type: "int256[]", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes[]", - name: "left", - type: "bytes[]", - }, - { - internalType: "bytes[]", - name: "right", - type: "bytes[]", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "assertNotEqDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertNotEqDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "assertNotEqDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertNotEqDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bool", - name: "condition", - type: "bool", - }, - ], - name: "assertTrue", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bool", - name: "condition", - type: "bool", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertTrue", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bool", - name: "condition", - type: "bool", - }, - ], - name: "assume", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [], - name: "assumeNoRevert", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "reverter", - type: "address", - }, - { - internalType: "bool", - name: "partialMatch", - type: "bool", - }, - { - internalType: "bytes", - name: "revertData", - type: "bytes", - }, - ], - internalType: "struct VmSafe.PotentialRevert[]", - name: "potentialReverts", - type: "tuple[]", - }, - ], - name: "assumeNoRevert", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "reverter", - type: "address", - }, - { - internalType: "bool", - name: "partialMatch", - type: "bool", - }, - { - internalType: "bytes", - name: "revertData", - type: "bytes", - }, - ], - internalType: "struct VmSafe.PotentialRevert", - name: "potentialRevert", - type: "tuple", - }, - ], - name: "assumeNoRevert", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "blob", - type: "bytes", - }, - ], - name: "attachBlob", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "uint8", - name: "v", - type: "uint8", - }, - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "s", - type: "bytes32", - }, - { - internalType: "uint64", - name: "nonce", - type: "uint64", - }, - { - internalType: "address", - name: "implementation", - type: "address", - }, - ], - internalType: "struct VmSafe.SignedDelegation", - name: "signedDelegation", - type: "tuple", - }, - ], - name: "attachDelegation", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "char", - type: "string", - }, - ], - name: "breakpoint", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "char", - type: "string", - }, - { - internalType: "bool", - name: "value", - type: "bool", - }, - ], - name: "breakpoint", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [], - name: "broadcast", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "signer", - type: "address", - }, - ], - name: "broadcast", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - ], - name: "broadcast", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "broadcastRawTransaction", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - ], - name: "closeFile", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "salt", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "initCodeHash", - type: "bytes32", - }, - ], - name: "computeCreate2Address", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "salt", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "initCodeHash", - type: "bytes32", - }, - { - internalType: "address", - name: "deployer", - type: "address", - }, - ], - name: "computeCreate2Address", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "deployer", - type: "address", - }, - { - internalType: "uint256", - name: "nonce", - type: "uint256", - }, - ], - name: "computeCreateAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "subject", - type: "string", - }, - { - internalType: "string", - name: "search", - type: "string", - }, - ], - name: "contains", - outputs: [ - { - internalType: "bool", - name: "result", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "from", - type: "string", - }, - { - internalType: "string", - name: "to", - type: "string", - }, - ], - name: "copyFile", - outputs: [ - { - internalType: "uint64", - name: "copied", - type: "uint64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - ], - name: "copyStorage", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - { - internalType: "bool", - name: "recursive", - type: "bool", - }, - ], - name: "createDir", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "walletLabel", - type: "string", - }, - ], - name: "createWallet", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "uint256", - name: "publicKeyX", - type: "uint256", - }, - { - internalType: "uint256", - name: "publicKeyY", - type: "uint256", - }, - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - ], - internalType: "struct VmSafe.Wallet", - name: "wallet", - type: "tuple", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - ], - name: "createWallet", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "uint256", - name: "publicKeyX", - type: "uint256", - }, - { - internalType: "uint256", - name: "publicKeyY", - type: "uint256", - }, - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - ], - internalType: "struct VmSafe.Wallet", - name: "wallet", - type: "tuple", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - { - internalType: "string", - name: "walletLabel", - type: "string", - }, - ], - name: "createWallet", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "uint256", - name: "publicKeyX", - type: "uint256", - }, - { - internalType: "uint256", - name: "publicKeyY", - type: "uint256", - }, - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - ], - internalType: "struct VmSafe.Wallet", - name: "wallet", - type: "tuple", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "artifactPath", - type: "string", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - internalType: "bytes32", - name: "salt", - type: "bytes32", - }, - ], - name: "deployCode", - outputs: [ - { - internalType: "address", - name: "deployedAddress", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "artifactPath", - type: "string", - }, - { - internalType: "bytes", - name: "constructorArgs", - type: "bytes", - }, - { - internalType: "bytes32", - name: "salt", - type: "bytes32", - }, - ], - name: "deployCode", - outputs: [ - { - internalType: "address", - name: "deployedAddress", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "artifactPath", - type: "string", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "deployCode", - outputs: [ - { - internalType: "address", - name: "deployedAddress", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "artifactPath", - type: "string", - }, - { - internalType: "bytes32", - name: "salt", - type: "bytes32", - }, - ], - name: "deployCode", - outputs: [ - { - internalType: "address", - name: "deployedAddress", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "artifactPath", - type: "string", - }, - { - internalType: "bytes", - name: "constructorArgs", - type: "bytes", - }, - ], - name: "deployCode", - outputs: [ - { - internalType: "address", - name: "deployedAddress", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "artifactPath", - type: "string", - }, - { - internalType: "bytes", - name: "constructorArgs", - type: "bytes", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - internalType: "bytes32", - name: "salt", - type: "bytes32", - }, - ], - name: "deployCode", - outputs: [ - { - internalType: "address", - name: "deployedAddress", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "artifactPath", - type: "string", - }, - ], - name: "deployCode", - outputs: [ - { - internalType: "address", - name: "deployedAddress", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "artifactPath", - type: "string", - }, - { - internalType: "bytes", - name: "constructorArgs", - type: "bytes", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "deployCode", - outputs: [ - { - internalType: "address", - name: "deployedAddress", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "mnemonic", - type: "string", - }, - { - internalType: "string", - name: "derivationPath", - type: "string", - }, - { - internalType: "uint32", - name: "index", - type: "uint32", - }, - { - internalType: "string", - name: "language", - type: "string", - }, - ], - name: "deriveKey", - outputs: [ - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "mnemonic", - type: "string", - }, - { - internalType: "uint32", - name: "index", - type: "uint32", - }, - { - internalType: "string", - name: "language", - type: "string", - }, - ], - name: "deriveKey", - outputs: [ - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "mnemonic", - type: "string", - }, - { - internalType: "uint32", - name: "index", - type: "uint32", - }, - ], - name: "deriveKey", - outputs: [ - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "mnemonic", - type: "string", - }, - { - internalType: "string", - name: "derivationPath", - type: "string", - }, - { - internalType: "uint32", - name: "index", - type: "uint32", - }, - ], - name: "deriveKey", - outputs: [ - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - ], - name: "ensNamehash", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - ], - name: "envAddress", - outputs: [ - { - internalType: "address", - name: "value", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "delim", - type: "string", - }, - ], - name: "envAddress", - outputs: [ - { - internalType: "address[]", - name: "value", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - ], - name: "envBool", - outputs: [ - { - internalType: "bool", - name: "value", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "delim", - type: "string", - }, - ], - name: "envBool", - outputs: [ - { - internalType: "bool[]", - name: "value", - type: "bool[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - ], - name: "envBytes", - outputs: [ - { - internalType: "bytes", - name: "value", - type: "bytes", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "delim", - type: "string", - }, - ], - name: "envBytes", - outputs: [ - { - internalType: "bytes[]", - name: "value", - type: "bytes[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "delim", - type: "string", - }, - ], - name: "envBytes32", - outputs: [ - { - internalType: "bytes32[]", - name: "value", - type: "bytes32[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - ], - name: "envBytes32", - outputs: [ - { - internalType: "bytes32", - name: "value", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - ], - name: "envExists", - outputs: [ - { - internalType: "bool", - name: "result", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "delim", - type: "string", - }, - ], - name: "envInt", - outputs: [ - { - internalType: "int256[]", - name: "value", - type: "int256[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - ], - name: "envInt", - outputs: [ - { - internalType: "int256", - name: "value", - type: "int256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "delim", - type: "string", - }, - { - internalType: "bytes32[]", - name: "defaultValue", - type: "bytes32[]", - }, - ], - name: "envOr", - outputs: [ - { - internalType: "bytes32[]", - name: "value", - type: "bytes32[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "delim", - type: "string", - }, - { - internalType: "int256[]", - name: "defaultValue", - type: "int256[]", - }, - ], - name: "envOr", - outputs: [ - { - internalType: "int256[]", - name: "value", - type: "int256[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "bool", - name: "defaultValue", - type: "bool", - }, - ], - name: "envOr", - outputs: [ - { - internalType: "bool", - name: "value", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "address", - name: "defaultValue", - type: "address", - }, - ], - name: "envOr", - outputs: [ - { - internalType: "address", - name: "value", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "uint256", - name: "defaultValue", - type: "uint256", - }, - ], - name: "envOr", - outputs: [ - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "delim", - type: "string", - }, - { - internalType: "bytes[]", - name: "defaultValue", - type: "bytes[]", - }, - ], - name: "envOr", - outputs: [ - { - internalType: "bytes[]", - name: "value", - type: "bytes[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "delim", - type: "string", - }, - { - internalType: "uint256[]", - name: "defaultValue", - type: "uint256[]", - }, - ], - name: "envOr", - outputs: [ - { - internalType: "uint256[]", - name: "value", - type: "uint256[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "delim", - type: "string", - }, - { - internalType: "string[]", - name: "defaultValue", - type: "string[]", - }, - ], - name: "envOr", - outputs: [ - { - internalType: "string[]", - name: "value", - type: "string[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "bytes", - name: "defaultValue", - type: "bytes", - }, - ], - name: "envOr", - outputs: [ - { - internalType: "bytes", - name: "value", - type: "bytes", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "bytes32", - name: "defaultValue", - type: "bytes32", - }, - ], - name: "envOr", - outputs: [ - { - internalType: "bytes32", - name: "value", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "int256", - name: "defaultValue", - type: "int256", - }, - ], - name: "envOr", - outputs: [ - { - internalType: "int256", - name: "value", - type: "int256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "delim", - type: "string", - }, - { - internalType: "address[]", - name: "defaultValue", - type: "address[]", - }, - ], - name: "envOr", - outputs: [ - { - internalType: "address[]", - name: "value", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "defaultValue", - type: "string", - }, - ], - name: "envOr", - outputs: [ - { - internalType: "string", - name: "value", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "delim", - type: "string", - }, - { - internalType: "bool[]", - name: "defaultValue", - type: "bool[]", - }, - ], - name: "envOr", - outputs: [ - { - internalType: "bool[]", - name: "value", - type: "bool[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "delim", - type: "string", - }, - ], - name: "envString", - outputs: [ - { - internalType: "string[]", - name: "value", - type: "string[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - ], - name: "envString", - outputs: [ - { - internalType: "string", - name: "value", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - ], - name: "envUint", - outputs: [ - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "delim", - type: "string", - }, - ], - name: "envUint", - outputs: [ - { - internalType: "uint256[]", - name: "value", - type: "uint256[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "fromBlock", - type: "uint256", - }, - { - internalType: "uint256", - name: "toBlock", - type: "uint256", - }, - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes32[]", - name: "topics", - type: "bytes32[]", - }, - ], - name: "eth_getLogs", - outputs: [ - { - components: [ - { - internalType: "address", - name: "emitter", - type: "address", - }, - { - internalType: "bytes32[]", - name: "topics", - type: "bytes32[]", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - internalType: "bytes32", - name: "blockHash", - type: "bytes32", - }, - { - internalType: "uint64", - name: "blockNumber", - type: "uint64", - }, - { - internalType: "bytes32", - name: "transactionHash", - type: "bytes32", - }, - { - internalType: "uint64", - name: "transactionIndex", - type: "uint64", - }, - { - internalType: "uint256", - name: "logIndex", - type: "uint256", - }, - { - internalType: "bool", - name: "removed", - type: "bool", - }, - ], - internalType: "struct VmSafe.EthGetLogs[]", - name: "logs", - type: "tuple[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - ], - name: "exists", - outputs: [ - { - internalType: "bool", - name: "result", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string[]", - name: "commandInput", - type: "string[]", - }, - ], - name: "ffi", - outputs: [ - { - internalType: "bytes", - name: "result", - type: "bytes", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "version", - type: "string", - }, - ], - name: "foundryVersionAtLeast", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "version", - type: "string", - }, - ], - name: "foundryVersionCmp", - outputs: [ - { - internalType: "int256", - name: "", - type: "int256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - ], - name: "fsMetadata", - outputs: [ - { - components: [ - { - internalType: "bool", - name: "isDir", - type: "bool", - }, - { - internalType: "bool", - name: "isSymlink", - type: "bool", - }, - { - internalType: "uint256", - name: "length", - type: "uint256", - }, - { - internalType: "bool", - name: "readOnly", - type: "bool", - }, - { - internalType: "uint256", - name: "modified", - type: "uint256", - }, - { - internalType: "uint256", - name: "accessed", - type: "uint256", - }, - { - internalType: "uint256", - name: "created", - type: "uint256", - }, - ], - internalType: "struct VmSafe.FsMetadata", - name: "metadata", - type: "tuple", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "code", - type: "bytes", - }, - ], - name: "getArtifactPathByCode", - outputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "deployedCode", - type: "bytes", - }, - ], - name: "getArtifactPathByDeployedCode", - outputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "getBlobBaseFee", - outputs: [ - { - internalType: "uint256", - name: "blobBaseFee", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "getBlockNumber", - outputs: [ - { - internalType: "uint256", - name: "height", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "getBlockTimestamp", - outputs: [ - { - internalType: "uint256", - name: "timestamp", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "contractName", - type: "string", - }, - { - internalType: "uint64", - name: "chainId", - type: "uint64", - }, - { - internalType: "enum VmSafe.BroadcastTxType", - name: "txType", - type: "uint8", - }, - ], - name: "getBroadcast", - outputs: [ - { - components: [ - { - internalType: "bytes32", - name: "txHash", - type: "bytes32", - }, - { - internalType: "enum VmSafe.BroadcastTxType", - name: "txType", - type: "uint8", - }, - { - internalType: "address", - name: "contractAddress", - type: "address", - }, - { - internalType: "uint64", - name: "blockNumber", - type: "uint64", - }, - { - internalType: "bool", - name: "success", - type: "bool", - }, - ], - internalType: "struct VmSafe.BroadcastTxSummary", - name: "", - type: "tuple", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "contractName", - type: "string", - }, - { - internalType: "uint64", - name: "chainId", - type: "uint64", - }, - ], - name: "getBroadcasts", - outputs: [ - { - components: [ - { - internalType: "bytes32", - name: "txHash", - type: "bytes32", - }, - { - internalType: "enum VmSafe.BroadcastTxType", - name: "txType", - type: "uint8", - }, - { - internalType: "address", - name: "contractAddress", - type: "address", - }, - { - internalType: "uint64", - name: "blockNumber", - type: "uint64", - }, - { - internalType: "bool", - name: "success", - type: "bool", - }, - ], - internalType: "struct VmSafe.BroadcastTxSummary[]", - name: "", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "contractName", - type: "string", - }, - { - internalType: "uint64", - name: "chainId", - type: "uint64", - }, - { - internalType: "enum VmSafe.BroadcastTxType", - name: "txType", - type: "uint8", - }, - ], - name: "getBroadcasts", - outputs: [ - { - components: [ - { - internalType: "bytes32", - name: "txHash", - type: "bytes32", - }, - { - internalType: "enum VmSafe.BroadcastTxType", - name: "txType", - type: "uint8", - }, - { - internalType: "address", - name: "contractAddress", - type: "address", - }, - { - internalType: "uint64", - name: "blockNumber", - type: "uint64", - }, - { - internalType: "bool", - name: "success", - type: "bool", - }, - ], - internalType: "struct VmSafe.BroadcastTxSummary[]", - name: "", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "chainAlias", - type: "string", - }, - ], - name: "getChain", - outputs: [ - { - components: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "uint256", - name: "chainId", - type: "uint256", - }, - { - internalType: "string", - name: "chainAlias", - type: "string", - }, - { - internalType: "string", - name: "rpcUrl", - type: "string", - }, - ], - internalType: "struct VmSafe.Chain", - name: "chain", - type: "tuple", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "chainId", - type: "uint256", - }, - ], - name: "getChain", - outputs: [ - { - components: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "uint256", - name: "chainId", - type: "uint256", - }, - { - internalType: "string", - name: "chainAlias", - type: "string", - }, - { - internalType: "string", - name: "rpcUrl", - type: "string", - }, - ], - internalType: "struct VmSafe.Chain", - name: "chain", - type: "tuple", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "artifactPath", - type: "string", - }, - ], - name: "getCode", - outputs: [ - { - internalType: "bytes", - name: "creationBytecode", - type: "bytes", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "artifactPath", - type: "string", - }, - ], - name: "getDeployedCode", - outputs: [ - { - internalType: "bytes", - name: "runtimeBytecode", - type: "bytes", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "contractName", - type: "string", - }, - { - internalType: "uint64", - name: "chainId", - type: "uint64", - }, - ], - name: "getDeployment", - outputs: [ - { - internalType: "address", - name: "deployedAddress", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "contractName", - type: "string", - }, - ], - name: "getDeployment", - outputs: [ - { - internalType: "address", - name: "deployedAddress", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "contractName", - type: "string", - }, - { - internalType: "uint64", - name: "chainId", - type: "uint64", - }, - ], - name: "getDeployments", - outputs: [ - { - internalType: "address[]", - name: "deployedAddresses", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "getFoundryVersion", - outputs: [ - { - internalType: "string", - name: "version", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "getLabel", - outputs: [ - { - internalType: "string", - name: "currentLabel", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes32", - name: "elementSlot", - type: "bytes32", - }, - ], - name: "getMappingKeyAndParentOf", - outputs: [ - { - internalType: "bool", - name: "found", - type: "bool", - }, - { - internalType: "bytes32", - name: "key", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "parent", - type: "bytes32", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes32", - name: "mappingSlot", - type: "bytes32", - }, - ], - name: "getMappingLength", - outputs: [ - { - internalType: "uint256", - name: "length", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes32", - name: "mappingSlot", - type: "bytes32", - }, - { - internalType: "uint256", - name: "idx", - type: "uint256", - }, - ], - name: "getMappingSlotAt", - outputs: [ - { - internalType: "bytes32", - name: "value", - type: "bytes32", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "getNonce", - outputs: [ - { - internalType: "uint64", - name: "nonce", - type: "uint64", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "uint256", - name: "publicKeyX", - type: "uint256", - }, - { - internalType: "uint256", - name: "publicKeyY", - type: "uint256", - }, - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - ], - internalType: "struct VmSafe.Wallet", - name: "wallet", - type: "tuple", - }, - ], - name: "getNonce", - outputs: [ - { - internalType: "uint64", - name: "nonce", - type: "uint64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "getRecordedLogs", - outputs: [ - { - components: [ - { - internalType: "bytes32[]", - name: "topics", - type: "bytes32[]", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - internalType: "address", - name: "emitter", - type: "address", - }, - ], - internalType: "struct VmSafe.Log[]", - name: "logs", - type: "tuple[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "getStateDiff", - outputs: [ - { - internalType: "string", - name: "diff", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "getStateDiffJson", - outputs: [ - { - internalType: "string", - name: "diff", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "getWallets", - outputs: [ - { - internalType: "address[]", - name: "wallets", - type: "address[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "input", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "indexOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "enum VmSafe.ForgeContext", - name: "context", - type: "uint8", - }, - ], - name: "isContext", - outputs: [ - { - internalType: "bool", - name: "result", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - ], - name: "isDir", - outputs: [ - { - internalType: "bool", - name: "result", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - ], - name: "isFile", - outputs: [ - { - internalType: "bool", - name: "result", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "keyExists", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "keyExistsJson", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "keyExistsToml", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "string", - name: "newLabel", - type: "string", - }, - ], - name: "label", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "lastCallGas", - outputs: [ - { - components: [ - { - internalType: "uint64", - name: "gasLimit", - type: "uint64", - }, - { - internalType: "uint64", - name: "gasTotalUsed", - type: "uint64", - }, - { - internalType: "uint64", - name: "gasMemoryUsed", - type: "uint64", - }, - { - internalType: "int64", - name: "gasRefunded", - type: "int64", - }, - { - internalType: "uint64", - name: "gasRemaining", - type: "uint64", - }, - ], - internalType: "struct VmSafe.Gas", - name: "gas", - type: "tuple", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes32", - name: "slot", - type: "bytes32", - }, - ], - name: "load", - outputs: [ - { - internalType: "bytes32", - name: "data", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "stringifiedValue", - type: "string", - }, - ], - name: "parseAddress", - outputs: [ - { - internalType: "address", - name: "parsedValue", - type: "address", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "stringifiedValue", - type: "string", - }, - ], - name: "parseBool", - outputs: [ - { - internalType: "bool", - name: "parsedValue", - type: "bool", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "stringifiedValue", - type: "string", - }, - ], - name: "parseBytes", - outputs: [ - { - internalType: "bytes", - name: "parsedValue", - type: "bytes", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "stringifiedValue", - type: "string", - }, - ], - name: "parseBytes32", - outputs: [ - { - internalType: "bytes32", - name: "parsedValue", - type: "bytes32", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "stringifiedValue", - type: "string", - }, - ], - name: "parseInt", - outputs: [ - { - internalType: "int256", - name: "parsedValue", - type: "int256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - name: "parseJson", - outputs: [ - { - internalType: "bytes", - name: "abiEncodedData", - type: "bytes", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseJson", - outputs: [ - { - internalType: "bytes", - name: "abiEncodedData", - type: "bytes", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseJsonAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseJsonAddressArray", - outputs: [ - { - internalType: "address[]", - name: "", - type: "address[]", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseJsonBool", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseJsonBoolArray", - outputs: [ - { - internalType: "bool[]", - name: "", - type: "bool[]", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseJsonBytes", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseJsonBytes32", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseJsonBytes32Array", - outputs: [ - { - internalType: "bytes32[]", - name: "", - type: "bytes32[]", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseJsonBytesArray", - outputs: [ - { - internalType: "bytes[]", - name: "", - type: "bytes[]", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseJsonInt", - outputs: [ - { - internalType: "int256", - name: "", - type: "int256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseJsonIntArray", - outputs: [ - { - internalType: "int256[]", - name: "", - type: "int256[]", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseJsonKeys", - outputs: [ - { - internalType: "string[]", - name: "keys", - type: "string[]", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseJsonString", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseJsonStringArray", - outputs: [ - { - internalType: "string[]", - name: "", - type: "string[]", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "typeDescription", - type: "string", - }, - ], - name: "parseJsonType", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - { - internalType: "string", - name: "typeDescription", - type: "string", - }, - ], - name: "parseJsonType", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - { - internalType: "string", - name: "typeDescription", - type: "string", - }, - ], - name: "parseJsonTypeArray", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseJsonUint", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseJsonUintArray", - outputs: [ - { - internalType: "uint256[]", - name: "", - type: "uint256[]", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseToml", - outputs: [ - { - internalType: "bytes", - name: "abiEncodedData", - type: "bytes", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - ], - name: "parseToml", - outputs: [ - { - internalType: "bytes", - name: "abiEncodedData", - type: "bytes", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseTomlAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseTomlAddressArray", - outputs: [ - { - internalType: "address[]", - name: "", - type: "address[]", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseTomlBool", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseTomlBoolArray", - outputs: [ - { - internalType: "bool[]", - name: "", - type: "bool[]", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseTomlBytes", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseTomlBytes32", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseTomlBytes32Array", - outputs: [ - { - internalType: "bytes32[]", - name: "", - type: "bytes32[]", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseTomlBytesArray", - outputs: [ - { - internalType: "bytes[]", - name: "", - type: "bytes[]", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseTomlInt", - outputs: [ - { - internalType: "int256", - name: "", - type: "int256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseTomlIntArray", - outputs: [ - { - internalType: "int256[]", - name: "", - type: "int256[]", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseTomlKeys", - outputs: [ - { - internalType: "string[]", - name: "keys", - type: "string[]", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseTomlString", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseTomlStringArray", - outputs: [ - { - internalType: "string[]", - name: "", - type: "string[]", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "typeDescription", - type: "string", - }, - ], - name: "parseTomlType", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - { - internalType: "string", - name: "typeDescription", - type: "string", - }, - ], - name: "parseTomlType", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - { - internalType: "string", - name: "typeDescription", - type: "string", - }, - ], - name: "parseTomlTypeArray", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseTomlUint", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseTomlUintArray", - outputs: [ - { - internalType: "uint256[]", - name: "", - type: "uint256[]", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "stringifiedValue", - type: "string", - }, - ], - name: "parseUint", - outputs: [ - { - internalType: "uint256", - name: "parsedValue", - type: "uint256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [], - name: "pauseGasMetering", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "pauseTracing", - outputs: [], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "projectRoot", - outputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "promptText", - type: "string", - }, - ], - name: "prompt", - outputs: [ - { - internalType: "string", - name: "input", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "promptText", - type: "string", - }, - ], - name: "promptAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "promptText", - type: "string", - }, - ], - name: "promptSecret", - outputs: [ - { - internalType: "string", - name: "input", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "promptText", - type: "string", - }, - ], - name: "promptSecretUint", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "promptText", - type: "string", - }, - ], - name: "promptUint", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - ], - name: "publicKeyP256", - outputs: [ - { - internalType: "uint256", - name: "publicKeyX", - type: "uint256", - }, - { - internalType: "uint256", - name: "publicKeyY", - type: "uint256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [], - name: "randomAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "randomBool", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "len", - type: "uint256", - }, - ], - name: "randomBytes", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "randomBytes4", - outputs: [ - { - internalType: "bytes4", - name: "", - type: "bytes4", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "randomBytes8", - outputs: [ - { - internalType: "bytes8", - name: "", - type: "bytes8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "randomInt", - outputs: [ - { - internalType: "int256", - name: "", - type: "int256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "bits", - type: "uint256", - }, - ], - name: "randomInt", - outputs: [ - { - internalType: "int256", - name: "", - type: "int256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "randomUint", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "bits", - type: "uint256", - }, - ], - name: "randomUint", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "min", - type: "uint256", - }, - { - internalType: "uint256", - name: "max", - type: "uint256", - }, - ], - name: "randomUint", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - { - internalType: "uint64", - name: "maxDepth", - type: "uint64", - }, - ], - name: "readDir", - outputs: [ - { - components: [ - { - internalType: "string", - name: "errorMessage", - type: "string", - }, - { - internalType: "string", - name: "path", - type: "string", - }, - { - internalType: "uint64", - name: "depth", - type: "uint64", - }, - { - internalType: "bool", - name: "isDir", - type: "bool", - }, - { - internalType: "bool", - name: "isSymlink", - type: "bool", - }, - ], - internalType: "struct VmSafe.DirEntry[]", - name: "entries", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - { - internalType: "uint64", - name: "maxDepth", - type: "uint64", - }, - { - internalType: "bool", - name: "followLinks", - type: "bool", - }, - ], - name: "readDir", - outputs: [ - { - components: [ - { - internalType: "string", - name: "errorMessage", - type: "string", - }, - { - internalType: "string", - name: "path", - type: "string", - }, - { - internalType: "uint64", - name: "depth", - type: "uint64", - }, - { - internalType: "bool", - name: "isDir", - type: "bool", - }, - { - internalType: "bool", - name: "isSymlink", - type: "bool", - }, - ], - internalType: "struct VmSafe.DirEntry[]", - name: "entries", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - ], - name: "readDir", - outputs: [ - { - components: [ - { - internalType: "string", - name: "errorMessage", - type: "string", - }, - { - internalType: "string", - name: "path", - type: "string", - }, - { - internalType: "uint64", - name: "depth", - type: "uint64", - }, - { - internalType: "bool", - name: "isDir", - type: "bool", - }, - { - internalType: "bool", - name: "isSymlink", - type: "bool", - }, - ], - internalType: "struct VmSafe.DirEntry[]", - name: "entries", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - ], - name: "readFile", - outputs: [ - { - internalType: "string", - name: "data", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - ], - name: "readFileBinary", - outputs: [ - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - ], - name: "readLine", - outputs: [ - { - internalType: "string", - name: "line", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "linkPath", - type: "string", - }, - ], - name: "readLink", - outputs: [ - { - internalType: "string", - name: "targetPath", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "record", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "recordLogs", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - ], - name: "rememberKey", - outputs: [ - { - internalType: "address", - name: "keyAddr", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "mnemonic", - type: "string", - }, - { - internalType: "string", - name: "derivationPath", - type: "string", - }, - { - internalType: "uint32", - name: "count", - type: "uint32", - }, - ], - name: "rememberKeys", - outputs: [ - { - internalType: "address[]", - name: "keyAddrs", - type: "address[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "mnemonic", - type: "string", - }, - { - internalType: "string", - name: "derivationPath", - type: "string", - }, - { - internalType: "string", - name: "language", - type: "string", - }, - { - internalType: "uint32", - name: "count", - type: "uint32", - }, - ], - name: "rememberKeys", - outputs: [ - { - internalType: "address[]", - name: "keyAddrs", - type: "address[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - { - internalType: "bool", - name: "recursive", - type: "bool", - }, - ], - name: "removeDir", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - ], - name: "removeFile", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "input", - type: "string", - }, - { - internalType: "string", - name: "from", - type: "string", - }, - { - internalType: "string", - name: "to", - type: "string", - }, - ], - name: "replace", - outputs: [ - { - internalType: "string", - name: "output", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [], - name: "resetGasMetering", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "resumeGasMetering", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "resumeTracing", - outputs: [], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "urlOrAlias", - type: "string", - }, - { - internalType: "string", - name: "method", - type: "string", - }, - { - internalType: "string", - name: "params", - type: "string", - }, - ], - name: "rpc", - outputs: [ - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "method", - type: "string", - }, - { - internalType: "string", - name: "params", - type: "string", - }, - ], - name: "rpc", - outputs: [ - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "rpcAlias", - type: "string", - }, - ], - name: "rpcUrl", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "rpcUrlStructs", - outputs: [ - { - components: [ - { - internalType: "string", - name: "key", - type: "string", - }, - { - internalType: "string", - name: "url", - type: "string", - }, - ], - internalType: "struct VmSafe.Rpc[]", - name: "urls", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "rpcUrls", - outputs: [ - { - internalType: "string[2][]", - name: "urls", - type: "string[2][]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "objectKey", - type: "string", - }, - { - internalType: "string", - name: "valueKey", - type: "string", - }, - { - internalType: "address[]", - name: "values", - type: "address[]", - }, - ], - name: "serializeAddress", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "objectKey", - type: "string", - }, - { - internalType: "string", - name: "valueKey", - type: "string", - }, - { - internalType: "address", - name: "value", - type: "address", - }, - ], - name: "serializeAddress", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "objectKey", - type: "string", - }, - { - internalType: "string", - name: "valueKey", - type: "string", - }, - { - internalType: "bool[]", - name: "values", - type: "bool[]", - }, - ], - name: "serializeBool", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "objectKey", - type: "string", - }, - { - internalType: "string", - name: "valueKey", - type: "string", - }, - { - internalType: "bool", - name: "value", - type: "bool", - }, - ], - name: "serializeBool", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "objectKey", - type: "string", - }, - { - internalType: "string", - name: "valueKey", - type: "string", - }, - { - internalType: "bytes[]", - name: "values", - type: "bytes[]", - }, - ], - name: "serializeBytes", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "objectKey", - type: "string", - }, - { - internalType: "string", - name: "valueKey", - type: "string", - }, - { - internalType: "bytes", - name: "value", - type: "bytes", - }, - ], - name: "serializeBytes", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "objectKey", - type: "string", - }, - { - internalType: "string", - name: "valueKey", - type: "string", - }, - { - internalType: "bytes32[]", - name: "values", - type: "bytes32[]", - }, - ], - name: "serializeBytes32", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "objectKey", - type: "string", - }, - { - internalType: "string", - name: "valueKey", - type: "string", - }, - { - internalType: "bytes32", - name: "value", - type: "bytes32", - }, - ], - name: "serializeBytes32", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "objectKey", - type: "string", - }, - { - internalType: "string", - name: "valueKey", - type: "string", - }, - { - internalType: "int256", - name: "value", - type: "int256", - }, - ], - name: "serializeInt", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "objectKey", - type: "string", - }, - { - internalType: "string", - name: "valueKey", - type: "string", - }, - { - internalType: "int256[]", - name: "values", - type: "int256[]", - }, - ], - name: "serializeInt", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "objectKey", - type: "string", - }, - { - internalType: "string", - name: "value", - type: "string", - }, - ], - name: "serializeJson", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "typeDescription", - type: "string", - }, - { - internalType: "bytes", - name: "value", - type: "bytes", - }, - ], - name: "serializeJsonType", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "objectKey", - type: "string", - }, - { - internalType: "string", - name: "valueKey", - type: "string", - }, - { - internalType: "string", - name: "typeDescription", - type: "string", - }, - { - internalType: "bytes", - name: "value", - type: "bytes", - }, - ], - name: "serializeJsonType", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "objectKey", - type: "string", - }, - { - internalType: "string", - name: "valueKey", - type: "string", - }, - { - internalType: "string[]", - name: "values", - type: "string[]", - }, - ], - name: "serializeString", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "objectKey", - type: "string", - }, - { - internalType: "string", - name: "valueKey", - type: "string", - }, - { - internalType: "string", - name: "value", - type: "string", - }, - ], - name: "serializeString", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "objectKey", - type: "string", - }, - { - internalType: "string", - name: "valueKey", - type: "string", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "serializeUint", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "objectKey", - type: "string", - }, - { - internalType: "string", - name: "valueKey", - type: "string", - }, - { - internalType: "uint256[]", - name: "values", - type: "uint256[]", - }, - ], - name: "serializeUint", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "objectKey", - type: "string", - }, - { - internalType: "string", - name: "valueKey", - type: "string", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "serializeUintToHex", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bool", - name: "overwrite", - type: "bool", - }, - ], - name: "setArbitraryStorage", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - ], - name: "setArbitraryStorage", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "value", - type: "string", - }, - ], - name: "setEnv", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256[]", - name: "array", - type: "uint256[]", - }, - ], - name: "shuffle", - outputs: [ - { - internalType: "uint256[]", - name: "", - type: "uint256[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "digest", - type: "bytes32", - }, - ], - name: "sign", - outputs: [ - { - internalType: "uint8", - name: "v", - type: "uint8", - }, - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "s", - type: "bytes32", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "signer", - type: "address", - }, - { - internalType: "bytes32", - name: "digest", - type: "bytes32", - }, - ], - name: "sign", - outputs: [ - { - internalType: "uint8", - name: "v", - type: "uint8", - }, - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "s", - type: "bytes32", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "uint256", - name: "publicKeyX", - type: "uint256", - }, - { - internalType: "uint256", - name: "publicKeyY", - type: "uint256", - }, - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - ], - internalType: "struct VmSafe.Wallet", - name: "wallet", - type: "tuple", - }, - { - internalType: "bytes32", - name: "digest", - type: "bytes32", - }, - ], - name: "sign", - outputs: [ - { - internalType: "uint8", - name: "v", - type: "uint8", - }, - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "s", - type: "bytes32", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - { - internalType: "bytes32", - name: "digest", - type: "bytes32", - }, - ], - name: "sign", - outputs: [ - { - internalType: "uint8", - name: "v", - type: "uint8", - }, - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "s", - type: "bytes32", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "implementation", - type: "address", - }, - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - ], - name: "signAndAttachDelegation", - outputs: [ - { - components: [ - { - internalType: "uint8", - name: "v", - type: "uint8", - }, - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "s", - type: "bytes32", - }, - { - internalType: "uint64", - name: "nonce", - type: "uint64", - }, - { - internalType: "address", - name: "implementation", - type: "address", - }, - ], - internalType: "struct VmSafe.SignedDelegation", - name: "signedDelegation", - type: "tuple", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "implementation", - type: "address", - }, - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - { - internalType: "uint64", - name: "nonce", - type: "uint64", - }, - ], - name: "signAndAttachDelegation", - outputs: [ - { - components: [ - { - internalType: "uint8", - name: "v", - type: "uint8", - }, - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "s", - type: "bytes32", - }, - { - internalType: "uint64", - name: "nonce", - type: "uint64", - }, - { - internalType: "address", - name: "implementation", - type: "address", - }, - ], - internalType: "struct VmSafe.SignedDelegation", - name: "signedDelegation", - type: "tuple", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "uint256", - name: "publicKeyX", - type: "uint256", - }, - { - internalType: "uint256", - name: "publicKeyY", - type: "uint256", - }, - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - ], - internalType: "struct VmSafe.Wallet", - name: "wallet", - type: "tuple", - }, - { - internalType: "bytes32", - name: "digest", - type: "bytes32", - }, - ], - name: "signCompact", - outputs: [ - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "vs", - type: "bytes32", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "signer", - type: "address", - }, - { - internalType: "bytes32", - name: "digest", - type: "bytes32", - }, - ], - name: "signCompact", - outputs: [ - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "vs", - type: "bytes32", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "digest", - type: "bytes32", - }, - ], - name: "signCompact", - outputs: [ - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "vs", - type: "bytes32", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - { - internalType: "bytes32", - name: "digest", - type: "bytes32", - }, - ], - name: "signCompact", - outputs: [ - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "vs", - type: "bytes32", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "implementation", - type: "address", - }, - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - ], - name: "signDelegation", - outputs: [ - { - components: [ - { - internalType: "uint8", - name: "v", - type: "uint8", - }, - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "s", - type: "bytes32", - }, - { - internalType: "uint64", - name: "nonce", - type: "uint64", - }, - { - internalType: "address", - name: "implementation", - type: "address", - }, - ], - internalType: "struct VmSafe.SignedDelegation", - name: "signedDelegation", - type: "tuple", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "implementation", - type: "address", - }, - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - { - internalType: "uint64", - name: "nonce", - type: "uint64", - }, - ], - name: "signDelegation", - outputs: [ - { - components: [ - { - internalType: "uint8", - name: "v", - type: "uint8", - }, - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "s", - type: "bytes32", - }, - { - internalType: "uint64", - name: "nonce", - type: "uint64", - }, - { - internalType: "address", - name: "implementation", - type: "address", - }, - ], - internalType: "struct VmSafe.SignedDelegation", - name: "signedDelegation", - type: "tuple", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - { - internalType: "bytes32", - name: "digest", - type: "bytes32", - }, - ], - name: "signP256", - outputs: [ - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "s", - type: "bytes32", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "duration", - type: "uint256", - }, - ], - name: "sleep", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256[]", - name: "array", - type: "uint256[]", - }, - ], - name: "sort", - outputs: [ - { - internalType: "uint256[]", - name: "", - type: "uint256[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "input", - type: "string", - }, - { - internalType: "string", - name: "delimiter", - type: "string", - }, - ], - name: "split", - outputs: [ - { - internalType: "string[]", - name: "outputs", - type: "string[]", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [], - name: "startBroadcast", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "signer", - type: "address", - }, - ], - name: "startBroadcast", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - ], - name: "startBroadcast", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "startDebugTraceRecording", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "startMappingRecording", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "startStateDiffRecording", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "stopAndReturnDebugTraceRecording", - outputs: [ - { - components: [ - { - internalType: "uint256[]", - name: "stack", - type: "uint256[]", - }, - { - internalType: "bytes", - name: "memoryInput", - type: "bytes", - }, - { - internalType: "uint8", - name: "opcode", - type: "uint8", - }, - { - internalType: "uint64", - name: "depth", - type: "uint64", - }, - { - internalType: "bool", - name: "isOutOfGas", - type: "bool", - }, - { - internalType: "address", - name: "contractAddr", - type: "address", - }, - ], - internalType: "struct VmSafe.DebugStep[]", - name: "step", - type: "tuple[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "stopAndReturnStateDiff", - outputs: [ - { - components: [ - { - components: [ - { - internalType: "uint256", - name: "forkId", - type: "uint256", - }, - { - internalType: "uint256", - name: "chainId", - type: "uint256", - }, - ], - internalType: "struct VmSafe.ChainInfo", - name: "chainInfo", - type: "tuple", - }, - { - internalType: "enum VmSafe.AccountAccessKind", - name: "kind", - type: "uint8", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "address", - name: "accessor", - type: "address", - }, - { - internalType: "bool", - name: "initialized", - type: "bool", - }, - { - internalType: "uint256", - name: "oldBalance", - type: "uint256", - }, - { - internalType: "uint256", - name: "newBalance", - type: "uint256", - }, - { - internalType: "bytes", - name: "deployedCode", - type: "bytes", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - internalType: "bool", - name: "reverted", - type: "bool", - }, - { - components: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "bytes32", - name: "slot", - type: "bytes32", - }, - { - internalType: "bool", - name: "isWrite", - type: "bool", - }, - { - internalType: "bytes32", - name: "previousValue", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "newValue", - type: "bytes32", - }, - { - internalType: "bool", - name: "reverted", - type: "bool", - }, - ], - internalType: "struct VmSafe.StorageAccess[]", - name: "storageAccesses", - type: "tuple[]", - }, - { - internalType: "uint64", - name: "depth", - type: "uint64", - }, - ], - internalType: "struct VmSafe.AccountAccess[]", - name: "accountAccesses", - type: "tuple[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "stopBroadcast", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "stopMappingRecording", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "data", - type: "string", - }, - ], - name: "toBase64", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "toBase64", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "data", - type: "string", - }, - ], - name: "toBase64URL", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "toBase64URL", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "input", - type: "string", - }, - ], - name: "toLowercase", - outputs: [ - { - internalType: "string", - name: "output", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "value", - type: "address", - }, - ], - name: "toString", - outputs: [ - { - internalType: "string", - name: "stringifiedValue", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "toString", - outputs: [ - { - internalType: "string", - name: "stringifiedValue", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "value", - type: "bytes", - }, - ], - name: "toString", - outputs: [ - { - internalType: "string", - name: "stringifiedValue", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bool", - name: "value", - type: "bool", - }, - ], - name: "toString", - outputs: [ - { - internalType: "string", - name: "stringifiedValue", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "value", - type: "int256", - }, - ], - name: "toString", - outputs: [ - { - internalType: "string", - name: "stringifiedValue", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "value", - type: "bytes32", - }, - ], - name: "toString", - outputs: [ - { - internalType: "string", - name: "stringifiedValue", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "input", - type: "string", - }, - ], - name: "toUppercase", - outputs: [ - { - internalType: "string", - name: "output", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "input", - type: "string", - }, - ], - name: "trim", - outputs: [ - { - internalType: "string", - name: "output", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string[]", - name: "commandInput", - type: "string[]", - }, - ], - name: "tryFfi", - outputs: [ - { - components: [ - { - internalType: "int32", - name: "exitCode", - type: "int32", - }, - { - internalType: "bytes", - name: "stdout", - type: "bytes", - }, - { - internalType: "bytes", - name: "stderr", - type: "bytes", - }, - ], - internalType: "struct VmSafe.FfiResult", - name: "result", - type: "tuple", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "unixTime", - outputs: [ - { - internalType: "uint256", - name: "milliseconds", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - { - internalType: "string", - name: "data", - type: "string", - }, - ], - name: "writeFile", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "writeFileBinary", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "path", - type: "string", - }, - { - internalType: "string", - name: "valueKey", - type: "string", - }, - ], - name: "writeJson", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "path", - type: "string", - }, - ], - name: "writeJson", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - { - internalType: "string", - name: "data", - type: "string", - }, - ], - name: "writeLine", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "path", - type: "string", - }, - { - internalType: "string", - name: "valueKey", - type: "string", - }, - ], - name: "writeToml", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "path", - type: "string", - }, - ], - name: "writeToml", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class VmSafe__factory { - static readonly abi = _abi; - static createInterface(): VmSafeInterface { - return new Interface(_abi) as VmSafeInterface; - } - static connect(address: string, runner?: ContractRunner | null): VmSafe { - return new Contract(address, _abi, runner) as unknown as VmSafe; - } -} diff --git a/typechain-types/factories/forge-std/Vm.sol/Vm__factory.ts b/typechain-types/factories/forge-std/Vm.sol/Vm__factory.ts deleted file mode 100644 index acae10ed..00000000 --- a/typechain-types/factories/forge-std/Vm.sol/Vm__factory.ts +++ /dev/null @@ -1,11477 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { Vm, VmInterface } from "../../../forge-std/Vm.sol/Vm"; - -const _abi = [ - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes32[]", - name: "storageKeys", - type: "bytes32[]", - }, - ], - internalType: "struct VmSafe.AccessListItem[]", - name: "access", - type: "tuple[]", - }, - ], - name: "accessList", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - ], - name: "accesses", - outputs: [ - { - internalType: "bytes32[]", - name: "readSlots", - type: "bytes32[]", - }, - { - internalType: "bytes32[]", - name: "writeSlots", - type: "bytes32[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "activeFork", - outputs: [ - { - internalType: "uint256", - name: "forkId", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - ], - name: "addr", - outputs: [ - { - internalType: "address", - name: "keyAddr", - type: "address", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "allowCheatcodes", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "maxDelta", - type: "uint256", - }, - ], - name: "assertApproxEqAbs", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "maxDelta", - type: "uint256", - }, - ], - name: "assertApproxEqAbs", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "maxDelta", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertApproxEqAbs", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "maxDelta", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertApproxEqAbs", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "maxDelta", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "assertApproxEqAbsDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "maxDelta", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "assertApproxEqAbsDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "maxDelta", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertApproxEqAbsDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "maxDelta", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertApproxEqAbsDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "maxPercentDelta", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertApproxEqRel", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "maxPercentDelta", - type: "uint256", - }, - ], - name: "assertApproxEqRel", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "maxPercentDelta", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertApproxEqRel", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "maxPercentDelta", - type: "uint256", - }, - ], - name: "assertApproxEqRel", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "maxPercentDelta", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "assertApproxEqRelDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "maxPercentDelta", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertApproxEqRelDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "maxPercentDelta", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "assertApproxEqRelDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "maxPercentDelta", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertApproxEqRelDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32[]", - name: "left", - type: "bytes32[]", - }, - { - internalType: "bytes32[]", - name: "right", - type: "bytes32[]", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256[]", - name: "left", - type: "int256[]", - }, - { - internalType: "int256[]", - name: "right", - type: "int256[]", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "left", - type: "address", - }, - { - internalType: "address", - name: "right", - type: "address", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "left", - type: "string", - }, - { - internalType: "string", - name: "right", - type: "string", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address[]", - name: "left", - type: "address[]", - }, - { - internalType: "address[]", - name: "right", - type: "address[]", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address[]", - name: "left", - type: "address[]", - }, - { - internalType: "address[]", - name: "right", - type: "address[]", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bool", - name: "left", - type: "bool", - }, - { - internalType: "bool", - name: "right", - type: "bool", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "left", - type: "address", - }, - { - internalType: "address", - name: "right", - type: "address", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256[]", - name: "left", - type: "uint256[]", - }, - { - internalType: "uint256[]", - name: "right", - type: "uint256[]", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bool[]", - name: "left", - type: "bool[]", - }, - { - internalType: "bool[]", - name: "right", - type: "bool[]", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256[]", - name: "left", - type: "int256[]", - }, - { - internalType: "int256[]", - name: "right", - type: "int256[]", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "left", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "right", - type: "bytes32", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256[]", - name: "left", - type: "uint256[]", - }, - { - internalType: "uint256[]", - name: "right", - type: "uint256[]", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "left", - type: "bytes", - }, - { - internalType: "bytes", - name: "right", - type: "bytes", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "left", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "right", - type: "bytes32", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string[]", - name: "left", - type: "string[]", - }, - { - internalType: "string[]", - name: "right", - type: "string[]", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32[]", - name: "left", - type: "bytes32[]", - }, - { - internalType: "bytes32[]", - name: "right", - type: "bytes32[]", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "left", - type: "bytes", - }, - { - internalType: "bytes", - name: "right", - type: "bytes", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bool[]", - name: "left", - type: "bool[]", - }, - { - internalType: "bool[]", - name: "right", - type: "bool[]", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes[]", - name: "left", - type: "bytes[]", - }, - { - internalType: "bytes[]", - name: "right", - type: "bytes[]", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string[]", - name: "left", - type: "string[]", - }, - { - internalType: "string[]", - name: "right", - type: "string[]", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "left", - type: "string", - }, - { - internalType: "string", - name: "right", - type: "string", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes[]", - name: "left", - type: "bytes[]", - }, - { - internalType: "bytes[]", - name: "right", - type: "bytes[]", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bool", - name: "left", - type: "bool", - }, - { - internalType: "bool", - name: "right", - type: "bool", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - ], - name: "assertEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "assertEqDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "assertEqDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertEqDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertEqDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bool", - name: "condition", - type: "bool", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertFalse", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bool", - name: "condition", - type: "bool", - }, - ], - name: "assertFalse", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - ], - name: "assertGe", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertGe", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - ], - name: "assertGe", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertGe", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "assertGeDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertGeDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertGeDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "assertGeDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - ], - name: "assertGt", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertGt", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - ], - name: "assertGt", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertGt", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertGtDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertGtDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "assertGtDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "assertGtDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertLe", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - ], - name: "assertLe", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - ], - name: "assertLe", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertLe", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "assertLeDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertLeDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertLeDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "assertLeDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - ], - name: "assertLt", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertLt", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertLt", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - ], - name: "assertLt", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "assertLtDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertLtDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertLtDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "assertLtDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32[]", - name: "left", - type: "bytes32[]", - }, - { - internalType: "bytes32[]", - name: "right", - type: "bytes32[]", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256[]", - name: "left", - type: "int256[]", - }, - { - internalType: "int256[]", - name: "right", - type: "int256[]", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bool", - name: "left", - type: "bool", - }, - { - internalType: "bool", - name: "right", - type: "bool", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes[]", - name: "left", - type: "bytes[]", - }, - { - internalType: "bytes[]", - name: "right", - type: "bytes[]", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bool", - name: "left", - type: "bool", - }, - { - internalType: "bool", - name: "right", - type: "bool", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bool[]", - name: "left", - type: "bool[]", - }, - { - internalType: "bool[]", - name: "right", - type: "bool[]", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "left", - type: "bytes", - }, - { - internalType: "bytes", - name: "right", - type: "bytes", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address[]", - name: "left", - type: "address[]", - }, - { - internalType: "address[]", - name: "right", - type: "address[]", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256[]", - name: "left", - type: "uint256[]", - }, - { - internalType: "uint256[]", - name: "right", - type: "uint256[]", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bool[]", - name: "left", - type: "bool[]", - }, - { - internalType: "bool[]", - name: "right", - type: "bool[]", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "left", - type: "string", - }, - { - internalType: "string", - name: "right", - type: "string", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address[]", - name: "left", - type: "address[]", - }, - { - internalType: "address[]", - name: "right", - type: "address[]", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "left", - type: "string", - }, - { - internalType: "string", - name: "right", - type: "string", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "left", - type: "address", - }, - { - internalType: "address", - name: "right", - type: "address", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "left", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "right", - type: "bytes32", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "left", - type: "bytes", - }, - { - internalType: "bytes", - name: "right", - type: "bytes", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256[]", - name: "left", - type: "uint256[]", - }, - { - internalType: "uint256[]", - name: "right", - type: "uint256[]", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "left", - type: "address", - }, - { - internalType: "address", - name: "right", - type: "address", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "left", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "right", - type: "bytes32", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string[]", - name: "left", - type: "string[]", - }, - { - internalType: "string[]", - name: "right", - type: "string[]", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32[]", - name: "left", - type: "bytes32[]", - }, - { - internalType: "bytes32[]", - name: "right", - type: "bytes32[]", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string[]", - name: "left", - type: "string[]", - }, - { - internalType: "string[]", - name: "right", - type: "string[]", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256[]", - name: "left", - type: "int256[]", - }, - { - internalType: "int256[]", - name: "right", - type: "int256[]", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes[]", - name: "left", - type: "bytes[]", - }, - { - internalType: "bytes[]", - name: "right", - type: "bytes[]", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - ], - name: "assertNotEq", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "assertNotEqDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "left", - type: "int256", - }, - { - internalType: "int256", - name: "right", - type: "int256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertNotEqDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "assertNotEqDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "left", - type: "uint256", - }, - { - internalType: "uint256", - name: "right", - type: "uint256", - }, - { - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertNotEqDecimal", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bool", - name: "condition", - type: "bool", - }, - ], - name: "assertTrue", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bool", - name: "condition", - type: "bool", - }, - { - internalType: "string", - name: "error", - type: "string", - }, - ], - name: "assertTrue", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bool", - name: "condition", - type: "bool", - }, - ], - name: "assume", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [], - name: "assumeNoRevert", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "reverter", - type: "address", - }, - { - internalType: "bool", - name: "partialMatch", - type: "bool", - }, - { - internalType: "bytes", - name: "revertData", - type: "bytes", - }, - ], - internalType: "struct VmSafe.PotentialRevert[]", - name: "potentialReverts", - type: "tuple[]", - }, - ], - name: "assumeNoRevert", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "reverter", - type: "address", - }, - { - internalType: "bool", - name: "partialMatch", - type: "bool", - }, - { - internalType: "bytes", - name: "revertData", - type: "bytes", - }, - ], - internalType: "struct VmSafe.PotentialRevert", - name: "potentialRevert", - type: "tuple", - }, - ], - name: "assumeNoRevert", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "blob", - type: "bytes", - }, - ], - name: "attachBlob", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "uint8", - name: "v", - type: "uint8", - }, - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "s", - type: "bytes32", - }, - { - internalType: "uint64", - name: "nonce", - type: "uint64", - }, - { - internalType: "address", - name: "implementation", - type: "address", - }, - ], - internalType: "struct VmSafe.SignedDelegation", - name: "signedDelegation", - type: "tuple", - }, - ], - name: "attachDelegation", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "newBlobBaseFee", - type: "uint256", - }, - ], - name: "blobBaseFee", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32[]", - name: "hashes", - type: "bytes32[]", - }, - ], - name: "blobhashes", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "char", - type: "string", - }, - ], - name: "breakpoint", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "char", - type: "string", - }, - { - internalType: "bool", - name: "value", - type: "bool", - }, - ], - name: "breakpoint", - outputs: [], - stateMutability: "pure", - type: "function", - }, - { - inputs: [], - name: "broadcast", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "signer", - type: "address", - }, - ], - name: "broadcast", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - ], - name: "broadcast", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "broadcastRawTransaction", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "newChainId", - type: "uint256", - }, - ], - name: "chainId", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "clearMockedCalls", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "source", - type: "address", - }, - { - internalType: "address", - name: "target", - type: "address", - }, - ], - name: "cloneAccount", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - ], - name: "closeFile", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newCoinbase", - type: "address", - }, - ], - name: "coinbase", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "salt", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "initCodeHash", - type: "bytes32", - }, - ], - name: "computeCreate2Address", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "salt", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "initCodeHash", - type: "bytes32", - }, - { - internalType: "address", - name: "deployer", - type: "address", - }, - ], - name: "computeCreate2Address", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "deployer", - type: "address", - }, - { - internalType: "uint256", - name: "nonce", - type: "uint256", - }, - ], - name: "computeCreateAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "subject", - type: "string", - }, - { - internalType: "string", - name: "search", - type: "string", - }, - ], - name: "contains", - outputs: [ - { - internalType: "bool", - name: "result", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - ], - name: "cool", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes32", - name: "slot", - type: "bytes32", - }, - ], - name: "coolSlot", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "from", - type: "string", - }, - { - internalType: "string", - name: "to", - type: "string", - }, - ], - name: "copyFile", - outputs: [ - { - internalType: "uint64", - name: "copied", - type: "uint64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - ], - name: "copyStorage", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - { - internalType: "bool", - name: "recursive", - type: "bool", - }, - ], - name: "createDir", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "urlOrAlias", - type: "string", - }, - ], - name: "createFork", - outputs: [ - { - internalType: "uint256", - name: "forkId", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "urlOrAlias", - type: "string", - }, - { - internalType: "uint256", - name: "blockNumber", - type: "uint256", - }, - ], - name: "createFork", - outputs: [ - { - internalType: "uint256", - name: "forkId", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "urlOrAlias", - type: "string", - }, - { - internalType: "bytes32", - name: "txHash", - type: "bytes32", - }, - ], - name: "createFork", - outputs: [ - { - internalType: "uint256", - name: "forkId", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "urlOrAlias", - type: "string", - }, - { - internalType: "uint256", - name: "blockNumber", - type: "uint256", - }, - ], - name: "createSelectFork", - outputs: [ - { - internalType: "uint256", - name: "forkId", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "urlOrAlias", - type: "string", - }, - { - internalType: "bytes32", - name: "txHash", - type: "bytes32", - }, - ], - name: "createSelectFork", - outputs: [ - { - internalType: "uint256", - name: "forkId", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "urlOrAlias", - type: "string", - }, - ], - name: "createSelectFork", - outputs: [ - { - internalType: "uint256", - name: "forkId", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "walletLabel", - type: "string", - }, - ], - name: "createWallet", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "uint256", - name: "publicKeyX", - type: "uint256", - }, - { - internalType: "uint256", - name: "publicKeyY", - type: "uint256", - }, - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - ], - internalType: "struct VmSafe.Wallet", - name: "wallet", - type: "tuple", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - ], - name: "createWallet", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "uint256", - name: "publicKeyX", - type: "uint256", - }, - { - internalType: "uint256", - name: "publicKeyY", - type: "uint256", - }, - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - ], - internalType: "struct VmSafe.Wallet", - name: "wallet", - type: "tuple", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - { - internalType: "string", - name: "walletLabel", - type: "string", - }, - ], - name: "createWallet", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "uint256", - name: "publicKeyX", - type: "uint256", - }, - { - internalType: "uint256", - name: "publicKeyY", - type: "uint256", - }, - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - ], - internalType: "struct VmSafe.Wallet", - name: "wallet", - type: "tuple", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "uint256", - name: "newBalance", - type: "uint256", - }, - ], - name: "deal", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "snapshotId", - type: "uint256", - }, - ], - name: "deleteSnapshot", - outputs: [ - { - internalType: "bool", - name: "success", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "deleteSnapshots", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "snapshotId", - type: "uint256", - }, - ], - name: "deleteStateSnapshot", - outputs: [ - { - internalType: "bool", - name: "success", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "deleteStateSnapshots", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "artifactPath", - type: "string", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - internalType: "bytes32", - name: "salt", - type: "bytes32", - }, - ], - name: "deployCode", - outputs: [ - { - internalType: "address", - name: "deployedAddress", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "artifactPath", - type: "string", - }, - { - internalType: "bytes", - name: "constructorArgs", - type: "bytes", - }, - { - internalType: "bytes32", - name: "salt", - type: "bytes32", - }, - ], - name: "deployCode", - outputs: [ - { - internalType: "address", - name: "deployedAddress", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "artifactPath", - type: "string", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "deployCode", - outputs: [ - { - internalType: "address", - name: "deployedAddress", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "artifactPath", - type: "string", - }, - { - internalType: "bytes32", - name: "salt", - type: "bytes32", - }, - ], - name: "deployCode", - outputs: [ - { - internalType: "address", - name: "deployedAddress", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "artifactPath", - type: "string", - }, - { - internalType: "bytes", - name: "constructorArgs", - type: "bytes", - }, - ], - name: "deployCode", - outputs: [ - { - internalType: "address", - name: "deployedAddress", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "artifactPath", - type: "string", - }, - { - internalType: "bytes", - name: "constructorArgs", - type: "bytes", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - internalType: "bytes32", - name: "salt", - type: "bytes32", - }, - ], - name: "deployCode", - outputs: [ - { - internalType: "address", - name: "deployedAddress", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "artifactPath", - type: "string", - }, - ], - name: "deployCode", - outputs: [ - { - internalType: "address", - name: "deployedAddress", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "artifactPath", - type: "string", - }, - { - internalType: "bytes", - name: "constructorArgs", - type: "bytes", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "deployCode", - outputs: [ - { - internalType: "address", - name: "deployedAddress", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "mnemonic", - type: "string", - }, - { - internalType: "string", - name: "derivationPath", - type: "string", - }, - { - internalType: "uint32", - name: "index", - type: "uint32", - }, - { - internalType: "string", - name: "language", - type: "string", - }, - ], - name: "deriveKey", - outputs: [ - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "mnemonic", - type: "string", - }, - { - internalType: "uint32", - name: "index", - type: "uint32", - }, - { - internalType: "string", - name: "language", - type: "string", - }, - ], - name: "deriveKey", - outputs: [ - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "mnemonic", - type: "string", - }, - { - internalType: "uint32", - name: "index", - type: "uint32", - }, - ], - name: "deriveKey", - outputs: [ - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "mnemonic", - type: "string", - }, - { - internalType: "string", - name: "derivationPath", - type: "string", - }, - { - internalType: "uint32", - name: "index", - type: "uint32", - }, - ], - name: "deriveKey", - outputs: [ - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "newDifficulty", - type: "uint256", - }, - ], - name: "difficulty", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "pathToStateJson", - type: "string", - }, - ], - name: "dumpState", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - ], - name: "ensNamehash", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - ], - name: "envAddress", - outputs: [ - { - internalType: "address", - name: "value", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "delim", - type: "string", - }, - ], - name: "envAddress", - outputs: [ - { - internalType: "address[]", - name: "value", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - ], - name: "envBool", - outputs: [ - { - internalType: "bool", - name: "value", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "delim", - type: "string", - }, - ], - name: "envBool", - outputs: [ - { - internalType: "bool[]", - name: "value", - type: "bool[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - ], - name: "envBytes", - outputs: [ - { - internalType: "bytes", - name: "value", - type: "bytes", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "delim", - type: "string", - }, - ], - name: "envBytes", - outputs: [ - { - internalType: "bytes[]", - name: "value", - type: "bytes[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "delim", - type: "string", - }, - ], - name: "envBytes32", - outputs: [ - { - internalType: "bytes32[]", - name: "value", - type: "bytes32[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - ], - name: "envBytes32", - outputs: [ - { - internalType: "bytes32", - name: "value", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - ], - name: "envExists", - outputs: [ - { - internalType: "bool", - name: "result", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "delim", - type: "string", - }, - ], - name: "envInt", - outputs: [ - { - internalType: "int256[]", - name: "value", - type: "int256[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - ], - name: "envInt", - outputs: [ - { - internalType: "int256", - name: "value", - type: "int256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "delim", - type: "string", - }, - { - internalType: "bytes32[]", - name: "defaultValue", - type: "bytes32[]", - }, - ], - name: "envOr", - outputs: [ - { - internalType: "bytes32[]", - name: "value", - type: "bytes32[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "delim", - type: "string", - }, - { - internalType: "int256[]", - name: "defaultValue", - type: "int256[]", - }, - ], - name: "envOr", - outputs: [ - { - internalType: "int256[]", - name: "value", - type: "int256[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "bool", - name: "defaultValue", - type: "bool", - }, - ], - name: "envOr", - outputs: [ - { - internalType: "bool", - name: "value", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "address", - name: "defaultValue", - type: "address", - }, - ], - name: "envOr", - outputs: [ - { - internalType: "address", - name: "value", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "uint256", - name: "defaultValue", - type: "uint256", - }, - ], - name: "envOr", - outputs: [ - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "delim", - type: "string", - }, - { - internalType: "bytes[]", - name: "defaultValue", - type: "bytes[]", - }, - ], - name: "envOr", - outputs: [ - { - internalType: "bytes[]", - name: "value", - type: "bytes[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "delim", - type: "string", - }, - { - internalType: "uint256[]", - name: "defaultValue", - type: "uint256[]", - }, - ], - name: "envOr", - outputs: [ - { - internalType: "uint256[]", - name: "value", - type: "uint256[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "delim", - type: "string", - }, - { - internalType: "string[]", - name: "defaultValue", - type: "string[]", - }, - ], - name: "envOr", - outputs: [ - { - internalType: "string[]", - name: "value", - type: "string[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "bytes", - name: "defaultValue", - type: "bytes", - }, - ], - name: "envOr", - outputs: [ - { - internalType: "bytes", - name: "value", - type: "bytes", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "bytes32", - name: "defaultValue", - type: "bytes32", - }, - ], - name: "envOr", - outputs: [ - { - internalType: "bytes32", - name: "value", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "int256", - name: "defaultValue", - type: "int256", - }, - ], - name: "envOr", - outputs: [ - { - internalType: "int256", - name: "value", - type: "int256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "delim", - type: "string", - }, - { - internalType: "address[]", - name: "defaultValue", - type: "address[]", - }, - ], - name: "envOr", - outputs: [ - { - internalType: "address[]", - name: "value", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "defaultValue", - type: "string", - }, - ], - name: "envOr", - outputs: [ - { - internalType: "string", - name: "value", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "delim", - type: "string", - }, - { - internalType: "bool[]", - name: "defaultValue", - type: "bool[]", - }, - ], - name: "envOr", - outputs: [ - { - internalType: "bool[]", - name: "value", - type: "bool[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "delim", - type: "string", - }, - ], - name: "envString", - outputs: [ - { - internalType: "string[]", - name: "value", - type: "string[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - ], - name: "envString", - outputs: [ - { - internalType: "string", - name: "value", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - ], - name: "envUint", - outputs: [ - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "delim", - type: "string", - }, - ], - name: "envUint", - outputs: [ - { - internalType: "uint256[]", - name: "value", - type: "uint256[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes", - name: "newRuntimeBytecode", - type: "bytes", - }, - ], - name: "etch", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "fromBlock", - type: "uint256", - }, - { - internalType: "uint256", - name: "toBlock", - type: "uint256", - }, - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes32[]", - name: "topics", - type: "bytes32[]", - }, - ], - name: "eth_getLogs", - outputs: [ - { - components: [ - { - internalType: "address", - name: "emitter", - type: "address", - }, - { - internalType: "bytes32[]", - name: "topics", - type: "bytes32[]", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - internalType: "bytes32", - name: "blockHash", - type: "bytes32", - }, - { - internalType: "uint64", - name: "blockNumber", - type: "uint64", - }, - { - internalType: "bytes32", - name: "transactionHash", - type: "bytes32", - }, - { - internalType: "uint64", - name: "transactionIndex", - type: "uint64", - }, - { - internalType: "uint256", - name: "logIndex", - type: "uint256", - }, - { - internalType: "bool", - name: "removed", - type: "bool", - }, - ], - internalType: "struct VmSafe.EthGetLogs[]", - name: "logs", - type: "tuple[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - ], - name: "exists", - outputs: [ - { - internalType: "bool", - name: "result", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "callee", - type: "address", - }, - { - internalType: "uint256", - name: "msgValue", - type: "uint256", - }, - { - internalType: "uint64", - name: "gas", - type: "uint64", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "expectCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "callee", - type: "address", - }, - { - internalType: "uint256", - name: "msgValue", - type: "uint256", - }, - { - internalType: "uint64", - name: "gas", - type: "uint64", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - internalType: "uint64", - name: "count", - type: "uint64", - }, - ], - name: "expectCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "callee", - type: "address", - }, - { - internalType: "uint256", - name: "msgValue", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - internalType: "uint64", - name: "count", - type: "uint64", - }, - ], - name: "expectCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "callee", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "expectCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "callee", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - internalType: "uint64", - name: "count", - type: "uint64", - }, - ], - name: "expectCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "callee", - type: "address", - }, - { - internalType: "uint256", - name: "msgValue", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "expectCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "callee", - type: "address", - }, - { - internalType: "uint256", - name: "msgValue", - type: "uint256", - }, - { - internalType: "uint64", - name: "minGas", - type: "uint64", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "expectCallMinGas", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "callee", - type: "address", - }, - { - internalType: "uint256", - name: "msgValue", - type: "uint256", - }, - { - internalType: "uint64", - name: "minGas", - type: "uint64", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - internalType: "uint64", - name: "count", - type: "uint64", - }, - ], - name: "expectCallMinGas", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "bytecode", - type: "bytes", - }, - { - internalType: "address", - name: "deployer", - type: "address", - }, - ], - name: "expectCreate", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "bytecode", - type: "bytes", - }, - { - internalType: "address", - name: "deployer", - type: "address", - }, - ], - name: "expectCreate2", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "expectEmit", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bool", - name: "checkTopic1", - type: "bool", - }, - { - internalType: "bool", - name: "checkTopic2", - type: "bool", - }, - { - internalType: "bool", - name: "checkTopic3", - type: "bool", - }, - { - internalType: "bool", - name: "checkData", - type: "bool", - }, - ], - name: "expectEmit", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint64", - name: "count", - type: "uint64", - }, - ], - name: "expectEmit", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bool", - name: "checkTopic1", - type: "bool", - }, - { - internalType: "bool", - name: "checkTopic2", - type: "bool", - }, - { - internalType: "bool", - name: "checkTopic3", - type: "bool", - }, - { - internalType: "bool", - name: "checkData", - type: "bool", - }, - { - internalType: "uint64", - name: "count", - type: "uint64", - }, - ], - name: "expectEmit", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bool", - name: "checkTopic1", - type: "bool", - }, - { - internalType: "bool", - name: "checkTopic2", - type: "bool", - }, - { - internalType: "bool", - name: "checkTopic3", - type: "bool", - }, - { - internalType: "bool", - name: "checkData", - type: "bool", - }, - { - internalType: "address", - name: "emitter", - type: "address", - }, - ], - name: "expectEmit", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "emitter", - type: "address", - }, - ], - name: "expectEmit", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "emitter", - type: "address", - }, - { - internalType: "uint64", - name: "count", - type: "uint64", - }, - ], - name: "expectEmit", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bool", - name: "checkTopic1", - type: "bool", - }, - { - internalType: "bool", - name: "checkTopic2", - type: "bool", - }, - { - internalType: "bool", - name: "checkTopic3", - type: "bool", - }, - { - internalType: "bool", - name: "checkData", - type: "bool", - }, - { - internalType: "address", - name: "emitter", - type: "address", - }, - { - internalType: "uint64", - name: "count", - type: "uint64", - }, - ], - name: "expectEmit", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "expectEmitAnonymous", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "emitter", - type: "address", - }, - ], - name: "expectEmitAnonymous", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bool", - name: "checkTopic0", - type: "bool", - }, - { - internalType: "bool", - name: "checkTopic1", - type: "bool", - }, - { - internalType: "bool", - name: "checkTopic2", - type: "bool", - }, - { - internalType: "bool", - name: "checkTopic3", - type: "bool", - }, - { - internalType: "bool", - name: "checkData", - type: "bool", - }, - { - internalType: "address", - name: "emitter", - type: "address", - }, - ], - name: "expectEmitAnonymous", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bool", - name: "checkTopic0", - type: "bool", - }, - { - internalType: "bool", - name: "checkTopic1", - type: "bool", - }, - { - internalType: "bool", - name: "checkTopic2", - type: "bool", - }, - { - internalType: "bool", - name: "checkTopic3", - type: "bool", - }, - { - internalType: "bool", - name: "checkData", - type: "bool", - }, - ], - name: "expectEmitAnonymous", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes4", - name: "revertData", - type: "bytes4", - }, - ], - name: "expectPartialRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes4", - name: "revertData", - type: "bytes4", - }, - { - internalType: "address", - name: "reverter", - type: "address", - }, - ], - name: "expectPartialRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "reverter", - type: "address", - }, - { - internalType: "uint64", - name: "count", - type: "uint64", - }, - ], - name: "expectRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes4", - name: "revertData", - type: "bytes4", - }, - { - internalType: "address", - name: "reverter", - type: "address", - }, - ], - name: "expectRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "revertData", - type: "bytes", - }, - { - internalType: "uint64", - name: "count", - type: "uint64", - }, - ], - name: "expectRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint64", - name: "count", - type: "uint64", - }, - ], - name: "expectRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "revertData", - type: "bytes", - }, - { - internalType: "address", - name: "reverter", - type: "address", - }, - ], - name: "expectRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes4", - name: "revertData", - type: "bytes4", - }, - { - internalType: "address", - name: "reverter", - type: "address", - }, - { - internalType: "uint64", - name: "count", - type: "uint64", - }, - ], - name: "expectRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes4", - name: "revertData", - type: "bytes4", - }, - ], - name: "expectRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "revertData", - type: "bytes", - }, - { - internalType: "address", - name: "reverter", - type: "address", - }, - { - internalType: "uint64", - name: "count", - type: "uint64", - }, - ], - name: "expectRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "reverter", - type: "address", - }, - ], - name: "expectRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes4", - name: "revertData", - type: "bytes4", - }, - { - internalType: "uint64", - name: "count", - type: "uint64", - }, - ], - name: "expectRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "revertData", - type: "bytes", - }, - ], - name: "expectRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "expectRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint64", - name: "min", - type: "uint64", - }, - { - internalType: "uint64", - name: "max", - type: "uint64", - }, - ], - name: "expectSafeMemory", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint64", - name: "min", - type: "uint64", - }, - { - internalType: "uint64", - name: "max", - type: "uint64", - }, - ], - name: "expectSafeMemoryCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "newBasefee", - type: "uint256", - }, - ], - name: "fee", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string[]", - name: "commandInput", - type: "string[]", - }, - ], - name: "ffi", - outputs: [ - { - internalType: "bytes", - name: "result", - type: "bytes", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "version", - type: "string", - }, - ], - name: "foundryVersionAtLeast", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "version", - type: "string", - }, - ], - name: "foundryVersionCmp", - outputs: [ - { - internalType: "int256", - name: "", - type: "int256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - ], - name: "fsMetadata", - outputs: [ - { - components: [ - { - internalType: "bool", - name: "isDir", - type: "bool", - }, - { - internalType: "bool", - name: "isSymlink", - type: "bool", - }, - { - internalType: "uint256", - name: "length", - type: "uint256", - }, - { - internalType: "bool", - name: "readOnly", - type: "bool", - }, - { - internalType: "uint256", - name: "modified", - type: "uint256", - }, - { - internalType: "uint256", - name: "accessed", - type: "uint256", - }, - { - internalType: "uint256", - name: "created", - type: "uint256", - }, - ], - internalType: "struct VmSafe.FsMetadata", - name: "metadata", - type: "tuple", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "code", - type: "bytes", - }, - ], - name: "getArtifactPathByCode", - outputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "deployedCode", - type: "bytes", - }, - ], - name: "getArtifactPathByDeployedCode", - outputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "getBlobBaseFee", - outputs: [ - { - internalType: "uint256", - name: "blobBaseFee", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "getBlobhashes", - outputs: [ - { - internalType: "bytes32[]", - name: "hashes", - type: "bytes32[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "getBlockNumber", - outputs: [ - { - internalType: "uint256", - name: "height", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "getBlockTimestamp", - outputs: [ - { - internalType: "uint256", - name: "timestamp", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "contractName", - type: "string", - }, - { - internalType: "uint64", - name: "chainId", - type: "uint64", - }, - { - internalType: "enum VmSafe.BroadcastTxType", - name: "txType", - type: "uint8", - }, - ], - name: "getBroadcast", - outputs: [ - { - components: [ - { - internalType: "bytes32", - name: "txHash", - type: "bytes32", - }, - { - internalType: "enum VmSafe.BroadcastTxType", - name: "txType", - type: "uint8", - }, - { - internalType: "address", - name: "contractAddress", - type: "address", - }, - { - internalType: "uint64", - name: "blockNumber", - type: "uint64", - }, - { - internalType: "bool", - name: "success", - type: "bool", - }, - ], - internalType: "struct VmSafe.BroadcastTxSummary", - name: "", - type: "tuple", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "contractName", - type: "string", - }, - { - internalType: "uint64", - name: "chainId", - type: "uint64", - }, - ], - name: "getBroadcasts", - outputs: [ - { - components: [ - { - internalType: "bytes32", - name: "txHash", - type: "bytes32", - }, - { - internalType: "enum VmSafe.BroadcastTxType", - name: "txType", - type: "uint8", - }, - { - internalType: "address", - name: "contractAddress", - type: "address", - }, - { - internalType: "uint64", - name: "blockNumber", - type: "uint64", - }, - { - internalType: "bool", - name: "success", - type: "bool", - }, - ], - internalType: "struct VmSafe.BroadcastTxSummary[]", - name: "", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "contractName", - type: "string", - }, - { - internalType: "uint64", - name: "chainId", - type: "uint64", - }, - { - internalType: "enum VmSafe.BroadcastTxType", - name: "txType", - type: "uint8", - }, - ], - name: "getBroadcasts", - outputs: [ - { - components: [ - { - internalType: "bytes32", - name: "txHash", - type: "bytes32", - }, - { - internalType: "enum VmSafe.BroadcastTxType", - name: "txType", - type: "uint8", - }, - { - internalType: "address", - name: "contractAddress", - type: "address", - }, - { - internalType: "uint64", - name: "blockNumber", - type: "uint64", - }, - { - internalType: "bool", - name: "success", - type: "bool", - }, - ], - internalType: "struct VmSafe.BroadcastTxSummary[]", - name: "", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "chainAlias", - type: "string", - }, - ], - name: "getChain", - outputs: [ - { - components: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "uint256", - name: "chainId", - type: "uint256", - }, - { - internalType: "string", - name: "chainAlias", - type: "string", - }, - { - internalType: "string", - name: "rpcUrl", - type: "string", - }, - ], - internalType: "struct VmSafe.Chain", - name: "chain", - type: "tuple", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "chainId", - type: "uint256", - }, - ], - name: "getChain", - outputs: [ - { - components: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "uint256", - name: "chainId", - type: "uint256", - }, - { - internalType: "string", - name: "chainAlias", - type: "string", - }, - { - internalType: "string", - name: "rpcUrl", - type: "string", - }, - ], - internalType: "struct VmSafe.Chain", - name: "chain", - type: "tuple", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "artifactPath", - type: "string", - }, - ], - name: "getCode", - outputs: [ - { - internalType: "bytes", - name: "creationBytecode", - type: "bytes", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "artifactPath", - type: "string", - }, - ], - name: "getDeployedCode", - outputs: [ - { - internalType: "bytes", - name: "runtimeBytecode", - type: "bytes", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "contractName", - type: "string", - }, - { - internalType: "uint64", - name: "chainId", - type: "uint64", - }, - ], - name: "getDeployment", - outputs: [ - { - internalType: "address", - name: "deployedAddress", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "contractName", - type: "string", - }, - ], - name: "getDeployment", - outputs: [ - { - internalType: "address", - name: "deployedAddress", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "contractName", - type: "string", - }, - { - internalType: "uint64", - name: "chainId", - type: "uint64", - }, - ], - name: "getDeployments", - outputs: [ - { - internalType: "address[]", - name: "deployedAddresses", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "getFoundryVersion", - outputs: [ - { - internalType: "string", - name: "version", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "getLabel", - outputs: [ - { - internalType: "string", - name: "currentLabel", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes32", - name: "elementSlot", - type: "bytes32", - }, - ], - name: "getMappingKeyAndParentOf", - outputs: [ - { - internalType: "bool", - name: "found", - type: "bool", - }, - { - internalType: "bytes32", - name: "key", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "parent", - type: "bytes32", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes32", - name: "mappingSlot", - type: "bytes32", - }, - ], - name: "getMappingLength", - outputs: [ - { - internalType: "uint256", - name: "length", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes32", - name: "mappingSlot", - type: "bytes32", - }, - { - internalType: "uint256", - name: "idx", - type: "uint256", - }, - ], - name: "getMappingSlotAt", - outputs: [ - { - internalType: "bytes32", - name: "value", - type: "bytes32", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "getNonce", - outputs: [ - { - internalType: "uint64", - name: "nonce", - type: "uint64", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "uint256", - name: "publicKeyX", - type: "uint256", - }, - { - internalType: "uint256", - name: "publicKeyY", - type: "uint256", - }, - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - ], - internalType: "struct VmSafe.Wallet", - name: "wallet", - type: "tuple", - }, - ], - name: "getNonce", - outputs: [ - { - internalType: "uint64", - name: "nonce", - type: "uint64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "getRecordedLogs", - outputs: [ - { - components: [ - { - internalType: "bytes32[]", - name: "topics", - type: "bytes32[]", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - internalType: "address", - name: "emitter", - type: "address", - }, - ], - internalType: "struct VmSafe.Log[]", - name: "logs", - type: "tuple[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "getStateDiff", - outputs: [ - { - internalType: "string", - name: "diff", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "getStateDiffJson", - outputs: [ - { - internalType: "string", - name: "diff", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "getWallets", - outputs: [ - { - internalType: "address[]", - name: "wallets", - type: "address[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "input", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "indexOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [], - name: "interceptInitcode", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "enum VmSafe.ForgeContext", - name: "context", - type: "uint8", - }, - ], - name: "isContext", - outputs: [ - { - internalType: "bool", - name: "result", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - ], - name: "isDir", - outputs: [ - { - internalType: "bool", - name: "result", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - ], - name: "isFile", - outputs: [ - { - internalType: "bool", - name: "result", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "isPersistent", - outputs: [ - { - internalType: "bool", - name: "persistent", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "keyExists", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "keyExistsJson", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "keyExistsToml", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "string", - name: "newLabel", - type: "string", - }, - ], - name: "label", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "lastCallGas", - outputs: [ - { - components: [ - { - internalType: "uint64", - name: "gasLimit", - type: "uint64", - }, - { - internalType: "uint64", - name: "gasTotalUsed", - type: "uint64", - }, - { - internalType: "uint64", - name: "gasMemoryUsed", - type: "uint64", - }, - { - internalType: "int64", - name: "gasRefunded", - type: "int64", - }, - { - internalType: "uint64", - name: "gasRemaining", - type: "uint64", - }, - ], - internalType: "struct VmSafe.Gas", - name: "gas", - type: "tuple", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes32", - name: "slot", - type: "bytes32", - }, - ], - name: "load", - outputs: [ - { - internalType: "bytes32", - name: "data", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "pathToAllocsJson", - type: "string", - }, - ], - name: "loadAllocs", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address[]", - name: "accounts", - type: "address[]", - }, - ], - name: "makePersistent", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account0", - type: "address", - }, - { - internalType: "address", - name: "account1", - type: "address", - }, - ], - name: "makePersistent", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "makePersistent", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account0", - type: "address", - }, - { - internalType: "address", - name: "account1", - type: "address", - }, - { - internalType: "address", - name: "account2", - type: "address", - }, - ], - name: "makePersistent", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "callee", - type: "address", - }, - { - internalType: "bytes4", - name: "data", - type: "bytes4", - }, - { - internalType: "bytes", - name: "returnData", - type: "bytes", - }, - ], - name: "mockCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "callee", - type: "address", - }, - { - internalType: "uint256", - name: "msgValue", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - internalType: "bytes", - name: "returnData", - type: "bytes", - }, - ], - name: "mockCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "callee", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - internalType: "bytes", - name: "returnData", - type: "bytes", - }, - ], - name: "mockCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "callee", - type: "address", - }, - { - internalType: "uint256", - name: "msgValue", - type: "uint256", - }, - { - internalType: "bytes4", - name: "data", - type: "bytes4", - }, - { - internalType: "bytes", - name: "returnData", - type: "bytes", - }, - ], - name: "mockCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "callee", - type: "address", - }, - { - internalType: "bytes4", - name: "data", - type: "bytes4", - }, - { - internalType: "bytes", - name: "revertData", - type: "bytes", - }, - ], - name: "mockCallRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "callee", - type: "address", - }, - { - internalType: "uint256", - name: "msgValue", - type: "uint256", - }, - { - internalType: "bytes4", - name: "data", - type: "bytes4", - }, - { - internalType: "bytes", - name: "revertData", - type: "bytes", - }, - ], - name: "mockCallRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "callee", - type: "address", - }, - { - internalType: "uint256", - name: "msgValue", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - internalType: "bytes", - name: "revertData", - type: "bytes", - }, - ], - name: "mockCallRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "callee", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - internalType: "bytes", - name: "revertData", - type: "bytes", - }, - ], - name: "mockCallRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "callee", - type: "address", - }, - { - internalType: "uint256", - name: "msgValue", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - internalType: "bytes[]", - name: "returnData", - type: "bytes[]", - }, - ], - name: "mockCalls", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "callee", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - internalType: "bytes[]", - name: "returnData", - type: "bytes[]", - }, - ], - name: "mockCalls", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "callee", - type: "address", - }, - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "mockFunction", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "noAccessList", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "stringifiedValue", - type: "string", - }, - ], - name: "parseAddress", - outputs: [ - { - internalType: "address", - name: "parsedValue", - type: "address", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "stringifiedValue", - type: "string", - }, - ], - name: "parseBool", - outputs: [ - { - internalType: "bool", - name: "parsedValue", - type: "bool", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "stringifiedValue", - type: "string", - }, - ], - name: "parseBytes", - outputs: [ - { - internalType: "bytes", - name: "parsedValue", - type: "bytes", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "stringifiedValue", - type: "string", - }, - ], - name: "parseBytes32", - outputs: [ - { - internalType: "bytes32", - name: "parsedValue", - type: "bytes32", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "stringifiedValue", - type: "string", - }, - ], - name: "parseInt", - outputs: [ - { - internalType: "int256", - name: "parsedValue", - type: "int256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - name: "parseJson", - outputs: [ - { - internalType: "bytes", - name: "abiEncodedData", - type: "bytes", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseJson", - outputs: [ - { - internalType: "bytes", - name: "abiEncodedData", - type: "bytes", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseJsonAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseJsonAddressArray", - outputs: [ - { - internalType: "address[]", - name: "", - type: "address[]", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseJsonBool", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseJsonBoolArray", - outputs: [ - { - internalType: "bool[]", - name: "", - type: "bool[]", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseJsonBytes", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseJsonBytes32", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseJsonBytes32Array", - outputs: [ - { - internalType: "bytes32[]", - name: "", - type: "bytes32[]", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseJsonBytesArray", - outputs: [ - { - internalType: "bytes[]", - name: "", - type: "bytes[]", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseJsonInt", - outputs: [ - { - internalType: "int256", - name: "", - type: "int256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseJsonIntArray", - outputs: [ - { - internalType: "int256[]", - name: "", - type: "int256[]", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseJsonKeys", - outputs: [ - { - internalType: "string[]", - name: "keys", - type: "string[]", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseJsonString", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseJsonStringArray", - outputs: [ - { - internalType: "string[]", - name: "", - type: "string[]", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "typeDescription", - type: "string", - }, - ], - name: "parseJsonType", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - { - internalType: "string", - name: "typeDescription", - type: "string", - }, - ], - name: "parseJsonType", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - { - internalType: "string", - name: "typeDescription", - type: "string", - }, - ], - name: "parseJsonTypeArray", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseJsonUint", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseJsonUintArray", - outputs: [ - { - internalType: "uint256[]", - name: "", - type: "uint256[]", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseToml", - outputs: [ - { - internalType: "bytes", - name: "abiEncodedData", - type: "bytes", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - ], - name: "parseToml", - outputs: [ - { - internalType: "bytes", - name: "abiEncodedData", - type: "bytes", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseTomlAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseTomlAddressArray", - outputs: [ - { - internalType: "address[]", - name: "", - type: "address[]", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseTomlBool", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseTomlBoolArray", - outputs: [ - { - internalType: "bool[]", - name: "", - type: "bool[]", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseTomlBytes", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseTomlBytes32", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseTomlBytes32Array", - outputs: [ - { - internalType: "bytes32[]", - name: "", - type: "bytes32[]", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseTomlBytesArray", - outputs: [ - { - internalType: "bytes[]", - name: "", - type: "bytes[]", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseTomlInt", - outputs: [ - { - internalType: "int256", - name: "", - type: "int256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseTomlIntArray", - outputs: [ - { - internalType: "int256[]", - name: "", - type: "int256[]", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseTomlKeys", - outputs: [ - { - internalType: "string[]", - name: "keys", - type: "string[]", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseTomlString", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseTomlStringArray", - outputs: [ - { - internalType: "string[]", - name: "", - type: "string[]", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "typeDescription", - type: "string", - }, - ], - name: "parseTomlType", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - { - internalType: "string", - name: "typeDescription", - type: "string", - }, - ], - name: "parseTomlType", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - { - internalType: "string", - name: "typeDescription", - type: "string", - }, - ], - name: "parseTomlTypeArray", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseTomlUint", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "toml", - type: "string", - }, - { - internalType: "string", - name: "key", - type: "string", - }, - ], - name: "parseTomlUintArray", - outputs: [ - { - internalType: "uint256[]", - name: "", - type: "uint256[]", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "stringifiedValue", - type: "string", - }, - ], - name: "parseUint", - outputs: [ - { - internalType: "uint256", - name: "parsedValue", - type: "uint256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [], - name: "pauseGasMetering", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "pauseTracing", - outputs: [], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "msgSender", - type: "address", - }, - { - internalType: "address", - name: "txOrigin", - type: "address", - }, - ], - name: "prank", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "msgSender", - type: "address", - }, - { - internalType: "address", - name: "txOrigin", - type: "address", - }, - { - internalType: "bool", - name: "delegateCall", - type: "bool", - }, - ], - name: "prank", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "msgSender", - type: "address", - }, - { - internalType: "bool", - name: "delegateCall", - type: "bool", - }, - ], - name: "prank", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "msgSender", - type: "address", - }, - ], - name: "prank", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "newPrevrandao", - type: "bytes32", - }, - ], - name: "prevrandao", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "newPrevrandao", - type: "uint256", - }, - ], - name: "prevrandao", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "projectRoot", - outputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "promptText", - type: "string", - }, - ], - name: "prompt", - outputs: [ - { - internalType: "string", - name: "input", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "promptText", - type: "string", - }, - ], - name: "promptAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "promptText", - type: "string", - }, - ], - name: "promptSecret", - outputs: [ - { - internalType: "string", - name: "input", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "promptText", - type: "string", - }, - ], - name: "promptSecretUint", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "promptText", - type: "string", - }, - ], - name: "promptUint", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - ], - name: "publicKeyP256", - outputs: [ - { - internalType: "uint256", - name: "publicKeyX", - type: "uint256", - }, - { - internalType: "uint256", - name: "publicKeyY", - type: "uint256", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [], - name: "randomAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "randomBool", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "len", - type: "uint256", - }, - ], - name: "randomBytes", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "randomBytes4", - outputs: [ - { - internalType: "bytes4", - name: "", - type: "bytes4", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "randomBytes8", - outputs: [ - { - internalType: "bytes8", - name: "", - type: "bytes8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "randomInt", - outputs: [ - { - internalType: "int256", - name: "", - type: "int256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "bits", - type: "uint256", - }, - ], - name: "randomInt", - outputs: [ - { - internalType: "int256", - name: "", - type: "int256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "randomUint", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "bits", - type: "uint256", - }, - ], - name: "randomUint", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "min", - type: "uint256", - }, - { - internalType: "uint256", - name: "max", - type: "uint256", - }, - ], - name: "randomUint", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "readCallers", - outputs: [ - { - internalType: "enum VmSafe.CallerMode", - name: "callerMode", - type: "uint8", - }, - { - internalType: "address", - name: "msgSender", - type: "address", - }, - { - internalType: "address", - name: "txOrigin", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - { - internalType: "uint64", - name: "maxDepth", - type: "uint64", - }, - ], - name: "readDir", - outputs: [ - { - components: [ - { - internalType: "string", - name: "errorMessage", - type: "string", - }, - { - internalType: "string", - name: "path", - type: "string", - }, - { - internalType: "uint64", - name: "depth", - type: "uint64", - }, - { - internalType: "bool", - name: "isDir", - type: "bool", - }, - { - internalType: "bool", - name: "isSymlink", - type: "bool", - }, - ], - internalType: "struct VmSafe.DirEntry[]", - name: "entries", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - { - internalType: "uint64", - name: "maxDepth", - type: "uint64", - }, - { - internalType: "bool", - name: "followLinks", - type: "bool", - }, - ], - name: "readDir", - outputs: [ - { - components: [ - { - internalType: "string", - name: "errorMessage", - type: "string", - }, - { - internalType: "string", - name: "path", - type: "string", - }, - { - internalType: "uint64", - name: "depth", - type: "uint64", - }, - { - internalType: "bool", - name: "isDir", - type: "bool", - }, - { - internalType: "bool", - name: "isSymlink", - type: "bool", - }, - ], - internalType: "struct VmSafe.DirEntry[]", - name: "entries", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - ], - name: "readDir", - outputs: [ - { - components: [ - { - internalType: "string", - name: "errorMessage", - type: "string", - }, - { - internalType: "string", - name: "path", - type: "string", - }, - { - internalType: "uint64", - name: "depth", - type: "uint64", - }, - { - internalType: "bool", - name: "isDir", - type: "bool", - }, - { - internalType: "bool", - name: "isSymlink", - type: "bool", - }, - ], - internalType: "struct VmSafe.DirEntry[]", - name: "entries", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - ], - name: "readFile", - outputs: [ - { - internalType: "string", - name: "data", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - ], - name: "readFileBinary", - outputs: [ - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - ], - name: "readLine", - outputs: [ - { - internalType: "string", - name: "line", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "linkPath", - type: "string", - }, - ], - name: "readLink", - outputs: [ - { - internalType: "string", - name: "targetPath", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "record", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "recordLogs", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - ], - name: "rememberKey", - outputs: [ - { - internalType: "address", - name: "keyAddr", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "mnemonic", - type: "string", - }, - { - internalType: "string", - name: "derivationPath", - type: "string", - }, - { - internalType: "uint32", - name: "count", - type: "uint32", - }, - ], - name: "rememberKeys", - outputs: [ - { - internalType: "address[]", - name: "keyAddrs", - type: "address[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "mnemonic", - type: "string", - }, - { - internalType: "string", - name: "derivationPath", - type: "string", - }, - { - internalType: "string", - name: "language", - type: "string", - }, - { - internalType: "uint32", - name: "count", - type: "uint32", - }, - ], - name: "rememberKeys", - outputs: [ - { - internalType: "address[]", - name: "keyAddrs", - type: "address[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - { - internalType: "bool", - name: "recursive", - type: "bool", - }, - ], - name: "removeDir", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - ], - name: "removeFile", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "input", - type: "string", - }, - { - internalType: "string", - name: "from", - type: "string", - }, - { - internalType: "string", - name: "to", - type: "string", - }, - ], - name: "replace", - outputs: [ - { - internalType: "string", - name: "output", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [], - name: "resetGasMetering", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "resetNonce", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "resumeGasMetering", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "resumeTracing", - outputs: [], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "snapshotId", - type: "uint256", - }, - ], - name: "revertTo", - outputs: [ - { - internalType: "bool", - name: "success", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "snapshotId", - type: "uint256", - }, - ], - name: "revertToAndDelete", - outputs: [ - { - internalType: "bool", - name: "success", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "snapshotId", - type: "uint256", - }, - ], - name: "revertToState", - outputs: [ - { - internalType: "bool", - name: "success", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "snapshotId", - type: "uint256", - }, - ], - name: "revertToStateAndDelete", - outputs: [ - { - internalType: "bool", - name: "success", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address[]", - name: "accounts", - type: "address[]", - }, - ], - name: "revokePersistent", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "revokePersistent", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "newHeight", - type: "uint256", - }, - ], - name: "roll", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "txHash", - type: "bytes32", - }, - ], - name: "rollFork", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "forkId", - type: "uint256", - }, - { - internalType: "uint256", - name: "blockNumber", - type: "uint256", - }, - ], - name: "rollFork", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "blockNumber", - type: "uint256", - }, - ], - name: "rollFork", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "forkId", - type: "uint256", - }, - { - internalType: "bytes32", - name: "txHash", - type: "bytes32", - }, - ], - name: "rollFork", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "urlOrAlias", - type: "string", - }, - { - internalType: "string", - name: "method", - type: "string", - }, - { - internalType: "string", - name: "params", - type: "string", - }, - ], - name: "rpc", - outputs: [ - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "method", - type: "string", - }, - { - internalType: "string", - name: "params", - type: "string", - }, - ], - name: "rpc", - outputs: [ - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "rpcAlias", - type: "string", - }, - ], - name: "rpcUrl", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "rpcUrlStructs", - outputs: [ - { - components: [ - { - internalType: "string", - name: "key", - type: "string", - }, - { - internalType: "string", - name: "url", - type: "string", - }, - ], - internalType: "struct VmSafe.Rpc[]", - name: "urls", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "rpcUrls", - outputs: [ - { - internalType: "string[2][]", - name: "urls", - type: "string[2][]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "forkId", - type: "uint256", - }, - ], - name: "selectFork", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "objectKey", - type: "string", - }, - { - internalType: "string", - name: "valueKey", - type: "string", - }, - { - internalType: "address[]", - name: "values", - type: "address[]", - }, - ], - name: "serializeAddress", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "objectKey", - type: "string", - }, - { - internalType: "string", - name: "valueKey", - type: "string", - }, - { - internalType: "address", - name: "value", - type: "address", - }, - ], - name: "serializeAddress", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "objectKey", - type: "string", - }, - { - internalType: "string", - name: "valueKey", - type: "string", - }, - { - internalType: "bool[]", - name: "values", - type: "bool[]", - }, - ], - name: "serializeBool", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "objectKey", - type: "string", - }, - { - internalType: "string", - name: "valueKey", - type: "string", - }, - { - internalType: "bool", - name: "value", - type: "bool", - }, - ], - name: "serializeBool", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "objectKey", - type: "string", - }, - { - internalType: "string", - name: "valueKey", - type: "string", - }, - { - internalType: "bytes[]", - name: "values", - type: "bytes[]", - }, - ], - name: "serializeBytes", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "objectKey", - type: "string", - }, - { - internalType: "string", - name: "valueKey", - type: "string", - }, - { - internalType: "bytes", - name: "value", - type: "bytes", - }, - ], - name: "serializeBytes", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "objectKey", - type: "string", - }, - { - internalType: "string", - name: "valueKey", - type: "string", - }, - { - internalType: "bytes32[]", - name: "values", - type: "bytes32[]", - }, - ], - name: "serializeBytes32", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "objectKey", - type: "string", - }, - { - internalType: "string", - name: "valueKey", - type: "string", - }, - { - internalType: "bytes32", - name: "value", - type: "bytes32", - }, - ], - name: "serializeBytes32", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "objectKey", - type: "string", - }, - { - internalType: "string", - name: "valueKey", - type: "string", - }, - { - internalType: "int256", - name: "value", - type: "int256", - }, - ], - name: "serializeInt", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "objectKey", - type: "string", - }, - { - internalType: "string", - name: "valueKey", - type: "string", - }, - { - internalType: "int256[]", - name: "values", - type: "int256[]", - }, - ], - name: "serializeInt", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "objectKey", - type: "string", - }, - { - internalType: "string", - name: "value", - type: "string", - }, - ], - name: "serializeJson", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "typeDescription", - type: "string", - }, - { - internalType: "bytes", - name: "value", - type: "bytes", - }, - ], - name: "serializeJsonType", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "objectKey", - type: "string", - }, - { - internalType: "string", - name: "valueKey", - type: "string", - }, - { - internalType: "string", - name: "typeDescription", - type: "string", - }, - { - internalType: "bytes", - name: "value", - type: "bytes", - }, - ], - name: "serializeJsonType", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "objectKey", - type: "string", - }, - { - internalType: "string", - name: "valueKey", - type: "string", - }, - { - internalType: "string[]", - name: "values", - type: "string[]", - }, - ], - name: "serializeString", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "objectKey", - type: "string", - }, - { - internalType: "string", - name: "valueKey", - type: "string", - }, - { - internalType: "string", - name: "value", - type: "string", - }, - ], - name: "serializeString", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "objectKey", - type: "string", - }, - { - internalType: "string", - name: "valueKey", - type: "string", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "serializeUint", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "objectKey", - type: "string", - }, - { - internalType: "string", - name: "valueKey", - type: "string", - }, - { - internalType: "uint256[]", - name: "values", - type: "uint256[]", - }, - ], - name: "serializeUint", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "objectKey", - type: "string", - }, - { - internalType: "string", - name: "valueKey", - type: "string", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "serializeUintToHex", - outputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bool", - name: "overwrite", - type: "bool", - }, - ], - name: "setArbitraryStorage", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - ], - name: "setArbitraryStorage", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "blockNumber", - type: "uint256", - }, - { - internalType: "bytes32", - name: "blockHash", - type: "bytes32", - }, - ], - name: "setBlockhash", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "value", - type: "string", - }, - ], - name: "setEnv", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "uint64", - name: "newNonce", - type: "uint64", - }, - ], - name: "setNonce", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "uint64", - name: "newNonce", - type: "uint64", - }, - ], - name: "setNonceUnsafe", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256[]", - name: "array", - type: "uint256[]", - }, - ], - name: "shuffle", - outputs: [ - { - internalType: "uint256[]", - name: "", - type: "uint256[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "digest", - type: "bytes32", - }, - ], - name: "sign", - outputs: [ - { - internalType: "uint8", - name: "v", - type: "uint8", - }, - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "s", - type: "bytes32", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "signer", - type: "address", - }, - { - internalType: "bytes32", - name: "digest", - type: "bytes32", - }, - ], - name: "sign", - outputs: [ - { - internalType: "uint8", - name: "v", - type: "uint8", - }, - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "s", - type: "bytes32", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "uint256", - name: "publicKeyX", - type: "uint256", - }, - { - internalType: "uint256", - name: "publicKeyY", - type: "uint256", - }, - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - ], - internalType: "struct VmSafe.Wallet", - name: "wallet", - type: "tuple", - }, - { - internalType: "bytes32", - name: "digest", - type: "bytes32", - }, - ], - name: "sign", - outputs: [ - { - internalType: "uint8", - name: "v", - type: "uint8", - }, - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "s", - type: "bytes32", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - { - internalType: "bytes32", - name: "digest", - type: "bytes32", - }, - ], - name: "sign", - outputs: [ - { - internalType: "uint8", - name: "v", - type: "uint8", - }, - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "s", - type: "bytes32", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "implementation", - type: "address", - }, - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - ], - name: "signAndAttachDelegation", - outputs: [ - { - components: [ - { - internalType: "uint8", - name: "v", - type: "uint8", - }, - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "s", - type: "bytes32", - }, - { - internalType: "uint64", - name: "nonce", - type: "uint64", - }, - { - internalType: "address", - name: "implementation", - type: "address", - }, - ], - internalType: "struct VmSafe.SignedDelegation", - name: "signedDelegation", - type: "tuple", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "implementation", - type: "address", - }, - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - { - internalType: "uint64", - name: "nonce", - type: "uint64", - }, - ], - name: "signAndAttachDelegation", - outputs: [ - { - components: [ - { - internalType: "uint8", - name: "v", - type: "uint8", - }, - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "s", - type: "bytes32", - }, - { - internalType: "uint64", - name: "nonce", - type: "uint64", - }, - { - internalType: "address", - name: "implementation", - type: "address", - }, - ], - internalType: "struct VmSafe.SignedDelegation", - name: "signedDelegation", - type: "tuple", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "uint256", - name: "publicKeyX", - type: "uint256", - }, - { - internalType: "uint256", - name: "publicKeyY", - type: "uint256", - }, - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - ], - internalType: "struct VmSafe.Wallet", - name: "wallet", - type: "tuple", - }, - { - internalType: "bytes32", - name: "digest", - type: "bytes32", - }, - ], - name: "signCompact", - outputs: [ - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "vs", - type: "bytes32", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "signer", - type: "address", - }, - { - internalType: "bytes32", - name: "digest", - type: "bytes32", - }, - ], - name: "signCompact", - outputs: [ - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "vs", - type: "bytes32", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "digest", - type: "bytes32", - }, - ], - name: "signCompact", - outputs: [ - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "vs", - type: "bytes32", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - { - internalType: "bytes32", - name: "digest", - type: "bytes32", - }, - ], - name: "signCompact", - outputs: [ - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "vs", - type: "bytes32", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "implementation", - type: "address", - }, - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - ], - name: "signDelegation", - outputs: [ - { - components: [ - { - internalType: "uint8", - name: "v", - type: "uint8", - }, - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "s", - type: "bytes32", - }, - { - internalType: "uint64", - name: "nonce", - type: "uint64", - }, - { - internalType: "address", - name: "implementation", - type: "address", - }, - ], - internalType: "struct VmSafe.SignedDelegation", - name: "signedDelegation", - type: "tuple", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "implementation", - type: "address", - }, - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - { - internalType: "uint64", - name: "nonce", - type: "uint64", - }, - ], - name: "signDelegation", - outputs: [ - { - components: [ - { - internalType: "uint8", - name: "v", - type: "uint8", - }, - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "s", - type: "bytes32", - }, - { - internalType: "uint64", - name: "nonce", - type: "uint64", - }, - { - internalType: "address", - name: "implementation", - type: "address", - }, - ], - internalType: "struct VmSafe.SignedDelegation", - name: "signedDelegation", - type: "tuple", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - { - internalType: "bytes32", - name: "digest", - type: "bytes32", - }, - ], - name: "signP256", - outputs: [ - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "s", - type: "bytes32", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bool", - name: "skipTest", - type: "bool", - }, - { - internalType: "string", - name: "reason", - type: "string", - }, - ], - name: "skip", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bool", - name: "skipTest", - type: "bool", - }, - ], - name: "skip", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "duration", - type: "uint256", - }, - ], - name: "sleep", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "snapshot", - outputs: [ - { - internalType: "uint256", - name: "snapshotId", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "group", - type: "string", - }, - { - internalType: "string", - name: "name", - type: "string", - }, - ], - name: "snapshotGasLastCall", - outputs: [ - { - internalType: "uint256", - name: "gasUsed", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - ], - name: "snapshotGasLastCall", - outputs: [ - { - internalType: "uint256", - name: "gasUsed", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "snapshotState", - outputs: [ - { - internalType: "uint256", - name: "snapshotId", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "snapshotValue", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "group", - type: "string", - }, - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "snapshotValue", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256[]", - name: "array", - type: "uint256[]", - }, - ], - name: "sort", - outputs: [ - { - internalType: "uint256[]", - name: "", - type: "uint256[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "input", - type: "string", - }, - { - internalType: "string", - name: "delimiter", - type: "string", - }, - ], - name: "split", - outputs: [ - { - internalType: "string[]", - name: "outputs", - type: "string[]", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [], - name: "startBroadcast", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "signer", - type: "address", - }, - ], - name: "startBroadcast", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "privateKey", - type: "uint256", - }, - ], - name: "startBroadcast", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "startDebugTraceRecording", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "startMappingRecording", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "msgSender", - type: "address", - }, - ], - name: "startPrank", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "msgSender", - type: "address", - }, - { - internalType: "bool", - name: "delegateCall", - type: "bool", - }, - ], - name: "startPrank", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "msgSender", - type: "address", - }, - { - internalType: "address", - name: "txOrigin", - type: "address", - }, - ], - name: "startPrank", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "msgSender", - type: "address", - }, - { - internalType: "address", - name: "txOrigin", - type: "address", - }, - { - internalType: "bool", - name: "delegateCall", - type: "bool", - }, - ], - name: "startPrank", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - ], - name: "startSnapshotGas", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "group", - type: "string", - }, - { - internalType: "string", - name: "name", - type: "string", - }, - ], - name: "startSnapshotGas", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "startStateDiffRecording", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "stopAndReturnDebugTraceRecording", - outputs: [ - { - components: [ - { - internalType: "uint256[]", - name: "stack", - type: "uint256[]", - }, - { - internalType: "bytes", - name: "memoryInput", - type: "bytes", - }, - { - internalType: "uint8", - name: "opcode", - type: "uint8", - }, - { - internalType: "uint64", - name: "depth", - type: "uint64", - }, - { - internalType: "bool", - name: "isOutOfGas", - type: "bool", - }, - { - internalType: "address", - name: "contractAddr", - type: "address", - }, - ], - internalType: "struct VmSafe.DebugStep[]", - name: "step", - type: "tuple[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "stopAndReturnStateDiff", - outputs: [ - { - components: [ - { - components: [ - { - internalType: "uint256", - name: "forkId", - type: "uint256", - }, - { - internalType: "uint256", - name: "chainId", - type: "uint256", - }, - ], - internalType: "struct VmSafe.ChainInfo", - name: "chainInfo", - type: "tuple", - }, - { - internalType: "enum VmSafe.AccountAccessKind", - name: "kind", - type: "uint8", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "address", - name: "accessor", - type: "address", - }, - { - internalType: "bool", - name: "initialized", - type: "bool", - }, - { - internalType: "uint256", - name: "oldBalance", - type: "uint256", - }, - { - internalType: "uint256", - name: "newBalance", - type: "uint256", - }, - { - internalType: "bytes", - name: "deployedCode", - type: "bytes", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - internalType: "bool", - name: "reverted", - type: "bool", - }, - { - components: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "bytes32", - name: "slot", - type: "bytes32", - }, - { - internalType: "bool", - name: "isWrite", - type: "bool", - }, - { - internalType: "bytes32", - name: "previousValue", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "newValue", - type: "bytes32", - }, - { - internalType: "bool", - name: "reverted", - type: "bool", - }, - ], - internalType: "struct VmSafe.StorageAccess[]", - name: "storageAccesses", - type: "tuple[]", - }, - { - internalType: "uint64", - name: "depth", - type: "uint64", - }, - ], - internalType: "struct VmSafe.AccountAccess[]", - name: "accountAccesses", - type: "tuple[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "stopBroadcast", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "stopExpectSafeMemory", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "stopMappingRecording", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "stopPrank", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "group", - type: "string", - }, - { - internalType: "string", - name: "name", - type: "string", - }, - ], - name: "stopSnapshotGas", - outputs: [ - { - internalType: "uint256", - name: "gasUsed", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - ], - name: "stopSnapshotGas", - outputs: [ - { - internalType: "uint256", - name: "gasUsed", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "stopSnapshotGas", - outputs: [ - { - internalType: "uint256", - name: "gasUsed", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes32", - name: "slot", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "value", - type: "bytes32", - }, - ], - name: "store", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "data", - type: "string", - }, - ], - name: "toBase64", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "toBase64", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "data", - type: "string", - }, - ], - name: "toBase64URL", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "toBase64URL", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "input", - type: "string", - }, - ], - name: "toLowercase", - outputs: [ - { - internalType: "string", - name: "output", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "value", - type: "address", - }, - ], - name: "toString", - outputs: [ - { - internalType: "string", - name: "stringifiedValue", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "toString", - outputs: [ - { - internalType: "string", - name: "stringifiedValue", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "value", - type: "bytes", - }, - ], - name: "toString", - outputs: [ - { - internalType: "string", - name: "stringifiedValue", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bool", - name: "value", - type: "bool", - }, - ], - name: "toString", - outputs: [ - { - internalType: "string", - name: "stringifiedValue", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "int256", - name: "value", - type: "int256", - }, - ], - name: "toString", - outputs: [ - { - internalType: "string", - name: "stringifiedValue", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "value", - type: "bytes32", - }, - ], - name: "toString", - outputs: [ - { - internalType: "string", - name: "stringifiedValue", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "input", - type: "string", - }, - ], - name: "toUppercase", - outputs: [ - { - internalType: "string", - name: "output", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "forkId", - type: "uint256", - }, - { - internalType: "bytes32", - name: "txHash", - type: "bytes32", - }, - ], - name: "transact", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "txHash", - type: "bytes32", - }, - ], - name: "transact", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "input", - type: "string", - }, - ], - name: "trim", - outputs: [ - { - internalType: "string", - name: "output", - type: "string", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "string[]", - name: "commandInput", - type: "string[]", - }, - ], - name: "tryFfi", - outputs: [ - { - components: [ - { - internalType: "int32", - name: "exitCode", - type: "int32", - }, - { - internalType: "bytes", - name: "stdout", - type: "bytes", - }, - { - internalType: "bytes", - name: "stderr", - type: "bytes", - }, - ], - internalType: "struct VmSafe.FfiResult", - name: "result", - type: "tuple", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "newGasPrice", - type: "uint256", - }, - ], - name: "txGasPrice", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "unixTime", - outputs: [ - { - internalType: "uint256", - name: "milliseconds", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes32", - name: "slot", - type: "bytes32", - }, - ], - name: "warmSlot", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "newTimestamp", - type: "uint256", - }, - ], - name: "warp", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - { - internalType: "string", - name: "data", - type: "string", - }, - ], - name: "writeFile", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "writeFileBinary", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "path", - type: "string", - }, - { - internalType: "string", - name: "valueKey", - type: "string", - }, - ], - name: "writeJson", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "path", - type: "string", - }, - ], - name: "writeJson", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "path", - type: "string", - }, - { - internalType: "string", - name: "data", - type: "string", - }, - ], - name: "writeLine", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "path", - type: "string", - }, - { - internalType: "string", - name: "valueKey", - type: "string", - }, - ], - name: "writeToml", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "json", - type: "string", - }, - { - internalType: "string", - name: "path", - type: "string", - }, - ], - name: "writeToml", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class Vm__factory { - static readonly abi = _abi; - static createInterface(): VmInterface { - return new Interface(_abi) as VmInterface; - } - static connect(address: string, runner?: ContractRunner | null): Vm { - return new Contract(address, _abi, runner) as unknown as Vm; - } -} diff --git a/typechain-types/factories/forge-std/Vm.sol/index.ts b/typechain-types/factories/forge-std/Vm.sol/index.ts deleted file mode 100644 index fcea6ed4..00000000 --- a/typechain-types/factories/forge-std/Vm.sol/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { Vm__factory } from "./Vm__factory"; -export { VmSafe__factory } from "./VmSafe__factory"; diff --git a/typechain-types/factories/forge-std/index.ts b/typechain-types/factories/forge-std/index.ts deleted file mode 100644 index 734d848e..00000000 --- a/typechain-types/factories/forge-std/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as stdErrorSol from "./StdError.sol"; -export * as stdStorageSol from "./StdStorage.sol"; -export * as vmSol from "./Vm.sol"; -export * as interfaces from "./interfaces"; -export { StdAssertions__factory } from "./StdAssertions__factory"; -export { StdInvariant__factory } from "./StdInvariant__factory"; -export { Test__factory } from "./Test__factory"; diff --git a/typechain-types/factories/forge-std/interfaces/IMulticall3__factory.ts b/typechain-types/factories/forge-std/interfaces/IMulticall3__factory.ts deleted file mode 100644 index 038885db..00000000 --- a/typechain-types/factories/forge-std/interfaces/IMulticall3__factory.ts +++ /dev/null @@ -1,460 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IMulticall3, - IMulticall3Interface, -} from "../../../forge-std/interfaces/IMulticall3"; - -const _abi = [ - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes", - name: "callData", - type: "bytes", - }, - ], - internalType: "struct IMulticall3.Call[]", - name: "calls", - type: "tuple[]", - }, - ], - name: "aggregate", - outputs: [ - { - internalType: "uint256", - name: "blockNumber", - type: "uint256", - }, - { - internalType: "bytes[]", - name: "returnData", - type: "bytes[]", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bool", - name: "allowFailure", - type: "bool", - }, - { - internalType: "bytes", - name: "callData", - type: "bytes", - }, - ], - internalType: "struct IMulticall3.Call3[]", - name: "calls", - type: "tuple[]", - }, - ], - name: "aggregate3", - outputs: [ - { - components: [ - { - internalType: "bool", - name: "success", - type: "bool", - }, - { - internalType: "bytes", - name: "returnData", - type: "bytes", - }, - ], - internalType: "struct IMulticall3.Result[]", - name: "returnData", - type: "tuple[]", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bool", - name: "allowFailure", - type: "bool", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - internalType: "bytes", - name: "callData", - type: "bytes", - }, - ], - internalType: "struct IMulticall3.Call3Value[]", - name: "calls", - type: "tuple[]", - }, - ], - name: "aggregate3Value", - outputs: [ - { - components: [ - { - internalType: "bool", - name: "success", - type: "bool", - }, - { - internalType: "bytes", - name: "returnData", - type: "bytes", - }, - ], - internalType: "struct IMulticall3.Result[]", - name: "returnData", - type: "tuple[]", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes", - name: "callData", - type: "bytes", - }, - ], - internalType: "struct IMulticall3.Call[]", - name: "calls", - type: "tuple[]", - }, - ], - name: "blockAndAggregate", - outputs: [ - { - internalType: "uint256", - name: "blockNumber", - type: "uint256", - }, - { - internalType: "bytes32", - name: "blockHash", - type: "bytes32", - }, - { - components: [ - { - internalType: "bool", - name: "success", - type: "bool", - }, - { - internalType: "bytes", - name: "returnData", - type: "bytes", - }, - ], - internalType: "struct IMulticall3.Result[]", - name: "returnData", - type: "tuple[]", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [], - name: "getBasefee", - outputs: [ - { - internalType: "uint256", - name: "basefee", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "blockNumber", - type: "uint256", - }, - ], - name: "getBlockHash", - outputs: [ - { - internalType: "bytes32", - name: "blockHash", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "getBlockNumber", - outputs: [ - { - internalType: "uint256", - name: "blockNumber", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "getChainId", - outputs: [ - { - internalType: "uint256", - name: "chainid", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "getCurrentBlockCoinbase", - outputs: [ - { - internalType: "address", - name: "coinbase", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "getCurrentBlockDifficulty", - outputs: [ - { - internalType: "uint256", - name: "difficulty", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "getCurrentBlockGasLimit", - outputs: [ - { - internalType: "uint256", - name: "gaslimit", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "getCurrentBlockTimestamp", - outputs: [ - { - internalType: "uint256", - name: "timestamp", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - ], - name: "getEthBalance", - outputs: [ - { - internalType: "uint256", - name: "balance", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "getLastBlockHash", - outputs: [ - { - internalType: "bytes32", - name: "blockHash", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bool", - name: "requireSuccess", - type: "bool", - }, - { - components: [ - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes", - name: "callData", - type: "bytes", - }, - ], - internalType: "struct IMulticall3.Call[]", - name: "calls", - type: "tuple[]", - }, - ], - name: "tryAggregate", - outputs: [ - { - components: [ - { - internalType: "bool", - name: "success", - type: "bool", - }, - { - internalType: "bytes", - name: "returnData", - type: "bytes", - }, - ], - internalType: "struct IMulticall3.Result[]", - name: "returnData", - type: "tuple[]", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "bool", - name: "requireSuccess", - type: "bool", - }, - { - components: [ - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes", - name: "callData", - type: "bytes", - }, - ], - internalType: "struct IMulticall3.Call[]", - name: "calls", - type: "tuple[]", - }, - ], - name: "tryBlockAndAggregate", - outputs: [ - { - internalType: "uint256", - name: "blockNumber", - type: "uint256", - }, - { - internalType: "bytes32", - name: "blockHash", - type: "bytes32", - }, - { - components: [ - { - internalType: "bool", - name: "success", - type: "bool", - }, - { - internalType: "bytes", - name: "returnData", - type: "bytes", - }, - ], - internalType: "struct IMulticall3.Result[]", - name: "returnData", - type: "tuple[]", - }, - ], - stateMutability: "payable", - type: "function", - }, -] as const; - -export class IMulticall3__factory { - static readonly abi = _abi; - static createInterface(): IMulticall3Interface { - return new Interface(_abi) as IMulticall3Interface; - } - static connect(address: string, runner?: ContractRunner | null): IMulticall3 { - return new Contract(address, _abi, runner) as unknown as IMulticall3; - } -} diff --git a/typechain-types/factories/forge-std/interfaces/index.ts b/typechain-types/factories/forge-std/interfaces/index.ts deleted file mode 100644 index 41167731..00000000 --- a/typechain-types/factories/forge-std/interfaces/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { IMulticall3__factory } from "./IMulticall3__factory"; diff --git a/typechain-types/factories/index.ts b/typechain-types/factories/index.ts deleted file mode 100644 index f025a854..00000000 --- a/typechain-types/factories/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as openzeppelin from "./@openzeppelin"; -export * as uniswap from "./@uniswap"; -export * as zetachain from "./@zetachain"; -export * as contracts from "./contracts"; -export * as forgeStd from "./forge-std"; diff --git a/typechain-types/forge-std/StdAssertions.ts b/typechain-types/forge-std/StdAssertions.ts deleted file mode 100644 index 7a5511ff..00000000 --- a/typechain-types/forge-std/StdAssertions.ts +++ /dev/null @@ -1,762 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../common"; - -export interface StdAssertionsInterface extends Interface { - getFunction(nameOrSignature: "failed"): FunctionFragment; - - getEvent( - nameOrSignatureOrTopic: - | "log" - | "log_address" - | "log_array(uint256[])" - | "log_array(int256[])" - | "log_array(address[])" - | "log_bytes" - | "log_bytes32" - | "log_int" - | "log_named_address" - | "log_named_array(string,uint256[])" - | "log_named_array(string,int256[])" - | "log_named_array(string,address[])" - | "log_named_bytes" - | "log_named_bytes32" - | "log_named_decimal_int" - | "log_named_decimal_uint" - | "log_named_int" - | "log_named_string" - | "log_named_uint" - | "log_string" - | "log_uint" - | "logs" - ): EventFragment; - - encodeFunctionData(functionFragment: "failed", values?: undefined): string; - - decodeFunctionResult(functionFragment: "failed", data: BytesLike): Result; -} - -export namespace logEvent { - export type InputTuple = [arg0: string]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_addressEvent { - export type InputTuple = [arg0: AddressLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_array_uint256_array_Event { - export type InputTuple = [val: BigNumberish[]]; - export type OutputTuple = [val: bigint[]]; - export interface OutputObject { - val: bigint[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_array_int256_array_Event { - export type InputTuple = [val: BigNumberish[]]; - export type OutputTuple = [val: bigint[]]; - export interface OutputObject { - val: bigint[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_array_address_array_Event { - export type InputTuple = [val: AddressLike[]]; - export type OutputTuple = [val: string[]]; - export interface OutputObject { - val: string[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_bytesEvent { - export type InputTuple = [arg0: BytesLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_bytes32Event { - export type InputTuple = [arg0: BytesLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_intEvent { - export type InputTuple = [arg0: BigNumberish]; - export type OutputTuple = [arg0: bigint]; - export interface OutputObject { - arg0: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_addressEvent { - export type InputTuple = [key: string, val: AddressLike]; - export type OutputTuple = [key: string, val: string]; - export interface OutputObject { - key: string; - val: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_array_string_uint256_array_Event { - export type InputTuple = [key: string, val: BigNumberish[]]; - export type OutputTuple = [key: string, val: bigint[]]; - export interface OutputObject { - key: string; - val: bigint[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_array_string_int256_array_Event { - export type InputTuple = [key: string, val: BigNumberish[]]; - export type OutputTuple = [key: string, val: bigint[]]; - export interface OutputObject { - key: string; - val: bigint[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_array_string_address_array_Event { - export type InputTuple = [key: string, val: AddressLike[]]; - export type OutputTuple = [key: string, val: string[]]; - export interface OutputObject { - key: string; - val: string[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_bytesEvent { - export type InputTuple = [key: string, val: BytesLike]; - export type OutputTuple = [key: string, val: string]; - export interface OutputObject { - key: string; - val: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_bytes32Event { - export type InputTuple = [key: string, val: BytesLike]; - export type OutputTuple = [key: string, val: string]; - export interface OutputObject { - key: string; - val: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_decimal_intEvent { - export type InputTuple = [ - key: string, - val: BigNumberish, - decimals: BigNumberish - ]; - export type OutputTuple = [key: string, val: bigint, decimals: bigint]; - export interface OutputObject { - key: string; - val: bigint; - decimals: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_decimal_uintEvent { - export type InputTuple = [ - key: string, - val: BigNumberish, - decimals: BigNumberish - ]; - export type OutputTuple = [key: string, val: bigint, decimals: bigint]; - export interface OutputObject { - key: string; - val: bigint; - decimals: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_intEvent { - export type InputTuple = [key: string, val: BigNumberish]; - export type OutputTuple = [key: string, val: bigint]; - export interface OutputObject { - key: string; - val: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_stringEvent { - export type InputTuple = [key: string, val: string]; - export type OutputTuple = [key: string, val: string]; - export interface OutputObject { - key: string; - val: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_uintEvent { - export type InputTuple = [key: string, val: BigNumberish]; - export type OutputTuple = [key: string, val: bigint]; - export interface OutputObject { - key: string; - val: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_stringEvent { - export type InputTuple = [arg0: string]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_uintEvent { - export type InputTuple = [arg0: BigNumberish]; - export type OutputTuple = [arg0: bigint]; - export interface OutputObject { - arg0: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace logsEvent { - export type InputTuple = [arg0: BytesLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface StdAssertions extends BaseContract { - connect(runner?: ContractRunner | null): StdAssertions; - waitForDeployment(): Promise; - - interface: StdAssertionsInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - failed: TypedContractMethod<[], [boolean], "view">; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "failed" - ): TypedContractMethod<[], [boolean], "view">; - - getEvent( - key: "log" - ): TypedContractEvent< - logEvent.InputTuple, - logEvent.OutputTuple, - logEvent.OutputObject - >; - getEvent( - key: "log_address" - ): TypedContractEvent< - log_addressEvent.InputTuple, - log_addressEvent.OutputTuple, - log_addressEvent.OutputObject - >; - getEvent( - key: "log_array(uint256[])" - ): TypedContractEvent< - log_array_uint256_array_Event.InputTuple, - log_array_uint256_array_Event.OutputTuple, - log_array_uint256_array_Event.OutputObject - >; - getEvent( - key: "log_array(int256[])" - ): TypedContractEvent< - log_array_int256_array_Event.InputTuple, - log_array_int256_array_Event.OutputTuple, - log_array_int256_array_Event.OutputObject - >; - getEvent( - key: "log_array(address[])" - ): TypedContractEvent< - log_array_address_array_Event.InputTuple, - log_array_address_array_Event.OutputTuple, - log_array_address_array_Event.OutputObject - >; - getEvent( - key: "log_bytes" - ): TypedContractEvent< - log_bytesEvent.InputTuple, - log_bytesEvent.OutputTuple, - log_bytesEvent.OutputObject - >; - getEvent( - key: "log_bytes32" - ): TypedContractEvent< - log_bytes32Event.InputTuple, - log_bytes32Event.OutputTuple, - log_bytes32Event.OutputObject - >; - getEvent( - key: "log_int" - ): TypedContractEvent< - log_intEvent.InputTuple, - log_intEvent.OutputTuple, - log_intEvent.OutputObject - >; - getEvent( - key: "log_named_address" - ): TypedContractEvent< - log_named_addressEvent.InputTuple, - log_named_addressEvent.OutputTuple, - log_named_addressEvent.OutputObject - >; - getEvent( - key: "log_named_array(string,uint256[])" - ): TypedContractEvent< - log_named_array_string_uint256_array_Event.InputTuple, - log_named_array_string_uint256_array_Event.OutputTuple, - log_named_array_string_uint256_array_Event.OutputObject - >; - getEvent( - key: "log_named_array(string,int256[])" - ): TypedContractEvent< - log_named_array_string_int256_array_Event.InputTuple, - log_named_array_string_int256_array_Event.OutputTuple, - log_named_array_string_int256_array_Event.OutputObject - >; - getEvent( - key: "log_named_array(string,address[])" - ): TypedContractEvent< - log_named_array_string_address_array_Event.InputTuple, - log_named_array_string_address_array_Event.OutputTuple, - log_named_array_string_address_array_Event.OutputObject - >; - getEvent( - key: "log_named_bytes" - ): TypedContractEvent< - log_named_bytesEvent.InputTuple, - log_named_bytesEvent.OutputTuple, - log_named_bytesEvent.OutputObject - >; - getEvent( - key: "log_named_bytes32" - ): TypedContractEvent< - log_named_bytes32Event.InputTuple, - log_named_bytes32Event.OutputTuple, - log_named_bytes32Event.OutputObject - >; - getEvent( - key: "log_named_decimal_int" - ): TypedContractEvent< - log_named_decimal_intEvent.InputTuple, - log_named_decimal_intEvent.OutputTuple, - log_named_decimal_intEvent.OutputObject - >; - getEvent( - key: "log_named_decimal_uint" - ): TypedContractEvent< - log_named_decimal_uintEvent.InputTuple, - log_named_decimal_uintEvent.OutputTuple, - log_named_decimal_uintEvent.OutputObject - >; - getEvent( - key: "log_named_int" - ): TypedContractEvent< - log_named_intEvent.InputTuple, - log_named_intEvent.OutputTuple, - log_named_intEvent.OutputObject - >; - getEvent( - key: "log_named_string" - ): TypedContractEvent< - log_named_stringEvent.InputTuple, - log_named_stringEvent.OutputTuple, - log_named_stringEvent.OutputObject - >; - getEvent( - key: "log_named_uint" - ): TypedContractEvent< - log_named_uintEvent.InputTuple, - log_named_uintEvent.OutputTuple, - log_named_uintEvent.OutputObject - >; - getEvent( - key: "log_string" - ): TypedContractEvent< - log_stringEvent.InputTuple, - log_stringEvent.OutputTuple, - log_stringEvent.OutputObject - >; - getEvent( - key: "log_uint" - ): TypedContractEvent< - log_uintEvent.InputTuple, - log_uintEvent.OutputTuple, - log_uintEvent.OutputObject - >; - getEvent( - key: "logs" - ): TypedContractEvent< - logsEvent.InputTuple, - logsEvent.OutputTuple, - logsEvent.OutputObject - >; - - filters: { - "log(string)": TypedContractEvent< - logEvent.InputTuple, - logEvent.OutputTuple, - logEvent.OutputObject - >; - log: TypedContractEvent< - logEvent.InputTuple, - logEvent.OutputTuple, - logEvent.OutputObject - >; - - "log_address(address)": TypedContractEvent< - log_addressEvent.InputTuple, - log_addressEvent.OutputTuple, - log_addressEvent.OutputObject - >; - log_address: TypedContractEvent< - log_addressEvent.InputTuple, - log_addressEvent.OutputTuple, - log_addressEvent.OutputObject - >; - - "log_array(uint256[])": TypedContractEvent< - log_array_uint256_array_Event.InputTuple, - log_array_uint256_array_Event.OutputTuple, - log_array_uint256_array_Event.OutputObject - >; - "log_array(int256[])": TypedContractEvent< - log_array_int256_array_Event.InputTuple, - log_array_int256_array_Event.OutputTuple, - log_array_int256_array_Event.OutputObject - >; - "log_array(address[])": TypedContractEvent< - log_array_address_array_Event.InputTuple, - log_array_address_array_Event.OutputTuple, - log_array_address_array_Event.OutputObject - >; - - "log_bytes(bytes)": TypedContractEvent< - log_bytesEvent.InputTuple, - log_bytesEvent.OutputTuple, - log_bytesEvent.OutputObject - >; - log_bytes: TypedContractEvent< - log_bytesEvent.InputTuple, - log_bytesEvent.OutputTuple, - log_bytesEvent.OutputObject - >; - - "log_bytes32(bytes32)": TypedContractEvent< - log_bytes32Event.InputTuple, - log_bytes32Event.OutputTuple, - log_bytes32Event.OutputObject - >; - log_bytes32: TypedContractEvent< - log_bytes32Event.InputTuple, - log_bytes32Event.OutputTuple, - log_bytes32Event.OutputObject - >; - - "log_int(int256)": TypedContractEvent< - log_intEvent.InputTuple, - log_intEvent.OutputTuple, - log_intEvent.OutputObject - >; - log_int: TypedContractEvent< - log_intEvent.InputTuple, - log_intEvent.OutputTuple, - log_intEvent.OutputObject - >; - - "log_named_address(string,address)": TypedContractEvent< - log_named_addressEvent.InputTuple, - log_named_addressEvent.OutputTuple, - log_named_addressEvent.OutputObject - >; - log_named_address: TypedContractEvent< - log_named_addressEvent.InputTuple, - log_named_addressEvent.OutputTuple, - log_named_addressEvent.OutputObject - >; - - "log_named_array(string,uint256[])": TypedContractEvent< - log_named_array_string_uint256_array_Event.InputTuple, - log_named_array_string_uint256_array_Event.OutputTuple, - log_named_array_string_uint256_array_Event.OutputObject - >; - "log_named_array(string,int256[])": TypedContractEvent< - log_named_array_string_int256_array_Event.InputTuple, - log_named_array_string_int256_array_Event.OutputTuple, - log_named_array_string_int256_array_Event.OutputObject - >; - "log_named_array(string,address[])": TypedContractEvent< - log_named_array_string_address_array_Event.InputTuple, - log_named_array_string_address_array_Event.OutputTuple, - log_named_array_string_address_array_Event.OutputObject - >; - - "log_named_bytes(string,bytes)": TypedContractEvent< - log_named_bytesEvent.InputTuple, - log_named_bytesEvent.OutputTuple, - log_named_bytesEvent.OutputObject - >; - log_named_bytes: TypedContractEvent< - log_named_bytesEvent.InputTuple, - log_named_bytesEvent.OutputTuple, - log_named_bytesEvent.OutputObject - >; - - "log_named_bytes32(string,bytes32)": TypedContractEvent< - log_named_bytes32Event.InputTuple, - log_named_bytes32Event.OutputTuple, - log_named_bytes32Event.OutputObject - >; - log_named_bytes32: TypedContractEvent< - log_named_bytes32Event.InputTuple, - log_named_bytes32Event.OutputTuple, - log_named_bytes32Event.OutputObject - >; - - "log_named_decimal_int(string,int256,uint256)": TypedContractEvent< - log_named_decimal_intEvent.InputTuple, - log_named_decimal_intEvent.OutputTuple, - log_named_decimal_intEvent.OutputObject - >; - log_named_decimal_int: TypedContractEvent< - log_named_decimal_intEvent.InputTuple, - log_named_decimal_intEvent.OutputTuple, - log_named_decimal_intEvent.OutputObject - >; - - "log_named_decimal_uint(string,uint256,uint256)": TypedContractEvent< - log_named_decimal_uintEvent.InputTuple, - log_named_decimal_uintEvent.OutputTuple, - log_named_decimal_uintEvent.OutputObject - >; - log_named_decimal_uint: TypedContractEvent< - log_named_decimal_uintEvent.InputTuple, - log_named_decimal_uintEvent.OutputTuple, - log_named_decimal_uintEvent.OutputObject - >; - - "log_named_int(string,int256)": TypedContractEvent< - log_named_intEvent.InputTuple, - log_named_intEvent.OutputTuple, - log_named_intEvent.OutputObject - >; - log_named_int: TypedContractEvent< - log_named_intEvent.InputTuple, - log_named_intEvent.OutputTuple, - log_named_intEvent.OutputObject - >; - - "log_named_string(string,string)": TypedContractEvent< - log_named_stringEvent.InputTuple, - log_named_stringEvent.OutputTuple, - log_named_stringEvent.OutputObject - >; - log_named_string: TypedContractEvent< - log_named_stringEvent.InputTuple, - log_named_stringEvent.OutputTuple, - log_named_stringEvent.OutputObject - >; - - "log_named_uint(string,uint256)": TypedContractEvent< - log_named_uintEvent.InputTuple, - log_named_uintEvent.OutputTuple, - log_named_uintEvent.OutputObject - >; - log_named_uint: TypedContractEvent< - log_named_uintEvent.InputTuple, - log_named_uintEvent.OutputTuple, - log_named_uintEvent.OutputObject - >; - - "log_string(string)": TypedContractEvent< - log_stringEvent.InputTuple, - log_stringEvent.OutputTuple, - log_stringEvent.OutputObject - >; - log_string: TypedContractEvent< - log_stringEvent.InputTuple, - log_stringEvent.OutputTuple, - log_stringEvent.OutputObject - >; - - "log_uint(uint256)": TypedContractEvent< - log_uintEvent.InputTuple, - log_uintEvent.OutputTuple, - log_uintEvent.OutputObject - >; - log_uint: TypedContractEvent< - log_uintEvent.InputTuple, - log_uintEvent.OutputTuple, - log_uintEvent.OutputObject - >; - - "logs(bytes)": TypedContractEvent< - logsEvent.InputTuple, - logsEvent.OutputTuple, - logsEvent.OutputObject - >; - logs: TypedContractEvent< - logsEvent.InputTuple, - logsEvent.OutputTuple, - logsEvent.OutputObject - >; - }; -} diff --git a/typechain-types/forge-std/StdError.sol/StdError.ts b/typechain-types/forge-std/StdError.sol/StdError.ts deleted file mode 100644 index 4a7728ff..00000000 --- a/typechain-types/forge-std/StdError.sol/StdError.ts +++ /dev/null @@ -1,199 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BytesLike, - FunctionFragment, - Result, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../common"; - -export interface StdErrorInterface extends Interface { - getFunction( - nameOrSignature: - | "arithmeticError" - | "assertionError" - | "divisionError" - | "encodeStorageError" - | "enumConversionError" - | "indexOOBError" - | "memOverflowError" - | "popError" - | "zeroVarError" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "arithmeticError", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "assertionError", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "divisionError", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "encodeStorageError", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "enumConversionError", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "indexOOBError", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "memOverflowError", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "popError", values?: undefined): string; - encodeFunctionData( - functionFragment: "zeroVarError", - values?: undefined - ): string; - - decodeFunctionResult( - functionFragment: "arithmeticError", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertionError", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "divisionError", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "encodeStorageError", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "enumConversionError", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "indexOOBError", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "memOverflowError", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "popError", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "zeroVarError", - data: BytesLike - ): Result; -} - -export interface StdError extends BaseContract { - connect(runner?: ContractRunner | null): StdError; - waitForDeployment(): Promise; - - interface: StdErrorInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - arithmeticError: TypedContractMethod<[], [string], "view">; - - assertionError: TypedContractMethod<[], [string], "view">; - - divisionError: TypedContractMethod<[], [string], "view">; - - encodeStorageError: TypedContractMethod<[], [string], "view">; - - enumConversionError: TypedContractMethod<[], [string], "view">; - - indexOOBError: TypedContractMethod<[], [string], "view">; - - memOverflowError: TypedContractMethod<[], [string], "view">; - - popError: TypedContractMethod<[], [string], "view">; - - zeroVarError: TypedContractMethod<[], [string], "view">; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "arithmeticError" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "assertionError" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "divisionError" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "encodeStorageError" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "enumConversionError" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "indexOOBError" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "memOverflowError" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "popError" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "zeroVarError" - ): TypedContractMethod<[], [string], "view">; - - filters: {}; -} diff --git a/typechain-types/forge-std/StdError.sol/index.ts b/typechain-types/forge-std/StdError.sol/index.ts deleted file mode 100644 index 011e98fa..00000000 --- a/typechain-types/forge-std/StdError.sol/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { StdError } from "./StdError"; diff --git a/typechain-types/forge-std/StdInvariant.ts b/typechain-types/forge-std/StdInvariant.ts deleted file mode 100644 index 6d46903b..00000000 --- a/typechain-types/forge-std/StdInvariant.ts +++ /dev/null @@ -1,273 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BytesLike, - FunctionFragment, - Result, - Interface, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../common"; - -export declare namespace StdInvariant { - export type FuzzSelectorStruct = { - addr: AddressLike; - selectors: BytesLike[]; - }; - - export type FuzzSelectorStructOutput = [addr: string, selectors: string[]] & { - addr: string; - selectors: string[]; - }; - - export type FuzzArtifactSelectorStruct = { - artifact: string; - selectors: BytesLike[]; - }; - - export type FuzzArtifactSelectorStructOutput = [ - artifact: string, - selectors: string[] - ] & { artifact: string; selectors: string[] }; - - export type FuzzInterfaceStruct = { addr: AddressLike; artifacts: string[] }; - - export type FuzzInterfaceStructOutput = [ - addr: string, - artifacts: string[] - ] & { addr: string; artifacts: string[] }; -} - -export interface StdInvariantInterface extends Interface { - getFunction( - nameOrSignature: - | "excludeArtifacts" - | "excludeContracts" - | "excludeSelectors" - | "excludeSenders" - | "targetArtifactSelectors" - | "targetArtifacts" - | "targetContracts" - | "targetInterfaces" - | "targetSelectors" - | "targetSenders" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "excludeArtifacts", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "excludeContracts", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "excludeSelectors", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "excludeSenders", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetArtifactSelectors", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetArtifacts", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetContracts", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetInterfaces", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetSelectors", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetSenders", - values?: undefined - ): string; - - decodeFunctionResult( - functionFragment: "excludeArtifacts", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "excludeContracts", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "excludeSelectors", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "excludeSenders", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetArtifactSelectors", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetArtifacts", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetContracts", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetInterfaces", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetSelectors", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetSenders", - data: BytesLike - ): Result; -} - -export interface StdInvariant extends BaseContract { - connect(runner?: ContractRunner | null): StdInvariant; - waitForDeployment(): Promise; - - interface: StdInvariantInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - excludeArtifacts: TypedContractMethod<[], [string[]], "view">; - - excludeContracts: TypedContractMethod<[], [string[]], "view">; - - excludeSelectors: TypedContractMethod< - [], - [StdInvariant.FuzzSelectorStructOutput[]], - "view" - >; - - excludeSenders: TypedContractMethod<[], [string[]], "view">; - - targetArtifactSelectors: TypedContractMethod< - [], - [StdInvariant.FuzzArtifactSelectorStructOutput[]], - "view" - >; - - targetArtifacts: TypedContractMethod<[], [string[]], "view">; - - targetContracts: TypedContractMethod<[], [string[]], "view">; - - targetInterfaces: TypedContractMethod< - [], - [StdInvariant.FuzzInterfaceStructOutput[]], - "view" - >; - - targetSelectors: TypedContractMethod< - [], - [StdInvariant.FuzzSelectorStructOutput[]], - "view" - >; - - targetSenders: TypedContractMethod<[], [string[]], "view">; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "excludeArtifacts" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "excludeContracts" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "excludeSelectors" - ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; - getFunction( - nameOrSignature: "excludeSenders" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "targetArtifactSelectors" - ): TypedContractMethod< - [], - [StdInvariant.FuzzArtifactSelectorStructOutput[]], - "view" - >; - getFunction( - nameOrSignature: "targetArtifacts" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "targetContracts" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "targetInterfaces" - ): TypedContractMethod< - [], - [StdInvariant.FuzzInterfaceStructOutput[]], - "view" - >; - getFunction( - nameOrSignature: "targetSelectors" - ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; - getFunction( - nameOrSignature: "targetSenders" - ): TypedContractMethod<[], [string[]], "view">; - - filters: {}; -} diff --git a/typechain-types/forge-std/StdStorage.sol/StdStorageSafe.ts b/typechain-types/forge-std/StdStorage.sol/StdStorageSafe.ts deleted file mode 100644 index a81b0be3..00000000 --- a/typechain-types/forge-std/StdStorage.sol/StdStorageSafe.ts +++ /dev/null @@ -1,153 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, -} from "../../common"; - -export interface StdStorageSafeInterface extends Interface { - getEvent( - nameOrSignatureOrTopic: "SlotFound" | "WARNING_UninitedSlot" - ): EventFragment; -} - -export namespace SlotFoundEvent { - export type InputTuple = [ - who: AddressLike, - fsig: BytesLike, - keysHash: BytesLike, - slot: BigNumberish - ]; - export type OutputTuple = [ - who: string, - fsig: string, - keysHash: string, - slot: bigint - ]; - export interface OutputObject { - who: string; - fsig: string; - keysHash: string; - slot: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace WARNING_UninitedSlotEvent { - export type InputTuple = [who: AddressLike, slot: BigNumberish]; - export type OutputTuple = [who: string, slot: bigint]; - export interface OutputObject { - who: string; - slot: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface StdStorageSafe extends BaseContract { - connect(runner?: ContractRunner | null): StdStorageSafe; - waitForDeployment(): Promise; - - interface: StdStorageSafeInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - getEvent( - key: "SlotFound" - ): TypedContractEvent< - SlotFoundEvent.InputTuple, - SlotFoundEvent.OutputTuple, - SlotFoundEvent.OutputObject - >; - getEvent( - key: "WARNING_UninitedSlot" - ): TypedContractEvent< - WARNING_UninitedSlotEvent.InputTuple, - WARNING_UninitedSlotEvent.OutputTuple, - WARNING_UninitedSlotEvent.OutputObject - >; - - filters: { - "SlotFound(address,bytes4,bytes32,uint256)": TypedContractEvent< - SlotFoundEvent.InputTuple, - SlotFoundEvent.OutputTuple, - SlotFoundEvent.OutputObject - >; - SlotFound: TypedContractEvent< - SlotFoundEvent.InputTuple, - SlotFoundEvent.OutputTuple, - SlotFoundEvent.OutputObject - >; - - "WARNING_UninitedSlot(address,uint256)": TypedContractEvent< - WARNING_UninitedSlotEvent.InputTuple, - WARNING_UninitedSlotEvent.OutputTuple, - WARNING_UninitedSlotEvent.OutputObject - >; - WARNING_UninitedSlot: TypedContractEvent< - WARNING_UninitedSlotEvent.InputTuple, - WARNING_UninitedSlotEvent.OutputTuple, - WARNING_UninitedSlotEvent.OutputObject - >; - }; -} diff --git a/typechain-types/forge-std/StdStorage.sol/index.ts b/typechain-types/forge-std/StdStorage.sol/index.ts deleted file mode 100644 index 8a3fb579..00000000 --- a/typechain-types/forge-std/StdStorage.sol/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { StdStorageSafe } from "./StdStorageSafe"; diff --git a/typechain-types/forge-std/Test.ts b/typechain-types/forge-std/Test.ts deleted file mode 100644 index 9417b2a4..00000000 --- a/typechain-types/forge-std/Test.ts +++ /dev/null @@ -1,966 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../common"; - -export declare namespace StdInvariant { - export type FuzzSelectorStruct = { - addr: AddressLike; - selectors: BytesLike[]; - }; - - export type FuzzSelectorStructOutput = [addr: string, selectors: string[]] & { - addr: string; - selectors: string[]; - }; - - export type FuzzArtifactSelectorStruct = { - artifact: string; - selectors: BytesLike[]; - }; - - export type FuzzArtifactSelectorStructOutput = [ - artifact: string, - selectors: string[] - ] & { artifact: string; selectors: string[] }; - - export type FuzzInterfaceStruct = { addr: AddressLike; artifacts: string[] }; - - export type FuzzInterfaceStructOutput = [ - addr: string, - artifacts: string[] - ] & { addr: string; artifacts: string[] }; -} - -export interface TestInterface extends Interface { - getFunction( - nameOrSignature: - | "IS_TEST" - | "excludeArtifacts" - | "excludeContracts" - | "excludeSelectors" - | "excludeSenders" - | "failed" - | "targetArtifactSelectors" - | "targetArtifacts" - | "targetContracts" - | "targetInterfaces" - | "targetSelectors" - | "targetSenders" - ): FunctionFragment; - - getEvent( - nameOrSignatureOrTopic: - | "log" - | "log_address" - | "log_array(uint256[])" - | "log_array(int256[])" - | "log_array(address[])" - | "log_bytes" - | "log_bytes32" - | "log_int" - | "log_named_address" - | "log_named_array(string,uint256[])" - | "log_named_array(string,int256[])" - | "log_named_array(string,address[])" - | "log_named_bytes" - | "log_named_bytes32" - | "log_named_decimal_int" - | "log_named_decimal_uint" - | "log_named_int" - | "log_named_string" - | "log_named_uint" - | "log_string" - | "log_uint" - | "logs" - ): EventFragment; - - encodeFunctionData(functionFragment: "IS_TEST", values?: undefined): string; - encodeFunctionData( - functionFragment: "excludeArtifacts", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "excludeContracts", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "excludeSelectors", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "excludeSenders", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "failed", values?: undefined): string; - encodeFunctionData( - functionFragment: "targetArtifactSelectors", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetArtifacts", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetContracts", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetInterfaces", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetSelectors", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "targetSenders", - values?: undefined - ): string; - - decodeFunctionResult(functionFragment: "IS_TEST", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "excludeArtifacts", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "excludeContracts", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "excludeSelectors", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "excludeSenders", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "failed", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "targetArtifactSelectors", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetArtifacts", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetContracts", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetInterfaces", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetSelectors", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "targetSenders", - data: BytesLike - ): Result; -} - -export namespace logEvent { - export type InputTuple = [arg0: string]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_addressEvent { - export type InputTuple = [arg0: AddressLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_array_uint256_array_Event { - export type InputTuple = [val: BigNumberish[]]; - export type OutputTuple = [val: bigint[]]; - export interface OutputObject { - val: bigint[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_array_int256_array_Event { - export type InputTuple = [val: BigNumberish[]]; - export type OutputTuple = [val: bigint[]]; - export interface OutputObject { - val: bigint[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_array_address_array_Event { - export type InputTuple = [val: AddressLike[]]; - export type OutputTuple = [val: string[]]; - export interface OutputObject { - val: string[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_bytesEvent { - export type InputTuple = [arg0: BytesLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_bytes32Event { - export type InputTuple = [arg0: BytesLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_intEvent { - export type InputTuple = [arg0: BigNumberish]; - export type OutputTuple = [arg0: bigint]; - export interface OutputObject { - arg0: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_addressEvent { - export type InputTuple = [key: string, val: AddressLike]; - export type OutputTuple = [key: string, val: string]; - export interface OutputObject { - key: string; - val: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_array_string_uint256_array_Event { - export type InputTuple = [key: string, val: BigNumberish[]]; - export type OutputTuple = [key: string, val: bigint[]]; - export interface OutputObject { - key: string; - val: bigint[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_array_string_int256_array_Event { - export type InputTuple = [key: string, val: BigNumberish[]]; - export type OutputTuple = [key: string, val: bigint[]]; - export interface OutputObject { - key: string; - val: bigint[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_array_string_address_array_Event { - export type InputTuple = [key: string, val: AddressLike[]]; - export type OutputTuple = [key: string, val: string[]]; - export interface OutputObject { - key: string; - val: string[]; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_bytesEvent { - export type InputTuple = [key: string, val: BytesLike]; - export type OutputTuple = [key: string, val: string]; - export interface OutputObject { - key: string; - val: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_bytes32Event { - export type InputTuple = [key: string, val: BytesLike]; - export type OutputTuple = [key: string, val: string]; - export interface OutputObject { - key: string; - val: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_decimal_intEvent { - export type InputTuple = [ - key: string, - val: BigNumberish, - decimals: BigNumberish - ]; - export type OutputTuple = [key: string, val: bigint, decimals: bigint]; - export interface OutputObject { - key: string; - val: bigint; - decimals: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_decimal_uintEvent { - export type InputTuple = [ - key: string, - val: BigNumberish, - decimals: BigNumberish - ]; - export type OutputTuple = [key: string, val: bigint, decimals: bigint]; - export interface OutputObject { - key: string; - val: bigint; - decimals: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_intEvent { - export type InputTuple = [key: string, val: BigNumberish]; - export type OutputTuple = [key: string, val: bigint]; - export interface OutputObject { - key: string; - val: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_stringEvent { - export type InputTuple = [key: string, val: string]; - export type OutputTuple = [key: string, val: string]; - export interface OutputObject { - key: string; - val: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_named_uintEvent { - export type InputTuple = [key: string, val: BigNumberish]; - export type OutputTuple = [key: string, val: bigint]; - export interface OutputObject { - key: string; - val: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_stringEvent { - export type InputTuple = [arg0: string]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace log_uintEvent { - export type InputTuple = [arg0: BigNumberish]; - export type OutputTuple = [arg0: bigint]; - export interface OutputObject { - arg0: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace logsEvent { - export type InputTuple = [arg0: BytesLike]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface Test extends BaseContract { - connect(runner?: ContractRunner | null): Test; - waitForDeployment(): Promise; - - interface: TestInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - IS_TEST: TypedContractMethod<[], [boolean], "view">; - - excludeArtifacts: TypedContractMethod<[], [string[]], "view">; - - excludeContracts: TypedContractMethod<[], [string[]], "view">; - - excludeSelectors: TypedContractMethod< - [], - [StdInvariant.FuzzSelectorStructOutput[]], - "view" - >; - - excludeSenders: TypedContractMethod<[], [string[]], "view">; - - failed: TypedContractMethod<[], [boolean], "view">; - - targetArtifactSelectors: TypedContractMethod< - [], - [StdInvariant.FuzzArtifactSelectorStructOutput[]], - "view" - >; - - targetArtifacts: TypedContractMethod<[], [string[]], "view">; - - targetContracts: TypedContractMethod<[], [string[]], "view">; - - targetInterfaces: TypedContractMethod< - [], - [StdInvariant.FuzzInterfaceStructOutput[]], - "view" - >; - - targetSelectors: TypedContractMethod< - [], - [StdInvariant.FuzzSelectorStructOutput[]], - "view" - >; - - targetSenders: TypedContractMethod<[], [string[]], "view">; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "IS_TEST" - ): TypedContractMethod<[], [boolean], "view">; - getFunction( - nameOrSignature: "excludeArtifacts" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "excludeContracts" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "excludeSelectors" - ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; - getFunction( - nameOrSignature: "excludeSenders" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "failed" - ): TypedContractMethod<[], [boolean], "view">; - getFunction( - nameOrSignature: "targetArtifactSelectors" - ): TypedContractMethod< - [], - [StdInvariant.FuzzArtifactSelectorStructOutput[]], - "view" - >; - getFunction( - nameOrSignature: "targetArtifacts" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "targetContracts" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "targetInterfaces" - ): TypedContractMethod< - [], - [StdInvariant.FuzzInterfaceStructOutput[]], - "view" - >; - getFunction( - nameOrSignature: "targetSelectors" - ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; - getFunction( - nameOrSignature: "targetSenders" - ): TypedContractMethod<[], [string[]], "view">; - - getEvent( - key: "log" - ): TypedContractEvent< - logEvent.InputTuple, - logEvent.OutputTuple, - logEvent.OutputObject - >; - getEvent( - key: "log_address" - ): TypedContractEvent< - log_addressEvent.InputTuple, - log_addressEvent.OutputTuple, - log_addressEvent.OutputObject - >; - getEvent( - key: "log_array(uint256[])" - ): TypedContractEvent< - log_array_uint256_array_Event.InputTuple, - log_array_uint256_array_Event.OutputTuple, - log_array_uint256_array_Event.OutputObject - >; - getEvent( - key: "log_array(int256[])" - ): TypedContractEvent< - log_array_int256_array_Event.InputTuple, - log_array_int256_array_Event.OutputTuple, - log_array_int256_array_Event.OutputObject - >; - getEvent( - key: "log_array(address[])" - ): TypedContractEvent< - log_array_address_array_Event.InputTuple, - log_array_address_array_Event.OutputTuple, - log_array_address_array_Event.OutputObject - >; - getEvent( - key: "log_bytes" - ): TypedContractEvent< - log_bytesEvent.InputTuple, - log_bytesEvent.OutputTuple, - log_bytesEvent.OutputObject - >; - getEvent( - key: "log_bytes32" - ): TypedContractEvent< - log_bytes32Event.InputTuple, - log_bytes32Event.OutputTuple, - log_bytes32Event.OutputObject - >; - getEvent( - key: "log_int" - ): TypedContractEvent< - log_intEvent.InputTuple, - log_intEvent.OutputTuple, - log_intEvent.OutputObject - >; - getEvent( - key: "log_named_address" - ): TypedContractEvent< - log_named_addressEvent.InputTuple, - log_named_addressEvent.OutputTuple, - log_named_addressEvent.OutputObject - >; - getEvent( - key: "log_named_array(string,uint256[])" - ): TypedContractEvent< - log_named_array_string_uint256_array_Event.InputTuple, - log_named_array_string_uint256_array_Event.OutputTuple, - log_named_array_string_uint256_array_Event.OutputObject - >; - getEvent( - key: "log_named_array(string,int256[])" - ): TypedContractEvent< - log_named_array_string_int256_array_Event.InputTuple, - log_named_array_string_int256_array_Event.OutputTuple, - log_named_array_string_int256_array_Event.OutputObject - >; - getEvent( - key: "log_named_array(string,address[])" - ): TypedContractEvent< - log_named_array_string_address_array_Event.InputTuple, - log_named_array_string_address_array_Event.OutputTuple, - log_named_array_string_address_array_Event.OutputObject - >; - getEvent( - key: "log_named_bytes" - ): TypedContractEvent< - log_named_bytesEvent.InputTuple, - log_named_bytesEvent.OutputTuple, - log_named_bytesEvent.OutputObject - >; - getEvent( - key: "log_named_bytes32" - ): TypedContractEvent< - log_named_bytes32Event.InputTuple, - log_named_bytes32Event.OutputTuple, - log_named_bytes32Event.OutputObject - >; - getEvent( - key: "log_named_decimal_int" - ): TypedContractEvent< - log_named_decimal_intEvent.InputTuple, - log_named_decimal_intEvent.OutputTuple, - log_named_decimal_intEvent.OutputObject - >; - getEvent( - key: "log_named_decimal_uint" - ): TypedContractEvent< - log_named_decimal_uintEvent.InputTuple, - log_named_decimal_uintEvent.OutputTuple, - log_named_decimal_uintEvent.OutputObject - >; - getEvent( - key: "log_named_int" - ): TypedContractEvent< - log_named_intEvent.InputTuple, - log_named_intEvent.OutputTuple, - log_named_intEvent.OutputObject - >; - getEvent( - key: "log_named_string" - ): TypedContractEvent< - log_named_stringEvent.InputTuple, - log_named_stringEvent.OutputTuple, - log_named_stringEvent.OutputObject - >; - getEvent( - key: "log_named_uint" - ): TypedContractEvent< - log_named_uintEvent.InputTuple, - log_named_uintEvent.OutputTuple, - log_named_uintEvent.OutputObject - >; - getEvent( - key: "log_string" - ): TypedContractEvent< - log_stringEvent.InputTuple, - log_stringEvent.OutputTuple, - log_stringEvent.OutputObject - >; - getEvent( - key: "log_uint" - ): TypedContractEvent< - log_uintEvent.InputTuple, - log_uintEvent.OutputTuple, - log_uintEvent.OutputObject - >; - getEvent( - key: "logs" - ): TypedContractEvent< - logsEvent.InputTuple, - logsEvent.OutputTuple, - logsEvent.OutputObject - >; - - filters: { - "log(string)": TypedContractEvent< - logEvent.InputTuple, - logEvent.OutputTuple, - logEvent.OutputObject - >; - log: TypedContractEvent< - logEvent.InputTuple, - logEvent.OutputTuple, - logEvent.OutputObject - >; - - "log_address(address)": TypedContractEvent< - log_addressEvent.InputTuple, - log_addressEvent.OutputTuple, - log_addressEvent.OutputObject - >; - log_address: TypedContractEvent< - log_addressEvent.InputTuple, - log_addressEvent.OutputTuple, - log_addressEvent.OutputObject - >; - - "log_array(uint256[])": TypedContractEvent< - log_array_uint256_array_Event.InputTuple, - log_array_uint256_array_Event.OutputTuple, - log_array_uint256_array_Event.OutputObject - >; - "log_array(int256[])": TypedContractEvent< - log_array_int256_array_Event.InputTuple, - log_array_int256_array_Event.OutputTuple, - log_array_int256_array_Event.OutputObject - >; - "log_array(address[])": TypedContractEvent< - log_array_address_array_Event.InputTuple, - log_array_address_array_Event.OutputTuple, - log_array_address_array_Event.OutputObject - >; - - "log_bytes(bytes)": TypedContractEvent< - log_bytesEvent.InputTuple, - log_bytesEvent.OutputTuple, - log_bytesEvent.OutputObject - >; - log_bytes: TypedContractEvent< - log_bytesEvent.InputTuple, - log_bytesEvent.OutputTuple, - log_bytesEvent.OutputObject - >; - - "log_bytes32(bytes32)": TypedContractEvent< - log_bytes32Event.InputTuple, - log_bytes32Event.OutputTuple, - log_bytes32Event.OutputObject - >; - log_bytes32: TypedContractEvent< - log_bytes32Event.InputTuple, - log_bytes32Event.OutputTuple, - log_bytes32Event.OutputObject - >; - - "log_int(int256)": TypedContractEvent< - log_intEvent.InputTuple, - log_intEvent.OutputTuple, - log_intEvent.OutputObject - >; - log_int: TypedContractEvent< - log_intEvent.InputTuple, - log_intEvent.OutputTuple, - log_intEvent.OutputObject - >; - - "log_named_address(string,address)": TypedContractEvent< - log_named_addressEvent.InputTuple, - log_named_addressEvent.OutputTuple, - log_named_addressEvent.OutputObject - >; - log_named_address: TypedContractEvent< - log_named_addressEvent.InputTuple, - log_named_addressEvent.OutputTuple, - log_named_addressEvent.OutputObject - >; - - "log_named_array(string,uint256[])": TypedContractEvent< - log_named_array_string_uint256_array_Event.InputTuple, - log_named_array_string_uint256_array_Event.OutputTuple, - log_named_array_string_uint256_array_Event.OutputObject - >; - "log_named_array(string,int256[])": TypedContractEvent< - log_named_array_string_int256_array_Event.InputTuple, - log_named_array_string_int256_array_Event.OutputTuple, - log_named_array_string_int256_array_Event.OutputObject - >; - "log_named_array(string,address[])": TypedContractEvent< - log_named_array_string_address_array_Event.InputTuple, - log_named_array_string_address_array_Event.OutputTuple, - log_named_array_string_address_array_Event.OutputObject - >; - - "log_named_bytes(string,bytes)": TypedContractEvent< - log_named_bytesEvent.InputTuple, - log_named_bytesEvent.OutputTuple, - log_named_bytesEvent.OutputObject - >; - log_named_bytes: TypedContractEvent< - log_named_bytesEvent.InputTuple, - log_named_bytesEvent.OutputTuple, - log_named_bytesEvent.OutputObject - >; - - "log_named_bytes32(string,bytes32)": TypedContractEvent< - log_named_bytes32Event.InputTuple, - log_named_bytes32Event.OutputTuple, - log_named_bytes32Event.OutputObject - >; - log_named_bytes32: TypedContractEvent< - log_named_bytes32Event.InputTuple, - log_named_bytes32Event.OutputTuple, - log_named_bytes32Event.OutputObject - >; - - "log_named_decimal_int(string,int256,uint256)": TypedContractEvent< - log_named_decimal_intEvent.InputTuple, - log_named_decimal_intEvent.OutputTuple, - log_named_decimal_intEvent.OutputObject - >; - log_named_decimal_int: TypedContractEvent< - log_named_decimal_intEvent.InputTuple, - log_named_decimal_intEvent.OutputTuple, - log_named_decimal_intEvent.OutputObject - >; - - "log_named_decimal_uint(string,uint256,uint256)": TypedContractEvent< - log_named_decimal_uintEvent.InputTuple, - log_named_decimal_uintEvent.OutputTuple, - log_named_decimal_uintEvent.OutputObject - >; - log_named_decimal_uint: TypedContractEvent< - log_named_decimal_uintEvent.InputTuple, - log_named_decimal_uintEvent.OutputTuple, - log_named_decimal_uintEvent.OutputObject - >; - - "log_named_int(string,int256)": TypedContractEvent< - log_named_intEvent.InputTuple, - log_named_intEvent.OutputTuple, - log_named_intEvent.OutputObject - >; - log_named_int: TypedContractEvent< - log_named_intEvent.InputTuple, - log_named_intEvent.OutputTuple, - log_named_intEvent.OutputObject - >; - - "log_named_string(string,string)": TypedContractEvent< - log_named_stringEvent.InputTuple, - log_named_stringEvent.OutputTuple, - log_named_stringEvent.OutputObject - >; - log_named_string: TypedContractEvent< - log_named_stringEvent.InputTuple, - log_named_stringEvent.OutputTuple, - log_named_stringEvent.OutputObject - >; - - "log_named_uint(string,uint256)": TypedContractEvent< - log_named_uintEvent.InputTuple, - log_named_uintEvent.OutputTuple, - log_named_uintEvent.OutputObject - >; - log_named_uint: TypedContractEvent< - log_named_uintEvent.InputTuple, - log_named_uintEvent.OutputTuple, - log_named_uintEvent.OutputObject - >; - - "log_string(string)": TypedContractEvent< - log_stringEvent.InputTuple, - log_stringEvent.OutputTuple, - log_stringEvent.OutputObject - >; - log_string: TypedContractEvent< - log_stringEvent.InputTuple, - log_stringEvent.OutputTuple, - log_stringEvent.OutputObject - >; - - "log_uint(uint256)": TypedContractEvent< - log_uintEvent.InputTuple, - log_uintEvent.OutputTuple, - log_uintEvent.OutputObject - >; - log_uint: TypedContractEvent< - log_uintEvent.InputTuple, - log_uintEvent.OutputTuple, - log_uintEvent.OutputObject - >; - - "logs(bytes)": TypedContractEvent< - logsEvent.InputTuple, - logsEvent.OutputTuple, - logsEvent.OutputObject - >; - logs: TypedContractEvent< - logsEvent.InputTuple, - logsEvent.OutputTuple, - logsEvent.OutputObject - >; - }; -} diff --git a/typechain-types/forge-std/Vm.sol/Vm.ts b/typechain-types/forge-std/Vm.sol/Vm.ts deleted file mode 100644 index 5c8d46d6..00000000 --- a/typechain-types/forge-std/Vm.sol/Vm.ts +++ /dev/null @@ -1,10534 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../common"; - -export declare namespace VmSafe { - export type AccessListItemStruct = { - target: AddressLike; - storageKeys: BytesLike[]; - }; - - export type AccessListItemStructOutput = [ - target: string, - storageKeys: string[] - ] & { target: string; storageKeys: string[] }; - - export type PotentialRevertStruct = { - reverter: AddressLike; - partialMatch: boolean; - revertData: BytesLike; - }; - - export type PotentialRevertStructOutput = [ - reverter: string, - partialMatch: boolean, - revertData: string - ] & { reverter: string; partialMatch: boolean; revertData: string }; - - export type SignedDelegationStruct = { - v: BigNumberish; - r: BytesLike; - s: BytesLike; - nonce: BigNumberish; - implementation: AddressLike; - }; - - export type SignedDelegationStructOutput = [ - v: bigint, - r: string, - s: string, - nonce: bigint, - implementation: string - ] & { - v: bigint; - r: string; - s: string; - nonce: bigint; - implementation: string; - }; - - export type WalletStruct = { - addr: AddressLike; - publicKeyX: BigNumberish; - publicKeyY: BigNumberish; - privateKey: BigNumberish; - }; - - export type WalletStructOutput = [ - addr: string, - publicKeyX: bigint, - publicKeyY: bigint, - privateKey: bigint - ] & { - addr: string; - publicKeyX: bigint; - publicKeyY: bigint; - privateKey: bigint; - }; - - export type EthGetLogsStruct = { - emitter: AddressLike; - topics: BytesLike[]; - data: BytesLike; - blockHash: BytesLike; - blockNumber: BigNumberish; - transactionHash: BytesLike; - transactionIndex: BigNumberish; - logIndex: BigNumberish; - removed: boolean; - }; - - export type EthGetLogsStructOutput = [ - emitter: string, - topics: string[], - data: string, - blockHash: string, - blockNumber: bigint, - transactionHash: string, - transactionIndex: bigint, - logIndex: bigint, - removed: boolean - ] & { - emitter: string; - topics: string[]; - data: string; - blockHash: string; - blockNumber: bigint; - transactionHash: string; - transactionIndex: bigint; - logIndex: bigint; - removed: boolean; - }; - - export type FsMetadataStruct = { - isDir: boolean; - isSymlink: boolean; - length: BigNumberish; - readOnly: boolean; - modified: BigNumberish; - accessed: BigNumberish; - created: BigNumberish; - }; - - export type FsMetadataStructOutput = [ - isDir: boolean, - isSymlink: boolean, - length: bigint, - readOnly: boolean, - modified: bigint, - accessed: bigint, - created: bigint - ] & { - isDir: boolean; - isSymlink: boolean; - length: bigint; - readOnly: boolean; - modified: bigint; - accessed: bigint; - created: bigint; - }; - - export type BroadcastTxSummaryStruct = { - txHash: BytesLike; - txType: BigNumberish; - contractAddress: AddressLike; - blockNumber: BigNumberish; - success: boolean; - }; - - export type BroadcastTxSummaryStructOutput = [ - txHash: string, - txType: bigint, - contractAddress: string, - blockNumber: bigint, - success: boolean - ] & { - txHash: string; - txType: bigint; - contractAddress: string; - blockNumber: bigint; - success: boolean; - }; - - export type ChainStruct = { - name: string; - chainId: BigNumberish; - chainAlias: string; - rpcUrl: string; - }; - - export type ChainStructOutput = [ - name: string, - chainId: bigint, - chainAlias: string, - rpcUrl: string - ] & { name: string; chainId: bigint; chainAlias: string; rpcUrl: string }; - - export type LogStruct = { - topics: BytesLike[]; - data: BytesLike; - emitter: AddressLike; - }; - - export type LogStructOutput = [ - topics: string[], - data: string, - emitter: string - ] & { topics: string[]; data: string; emitter: string }; - - export type GasStruct = { - gasLimit: BigNumberish; - gasTotalUsed: BigNumberish; - gasMemoryUsed: BigNumberish; - gasRefunded: BigNumberish; - gasRemaining: BigNumberish; - }; - - export type GasStructOutput = [ - gasLimit: bigint, - gasTotalUsed: bigint, - gasMemoryUsed: bigint, - gasRefunded: bigint, - gasRemaining: bigint - ] & { - gasLimit: bigint; - gasTotalUsed: bigint; - gasMemoryUsed: bigint; - gasRefunded: bigint; - gasRemaining: bigint; - }; - - export type DirEntryStruct = { - errorMessage: string; - path: string; - depth: BigNumberish; - isDir: boolean; - isSymlink: boolean; - }; - - export type DirEntryStructOutput = [ - errorMessage: string, - path: string, - depth: bigint, - isDir: boolean, - isSymlink: boolean - ] & { - errorMessage: string; - path: string; - depth: bigint; - isDir: boolean; - isSymlink: boolean; - }; - - export type RpcStruct = { key: string; url: string }; - - export type RpcStructOutput = [key: string, url: string] & { - key: string; - url: string; - }; - - export type DebugStepStruct = { - stack: BigNumberish[]; - memoryInput: BytesLike; - opcode: BigNumberish; - depth: BigNumberish; - isOutOfGas: boolean; - contractAddr: AddressLike; - }; - - export type DebugStepStructOutput = [ - stack: bigint[], - memoryInput: string, - opcode: bigint, - depth: bigint, - isOutOfGas: boolean, - contractAddr: string - ] & { - stack: bigint[]; - memoryInput: string; - opcode: bigint; - depth: bigint; - isOutOfGas: boolean; - contractAddr: string; - }; - - export type ChainInfoStruct = { forkId: BigNumberish; chainId: BigNumberish }; - - export type ChainInfoStructOutput = [forkId: bigint, chainId: bigint] & { - forkId: bigint; - chainId: bigint; - }; - - export type StorageAccessStruct = { - account: AddressLike; - slot: BytesLike; - isWrite: boolean; - previousValue: BytesLike; - newValue: BytesLike; - reverted: boolean; - }; - - export type StorageAccessStructOutput = [ - account: string, - slot: string, - isWrite: boolean, - previousValue: string, - newValue: string, - reverted: boolean - ] & { - account: string; - slot: string; - isWrite: boolean; - previousValue: string; - newValue: string; - reverted: boolean; - }; - - export type AccountAccessStruct = { - chainInfo: VmSafe.ChainInfoStruct; - kind: BigNumberish; - account: AddressLike; - accessor: AddressLike; - initialized: boolean; - oldBalance: BigNumberish; - newBalance: BigNumberish; - deployedCode: BytesLike; - value: BigNumberish; - data: BytesLike; - reverted: boolean; - storageAccesses: VmSafe.StorageAccessStruct[]; - depth: BigNumberish; - }; - - export type AccountAccessStructOutput = [ - chainInfo: VmSafe.ChainInfoStructOutput, - kind: bigint, - account: string, - accessor: string, - initialized: boolean, - oldBalance: bigint, - newBalance: bigint, - deployedCode: string, - value: bigint, - data: string, - reverted: boolean, - storageAccesses: VmSafe.StorageAccessStructOutput[], - depth: bigint - ] & { - chainInfo: VmSafe.ChainInfoStructOutput; - kind: bigint; - account: string; - accessor: string; - initialized: boolean; - oldBalance: bigint; - newBalance: bigint; - deployedCode: string; - value: bigint; - data: string; - reverted: boolean; - storageAccesses: VmSafe.StorageAccessStructOutput[]; - depth: bigint; - }; - - export type FfiResultStruct = { - exitCode: BigNumberish; - stdout: BytesLike; - stderr: BytesLike; - }; - - export type FfiResultStructOutput = [ - exitCode: bigint, - stdout: string, - stderr: string - ] & { exitCode: bigint; stdout: string; stderr: string }; -} - -export interface VmInterface extends Interface { - getFunction( - nameOrSignature: - | "accessList" - | "accesses" - | "activeFork" - | "addr" - | "allowCheatcodes" - | "assertApproxEqAbs(uint256,uint256,uint256)" - | "assertApproxEqAbs(int256,int256,uint256)" - | "assertApproxEqAbs(int256,int256,uint256,string)" - | "assertApproxEqAbs(uint256,uint256,uint256,string)" - | "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)" - | "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)" - | "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)" - | "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)" - | "assertApproxEqRel(uint256,uint256,uint256,string)" - | "assertApproxEqRel(uint256,uint256,uint256)" - | "assertApproxEqRel(int256,int256,uint256,string)" - | "assertApproxEqRel(int256,int256,uint256)" - | "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)" - | "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)" - | "assertApproxEqRelDecimal(int256,int256,uint256,uint256)" - | "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)" - | "assertEq(bytes32[],bytes32[])" - | "assertEq(int256[],int256[],string)" - | "assertEq(address,address,string)" - | "assertEq(string,string,string)" - | "assertEq(address[],address[])" - | "assertEq(address[],address[],string)" - | "assertEq(bool,bool,string)" - | "assertEq(address,address)" - | "assertEq(uint256[],uint256[],string)" - | "assertEq(bool[],bool[])" - | "assertEq(int256[],int256[])" - | "assertEq(int256,int256,string)" - | "assertEq(bytes32,bytes32)" - | "assertEq(uint256,uint256,string)" - | "assertEq(uint256[],uint256[])" - | "assertEq(bytes,bytes)" - | "assertEq(uint256,uint256)" - | "assertEq(bytes32,bytes32,string)" - | "assertEq(string[],string[])" - | "assertEq(bytes32[],bytes32[],string)" - | "assertEq(bytes,bytes,string)" - | "assertEq(bool[],bool[],string)" - | "assertEq(bytes[],bytes[])" - | "assertEq(string[],string[],string)" - | "assertEq(string,string)" - | "assertEq(bytes[],bytes[],string)" - | "assertEq(bool,bool)" - | "assertEq(int256,int256)" - | "assertEqDecimal(uint256,uint256,uint256)" - | "assertEqDecimal(int256,int256,uint256)" - | "assertEqDecimal(int256,int256,uint256,string)" - | "assertEqDecimal(uint256,uint256,uint256,string)" - | "assertFalse(bool,string)" - | "assertFalse(bool)" - | "assertGe(int256,int256)" - | "assertGe(int256,int256,string)" - | "assertGe(uint256,uint256)" - | "assertGe(uint256,uint256,string)" - | "assertGeDecimal(uint256,uint256,uint256)" - | "assertGeDecimal(int256,int256,uint256,string)" - | "assertGeDecimal(uint256,uint256,uint256,string)" - | "assertGeDecimal(int256,int256,uint256)" - | "assertGt(int256,int256)" - | "assertGt(uint256,uint256,string)" - | "assertGt(uint256,uint256)" - | "assertGt(int256,int256,string)" - | "assertGtDecimal(int256,int256,uint256,string)" - | "assertGtDecimal(uint256,uint256,uint256,string)" - | "assertGtDecimal(int256,int256,uint256)" - | "assertGtDecimal(uint256,uint256,uint256)" - | "assertLe(int256,int256,string)" - | "assertLe(uint256,uint256)" - | "assertLe(int256,int256)" - | "assertLe(uint256,uint256,string)" - | "assertLeDecimal(int256,int256,uint256)" - | "assertLeDecimal(uint256,uint256,uint256,string)" - | "assertLeDecimal(int256,int256,uint256,string)" - | "assertLeDecimal(uint256,uint256,uint256)" - | "assertLt(int256,int256)" - | "assertLt(uint256,uint256,string)" - | "assertLt(int256,int256,string)" - | "assertLt(uint256,uint256)" - | "assertLtDecimal(uint256,uint256,uint256)" - | "assertLtDecimal(int256,int256,uint256,string)" - | "assertLtDecimal(uint256,uint256,uint256,string)" - | "assertLtDecimal(int256,int256,uint256)" - | "assertNotEq(bytes32[],bytes32[])" - | "assertNotEq(int256[],int256[])" - | "assertNotEq(bool,bool,string)" - | "assertNotEq(bytes[],bytes[],string)" - | "assertNotEq(bool,bool)" - | "assertNotEq(bool[],bool[])" - | "assertNotEq(bytes,bytes)" - | "assertNotEq(address[],address[])" - | "assertNotEq(int256,int256,string)" - | "assertNotEq(uint256[],uint256[])" - | "assertNotEq(bool[],bool[],string)" - | "assertNotEq(string,string)" - | "assertNotEq(address[],address[],string)" - | "assertNotEq(string,string,string)" - | "assertNotEq(address,address,string)" - | "assertNotEq(bytes32,bytes32)" - | "assertNotEq(bytes,bytes,string)" - | "assertNotEq(uint256,uint256,string)" - | "assertNotEq(uint256[],uint256[],string)" - | "assertNotEq(address,address)" - | "assertNotEq(bytes32,bytes32,string)" - | "assertNotEq(string[],string[],string)" - | "assertNotEq(uint256,uint256)" - | "assertNotEq(bytes32[],bytes32[],string)" - | "assertNotEq(string[],string[])" - | "assertNotEq(int256[],int256[],string)" - | "assertNotEq(bytes[],bytes[])" - | "assertNotEq(int256,int256)" - | "assertNotEqDecimal(int256,int256,uint256)" - | "assertNotEqDecimal(int256,int256,uint256,string)" - | "assertNotEqDecimal(uint256,uint256,uint256)" - | "assertNotEqDecimal(uint256,uint256,uint256,string)" - | "assertTrue(bool)" - | "assertTrue(bool,string)" - | "assume" - | "assumeNoRevert()" - | "assumeNoRevert((address,bool,bytes)[])" - | "assumeNoRevert((address,bool,bytes))" - | "attachBlob" - | "attachDelegation" - | "blobBaseFee" - | "blobhashes" - | "breakpoint(string)" - | "breakpoint(string,bool)" - | "broadcast()" - | "broadcast(address)" - | "broadcast(uint256)" - | "broadcastRawTransaction" - | "chainId" - | "clearMockedCalls" - | "cloneAccount" - | "closeFile" - | "coinbase" - | "computeCreate2Address(bytes32,bytes32)" - | "computeCreate2Address(bytes32,bytes32,address)" - | "computeCreateAddress" - | "contains" - | "cool" - | "coolSlot" - | "copyFile" - | "copyStorage" - | "createDir" - | "createFork(string)" - | "createFork(string,uint256)" - | "createFork(string,bytes32)" - | "createSelectFork(string,uint256)" - | "createSelectFork(string,bytes32)" - | "createSelectFork(string)" - | "createWallet(string)" - | "createWallet(uint256)" - | "createWallet(uint256,string)" - | "deal" - | "deleteSnapshot" - | "deleteSnapshots" - | "deleteStateSnapshot" - | "deleteStateSnapshots" - | "deployCode(string,uint256,bytes32)" - | "deployCode(string,bytes,bytes32)" - | "deployCode(string,uint256)" - | "deployCode(string,bytes32)" - | "deployCode(string,bytes)" - | "deployCode(string,bytes,uint256,bytes32)" - | "deployCode(string)" - | "deployCode(string,bytes,uint256)" - | "deriveKey(string,string,uint32,string)" - | "deriveKey(string,uint32,string)" - | "deriveKey(string,uint32)" - | "deriveKey(string,string,uint32)" - | "difficulty" - | "dumpState" - | "ensNamehash" - | "envAddress(string)" - | "envAddress(string,string)" - | "envBool(string)" - | "envBool(string,string)" - | "envBytes(string)" - | "envBytes(string,string)" - | "envBytes32(string,string)" - | "envBytes32(string)" - | "envExists" - | "envInt(string,string)" - | "envInt(string)" - | "envOr(string,string,bytes32[])" - | "envOr(string,string,int256[])" - | "envOr(string,bool)" - | "envOr(string,address)" - | "envOr(string,uint256)" - | "envOr(string,string,bytes[])" - | "envOr(string,string,uint256[])" - | "envOr(string,string,string[])" - | "envOr(string,bytes)" - | "envOr(string,bytes32)" - | "envOr(string,int256)" - | "envOr(string,string,address[])" - | "envOr(string,string)" - | "envOr(string,string,bool[])" - | "envString(string,string)" - | "envString(string)" - | "envUint(string)" - | "envUint(string,string)" - | "etch" - | "eth_getLogs" - | "exists" - | "expectCall(address,uint256,uint64,bytes)" - | "expectCall(address,uint256,uint64,bytes,uint64)" - | "expectCall(address,uint256,bytes,uint64)" - | "expectCall(address,bytes)" - | "expectCall(address,bytes,uint64)" - | "expectCall(address,uint256,bytes)" - | "expectCallMinGas(address,uint256,uint64,bytes)" - | "expectCallMinGas(address,uint256,uint64,bytes,uint64)" - | "expectCreate" - | "expectCreate2" - | "expectEmit()" - | "expectEmit(bool,bool,bool,bool)" - | "expectEmit(uint64)" - | "expectEmit(bool,bool,bool,bool,uint64)" - | "expectEmit(bool,bool,bool,bool,address)" - | "expectEmit(address)" - | "expectEmit(address,uint64)" - | "expectEmit(bool,bool,bool,bool,address,uint64)" - | "expectEmitAnonymous()" - | "expectEmitAnonymous(address)" - | "expectEmitAnonymous(bool,bool,bool,bool,bool,address)" - | "expectEmitAnonymous(bool,bool,bool,bool,bool)" - | "expectPartialRevert(bytes4)" - | "expectPartialRevert(bytes4,address)" - | "expectRevert(address,uint64)" - | "expectRevert(bytes4,address)" - | "expectRevert(bytes,uint64)" - | "expectRevert(uint64)" - | "expectRevert(bytes,address)" - | "expectRevert(bytes4,address,uint64)" - | "expectRevert(bytes4)" - | "expectRevert(bytes,address,uint64)" - | "expectRevert(address)" - | "expectRevert(bytes4,uint64)" - | "expectRevert(bytes)" - | "expectRevert()" - | "expectSafeMemory" - | "expectSafeMemoryCall" - | "fee" - | "ffi" - | "foundryVersionAtLeast" - | "foundryVersionCmp" - | "fsMetadata" - | "getArtifactPathByCode" - | "getArtifactPathByDeployedCode" - | "getBlobBaseFee" - | "getBlobhashes" - | "getBlockNumber" - | "getBlockTimestamp" - | "getBroadcast" - | "getBroadcasts(string,uint64)" - | "getBroadcasts(string,uint64,uint8)" - | "getChain(string)" - | "getChain(uint256)" - | "getCode" - | "getDeployedCode" - | "getDeployment(string,uint64)" - | "getDeployment(string)" - | "getDeployments" - | "getFoundryVersion" - | "getLabel" - | "getMappingKeyAndParentOf" - | "getMappingLength" - | "getMappingSlotAt" - | "getNonce(address)" - | "getNonce((address,uint256,uint256,uint256))" - | "getRecordedLogs" - | "getStateDiff" - | "getStateDiffJson" - | "getWallets" - | "indexOf" - | "interceptInitcode" - | "isContext" - | "isDir" - | "isFile" - | "isPersistent" - | "keyExists" - | "keyExistsJson" - | "keyExistsToml" - | "label" - | "lastCallGas" - | "load" - | "loadAllocs" - | "makePersistent(address[])" - | "makePersistent(address,address)" - | "makePersistent(address)" - | "makePersistent(address,address,address)" - | "mockCall(address,bytes4,bytes)" - | "mockCall(address,uint256,bytes,bytes)" - | "mockCall(address,bytes,bytes)" - | "mockCall(address,uint256,bytes4,bytes)" - | "mockCallRevert(address,bytes4,bytes)" - | "mockCallRevert(address,uint256,bytes4,bytes)" - | "mockCallRevert(address,uint256,bytes,bytes)" - | "mockCallRevert(address,bytes,bytes)" - | "mockCalls(address,uint256,bytes,bytes[])" - | "mockCalls(address,bytes,bytes[])" - | "mockFunction" - | "noAccessList" - | "parseAddress" - | "parseBool" - | "parseBytes" - | "parseBytes32" - | "parseInt" - | "parseJson(string)" - | "parseJson(string,string)" - | "parseJsonAddress" - | "parseJsonAddressArray" - | "parseJsonBool" - | "parseJsonBoolArray" - | "parseJsonBytes" - | "parseJsonBytes32" - | "parseJsonBytes32Array" - | "parseJsonBytesArray" - | "parseJsonInt" - | "parseJsonIntArray" - | "parseJsonKeys" - | "parseJsonString" - | "parseJsonStringArray" - | "parseJsonType(string,string)" - | "parseJsonType(string,string,string)" - | "parseJsonTypeArray" - | "parseJsonUint" - | "parseJsonUintArray" - | "parseToml(string,string)" - | "parseToml(string)" - | "parseTomlAddress" - | "parseTomlAddressArray" - | "parseTomlBool" - | "parseTomlBoolArray" - | "parseTomlBytes" - | "parseTomlBytes32" - | "parseTomlBytes32Array" - | "parseTomlBytesArray" - | "parseTomlInt" - | "parseTomlIntArray" - | "parseTomlKeys" - | "parseTomlString" - | "parseTomlStringArray" - | "parseTomlType(string,string)" - | "parseTomlType(string,string,string)" - | "parseTomlTypeArray" - | "parseTomlUint" - | "parseTomlUintArray" - | "parseUint" - | "pauseGasMetering" - | "pauseTracing" - | "prank(address,address)" - | "prank(address,address,bool)" - | "prank(address,bool)" - | "prank(address)" - | "prevrandao(bytes32)" - | "prevrandao(uint256)" - | "projectRoot" - | "prompt" - | "promptAddress" - | "promptSecret" - | "promptSecretUint" - | "promptUint" - | "publicKeyP256" - | "randomAddress" - | "randomBool" - | "randomBytes" - | "randomBytes4" - | "randomBytes8" - | "randomInt()" - | "randomInt(uint256)" - | "randomUint()" - | "randomUint(uint256)" - | "randomUint(uint256,uint256)" - | "readCallers" - | "readDir(string,uint64)" - | "readDir(string,uint64,bool)" - | "readDir(string)" - | "readFile" - | "readFileBinary" - | "readLine" - | "readLink" - | "record" - | "recordLogs" - | "rememberKey" - | "rememberKeys(string,string,uint32)" - | "rememberKeys(string,string,string,uint32)" - | "removeDir" - | "removeFile" - | "replace" - | "resetGasMetering" - | "resetNonce" - | "resumeGasMetering" - | "resumeTracing" - | "revertTo" - | "revertToAndDelete" - | "revertToState" - | "revertToStateAndDelete" - | "revokePersistent(address[])" - | "revokePersistent(address)" - | "roll" - | "rollFork(bytes32)" - | "rollFork(uint256,uint256)" - | "rollFork(uint256)" - | "rollFork(uint256,bytes32)" - | "rpc(string,string,string)" - | "rpc(string,string)" - | "rpcUrl" - | "rpcUrlStructs" - | "rpcUrls" - | "selectFork" - | "serializeAddress(string,string,address[])" - | "serializeAddress(string,string,address)" - | "serializeBool(string,string,bool[])" - | "serializeBool(string,string,bool)" - | "serializeBytes(string,string,bytes[])" - | "serializeBytes(string,string,bytes)" - | "serializeBytes32(string,string,bytes32[])" - | "serializeBytes32(string,string,bytes32)" - | "serializeInt(string,string,int256)" - | "serializeInt(string,string,int256[])" - | "serializeJson" - | "serializeJsonType(string,bytes)" - | "serializeJsonType(string,string,string,bytes)" - | "serializeString(string,string,string[])" - | "serializeString(string,string,string)" - | "serializeUint(string,string,uint256)" - | "serializeUint(string,string,uint256[])" - | "serializeUintToHex" - | "setArbitraryStorage(address,bool)" - | "setArbitraryStorage(address)" - | "setBlockhash" - | "setEnv" - | "setNonce" - | "setNonceUnsafe" - | "shuffle" - | "sign(bytes32)" - | "sign(address,bytes32)" - | "sign((address,uint256,uint256,uint256),bytes32)" - | "sign(uint256,bytes32)" - | "signAndAttachDelegation(address,uint256)" - | "signAndAttachDelegation(address,uint256,uint64)" - | "signCompact((address,uint256,uint256,uint256),bytes32)" - | "signCompact(address,bytes32)" - | "signCompact(bytes32)" - | "signCompact(uint256,bytes32)" - | "signDelegation(address,uint256)" - | "signDelegation(address,uint256,uint64)" - | "signP256" - | "skip(bool,string)" - | "skip(bool)" - | "sleep" - | "snapshot" - | "snapshotGasLastCall(string,string)" - | "snapshotGasLastCall(string)" - | "snapshotState" - | "snapshotValue(string,uint256)" - | "snapshotValue(string,string,uint256)" - | "sort" - | "split" - | "startBroadcast()" - | "startBroadcast(address)" - | "startBroadcast(uint256)" - | "startDebugTraceRecording" - | "startMappingRecording" - | "startPrank(address)" - | "startPrank(address,bool)" - | "startPrank(address,address)" - | "startPrank(address,address,bool)" - | "startSnapshotGas(string)" - | "startSnapshotGas(string,string)" - | "startStateDiffRecording" - | "stopAndReturnDebugTraceRecording" - | "stopAndReturnStateDiff" - | "stopBroadcast" - | "stopExpectSafeMemory" - | "stopMappingRecording" - | "stopPrank" - | "stopSnapshotGas(string,string)" - | "stopSnapshotGas(string)" - | "stopSnapshotGas()" - | "store" - | "toBase64(string)" - | "toBase64(bytes)" - | "toBase64URL(string)" - | "toBase64URL(bytes)" - | "toLowercase" - | "toString(address)" - | "toString(uint256)" - | "toString(bytes)" - | "toString(bool)" - | "toString(int256)" - | "toString(bytes32)" - | "toUppercase" - | "transact(uint256,bytes32)" - | "transact(bytes32)" - | "trim" - | "tryFfi" - | "txGasPrice" - | "unixTime" - | "warmSlot" - | "warp" - | "writeFile" - | "writeFileBinary" - | "writeJson(string,string,string)" - | "writeJson(string,string)" - | "writeLine" - | "writeToml(string,string,string)" - | "writeToml(string,string)" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "accessList", - values: [VmSafe.AccessListItemStruct[]] - ): string; - encodeFunctionData( - functionFragment: "accesses", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "activeFork", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "addr", values: [BigNumberish]): string; - encodeFunctionData( - functionFragment: "allowCheatcodes", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqAbs(uint256,uint256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqAbs(int256,int256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqAbs(int256,int256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqAbs(uint256,uint256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqRel(uint256,uint256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqRel(uint256,uint256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqRel(int256,int256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqRel(int256,int256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqRelDecimal(int256,int256,uint256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bytes32[],bytes32[])", - values: [BytesLike[], BytesLike[]] - ): string; - encodeFunctionData( - functionFragment: "assertEq(int256[],int256[],string)", - values: [BigNumberish[], BigNumberish[], string] - ): string; - encodeFunctionData( - functionFragment: "assertEq(address,address,string)", - values: [AddressLike, AddressLike, string] - ): string; - encodeFunctionData( - functionFragment: "assertEq(string,string,string)", - values: [string, string, string] - ): string; - encodeFunctionData( - functionFragment: "assertEq(address[],address[])", - values: [AddressLike[], AddressLike[]] - ): string; - encodeFunctionData( - functionFragment: "assertEq(address[],address[],string)", - values: [AddressLike[], AddressLike[], string] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bool,bool,string)", - values: [boolean, boolean, string] - ): string; - encodeFunctionData( - functionFragment: "assertEq(address,address)", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "assertEq(uint256[],uint256[],string)", - values: [BigNumberish[], BigNumberish[], string] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bool[],bool[])", - values: [boolean[], boolean[]] - ): string; - encodeFunctionData( - functionFragment: "assertEq(int256[],int256[])", - values: [BigNumberish[], BigNumberish[]] - ): string; - encodeFunctionData( - functionFragment: "assertEq(int256,int256,string)", - values: [BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bytes32,bytes32)", - values: [BytesLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "assertEq(uint256,uint256,string)", - values: [BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertEq(uint256[],uint256[])", - values: [BigNumberish[], BigNumberish[]] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bytes,bytes)", - values: [BytesLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "assertEq(uint256,uint256)", - values: [BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bytes32,bytes32,string)", - values: [BytesLike, BytesLike, string] - ): string; - encodeFunctionData( - functionFragment: "assertEq(string[],string[])", - values: [string[], string[]] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bytes32[],bytes32[],string)", - values: [BytesLike[], BytesLike[], string] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bytes,bytes,string)", - values: [BytesLike, BytesLike, string] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bool[],bool[],string)", - values: [boolean[], boolean[], string] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bytes[],bytes[])", - values: [BytesLike[], BytesLike[]] - ): string; - encodeFunctionData( - functionFragment: "assertEq(string[],string[],string)", - values: [string[], string[], string] - ): string; - encodeFunctionData( - functionFragment: "assertEq(string,string)", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bytes[],bytes[],string)", - values: [BytesLike[], BytesLike[], string] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bool,bool)", - values: [boolean, boolean] - ): string; - encodeFunctionData( - functionFragment: "assertEq(int256,int256)", - values: [BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertEqDecimal(uint256,uint256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertEqDecimal(int256,int256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertEqDecimal(int256,int256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertEqDecimal(uint256,uint256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertFalse(bool,string)", - values: [boolean, string] - ): string; - encodeFunctionData( - functionFragment: "assertFalse(bool)", - values: [boolean] - ): string; - encodeFunctionData( - functionFragment: "assertGe(int256,int256)", - values: [BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertGe(int256,int256,string)", - values: [BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertGe(uint256,uint256)", - values: [BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertGe(uint256,uint256,string)", - values: [BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertGeDecimal(uint256,uint256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertGeDecimal(int256,int256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertGeDecimal(uint256,uint256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertGeDecimal(int256,int256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertGt(int256,int256)", - values: [BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertGt(uint256,uint256,string)", - values: [BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertGt(uint256,uint256)", - values: [BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertGt(int256,int256,string)", - values: [BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertGtDecimal(int256,int256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertGtDecimal(uint256,uint256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertGtDecimal(int256,int256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertGtDecimal(uint256,uint256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertLe(int256,int256,string)", - values: [BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertLe(uint256,uint256)", - values: [BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertLe(int256,int256)", - values: [BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertLe(uint256,uint256,string)", - values: [BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertLeDecimal(int256,int256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertLeDecimal(uint256,uint256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertLeDecimal(int256,int256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertLeDecimal(uint256,uint256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertLt(int256,int256)", - values: [BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertLt(uint256,uint256,string)", - values: [BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertLt(int256,int256,string)", - values: [BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertLt(uint256,uint256)", - values: [BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertLtDecimal(uint256,uint256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertLtDecimal(int256,int256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertLtDecimal(uint256,uint256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertLtDecimal(int256,int256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bytes32[],bytes32[])", - values: [BytesLike[], BytesLike[]] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(int256[],int256[])", - values: [BigNumberish[], BigNumberish[]] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bool,bool,string)", - values: [boolean, boolean, string] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bytes[],bytes[],string)", - values: [BytesLike[], BytesLike[], string] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bool,bool)", - values: [boolean, boolean] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bool[],bool[])", - values: [boolean[], boolean[]] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bytes,bytes)", - values: [BytesLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(address[],address[])", - values: [AddressLike[], AddressLike[]] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(int256,int256,string)", - values: [BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(uint256[],uint256[])", - values: [BigNumberish[], BigNumberish[]] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bool[],bool[],string)", - values: [boolean[], boolean[], string] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(string,string)", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(address[],address[],string)", - values: [AddressLike[], AddressLike[], string] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(string,string,string)", - values: [string, string, string] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(address,address,string)", - values: [AddressLike, AddressLike, string] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bytes32,bytes32)", - values: [BytesLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bytes,bytes,string)", - values: [BytesLike, BytesLike, string] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(uint256,uint256,string)", - values: [BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(uint256[],uint256[],string)", - values: [BigNumberish[], BigNumberish[], string] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(address,address)", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bytes32,bytes32,string)", - values: [BytesLike, BytesLike, string] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(string[],string[],string)", - values: [string[], string[], string] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(uint256,uint256)", - values: [BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bytes32[],bytes32[],string)", - values: [BytesLike[], BytesLike[], string] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(string[],string[])", - values: [string[], string[]] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(int256[],int256[],string)", - values: [BigNumberish[], BigNumberish[], string] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bytes[],bytes[])", - values: [BytesLike[], BytesLike[]] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(int256,int256)", - values: [BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertNotEqDecimal(int256,int256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertNotEqDecimal(int256,int256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertNotEqDecimal(uint256,uint256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertNotEqDecimal(uint256,uint256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertTrue(bool)", - values: [boolean] - ): string; - encodeFunctionData( - functionFragment: "assertTrue(bool,string)", - values: [boolean, string] - ): string; - encodeFunctionData(functionFragment: "assume", values: [boolean]): string; - encodeFunctionData( - functionFragment: "assumeNoRevert()", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "assumeNoRevert((address,bool,bytes)[])", - values: [VmSafe.PotentialRevertStruct[]] - ): string; - encodeFunctionData( - functionFragment: "assumeNoRevert((address,bool,bytes))", - values: [VmSafe.PotentialRevertStruct] - ): string; - encodeFunctionData( - functionFragment: "attachBlob", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "attachDelegation", - values: [VmSafe.SignedDelegationStruct] - ): string; - encodeFunctionData( - functionFragment: "blobBaseFee", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "blobhashes", - values: [BytesLike[]] - ): string; - encodeFunctionData( - functionFragment: "breakpoint(string)", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "breakpoint(string,bool)", - values: [string, boolean] - ): string; - encodeFunctionData( - functionFragment: "broadcast()", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "broadcast(address)", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "broadcast(uint256)", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "broadcastRawTransaction", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "chainId", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "clearMockedCalls", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "cloneAccount", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData(functionFragment: "closeFile", values: [string]): string; - encodeFunctionData( - functionFragment: "coinbase", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "computeCreate2Address(bytes32,bytes32)", - values: [BytesLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "computeCreate2Address(bytes32,bytes32,address)", - values: [BytesLike, BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "computeCreateAddress", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "contains", - values: [string, string] - ): string; - encodeFunctionData(functionFragment: "cool", values: [AddressLike]): string; - encodeFunctionData( - functionFragment: "coolSlot", - values: [AddressLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "copyFile", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "copyStorage", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "createDir", - values: [string, boolean] - ): string; - encodeFunctionData( - functionFragment: "createFork(string)", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "createFork(string,uint256)", - values: [string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "createFork(string,bytes32)", - values: [string, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "createSelectFork(string,uint256)", - values: [string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "createSelectFork(string,bytes32)", - values: [string, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "createSelectFork(string)", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "createWallet(string)", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "createWallet(uint256)", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "createWallet(uint256,string)", - values: [BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "deal", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "deleteSnapshot", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "deleteSnapshots", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "deleteStateSnapshot", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "deleteStateSnapshots", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "deployCode(string,uint256,bytes32)", - values: [string, BigNumberish, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "deployCode(string,bytes,bytes32)", - values: [string, BytesLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "deployCode(string,uint256)", - values: [string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "deployCode(string,bytes32)", - values: [string, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "deployCode(string,bytes)", - values: [string, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "deployCode(string,bytes,uint256,bytes32)", - values: [string, BytesLike, BigNumberish, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "deployCode(string)", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "deployCode(string,bytes,uint256)", - values: [string, BytesLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "deriveKey(string,string,uint32,string)", - values: [string, string, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "deriveKey(string,uint32,string)", - values: [string, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "deriveKey(string,uint32)", - values: [string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "deriveKey(string,string,uint32)", - values: [string, string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "difficulty", - values: [BigNumberish] - ): string; - encodeFunctionData(functionFragment: "dumpState", values: [string]): string; - encodeFunctionData(functionFragment: "ensNamehash", values: [string]): string; - encodeFunctionData( - functionFragment: "envAddress(string)", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "envAddress(string,string)", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "envBool(string)", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "envBool(string,string)", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "envBytes(string)", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "envBytes(string,string)", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "envBytes32(string,string)", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "envBytes32(string)", - values: [string] - ): string; - encodeFunctionData(functionFragment: "envExists", values: [string]): string; - encodeFunctionData( - functionFragment: "envInt(string,string)", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "envInt(string)", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,string,bytes32[])", - values: [string, string, BytesLike[]] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,string,int256[])", - values: [string, string, BigNumberish[]] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,bool)", - values: [string, boolean] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,address)", - values: [string, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,uint256)", - values: [string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,string,bytes[])", - values: [string, string, BytesLike[]] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,string,uint256[])", - values: [string, string, BigNumberish[]] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,string,string[])", - values: [string, string, string[]] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,bytes)", - values: [string, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,bytes32)", - values: [string, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,int256)", - values: [string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,string,address[])", - values: [string, string, AddressLike[]] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,string)", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,string,bool[])", - values: [string, string, boolean[]] - ): string; - encodeFunctionData( - functionFragment: "envString(string,string)", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "envString(string)", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "envUint(string)", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "envUint(string,string)", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "etch", - values: [AddressLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "eth_getLogs", - values: [BigNumberish, BigNumberish, AddressLike, BytesLike[]] - ): string; - encodeFunctionData(functionFragment: "exists", values: [string]): string; - encodeFunctionData( - functionFragment: "expectCall(address,uint256,uint64,bytes)", - values: [AddressLike, BigNumberish, BigNumberish, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "expectCall(address,uint256,uint64,bytes,uint64)", - values: [AddressLike, BigNumberish, BigNumberish, BytesLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "expectCall(address,uint256,bytes,uint64)", - values: [AddressLike, BigNumberish, BytesLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "expectCall(address,bytes)", - values: [AddressLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "expectCall(address,bytes,uint64)", - values: [AddressLike, BytesLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "expectCall(address,uint256,bytes)", - values: [AddressLike, BigNumberish, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "expectCallMinGas(address,uint256,uint64,bytes)", - values: [AddressLike, BigNumberish, BigNumberish, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "expectCallMinGas(address,uint256,uint64,bytes,uint64)", - values: [AddressLike, BigNumberish, BigNumberish, BytesLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "expectCreate", - values: [BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "expectCreate2", - values: [BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "expectEmit()", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "expectEmit(bool,bool,bool,bool)", - values: [boolean, boolean, boolean, boolean] - ): string; - encodeFunctionData( - functionFragment: "expectEmit(uint64)", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "expectEmit(bool,bool,bool,bool,uint64)", - values: [boolean, boolean, boolean, boolean, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "expectEmit(bool,bool,bool,bool,address)", - values: [boolean, boolean, boolean, boolean, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "expectEmit(address)", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "expectEmit(address,uint64)", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "expectEmit(bool,bool,bool,bool,address,uint64)", - values: [boolean, boolean, boolean, boolean, AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "expectEmitAnonymous()", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "expectEmitAnonymous(address)", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "expectEmitAnonymous(bool,bool,bool,bool,bool,address)", - values: [boolean, boolean, boolean, boolean, boolean, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "expectEmitAnonymous(bool,bool,bool,bool,bool)", - values: [boolean, boolean, boolean, boolean, boolean] - ): string; - encodeFunctionData( - functionFragment: "expectPartialRevert(bytes4)", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "expectPartialRevert(bytes4,address)", - values: [BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "expectRevert(address,uint64)", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "expectRevert(bytes4,address)", - values: [BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "expectRevert(bytes,uint64)", - values: [BytesLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "expectRevert(uint64)", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "expectRevert(bytes,address)", - values: [BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "expectRevert(bytes4,address,uint64)", - values: [BytesLike, AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "expectRevert(bytes4)", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "expectRevert(bytes,address,uint64)", - values: [BytesLike, AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "expectRevert(address)", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "expectRevert(bytes4,uint64)", - values: [BytesLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "expectRevert(bytes)", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "expectRevert()", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "expectSafeMemory", - values: [BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "expectSafeMemoryCall", - values: [BigNumberish, BigNumberish] - ): string; - encodeFunctionData(functionFragment: "fee", values: [BigNumberish]): string; - encodeFunctionData(functionFragment: "ffi", values: [string[]]): string; - encodeFunctionData( - functionFragment: "foundryVersionAtLeast", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "foundryVersionCmp", - values: [string] - ): string; - encodeFunctionData(functionFragment: "fsMetadata", values: [string]): string; - encodeFunctionData( - functionFragment: "getArtifactPathByCode", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "getArtifactPathByDeployedCode", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "getBlobBaseFee", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getBlobhashes", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getBlockNumber", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getBlockTimestamp", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getBroadcast", - values: [string, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "getBroadcasts(string,uint64)", - values: [string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "getBroadcasts(string,uint64,uint8)", - values: [string, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "getChain(string)", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "getChain(uint256)", - values: [BigNumberish] - ): string; - encodeFunctionData(functionFragment: "getCode", values: [string]): string; - encodeFunctionData( - functionFragment: "getDeployedCode", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "getDeployment(string,uint64)", - values: [string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "getDeployment(string)", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "getDeployments", - values: [string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "getFoundryVersion", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getLabel", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "getMappingKeyAndParentOf", - values: [AddressLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "getMappingLength", - values: [AddressLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "getMappingSlotAt", - values: [AddressLike, BytesLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "getNonce(address)", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "getNonce((address,uint256,uint256,uint256))", - values: [VmSafe.WalletStruct] - ): string; - encodeFunctionData( - functionFragment: "getRecordedLogs", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getStateDiff", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getStateDiffJson", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getWallets", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "indexOf", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "interceptInitcode", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "isContext", - values: [BigNumberish] - ): string; - encodeFunctionData(functionFragment: "isDir", values: [string]): string; - encodeFunctionData(functionFragment: "isFile", values: [string]): string; - encodeFunctionData( - functionFragment: "isPersistent", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "keyExists", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "keyExistsJson", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "keyExistsToml", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "label", - values: [AddressLike, string] - ): string; - encodeFunctionData( - functionFragment: "lastCallGas", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "load", - values: [AddressLike, BytesLike] - ): string; - encodeFunctionData(functionFragment: "loadAllocs", values: [string]): string; - encodeFunctionData( - functionFragment: "makePersistent(address[])", - values: [AddressLike[]] - ): string; - encodeFunctionData( - functionFragment: "makePersistent(address,address)", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "makePersistent(address)", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "makePersistent(address,address,address)", - values: [AddressLike, AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "mockCall(address,bytes4,bytes)", - values: [AddressLike, BytesLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "mockCall(address,uint256,bytes,bytes)", - values: [AddressLike, BigNumberish, BytesLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "mockCall(address,bytes,bytes)", - values: [AddressLike, BytesLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "mockCall(address,uint256,bytes4,bytes)", - values: [AddressLike, BigNumberish, BytesLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "mockCallRevert(address,bytes4,bytes)", - values: [AddressLike, BytesLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "mockCallRevert(address,uint256,bytes4,bytes)", - values: [AddressLike, BigNumberish, BytesLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "mockCallRevert(address,uint256,bytes,bytes)", - values: [AddressLike, BigNumberish, BytesLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "mockCallRevert(address,bytes,bytes)", - values: [AddressLike, BytesLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "mockCalls(address,uint256,bytes,bytes[])", - values: [AddressLike, BigNumberish, BytesLike, BytesLike[]] - ): string; - encodeFunctionData( - functionFragment: "mockCalls(address,bytes,bytes[])", - values: [AddressLike, BytesLike, BytesLike[]] - ): string; - encodeFunctionData( - functionFragment: "mockFunction", - values: [AddressLike, AddressLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "noAccessList", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "parseAddress", - values: [string] - ): string; - encodeFunctionData(functionFragment: "parseBool", values: [string]): string; - encodeFunctionData(functionFragment: "parseBytes", values: [string]): string; - encodeFunctionData( - functionFragment: "parseBytes32", - values: [string] - ): string; - encodeFunctionData(functionFragment: "parseInt", values: [string]): string; - encodeFunctionData( - functionFragment: "parseJson(string)", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "parseJson(string,string)", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseJsonAddress", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseJsonAddressArray", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseJsonBool", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseJsonBoolArray", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseJsonBytes", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseJsonBytes32", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseJsonBytes32Array", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseJsonBytesArray", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseJsonInt", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseJsonIntArray", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseJsonKeys", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseJsonString", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseJsonStringArray", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseJsonType(string,string)", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseJsonType(string,string,string)", - values: [string, string, string] - ): string; - encodeFunctionData( - functionFragment: "parseJsonTypeArray", - values: [string, string, string] - ): string; - encodeFunctionData( - functionFragment: "parseJsonUint", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseJsonUintArray", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseToml(string,string)", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseToml(string)", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "parseTomlAddress", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseTomlAddressArray", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseTomlBool", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseTomlBoolArray", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseTomlBytes", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseTomlBytes32", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseTomlBytes32Array", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseTomlBytesArray", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseTomlInt", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseTomlIntArray", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseTomlKeys", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseTomlString", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseTomlStringArray", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseTomlType(string,string)", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseTomlType(string,string,string)", - values: [string, string, string] - ): string; - encodeFunctionData( - functionFragment: "parseTomlTypeArray", - values: [string, string, string] - ): string; - encodeFunctionData( - functionFragment: "parseTomlUint", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseTomlUintArray", - values: [string, string] - ): string; - encodeFunctionData(functionFragment: "parseUint", values: [string]): string; - encodeFunctionData( - functionFragment: "pauseGasMetering", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "pauseTracing", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "prank(address,address)", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "prank(address,address,bool)", - values: [AddressLike, AddressLike, boolean] - ): string; - encodeFunctionData( - functionFragment: "prank(address,bool)", - values: [AddressLike, boolean] - ): string; - encodeFunctionData( - functionFragment: "prank(address)", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "prevrandao(bytes32)", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "prevrandao(uint256)", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "projectRoot", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "prompt", values: [string]): string; - encodeFunctionData( - functionFragment: "promptAddress", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "promptSecret", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "promptSecretUint", - values: [string] - ): string; - encodeFunctionData(functionFragment: "promptUint", values: [string]): string; - encodeFunctionData( - functionFragment: "publicKeyP256", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "randomAddress", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "randomBool", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "randomBytes", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "randomBytes4", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "randomBytes8", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "randomInt()", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "randomInt(uint256)", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "randomUint()", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "randomUint(uint256)", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "randomUint(uint256,uint256)", - values: [BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "readCallers", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "readDir(string,uint64)", - values: [string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "readDir(string,uint64,bool)", - values: [string, BigNumberish, boolean] - ): string; - encodeFunctionData( - functionFragment: "readDir(string)", - values: [string] - ): string; - encodeFunctionData(functionFragment: "readFile", values: [string]): string; - encodeFunctionData( - functionFragment: "readFileBinary", - values: [string] - ): string; - encodeFunctionData(functionFragment: "readLine", values: [string]): string; - encodeFunctionData(functionFragment: "readLink", values: [string]): string; - encodeFunctionData(functionFragment: "record", values?: undefined): string; - encodeFunctionData( - functionFragment: "recordLogs", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "rememberKey", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "rememberKeys(string,string,uint32)", - values: [string, string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "rememberKeys(string,string,string,uint32)", - values: [string, string, string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "removeDir", - values: [string, boolean] - ): string; - encodeFunctionData(functionFragment: "removeFile", values: [string]): string; - encodeFunctionData( - functionFragment: "replace", - values: [string, string, string] - ): string; - encodeFunctionData( - functionFragment: "resetGasMetering", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "resetNonce", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "resumeGasMetering", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "resumeTracing", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "revertTo", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "revertToAndDelete", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "revertToState", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "revertToStateAndDelete", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "revokePersistent(address[])", - values: [AddressLike[]] - ): string; - encodeFunctionData( - functionFragment: "revokePersistent(address)", - values: [AddressLike] - ): string; - encodeFunctionData(functionFragment: "roll", values: [BigNumberish]): string; - encodeFunctionData( - functionFragment: "rollFork(bytes32)", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "rollFork(uint256,uint256)", - values: [BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "rollFork(uint256)", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "rollFork(uint256,bytes32)", - values: [BigNumberish, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "rpc(string,string,string)", - values: [string, string, string] - ): string; - encodeFunctionData( - functionFragment: "rpc(string,string)", - values: [string, string] - ): string; - encodeFunctionData(functionFragment: "rpcUrl", values: [string]): string; - encodeFunctionData( - functionFragment: "rpcUrlStructs", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "rpcUrls", values?: undefined): string; - encodeFunctionData( - functionFragment: "selectFork", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "serializeAddress(string,string,address[])", - values: [string, string, AddressLike[]] - ): string; - encodeFunctionData( - functionFragment: "serializeAddress(string,string,address)", - values: [string, string, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "serializeBool(string,string,bool[])", - values: [string, string, boolean[]] - ): string; - encodeFunctionData( - functionFragment: "serializeBool(string,string,bool)", - values: [string, string, boolean] - ): string; - encodeFunctionData( - functionFragment: "serializeBytes(string,string,bytes[])", - values: [string, string, BytesLike[]] - ): string; - encodeFunctionData( - functionFragment: "serializeBytes(string,string,bytes)", - values: [string, string, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "serializeBytes32(string,string,bytes32[])", - values: [string, string, BytesLike[]] - ): string; - encodeFunctionData( - functionFragment: "serializeBytes32(string,string,bytes32)", - values: [string, string, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "serializeInt(string,string,int256)", - values: [string, string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "serializeInt(string,string,int256[])", - values: [string, string, BigNumberish[]] - ): string; - encodeFunctionData( - functionFragment: "serializeJson", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "serializeJsonType(string,bytes)", - values: [string, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "serializeJsonType(string,string,string,bytes)", - values: [string, string, string, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "serializeString(string,string,string[])", - values: [string, string, string[]] - ): string; - encodeFunctionData( - functionFragment: "serializeString(string,string,string)", - values: [string, string, string] - ): string; - encodeFunctionData( - functionFragment: "serializeUint(string,string,uint256)", - values: [string, string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "serializeUint(string,string,uint256[])", - values: [string, string, BigNumberish[]] - ): string; - encodeFunctionData( - functionFragment: "serializeUintToHex", - values: [string, string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "setArbitraryStorage(address,bool)", - values: [AddressLike, boolean] - ): string; - encodeFunctionData( - functionFragment: "setArbitraryStorage(address)", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "setBlockhash", - values: [BigNumberish, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "setEnv", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "setNonce", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "setNonceUnsafe", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "shuffle", - values: [BigNumberish[]] - ): string; - encodeFunctionData( - functionFragment: "sign(bytes32)", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "sign(address,bytes32)", - values: [AddressLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "sign((address,uint256,uint256,uint256),bytes32)", - values: [VmSafe.WalletStruct, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "sign(uint256,bytes32)", - values: [BigNumberish, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "signAndAttachDelegation(address,uint256)", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "signAndAttachDelegation(address,uint256,uint64)", - values: [AddressLike, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "signCompact((address,uint256,uint256,uint256),bytes32)", - values: [VmSafe.WalletStruct, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "signCompact(address,bytes32)", - values: [AddressLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "signCompact(bytes32)", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "signCompact(uint256,bytes32)", - values: [BigNumberish, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "signDelegation(address,uint256)", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "signDelegation(address,uint256,uint64)", - values: [AddressLike, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "signP256", - values: [BigNumberish, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "skip(bool,string)", - values: [boolean, string] - ): string; - encodeFunctionData(functionFragment: "skip(bool)", values: [boolean]): string; - encodeFunctionData(functionFragment: "sleep", values: [BigNumberish]): string; - encodeFunctionData(functionFragment: "snapshot", values?: undefined): string; - encodeFunctionData( - functionFragment: "snapshotGasLastCall(string,string)", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "snapshotGasLastCall(string)", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "snapshotState", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "snapshotValue(string,uint256)", - values: [string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "snapshotValue(string,string,uint256)", - values: [string, string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "sort", - values: [BigNumberish[]] - ): string; - encodeFunctionData( - functionFragment: "split", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "startBroadcast()", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "startBroadcast(address)", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "startBroadcast(uint256)", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "startDebugTraceRecording", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "startMappingRecording", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "startPrank(address)", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "startPrank(address,bool)", - values: [AddressLike, boolean] - ): string; - encodeFunctionData( - functionFragment: "startPrank(address,address)", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "startPrank(address,address,bool)", - values: [AddressLike, AddressLike, boolean] - ): string; - encodeFunctionData( - functionFragment: "startSnapshotGas(string)", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "startSnapshotGas(string,string)", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "startStateDiffRecording", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "stopAndReturnDebugTraceRecording", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "stopAndReturnStateDiff", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "stopBroadcast", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "stopExpectSafeMemory", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "stopMappingRecording", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "stopPrank", values?: undefined): string; - encodeFunctionData( - functionFragment: "stopSnapshotGas(string,string)", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "stopSnapshotGas(string)", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "stopSnapshotGas()", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "store", - values: [AddressLike, BytesLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "toBase64(string)", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "toBase64(bytes)", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "toBase64URL(string)", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "toBase64URL(bytes)", - values: [BytesLike] - ): string; - encodeFunctionData(functionFragment: "toLowercase", values: [string]): string; - encodeFunctionData( - functionFragment: "toString(address)", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "toString(uint256)", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "toString(bytes)", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "toString(bool)", - values: [boolean] - ): string; - encodeFunctionData( - functionFragment: "toString(int256)", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "toString(bytes32)", - values: [BytesLike] - ): string; - encodeFunctionData(functionFragment: "toUppercase", values: [string]): string; - encodeFunctionData( - functionFragment: "transact(uint256,bytes32)", - values: [BigNumberish, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "transact(bytes32)", - values: [BytesLike] - ): string; - encodeFunctionData(functionFragment: "trim", values: [string]): string; - encodeFunctionData(functionFragment: "tryFfi", values: [string[]]): string; - encodeFunctionData( - functionFragment: "txGasPrice", - values: [BigNumberish] - ): string; - encodeFunctionData(functionFragment: "unixTime", values?: undefined): string; - encodeFunctionData( - functionFragment: "warmSlot", - values: [AddressLike, BytesLike] - ): string; - encodeFunctionData(functionFragment: "warp", values: [BigNumberish]): string; - encodeFunctionData( - functionFragment: "writeFile", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "writeFileBinary", - values: [string, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "writeJson(string,string,string)", - values: [string, string, string] - ): string; - encodeFunctionData( - functionFragment: "writeJson(string,string)", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "writeLine", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "writeToml(string,string,string)", - values: [string, string, string] - ): string; - encodeFunctionData( - functionFragment: "writeToml(string,string)", - values: [string, string] - ): string; - - decodeFunctionResult(functionFragment: "accessList", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "accesses", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "activeFork", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "addr", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "allowCheatcodes", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertApproxEqAbs(uint256,uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertApproxEqAbs(int256,int256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertApproxEqAbs(int256,int256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertApproxEqAbs(uint256,uint256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertApproxEqRel(uint256,uint256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertApproxEqRel(uint256,uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertApproxEqRel(int256,int256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertApproxEqRel(int256,int256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertApproxEqRelDecimal(int256,int256,uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(bytes32[],bytes32[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(int256[],int256[],string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(address,address,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(string,string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(address[],address[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(address[],address[],string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(bool,bool,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(address,address)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(uint256[],uint256[],string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(bool[],bool[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(int256[],int256[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(int256,int256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(bytes32,bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(uint256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(uint256[],uint256[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(bytes,bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(bytes32,bytes32,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(string[],string[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(bytes32[],bytes32[],string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(bytes,bytes,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(bool[],bool[],string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(bytes[],bytes[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(string[],string[],string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(bytes[],bytes[],string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(bool,bool)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(int256,int256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEqDecimal(uint256,uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEqDecimal(int256,int256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEqDecimal(int256,int256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEqDecimal(uint256,uint256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertFalse(bool,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertFalse(bool)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertGe(int256,int256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertGe(int256,int256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertGe(uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertGe(uint256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertGeDecimal(uint256,uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertGeDecimal(int256,int256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertGeDecimal(uint256,uint256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertGeDecimal(int256,int256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertGt(int256,int256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertGt(uint256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertGt(uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertGt(int256,int256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertGtDecimal(int256,int256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertGtDecimal(uint256,uint256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertGtDecimal(int256,int256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertGtDecimal(uint256,uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertLe(int256,int256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertLe(uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertLe(int256,int256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertLe(uint256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertLeDecimal(int256,int256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertLeDecimal(uint256,uint256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertLeDecimal(int256,int256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertLeDecimal(uint256,uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertLt(int256,int256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertLt(uint256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertLt(int256,int256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertLt(uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertLtDecimal(uint256,uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertLtDecimal(int256,int256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertLtDecimal(uint256,uint256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertLtDecimal(int256,int256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(bytes32[],bytes32[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(int256[],int256[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(bool,bool,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(bytes[],bytes[],string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(bool,bool)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(bool[],bool[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(bytes,bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(address[],address[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(int256,int256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(uint256[],uint256[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(bool[],bool[],string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(address[],address[],string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(string,string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(address,address,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(bytes32,bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(bytes,bytes,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(uint256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(uint256[],uint256[],string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(address,address)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(bytes32,bytes32,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(string[],string[],string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(bytes32[],bytes32[],string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(string[],string[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(int256[],int256[],string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(bytes[],bytes[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(int256,int256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEqDecimal(int256,int256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEqDecimal(int256,int256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEqDecimal(uint256,uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEqDecimal(uint256,uint256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertTrue(bool)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertTrue(bool,string)", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "assume", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "assumeNoRevert()", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assumeNoRevert((address,bool,bytes)[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assumeNoRevert((address,bool,bytes))", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "attachBlob", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "attachDelegation", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "blobBaseFee", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "blobhashes", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "breakpoint(string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "breakpoint(string,bool)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "broadcast()", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "broadcast(address)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "broadcast(uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "broadcastRawTransaction", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "chainId", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "clearMockedCalls", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "cloneAccount", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "closeFile", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "coinbase", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "computeCreate2Address(bytes32,bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "computeCreate2Address(bytes32,bytes32,address)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "computeCreateAddress", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "contains", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "cool", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "coolSlot", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "copyFile", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "copyStorage", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "createDir", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "createFork(string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "createFork(string,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "createFork(string,bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "createSelectFork(string,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "createSelectFork(string,bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "createSelectFork(string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "createWallet(string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "createWallet(uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "createWallet(uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "deal", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "deleteSnapshot", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "deleteSnapshots", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "deleteStateSnapshot", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "deleteStateSnapshots", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "deployCode(string,uint256,bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "deployCode(string,bytes,bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "deployCode(string,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "deployCode(string,bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "deployCode(string,bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "deployCode(string,bytes,uint256,bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "deployCode(string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "deployCode(string,bytes,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "deriveKey(string,string,uint32,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "deriveKey(string,uint32,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "deriveKey(string,uint32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "deriveKey(string,string,uint32)", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "difficulty", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "dumpState", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "ensNamehash", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envAddress(string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envAddress(string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envBool(string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envBool(string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envBytes(string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envBytes(string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envBytes32(string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envBytes32(string)", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "envExists", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "envInt(string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envInt(string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envOr(string,string,bytes32[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envOr(string,string,int256[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envOr(string,bool)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envOr(string,address)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envOr(string,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envOr(string,string,bytes[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envOr(string,string,uint256[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envOr(string,string,string[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envOr(string,bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envOr(string,bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envOr(string,int256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envOr(string,string,address[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envOr(string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envOr(string,string,bool[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envString(string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envString(string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envUint(string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envUint(string,string)", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "etch", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "eth_getLogs", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "exists", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "expectCall(address,uint256,uint64,bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectCall(address,uint256,uint64,bytes,uint64)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectCall(address,uint256,bytes,uint64)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectCall(address,bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectCall(address,bytes,uint64)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectCall(address,uint256,bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectCallMinGas(address,uint256,uint64,bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectCallMinGas(address,uint256,uint64,bytes,uint64)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectCreate", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectCreate2", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectEmit()", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectEmit(bool,bool,bool,bool)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectEmit(uint64)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectEmit(bool,bool,bool,bool,uint64)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectEmit(bool,bool,bool,bool,address)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectEmit(address)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectEmit(address,uint64)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectEmit(bool,bool,bool,bool,address,uint64)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectEmitAnonymous()", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectEmitAnonymous(address)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectEmitAnonymous(bool,bool,bool,bool,bool,address)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectEmitAnonymous(bool,bool,bool,bool,bool)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectPartialRevert(bytes4)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectPartialRevert(bytes4,address)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectRevert(address,uint64)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectRevert(bytes4,address)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectRevert(bytes,uint64)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectRevert(uint64)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectRevert(bytes,address)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectRevert(bytes4,address,uint64)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectRevert(bytes4)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectRevert(bytes,address,uint64)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectRevert(address)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectRevert(bytes4,uint64)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectRevert(bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectRevert()", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectSafeMemory", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "expectSafeMemoryCall", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "fee", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "ffi", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "foundryVersionAtLeast", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "foundryVersionCmp", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "fsMetadata", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "getArtifactPathByCode", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getArtifactPathByDeployedCode", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getBlobBaseFee", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getBlobhashes", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getBlockNumber", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getBlockTimestamp", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getBroadcast", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getBroadcasts(string,uint64)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getBroadcasts(string,uint64,uint8)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getChain(string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getChain(uint256)", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "getCode", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "getDeployedCode", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getDeployment(string,uint64)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getDeployment(string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getDeployments", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getFoundryVersion", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "getLabel", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "getMappingKeyAndParentOf", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getMappingLength", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getMappingSlotAt", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getNonce(address)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getNonce((address,uint256,uint256,uint256))", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getRecordedLogs", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getStateDiff", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getStateDiffJson", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "getWallets", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "indexOf", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "interceptInitcode", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "isContext", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "isDir", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "isFile", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "isPersistent", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "keyExists", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "keyExistsJson", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "keyExistsToml", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "label", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "lastCallGas", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "load", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "loadAllocs", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "makePersistent(address[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "makePersistent(address,address)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "makePersistent(address)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "makePersistent(address,address,address)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "mockCall(address,bytes4,bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "mockCall(address,uint256,bytes,bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "mockCall(address,bytes,bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "mockCall(address,uint256,bytes4,bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "mockCallRevert(address,bytes4,bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "mockCallRevert(address,uint256,bytes4,bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "mockCallRevert(address,uint256,bytes,bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "mockCallRevert(address,bytes,bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "mockCalls(address,uint256,bytes,bytes[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "mockCalls(address,bytes,bytes[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "mockFunction", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "noAccessList", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseAddress", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "parseBool", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "parseBytes", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "parseBytes32", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "parseInt", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "parseJson(string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJson(string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJsonAddress", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJsonAddressArray", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJsonBool", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJsonBoolArray", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJsonBytes", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJsonBytes32", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJsonBytes32Array", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJsonBytesArray", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJsonInt", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJsonIntArray", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJsonKeys", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJsonString", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJsonStringArray", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJsonType(string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJsonType(string,string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJsonTypeArray", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJsonUint", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJsonUintArray", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseToml(string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseToml(string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseTomlAddress", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseTomlAddressArray", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseTomlBool", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseTomlBoolArray", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseTomlBytes", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseTomlBytes32", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseTomlBytes32Array", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseTomlBytesArray", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseTomlInt", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseTomlIntArray", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseTomlKeys", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseTomlString", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseTomlStringArray", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseTomlType(string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseTomlType(string,string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseTomlTypeArray", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseTomlUint", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseTomlUintArray", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "parseUint", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "pauseGasMetering", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "pauseTracing", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "prank(address,address)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "prank(address,address,bool)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "prank(address,bool)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "prank(address)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "prevrandao(bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "prevrandao(uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "projectRoot", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "prompt", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "promptAddress", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "promptSecret", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "promptSecretUint", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "promptUint", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "publicKeyP256", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "randomAddress", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "randomBool", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "randomBytes", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "randomBytes4", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "randomBytes8", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "randomInt()", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "randomInt(uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "randomUint()", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "randomUint(uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "randomUint(uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "readCallers", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "readDir(string,uint64)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "readDir(string,uint64,bool)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "readDir(string)", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "readFile", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "readFileBinary", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "readLine", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "readLink", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "record", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "recordLogs", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "rememberKey", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "rememberKeys(string,string,uint32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "rememberKeys(string,string,string,uint32)", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "removeDir", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "removeFile", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "replace", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "resetGasMetering", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "resetNonce", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "resumeGasMetering", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "resumeTracing", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "revertTo", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "revertToAndDelete", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "revertToState", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "revertToStateAndDelete", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "revokePersistent(address[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "revokePersistent(address)", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "roll", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "rollFork(bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "rollFork(uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "rollFork(uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "rollFork(uint256,bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "rpc(string,string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "rpc(string,string)", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "rpcUrl", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "rpcUrlStructs", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "rpcUrls", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "selectFork", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "serializeAddress(string,string,address[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "serializeAddress(string,string,address)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "serializeBool(string,string,bool[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "serializeBool(string,string,bool)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "serializeBytes(string,string,bytes[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "serializeBytes(string,string,bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "serializeBytes32(string,string,bytes32[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "serializeBytes32(string,string,bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "serializeInt(string,string,int256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "serializeInt(string,string,int256[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "serializeJson", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "serializeJsonType(string,bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "serializeJsonType(string,string,string,bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "serializeString(string,string,string[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "serializeString(string,string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "serializeUint(string,string,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "serializeUint(string,string,uint256[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "serializeUintToHex", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "setArbitraryStorage(address,bool)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "setArbitraryStorage(address)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "setBlockhash", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "setEnv", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "setNonce", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "setNonceUnsafe", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "shuffle", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "sign(bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "sign(address,bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "sign((address,uint256,uint256,uint256),bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "sign(uint256,bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "signAndAttachDelegation(address,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "signAndAttachDelegation(address,uint256,uint64)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "signCompact((address,uint256,uint256,uint256),bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "signCompact(address,bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "signCompact(bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "signCompact(uint256,bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "signDelegation(address,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "signDelegation(address,uint256,uint64)", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "signP256", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "skip(bool,string)", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "skip(bool)", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "sleep", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "snapshot", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "snapshotGasLastCall(string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "snapshotGasLastCall(string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "snapshotState", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "snapshotValue(string,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "snapshotValue(string,string,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "sort", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "split", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "startBroadcast()", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "startBroadcast(address)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "startBroadcast(uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "startDebugTraceRecording", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "startMappingRecording", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "startPrank(address)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "startPrank(address,bool)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "startPrank(address,address)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "startPrank(address,address,bool)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "startSnapshotGas(string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "startSnapshotGas(string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "startStateDiffRecording", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "stopAndReturnDebugTraceRecording", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "stopAndReturnStateDiff", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "stopBroadcast", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "stopExpectSafeMemory", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "stopMappingRecording", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "stopPrank", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "stopSnapshotGas(string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "stopSnapshotGas(string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "stopSnapshotGas()", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "store", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "toBase64(string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "toBase64(bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "toBase64URL(string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "toBase64URL(bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "toLowercase", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "toString(address)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "toString(uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "toString(bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "toString(bool)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "toString(int256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "toString(bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "toUppercase", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "transact(uint256,bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "transact(bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "trim", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "tryFfi", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "txGasPrice", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "unixTime", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "warmSlot", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "warp", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "writeFile", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "writeFileBinary", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "writeJson(string,string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "writeJson(string,string)", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "writeLine", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "writeToml(string,string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "writeToml(string,string)", - data: BytesLike - ): Result; -} - -export interface Vm extends BaseContract { - connect(runner?: ContractRunner | null): Vm; - waitForDeployment(): Promise; - - interface: VmInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - accessList: TypedContractMethod< - [access: VmSafe.AccessListItemStruct[]], - [void], - "nonpayable" - >; - - accesses: TypedContractMethod< - [target: AddressLike], - [[string[], string[]] & { readSlots: string[]; writeSlots: string[] }], - "nonpayable" - >; - - activeFork: TypedContractMethod<[], [bigint], "view">; - - addr: TypedContractMethod<[privateKey: BigNumberish], [string], "view">; - - allowCheatcodes: TypedContractMethod< - [account: AddressLike], - [void], - "nonpayable" - >; - - "assertApproxEqAbs(uint256,uint256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, maxDelta: BigNumberish], - [void], - "view" - >; - - "assertApproxEqAbs(int256,int256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, maxDelta: BigNumberish], - [void], - "view" - >; - - "assertApproxEqAbs(int256,int256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxDelta: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertApproxEqAbs(uint256,uint256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxDelta: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxDelta: BigNumberish, - decimals: BigNumberish - ], - [void], - "view" - >; - - "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxDelta: BigNumberish, - decimals: BigNumberish - ], - [void], - "view" - >; - - "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxDelta: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxDelta: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertApproxEqRel(uint256,uint256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxPercentDelta: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertApproxEqRel(uint256,uint256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, maxPercentDelta: BigNumberish], - [void], - "view" - >; - - "assertApproxEqRel(int256,int256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxPercentDelta: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertApproxEqRel(int256,int256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, maxPercentDelta: BigNumberish], - [void], - "view" - >; - - "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxPercentDelta: BigNumberish, - decimals: BigNumberish - ], - [void], - "view" - >; - - "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxPercentDelta: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertApproxEqRelDecimal(int256,int256,uint256,uint256)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxPercentDelta: BigNumberish, - decimals: BigNumberish - ], - [void], - "view" - >; - - "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxPercentDelta: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertEq(bytes32[],bytes32[])": TypedContractMethod< - [left: BytesLike[], right: BytesLike[]], - [void], - "view" - >; - - "assertEq(int256[],int256[],string)": TypedContractMethod< - [left: BigNumberish[], right: BigNumberish[], error: string], - [void], - "view" - >; - - "assertEq(address,address,string)": TypedContractMethod< - [left: AddressLike, right: AddressLike, error: string], - [void], - "view" - >; - - "assertEq(string,string,string)": TypedContractMethod< - [left: string, right: string, error: string], - [void], - "view" - >; - - "assertEq(address[],address[])": TypedContractMethod< - [left: AddressLike[], right: AddressLike[]], - [void], - "view" - >; - - "assertEq(address[],address[],string)": TypedContractMethod< - [left: AddressLike[], right: AddressLike[], error: string], - [void], - "view" - >; - - "assertEq(bool,bool,string)": TypedContractMethod< - [left: boolean, right: boolean, error: string], - [void], - "view" - >; - - "assertEq(address,address)": TypedContractMethod< - [left: AddressLike, right: AddressLike], - [void], - "view" - >; - - "assertEq(uint256[],uint256[],string)": TypedContractMethod< - [left: BigNumberish[], right: BigNumberish[], error: string], - [void], - "view" - >; - - "assertEq(bool[],bool[])": TypedContractMethod< - [left: boolean[], right: boolean[]], - [void], - "view" - >; - - "assertEq(int256[],int256[])": TypedContractMethod< - [left: BigNumberish[], right: BigNumberish[]], - [void], - "view" - >; - - "assertEq(int256,int256,string)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - - "assertEq(bytes32,bytes32)": TypedContractMethod< - [left: BytesLike, right: BytesLike], - [void], - "view" - >; - - "assertEq(uint256,uint256,string)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - - "assertEq(uint256[],uint256[])": TypedContractMethod< - [left: BigNumberish[], right: BigNumberish[]], - [void], - "view" - >; - - "assertEq(bytes,bytes)": TypedContractMethod< - [left: BytesLike, right: BytesLike], - [void], - "view" - >; - - "assertEq(uint256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - - "assertEq(bytes32,bytes32,string)": TypedContractMethod< - [left: BytesLike, right: BytesLike, error: string], - [void], - "view" - >; - - "assertEq(string[],string[])": TypedContractMethod< - [left: string[], right: string[]], - [void], - "view" - >; - - "assertEq(bytes32[],bytes32[],string)": TypedContractMethod< - [left: BytesLike[], right: BytesLike[], error: string], - [void], - "view" - >; - - "assertEq(bytes,bytes,string)": TypedContractMethod< - [left: BytesLike, right: BytesLike, error: string], - [void], - "view" - >; - - "assertEq(bool[],bool[],string)": TypedContractMethod< - [left: boolean[], right: boolean[], error: string], - [void], - "view" - >; - - "assertEq(bytes[],bytes[])": TypedContractMethod< - [left: BytesLike[], right: BytesLike[]], - [void], - "view" - >; - - "assertEq(string[],string[],string)": TypedContractMethod< - [left: string[], right: string[], error: string], - [void], - "view" - >; - - "assertEq(string,string)": TypedContractMethod< - [left: string, right: string], - [void], - "view" - >; - - "assertEq(bytes[],bytes[],string)": TypedContractMethod< - [left: BytesLike[], right: BytesLike[], error: string], - [void], - "view" - >; - - "assertEq(bool,bool)": TypedContractMethod< - [left: boolean, right: boolean], - [void], - "view" - >; - - "assertEq(int256,int256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - - "assertEqDecimal(uint256,uint256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - - "assertEqDecimal(int256,int256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - - "assertEqDecimal(int256,int256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertEqDecimal(uint256,uint256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertFalse(bool,string)": TypedContractMethod< - [condition: boolean, error: string], - [void], - "view" - >; - - "assertFalse(bool)": TypedContractMethod< - [condition: boolean], - [void], - "view" - >; - - "assertGe(int256,int256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - - "assertGe(int256,int256,string)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - - "assertGe(uint256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - - "assertGe(uint256,uint256,string)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - - "assertGeDecimal(uint256,uint256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - - "assertGeDecimal(int256,int256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertGeDecimal(uint256,uint256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertGeDecimal(int256,int256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - - "assertGt(int256,int256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - - "assertGt(uint256,uint256,string)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - - "assertGt(uint256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - - "assertGt(int256,int256,string)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - - "assertGtDecimal(int256,int256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertGtDecimal(uint256,uint256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertGtDecimal(int256,int256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - - "assertGtDecimal(uint256,uint256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - - "assertLe(int256,int256,string)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - - "assertLe(uint256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - - "assertLe(int256,int256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - - "assertLe(uint256,uint256,string)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - - "assertLeDecimal(int256,int256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - - "assertLeDecimal(uint256,uint256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertLeDecimal(int256,int256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertLeDecimal(uint256,uint256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - - "assertLt(int256,int256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - - "assertLt(uint256,uint256,string)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - - "assertLt(int256,int256,string)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - - "assertLt(uint256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - - "assertLtDecimal(uint256,uint256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - - "assertLtDecimal(int256,int256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertLtDecimal(uint256,uint256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertLtDecimal(int256,int256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - - "assertNotEq(bytes32[],bytes32[])": TypedContractMethod< - [left: BytesLike[], right: BytesLike[]], - [void], - "view" - >; - - "assertNotEq(int256[],int256[])": TypedContractMethod< - [left: BigNumberish[], right: BigNumberish[]], - [void], - "view" - >; - - "assertNotEq(bool,bool,string)": TypedContractMethod< - [left: boolean, right: boolean, error: string], - [void], - "view" - >; - - "assertNotEq(bytes[],bytes[],string)": TypedContractMethod< - [left: BytesLike[], right: BytesLike[], error: string], - [void], - "view" - >; - - "assertNotEq(bool,bool)": TypedContractMethod< - [left: boolean, right: boolean], - [void], - "view" - >; - - "assertNotEq(bool[],bool[])": TypedContractMethod< - [left: boolean[], right: boolean[]], - [void], - "view" - >; - - "assertNotEq(bytes,bytes)": TypedContractMethod< - [left: BytesLike, right: BytesLike], - [void], - "view" - >; - - "assertNotEq(address[],address[])": TypedContractMethod< - [left: AddressLike[], right: AddressLike[]], - [void], - "view" - >; - - "assertNotEq(int256,int256,string)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - - "assertNotEq(uint256[],uint256[])": TypedContractMethod< - [left: BigNumberish[], right: BigNumberish[]], - [void], - "view" - >; - - "assertNotEq(bool[],bool[],string)": TypedContractMethod< - [left: boolean[], right: boolean[], error: string], - [void], - "view" - >; - - "assertNotEq(string,string)": TypedContractMethod< - [left: string, right: string], - [void], - "view" - >; - - "assertNotEq(address[],address[],string)": TypedContractMethod< - [left: AddressLike[], right: AddressLike[], error: string], - [void], - "view" - >; - - "assertNotEq(string,string,string)": TypedContractMethod< - [left: string, right: string, error: string], - [void], - "view" - >; - - "assertNotEq(address,address,string)": TypedContractMethod< - [left: AddressLike, right: AddressLike, error: string], - [void], - "view" - >; - - "assertNotEq(bytes32,bytes32)": TypedContractMethod< - [left: BytesLike, right: BytesLike], - [void], - "view" - >; - - "assertNotEq(bytes,bytes,string)": TypedContractMethod< - [left: BytesLike, right: BytesLike, error: string], - [void], - "view" - >; - - "assertNotEq(uint256,uint256,string)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - - "assertNotEq(uint256[],uint256[],string)": TypedContractMethod< - [left: BigNumberish[], right: BigNumberish[], error: string], - [void], - "view" - >; - - "assertNotEq(address,address)": TypedContractMethod< - [left: AddressLike, right: AddressLike], - [void], - "view" - >; - - "assertNotEq(bytes32,bytes32,string)": TypedContractMethod< - [left: BytesLike, right: BytesLike, error: string], - [void], - "view" - >; - - "assertNotEq(string[],string[],string)": TypedContractMethod< - [left: string[], right: string[], error: string], - [void], - "view" - >; - - "assertNotEq(uint256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - - "assertNotEq(bytes32[],bytes32[],string)": TypedContractMethod< - [left: BytesLike[], right: BytesLike[], error: string], - [void], - "view" - >; - - "assertNotEq(string[],string[])": TypedContractMethod< - [left: string[], right: string[]], - [void], - "view" - >; - - "assertNotEq(int256[],int256[],string)": TypedContractMethod< - [left: BigNumberish[], right: BigNumberish[], error: string], - [void], - "view" - >; - - "assertNotEq(bytes[],bytes[])": TypedContractMethod< - [left: BytesLike[], right: BytesLike[]], - [void], - "view" - >; - - "assertNotEq(int256,int256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - - "assertNotEqDecimal(int256,int256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - - "assertNotEqDecimal(int256,int256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertNotEqDecimal(uint256,uint256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - - "assertNotEqDecimal(uint256,uint256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertTrue(bool)": TypedContractMethod<[condition: boolean], [void], "view">; - - "assertTrue(bool,string)": TypedContractMethod< - [condition: boolean, error: string], - [void], - "view" - >; - - assume: TypedContractMethod<[condition: boolean], [void], "view">; - - "assumeNoRevert()": TypedContractMethod<[], [void], "view">; - - "assumeNoRevert((address,bool,bytes)[])": TypedContractMethod< - [potentialReverts: VmSafe.PotentialRevertStruct[]], - [void], - "view" - >; - - "assumeNoRevert((address,bool,bytes))": TypedContractMethod< - [potentialRevert: VmSafe.PotentialRevertStruct], - [void], - "view" - >; - - attachBlob: TypedContractMethod<[blob: BytesLike], [void], "nonpayable">; - - attachDelegation: TypedContractMethod< - [signedDelegation: VmSafe.SignedDelegationStruct], - [void], - "nonpayable" - >; - - blobBaseFee: TypedContractMethod< - [newBlobBaseFee: BigNumberish], - [void], - "nonpayable" - >; - - blobhashes: TypedContractMethod<[hashes: BytesLike[]], [void], "nonpayable">; - - "breakpoint(string)": TypedContractMethod<[char: string], [void], "view">; - - "breakpoint(string,bool)": TypedContractMethod< - [char: string, value: boolean], - [void], - "view" - >; - - "broadcast()": TypedContractMethod<[], [void], "nonpayable">; - - "broadcast(address)": TypedContractMethod< - [signer: AddressLike], - [void], - "nonpayable" - >; - - "broadcast(uint256)": TypedContractMethod< - [privateKey: BigNumberish], - [void], - "nonpayable" - >; - - broadcastRawTransaction: TypedContractMethod< - [data: BytesLike], - [void], - "nonpayable" - >; - - chainId: TypedContractMethod< - [newChainId: BigNumberish], - [void], - "nonpayable" - >; - - clearMockedCalls: TypedContractMethod<[], [void], "nonpayable">; - - cloneAccount: TypedContractMethod< - [source: AddressLike, target: AddressLike], - [void], - "nonpayable" - >; - - closeFile: TypedContractMethod<[path: string], [void], "nonpayable">; - - coinbase: TypedContractMethod< - [newCoinbase: AddressLike], - [void], - "nonpayable" - >; - - "computeCreate2Address(bytes32,bytes32)": TypedContractMethod< - [salt: BytesLike, initCodeHash: BytesLike], - [string], - "view" - >; - - "computeCreate2Address(bytes32,bytes32,address)": TypedContractMethod< - [salt: BytesLike, initCodeHash: BytesLike, deployer: AddressLike], - [string], - "view" - >; - - computeCreateAddress: TypedContractMethod< - [deployer: AddressLike, nonce: BigNumberish], - [string], - "view" - >; - - contains: TypedContractMethod< - [subject: string, search: string], - [boolean], - "nonpayable" - >; - - cool: TypedContractMethod<[target: AddressLike], [void], "nonpayable">; - - coolSlot: TypedContractMethod< - [target: AddressLike, slot: BytesLike], - [void], - "nonpayable" - >; - - copyFile: TypedContractMethod< - [from: string, to: string], - [bigint], - "nonpayable" - >; - - copyStorage: TypedContractMethod< - [from: AddressLike, to: AddressLike], - [void], - "nonpayable" - >; - - createDir: TypedContractMethod< - [path: string, recursive: boolean], - [void], - "nonpayable" - >; - - "createFork(string)": TypedContractMethod< - [urlOrAlias: string], - [bigint], - "nonpayable" - >; - - "createFork(string,uint256)": TypedContractMethod< - [urlOrAlias: string, blockNumber: BigNumberish], - [bigint], - "nonpayable" - >; - - "createFork(string,bytes32)": TypedContractMethod< - [urlOrAlias: string, txHash: BytesLike], - [bigint], - "nonpayable" - >; - - "createSelectFork(string,uint256)": TypedContractMethod< - [urlOrAlias: string, blockNumber: BigNumberish], - [bigint], - "nonpayable" - >; - - "createSelectFork(string,bytes32)": TypedContractMethod< - [urlOrAlias: string, txHash: BytesLike], - [bigint], - "nonpayable" - >; - - "createSelectFork(string)": TypedContractMethod< - [urlOrAlias: string], - [bigint], - "nonpayable" - >; - - "createWallet(string)": TypedContractMethod< - [walletLabel: string], - [VmSafe.WalletStructOutput], - "nonpayable" - >; - - "createWallet(uint256)": TypedContractMethod< - [privateKey: BigNumberish], - [VmSafe.WalletStructOutput], - "nonpayable" - >; - - "createWallet(uint256,string)": TypedContractMethod< - [privateKey: BigNumberish, walletLabel: string], - [VmSafe.WalletStructOutput], - "nonpayable" - >; - - deal: TypedContractMethod< - [account: AddressLike, newBalance: BigNumberish], - [void], - "nonpayable" - >; - - deleteSnapshot: TypedContractMethod< - [snapshotId: BigNumberish], - [boolean], - "nonpayable" - >; - - deleteSnapshots: TypedContractMethod<[], [void], "nonpayable">; - - deleteStateSnapshot: TypedContractMethod< - [snapshotId: BigNumberish], - [boolean], - "nonpayable" - >; - - deleteStateSnapshots: TypedContractMethod<[], [void], "nonpayable">; - - "deployCode(string,uint256,bytes32)": TypedContractMethod< - [artifactPath: string, value: BigNumberish, salt: BytesLike], - [string], - "nonpayable" - >; - - "deployCode(string,bytes,bytes32)": TypedContractMethod< - [artifactPath: string, constructorArgs: BytesLike, salt: BytesLike], - [string], - "nonpayable" - >; - - "deployCode(string,uint256)": TypedContractMethod< - [artifactPath: string, value: BigNumberish], - [string], - "nonpayable" - >; - - "deployCode(string,bytes32)": TypedContractMethod< - [artifactPath: string, salt: BytesLike], - [string], - "nonpayable" - >; - - "deployCode(string,bytes)": TypedContractMethod< - [artifactPath: string, constructorArgs: BytesLike], - [string], - "nonpayable" - >; - - "deployCode(string,bytes,uint256,bytes32)": TypedContractMethod< - [ - artifactPath: string, - constructorArgs: BytesLike, - value: BigNumberish, - salt: BytesLike - ], - [string], - "nonpayable" - >; - - "deployCode(string)": TypedContractMethod< - [artifactPath: string], - [string], - "nonpayable" - >; - - "deployCode(string,bytes,uint256)": TypedContractMethod< - [artifactPath: string, constructorArgs: BytesLike, value: BigNumberish], - [string], - "nonpayable" - >; - - "deriveKey(string,string,uint32,string)": TypedContractMethod< - [ - mnemonic: string, - derivationPath: string, - index: BigNumberish, - language: string - ], - [bigint], - "view" - >; - - "deriveKey(string,uint32,string)": TypedContractMethod< - [mnemonic: string, index: BigNumberish, language: string], - [bigint], - "view" - >; - - "deriveKey(string,uint32)": TypedContractMethod< - [mnemonic: string, index: BigNumberish], - [bigint], - "view" - >; - - "deriveKey(string,string,uint32)": TypedContractMethod< - [mnemonic: string, derivationPath: string, index: BigNumberish], - [bigint], - "view" - >; - - difficulty: TypedContractMethod< - [newDifficulty: BigNumberish], - [void], - "nonpayable" - >; - - dumpState: TypedContractMethod< - [pathToStateJson: string], - [void], - "nonpayable" - >; - - ensNamehash: TypedContractMethod<[name: string], [string], "view">; - - "envAddress(string)": TypedContractMethod<[name: string], [string], "view">; - - "envAddress(string,string)": TypedContractMethod< - [name: string, delim: string], - [string[]], - "view" - >; - - "envBool(string)": TypedContractMethod<[name: string], [boolean], "view">; - - "envBool(string,string)": TypedContractMethod< - [name: string, delim: string], - [boolean[]], - "view" - >; - - "envBytes(string)": TypedContractMethod<[name: string], [string], "view">; - - "envBytes(string,string)": TypedContractMethod< - [name: string, delim: string], - [string[]], - "view" - >; - - "envBytes32(string,string)": TypedContractMethod< - [name: string, delim: string], - [string[]], - "view" - >; - - "envBytes32(string)": TypedContractMethod<[name: string], [string], "view">; - - envExists: TypedContractMethod<[name: string], [boolean], "view">; - - "envInt(string,string)": TypedContractMethod< - [name: string, delim: string], - [bigint[]], - "view" - >; - - "envInt(string)": TypedContractMethod<[name: string], [bigint], "view">; - - "envOr(string,string,bytes32[])": TypedContractMethod< - [name: string, delim: string, defaultValue: BytesLike[]], - [string[]], - "view" - >; - - "envOr(string,string,int256[])": TypedContractMethod< - [name: string, delim: string, defaultValue: BigNumberish[]], - [bigint[]], - "view" - >; - - "envOr(string,bool)": TypedContractMethod< - [name: string, defaultValue: boolean], - [boolean], - "view" - >; - - "envOr(string,address)": TypedContractMethod< - [name: string, defaultValue: AddressLike], - [string], - "view" - >; - - "envOr(string,uint256)": TypedContractMethod< - [name: string, defaultValue: BigNumberish], - [bigint], - "view" - >; - - "envOr(string,string,bytes[])": TypedContractMethod< - [name: string, delim: string, defaultValue: BytesLike[]], - [string[]], - "view" - >; - - "envOr(string,string,uint256[])": TypedContractMethod< - [name: string, delim: string, defaultValue: BigNumberish[]], - [bigint[]], - "view" - >; - - "envOr(string,string,string[])": TypedContractMethod< - [name: string, delim: string, defaultValue: string[]], - [string[]], - "view" - >; - - "envOr(string,bytes)": TypedContractMethod< - [name: string, defaultValue: BytesLike], - [string], - "view" - >; - - "envOr(string,bytes32)": TypedContractMethod< - [name: string, defaultValue: BytesLike], - [string], - "view" - >; - - "envOr(string,int256)": TypedContractMethod< - [name: string, defaultValue: BigNumberish], - [bigint], - "view" - >; - - "envOr(string,string,address[])": TypedContractMethod< - [name: string, delim: string, defaultValue: AddressLike[]], - [string[]], - "view" - >; - - "envOr(string,string)": TypedContractMethod< - [name: string, defaultValue: string], - [string], - "view" - >; - - "envOr(string,string,bool[])": TypedContractMethod< - [name: string, delim: string, defaultValue: boolean[]], - [boolean[]], - "view" - >; - - "envString(string,string)": TypedContractMethod< - [name: string, delim: string], - [string[]], - "view" - >; - - "envString(string)": TypedContractMethod<[name: string], [string], "view">; - - "envUint(string)": TypedContractMethod<[name: string], [bigint], "view">; - - "envUint(string,string)": TypedContractMethod< - [name: string, delim: string], - [bigint[]], - "view" - >; - - etch: TypedContractMethod< - [target: AddressLike, newRuntimeBytecode: BytesLike], - [void], - "nonpayable" - >; - - eth_getLogs: TypedContractMethod< - [ - fromBlock: BigNumberish, - toBlock: BigNumberish, - target: AddressLike, - topics: BytesLike[] - ], - [VmSafe.EthGetLogsStructOutput[]], - "nonpayable" - >; - - exists: TypedContractMethod<[path: string], [boolean], "view">; - - "expectCall(address,uint256,uint64,bytes)": TypedContractMethod< - [ - callee: AddressLike, - msgValue: BigNumberish, - gas: BigNumberish, - data: BytesLike - ], - [void], - "nonpayable" - >; - - "expectCall(address,uint256,uint64,bytes,uint64)": TypedContractMethod< - [ - callee: AddressLike, - msgValue: BigNumberish, - gas: BigNumberish, - data: BytesLike, - count: BigNumberish - ], - [void], - "nonpayable" - >; - - "expectCall(address,uint256,bytes,uint64)": TypedContractMethod< - [ - callee: AddressLike, - msgValue: BigNumberish, - data: BytesLike, - count: BigNumberish - ], - [void], - "nonpayable" - >; - - "expectCall(address,bytes)": TypedContractMethod< - [callee: AddressLike, data: BytesLike], - [void], - "nonpayable" - >; - - "expectCall(address,bytes,uint64)": TypedContractMethod< - [callee: AddressLike, data: BytesLike, count: BigNumberish], - [void], - "nonpayable" - >; - - "expectCall(address,uint256,bytes)": TypedContractMethod< - [callee: AddressLike, msgValue: BigNumberish, data: BytesLike], - [void], - "nonpayable" - >; - - "expectCallMinGas(address,uint256,uint64,bytes)": TypedContractMethod< - [ - callee: AddressLike, - msgValue: BigNumberish, - minGas: BigNumberish, - data: BytesLike - ], - [void], - "nonpayable" - >; - - "expectCallMinGas(address,uint256,uint64,bytes,uint64)": TypedContractMethod< - [ - callee: AddressLike, - msgValue: BigNumberish, - minGas: BigNumberish, - data: BytesLike, - count: BigNumberish - ], - [void], - "nonpayable" - >; - - expectCreate: TypedContractMethod< - [bytecode: BytesLike, deployer: AddressLike], - [void], - "nonpayable" - >; - - expectCreate2: TypedContractMethod< - [bytecode: BytesLike, deployer: AddressLike], - [void], - "nonpayable" - >; - - "expectEmit()": TypedContractMethod<[], [void], "nonpayable">; - - "expectEmit(bool,bool,bool,bool)": TypedContractMethod< - [ - checkTopic1: boolean, - checkTopic2: boolean, - checkTopic3: boolean, - checkData: boolean - ], - [void], - "nonpayable" - >; - - "expectEmit(uint64)": TypedContractMethod< - [count: BigNumberish], - [void], - "nonpayable" - >; - - "expectEmit(bool,bool,bool,bool,uint64)": TypedContractMethod< - [ - checkTopic1: boolean, - checkTopic2: boolean, - checkTopic3: boolean, - checkData: boolean, - count: BigNumberish - ], - [void], - "nonpayable" - >; - - "expectEmit(bool,bool,bool,bool,address)": TypedContractMethod< - [ - checkTopic1: boolean, - checkTopic2: boolean, - checkTopic3: boolean, - checkData: boolean, - emitter: AddressLike - ], - [void], - "nonpayable" - >; - - "expectEmit(address)": TypedContractMethod< - [emitter: AddressLike], - [void], - "nonpayable" - >; - - "expectEmit(address,uint64)": TypedContractMethod< - [emitter: AddressLike, count: BigNumberish], - [void], - "nonpayable" - >; - - "expectEmit(bool,bool,bool,bool,address,uint64)": TypedContractMethod< - [ - checkTopic1: boolean, - checkTopic2: boolean, - checkTopic3: boolean, - checkData: boolean, - emitter: AddressLike, - count: BigNumberish - ], - [void], - "nonpayable" - >; - - "expectEmitAnonymous()": TypedContractMethod<[], [void], "nonpayable">; - - "expectEmitAnonymous(address)": TypedContractMethod< - [emitter: AddressLike], - [void], - "nonpayable" - >; - - "expectEmitAnonymous(bool,bool,bool,bool,bool,address)": TypedContractMethod< - [ - checkTopic0: boolean, - checkTopic1: boolean, - checkTopic2: boolean, - checkTopic3: boolean, - checkData: boolean, - emitter: AddressLike - ], - [void], - "nonpayable" - >; - - "expectEmitAnonymous(bool,bool,bool,bool,bool)": TypedContractMethod< - [ - checkTopic0: boolean, - checkTopic1: boolean, - checkTopic2: boolean, - checkTopic3: boolean, - checkData: boolean - ], - [void], - "nonpayable" - >; - - "expectPartialRevert(bytes4)": TypedContractMethod< - [revertData: BytesLike], - [void], - "nonpayable" - >; - - "expectPartialRevert(bytes4,address)": TypedContractMethod< - [revertData: BytesLike, reverter: AddressLike], - [void], - "nonpayable" - >; - - "expectRevert(address,uint64)": TypedContractMethod< - [reverter: AddressLike, count: BigNumberish], - [void], - "nonpayable" - >; - - "expectRevert(bytes4,address)": TypedContractMethod< - [revertData: BytesLike, reverter: AddressLike], - [void], - "nonpayable" - >; - - "expectRevert(bytes,uint64)": TypedContractMethod< - [revertData: BytesLike, count: BigNumberish], - [void], - "nonpayable" - >; - - "expectRevert(uint64)": TypedContractMethod< - [count: BigNumberish], - [void], - "nonpayable" - >; - - "expectRevert(bytes,address)": TypedContractMethod< - [revertData: BytesLike, reverter: AddressLike], - [void], - "nonpayable" - >; - - "expectRevert(bytes4,address,uint64)": TypedContractMethod< - [revertData: BytesLike, reverter: AddressLike, count: BigNumberish], - [void], - "nonpayable" - >; - - "expectRevert(bytes4)": TypedContractMethod< - [revertData: BytesLike], - [void], - "nonpayable" - >; - - "expectRevert(bytes,address,uint64)": TypedContractMethod< - [revertData: BytesLike, reverter: AddressLike, count: BigNumberish], - [void], - "nonpayable" - >; - - "expectRevert(address)": TypedContractMethod< - [reverter: AddressLike], - [void], - "nonpayable" - >; - - "expectRevert(bytes4,uint64)": TypedContractMethod< - [revertData: BytesLike, count: BigNumberish], - [void], - "nonpayable" - >; - - "expectRevert(bytes)": TypedContractMethod< - [revertData: BytesLike], - [void], - "nonpayable" - >; - - "expectRevert()": TypedContractMethod<[], [void], "nonpayable">; - - expectSafeMemory: TypedContractMethod< - [min: BigNumberish, max: BigNumberish], - [void], - "nonpayable" - >; - - expectSafeMemoryCall: TypedContractMethod< - [min: BigNumberish, max: BigNumberish], - [void], - "nonpayable" - >; - - fee: TypedContractMethod<[newBasefee: BigNumberish], [void], "nonpayable">; - - ffi: TypedContractMethod<[commandInput: string[]], [string], "nonpayable">; - - foundryVersionAtLeast: TypedContractMethod< - [version: string], - [boolean], - "view" - >; - - foundryVersionCmp: TypedContractMethod<[version: string], [bigint], "view">; - - fsMetadata: TypedContractMethod< - [path: string], - [VmSafe.FsMetadataStructOutput], - "view" - >; - - getArtifactPathByCode: TypedContractMethod< - [code: BytesLike], - [string], - "view" - >; - - getArtifactPathByDeployedCode: TypedContractMethod< - [deployedCode: BytesLike], - [string], - "view" - >; - - getBlobBaseFee: TypedContractMethod<[], [bigint], "view">; - - getBlobhashes: TypedContractMethod<[], [string[]], "view">; - - getBlockNumber: TypedContractMethod<[], [bigint], "view">; - - getBlockTimestamp: TypedContractMethod<[], [bigint], "view">; - - getBroadcast: TypedContractMethod< - [contractName: string, chainId: BigNumberish, txType: BigNumberish], - [VmSafe.BroadcastTxSummaryStructOutput], - "view" - >; - - "getBroadcasts(string,uint64)": TypedContractMethod< - [contractName: string, chainId: BigNumberish], - [VmSafe.BroadcastTxSummaryStructOutput[]], - "view" - >; - - "getBroadcasts(string,uint64,uint8)": TypedContractMethod< - [contractName: string, chainId: BigNumberish, txType: BigNumberish], - [VmSafe.BroadcastTxSummaryStructOutput[]], - "view" - >; - - "getChain(string)": TypedContractMethod< - [chainAlias: string], - [VmSafe.ChainStructOutput], - "view" - >; - - "getChain(uint256)": TypedContractMethod< - [chainId: BigNumberish], - [VmSafe.ChainStructOutput], - "view" - >; - - getCode: TypedContractMethod<[artifactPath: string], [string], "view">; - - getDeployedCode: TypedContractMethod< - [artifactPath: string], - [string], - "view" - >; - - "getDeployment(string,uint64)": TypedContractMethod< - [contractName: string, chainId: BigNumberish], - [string], - "view" - >; - - "getDeployment(string)": TypedContractMethod< - [contractName: string], - [string], - "view" - >; - - getDeployments: TypedContractMethod< - [contractName: string, chainId: BigNumberish], - [string[]], - "view" - >; - - getFoundryVersion: TypedContractMethod<[], [string], "view">; - - getLabel: TypedContractMethod<[account: AddressLike], [string], "view">; - - getMappingKeyAndParentOf: TypedContractMethod< - [target: AddressLike, elementSlot: BytesLike], - [ - [boolean, string, string] & { - found: boolean; - key: string; - parent: string; - } - ], - "nonpayable" - >; - - getMappingLength: TypedContractMethod< - [target: AddressLike, mappingSlot: BytesLike], - [bigint], - "nonpayable" - >; - - getMappingSlotAt: TypedContractMethod< - [target: AddressLike, mappingSlot: BytesLike, idx: BigNumberish], - [string], - "nonpayable" - >; - - "getNonce(address)": TypedContractMethod< - [account: AddressLike], - [bigint], - "view" - >; - - "getNonce((address,uint256,uint256,uint256))": TypedContractMethod< - [wallet: VmSafe.WalletStruct], - [bigint], - "nonpayable" - >; - - getRecordedLogs: TypedContractMethod< - [], - [VmSafe.LogStructOutput[]], - "nonpayable" - >; - - getStateDiff: TypedContractMethod<[], [string], "view">; - - getStateDiffJson: TypedContractMethod<[], [string], "view">; - - getWallets: TypedContractMethod<[], [string[]], "nonpayable">; - - indexOf: TypedContractMethod<[input: string, key: string], [bigint], "view">; - - interceptInitcode: TypedContractMethod<[], [void], "nonpayable">; - - isContext: TypedContractMethod<[context: BigNumberish], [boolean], "view">; - - isDir: TypedContractMethod<[path: string], [boolean], "view">; - - isFile: TypedContractMethod<[path: string], [boolean], "view">; - - isPersistent: TypedContractMethod<[account: AddressLike], [boolean], "view">; - - keyExists: TypedContractMethod< - [json: string, key: string], - [boolean], - "view" - >; - - keyExistsJson: TypedContractMethod< - [json: string, key: string], - [boolean], - "view" - >; - - keyExistsToml: TypedContractMethod< - [toml: string, key: string], - [boolean], - "view" - >; - - label: TypedContractMethod< - [account: AddressLike, newLabel: string], - [void], - "nonpayable" - >; - - lastCallGas: TypedContractMethod<[], [VmSafe.GasStructOutput], "view">; - - load: TypedContractMethod< - [target: AddressLike, slot: BytesLike], - [string], - "view" - >; - - loadAllocs: TypedContractMethod< - [pathToAllocsJson: string], - [void], - "nonpayable" - >; - - "makePersistent(address[])": TypedContractMethod< - [accounts: AddressLike[]], - [void], - "nonpayable" - >; - - "makePersistent(address,address)": TypedContractMethod< - [account0: AddressLike, account1: AddressLike], - [void], - "nonpayable" - >; - - "makePersistent(address)": TypedContractMethod< - [account: AddressLike], - [void], - "nonpayable" - >; - - "makePersistent(address,address,address)": TypedContractMethod< - [account0: AddressLike, account1: AddressLike, account2: AddressLike], - [void], - "nonpayable" - >; - - "mockCall(address,bytes4,bytes)": TypedContractMethod< - [callee: AddressLike, data: BytesLike, returnData: BytesLike], - [void], - "nonpayable" - >; - - "mockCall(address,uint256,bytes,bytes)": TypedContractMethod< - [ - callee: AddressLike, - msgValue: BigNumberish, - data: BytesLike, - returnData: BytesLike - ], - [void], - "nonpayable" - >; - - "mockCall(address,bytes,bytes)": TypedContractMethod< - [callee: AddressLike, data: BytesLike, returnData: BytesLike], - [void], - "nonpayable" - >; - - "mockCall(address,uint256,bytes4,bytes)": TypedContractMethod< - [ - callee: AddressLike, - msgValue: BigNumberish, - data: BytesLike, - returnData: BytesLike - ], - [void], - "nonpayable" - >; - - "mockCallRevert(address,bytes4,bytes)": TypedContractMethod< - [callee: AddressLike, data: BytesLike, revertData: BytesLike], - [void], - "nonpayable" - >; - - "mockCallRevert(address,uint256,bytes4,bytes)": TypedContractMethod< - [ - callee: AddressLike, - msgValue: BigNumberish, - data: BytesLike, - revertData: BytesLike - ], - [void], - "nonpayable" - >; - - "mockCallRevert(address,uint256,bytes,bytes)": TypedContractMethod< - [ - callee: AddressLike, - msgValue: BigNumberish, - data: BytesLike, - revertData: BytesLike - ], - [void], - "nonpayable" - >; - - "mockCallRevert(address,bytes,bytes)": TypedContractMethod< - [callee: AddressLike, data: BytesLike, revertData: BytesLike], - [void], - "nonpayable" - >; - - "mockCalls(address,uint256,bytes,bytes[])": TypedContractMethod< - [ - callee: AddressLike, - msgValue: BigNumberish, - data: BytesLike, - returnData: BytesLike[] - ], - [void], - "nonpayable" - >; - - "mockCalls(address,bytes,bytes[])": TypedContractMethod< - [callee: AddressLike, data: BytesLike, returnData: BytesLike[]], - [void], - "nonpayable" - >; - - mockFunction: TypedContractMethod< - [callee: AddressLike, target: AddressLike, data: BytesLike], - [void], - "nonpayable" - >; - - noAccessList: TypedContractMethod<[], [void], "nonpayable">; - - parseAddress: TypedContractMethod< - [stringifiedValue: string], - [string], - "view" - >; - - parseBool: TypedContractMethod<[stringifiedValue: string], [boolean], "view">; - - parseBytes: TypedContractMethod<[stringifiedValue: string], [string], "view">; - - parseBytes32: TypedContractMethod< - [stringifiedValue: string], - [string], - "view" - >; - - parseInt: TypedContractMethod<[stringifiedValue: string], [bigint], "view">; - - "parseJson(string)": TypedContractMethod<[json: string], [string], "view">; - - "parseJson(string,string)": TypedContractMethod< - [json: string, key: string], - [string], - "view" - >; - - parseJsonAddress: TypedContractMethod< - [json: string, key: string], - [string], - "view" - >; - - parseJsonAddressArray: TypedContractMethod< - [json: string, key: string], - [string[]], - "view" - >; - - parseJsonBool: TypedContractMethod< - [json: string, key: string], - [boolean], - "view" - >; - - parseJsonBoolArray: TypedContractMethod< - [json: string, key: string], - [boolean[]], - "view" - >; - - parseJsonBytes: TypedContractMethod< - [json: string, key: string], - [string], - "view" - >; - - parseJsonBytes32: TypedContractMethod< - [json: string, key: string], - [string], - "view" - >; - - parseJsonBytes32Array: TypedContractMethod< - [json: string, key: string], - [string[]], - "view" - >; - - parseJsonBytesArray: TypedContractMethod< - [json: string, key: string], - [string[]], - "view" - >; - - parseJsonInt: TypedContractMethod< - [json: string, key: string], - [bigint], - "view" - >; - - parseJsonIntArray: TypedContractMethod< - [json: string, key: string], - [bigint[]], - "view" - >; - - parseJsonKeys: TypedContractMethod< - [json: string, key: string], - [string[]], - "view" - >; - - parseJsonString: TypedContractMethod< - [json: string, key: string], - [string], - "view" - >; - - parseJsonStringArray: TypedContractMethod< - [json: string, key: string], - [string[]], - "view" - >; - - "parseJsonType(string,string)": TypedContractMethod< - [json: string, typeDescription: string], - [string], - "view" - >; - - "parseJsonType(string,string,string)": TypedContractMethod< - [json: string, key: string, typeDescription: string], - [string], - "view" - >; - - parseJsonTypeArray: TypedContractMethod< - [json: string, key: string, typeDescription: string], - [string], - "view" - >; - - parseJsonUint: TypedContractMethod< - [json: string, key: string], - [bigint], - "view" - >; - - parseJsonUintArray: TypedContractMethod< - [json: string, key: string], - [bigint[]], - "view" - >; - - "parseToml(string,string)": TypedContractMethod< - [toml: string, key: string], - [string], - "view" - >; - - "parseToml(string)": TypedContractMethod<[toml: string], [string], "view">; - - parseTomlAddress: TypedContractMethod< - [toml: string, key: string], - [string], - "view" - >; - - parseTomlAddressArray: TypedContractMethod< - [toml: string, key: string], - [string[]], - "view" - >; - - parseTomlBool: TypedContractMethod< - [toml: string, key: string], - [boolean], - "view" - >; - - parseTomlBoolArray: TypedContractMethod< - [toml: string, key: string], - [boolean[]], - "view" - >; - - parseTomlBytes: TypedContractMethod< - [toml: string, key: string], - [string], - "view" - >; - - parseTomlBytes32: TypedContractMethod< - [toml: string, key: string], - [string], - "view" - >; - - parseTomlBytes32Array: TypedContractMethod< - [toml: string, key: string], - [string[]], - "view" - >; - - parseTomlBytesArray: TypedContractMethod< - [toml: string, key: string], - [string[]], - "view" - >; - - parseTomlInt: TypedContractMethod< - [toml: string, key: string], - [bigint], - "view" - >; - - parseTomlIntArray: TypedContractMethod< - [toml: string, key: string], - [bigint[]], - "view" - >; - - parseTomlKeys: TypedContractMethod< - [toml: string, key: string], - [string[]], - "view" - >; - - parseTomlString: TypedContractMethod< - [toml: string, key: string], - [string], - "view" - >; - - parseTomlStringArray: TypedContractMethod< - [toml: string, key: string], - [string[]], - "view" - >; - - "parseTomlType(string,string)": TypedContractMethod< - [toml: string, typeDescription: string], - [string], - "view" - >; - - "parseTomlType(string,string,string)": TypedContractMethod< - [toml: string, key: string, typeDescription: string], - [string], - "view" - >; - - parseTomlTypeArray: TypedContractMethod< - [toml: string, key: string, typeDescription: string], - [string], - "view" - >; - - parseTomlUint: TypedContractMethod< - [toml: string, key: string], - [bigint], - "view" - >; - - parseTomlUintArray: TypedContractMethod< - [toml: string, key: string], - [bigint[]], - "view" - >; - - parseUint: TypedContractMethod<[stringifiedValue: string], [bigint], "view">; - - pauseGasMetering: TypedContractMethod<[], [void], "nonpayable">; - - pauseTracing: TypedContractMethod<[], [void], "view">; - - "prank(address,address)": TypedContractMethod< - [msgSender: AddressLike, txOrigin: AddressLike], - [void], - "nonpayable" - >; - - "prank(address,address,bool)": TypedContractMethod< - [msgSender: AddressLike, txOrigin: AddressLike, delegateCall: boolean], - [void], - "nonpayable" - >; - - "prank(address,bool)": TypedContractMethod< - [msgSender: AddressLike, delegateCall: boolean], - [void], - "nonpayable" - >; - - "prank(address)": TypedContractMethod< - [msgSender: AddressLike], - [void], - "nonpayable" - >; - - "prevrandao(bytes32)": TypedContractMethod< - [newPrevrandao: BytesLike], - [void], - "nonpayable" - >; - - "prevrandao(uint256)": TypedContractMethod< - [newPrevrandao: BigNumberish], - [void], - "nonpayable" - >; - - projectRoot: TypedContractMethod<[], [string], "view">; - - prompt: TypedContractMethod<[promptText: string], [string], "nonpayable">; - - promptAddress: TypedContractMethod< - [promptText: string], - [string], - "nonpayable" - >; - - promptSecret: TypedContractMethod< - [promptText: string], - [string], - "nonpayable" - >; - - promptSecretUint: TypedContractMethod< - [promptText: string], - [bigint], - "nonpayable" - >; - - promptUint: TypedContractMethod<[promptText: string], [bigint], "nonpayable">; - - publicKeyP256: TypedContractMethod< - [privateKey: BigNumberish], - [[bigint, bigint] & { publicKeyX: bigint; publicKeyY: bigint }], - "view" - >; - - randomAddress: TypedContractMethod<[], [string], "nonpayable">; - - randomBool: TypedContractMethod<[], [boolean], "view">; - - randomBytes: TypedContractMethod<[len: BigNumberish], [string], "view">; - - randomBytes4: TypedContractMethod<[], [string], "view">; - - randomBytes8: TypedContractMethod<[], [string], "view">; - - "randomInt()": TypedContractMethod<[], [bigint], "view">; - - "randomInt(uint256)": TypedContractMethod< - [bits: BigNumberish], - [bigint], - "view" - >; - - "randomUint()": TypedContractMethod<[], [bigint], "nonpayable">; - - "randomUint(uint256)": TypedContractMethod< - [bits: BigNumberish], - [bigint], - "view" - >; - - "randomUint(uint256,uint256)": TypedContractMethod< - [min: BigNumberish, max: BigNumberish], - [bigint], - "nonpayable" - >; - - readCallers: TypedContractMethod< - [], - [ - [bigint, string, string] & { - callerMode: bigint; - msgSender: string; - txOrigin: string; - } - ], - "nonpayable" - >; - - "readDir(string,uint64)": TypedContractMethod< - [path: string, maxDepth: BigNumberish], - [VmSafe.DirEntryStructOutput[]], - "view" - >; - - "readDir(string,uint64,bool)": TypedContractMethod< - [path: string, maxDepth: BigNumberish, followLinks: boolean], - [VmSafe.DirEntryStructOutput[]], - "view" - >; - - "readDir(string)": TypedContractMethod< - [path: string], - [VmSafe.DirEntryStructOutput[]], - "view" - >; - - readFile: TypedContractMethod<[path: string], [string], "view">; - - readFileBinary: TypedContractMethod<[path: string], [string], "view">; - - readLine: TypedContractMethod<[path: string], [string], "view">; - - readLink: TypedContractMethod<[linkPath: string], [string], "view">; - - record: TypedContractMethod<[], [void], "nonpayable">; - - recordLogs: TypedContractMethod<[], [void], "nonpayable">; - - rememberKey: TypedContractMethod< - [privateKey: BigNumberish], - [string], - "nonpayable" - >; - - "rememberKeys(string,string,uint32)": TypedContractMethod< - [mnemonic: string, derivationPath: string, count: BigNumberish], - [string[]], - "nonpayable" - >; - - "rememberKeys(string,string,string,uint32)": TypedContractMethod< - [ - mnemonic: string, - derivationPath: string, - language: string, - count: BigNumberish - ], - [string[]], - "nonpayable" - >; - - removeDir: TypedContractMethod< - [path: string, recursive: boolean], - [void], - "nonpayable" - >; - - removeFile: TypedContractMethod<[path: string], [void], "nonpayable">; - - replace: TypedContractMethod< - [input: string, from: string, to: string], - [string], - "view" - >; - - resetGasMetering: TypedContractMethod<[], [void], "nonpayable">; - - resetNonce: TypedContractMethod<[account: AddressLike], [void], "nonpayable">; - - resumeGasMetering: TypedContractMethod<[], [void], "nonpayable">; - - resumeTracing: TypedContractMethod<[], [void], "view">; - - revertTo: TypedContractMethod< - [snapshotId: BigNumberish], - [boolean], - "nonpayable" - >; - - revertToAndDelete: TypedContractMethod< - [snapshotId: BigNumberish], - [boolean], - "nonpayable" - >; - - revertToState: TypedContractMethod< - [snapshotId: BigNumberish], - [boolean], - "nonpayable" - >; - - revertToStateAndDelete: TypedContractMethod< - [snapshotId: BigNumberish], - [boolean], - "nonpayable" - >; - - "revokePersistent(address[])": TypedContractMethod< - [accounts: AddressLike[]], - [void], - "nonpayable" - >; - - "revokePersistent(address)": TypedContractMethod< - [account: AddressLike], - [void], - "nonpayable" - >; - - roll: TypedContractMethod<[newHeight: BigNumberish], [void], "nonpayable">; - - "rollFork(bytes32)": TypedContractMethod< - [txHash: BytesLike], - [void], - "nonpayable" - >; - - "rollFork(uint256,uint256)": TypedContractMethod< - [forkId: BigNumberish, blockNumber: BigNumberish], - [void], - "nonpayable" - >; - - "rollFork(uint256)": TypedContractMethod< - [blockNumber: BigNumberish], - [void], - "nonpayable" - >; - - "rollFork(uint256,bytes32)": TypedContractMethod< - [forkId: BigNumberish, txHash: BytesLike], - [void], - "nonpayable" - >; - - "rpc(string,string,string)": TypedContractMethod< - [urlOrAlias: string, method: string, params: string], - [string], - "nonpayable" - >; - - "rpc(string,string)": TypedContractMethod< - [method: string, params: string], - [string], - "nonpayable" - >; - - rpcUrl: TypedContractMethod<[rpcAlias: string], [string], "view">; - - rpcUrlStructs: TypedContractMethod<[], [VmSafe.RpcStructOutput[]], "view">; - - rpcUrls: TypedContractMethod<[], [[string, string][]], "view">; - - selectFork: TypedContractMethod<[forkId: BigNumberish], [void], "nonpayable">; - - "serializeAddress(string,string,address[])": TypedContractMethod< - [objectKey: string, valueKey: string, values: AddressLike[]], - [string], - "nonpayable" - >; - - "serializeAddress(string,string,address)": TypedContractMethod< - [objectKey: string, valueKey: string, value: AddressLike], - [string], - "nonpayable" - >; - - "serializeBool(string,string,bool[])": TypedContractMethod< - [objectKey: string, valueKey: string, values: boolean[]], - [string], - "nonpayable" - >; - - "serializeBool(string,string,bool)": TypedContractMethod< - [objectKey: string, valueKey: string, value: boolean], - [string], - "nonpayable" - >; - - "serializeBytes(string,string,bytes[])": TypedContractMethod< - [objectKey: string, valueKey: string, values: BytesLike[]], - [string], - "nonpayable" - >; - - "serializeBytes(string,string,bytes)": TypedContractMethod< - [objectKey: string, valueKey: string, value: BytesLike], - [string], - "nonpayable" - >; - - "serializeBytes32(string,string,bytes32[])": TypedContractMethod< - [objectKey: string, valueKey: string, values: BytesLike[]], - [string], - "nonpayable" - >; - - "serializeBytes32(string,string,bytes32)": TypedContractMethod< - [objectKey: string, valueKey: string, value: BytesLike], - [string], - "nonpayable" - >; - - "serializeInt(string,string,int256)": TypedContractMethod< - [objectKey: string, valueKey: string, value: BigNumberish], - [string], - "nonpayable" - >; - - "serializeInt(string,string,int256[])": TypedContractMethod< - [objectKey: string, valueKey: string, values: BigNumberish[]], - [string], - "nonpayable" - >; - - serializeJson: TypedContractMethod< - [objectKey: string, value: string], - [string], - "nonpayable" - >; - - "serializeJsonType(string,bytes)": TypedContractMethod< - [typeDescription: string, value: BytesLike], - [string], - "view" - >; - - "serializeJsonType(string,string,string,bytes)": TypedContractMethod< - [ - objectKey: string, - valueKey: string, - typeDescription: string, - value: BytesLike - ], - [string], - "nonpayable" - >; - - "serializeString(string,string,string[])": TypedContractMethod< - [objectKey: string, valueKey: string, values: string[]], - [string], - "nonpayable" - >; - - "serializeString(string,string,string)": TypedContractMethod< - [objectKey: string, valueKey: string, value: string], - [string], - "nonpayable" - >; - - "serializeUint(string,string,uint256)": TypedContractMethod< - [objectKey: string, valueKey: string, value: BigNumberish], - [string], - "nonpayable" - >; - - "serializeUint(string,string,uint256[])": TypedContractMethod< - [objectKey: string, valueKey: string, values: BigNumberish[]], - [string], - "nonpayable" - >; - - serializeUintToHex: TypedContractMethod< - [objectKey: string, valueKey: string, value: BigNumberish], - [string], - "nonpayable" - >; - - "setArbitraryStorage(address,bool)": TypedContractMethod< - [target: AddressLike, overwrite: boolean], - [void], - "nonpayable" - >; - - "setArbitraryStorage(address)": TypedContractMethod< - [target: AddressLike], - [void], - "nonpayable" - >; - - setBlockhash: TypedContractMethod< - [blockNumber: BigNumberish, blockHash: BytesLike], - [void], - "nonpayable" - >; - - setEnv: TypedContractMethod< - [name: string, value: string], - [void], - "nonpayable" - >; - - setNonce: TypedContractMethod< - [account: AddressLike, newNonce: BigNumberish], - [void], - "nonpayable" - >; - - setNonceUnsafe: TypedContractMethod< - [account: AddressLike, newNonce: BigNumberish], - [void], - "nonpayable" - >; - - shuffle: TypedContractMethod< - [array: BigNumberish[]], - [bigint[]], - "nonpayable" - >; - - "sign(bytes32)": TypedContractMethod< - [digest: BytesLike], - [[bigint, string, string] & { v: bigint; r: string; s: string }], - "view" - >; - - "sign(address,bytes32)": TypedContractMethod< - [signer: AddressLike, digest: BytesLike], - [[bigint, string, string] & { v: bigint; r: string; s: string }], - "view" - >; - - "sign((address,uint256,uint256,uint256),bytes32)": TypedContractMethod< - [wallet: VmSafe.WalletStruct, digest: BytesLike], - [[bigint, string, string] & { v: bigint; r: string; s: string }], - "nonpayable" - >; - - "sign(uint256,bytes32)": TypedContractMethod< - [privateKey: BigNumberish, digest: BytesLike], - [[bigint, string, string] & { v: bigint; r: string; s: string }], - "view" - >; - - "signAndAttachDelegation(address,uint256)": TypedContractMethod< - [implementation: AddressLike, privateKey: BigNumberish], - [VmSafe.SignedDelegationStructOutput], - "nonpayable" - >; - - "signAndAttachDelegation(address,uint256,uint64)": TypedContractMethod< - [ - implementation: AddressLike, - privateKey: BigNumberish, - nonce: BigNumberish - ], - [VmSafe.SignedDelegationStructOutput], - "nonpayable" - >; - - "signCompact((address,uint256,uint256,uint256),bytes32)": TypedContractMethod< - [wallet: VmSafe.WalletStruct, digest: BytesLike], - [[string, string] & { r: string; vs: string }], - "nonpayable" - >; - - "signCompact(address,bytes32)": TypedContractMethod< - [signer: AddressLike, digest: BytesLike], - [[string, string] & { r: string; vs: string }], - "view" - >; - - "signCompact(bytes32)": TypedContractMethod< - [digest: BytesLike], - [[string, string] & { r: string; vs: string }], - "view" - >; - - "signCompact(uint256,bytes32)": TypedContractMethod< - [privateKey: BigNumberish, digest: BytesLike], - [[string, string] & { r: string; vs: string }], - "view" - >; - - "signDelegation(address,uint256)": TypedContractMethod< - [implementation: AddressLike, privateKey: BigNumberish], - [VmSafe.SignedDelegationStructOutput], - "nonpayable" - >; - - "signDelegation(address,uint256,uint64)": TypedContractMethod< - [ - implementation: AddressLike, - privateKey: BigNumberish, - nonce: BigNumberish - ], - [VmSafe.SignedDelegationStructOutput], - "nonpayable" - >; - - signP256: TypedContractMethod< - [privateKey: BigNumberish, digest: BytesLike], - [[string, string] & { r: string; s: string }], - "view" - >; - - "skip(bool,string)": TypedContractMethod< - [skipTest: boolean, reason: string], - [void], - "nonpayable" - >; - - "skip(bool)": TypedContractMethod<[skipTest: boolean], [void], "nonpayable">; - - sleep: TypedContractMethod<[duration: BigNumberish], [void], "nonpayable">; - - snapshot: TypedContractMethod<[], [bigint], "nonpayable">; - - "snapshotGasLastCall(string,string)": TypedContractMethod< - [group: string, name: string], - [bigint], - "nonpayable" - >; - - "snapshotGasLastCall(string)": TypedContractMethod< - [name: string], - [bigint], - "nonpayable" - >; - - snapshotState: TypedContractMethod<[], [bigint], "nonpayable">; - - "snapshotValue(string,uint256)": TypedContractMethod< - [name: string, value: BigNumberish], - [void], - "nonpayable" - >; - - "snapshotValue(string,string,uint256)": TypedContractMethod< - [group: string, name: string, value: BigNumberish], - [void], - "nonpayable" - >; - - sort: TypedContractMethod<[array: BigNumberish[]], [bigint[]], "nonpayable">; - - split: TypedContractMethod< - [input: string, delimiter: string], - [string[]], - "view" - >; - - "startBroadcast()": TypedContractMethod<[], [void], "nonpayable">; - - "startBroadcast(address)": TypedContractMethod< - [signer: AddressLike], - [void], - "nonpayable" - >; - - "startBroadcast(uint256)": TypedContractMethod< - [privateKey: BigNumberish], - [void], - "nonpayable" - >; - - startDebugTraceRecording: TypedContractMethod<[], [void], "nonpayable">; - - startMappingRecording: TypedContractMethod<[], [void], "nonpayable">; - - "startPrank(address)": TypedContractMethod< - [msgSender: AddressLike], - [void], - "nonpayable" - >; - - "startPrank(address,bool)": TypedContractMethod< - [msgSender: AddressLike, delegateCall: boolean], - [void], - "nonpayable" - >; - - "startPrank(address,address)": TypedContractMethod< - [msgSender: AddressLike, txOrigin: AddressLike], - [void], - "nonpayable" - >; - - "startPrank(address,address,bool)": TypedContractMethod< - [msgSender: AddressLike, txOrigin: AddressLike, delegateCall: boolean], - [void], - "nonpayable" - >; - - "startSnapshotGas(string)": TypedContractMethod< - [name: string], - [void], - "nonpayable" - >; - - "startSnapshotGas(string,string)": TypedContractMethod< - [group: string, name: string], - [void], - "nonpayable" - >; - - startStateDiffRecording: TypedContractMethod<[], [void], "nonpayable">; - - stopAndReturnDebugTraceRecording: TypedContractMethod< - [], - [VmSafe.DebugStepStructOutput[]], - "nonpayable" - >; - - stopAndReturnStateDiff: TypedContractMethod< - [], - [VmSafe.AccountAccessStructOutput[]], - "nonpayable" - >; - - stopBroadcast: TypedContractMethod<[], [void], "nonpayable">; - - stopExpectSafeMemory: TypedContractMethod<[], [void], "nonpayable">; - - stopMappingRecording: TypedContractMethod<[], [void], "nonpayable">; - - stopPrank: TypedContractMethod<[], [void], "nonpayable">; - - "stopSnapshotGas(string,string)": TypedContractMethod< - [group: string, name: string], - [bigint], - "nonpayable" - >; - - "stopSnapshotGas(string)": TypedContractMethod< - [name: string], - [bigint], - "nonpayable" - >; - - "stopSnapshotGas()": TypedContractMethod<[], [bigint], "nonpayable">; - - store: TypedContractMethod< - [target: AddressLike, slot: BytesLike, value: BytesLike], - [void], - "nonpayable" - >; - - "toBase64(string)": TypedContractMethod<[data: string], [string], "view">; - - "toBase64(bytes)": TypedContractMethod<[data: BytesLike], [string], "view">; - - "toBase64URL(string)": TypedContractMethod<[data: string], [string], "view">; - - "toBase64URL(bytes)": TypedContractMethod< - [data: BytesLike], - [string], - "view" - >; - - toLowercase: TypedContractMethod<[input: string], [string], "view">; - - "toString(address)": TypedContractMethod< - [value: AddressLike], - [string], - "view" - >; - - "toString(uint256)": TypedContractMethod< - [value: BigNumberish], - [string], - "view" - >; - - "toString(bytes)": TypedContractMethod<[value: BytesLike], [string], "view">; - - "toString(bool)": TypedContractMethod<[value: boolean], [string], "view">; - - "toString(int256)": TypedContractMethod< - [value: BigNumberish], - [string], - "view" - >; - - "toString(bytes32)": TypedContractMethod< - [value: BytesLike], - [string], - "view" - >; - - toUppercase: TypedContractMethod<[input: string], [string], "view">; - - "transact(uint256,bytes32)": TypedContractMethod< - [forkId: BigNumberish, txHash: BytesLike], - [void], - "nonpayable" - >; - - "transact(bytes32)": TypedContractMethod< - [txHash: BytesLike], - [void], - "nonpayable" - >; - - trim: TypedContractMethod<[input: string], [string], "view">; - - tryFfi: TypedContractMethod< - [commandInput: string[]], - [VmSafe.FfiResultStructOutput], - "nonpayable" - >; - - txGasPrice: TypedContractMethod< - [newGasPrice: BigNumberish], - [void], - "nonpayable" - >; - - unixTime: TypedContractMethod<[], [bigint], "view">; - - warmSlot: TypedContractMethod< - [target: AddressLike, slot: BytesLike], - [void], - "nonpayable" - >; - - warp: TypedContractMethod<[newTimestamp: BigNumberish], [void], "nonpayable">; - - writeFile: TypedContractMethod< - [path: string, data: string], - [void], - "nonpayable" - >; - - writeFileBinary: TypedContractMethod< - [path: string, data: BytesLike], - [void], - "nonpayable" - >; - - "writeJson(string,string,string)": TypedContractMethod< - [json: string, path: string, valueKey: string], - [void], - "nonpayable" - >; - - "writeJson(string,string)": TypedContractMethod< - [json: string, path: string], - [void], - "nonpayable" - >; - - writeLine: TypedContractMethod< - [path: string, data: string], - [void], - "nonpayable" - >; - - "writeToml(string,string,string)": TypedContractMethod< - [json: string, path: string, valueKey: string], - [void], - "nonpayable" - >; - - "writeToml(string,string)": TypedContractMethod< - [json: string, path: string], - [void], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "accessList" - ): TypedContractMethod< - [access: VmSafe.AccessListItemStruct[]], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "accesses" - ): TypedContractMethod< - [target: AddressLike], - [[string[], string[]] & { readSlots: string[]; writeSlots: string[] }], - "nonpayable" - >; - getFunction( - nameOrSignature: "activeFork" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "addr" - ): TypedContractMethod<[privateKey: BigNumberish], [string], "view">; - getFunction( - nameOrSignature: "allowCheatcodes" - ): TypedContractMethod<[account: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "assertApproxEqAbs(uint256,uint256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, maxDelta: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertApproxEqAbs(int256,int256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, maxDelta: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertApproxEqAbs(int256,int256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxDelta: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertApproxEqAbs(uint256,uint256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxDelta: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxDelta: BigNumberish, - decimals: BigNumberish - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxDelta: BigNumberish, - decimals: BigNumberish - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxDelta: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxDelta: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertApproxEqRel(uint256,uint256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxPercentDelta: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertApproxEqRel(uint256,uint256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, maxPercentDelta: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertApproxEqRel(int256,int256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxPercentDelta: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertApproxEqRel(int256,int256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, maxPercentDelta: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxPercentDelta: BigNumberish, - decimals: BigNumberish - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxPercentDelta: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertApproxEqRelDecimal(int256,int256,uint256,uint256)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxPercentDelta: BigNumberish, - decimals: BigNumberish - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxPercentDelta: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(bytes32[],bytes32[])" - ): TypedContractMethod< - [left: BytesLike[], right: BytesLike[]], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(int256[],int256[],string)" - ): TypedContractMethod< - [left: BigNumberish[], right: BigNumberish[], error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(address,address,string)" - ): TypedContractMethod< - [left: AddressLike, right: AddressLike, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(string,string,string)" - ): TypedContractMethod< - [left: string, right: string, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(address[],address[])" - ): TypedContractMethod< - [left: AddressLike[], right: AddressLike[]], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(address[],address[],string)" - ): TypedContractMethod< - [left: AddressLike[], right: AddressLike[], error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(bool,bool,string)" - ): TypedContractMethod< - [left: boolean, right: boolean, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(address,address)" - ): TypedContractMethod< - [left: AddressLike, right: AddressLike], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(uint256[],uint256[],string)" - ): TypedContractMethod< - [left: BigNumberish[], right: BigNumberish[], error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(bool[],bool[])" - ): TypedContractMethod<[left: boolean[], right: boolean[]], [void], "view">; - getFunction( - nameOrSignature: "assertEq(int256[],int256[])" - ): TypedContractMethod< - [left: BigNumberish[], right: BigNumberish[]], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(int256,int256,string)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(bytes32,bytes32)" - ): TypedContractMethod<[left: BytesLike, right: BytesLike], [void], "view">; - getFunction( - nameOrSignature: "assertEq(uint256,uint256,string)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(uint256[],uint256[])" - ): TypedContractMethod< - [left: BigNumberish[], right: BigNumberish[]], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(bytes,bytes)" - ): TypedContractMethod<[left: BytesLike, right: BytesLike], [void], "view">; - getFunction( - nameOrSignature: "assertEq(uint256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(bytes32,bytes32,string)" - ): TypedContractMethod< - [left: BytesLike, right: BytesLike, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(string[],string[])" - ): TypedContractMethod<[left: string[], right: string[]], [void], "view">; - getFunction( - nameOrSignature: "assertEq(bytes32[],bytes32[],string)" - ): TypedContractMethod< - [left: BytesLike[], right: BytesLike[], error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(bytes,bytes,string)" - ): TypedContractMethod< - [left: BytesLike, right: BytesLike, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(bool[],bool[],string)" - ): TypedContractMethod< - [left: boolean[], right: boolean[], error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(bytes[],bytes[])" - ): TypedContractMethod< - [left: BytesLike[], right: BytesLike[]], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(string[],string[],string)" - ): TypedContractMethod< - [left: string[], right: string[], error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(string,string)" - ): TypedContractMethod<[left: string, right: string], [void], "view">; - getFunction( - nameOrSignature: "assertEq(bytes[],bytes[],string)" - ): TypedContractMethod< - [left: BytesLike[], right: BytesLike[], error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(bool,bool)" - ): TypedContractMethod<[left: boolean, right: boolean], [void], "view">; - getFunction( - nameOrSignature: "assertEq(int256,int256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEqDecimal(uint256,uint256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEqDecimal(int256,int256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEqDecimal(int256,int256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEqDecimal(uint256,uint256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertFalse(bool,string)" - ): TypedContractMethod<[condition: boolean, error: string], [void], "view">; - getFunction( - nameOrSignature: "assertFalse(bool)" - ): TypedContractMethod<[condition: boolean], [void], "view">; - getFunction( - nameOrSignature: "assertGe(int256,int256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertGe(int256,int256,string)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertGe(uint256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertGe(uint256,uint256,string)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertGeDecimal(uint256,uint256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertGeDecimal(int256,int256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertGeDecimal(uint256,uint256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertGeDecimal(int256,int256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertGt(int256,int256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertGt(uint256,uint256,string)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertGt(uint256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertGt(int256,int256,string)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertGtDecimal(int256,int256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertGtDecimal(uint256,uint256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertGtDecimal(int256,int256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertGtDecimal(uint256,uint256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertLe(int256,int256,string)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertLe(uint256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertLe(int256,int256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertLe(uint256,uint256,string)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertLeDecimal(int256,int256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertLeDecimal(uint256,uint256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertLeDecimal(int256,int256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertLeDecimal(uint256,uint256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertLt(int256,int256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertLt(uint256,uint256,string)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertLt(int256,int256,string)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertLt(uint256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertLtDecimal(uint256,uint256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertLtDecimal(int256,int256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertLtDecimal(uint256,uint256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertLtDecimal(int256,int256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(bytes32[],bytes32[])" - ): TypedContractMethod< - [left: BytesLike[], right: BytesLike[]], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(int256[],int256[])" - ): TypedContractMethod< - [left: BigNumberish[], right: BigNumberish[]], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(bool,bool,string)" - ): TypedContractMethod< - [left: boolean, right: boolean, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(bytes[],bytes[],string)" - ): TypedContractMethod< - [left: BytesLike[], right: BytesLike[], error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(bool,bool)" - ): TypedContractMethod<[left: boolean, right: boolean], [void], "view">; - getFunction( - nameOrSignature: "assertNotEq(bool[],bool[])" - ): TypedContractMethod<[left: boolean[], right: boolean[]], [void], "view">; - getFunction( - nameOrSignature: "assertNotEq(bytes,bytes)" - ): TypedContractMethod<[left: BytesLike, right: BytesLike], [void], "view">; - getFunction( - nameOrSignature: "assertNotEq(address[],address[])" - ): TypedContractMethod< - [left: AddressLike[], right: AddressLike[]], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(int256,int256,string)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(uint256[],uint256[])" - ): TypedContractMethod< - [left: BigNumberish[], right: BigNumberish[]], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(bool[],bool[],string)" - ): TypedContractMethod< - [left: boolean[], right: boolean[], error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(string,string)" - ): TypedContractMethod<[left: string, right: string], [void], "view">; - getFunction( - nameOrSignature: "assertNotEq(address[],address[],string)" - ): TypedContractMethod< - [left: AddressLike[], right: AddressLike[], error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(string,string,string)" - ): TypedContractMethod< - [left: string, right: string, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(address,address,string)" - ): TypedContractMethod< - [left: AddressLike, right: AddressLike, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(bytes32,bytes32)" - ): TypedContractMethod<[left: BytesLike, right: BytesLike], [void], "view">; - getFunction( - nameOrSignature: "assertNotEq(bytes,bytes,string)" - ): TypedContractMethod< - [left: BytesLike, right: BytesLike, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(uint256,uint256,string)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(uint256[],uint256[],string)" - ): TypedContractMethod< - [left: BigNumberish[], right: BigNumberish[], error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(address,address)" - ): TypedContractMethod< - [left: AddressLike, right: AddressLike], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(bytes32,bytes32,string)" - ): TypedContractMethod< - [left: BytesLike, right: BytesLike, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(string[],string[],string)" - ): TypedContractMethod< - [left: string[], right: string[], error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(uint256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(bytes32[],bytes32[],string)" - ): TypedContractMethod< - [left: BytesLike[], right: BytesLike[], error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(string[],string[])" - ): TypedContractMethod<[left: string[], right: string[]], [void], "view">; - getFunction( - nameOrSignature: "assertNotEq(int256[],int256[],string)" - ): TypedContractMethod< - [left: BigNumberish[], right: BigNumberish[], error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(bytes[],bytes[])" - ): TypedContractMethod< - [left: BytesLike[], right: BytesLike[]], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(int256,int256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEqDecimal(int256,int256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEqDecimal(int256,int256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEqDecimal(uint256,uint256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEqDecimal(uint256,uint256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertTrue(bool)" - ): TypedContractMethod<[condition: boolean], [void], "view">; - getFunction( - nameOrSignature: "assertTrue(bool,string)" - ): TypedContractMethod<[condition: boolean, error: string], [void], "view">; - getFunction( - nameOrSignature: "assume" - ): TypedContractMethod<[condition: boolean], [void], "view">; - getFunction( - nameOrSignature: "assumeNoRevert()" - ): TypedContractMethod<[], [void], "view">; - getFunction( - nameOrSignature: "assumeNoRevert((address,bool,bytes)[])" - ): TypedContractMethod< - [potentialReverts: VmSafe.PotentialRevertStruct[]], - [void], - "view" - >; - getFunction( - nameOrSignature: "assumeNoRevert((address,bool,bytes))" - ): TypedContractMethod< - [potentialRevert: VmSafe.PotentialRevertStruct], - [void], - "view" - >; - getFunction( - nameOrSignature: "attachBlob" - ): TypedContractMethod<[blob: BytesLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "attachDelegation" - ): TypedContractMethod< - [signedDelegation: VmSafe.SignedDelegationStruct], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "blobBaseFee" - ): TypedContractMethod<[newBlobBaseFee: BigNumberish], [void], "nonpayable">; - getFunction( - nameOrSignature: "blobhashes" - ): TypedContractMethod<[hashes: BytesLike[]], [void], "nonpayable">; - getFunction( - nameOrSignature: "breakpoint(string)" - ): TypedContractMethod<[char: string], [void], "view">; - getFunction( - nameOrSignature: "breakpoint(string,bool)" - ): TypedContractMethod<[char: string, value: boolean], [void], "view">; - getFunction( - nameOrSignature: "broadcast()" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "broadcast(address)" - ): TypedContractMethod<[signer: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "broadcast(uint256)" - ): TypedContractMethod<[privateKey: BigNumberish], [void], "nonpayable">; - getFunction( - nameOrSignature: "broadcastRawTransaction" - ): TypedContractMethod<[data: BytesLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "chainId" - ): TypedContractMethod<[newChainId: BigNumberish], [void], "nonpayable">; - getFunction( - nameOrSignature: "clearMockedCalls" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "cloneAccount" - ): TypedContractMethod< - [source: AddressLike, target: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "closeFile" - ): TypedContractMethod<[path: string], [void], "nonpayable">; - getFunction( - nameOrSignature: "coinbase" - ): TypedContractMethod<[newCoinbase: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "computeCreate2Address(bytes32,bytes32)" - ): TypedContractMethod< - [salt: BytesLike, initCodeHash: BytesLike], - [string], - "view" - >; - getFunction( - nameOrSignature: "computeCreate2Address(bytes32,bytes32,address)" - ): TypedContractMethod< - [salt: BytesLike, initCodeHash: BytesLike, deployer: AddressLike], - [string], - "view" - >; - getFunction( - nameOrSignature: "computeCreateAddress" - ): TypedContractMethod< - [deployer: AddressLike, nonce: BigNumberish], - [string], - "view" - >; - getFunction( - nameOrSignature: "contains" - ): TypedContractMethod< - [subject: string, search: string], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "cool" - ): TypedContractMethod<[target: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "coolSlot" - ): TypedContractMethod< - [target: AddressLike, slot: BytesLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "copyFile" - ): TypedContractMethod<[from: string, to: string], [bigint], "nonpayable">; - getFunction( - nameOrSignature: "copyStorage" - ): TypedContractMethod< - [from: AddressLike, to: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "createDir" - ): TypedContractMethod< - [path: string, recursive: boolean], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "createFork(string)" - ): TypedContractMethod<[urlOrAlias: string], [bigint], "nonpayable">; - getFunction( - nameOrSignature: "createFork(string,uint256)" - ): TypedContractMethod< - [urlOrAlias: string, blockNumber: BigNumberish], - [bigint], - "nonpayable" - >; - getFunction( - nameOrSignature: "createFork(string,bytes32)" - ): TypedContractMethod< - [urlOrAlias: string, txHash: BytesLike], - [bigint], - "nonpayable" - >; - getFunction( - nameOrSignature: "createSelectFork(string,uint256)" - ): TypedContractMethod< - [urlOrAlias: string, blockNumber: BigNumberish], - [bigint], - "nonpayable" - >; - getFunction( - nameOrSignature: "createSelectFork(string,bytes32)" - ): TypedContractMethod< - [urlOrAlias: string, txHash: BytesLike], - [bigint], - "nonpayable" - >; - getFunction( - nameOrSignature: "createSelectFork(string)" - ): TypedContractMethod<[urlOrAlias: string], [bigint], "nonpayable">; - getFunction( - nameOrSignature: "createWallet(string)" - ): TypedContractMethod< - [walletLabel: string], - [VmSafe.WalletStructOutput], - "nonpayable" - >; - getFunction( - nameOrSignature: "createWallet(uint256)" - ): TypedContractMethod< - [privateKey: BigNumberish], - [VmSafe.WalletStructOutput], - "nonpayable" - >; - getFunction( - nameOrSignature: "createWallet(uint256,string)" - ): TypedContractMethod< - [privateKey: BigNumberish, walletLabel: string], - [VmSafe.WalletStructOutput], - "nonpayable" - >; - getFunction( - nameOrSignature: "deal" - ): TypedContractMethod< - [account: AddressLike, newBalance: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "deleteSnapshot" - ): TypedContractMethod<[snapshotId: BigNumberish], [boolean], "nonpayable">; - getFunction( - nameOrSignature: "deleteSnapshots" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "deleteStateSnapshot" - ): TypedContractMethod<[snapshotId: BigNumberish], [boolean], "nonpayable">; - getFunction( - nameOrSignature: "deleteStateSnapshots" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "deployCode(string,uint256,bytes32)" - ): TypedContractMethod< - [artifactPath: string, value: BigNumberish, salt: BytesLike], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "deployCode(string,bytes,bytes32)" - ): TypedContractMethod< - [artifactPath: string, constructorArgs: BytesLike, salt: BytesLike], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "deployCode(string,uint256)" - ): TypedContractMethod< - [artifactPath: string, value: BigNumberish], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "deployCode(string,bytes32)" - ): TypedContractMethod< - [artifactPath: string, salt: BytesLike], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "deployCode(string,bytes)" - ): TypedContractMethod< - [artifactPath: string, constructorArgs: BytesLike], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "deployCode(string,bytes,uint256,bytes32)" - ): TypedContractMethod< - [ - artifactPath: string, - constructorArgs: BytesLike, - value: BigNumberish, - salt: BytesLike - ], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "deployCode(string)" - ): TypedContractMethod<[artifactPath: string], [string], "nonpayable">; - getFunction( - nameOrSignature: "deployCode(string,bytes,uint256)" - ): TypedContractMethod< - [artifactPath: string, constructorArgs: BytesLike, value: BigNumberish], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "deriveKey(string,string,uint32,string)" - ): TypedContractMethod< - [ - mnemonic: string, - derivationPath: string, - index: BigNumberish, - language: string - ], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "deriveKey(string,uint32,string)" - ): TypedContractMethod< - [mnemonic: string, index: BigNumberish, language: string], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "deriveKey(string,uint32)" - ): TypedContractMethod< - [mnemonic: string, index: BigNumberish], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "deriveKey(string,string,uint32)" - ): TypedContractMethod< - [mnemonic: string, derivationPath: string, index: BigNumberish], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "difficulty" - ): TypedContractMethod<[newDifficulty: BigNumberish], [void], "nonpayable">; - getFunction( - nameOrSignature: "dumpState" - ): TypedContractMethod<[pathToStateJson: string], [void], "nonpayable">; - getFunction( - nameOrSignature: "ensNamehash" - ): TypedContractMethod<[name: string], [string], "view">; - getFunction( - nameOrSignature: "envAddress(string)" - ): TypedContractMethod<[name: string], [string], "view">; - getFunction( - nameOrSignature: "envAddress(string,string)" - ): TypedContractMethod<[name: string, delim: string], [string[]], "view">; - getFunction( - nameOrSignature: "envBool(string)" - ): TypedContractMethod<[name: string], [boolean], "view">; - getFunction( - nameOrSignature: "envBool(string,string)" - ): TypedContractMethod<[name: string, delim: string], [boolean[]], "view">; - getFunction( - nameOrSignature: "envBytes(string)" - ): TypedContractMethod<[name: string], [string], "view">; - getFunction( - nameOrSignature: "envBytes(string,string)" - ): TypedContractMethod<[name: string, delim: string], [string[]], "view">; - getFunction( - nameOrSignature: "envBytes32(string,string)" - ): TypedContractMethod<[name: string, delim: string], [string[]], "view">; - getFunction( - nameOrSignature: "envBytes32(string)" - ): TypedContractMethod<[name: string], [string], "view">; - getFunction( - nameOrSignature: "envExists" - ): TypedContractMethod<[name: string], [boolean], "view">; - getFunction( - nameOrSignature: "envInt(string,string)" - ): TypedContractMethod<[name: string, delim: string], [bigint[]], "view">; - getFunction( - nameOrSignature: "envInt(string)" - ): TypedContractMethod<[name: string], [bigint], "view">; - getFunction( - nameOrSignature: "envOr(string,string,bytes32[])" - ): TypedContractMethod< - [name: string, delim: string, defaultValue: BytesLike[]], - [string[]], - "view" - >; - getFunction( - nameOrSignature: "envOr(string,string,int256[])" - ): TypedContractMethod< - [name: string, delim: string, defaultValue: BigNumberish[]], - [bigint[]], - "view" - >; - getFunction( - nameOrSignature: "envOr(string,bool)" - ): TypedContractMethod< - [name: string, defaultValue: boolean], - [boolean], - "view" - >; - getFunction( - nameOrSignature: "envOr(string,address)" - ): TypedContractMethod< - [name: string, defaultValue: AddressLike], - [string], - "view" - >; - getFunction( - nameOrSignature: "envOr(string,uint256)" - ): TypedContractMethod< - [name: string, defaultValue: BigNumberish], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "envOr(string,string,bytes[])" - ): TypedContractMethod< - [name: string, delim: string, defaultValue: BytesLike[]], - [string[]], - "view" - >; - getFunction( - nameOrSignature: "envOr(string,string,uint256[])" - ): TypedContractMethod< - [name: string, delim: string, defaultValue: BigNumberish[]], - [bigint[]], - "view" - >; - getFunction( - nameOrSignature: "envOr(string,string,string[])" - ): TypedContractMethod< - [name: string, delim: string, defaultValue: string[]], - [string[]], - "view" - >; - getFunction( - nameOrSignature: "envOr(string,bytes)" - ): TypedContractMethod< - [name: string, defaultValue: BytesLike], - [string], - "view" - >; - getFunction( - nameOrSignature: "envOr(string,bytes32)" - ): TypedContractMethod< - [name: string, defaultValue: BytesLike], - [string], - "view" - >; - getFunction( - nameOrSignature: "envOr(string,int256)" - ): TypedContractMethod< - [name: string, defaultValue: BigNumberish], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "envOr(string,string,address[])" - ): TypedContractMethod< - [name: string, delim: string, defaultValue: AddressLike[]], - [string[]], - "view" - >; - getFunction( - nameOrSignature: "envOr(string,string)" - ): TypedContractMethod< - [name: string, defaultValue: string], - [string], - "view" - >; - getFunction( - nameOrSignature: "envOr(string,string,bool[])" - ): TypedContractMethod< - [name: string, delim: string, defaultValue: boolean[]], - [boolean[]], - "view" - >; - getFunction( - nameOrSignature: "envString(string,string)" - ): TypedContractMethod<[name: string, delim: string], [string[]], "view">; - getFunction( - nameOrSignature: "envString(string)" - ): TypedContractMethod<[name: string], [string], "view">; - getFunction( - nameOrSignature: "envUint(string)" - ): TypedContractMethod<[name: string], [bigint], "view">; - getFunction( - nameOrSignature: "envUint(string,string)" - ): TypedContractMethod<[name: string, delim: string], [bigint[]], "view">; - getFunction( - nameOrSignature: "etch" - ): TypedContractMethod< - [target: AddressLike, newRuntimeBytecode: BytesLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "eth_getLogs" - ): TypedContractMethod< - [ - fromBlock: BigNumberish, - toBlock: BigNumberish, - target: AddressLike, - topics: BytesLike[] - ], - [VmSafe.EthGetLogsStructOutput[]], - "nonpayable" - >; - getFunction( - nameOrSignature: "exists" - ): TypedContractMethod<[path: string], [boolean], "view">; - getFunction( - nameOrSignature: "expectCall(address,uint256,uint64,bytes)" - ): TypedContractMethod< - [ - callee: AddressLike, - msgValue: BigNumberish, - gas: BigNumberish, - data: BytesLike - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "expectCall(address,uint256,uint64,bytes,uint64)" - ): TypedContractMethod< - [ - callee: AddressLike, - msgValue: BigNumberish, - gas: BigNumberish, - data: BytesLike, - count: BigNumberish - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "expectCall(address,uint256,bytes,uint64)" - ): TypedContractMethod< - [ - callee: AddressLike, - msgValue: BigNumberish, - data: BytesLike, - count: BigNumberish - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "expectCall(address,bytes)" - ): TypedContractMethod< - [callee: AddressLike, data: BytesLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "expectCall(address,bytes,uint64)" - ): TypedContractMethod< - [callee: AddressLike, data: BytesLike, count: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "expectCall(address,uint256,bytes)" - ): TypedContractMethod< - [callee: AddressLike, msgValue: BigNumberish, data: BytesLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "expectCallMinGas(address,uint256,uint64,bytes)" - ): TypedContractMethod< - [ - callee: AddressLike, - msgValue: BigNumberish, - minGas: BigNumberish, - data: BytesLike - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "expectCallMinGas(address,uint256,uint64,bytes,uint64)" - ): TypedContractMethod< - [ - callee: AddressLike, - msgValue: BigNumberish, - minGas: BigNumberish, - data: BytesLike, - count: BigNumberish - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "expectCreate" - ): TypedContractMethod< - [bytecode: BytesLike, deployer: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "expectCreate2" - ): TypedContractMethod< - [bytecode: BytesLike, deployer: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "expectEmit()" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "expectEmit(bool,bool,bool,bool)" - ): TypedContractMethod< - [ - checkTopic1: boolean, - checkTopic2: boolean, - checkTopic3: boolean, - checkData: boolean - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "expectEmit(uint64)" - ): TypedContractMethod<[count: BigNumberish], [void], "nonpayable">; - getFunction( - nameOrSignature: "expectEmit(bool,bool,bool,bool,uint64)" - ): TypedContractMethod< - [ - checkTopic1: boolean, - checkTopic2: boolean, - checkTopic3: boolean, - checkData: boolean, - count: BigNumberish - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "expectEmit(bool,bool,bool,bool,address)" - ): TypedContractMethod< - [ - checkTopic1: boolean, - checkTopic2: boolean, - checkTopic3: boolean, - checkData: boolean, - emitter: AddressLike - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "expectEmit(address)" - ): TypedContractMethod<[emitter: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "expectEmit(address,uint64)" - ): TypedContractMethod< - [emitter: AddressLike, count: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "expectEmit(bool,bool,bool,bool,address,uint64)" - ): TypedContractMethod< - [ - checkTopic1: boolean, - checkTopic2: boolean, - checkTopic3: boolean, - checkData: boolean, - emitter: AddressLike, - count: BigNumberish - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "expectEmitAnonymous()" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "expectEmitAnonymous(address)" - ): TypedContractMethod<[emitter: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "expectEmitAnonymous(bool,bool,bool,bool,bool,address)" - ): TypedContractMethod< - [ - checkTopic0: boolean, - checkTopic1: boolean, - checkTopic2: boolean, - checkTopic3: boolean, - checkData: boolean, - emitter: AddressLike - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "expectEmitAnonymous(bool,bool,bool,bool,bool)" - ): TypedContractMethod< - [ - checkTopic0: boolean, - checkTopic1: boolean, - checkTopic2: boolean, - checkTopic3: boolean, - checkData: boolean - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "expectPartialRevert(bytes4)" - ): TypedContractMethod<[revertData: BytesLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "expectPartialRevert(bytes4,address)" - ): TypedContractMethod< - [revertData: BytesLike, reverter: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "expectRevert(address,uint64)" - ): TypedContractMethod< - [reverter: AddressLike, count: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "expectRevert(bytes4,address)" - ): TypedContractMethod< - [revertData: BytesLike, reverter: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "expectRevert(bytes,uint64)" - ): TypedContractMethod< - [revertData: BytesLike, count: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "expectRevert(uint64)" - ): TypedContractMethod<[count: BigNumberish], [void], "nonpayable">; - getFunction( - nameOrSignature: "expectRevert(bytes,address)" - ): TypedContractMethod< - [revertData: BytesLike, reverter: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "expectRevert(bytes4,address,uint64)" - ): TypedContractMethod< - [revertData: BytesLike, reverter: AddressLike, count: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "expectRevert(bytes4)" - ): TypedContractMethod<[revertData: BytesLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "expectRevert(bytes,address,uint64)" - ): TypedContractMethod< - [revertData: BytesLike, reverter: AddressLike, count: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "expectRevert(address)" - ): TypedContractMethod<[reverter: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "expectRevert(bytes4,uint64)" - ): TypedContractMethod< - [revertData: BytesLike, count: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "expectRevert(bytes)" - ): TypedContractMethod<[revertData: BytesLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "expectRevert()" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "expectSafeMemory" - ): TypedContractMethod< - [min: BigNumberish, max: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "expectSafeMemoryCall" - ): TypedContractMethod< - [min: BigNumberish, max: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "fee" - ): TypedContractMethod<[newBasefee: BigNumberish], [void], "nonpayable">; - getFunction( - nameOrSignature: "ffi" - ): TypedContractMethod<[commandInput: string[]], [string], "nonpayable">; - getFunction( - nameOrSignature: "foundryVersionAtLeast" - ): TypedContractMethod<[version: string], [boolean], "view">; - getFunction( - nameOrSignature: "foundryVersionCmp" - ): TypedContractMethod<[version: string], [bigint], "view">; - getFunction( - nameOrSignature: "fsMetadata" - ): TypedContractMethod< - [path: string], - [VmSafe.FsMetadataStructOutput], - "view" - >; - getFunction( - nameOrSignature: "getArtifactPathByCode" - ): TypedContractMethod<[code: BytesLike], [string], "view">; - getFunction( - nameOrSignature: "getArtifactPathByDeployedCode" - ): TypedContractMethod<[deployedCode: BytesLike], [string], "view">; - getFunction( - nameOrSignature: "getBlobBaseFee" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "getBlobhashes" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "getBlockNumber" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "getBlockTimestamp" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "getBroadcast" - ): TypedContractMethod< - [contractName: string, chainId: BigNumberish, txType: BigNumberish], - [VmSafe.BroadcastTxSummaryStructOutput], - "view" - >; - getFunction( - nameOrSignature: "getBroadcasts(string,uint64)" - ): TypedContractMethod< - [contractName: string, chainId: BigNumberish], - [VmSafe.BroadcastTxSummaryStructOutput[]], - "view" - >; - getFunction( - nameOrSignature: "getBroadcasts(string,uint64,uint8)" - ): TypedContractMethod< - [contractName: string, chainId: BigNumberish, txType: BigNumberish], - [VmSafe.BroadcastTxSummaryStructOutput[]], - "view" - >; - getFunction( - nameOrSignature: "getChain(string)" - ): TypedContractMethod< - [chainAlias: string], - [VmSafe.ChainStructOutput], - "view" - >; - getFunction( - nameOrSignature: "getChain(uint256)" - ): TypedContractMethod< - [chainId: BigNumberish], - [VmSafe.ChainStructOutput], - "view" - >; - getFunction( - nameOrSignature: "getCode" - ): TypedContractMethod<[artifactPath: string], [string], "view">; - getFunction( - nameOrSignature: "getDeployedCode" - ): TypedContractMethod<[artifactPath: string], [string], "view">; - getFunction( - nameOrSignature: "getDeployment(string,uint64)" - ): TypedContractMethod< - [contractName: string, chainId: BigNumberish], - [string], - "view" - >; - getFunction( - nameOrSignature: "getDeployment(string)" - ): TypedContractMethod<[contractName: string], [string], "view">; - getFunction( - nameOrSignature: "getDeployments" - ): TypedContractMethod< - [contractName: string, chainId: BigNumberish], - [string[]], - "view" - >; - getFunction( - nameOrSignature: "getFoundryVersion" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "getLabel" - ): TypedContractMethod<[account: AddressLike], [string], "view">; - getFunction( - nameOrSignature: "getMappingKeyAndParentOf" - ): TypedContractMethod< - [target: AddressLike, elementSlot: BytesLike], - [ - [boolean, string, string] & { - found: boolean; - key: string; - parent: string; - } - ], - "nonpayable" - >; - getFunction( - nameOrSignature: "getMappingLength" - ): TypedContractMethod< - [target: AddressLike, mappingSlot: BytesLike], - [bigint], - "nonpayable" - >; - getFunction( - nameOrSignature: "getMappingSlotAt" - ): TypedContractMethod< - [target: AddressLike, mappingSlot: BytesLike, idx: BigNumberish], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "getNonce(address)" - ): TypedContractMethod<[account: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "getNonce((address,uint256,uint256,uint256))" - ): TypedContractMethod<[wallet: VmSafe.WalletStruct], [bigint], "nonpayable">; - getFunction( - nameOrSignature: "getRecordedLogs" - ): TypedContractMethod<[], [VmSafe.LogStructOutput[]], "nonpayable">; - getFunction( - nameOrSignature: "getStateDiff" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "getStateDiffJson" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "getWallets" - ): TypedContractMethod<[], [string[]], "nonpayable">; - getFunction( - nameOrSignature: "indexOf" - ): TypedContractMethod<[input: string, key: string], [bigint], "view">; - getFunction( - nameOrSignature: "interceptInitcode" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "isContext" - ): TypedContractMethod<[context: BigNumberish], [boolean], "view">; - getFunction( - nameOrSignature: "isDir" - ): TypedContractMethod<[path: string], [boolean], "view">; - getFunction( - nameOrSignature: "isFile" - ): TypedContractMethod<[path: string], [boolean], "view">; - getFunction( - nameOrSignature: "isPersistent" - ): TypedContractMethod<[account: AddressLike], [boolean], "view">; - getFunction( - nameOrSignature: "keyExists" - ): TypedContractMethod<[json: string, key: string], [boolean], "view">; - getFunction( - nameOrSignature: "keyExistsJson" - ): TypedContractMethod<[json: string, key: string], [boolean], "view">; - getFunction( - nameOrSignature: "keyExistsToml" - ): TypedContractMethod<[toml: string, key: string], [boolean], "view">; - getFunction( - nameOrSignature: "label" - ): TypedContractMethod< - [account: AddressLike, newLabel: string], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "lastCallGas" - ): TypedContractMethod<[], [VmSafe.GasStructOutput], "view">; - getFunction( - nameOrSignature: "load" - ): TypedContractMethod< - [target: AddressLike, slot: BytesLike], - [string], - "view" - >; - getFunction( - nameOrSignature: "loadAllocs" - ): TypedContractMethod<[pathToAllocsJson: string], [void], "nonpayable">; - getFunction( - nameOrSignature: "makePersistent(address[])" - ): TypedContractMethod<[accounts: AddressLike[]], [void], "nonpayable">; - getFunction( - nameOrSignature: "makePersistent(address,address)" - ): TypedContractMethod< - [account0: AddressLike, account1: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "makePersistent(address)" - ): TypedContractMethod<[account: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "makePersistent(address,address,address)" - ): TypedContractMethod< - [account0: AddressLike, account1: AddressLike, account2: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "mockCall(address,bytes4,bytes)" - ): TypedContractMethod< - [callee: AddressLike, data: BytesLike, returnData: BytesLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "mockCall(address,uint256,bytes,bytes)" - ): TypedContractMethod< - [ - callee: AddressLike, - msgValue: BigNumberish, - data: BytesLike, - returnData: BytesLike - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "mockCall(address,bytes,bytes)" - ): TypedContractMethod< - [callee: AddressLike, data: BytesLike, returnData: BytesLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "mockCall(address,uint256,bytes4,bytes)" - ): TypedContractMethod< - [ - callee: AddressLike, - msgValue: BigNumberish, - data: BytesLike, - returnData: BytesLike - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "mockCallRevert(address,bytes4,bytes)" - ): TypedContractMethod< - [callee: AddressLike, data: BytesLike, revertData: BytesLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "mockCallRevert(address,uint256,bytes4,bytes)" - ): TypedContractMethod< - [ - callee: AddressLike, - msgValue: BigNumberish, - data: BytesLike, - revertData: BytesLike - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "mockCallRevert(address,uint256,bytes,bytes)" - ): TypedContractMethod< - [ - callee: AddressLike, - msgValue: BigNumberish, - data: BytesLike, - revertData: BytesLike - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "mockCallRevert(address,bytes,bytes)" - ): TypedContractMethod< - [callee: AddressLike, data: BytesLike, revertData: BytesLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "mockCalls(address,uint256,bytes,bytes[])" - ): TypedContractMethod< - [ - callee: AddressLike, - msgValue: BigNumberish, - data: BytesLike, - returnData: BytesLike[] - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "mockCalls(address,bytes,bytes[])" - ): TypedContractMethod< - [callee: AddressLike, data: BytesLike, returnData: BytesLike[]], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "mockFunction" - ): TypedContractMethod< - [callee: AddressLike, target: AddressLike, data: BytesLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "noAccessList" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "parseAddress" - ): TypedContractMethod<[stringifiedValue: string], [string], "view">; - getFunction( - nameOrSignature: "parseBool" - ): TypedContractMethod<[stringifiedValue: string], [boolean], "view">; - getFunction( - nameOrSignature: "parseBytes" - ): TypedContractMethod<[stringifiedValue: string], [string], "view">; - getFunction( - nameOrSignature: "parseBytes32" - ): TypedContractMethod<[stringifiedValue: string], [string], "view">; - getFunction( - nameOrSignature: "parseInt" - ): TypedContractMethod<[stringifiedValue: string], [bigint], "view">; - getFunction( - nameOrSignature: "parseJson(string)" - ): TypedContractMethod<[json: string], [string], "view">; - getFunction( - nameOrSignature: "parseJson(string,string)" - ): TypedContractMethod<[json: string, key: string], [string], "view">; - getFunction( - nameOrSignature: "parseJsonAddress" - ): TypedContractMethod<[json: string, key: string], [string], "view">; - getFunction( - nameOrSignature: "parseJsonAddressArray" - ): TypedContractMethod<[json: string, key: string], [string[]], "view">; - getFunction( - nameOrSignature: "parseJsonBool" - ): TypedContractMethod<[json: string, key: string], [boolean], "view">; - getFunction( - nameOrSignature: "parseJsonBoolArray" - ): TypedContractMethod<[json: string, key: string], [boolean[]], "view">; - getFunction( - nameOrSignature: "parseJsonBytes" - ): TypedContractMethod<[json: string, key: string], [string], "view">; - getFunction( - nameOrSignature: "parseJsonBytes32" - ): TypedContractMethod<[json: string, key: string], [string], "view">; - getFunction( - nameOrSignature: "parseJsonBytes32Array" - ): TypedContractMethod<[json: string, key: string], [string[]], "view">; - getFunction( - nameOrSignature: "parseJsonBytesArray" - ): TypedContractMethod<[json: string, key: string], [string[]], "view">; - getFunction( - nameOrSignature: "parseJsonInt" - ): TypedContractMethod<[json: string, key: string], [bigint], "view">; - getFunction( - nameOrSignature: "parseJsonIntArray" - ): TypedContractMethod<[json: string, key: string], [bigint[]], "view">; - getFunction( - nameOrSignature: "parseJsonKeys" - ): TypedContractMethod<[json: string, key: string], [string[]], "view">; - getFunction( - nameOrSignature: "parseJsonString" - ): TypedContractMethod<[json: string, key: string], [string], "view">; - getFunction( - nameOrSignature: "parseJsonStringArray" - ): TypedContractMethod<[json: string, key: string], [string[]], "view">; - getFunction( - nameOrSignature: "parseJsonType(string,string)" - ): TypedContractMethod< - [json: string, typeDescription: string], - [string], - "view" - >; - getFunction( - nameOrSignature: "parseJsonType(string,string,string)" - ): TypedContractMethod< - [json: string, key: string, typeDescription: string], - [string], - "view" - >; - getFunction( - nameOrSignature: "parseJsonTypeArray" - ): TypedContractMethod< - [json: string, key: string, typeDescription: string], - [string], - "view" - >; - getFunction( - nameOrSignature: "parseJsonUint" - ): TypedContractMethod<[json: string, key: string], [bigint], "view">; - getFunction( - nameOrSignature: "parseJsonUintArray" - ): TypedContractMethod<[json: string, key: string], [bigint[]], "view">; - getFunction( - nameOrSignature: "parseToml(string,string)" - ): TypedContractMethod<[toml: string, key: string], [string], "view">; - getFunction( - nameOrSignature: "parseToml(string)" - ): TypedContractMethod<[toml: string], [string], "view">; - getFunction( - nameOrSignature: "parseTomlAddress" - ): TypedContractMethod<[toml: string, key: string], [string], "view">; - getFunction( - nameOrSignature: "parseTomlAddressArray" - ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; - getFunction( - nameOrSignature: "parseTomlBool" - ): TypedContractMethod<[toml: string, key: string], [boolean], "view">; - getFunction( - nameOrSignature: "parseTomlBoolArray" - ): TypedContractMethod<[toml: string, key: string], [boolean[]], "view">; - getFunction( - nameOrSignature: "parseTomlBytes" - ): TypedContractMethod<[toml: string, key: string], [string], "view">; - getFunction( - nameOrSignature: "parseTomlBytes32" - ): TypedContractMethod<[toml: string, key: string], [string], "view">; - getFunction( - nameOrSignature: "parseTomlBytes32Array" - ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; - getFunction( - nameOrSignature: "parseTomlBytesArray" - ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; - getFunction( - nameOrSignature: "parseTomlInt" - ): TypedContractMethod<[toml: string, key: string], [bigint], "view">; - getFunction( - nameOrSignature: "parseTomlIntArray" - ): TypedContractMethod<[toml: string, key: string], [bigint[]], "view">; - getFunction( - nameOrSignature: "parseTomlKeys" - ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; - getFunction( - nameOrSignature: "parseTomlString" - ): TypedContractMethod<[toml: string, key: string], [string], "view">; - getFunction( - nameOrSignature: "parseTomlStringArray" - ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; - getFunction( - nameOrSignature: "parseTomlType(string,string)" - ): TypedContractMethod< - [toml: string, typeDescription: string], - [string], - "view" - >; - getFunction( - nameOrSignature: "parseTomlType(string,string,string)" - ): TypedContractMethod< - [toml: string, key: string, typeDescription: string], - [string], - "view" - >; - getFunction( - nameOrSignature: "parseTomlTypeArray" - ): TypedContractMethod< - [toml: string, key: string, typeDescription: string], - [string], - "view" - >; - getFunction( - nameOrSignature: "parseTomlUint" - ): TypedContractMethod<[toml: string, key: string], [bigint], "view">; - getFunction( - nameOrSignature: "parseTomlUintArray" - ): TypedContractMethod<[toml: string, key: string], [bigint[]], "view">; - getFunction( - nameOrSignature: "parseUint" - ): TypedContractMethod<[stringifiedValue: string], [bigint], "view">; - getFunction( - nameOrSignature: "pauseGasMetering" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "pauseTracing" - ): TypedContractMethod<[], [void], "view">; - getFunction( - nameOrSignature: "prank(address,address)" - ): TypedContractMethod< - [msgSender: AddressLike, txOrigin: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "prank(address,address,bool)" - ): TypedContractMethod< - [msgSender: AddressLike, txOrigin: AddressLike, delegateCall: boolean], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "prank(address,bool)" - ): TypedContractMethod< - [msgSender: AddressLike, delegateCall: boolean], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "prank(address)" - ): TypedContractMethod<[msgSender: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "prevrandao(bytes32)" - ): TypedContractMethod<[newPrevrandao: BytesLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "prevrandao(uint256)" - ): TypedContractMethod<[newPrevrandao: BigNumberish], [void], "nonpayable">; - getFunction( - nameOrSignature: "projectRoot" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "prompt" - ): TypedContractMethod<[promptText: string], [string], "nonpayable">; - getFunction( - nameOrSignature: "promptAddress" - ): TypedContractMethod<[promptText: string], [string], "nonpayable">; - getFunction( - nameOrSignature: "promptSecret" - ): TypedContractMethod<[promptText: string], [string], "nonpayable">; - getFunction( - nameOrSignature: "promptSecretUint" - ): TypedContractMethod<[promptText: string], [bigint], "nonpayable">; - getFunction( - nameOrSignature: "promptUint" - ): TypedContractMethod<[promptText: string], [bigint], "nonpayable">; - getFunction( - nameOrSignature: "publicKeyP256" - ): TypedContractMethod< - [privateKey: BigNumberish], - [[bigint, bigint] & { publicKeyX: bigint; publicKeyY: bigint }], - "view" - >; - getFunction( - nameOrSignature: "randomAddress" - ): TypedContractMethod<[], [string], "nonpayable">; - getFunction( - nameOrSignature: "randomBool" - ): TypedContractMethod<[], [boolean], "view">; - getFunction( - nameOrSignature: "randomBytes" - ): TypedContractMethod<[len: BigNumberish], [string], "view">; - getFunction( - nameOrSignature: "randomBytes4" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "randomBytes8" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "randomInt()" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "randomInt(uint256)" - ): TypedContractMethod<[bits: BigNumberish], [bigint], "view">; - getFunction( - nameOrSignature: "randomUint()" - ): TypedContractMethod<[], [bigint], "nonpayable">; - getFunction( - nameOrSignature: "randomUint(uint256)" - ): TypedContractMethod<[bits: BigNumberish], [bigint], "view">; - getFunction( - nameOrSignature: "randomUint(uint256,uint256)" - ): TypedContractMethod< - [min: BigNumberish, max: BigNumberish], - [bigint], - "nonpayable" - >; - getFunction( - nameOrSignature: "readCallers" - ): TypedContractMethod< - [], - [ - [bigint, string, string] & { - callerMode: bigint; - msgSender: string; - txOrigin: string; - } - ], - "nonpayable" - >; - getFunction( - nameOrSignature: "readDir(string,uint64)" - ): TypedContractMethod< - [path: string, maxDepth: BigNumberish], - [VmSafe.DirEntryStructOutput[]], - "view" - >; - getFunction( - nameOrSignature: "readDir(string,uint64,bool)" - ): TypedContractMethod< - [path: string, maxDepth: BigNumberish, followLinks: boolean], - [VmSafe.DirEntryStructOutput[]], - "view" - >; - getFunction( - nameOrSignature: "readDir(string)" - ): TypedContractMethod< - [path: string], - [VmSafe.DirEntryStructOutput[]], - "view" - >; - getFunction( - nameOrSignature: "readFile" - ): TypedContractMethod<[path: string], [string], "view">; - getFunction( - nameOrSignature: "readFileBinary" - ): TypedContractMethod<[path: string], [string], "view">; - getFunction( - nameOrSignature: "readLine" - ): TypedContractMethod<[path: string], [string], "view">; - getFunction( - nameOrSignature: "readLink" - ): TypedContractMethod<[linkPath: string], [string], "view">; - getFunction( - nameOrSignature: "record" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "recordLogs" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "rememberKey" - ): TypedContractMethod<[privateKey: BigNumberish], [string], "nonpayable">; - getFunction( - nameOrSignature: "rememberKeys(string,string,uint32)" - ): TypedContractMethod< - [mnemonic: string, derivationPath: string, count: BigNumberish], - [string[]], - "nonpayable" - >; - getFunction( - nameOrSignature: "rememberKeys(string,string,string,uint32)" - ): TypedContractMethod< - [ - mnemonic: string, - derivationPath: string, - language: string, - count: BigNumberish - ], - [string[]], - "nonpayable" - >; - getFunction( - nameOrSignature: "removeDir" - ): TypedContractMethod< - [path: string, recursive: boolean], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "removeFile" - ): TypedContractMethod<[path: string], [void], "nonpayable">; - getFunction( - nameOrSignature: "replace" - ): TypedContractMethod< - [input: string, from: string, to: string], - [string], - "view" - >; - getFunction( - nameOrSignature: "resetGasMetering" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "resetNonce" - ): TypedContractMethod<[account: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "resumeGasMetering" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "resumeTracing" - ): TypedContractMethod<[], [void], "view">; - getFunction( - nameOrSignature: "revertTo" - ): TypedContractMethod<[snapshotId: BigNumberish], [boolean], "nonpayable">; - getFunction( - nameOrSignature: "revertToAndDelete" - ): TypedContractMethod<[snapshotId: BigNumberish], [boolean], "nonpayable">; - getFunction( - nameOrSignature: "revertToState" - ): TypedContractMethod<[snapshotId: BigNumberish], [boolean], "nonpayable">; - getFunction( - nameOrSignature: "revertToStateAndDelete" - ): TypedContractMethod<[snapshotId: BigNumberish], [boolean], "nonpayable">; - getFunction( - nameOrSignature: "revokePersistent(address[])" - ): TypedContractMethod<[accounts: AddressLike[]], [void], "nonpayable">; - getFunction( - nameOrSignature: "revokePersistent(address)" - ): TypedContractMethod<[account: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "roll" - ): TypedContractMethod<[newHeight: BigNumberish], [void], "nonpayable">; - getFunction( - nameOrSignature: "rollFork(bytes32)" - ): TypedContractMethod<[txHash: BytesLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "rollFork(uint256,uint256)" - ): TypedContractMethod< - [forkId: BigNumberish, blockNumber: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "rollFork(uint256)" - ): TypedContractMethod<[blockNumber: BigNumberish], [void], "nonpayable">; - getFunction( - nameOrSignature: "rollFork(uint256,bytes32)" - ): TypedContractMethod< - [forkId: BigNumberish, txHash: BytesLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "rpc(string,string,string)" - ): TypedContractMethod< - [urlOrAlias: string, method: string, params: string], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "rpc(string,string)" - ): TypedContractMethod< - [method: string, params: string], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "rpcUrl" - ): TypedContractMethod<[rpcAlias: string], [string], "view">; - getFunction( - nameOrSignature: "rpcUrlStructs" - ): TypedContractMethod<[], [VmSafe.RpcStructOutput[]], "view">; - getFunction( - nameOrSignature: "rpcUrls" - ): TypedContractMethod<[], [[string, string][]], "view">; - getFunction( - nameOrSignature: "selectFork" - ): TypedContractMethod<[forkId: BigNumberish], [void], "nonpayable">; - getFunction( - nameOrSignature: "serializeAddress(string,string,address[])" - ): TypedContractMethod< - [objectKey: string, valueKey: string, values: AddressLike[]], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "serializeAddress(string,string,address)" - ): TypedContractMethod< - [objectKey: string, valueKey: string, value: AddressLike], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "serializeBool(string,string,bool[])" - ): TypedContractMethod< - [objectKey: string, valueKey: string, values: boolean[]], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "serializeBool(string,string,bool)" - ): TypedContractMethod< - [objectKey: string, valueKey: string, value: boolean], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "serializeBytes(string,string,bytes[])" - ): TypedContractMethod< - [objectKey: string, valueKey: string, values: BytesLike[]], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "serializeBytes(string,string,bytes)" - ): TypedContractMethod< - [objectKey: string, valueKey: string, value: BytesLike], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "serializeBytes32(string,string,bytes32[])" - ): TypedContractMethod< - [objectKey: string, valueKey: string, values: BytesLike[]], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "serializeBytes32(string,string,bytes32)" - ): TypedContractMethod< - [objectKey: string, valueKey: string, value: BytesLike], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "serializeInt(string,string,int256)" - ): TypedContractMethod< - [objectKey: string, valueKey: string, value: BigNumberish], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "serializeInt(string,string,int256[])" - ): TypedContractMethod< - [objectKey: string, valueKey: string, values: BigNumberish[]], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "serializeJson" - ): TypedContractMethod< - [objectKey: string, value: string], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "serializeJsonType(string,bytes)" - ): TypedContractMethod< - [typeDescription: string, value: BytesLike], - [string], - "view" - >; - getFunction( - nameOrSignature: "serializeJsonType(string,string,string,bytes)" - ): TypedContractMethod< - [ - objectKey: string, - valueKey: string, - typeDescription: string, - value: BytesLike - ], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "serializeString(string,string,string[])" - ): TypedContractMethod< - [objectKey: string, valueKey: string, values: string[]], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "serializeString(string,string,string)" - ): TypedContractMethod< - [objectKey: string, valueKey: string, value: string], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "serializeUint(string,string,uint256)" - ): TypedContractMethod< - [objectKey: string, valueKey: string, value: BigNumberish], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "serializeUint(string,string,uint256[])" - ): TypedContractMethod< - [objectKey: string, valueKey: string, values: BigNumberish[]], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "serializeUintToHex" - ): TypedContractMethod< - [objectKey: string, valueKey: string, value: BigNumberish], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "setArbitraryStorage(address,bool)" - ): TypedContractMethod< - [target: AddressLike, overwrite: boolean], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "setArbitraryStorage(address)" - ): TypedContractMethod<[target: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "setBlockhash" - ): TypedContractMethod< - [blockNumber: BigNumberish, blockHash: BytesLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "setEnv" - ): TypedContractMethod<[name: string, value: string], [void], "nonpayable">; - getFunction( - nameOrSignature: "setNonce" - ): TypedContractMethod< - [account: AddressLike, newNonce: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "setNonceUnsafe" - ): TypedContractMethod< - [account: AddressLike, newNonce: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "shuffle" - ): TypedContractMethod<[array: BigNumberish[]], [bigint[]], "nonpayable">; - getFunction( - nameOrSignature: "sign(bytes32)" - ): TypedContractMethod< - [digest: BytesLike], - [[bigint, string, string] & { v: bigint; r: string; s: string }], - "view" - >; - getFunction( - nameOrSignature: "sign(address,bytes32)" - ): TypedContractMethod< - [signer: AddressLike, digest: BytesLike], - [[bigint, string, string] & { v: bigint; r: string; s: string }], - "view" - >; - getFunction( - nameOrSignature: "sign((address,uint256,uint256,uint256),bytes32)" - ): TypedContractMethod< - [wallet: VmSafe.WalletStruct, digest: BytesLike], - [[bigint, string, string] & { v: bigint; r: string; s: string }], - "nonpayable" - >; - getFunction( - nameOrSignature: "sign(uint256,bytes32)" - ): TypedContractMethod< - [privateKey: BigNumberish, digest: BytesLike], - [[bigint, string, string] & { v: bigint; r: string; s: string }], - "view" - >; - getFunction( - nameOrSignature: "signAndAttachDelegation(address,uint256)" - ): TypedContractMethod< - [implementation: AddressLike, privateKey: BigNumberish], - [VmSafe.SignedDelegationStructOutput], - "nonpayable" - >; - getFunction( - nameOrSignature: "signAndAttachDelegation(address,uint256,uint64)" - ): TypedContractMethod< - [ - implementation: AddressLike, - privateKey: BigNumberish, - nonce: BigNumberish - ], - [VmSafe.SignedDelegationStructOutput], - "nonpayable" - >; - getFunction( - nameOrSignature: "signCompact((address,uint256,uint256,uint256),bytes32)" - ): TypedContractMethod< - [wallet: VmSafe.WalletStruct, digest: BytesLike], - [[string, string] & { r: string; vs: string }], - "nonpayable" - >; - getFunction( - nameOrSignature: "signCompact(address,bytes32)" - ): TypedContractMethod< - [signer: AddressLike, digest: BytesLike], - [[string, string] & { r: string; vs: string }], - "view" - >; - getFunction( - nameOrSignature: "signCompact(bytes32)" - ): TypedContractMethod< - [digest: BytesLike], - [[string, string] & { r: string; vs: string }], - "view" - >; - getFunction( - nameOrSignature: "signCompact(uint256,bytes32)" - ): TypedContractMethod< - [privateKey: BigNumberish, digest: BytesLike], - [[string, string] & { r: string; vs: string }], - "view" - >; - getFunction( - nameOrSignature: "signDelegation(address,uint256)" - ): TypedContractMethod< - [implementation: AddressLike, privateKey: BigNumberish], - [VmSafe.SignedDelegationStructOutput], - "nonpayable" - >; - getFunction( - nameOrSignature: "signDelegation(address,uint256,uint64)" - ): TypedContractMethod< - [ - implementation: AddressLike, - privateKey: BigNumberish, - nonce: BigNumberish - ], - [VmSafe.SignedDelegationStructOutput], - "nonpayable" - >; - getFunction( - nameOrSignature: "signP256" - ): TypedContractMethod< - [privateKey: BigNumberish, digest: BytesLike], - [[string, string] & { r: string; s: string }], - "view" - >; - getFunction( - nameOrSignature: "skip(bool,string)" - ): TypedContractMethod< - [skipTest: boolean, reason: string], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "skip(bool)" - ): TypedContractMethod<[skipTest: boolean], [void], "nonpayable">; - getFunction( - nameOrSignature: "sleep" - ): TypedContractMethod<[duration: BigNumberish], [void], "nonpayable">; - getFunction( - nameOrSignature: "snapshot" - ): TypedContractMethod<[], [bigint], "nonpayable">; - getFunction( - nameOrSignature: "snapshotGasLastCall(string,string)" - ): TypedContractMethod<[group: string, name: string], [bigint], "nonpayable">; - getFunction( - nameOrSignature: "snapshotGasLastCall(string)" - ): TypedContractMethod<[name: string], [bigint], "nonpayable">; - getFunction( - nameOrSignature: "snapshotState" - ): TypedContractMethod<[], [bigint], "nonpayable">; - getFunction( - nameOrSignature: "snapshotValue(string,uint256)" - ): TypedContractMethod< - [name: string, value: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "snapshotValue(string,string,uint256)" - ): TypedContractMethod< - [group: string, name: string, value: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "sort" - ): TypedContractMethod<[array: BigNumberish[]], [bigint[]], "nonpayable">; - getFunction( - nameOrSignature: "split" - ): TypedContractMethod< - [input: string, delimiter: string], - [string[]], - "view" - >; - getFunction( - nameOrSignature: "startBroadcast()" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "startBroadcast(address)" - ): TypedContractMethod<[signer: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "startBroadcast(uint256)" - ): TypedContractMethod<[privateKey: BigNumberish], [void], "nonpayable">; - getFunction( - nameOrSignature: "startDebugTraceRecording" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "startMappingRecording" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "startPrank(address)" - ): TypedContractMethod<[msgSender: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "startPrank(address,bool)" - ): TypedContractMethod< - [msgSender: AddressLike, delegateCall: boolean], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "startPrank(address,address)" - ): TypedContractMethod< - [msgSender: AddressLike, txOrigin: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "startPrank(address,address,bool)" - ): TypedContractMethod< - [msgSender: AddressLike, txOrigin: AddressLike, delegateCall: boolean], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "startSnapshotGas(string)" - ): TypedContractMethod<[name: string], [void], "nonpayable">; - getFunction( - nameOrSignature: "startSnapshotGas(string,string)" - ): TypedContractMethod<[group: string, name: string], [void], "nonpayable">; - getFunction( - nameOrSignature: "startStateDiffRecording" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "stopAndReturnDebugTraceRecording" - ): TypedContractMethod<[], [VmSafe.DebugStepStructOutput[]], "nonpayable">; - getFunction( - nameOrSignature: "stopAndReturnStateDiff" - ): TypedContractMethod< - [], - [VmSafe.AccountAccessStructOutput[]], - "nonpayable" - >; - getFunction( - nameOrSignature: "stopBroadcast" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "stopExpectSafeMemory" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "stopMappingRecording" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "stopPrank" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "stopSnapshotGas(string,string)" - ): TypedContractMethod<[group: string, name: string], [bigint], "nonpayable">; - getFunction( - nameOrSignature: "stopSnapshotGas(string)" - ): TypedContractMethod<[name: string], [bigint], "nonpayable">; - getFunction( - nameOrSignature: "stopSnapshotGas()" - ): TypedContractMethod<[], [bigint], "nonpayable">; - getFunction( - nameOrSignature: "store" - ): TypedContractMethod< - [target: AddressLike, slot: BytesLike, value: BytesLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "toBase64(string)" - ): TypedContractMethod<[data: string], [string], "view">; - getFunction( - nameOrSignature: "toBase64(bytes)" - ): TypedContractMethod<[data: BytesLike], [string], "view">; - getFunction( - nameOrSignature: "toBase64URL(string)" - ): TypedContractMethod<[data: string], [string], "view">; - getFunction( - nameOrSignature: "toBase64URL(bytes)" - ): TypedContractMethod<[data: BytesLike], [string], "view">; - getFunction( - nameOrSignature: "toLowercase" - ): TypedContractMethod<[input: string], [string], "view">; - getFunction( - nameOrSignature: "toString(address)" - ): TypedContractMethod<[value: AddressLike], [string], "view">; - getFunction( - nameOrSignature: "toString(uint256)" - ): TypedContractMethod<[value: BigNumberish], [string], "view">; - getFunction( - nameOrSignature: "toString(bytes)" - ): TypedContractMethod<[value: BytesLike], [string], "view">; - getFunction( - nameOrSignature: "toString(bool)" - ): TypedContractMethod<[value: boolean], [string], "view">; - getFunction( - nameOrSignature: "toString(int256)" - ): TypedContractMethod<[value: BigNumberish], [string], "view">; - getFunction( - nameOrSignature: "toString(bytes32)" - ): TypedContractMethod<[value: BytesLike], [string], "view">; - getFunction( - nameOrSignature: "toUppercase" - ): TypedContractMethod<[input: string], [string], "view">; - getFunction( - nameOrSignature: "transact(uint256,bytes32)" - ): TypedContractMethod< - [forkId: BigNumberish, txHash: BytesLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "transact(bytes32)" - ): TypedContractMethod<[txHash: BytesLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "trim" - ): TypedContractMethod<[input: string], [string], "view">; - getFunction( - nameOrSignature: "tryFfi" - ): TypedContractMethod< - [commandInput: string[]], - [VmSafe.FfiResultStructOutput], - "nonpayable" - >; - getFunction( - nameOrSignature: "txGasPrice" - ): TypedContractMethod<[newGasPrice: BigNumberish], [void], "nonpayable">; - getFunction( - nameOrSignature: "unixTime" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "warmSlot" - ): TypedContractMethod< - [target: AddressLike, slot: BytesLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "warp" - ): TypedContractMethod<[newTimestamp: BigNumberish], [void], "nonpayable">; - getFunction( - nameOrSignature: "writeFile" - ): TypedContractMethod<[path: string, data: string], [void], "nonpayable">; - getFunction( - nameOrSignature: "writeFileBinary" - ): TypedContractMethod<[path: string, data: BytesLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "writeJson(string,string,string)" - ): TypedContractMethod< - [json: string, path: string, valueKey: string], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "writeJson(string,string)" - ): TypedContractMethod<[json: string, path: string], [void], "nonpayable">; - getFunction( - nameOrSignature: "writeLine" - ): TypedContractMethod<[path: string, data: string], [void], "nonpayable">; - getFunction( - nameOrSignature: "writeToml(string,string,string)" - ): TypedContractMethod< - [json: string, path: string, valueKey: string], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "writeToml(string,string)" - ): TypedContractMethod<[json: string, path: string], [void], "nonpayable">; - - filters: {}; -} diff --git a/typechain-types/forge-std/Vm.sol/VmSafe.ts b/typechain-types/forge-std/Vm.sol/VmSafe.ts deleted file mode 100644 index 1890e0a9..00000000 --- a/typechain-types/forge-std/Vm.sol/VmSafe.ts +++ /dev/null @@ -1,7888 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../common"; - -export declare namespace VmSafe { - export type PotentialRevertStruct = { - reverter: AddressLike; - partialMatch: boolean; - revertData: BytesLike; - }; - - export type PotentialRevertStructOutput = [ - reverter: string, - partialMatch: boolean, - revertData: string - ] & { reverter: string; partialMatch: boolean; revertData: string }; - - export type SignedDelegationStruct = { - v: BigNumberish; - r: BytesLike; - s: BytesLike; - nonce: BigNumberish; - implementation: AddressLike; - }; - - export type SignedDelegationStructOutput = [ - v: bigint, - r: string, - s: string, - nonce: bigint, - implementation: string - ] & { - v: bigint; - r: string; - s: string; - nonce: bigint; - implementation: string; - }; - - export type WalletStruct = { - addr: AddressLike; - publicKeyX: BigNumberish; - publicKeyY: BigNumberish; - privateKey: BigNumberish; - }; - - export type WalletStructOutput = [ - addr: string, - publicKeyX: bigint, - publicKeyY: bigint, - privateKey: bigint - ] & { - addr: string; - publicKeyX: bigint; - publicKeyY: bigint; - privateKey: bigint; - }; - - export type EthGetLogsStruct = { - emitter: AddressLike; - topics: BytesLike[]; - data: BytesLike; - blockHash: BytesLike; - blockNumber: BigNumberish; - transactionHash: BytesLike; - transactionIndex: BigNumberish; - logIndex: BigNumberish; - removed: boolean; - }; - - export type EthGetLogsStructOutput = [ - emitter: string, - topics: string[], - data: string, - blockHash: string, - blockNumber: bigint, - transactionHash: string, - transactionIndex: bigint, - logIndex: bigint, - removed: boolean - ] & { - emitter: string; - topics: string[]; - data: string; - blockHash: string; - blockNumber: bigint; - transactionHash: string; - transactionIndex: bigint; - logIndex: bigint; - removed: boolean; - }; - - export type FsMetadataStruct = { - isDir: boolean; - isSymlink: boolean; - length: BigNumberish; - readOnly: boolean; - modified: BigNumberish; - accessed: BigNumberish; - created: BigNumberish; - }; - - export type FsMetadataStructOutput = [ - isDir: boolean, - isSymlink: boolean, - length: bigint, - readOnly: boolean, - modified: bigint, - accessed: bigint, - created: bigint - ] & { - isDir: boolean; - isSymlink: boolean; - length: bigint; - readOnly: boolean; - modified: bigint; - accessed: bigint; - created: bigint; - }; - - export type BroadcastTxSummaryStruct = { - txHash: BytesLike; - txType: BigNumberish; - contractAddress: AddressLike; - blockNumber: BigNumberish; - success: boolean; - }; - - export type BroadcastTxSummaryStructOutput = [ - txHash: string, - txType: bigint, - contractAddress: string, - blockNumber: bigint, - success: boolean - ] & { - txHash: string; - txType: bigint; - contractAddress: string; - blockNumber: bigint; - success: boolean; - }; - - export type ChainStruct = { - name: string; - chainId: BigNumberish; - chainAlias: string; - rpcUrl: string; - }; - - export type ChainStructOutput = [ - name: string, - chainId: bigint, - chainAlias: string, - rpcUrl: string - ] & { name: string; chainId: bigint; chainAlias: string; rpcUrl: string }; - - export type LogStruct = { - topics: BytesLike[]; - data: BytesLike; - emitter: AddressLike; - }; - - export type LogStructOutput = [ - topics: string[], - data: string, - emitter: string - ] & { topics: string[]; data: string; emitter: string }; - - export type GasStruct = { - gasLimit: BigNumberish; - gasTotalUsed: BigNumberish; - gasMemoryUsed: BigNumberish; - gasRefunded: BigNumberish; - gasRemaining: BigNumberish; - }; - - export type GasStructOutput = [ - gasLimit: bigint, - gasTotalUsed: bigint, - gasMemoryUsed: bigint, - gasRefunded: bigint, - gasRemaining: bigint - ] & { - gasLimit: bigint; - gasTotalUsed: bigint; - gasMemoryUsed: bigint; - gasRefunded: bigint; - gasRemaining: bigint; - }; - - export type DirEntryStruct = { - errorMessage: string; - path: string; - depth: BigNumberish; - isDir: boolean; - isSymlink: boolean; - }; - - export type DirEntryStructOutput = [ - errorMessage: string, - path: string, - depth: bigint, - isDir: boolean, - isSymlink: boolean - ] & { - errorMessage: string; - path: string; - depth: bigint; - isDir: boolean; - isSymlink: boolean; - }; - - export type RpcStruct = { key: string; url: string }; - - export type RpcStructOutput = [key: string, url: string] & { - key: string; - url: string; - }; - - export type DebugStepStruct = { - stack: BigNumberish[]; - memoryInput: BytesLike; - opcode: BigNumberish; - depth: BigNumberish; - isOutOfGas: boolean; - contractAddr: AddressLike; - }; - - export type DebugStepStructOutput = [ - stack: bigint[], - memoryInput: string, - opcode: bigint, - depth: bigint, - isOutOfGas: boolean, - contractAddr: string - ] & { - stack: bigint[]; - memoryInput: string; - opcode: bigint; - depth: bigint; - isOutOfGas: boolean; - contractAddr: string; - }; - - export type ChainInfoStruct = { forkId: BigNumberish; chainId: BigNumberish }; - - export type ChainInfoStructOutput = [forkId: bigint, chainId: bigint] & { - forkId: bigint; - chainId: bigint; - }; - - export type StorageAccessStruct = { - account: AddressLike; - slot: BytesLike; - isWrite: boolean; - previousValue: BytesLike; - newValue: BytesLike; - reverted: boolean; - }; - - export type StorageAccessStructOutput = [ - account: string, - slot: string, - isWrite: boolean, - previousValue: string, - newValue: string, - reverted: boolean - ] & { - account: string; - slot: string; - isWrite: boolean; - previousValue: string; - newValue: string; - reverted: boolean; - }; - - export type AccountAccessStruct = { - chainInfo: VmSafe.ChainInfoStruct; - kind: BigNumberish; - account: AddressLike; - accessor: AddressLike; - initialized: boolean; - oldBalance: BigNumberish; - newBalance: BigNumberish; - deployedCode: BytesLike; - value: BigNumberish; - data: BytesLike; - reverted: boolean; - storageAccesses: VmSafe.StorageAccessStruct[]; - depth: BigNumberish; - }; - - export type AccountAccessStructOutput = [ - chainInfo: VmSafe.ChainInfoStructOutput, - kind: bigint, - account: string, - accessor: string, - initialized: boolean, - oldBalance: bigint, - newBalance: bigint, - deployedCode: string, - value: bigint, - data: string, - reverted: boolean, - storageAccesses: VmSafe.StorageAccessStructOutput[], - depth: bigint - ] & { - chainInfo: VmSafe.ChainInfoStructOutput; - kind: bigint; - account: string; - accessor: string; - initialized: boolean; - oldBalance: bigint; - newBalance: bigint; - deployedCode: string; - value: bigint; - data: string; - reverted: boolean; - storageAccesses: VmSafe.StorageAccessStructOutput[]; - depth: bigint; - }; - - export type FfiResultStruct = { - exitCode: BigNumberish; - stdout: BytesLike; - stderr: BytesLike; - }; - - export type FfiResultStructOutput = [ - exitCode: bigint, - stdout: string, - stderr: string - ] & { exitCode: bigint; stdout: string; stderr: string }; -} - -export interface VmSafeInterface extends Interface { - getFunction( - nameOrSignature: - | "accesses" - | "addr" - | "assertApproxEqAbs(uint256,uint256,uint256)" - | "assertApproxEqAbs(int256,int256,uint256)" - | "assertApproxEqAbs(int256,int256,uint256,string)" - | "assertApproxEqAbs(uint256,uint256,uint256,string)" - | "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)" - | "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)" - | "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)" - | "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)" - | "assertApproxEqRel(uint256,uint256,uint256,string)" - | "assertApproxEqRel(uint256,uint256,uint256)" - | "assertApproxEqRel(int256,int256,uint256,string)" - | "assertApproxEqRel(int256,int256,uint256)" - | "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)" - | "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)" - | "assertApproxEqRelDecimal(int256,int256,uint256,uint256)" - | "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)" - | "assertEq(bytes32[],bytes32[])" - | "assertEq(int256[],int256[],string)" - | "assertEq(address,address,string)" - | "assertEq(string,string,string)" - | "assertEq(address[],address[])" - | "assertEq(address[],address[],string)" - | "assertEq(bool,bool,string)" - | "assertEq(address,address)" - | "assertEq(uint256[],uint256[],string)" - | "assertEq(bool[],bool[])" - | "assertEq(int256[],int256[])" - | "assertEq(int256,int256,string)" - | "assertEq(bytes32,bytes32)" - | "assertEq(uint256,uint256,string)" - | "assertEq(uint256[],uint256[])" - | "assertEq(bytes,bytes)" - | "assertEq(uint256,uint256)" - | "assertEq(bytes32,bytes32,string)" - | "assertEq(string[],string[])" - | "assertEq(bytes32[],bytes32[],string)" - | "assertEq(bytes,bytes,string)" - | "assertEq(bool[],bool[],string)" - | "assertEq(bytes[],bytes[])" - | "assertEq(string[],string[],string)" - | "assertEq(string,string)" - | "assertEq(bytes[],bytes[],string)" - | "assertEq(bool,bool)" - | "assertEq(int256,int256)" - | "assertEqDecimal(uint256,uint256,uint256)" - | "assertEqDecimal(int256,int256,uint256)" - | "assertEqDecimal(int256,int256,uint256,string)" - | "assertEqDecimal(uint256,uint256,uint256,string)" - | "assertFalse(bool,string)" - | "assertFalse(bool)" - | "assertGe(int256,int256)" - | "assertGe(int256,int256,string)" - | "assertGe(uint256,uint256)" - | "assertGe(uint256,uint256,string)" - | "assertGeDecimal(uint256,uint256,uint256)" - | "assertGeDecimal(int256,int256,uint256,string)" - | "assertGeDecimal(uint256,uint256,uint256,string)" - | "assertGeDecimal(int256,int256,uint256)" - | "assertGt(int256,int256)" - | "assertGt(uint256,uint256,string)" - | "assertGt(uint256,uint256)" - | "assertGt(int256,int256,string)" - | "assertGtDecimal(int256,int256,uint256,string)" - | "assertGtDecimal(uint256,uint256,uint256,string)" - | "assertGtDecimal(int256,int256,uint256)" - | "assertGtDecimal(uint256,uint256,uint256)" - | "assertLe(int256,int256,string)" - | "assertLe(uint256,uint256)" - | "assertLe(int256,int256)" - | "assertLe(uint256,uint256,string)" - | "assertLeDecimal(int256,int256,uint256)" - | "assertLeDecimal(uint256,uint256,uint256,string)" - | "assertLeDecimal(int256,int256,uint256,string)" - | "assertLeDecimal(uint256,uint256,uint256)" - | "assertLt(int256,int256)" - | "assertLt(uint256,uint256,string)" - | "assertLt(int256,int256,string)" - | "assertLt(uint256,uint256)" - | "assertLtDecimal(uint256,uint256,uint256)" - | "assertLtDecimal(int256,int256,uint256,string)" - | "assertLtDecimal(uint256,uint256,uint256,string)" - | "assertLtDecimal(int256,int256,uint256)" - | "assertNotEq(bytes32[],bytes32[])" - | "assertNotEq(int256[],int256[])" - | "assertNotEq(bool,bool,string)" - | "assertNotEq(bytes[],bytes[],string)" - | "assertNotEq(bool,bool)" - | "assertNotEq(bool[],bool[])" - | "assertNotEq(bytes,bytes)" - | "assertNotEq(address[],address[])" - | "assertNotEq(int256,int256,string)" - | "assertNotEq(uint256[],uint256[])" - | "assertNotEq(bool[],bool[],string)" - | "assertNotEq(string,string)" - | "assertNotEq(address[],address[],string)" - | "assertNotEq(string,string,string)" - | "assertNotEq(address,address,string)" - | "assertNotEq(bytes32,bytes32)" - | "assertNotEq(bytes,bytes,string)" - | "assertNotEq(uint256,uint256,string)" - | "assertNotEq(uint256[],uint256[],string)" - | "assertNotEq(address,address)" - | "assertNotEq(bytes32,bytes32,string)" - | "assertNotEq(string[],string[],string)" - | "assertNotEq(uint256,uint256)" - | "assertNotEq(bytes32[],bytes32[],string)" - | "assertNotEq(string[],string[])" - | "assertNotEq(int256[],int256[],string)" - | "assertNotEq(bytes[],bytes[])" - | "assertNotEq(int256,int256)" - | "assertNotEqDecimal(int256,int256,uint256)" - | "assertNotEqDecimal(int256,int256,uint256,string)" - | "assertNotEqDecimal(uint256,uint256,uint256)" - | "assertNotEqDecimal(uint256,uint256,uint256,string)" - | "assertTrue(bool)" - | "assertTrue(bool,string)" - | "assume" - | "assumeNoRevert()" - | "assumeNoRevert((address,bool,bytes)[])" - | "assumeNoRevert((address,bool,bytes))" - | "attachBlob" - | "attachDelegation" - | "breakpoint(string)" - | "breakpoint(string,bool)" - | "broadcast()" - | "broadcast(address)" - | "broadcast(uint256)" - | "broadcastRawTransaction" - | "closeFile" - | "computeCreate2Address(bytes32,bytes32)" - | "computeCreate2Address(bytes32,bytes32,address)" - | "computeCreateAddress" - | "contains" - | "copyFile" - | "copyStorage" - | "createDir" - | "createWallet(string)" - | "createWallet(uint256)" - | "createWallet(uint256,string)" - | "deployCode(string,uint256,bytes32)" - | "deployCode(string,bytes,bytes32)" - | "deployCode(string,uint256)" - | "deployCode(string,bytes32)" - | "deployCode(string,bytes)" - | "deployCode(string,bytes,uint256,bytes32)" - | "deployCode(string)" - | "deployCode(string,bytes,uint256)" - | "deriveKey(string,string,uint32,string)" - | "deriveKey(string,uint32,string)" - | "deriveKey(string,uint32)" - | "deriveKey(string,string,uint32)" - | "ensNamehash" - | "envAddress(string)" - | "envAddress(string,string)" - | "envBool(string)" - | "envBool(string,string)" - | "envBytes(string)" - | "envBytes(string,string)" - | "envBytes32(string,string)" - | "envBytes32(string)" - | "envExists" - | "envInt(string,string)" - | "envInt(string)" - | "envOr(string,string,bytes32[])" - | "envOr(string,string,int256[])" - | "envOr(string,bool)" - | "envOr(string,address)" - | "envOr(string,uint256)" - | "envOr(string,string,bytes[])" - | "envOr(string,string,uint256[])" - | "envOr(string,string,string[])" - | "envOr(string,bytes)" - | "envOr(string,bytes32)" - | "envOr(string,int256)" - | "envOr(string,string,address[])" - | "envOr(string,string)" - | "envOr(string,string,bool[])" - | "envString(string,string)" - | "envString(string)" - | "envUint(string)" - | "envUint(string,string)" - | "eth_getLogs" - | "exists" - | "ffi" - | "foundryVersionAtLeast" - | "foundryVersionCmp" - | "fsMetadata" - | "getArtifactPathByCode" - | "getArtifactPathByDeployedCode" - | "getBlobBaseFee" - | "getBlockNumber" - | "getBlockTimestamp" - | "getBroadcast" - | "getBroadcasts(string,uint64)" - | "getBroadcasts(string,uint64,uint8)" - | "getChain(string)" - | "getChain(uint256)" - | "getCode" - | "getDeployedCode" - | "getDeployment(string,uint64)" - | "getDeployment(string)" - | "getDeployments" - | "getFoundryVersion" - | "getLabel" - | "getMappingKeyAndParentOf" - | "getMappingLength" - | "getMappingSlotAt" - | "getNonce(address)" - | "getNonce((address,uint256,uint256,uint256))" - | "getRecordedLogs" - | "getStateDiff" - | "getStateDiffJson" - | "getWallets" - | "indexOf" - | "isContext" - | "isDir" - | "isFile" - | "keyExists" - | "keyExistsJson" - | "keyExistsToml" - | "label" - | "lastCallGas" - | "load" - | "parseAddress" - | "parseBool" - | "parseBytes" - | "parseBytes32" - | "parseInt" - | "parseJson(string)" - | "parseJson(string,string)" - | "parseJsonAddress" - | "parseJsonAddressArray" - | "parseJsonBool" - | "parseJsonBoolArray" - | "parseJsonBytes" - | "parseJsonBytes32" - | "parseJsonBytes32Array" - | "parseJsonBytesArray" - | "parseJsonInt" - | "parseJsonIntArray" - | "parseJsonKeys" - | "parseJsonString" - | "parseJsonStringArray" - | "parseJsonType(string,string)" - | "parseJsonType(string,string,string)" - | "parseJsonTypeArray" - | "parseJsonUint" - | "parseJsonUintArray" - | "parseToml(string,string)" - | "parseToml(string)" - | "parseTomlAddress" - | "parseTomlAddressArray" - | "parseTomlBool" - | "parseTomlBoolArray" - | "parseTomlBytes" - | "parseTomlBytes32" - | "parseTomlBytes32Array" - | "parseTomlBytesArray" - | "parseTomlInt" - | "parseTomlIntArray" - | "parseTomlKeys" - | "parseTomlString" - | "parseTomlStringArray" - | "parseTomlType(string,string)" - | "parseTomlType(string,string,string)" - | "parseTomlTypeArray" - | "parseTomlUint" - | "parseTomlUintArray" - | "parseUint" - | "pauseGasMetering" - | "pauseTracing" - | "projectRoot" - | "prompt" - | "promptAddress" - | "promptSecret" - | "promptSecretUint" - | "promptUint" - | "publicKeyP256" - | "randomAddress" - | "randomBool" - | "randomBytes" - | "randomBytes4" - | "randomBytes8" - | "randomInt()" - | "randomInt(uint256)" - | "randomUint()" - | "randomUint(uint256)" - | "randomUint(uint256,uint256)" - | "readDir(string,uint64)" - | "readDir(string,uint64,bool)" - | "readDir(string)" - | "readFile" - | "readFileBinary" - | "readLine" - | "readLink" - | "record" - | "recordLogs" - | "rememberKey" - | "rememberKeys(string,string,uint32)" - | "rememberKeys(string,string,string,uint32)" - | "removeDir" - | "removeFile" - | "replace" - | "resetGasMetering" - | "resumeGasMetering" - | "resumeTracing" - | "rpc(string,string,string)" - | "rpc(string,string)" - | "rpcUrl" - | "rpcUrlStructs" - | "rpcUrls" - | "serializeAddress(string,string,address[])" - | "serializeAddress(string,string,address)" - | "serializeBool(string,string,bool[])" - | "serializeBool(string,string,bool)" - | "serializeBytes(string,string,bytes[])" - | "serializeBytes(string,string,bytes)" - | "serializeBytes32(string,string,bytes32[])" - | "serializeBytes32(string,string,bytes32)" - | "serializeInt(string,string,int256)" - | "serializeInt(string,string,int256[])" - | "serializeJson" - | "serializeJsonType(string,bytes)" - | "serializeJsonType(string,string,string,bytes)" - | "serializeString(string,string,string[])" - | "serializeString(string,string,string)" - | "serializeUint(string,string,uint256)" - | "serializeUint(string,string,uint256[])" - | "serializeUintToHex" - | "setArbitraryStorage(address,bool)" - | "setArbitraryStorage(address)" - | "setEnv" - | "shuffle" - | "sign(bytes32)" - | "sign(address,bytes32)" - | "sign((address,uint256,uint256,uint256),bytes32)" - | "sign(uint256,bytes32)" - | "signAndAttachDelegation(address,uint256)" - | "signAndAttachDelegation(address,uint256,uint64)" - | "signCompact((address,uint256,uint256,uint256),bytes32)" - | "signCompact(address,bytes32)" - | "signCompact(bytes32)" - | "signCompact(uint256,bytes32)" - | "signDelegation(address,uint256)" - | "signDelegation(address,uint256,uint64)" - | "signP256" - | "sleep" - | "sort" - | "split" - | "startBroadcast()" - | "startBroadcast(address)" - | "startBroadcast(uint256)" - | "startDebugTraceRecording" - | "startMappingRecording" - | "startStateDiffRecording" - | "stopAndReturnDebugTraceRecording" - | "stopAndReturnStateDiff" - | "stopBroadcast" - | "stopMappingRecording" - | "toBase64(string)" - | "toBase64(bytes)" - | "toBase64URL(string)" - | "toBase64URL(bytes)" - | "toLowercase" - | "toString(address)" - | "toString(uint256)" - | "toString(bytes)" - | "toString(bool)" - | "toString(int256)" - | "toString(bytes32)" - | "toUppercase" - | "trim" - | "tryFfi" - | "unixTime" - | "writeFile" - | "writeFileBinary" - | "writeJson(string,string,string)" - | "writeJson(string,string)" - | "writeLine" - | "writeToml(string,string,string)" - | "writeToml(string,string)" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "accesses", - values: [AddressLike] - ): string; - encodeFunctionData(functionFragment: "addr", values: [BigNumberish]): string; - encodeFunctionData( - functionFragment: "assertApproxEqAbs(uint256,uint256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqAbs(int256,int256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqAbs(int256,int256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqAbs(uint256,uint256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqRel(uint256,uint256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqRel(uint256,uint256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqRel(int256,int256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqRel(int256,int256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqRelDecimal(int256,int256,uint256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bytes32[],bytes32[])", - values: [BytesLike[], BytesLike[]] - ): string; - encodeFunctionData( - functionFragment: "assertEq(int256[],int256[],string)", - values: [BigNumberish[], BigNumberish[], string] - ): string; - encodeFunctionData( - functionFragment: "assertEq(address,address,string)", - values: [AddressLike, AddressLike, string] - ): string; - encodeFunctionData( - functionFragment: "assertEq(string,string,string)", - values: [string, string, string] - ): string; - encodeFunctionData( - functionFragment: "assertEq(address[],address[])", - values: [AddressLike[], AddressLike[]] - ): string; - encodeFunctionData( - functionFragment: "assertEq(address[],address[],string)", - values: [AddressLike[], AddressLike[], string] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bool,bool,string)", - values: [boolean, boolean, string] - ): string; - encodeFunctionData( - functionFragment: "assertEq(address,address)", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "assertEq(uint256[],uint256[],string)", - values: [BigNumberish[], BigNumberish[], string] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bool[],bool[])", - values: [boolean[], boolean[]] - ): string; - encodeFunctionData( - functionFragment: "assertEq(int256[],int256[])", - values: [BigNumberish[], BigNumberish[]] - ): string; - encodeFunctionData( - functionFragment: "assertEq(int256,int256,string)", - values: [BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bytes32,bytes32)", - values: [BytesLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "assertEq(uint256,uint256,string)", - values: [BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertEq(uint256[],uint256[])", - values: [BigNumberish[], BigNumberish[]] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bytes,bytes)", - values: [BytesLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "assertEq(uint256,uint256)", - values: [BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bytes32,bytes32,string)", - values: [BytesLike, BytesLike, string] - ): string; - encodeFunctionData( - functionFragment: "assertEq(string[],string[])", - values: [string[], string[]] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bytes32[],bytes32[],string)", - values: [BytesLike[], BytesLike[], string] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bytes,bytes,string)", - values: [BytesLike, BytesLike, string] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bool[],bool[],string)", - values: [boolean[], boolean[], string] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bytes[],bytes[])", - values: [BytesLike[], BytesLike[]] - ): string; - encodeFunctionData( - functionFragment: "assertEq(string[],string[],string)", - values: [string[], string[], string] - ): string; - encodeFunctionData( - functionFragment: "assertEq(string,string)", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bytes[],bytes[],string)", - values: [BytesLike[], BytesLike[], string] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bool,bool)", - values: [boolean, boolean] - ): string; - encodeFunctionData( - functionFragment: "assertEq(int256,int256)", - values: [BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertEqDecimal(uint256,uint256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertEqDecimal(int256,int256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertEqDecimal(int256,int256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertEqDecimal(uint256,uint256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertFalse(bool,string)", - values: [boolean, string] - ): string; - encodeFunctionData( - functionFragment: "assertFalse(bool)", - values: [boolean] - ): string; - encodeFunctionData( - functionFragment: "assertGe(int256,int256)", - values: [BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertGe(int256,int256,string)", - values: [BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertGe(uint256,uint256)", - values: [BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertGe(uint256,uint256,string)", - values: [BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertGeDecimal(uint256,uint256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertGeDecimal(int256,int256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertGeDecimal(uint256,uint256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertGeDecimal(int256,int256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertGt(int256,int256)", - values: [BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertGt(uint256,uint256,string)", - values: [BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertGt(uint256,uint256)", - values: [BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertGt(int256,int256,string)", - values: [BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertGtDecimal(int256,int256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertGtDecimal(uint256,uint256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertGtDecimal(int256,int256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertGtDecimal(uint256,uint256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertLe(int256,int256,string)", - values: [BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertLe(uint256,uint256)", - values: [BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertLe(int256,int256)", - values: [BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertLe(uint256,uint256,string)", - values: [BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertLeDecimal(int256,int256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertLeDecimal(uint256,uint256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertLeDecimal(int256,int256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertLeDecimal(uint256,uint256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertLt(int256,int256)", - values: [BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertLt(uint256,uint256,string)", - values: [BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertLt(int256,int256,string)", - values: [BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertLt(uint256,uint256)", - values: [BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertLtDecimal(uint256,uint256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertLtDecimal(int256,int256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertLtDecimal(uint256,uint256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertLtDecimal(int256,int256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bytes32[],bytes32[])", - values: [BytesLike[], BytesLike[]] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(int256[],int256[])", - values: [BigNumberish[], BigNumberish[]] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bool,bool,string)", - values: [boolean, boolean, string] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bytes[],bytes[],string)", - values: [BytesLike[], BytesLike[], string] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bool,bool)", - values: [boolean, boolean] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bool[],bool[])", - values: [boolean[], boolean[]] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bytes,bytes)", - values: [BytesLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(address[],address[])", - values: [AddressLike[], AddressLike[]] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(int256,int256,string)", - values: [BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(uint256[],uint256[])", - values: [BigNumberish[], BigNumberish[]] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bool[],bool[],string)", - values: [boolean[], boolean[], string] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(string,string)", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(address[],address[],string)", - values: [AddressLike[], AddressLike[], string] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(string,string,string)", - values: [string, string, string] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(address,address,string)", - values: [AddressLike, AddressLike, string] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bytes32,bytes32)", - values: [BytesLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bytes,bytes,string)", - values: [BytesLike, BytesLike, string] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(uint256,uint256,string)", - values: [BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(uint256[],uint256[],string)", - values: [BigNumberish[], BigNumberish[], string] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(address,address)", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bytes32,bytes32,string)", - values: [BytesLike, BytesLike, string] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(string[],string[],string)", - values: [string[], string[], string] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(uint256,uint256)", - values: [BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bytes32[],bytes32[],string)", - values: [BytesLike[], BytesLike[], string] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(string[],string[])", - values: [string[], string[]] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(int256[],int256[],string)", - values: [BigNumberish[], BigNumberish[], string] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bytes[],bytes[])", - values: [BytesLike[], BytesLike[]] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(int256,int256)", - values: [BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertNotEqDecimal(int256,int256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertNotEqDecimal(int256,int256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertNotEqDecimal(uint256,uint256,uint256)", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "assertNotEqDecimal(uint256,uint256,uint256,string)", - values: [BigNumberish, BigNumberish, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "assertTrue(bool)", - values: [boolean] - ): string; - encodeFunctionData( - functionFragment: "assertTrue(bool,string)", - values: [boolean, string] - ): string; - encodeFunctionData(functionFragment: "assume", values: [boolean]): string; - encodeFunctionData( - functionFragment: "assumeNoRevert()", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "assumeNoRevert((address,bool,bytes)[])", - values: [VmSafe.PotentialRevertStruct[]] - ): string; - encodeFunctionData( - functionFragment: "assumeNoRevert((address,bool,bytes))", - values: [VmSafe.PotentialRevertStruct] - ): string; - encodeFunctionData( - functionFragment: "attachBlob", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "attachDelegation", - values: [VmSafe.SignedDelegationStruct] - ): string; - encodeFunctionData( - functionFragment: "breakpoint(string)", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "breakpoint(string,bool)", - values: [string, boolean] - ): string; - encodeFunctionData( - functionFragment: "broadcast()", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "broadcast(address)", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "broadcast(uint256)", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "broadcastRawTransaction", - values: [BytesLike] - ): string; - encodeFunctionData(functionFragment: "closeFile", values: [string]): string; - encodeFunctionData( - functionFragment: "computeCreate2Address(bytes32,bytes32)", - values: [BytesLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "computeCreate2Address(bytes32,bytes32,address)", - values: [BytesLike, BytesLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "computeCreateAddress", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "contains", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "copyFile", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "copyStorage", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "createDir", - values: [string, boolean] - ): string; - encodeFunctionData( - functionFragment: "createWallet(string)", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "createWallet(uint256)", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "createWallet(uint256,string)", - values: [BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "deployCode(string,uint256,bytes32)", - values: [string, BigNumberish, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "deployCode(string,bytes,bytes32)", - values: [string, BytesLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "deployCode(string,uint256)", - values: [string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "deployCode(string,bytes32)", - values: [string, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "deployCode(string,bytes)", - values: [string, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "deployCode(string,bytes,uint256,bytes32)", - values: [string, BytesLike, BigNumberish, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "deployCode(string)", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "deployCode(string,bytes,uint256)", - values: [string, BytesLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "deriveKey(string,string,uint32,string)", - values: [string, string, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "deriveKey(string,uint32,string)", - values: [string, BigNumberish, string] - ): string; - encodeFunctionData( - functionFragment: "deriveKey(string,uint32)", - values: [string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "deriveKey(string,string,uint32)", - values: [string, string, BigNumberish] - ): string; - encodeFunctionData(functionFragment: "ensNamehash", values: [string]): string; - encodeFunctionData( - functionFragment: "envAddress(string)", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "envAddress(string,string)", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "envBool(string)", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "envBool(string,string)", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "envBytes(string)", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "envBytes(string,string)", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "envBytes32(string,string)", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "envBytes32(string)", - values: [string] - ): string; - encodeFunctionData(functionFragment: "envExists", values: [string]): string; - encodeFunctionData( - functionFragment: "envInt(string,string)", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "envInt(string)", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,string,bytes32[])", - values: [string, string, BytesLike[]] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,string,int256[])", - values: [string, string, BigNumberish[]] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,bool)", - values: [string, boolean] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,address)", - values: [string, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,uint256)", - values: [string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,string,bytes[])", - values: [string, string, BytesLike[]] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,string,uint256[])", - values: [string, string, BigNumberish[]] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,string,string[])", - values: [string, string, string[]] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,bytes)", - values: [string, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,bytes32)", - values: [string, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,int256)", - values: [string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,string,address[])", - values: [string, string, AddressLike[]] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,string)", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,string,bool[])", - values: [string, string, boolean[]] - ): string; - encodeFunctionData( - functionFragment: "envString(string,string)", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "envString(string)", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "envUint(string)", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "envUint(string,string)", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "eth_getLogs", - values: [BigNumberish, BigNumberish, AddressLike, BytesLike[]] - ): string; - encodeFunctionData(functionFragment: "exists", values: [string]): string; - encodeFunctionData(functionFragment: "ffi", values: [string[]]): string; - encodeFunctionData( - functionFragment: "foundryVersionAtLeast", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "foundryVersionCmp", - values: [string] - ): string; - encodeFunctionData(functionFragment: "fsMetadata", values: [string]): string; - encodeFunctionData( - functionFragment: "getArtifactPathByCode", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "getArtifactPathByDeployedCode", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "getBlobBaseFee", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getBlockNumber", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getBlockTimestamp", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getBroadcast", - values: [string, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "getBroadcasts(string,uint64)", - values: [string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "getBroadcasts(string,uint64,uint8)", - values: [string, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "getChain(string)", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "getChain(uint256)", - values: [BigNumberish] - ): string; - encodeFunctionData(functionFragment: "getCode", values: [string]): string; - encodeFunctionData( - functionFragment: "getDeployedCode", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "getDeployment(string,uint64)", - values: [string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "getDeployment(string)", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "getDeployments", - values: [string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "getFoundryVersion", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getLabel", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "getMappingKeyAndParentOf", - values: [AddressLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "getMappingLength", - values: [AddressLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "getMappingSlotAt", - values: [AddressLike, BytesLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "getNonce(address)", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "getNonce((address,uint256,uint256,uint256))", - values: [VmSafe.WalletStruct] - ): string; - encodeFunctionData( - functionFragment: "getRecordedLogs", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getStateDiff", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getStateDiffJson", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getWallets", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "indexOf", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "isContext", - values: [BigNumberish] - ): string; - encodeFunctionData(functionFragment: "isDir", values: [string]): string; - encodeFunctionData(functionFragment: "isFile", values: [string]): string; - encodeFunctionData( - functionFragment: "keyExists", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "keyExistsJson", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "keyExistsToml", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "label", - values: [AddressLike, string] - ): string; - encodeFunctionData( - functionFragment: "lastCallGas", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "load", - values: [AddressLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "parseAddress", - values: [string] - ): string; - encodeFunctionData(functionFragment: "parseBool", values: [string]): string; - encodeFunctionData(functionFragment: "parseBytes", values: [string]): string; - encodeFunctionData( - functionFragment: "parseBytes32", - values: [string] - ): string; - encodeFunctionData(functionFragment: "parseInt", values: [string]): string; - encodeFunctionData( - functionFragment: "parseJson(string)", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "parseJson(string,string)", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseJsonAddress", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseJsonAddressArray", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseJsonBool", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseJsonBoolArray", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseJsonBytes", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseJsonBytes32", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseJsonBytes32Array", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseJsonBytesArray", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseJsonInt", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseJsonIntArray", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseJsonKeys", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseJsonString", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseJsonStringArray", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseJsonType(string,string)", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseJsonType(string,string,string)", - values: [string, string, string] - ): string; - encodeFunctionData( - functionFragment: "parseJsonTypeArray", - values: [string, string, string] - ): string; - encodeFunctionData( - functionFragment: "parseJsonUint", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseJsonUintArray", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseToml(string,string)", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseToml(string)", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "parseTomlAddress", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseTomlAddressArray", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseTomlBool", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseTomlBoolArray", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseTomlBytes", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseTomlBytes32", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseTomlBytes32Array", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseTomlBytesArray", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseTomlInt", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseTomlIntArray", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseTomlKeys", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseTomlString", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseTomlStringArray", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseTomlType(string,string)", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseTomlType(string,string,string)", - values: [string, string, string] - ): string; - encodeFunctionData( - functionFragment: "parseTomlTypeArray", - values: [string, string, string] - ): string; - encodeFunctionData( - functionFragment: "parseTomlUint", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "parseTomlUintArray", - values: [string, string] - ): string; - encodeFunctionData(functionFragment: "parseUint", values: [string]): string; - encodeFunctionData( - functionFragment: "pauseGasMetering", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "pauseTracing", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "projectRoot", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "prompt", values: [string]): string; - encodeFunctionData( - functionFragment: "promptAddress", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "promptSecret", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "promptSecretUint", - values: [string] - ): string; - encodeFunctionData(functionFragment: "promptUint", values: [string]): string; - encodeFunctionData( - functionFragment: "publicKeyP256", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "randomAddress", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "randomBool", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "randomBytes", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "randomBytes4", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "randomBytes8", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "randomInt()", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "randomInt(uint256)", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "randomUint()", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "randomUint(uint256)", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "randomUint(uint256,uint256)", - values: [BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "readDir(string,uint64)", - values: [string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "readDir(string,uint64,bool)", - values: [string, BigNumberish, boolean] - ): string; - encodeFunctionData( - functionFragment: "readDir(string)", - values: [string] - ): string; - encodeFunctionData(functionFragment: "readFile", values: [string]): string; - encodeFunctionData( - functionFragment: "readFileBinary", - values: [string] - ): string; - encodeFunctionData(functionFragment: "readLine", values: [string]): string; - encodeFunctionData(functionFragment: "readLink", values: [string]): string; - encodeFunctionData(functionFragment: "record", values?: undefined): string; - encodeFunctionData( - functionFragment: "recordLogs", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "rememberKey", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "rememberKeys(string,string,uint32)", - values: [string, string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "rememberKeys(string,string,string,uint32)", - values: [string, string, string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "removeDir", - values: [string, boolean] - ): string; - encodeFunctionData(functionFragment: "removeFile", values: [string]): string; - encodeFunctionData( - functionFragment: "replace", - values: [string, string, string] - ): string; - encodeFunctionData( - functionFragment: "resetGasMetering", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "resumeGasMetering", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "resumeTracing", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "rpc(string,string,string)", - values: [string, string, string] - ): string; - encodeFunctionData( - functionFragment: "rpc(string,string)", - values: [string, string] - ): string; - encodeFunctionData(functionFragment: "rpcUrl", values: [string]): string; - encodeFunctionData( - functionFragment: "rpcUrlStructs", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "rpcUrls", values?: undefined): string; - encodeFunctionData( - functionFragment: "serializeAddress(string,string,address[])", - values: [string, string, AddressLike[]] - ): string; - encodeFunctionData( - functionFragment: "serializeAddress(string,string,address)", - values: [string, string, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "serializeBool(string,string,bool[])", - values: [string, string, boolean[]] - ): string; - encodeFunctionData( - functionFragment: "serializeBool(string,string,bool)", - values: [string, string, boolean] - ): string; - encodeFunctionData( - functionFragment: "serializeBytes(string,string,bytes[])", - values: [string, string, BytesLike[]] - ): string; - encodeFunctionData( - functionFragment: "serializeBytes(string,string,bytes)", - values: [string, string, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "serializeBytes32(string,string,bytes32[])", - values: [string, string, BytesLike[]] - ): string; - encodeFunctionData( - functionFragment: "serializeBytes32(string,string,bytes32)", - values: [string, string, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "serializeInt(string,string,int256)", - values: [string, string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "serializeInt(string,string,int256[])", - values: [string, string, BigNumberish[]] - ): string; - encodeFunctionData( - functionFragment: "serializeJson", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "serializeJsonType(string,bytes)", - values: [string, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "serializeJsonType(string,string,string,bytes)", - values: [string, string, string, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "serializeString(string,string,string[])", - values: [string, string, string[]] - ): string; - encodeFunctionData( - functionFragment: "serializeString(string,string,string)", - values: [string, string, string] - ): string; - encodeFunctionData( - functionFragment: "serializeUint(string,string,uint256)", - values: [string, string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "serializeUint(string,string,uint256[])", - values: [string, string, BigNumberish[]] - ): string; - encodeFunctionData( - functionFragment: "serializeUintToHex", - values: [string, string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "setArbitraryStorage(address,bool)", - values: [AddressLike, boolean] - ): string; - encodeFunctionData( - functionFragment: "setArbitraryStorage(address)", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "setEnv", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "shuffle", - values: [BigNumberish[]] - ): string; - encodeFunctionData( - functionFragment: "sign(bytes32)", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "sign(address,bytes32)", - values: [AddressLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "sign((address,uint256,uint256,uint256),bytes32)", - values: [VmSafe.WalletStruct, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "sign(uint256,bytes32)", - values: [BigNumberish, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "signAndAttachDelegation(address,uint256)", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "signAndAttachDelegation(address,uint256,uint64)", - values: [AddressLike, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "signCompact((address,uint256,uint256,uint256),bytes32)", - values: [VmSafe.WalletStruct, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "signCompact(address,bytes32)", - values: [AddressLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "signCompact(bytes32)", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "signCompact(uint256,bytes32)", - values: [BigNumberish, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "signDelegation(address,uint256)", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "signDelegation(address,uint256,uint64)", - values: [AddressLike, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "signP256", - values: [BigNumberish, BytesLike] - ): string; - encodeFunctionData(functionFragment: "sleep", values: [BigNumberish]): string; - encodeFunctionData( - functionFragment: "sort", - values: [BigNumberish[]] - ): string; - encodeFunctionData( - functionFragment: "split", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "startBroadcast()", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "startBroadcast(address)", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "startBroadcast(uint256)", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "startDebugTraceRecording", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "startMappingRecording", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "startStateDiffRecording", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "stopAndReturnDebugTraceRecording", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "stopAndReturnStateDiff", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "stopBroadcast", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "stopMappingRecording", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "toBase64(string)", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "toBase64(bytes)", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "toBase64URL(string)", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "toBase64URL(bytes)", - values: [BytesLike] - ): string; - encodeFunctionData(functionFragment: "toLowercase", values: [string]): string; - encodeFunctionData( - functionFragment: "toString(address)", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "toString(uint256)", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "toString(bytes)", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "toString(bool)", - values: [boolean] - ): string; - encodeFunctionData( - functionFragment: "toString(int256)", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "toString(bytes32)", - values: [BytesLike] - ): string; - encodeFunctionData(functionFragment: "toUppercase", values: [string]): string; - encodeFunctionData(functionFragment: "trim", values: [string]): string; - encodeFunctionData(functionFragment: "tryFfi", values: [string[]]): string; - encodeFunctionData(functionFragment: "unixTime", values?: undefined): string; - encodeFunctionData( - functionFragment: "writeFile", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "writeFileBinary", - values: [string, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "writeJson(string,string,string)", - values: [string, string, string] - ): string; - encodeFunctionData( - functionFragment: "writeJson(string,string)", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "writeLine", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "writeToml(string,string,string)", - values: [string, string, string] - ): string; - encodeFunctionData( - functionFragment: "writeToml(string,string)", - values: [string, string] - ): string; - - decodeFunctionResult(functionFragment: "accesses", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "addr", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "assertApproxEqAbs(uint256,uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertApproxEqAbs(int256,int256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertApproxEqAbs(int256,int256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertApproxEqAbs(uint256,uint256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertApproxEqRel(uint256,uint256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertApproxEqRel(uint256,uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertApproxEqRel(int256,int256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertApproxEqRel(int256,int256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertApproxEqRelDecimal(int256,int256,uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(bytes32[],bytes32[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(int256[],int256[],string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(address,address,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(string,string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(address[],address[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(address[],address[],string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(bool,bool,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(address,address)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(uint256[],uint256[],string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(bool[],bool[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(int256[],int256[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(int256,int256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(bytes32,bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(uint256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(uint256[],uint256[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(bytes,bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(bytes32,bytes32,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(string[],string[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(bytes32[],bytes32[],string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(bytes,bytes,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(bool[],bool[],string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(bytes[],bytes[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(string[],string[],string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(bytes[],bytes[],string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(bool,bool)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEq(int256,int256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEqDecimal(uint256,uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEqDecimal(int256,int256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEqDecimal(int256,int256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertEqDecimal(uint256,uint256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertFalse(bool,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertFalse(bool)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertGe(int256,int256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertGe(int256,int256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertGe(uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertGe(uint256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertGeDecimal(uint256,uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertGeDecimal(int256,int256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertGeDecimal(uint256,uint256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertGeDecimal(int256,int256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertGt(int256,int256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertGt(uint256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertGt(uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertGt(int256,int256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertGtDecimal(int256,int256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertGtDecimal(uint256,uint256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertGtDecimal(int256,int256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertGtDecimal(uint256,uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertLe(int256,int256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertLe(uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertLe(int256,int256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertLe(uint256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertLeDecimal(int256,int256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertLeDecimal(uint256,uint256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertLeDecimal(int256,int256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertLeDecimal(uint256,uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertLt(int256,int256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertLt(uint256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertLt(int256,int256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertLt(uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertLtDecimal(uint256,uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertLtDecimal(int256,int256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertLtDecimal(uint256,uint256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertLtDecimal(int256,int256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(bytes32[],bytes32[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(int256[],int256[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(bool,bool,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(bytes[],bytes[],string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(bool,bool)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(bool[],bool[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(bytes,bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(address[],address[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(int256,int256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(uint256[],uint256[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(bool[],bool[],string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(address[],address[],string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(string,string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(address,address,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(bytes32,bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(bytes,bytes,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(uint256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(uint256[],uint256[],string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(address,address)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(bytes32,bytes32,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(string[],string[],string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(bytes32[],bytes32[],string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(string[],string[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(int256[],int256[],string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(bytes[],bytes[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEq(int256,int256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEqDecimal(int256,int256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEqDecimal(int256,int256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEqDecimal(uint256,uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertNotEqDecimal(uint256,uint256,uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertTrue(bool)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assertTrue(bool,string)", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "assume", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "assumeNoRevert()", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assumeNoRevert((address,bool,bytes)[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "assumeNoRevert((address,bool,bytes))", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "attachBlob", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "attachDelegation", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "breakpoint(string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "breakpoint(string,bool)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "broadcast()", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "broadcast(address)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "broadcast(uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "broadcastRawTransaction", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "closeFile", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "computeCreate2Address(bytes32,bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "computeCreate2Address(bytes32,bytes32,address)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "computeCreateAddress", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "contains", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "copyFile", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "copyStorage", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "createDir", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "createWallet(string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "createWallet(uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "createWallet(uint256,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "deployCode(string,uint256,bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "deployCode(string,bytes,bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "deployCode(string,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "deployCode(string,bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "deployCode(string,bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "deployCode(string,bytes,uint256,bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "deployCode(string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "deployCode(string,bytes,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "deriveKey(string,string,uint32,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "deriveKey(string,uint32,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "deriveKey(string,uint32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "deriveKey(string,string,uint32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "ensNamehash", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envAddress(string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envAddress(string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envBool(string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envBool(string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envBytes(string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envBytes(string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envBytes32(string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envBytes32(string)", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "envExists", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "envInt(string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envInt(string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envOr(string,string,bytes32[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envOr(string,string,int256[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envOr(string,bool)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envOr(string,address)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envOr(string,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envOr(string,string,bytes[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envOr(string,string,uint256[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envOr(string,string,string[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envOr(string,bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envOr(string,bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envOr(string,int256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envOr(string,string,address[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envOr(string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envOr(string,string,bool[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envString(string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envString(string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envUint(string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "envUint(string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "eth_getLogs", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "exists", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "ffi", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "foundryVersionAtLeast", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "foundryVersionCmp", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "fsMetadata", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "getArtifactPathByCode", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getArtifactPathByDeployedCode", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getBlobBaseFee", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getBlockNumber", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getBlockTimestamp", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getBroadcast", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getBroadcasts(string,uint64)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getBroadcasts(string,uint64,uint8)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getChain(string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getChain(uint256)", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "getCode", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "getDeployedCode", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getDeployment(string,uint64)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getDeployment(string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getDeployments", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getFoundryVersion", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "getLabel", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "getMappingKeyAndParentOf", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getMappingLength", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getMappingSlotAt", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getNonce(address)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getNonce((address,uint256,uint256,uint256))", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getRecordedLogs", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getStateDiff", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getStateDiffJson", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "getWallets", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "indexOf", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "isContext", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "isDir", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "isFile", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "keyExists", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "keyExistsJson", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "keyExistsToml", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "label", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "lastCallGas", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "load", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "parseAddress", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "parseBool", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "parseBytes", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "parseBytes32", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "parseInt", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "parseJson(string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJson(string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJsonAddress", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJsonAddressArray", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJsonBool", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJsonBoolArray", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJsonBytes", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJsonBytes32", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJsonBytes32Array", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJsonBytesArray", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJsonInt", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJsonIntArray", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJsonKeys", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJsonString", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJsonStringArray", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJsonType(string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJsonType(string,string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJsonTypeArray", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJsonUint", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseJsonUintArray", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseToml(string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseToml(string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseTomlAddress", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseTomlAddressArray", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseTomlBool", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseTomlBoolArray", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseTomlBytes", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseTomlBytes32", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseTomlBytes32Array", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseTomlBytesArray", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseTomlInt", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseTomlIntArray", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseTomlKeys", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseTomlString", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseTomlStringArray", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseTomlType(string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseTomlType(string,string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseTomlTypeArray", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseTomlUint", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "parseTomlUintArray", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "parseUint", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "pauseGasMetering", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "pauseTracing", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "projectRoot", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "prompt", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "promptAddress", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "promptSecret", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "promptSecretUint", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "promptUint", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "publicKeyP256", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "randomAddress", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "randomBool", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "randomBytes", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "randomBytes4", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "randomBytes8", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "randomInt()", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "randomInt(uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "randomUint()", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "randomUint(uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "randomUint(uint256,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "readDir(string,uint64)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "readDir(string,uint64,bool)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "readDir(string)", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "readFile", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "readFileBinary", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "readLine", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "readLink", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "record", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "recordLogs", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "rememberKey", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "rememberKeys(string,string,uint32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "rememberKeys(string,string,string,uint32)", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "removeDir", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "removeFile", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "replace", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "resetGasMetering", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "resumeGasMetering", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "resumeTracing", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "rpc(string,string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "rpc(string,string)", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "rpcUrl", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "rpcUrlStructs", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "rpcUrls", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "serializeAddress(string,string,address[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "serializeAddress(string,string,address)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "serializeBool(string,string,bool[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "serializeBool(string,string,bool)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "serializeBytes(string,string,bytes[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "serializeBytes(string,string,bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "serializeBytes32(string,string,bytes32[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "serializeBytes32(string,string,bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "serializeInt(string,string,int256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "serializeInt(string,string,int256[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "serializeJson", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "serializeJsonType(string,bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "serializeJsonType(string,string,string,bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "serializeString(string,string,string[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "serializeString(string,string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "serializeUint(string,string,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "serializeUint(string,string,uint256[])", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "serializeUintToHex", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "setArbitraryStorage(address,bool)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "setArbitraryStorage(address)", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "setEnv", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "shuffle", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "sign(bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "sign(address,bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "sign((address,uint256,uint256,uint256),bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "sign(uint256,bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "signAndAttachDelegation(address,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "signAndAttachDelegation(address,uint256,uint64)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "signCompact((address,uint256,uint256,uint256),bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "signCompact(address,bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "signCompact(bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "signCompact(uint256,bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "signDelegation(address,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "signDelegation(address,uint256,uint64)", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "signP256", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "sleep", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "sort", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "split", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "startBroadcast()", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "startBroadcast(address)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "startBroadcast(uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "startDebugTraceRecording", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "startMappingRecording", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "startStateDiffRecording", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "stopAndReturnDebugTraceRecording", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "stopAndReturnStateDiff", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "stopBroadcast", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "stopMappingRecording", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "toBase64(string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "toBase64(bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "toBase64URL(string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "toBase64URL(bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "toLowercase", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "toString(address)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "toString(uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "toString(bytes)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "toString(bool)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "toString(int256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "toString(bytes32)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "toUppercase", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "trim", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "tryFfi", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "unixTime", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "writeFile", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "writeFileBinary", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "writeJson(string,string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "writeJson(string,string)", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "writeLine", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "writeToml(string,string,string)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "writeToml(string,string)", - data: BytesLike - ): Result; -} - -export interface VmSafe extends BaseContract { - connect(runner?: ContractRunner | null): VmSafe; - waitForDeployment(): Promise; - - interface: VmSafeInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - accesses: TypedContractMethod< - [target: AddressLike], - [[string[], string[]] & { readSlots: string[]; writeSlots: string[] }], - "nonpayable" - >; - - addr: TypedContractMethod<[privateKey: BigNumberish], [string], "view">; - - "assertApproxEqAbs(uint256,uint256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, maxDelta: BigNumberish], - [void], - "view" - >; - - "assertApproxEqAbs(int256,int256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, maxDelta: BigNumberish], - [void], - "view" - >; - - "assertApproxEqAbs(int256,int256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxDelta: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertApproxEqAbs(uint256,uint256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxDelta: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxDelta: BigNumberish, - decimals: BigNumberish - ], - [void], - "view" - >; - - "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxDelta: BigNumberish, - decimals: BigNumberish - ], - [void], - "view" - >; - - "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxDelta: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxDelta: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertApproxEqRel(uint256,uint256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxPercentDelta: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertApproxEqRel(uint256,uint256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, maxPercentDelta: BigNumberish], - [void], - "view" - >; - - "assertApproxEqRel(int256,int256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxPercentDelta: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertApproxEqRel(int256,int256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, maxPercentDelta: BigNumberish], - [void], - "view" - >; - - "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxPercentDelta: BigNumberish, - decimals: BigNumberish - ], - [void], - "view" - >; - - "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxPercentDelta: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertApproxEqRelDecimal(int256,int256,uint256,uint256)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxPercentDelta: BigNumberish, - decimals: BigNumberish - ], - [void], - "view" - >; - - "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxPercentDelta: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertEq(bytes32[],bytes32[])": TypedContractMethod< - [left: BytesLike[], right: BytesLike[]], - [void], - "view" - >; - - "assertEq(int256[],int256[],string)": TypedContractMethod< - [left: BigNumberish[], right: BigNumberish[], error: string], - [void], - "view" - >; - - "assertEq(address,address,string)": TypedContractMethod< - [left: AddressLike, right: AddressLike, error: string], - [void], - "view" - >; - - "assertEq(string,string,string)": TypedContractMethod< - [left: string, right: string, error: string], - [void], - "view" - >; - - "assertEq(address[],address[])": TypedContractMethod< - [left: AddressLike[], right: AddressLike[]], - [void], - "view" - >; - - "assertEq(address[],address[],string)": TypedContractMethod< - [left: AddressLike[], right: AddressLike[], error: string], - [void], - "view" - >; - - "assertEq(bool,bool,string)": TypedContractMethod< - [left: boolean, right: boolean, error: string], - [void], - "view" - >; - - "assertEq(address,address)": TypedContractMethod< - [left: AddressLike, right: AddressLike], - [void], - "view" - >; - - "assertEq(uint256[],uint256[],string)": TypedContractMethod< - [left: BigNumberish[], right: BigNumberish[], error: string], - [void], - "view" - >; - - "assertEq(bool[],bool[])": TypedContractMethod< - [left: boolean[], right: boolean[]], - [void], - "view" - >; - - "assertEq(int256[],int256[])": TypedContractMethod< - [left: BigNumberish[], right: BigNumberish[]], - [void], - "view" - >; - - "assertEq(int256,int256,string)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - - "assertEq(bytes32,bytes32)": TypedContractMethod< - [left: BytesLike, right: BytesLike], - [void], - "view" - >; - - "assertEq(uint256,uint256,string)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - - "assertEq(uint256[],uint256[])": TypedContractMethod< - [left: BigNumberish[], right: BigNumberish[]], - [void], - "view" - >; - - "assertEq(bytes,bytes)": TypedContractMethod< - [left: BytesLike, right: BytesLike], - [void], - "view" - >; - - "assertEq(uint256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - - "assertEq(bytes32,bytes32,string)": TypedContractMethod< - [left: BytesLike, right: BytesLike, error: string], - [void], - "view" - >; - - "assertEq(string[],string[])": TypedContractMethod< - [left: string[], right: string[]], - [void], - "view" - >; - - "assertEq(bytes32[],bytes32[],string)": TypedContractMethod< - [left: BytesLike[], right: BytesLike[], error: string], - [void], - "view" - >; - - "assertEq(bytes,bytes,string)": TypedContractMethod< - [left: BytesLike, right: BytesLike, error: string], - [void], - "view" - >; - - "assertEq(bool[],bool[],string)": TypedContractMethod< - [left: boolean[], right: boolean[], error: string], - [void], - "view" - >; - - "assertEq(bytes[],bytes[])": TypedContractMethod< - [left: BytesLike[], right: BytesLike[]], - [void], - "view" - >; - - "assertEq(string[],string[],string)": TypedContractMethod< - [left: string[], right: string[], error: string], - [void], - "view" - >; - - "assertEq(string,string)": TypedContractMethod< - [left: string, right: string], - [void], - "view" - >; - - "assertEq(bytes[],bytes[],string)": TypedContractMethod< - [left: BytesLike[], right: BytesLike[], error: string], - [void], - "view" - >; - - "assertEq(bool,bool)": TypedContractMethod< - [left: boolean, right: boolean], - [void], - "view" - >; - - "assertEq(int256,int256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - - "assertEqDecimal(uint256,uint256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - - "assertEqDecimal(int256,int256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - - "assertEqDecimal(int256,int256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertEqDecimal(uint256,uint256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertFalse(bool,string)": TypedContractMethod< - [condition: boolean, error: string], - [void], - "view" - >; - - "assertFalse(bool)": TypedContractMethod< - [condition: boolean], - [void], - "view" - >; - - "assertGe(int256,int256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - - "assertGe(int256,int256,string)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - - "assertGe(uint256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - - "assertGe(uint256,uint256,string)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - - "assertGeDecimal(uint256,uint256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - - "assertGeDecimal(int256,int256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertGeDecimal(uint256,uint256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertGeDecimal(int256,int256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - - "assertGt(int256,int256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - - "assertGt(uint256,uint256,string)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - - "assertGt(uint256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - - "assertGt(int256,int256,string)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - - "assertGtDecimal(int256,int256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertGtDecimal(uint256,uint256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertGtDecimal(int256,int256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - - "assertGtDecimal(uint256,uint256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - - "assertLe(int256,int256,string)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - - "assertLe(uint256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - - "assertLe(int256,int256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - - "assertLe(uint256,uint256,string)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - - "assertLeDecimal(int256,int256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - - "assertLeDecimal(uint256,uint256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertLeDecimal(int256,int256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertLeDecimal(uint256,uint256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - - "assertLt(int256,int256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - - "assertLt(uint256,uint256,string)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - - "assertLt(int256,int256,string)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - - "assertLt(uint256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - - "assertLtDecimal(uint256,uint256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - - "assertLtDecimal(int256,int256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertLtDecimal(uint256,uint256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertLtDecimal(int256,int256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - - "assertNotEq(bytes32[],bytes32[])": TypedContractMethod< - [left: BytesLike[], right: BytesLike[]], - [void], - "view" - >; - - "assertNotEq(int256[],int256[])": TypedContractMethod< - [left: BigNumberish[], right: BigNumberish[]], - [void], - "view" - >; - - "assertNotEq(bool,bool,string)": TypedContractMethod< - [left: boolean, right: boolean, error: string], - [void], - "view" - >; - - "assertNotEq(bytes[],bytes[],string)": TypedContractMethod< - [left: BytesLike[], right: BytesLike[], error: string], - [void], - "view" - >; - - "assertNotEq(bool,bool)": TypedContractMethod< - [left: boolean, right: boolean], - [void], - "view" - >; - - "assertNotEq(bool[],bool[])": TypedContractMethod< - [left: boolean[], right: boolean[]], - [void], - "view" - >; - - "assertNotEq(bytes,bytes)": TypedContractMethod< - [left: BytesLike, right: BytesLike], - [void], - "view" - >; - - "assertNotEq(address[],address[])": TypedContractMethod< - [left: AddressLike[], right: AddressLike[]], - [void], - "view" - >; - - "assertNotEq(int256,int256,string)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - - "assertNotEq(uint256[],uint256[])": TypedContractMethod< - [left: BigNumberish[], right: BigNumberish[]], - [void], - "view" - >; - - "assertNotEq(bool[],bool[],string)": TypedContractMethod< - [left: boolean[], right: boolean[], error: string], - [void], - "view" - >; - - "assertNotEq(string,string)": TypedContractMethod< - [left: string, right: string], - [void], - "view" - >; - - "assertNotEq(address[],address[],string)": TypedContractMethod< - [left: AddressLike[], right: AddressLike[], error: string], - [void], - "view" - >; - - "assertNotEq(string,string,string)": TypedContractMethod< - [left: string, right: string, error: string], - [void], - "view" - >; - - "assertNotEq(address,address,string)": TypedContractMethod< - [left: AddressLike, right: AddressLike, error: string], - [void], - "view" - >; - - "assertNotEq(bytes32,bytes32)": TypedContractMethod< - [left: BytesLike, right: BytesLike], - [void], - "view" - >; - - "assertNotEq(bytes,bytes,string)": TypedContractMethod< - [left: BytesLike, right: BytesLike, error: string], - [void], - "view" - >; - - "assertNotEq(uint256,uint256,string)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - - "assertNotEq(uint256[],uint256[],string)": TypedContractMethod< - [left: BigNumberish[], right: BigNumberish[], error: string], - [void], - "view" - >; - - "assertNotEq(address,address)": TypedContractMethod< - [left: AddressLike, right: AddressLike], - [void], - "view" - >; - - "assertNotEq(bytes32,bytes32,string)": TypedContractMethod< - [left: BytesLike, right: BytesLike, error: string], - [void], - "view" - >; - - "assertNotEq(string[],string[],string)": TypedContractMethod< - [left: string[], right: string[], error: string], - [void], - "view" - >; - - "assertNotEq(uint256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - - "assertNotEq(bytes32[],bytes32[],string)": TypedContractMethod< - [left: BytesLike[], right: BytesLike[], error: string], - [void], - "view" - >; - - "assertNotEq(string[],string[])": TypedContractMethod< - [left: string[], right: string[]], - [void], - "view" - >; - - "assertNotEq(int256[],int256[],string)": TypedContractMethod< - [left: BigNumberish[], right: BigNumberish[], error: string], - [void], - "view" - >; - - "assertNotEq(bytes[],bytes[])": TypedContractMethod< - [left: BytesLike[], right: BytesLike[]], - [void], - "view" - >; - - "assertNotEq(int256,int256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - - "assertNotEqDecimal(int256,int256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - - "assertNotEqDecimal(int256,int256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertNotEqDecimal(uint256,uint256,uint256)": TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - - "assertNotEqDecimal(uint256,uint256,uint256,string)": TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - - "assertTrue(bool)": TypedContractMethod<[condition: boolean], [void], "view">; - - "assertTrue(bool,string)": TypedContractMethod< - [condition: boolean, error: string], - [void], - "view" - >; - - assume: TypedContractMethod<[condition: boolean], [void], "view">; - - "assumeNoRevert()": TypedContractMethod<[], [void], "view">; - - "assumeNoRevert((address,bool,bytes)[])": TypedContractMethod< - [potentialReverts: VmSafe.PotentialRevertStruct[]], - [void], - "view" - >; - - "assumeNoRevert((address,bool,bytes))": TypedContractMethod< - [potentialRevert: VmSafe.PotentialRevertStruct], - [void], - "view" - >; - - attachBlob: TypedContractMethod<[blob: BytesLike], [void], "nonpayable">; - - attachDelegation: TypedContractMethod< - [signedDelegation: VmSafe.SignedDelegationStruct], - [void], - "nonpayable" - >; - - "breakpoint(string)": TypedContractMethod<[char: string], [void], "view">; - - "breakpoint(string,bool)": TypedContractMethod< - [char: string, value: boolean], - [void], - "view" - >; - - "broadcast()": TypedContractMethod<[], [void], "nonpayable">; - - "broadcast(address)": TypedContractMethod< - [signer: AddressLike], - [void], - "nonpayable" - >; - - "broadcast(uint256)": TypedContractMethod< - [privateKey: BigNumberish], - [void], - "nonpayable" - >; - - broadcastRawTransaction: TypedContractMethod< - [data: BytesLike], - [void], - "nonpayable" - >; - - closeFile: TypedContractMethod<[path: string], [void], "nonpayable">; - - "computeCreate2Address(bytes32,bytes32)": TypedContractMethod< - [salt: BytesLike, initCodeHash: BytesLike], - [string], - "view" - >; - - "computeCreate2Address(bytes32,bytes32,address)": TypedContractMethod< - [salt: BytesLike, initCodeHash: BytesLike, deployer: AddressLike], - [string], - "view" - >; - - computeCreateAddress: TypedContractMethod< - [deployer: AddressLike, nonce: BigNumberish], - [string], - "view" - >; - - contains: TypedContractMethod< - [subject: string, search: string], - [boolean], - "nonpayable" - >; - - copyFile: TypedContractMethod< - [from: string, to: string], - [bigint], - "nonpayable" - >; - - copyStorage: TypedContractMethod< - [from: AddressLike, to: AddressLike], - [void], - "nonpayable" - >; - - createDir: TypedContractMethod< - [path: string, recursive: boolean], - [void], - "nonpayable" - >; - - "createWallet(string)": TypedContractMethod< - [walletLabel: string], - [VmSafe.WalletStructOutput], - "nonpayable" - >; - - "createWallet(uint256)": TypedContractMethod< - [privateKey: BigNumberish], - [VmSafe.WalletStructOutput], - "nonpayable" - >; - - "createWallet(uint256,string)": TypedContractMethod< - [privateKey: BigNumberish, walletLabel: string], - [VmSafe.WalletStructOutput], - "nonpayable" - >; - - "deployCode(string,uint256,bytes32)": TypedContractMethod< - [artifactPath: string, value: BigNumberish, salt: BytesLike], - [string], - "nonpayable" - >; - - "deployCode(string,bytes,bytes32)": TypedContractMethod< - [artifactPath: string, constructorArgs: BytesLike, salt: BytesLike], - [string], - "nonpayable" - >; - - "deployCode(string,uint256)": TypedContractMethod< - [artifactPath: string, value: BigNumberish], - [string], - "nonpayable" - >; - - "deployCode(string,bytes32)": TypedContractMethod< - [artifactPath: string, salt: BytesLike], - [string], - "nonpayable" - >; - - "deployCode(string,bytes)": TypedContractMethod< - [artifactPath: string, constructorArgs: BytesLike], - [string], - "nonpayable" - >; - - "deployCode(string,bytes,uint256,bytes32)": TypedContractMethod< - [ - artifactPath: string, - constructorArgs: BytesLike, - value: BigNumberish, - salt: BytesLike - ], - [string], - "nonpayable" - >; - - "deployCode(string)": TypedContractMethod< - [artifactPath: string], - [string], - "nonpayable" - >; - - "deployCode(string,bytes,uint256)": TypedContractMethod< - [artifactPath: string, constructorArgs: BytesLike, value: BigNumberish], - [string], - "nonpayable" - >; - - "deriveKey(string,string,uint32,string)": TypedContractMethod< - [ - mnemonic: string, - derivationPath: string, - index: BigNumberish, - language: string - ], - [bigint], - "view" - >; - - "deriveKey(string,uint32,string)": TypedContractMethod< - [mnemonic: string, index: BigNumberish, language: string], - [bigint], - "view" - >; - - "deriveKey(string,uint32)": TypedContractMethod< - [mnemonic: string, index: BigNumberish], - [bigint], - "view" - >; - - "deriveKey(string,string,uint32)": TypedContractMethod< - [mnemonic: string, derivationPath: string, index: BigNumberish], - [bigint], - "view" - >; - - ensNamehash: TypedContractMethod<[name: string], [string], "view">; - - "envAddress(string)": TypedContractMethod<[name: string], [string], "view">; - - "envAddress(string,string)": TypedContractMethod< - [name: string, delim: string], - [string[]], - "view" - >; - - "envBool(string)": TypedContractMethod<[name: string], [boolean], "view">; - - "envBool(string,string)": TypedContractMethod< - [name: string, delim: string], - [boolean[]], - "view" - >; - - "envBytes(string)": TypedContractMethod<[name: string], [string], "view">; - - "envBytes(string,string)": TypedContractMethod< - [name: string, delim: string], - [string[]], - "view" - >; - - "envBytes32(string,string)": TypedContractMethod< - [name: string, delim: string], - [string[]], - "view" - >; - - "envBytes32(string)": TypedContractMethod<[name: string], [string], "view">; - - envExists: TypedContractMethod<[name: string], [boolean], "view">; - - "envInt(string,string)": TypedContractMethod< - [name: string, delim: string], - [bigint[]], - "view" - >; - - "envInt(string)": TypedContractMethod<[name: string], [bigint], "view">; - - "envOr(string,string,bytes32[])": TypedContractMethod< - [name: string, delim: string, defaultValue: BytesLike[]], - [string[]], - "view" - >; - - "envOr(string,string,int256[])": TypedContractMethod< - [name: string, delim: string, defaultValue: BigNumberish[]], - [bigint[]], - "view" - >; - - "envOr(string,bool)": TypedContractMethod< - [name: string, defaultValue: boolean], - [boolean], - "view" - >; - - "envOr(string,address)": TypedContractMethod< - [name: string, defaultValue: AddressLike], - [string], - "view" - >; - - "envOr(string,uint256)": TypedContractMethod< - [name: string, defaultValue: BigNumberish], - [bigint], - "view" - >; - - "envOr(string,string,bytes[])": TypedContractMethod< - [name: string, delim: string, defaultValue: BytesLike[]], - [string[]], - "view" - >; - - "envOr(string,string,uint256[])": TypedContractMethod< - [name: string, delim: string, defaultValue: BigNumberish[]], - [bigint[]], - "view" - >; - - "envOr(string,string,string[])": TypedContractMethod< - [name: string, delim: string, defaultValue: string[]], - [string[]], - "view" - >; - - "envOr(string,bytes)": TypedContractMethod< - [name: string, defaultValue: BytesLike], - [string], - "view" - >; - - "envOr(string,bytes32)": TypedContractMethod< - [name: string, defaultValue: BytesLike], - [string], - "view" - >; - - "envOr(string,int256)": TypedContractMethod< - [name: string, defaultValue: BigNumberish], - [bigint], - "view" - >; - - "envOr(string,string,address[])": TypedContractMethod< - [name: string, delim: string, defaultValue: AddressLike[]], - [string[]], - "view" - >; - - "envOr(string,string)": TypedContractMethod< - [name: string, defaultValue: string], - [string], - "view" - >; - - "envOr(string,string,bool[])": TypedContractMethod< - [name: string, delim: string, defaultValue: boolean[]], - [boolean[]], - "view" - >; - - "envString(string,string)": TypedContractMethod< - [name: string, delim: string], - [string[]], - "view" - >; - - "envString(string)": TypedContractMethod<[name: string], [string], "view">; - - "envUint(string)": TypedContractMethod<[name: string], [bigint], "view">; - - "envUint(string,string)": TypedContractMethod< - [name: string, delim: string], - [bigint[]], - "view" - >; - - eth_getLogs: TypedContractMethod< - [ - fromBlock: BigNumberish, - toBlock: BigNumberish, - target: AddressLike, - topics: BytesLike[] - ], - [VmSafe.EthGetLogsStructOutput[]], - "nonpayable" - >; - - exists: TypedContractMethod<[path: string], [boolean], "view">; - - ffi: TypedContractMethod<[commandInput: string[]], [string], "nonpayable">; - - foundryVersionAtLeast: TypedContractMethod< - [version: string], - [boolean], - "view" - >; - - foundryVersionCmp: TypedContractMethod<[version: string], [bigint], "view">; - - fsMetadata: TypedContractMethod< - [path: string], - [VmSafe.FsMetadataStructOutput], - "view" - >; - - getArtifactPathByCode: TypedContractMethod< - [code: BytesLike], - [string], - "view" - >; - - getArtifactPathByDeployedCode: TypedContractMethod< - [deployedCode: BytesLike], - [string], - "view" - >; - - getBlobBaseFee: TypedContractMethod<[], [bigint], "view">; - - getBlockNumber: TypedContractMethod<[], [bigint], "view">; - - getBlockTimestamp: TypedContractMethod<[], [bigint], "view">; - - getBroadcast: TypedContractMethod< - [contractName: string, chainId: BigNumberish, txType: BigNumberish], - [VmSafe.BroadcastTxSummaryStructOutput], - "view" - >; - - "getBroadcasts(string,uint64)": TypedContractMethod< - [contractName: string, chainId: BigNumberish], - [VmSafe.BroadcastTxSummaryStructOutput[]], - "view" - >; - - "getBroadcasts(string,uint64,uint8)": TypedContractMethod< - [contractName: string, chainId: BigNumberish, txType: BigNumberish], - [VmSafe.BroadcastTxSummaryStructOutput[]], - "view" - >; - - "getChain(string)": TypedContractMethod< - [chainAlias: string], - [VmSafe.ChainStructOutput], - "view" - >; - - "getChain(uint256)": TypedContractMethod< - [chainId: BigNumberish], - [VmSafe.ChainStructOutput], - "view" - >; - - getCode: TypedContractMethod<[artifactPath: string], [string], "view">; - - getDeployedCode: TypedContractMethod< - [artifactPath: string], - [string], - "view" - >; - - "getDeployment(string,uint64)": TypedContractMethod< - [contractName: string, chainId: BigNumberish], - [string], - "view" - >; - - "getDeployment(string)": TypedContractMethod< - [contractName: string], - [string], - "view" - >; - - getDeployments: TypedContractMethod< - [contractName: string, chainId: BigNumberish], - [string[]], - "view" - >; - - getFoundryVersion: TypedContractMethod<[], [string], "view">; - - getLabel: TypedContractMethod<[account: AddressLike], [string], "view">; - - getMappingKeyAndParentOf: TypedContractMethod< - [target: AddressLike, elementSlot: BytesLike], - [ - [boolean, string, string] & { - found: boolean; - key: string; - parent: string; - } - ], - "nonpayable" - >; - - getMappingLength: TypedContractMethod< - [target: AddressLike, mappingSlot: BytesLike], - [bigint], - "nonpayable" - >; - - getMappingSlotAt: TypedContractMethod< - [target: AddressLike, mappingSlot: BytesLike, idx: BigNumberish], - [string], - "nonpayable" - >; - - "getNonce(address)": TypedContractMethod< - [account: AddressLike], - [bigint], - "view" - >; - - "getNonce((address,uint256,uint256,uint256))": TypedContractMethod< - [wallet: VmSafe.WalletStruct], - [bigint], - "nonpayable" - >; - - getRecordedLogs: TypedContractMethod< - [], - [VmSafe.LogStructOutput[]], - "nonpayable" - >; - - getStateDiff: TypedContractMethod<[], [string], "view">; - - getStateDiffJson: TypedContractMethod<[], [string], "view">; - - getWallets: TypedContractMethod<[], [string[]], "nonpayable">; - - indexOf: TypedContractMethod<[input: string, key: string], [bigint], "view">; - - isContext: TypedContractMethod<[context: BigNumberish], [boolean], "view">; - - isDir: TypedContractMethod<[path: string], [boolean], "view">; - - isFile: TypedContractMethod<[path: string], [boolean], "view">; - - keyExists: TypedContractMethod< - [json: string, key: string], - [boolean], - "view" - >; - - keyExistsJson: TypedContractMethod< - [json: string, key: string], - [boolean], - "view" - >; - - keyExistsToml: TypedContractMethod< - [toml: string, key: string], - [boolean], - "view" - >; - - label: TypedContractMethod< - [account: AddressLike, newLabel: string], - [void], - "nonpayable" - >; - - lastCallGas: TypedContractMethod<[], [VmSafe.GasStructOutput], "view">; - - load: TypedContractMethod< - [target: AddressLike, slot: BytesLike], - [string], - "view" - >; - - parseAddress: TypedContractMethod< - [stringifiedValue: string], - [string], - "view" - >; - - parseBool: TypedContractMethod<[stringifiedValue: string], [boolean], "view">; - - parseBytes: TypedContractMethod<[stringifiedValue: string], [string], "view">; - - parseBytes32: TypedContractMethod< - [stringifiedValue: string], - [string], - "view" - >; - - parseInt: TypedContractMethod<[stringifiedValue: string], [bigint], "view">; - - "parseJson(string)": TypedContractMethod<[json: string], [string], "view">; - - "parseJson(string,string)": TypedContractMethod< - [json: string, key: string], - [string], - "view" - >; - - parseJsonAddress: TypedContractMethod< - [json: string, key: string], - [string], - "view" - >; - - parseJsonAddressArray: TypedContractMethod< - [json: string, key: string], - [string[]], - "view" - >; - - parseJsonBool: TypedContractMethod< - [json: string, key: string], - [boolean], - "view" - >; - - parseJsonBoolArray: TypedContractMethod< - [json: string, key: string], - [boolean[]], - "view" - >; - - parseJsonBytes: TypedContractMethod< - [json: string, key: string], - [string], - "view" - >; - - parseJsonBytes32: TypedContractMethod< - [json: string, key: string], - [string], - "view" - >; - - parseJsonBytes32Array: TypedContractMethod< - [json: string, key: string], - [string[]], - "view" - >; - - parseJsonBytesArray: TypedContractMethod< - [json: string, key: string], - [string[]], - "view" - >; - - parseJsonInt: TypedContractMethod< - [json: string, key: string], - [bigint], - "view" - >; - - parseJsonIntArray: TypedContractMethod< - [json: string, key: string], - [bigint[]], - "view" - >; - - parseJsonKeys: TypedContractMethod< - [json: string, key: string], - [string[]], - "view" - >; - - parseJsonString: TypedContractMethod< - [json: string, key: string], - [string], - "view" - >; - - parseJsonStringArray: TypedContractMethod< - [json: string, key: string], - [string[]], - "view" - >; - - "parseJsonType(string,string)": TypedContractMethod< - [json: string, typeDescription: string], - [string], - "view" - >; - - "parseJsonType(string,string,string)": TypedContractMethod< - [json: string, key: string, typeDescription: string], - [string], - "view" - >; - - parseJsonTypeArray: TypedContractMethod< - [json: string, key: string, typeDescription: string], - [string], - "view" - >; - - parseJsonUint: TypedContractMethod< - [json: string, key: string], - [bigint], - "view" - >; - - parseJsonUintArray: TypedContractMethod< - [json: string, key: string], - [bigint[]], - "view" - >; - - "parseToml(string,string)": TypedContractMethod< - [toml: string, key: string], - [string], - "view" - >; - - "parseToml(string)": TypedContractMethod<[toml: string], [string], "view">; - - parseTomlAddress: TypedContractMethod< - [toml: string, key: string], - [string], - "view" - >; - - parseTomlAddressArray: TypedContractMethod< - [toml: string, key: string], - [string[]], - "view" - >; - - parseTomlBool: TypedContractMethod< - [toml: string, key: string], - [boolean], - "view" - >; - - parseTomlBoolArray: TypedContractMethod< - [toml: string, key: string], - [boolean[]], - "view" - >; - - parseTomlBytes: TypedContractMethod< - [toml: string, key: string], - [string], - "view" - >; - - parseTomlBytes32: TypedContractMethod< - [toml: string, key: string], - [string], - "view" - >; - - parseTomlBytes32Array: TypedContractMethod< - [toml: string, key: string], - [string[]], - "view" - >; - - parseTomlBytesArray: TypedContractMethod< - [toml: string, key: string], - [string[]], - "view" - >; - - parseTomlInt: TypedContractMethod< - [toml: string, key: string], - [bigint], - "view" - >; - - parseTomlIntArray: TypedContractMethod< - [toml: string, key: string], - [bigint[]], - "view" - >; - - parseTomlKeys: TypedContractMethod< - [toml: string, key: string], - [string[]], - "view" - >; - - parseTomlString: TypedContractMethod< - [toml: string, key: string], - [string], - "view" - >; - - parseTomlStringArray: TypedContractMethod< - [toml: string, key: string], - [string[]], - "view" - >; - - "parseTomlType(string,string)": TypedContractMethod< - [toml: string, typeDescription: string], - [string], - "view" - >; - - "parseTomlType(string,string,string)": TypedContractMethod< - [toml: string, key: string, typeDescription: string], - [string], - "view" - >; - - parseTomlTypeArray: TypedContractMethod< - [toml: string, key: string, typeDescription: string], - [string], - "view" - >; - - parseTomlUint: TypedContractMethod< - [toml: string, key: string], - [bigint], - "view" - >; - - parseTomlUintArray: TypedContractMethod< - [toml: string, key: string], - [bigint[]], - "view" - >; - - parseUint: TypedContractMethod<[stringifiedValue: string], [bigint], "view">; - - pauseGasMetering: TypedContractMethod<[], [void], "nonpayable">; - - pauseTracing: TypedContractMethod<[], [void], "view">; - - projectRoot: TypedContractMethod<[], [string], "view">; - - prompt: TypedContractMethod<[promptText: string], [string], "nonpayable">; - - promptAddress: TypedContractMethod< - [promptText: string], - [string], - "nonpayable" - >; - - promptSecret: TypedContractMethod< - [promptText: string], - [string], - "nonpayable" - >; - - promptSecretUint: TypedContractMethod< - [promptText: string], - [bigint], - "nonpayable" - >; - - promptUint: TypedContractMethod<[promptText: string], [bigint], "nonpayable">; - - publicKeyP256: TypedContractMethod< - [privateKey: BigNumberish], - [[bigint, bigint] & { publicKeyX: bigint; publicKeyY: bigint }], - "view" - >; - - randomAddress: TypedContractMethod<[], [string], "nonpayable">; - - randomBool: TypedContractMethod<[], [boolean], "view">; - - randomBytes: TypedContractMethod<[len: BigNumberish], [string], "view">; - - randomBytes4: TypedContractMethod<[], [string], "view">; - - randomBytes8: TypedContractMethod<[], [string], "view">; - - "randomInt()": TypedContractMethod<[], [bigint], "view">; - - "randomInt(uint256)": TypedContractMethod< - [bits: BigNumberish], - [bigint], - "view" - >; - - "randomUint()": TypedContractMethod<[], [bigint], "nonpayable">; - - "randomUint(uint256)": TypedContractMethod< - [bits: BigNumberish], - [bigint], - "view" - >; - - "randomUint(uint256,uint256)": TypedContractMethod< - [min: BigNumberish, max: BigNumberish], - [bigint], - "nonpayable" - >; - - "readDir(string,uint64)": TypedContractMethod< - [path: string, maxDepth: BigNumberish], - [VmSafe.DirEntryStructOutput[]], - "view" - >; - - "readDir(string,uint64,bool)": TypedContractMethod< - [path: string, maxDepth: BigNumberish, followLinks: boolean], - [VmSafe.DirEntryStructOutput[]], - "view" - >; - - "readDir(string)": TypedContractMethod< - [path: string], - [VmSafe.DirEntryStructOutput[]], - "view" - >; - - readFile: TypedContractMethod<[path: string], [string], "view">; - - readFileBinary: TypedContractMethod<[path: string], [string], "view">; - - readLine: TypedContractMethod<[path: string], [string], "view">; - - readLink: TypedContractMethod<[linkPath: string], [string], "view">; - - record: TypedContractMethod<[], [void], "nonpayable">; - - recordLogs: TypedContractMethod<[], [void], "nonpayable">; - - rememberKey: TypedContractMethod< - [privateKey: BigNumberish], - [string], - "nonpayable" - >; - - "rememberKeys(string,string,uint32)": TypedContractMethod< - [mnemonic: string, derivationPath: string, count: BigNumberish], - [string[]], - "nonpayable" - >; - - "rememberKeys(string,string,string,uint32)": TypedContractMethod< - [ - mnemonic: string, - derivationPath: string, - language: string, - count: BigNumberish - ], - [string[]], - "nonpayable" - >; - - removeDir: TypedContractMethod< - [path: string, recursive: boolean], - [void], - "nonpayable" - >; - - removeFile: TypedContractMethod<[path: string], [void], "nonpayable">; - - replace: TypedContractMethod< - [input: string, from: string, to: string], - [string], - "view" - >; - - resetGasMetering: TypedContractMethod<[], [void], "nonpayable">; - - resumeGasMetering: TypedContractMethod<[], [void], "nonpayable">; - - resumeTracing: TypedContractMethod<[], [void], "view">; - - "rpc(string,string,string)": TypedContractMethod< - [urlOrAlias: string, method: string, params: string], - [string], - "nonpayable" - >; - - "rpc(string,string)": TypedContractMethod< - [method: string, params: string], - [string], - "nonpayable" - >; - - rpcUrl: TypedContractMethod<[rpcAlias: string], [string], "view">; - - rpcUrlStructs: TypedContractMethod<[], [VmSafe.RpcStructOutput[]], "view">; - - rpcUrls: TypedContractMethod<[], [[string, string][]], "view">; - - "serializeAddress(string,string,address[])": TypedContractMethod< - [objectKey: string, valueKey: string, values: AddressLike[]], - [string], - "nonpayable" - >; - - "serializeAddress(string,string,address)": TypedContractMethod< - [objectKey: string, valueKey: string, value: AddressLike], - [string], - "nonpayable" - >; - - "serializeBool(string,string,bool[])": TypedContractMethod< - [objectKey: string, valueKey: string, values: boolean[]], - [string], - "nonpayable" - >; - - "serializeBool(string,string,bool)": TypedContractMethod< - [objectKey: string, valueKey: string, value: boolean], - [string], - "nonpayable" - >; - - "serializeBytes(string,string,bytes[])": TypedContractMethod< - [objectKey: string, valueKey: string, values: BytesLike[]], - [string], - "nonpayable" - >; - - "serializeBytes(string,string,bytes)": TypedContractMethod< - [objectKey: string, valueKey: string, value: BytesLike], - [string], - "nonpayable" - >; - - "serializeBytes32(string,string,bytes32[])": TypedContractMethod< - [objectKey: string, valueKey: string, values: BytesLike[]], - [string], - "nonpayable" - >; - - "serializeBytes32(string,string,bytes32)": TypedContractMethod< - [objectKey: string, valueKey: string, value: BytesLike], - [string], - "nonpayable" - >; - - "serializeInt(string,string,int256)": TypedContractMethod< - [objectKey: string, valueKey: string, value: BigNumberish], - [string], - "nonpayable" - >; - - "serializeInt(string,string,int256[])": TypedContractMethod< - [objectKey: string, valueKey: string, values: BigNumberish[]], - [string], - "nonpayable" - >; - - serializeJson: TypedContractMethod< - [objectKey: string, value: string], - [string], - "nonpayable" - >; - - "serializeJsonType(string,bytes)": TypedContractMethod< - [typeDescription: string, value: BytesLike], - [string], - "view" - >; - - "serializeJsonType(string,string,string,bytes)": TypedContractMethod< - [ - objectKey: string, - valueKey: string, - typeDescription: string, - value: BytesLike - ], - [string], - "nonpayable" - >; - - "serializeString(string,string,string[])": TypedContractMethod< - [objectKey: string, valueKey: string, values: string[]], - [string], - "nonpayable" - >; - - "serializeString(string,string,string)": TypedContractMethod< - [objectKey: string, valueKey: string, value: string], - [string], - "nonpayable" - >; - - "serializeUint(string,string,uint256)": TypedContractMethod< - [objectKey: string, valueKey: string, value: BigNumberish], - [string], - "nonpayable" - >; - - "serializeUint(string,string,uint256[])": TypedContractMethod< - [objectKey: string, valueKey: string, values: BigNumberish[]], - [string], - "nonpayable" - >; - - serializeUintToHex: TypedContractMethod< - [objectKey: string, valueKey: string, value: BigNumberish], - [string], - "nonpayable" - >; - - "setArbitraryStorage(address,bool)": TypedContractMethod< - [target: AddressLike, overwrite: boolean], - [void], - "nonpayable" - >; - - "setArbitraryStorage(address)": TypedContractMethod< - [target: AddressLike], - [void], - "nonpayable" - >; - - setEnv: TypedContractMethod< - [name: string, value: string], - [void], - "nonpayable" - >; - - shuffle: TypedContractMethod< - [array: BigNumberish[]], - [bigint[]], - "nonpayable" - >; - - "sign(bytes32)": TypedContractMethod< - [digest: BytesLike], - [[bigint, string, string] & { v: bigint; r: string; s: string }], - "view" - >; - - "sign(address,bytes32)": TypedContractMethod< - [signer: AddressLike, digest: BytesLike], - [[bigint, string, string] & { v: bigint; r: string; s: string }], - "view" - >; - - "sign((address,uint256,uint256,uint256),bytes32)": TypedContractMethod< - [wallet: VmSafe.WalletStruct, digest: BytesLike], - [[bigint, string, string] & { v: bigint; r: string; s: string }], - "nonpayable" - >; - - "sign(uint256,bytes32)": TypedContractMethod< - [privateKey: BigNumberish, digest: BytesLike], - [[bigint, string, string] & { v: bigint; r: string; s: string }], - "view" - >; - - "signAndAttachDelegation(address,uint256)": TypedContractMethod< - [implementation: AddressLike, privateKey: BigNumberish], - [VmSafe.SignedDelegationStructOutput], - "nonpayable" - >; - - "signAndAttachDelegation(address,uint256,uint64)": TypedContractMethod< - [ - implementation: AddressLike, - privateKey: BigNumberish, - nonce: BigNumberish - ], - [VmSafe.SignedDelegationStructOutput], - "nonpayable" - >; - - "signCompact((address,uint256,uint256,uint256),bytes32)": TypedContractMethod< - [wallet: VmSafe.WalletStruct, digest: BytesLike], - [[string, string] & { r: string; vs: string }], - "nonpayable" - >; - - "signCompact(address,bytes32)": TypedContractMethod< - [signer: AddressLike, digest: BytesLike], - [[string, string] & { r: string; vs: string }], - "view" - >; - - "signCompact(bytes32)": TypedContractMethod< - [digest: BytesLike], - [[string, string] & { r: string; vs: string }], - "view" - >; - - "signCompact(uint256,bytes32)": TypedContractMethod< - [privateKey: BigNumberish, digest: BytesLike], - [[string, string] & { r: string; vs: string }], - "view" - >; - - "signDelegation(address,uint256)": TypedContractMethod< - [implementation: AddressLike, privateKey: BigNumberish], - [VmSafe.SignedDelegationStructOutput], - "nonpayable" - >; - - "signDelegation(address,uint256,uint64)": TypedContractMethod< - [ - implementation: AddressLike, - privateKey: BigNumberish, - nonce: BigNumberish - ], - [VmSafe.SignedDelegationStructOutput], - "nonpayable" - >; - - signP256: TypedContractMethod< - [privateKey: BigNumberish, digest: BytesLike], - [[string, string] & { r: string; s: string }], - "view" - >; - - sleep: TypedContractMethod<[duration: BigNumberish], [void], "nonpayable">; - - sort: TypedContractMethod<[array: BigNumberish[]], [bigint[]], "nonpayable">; - - split: TypedContractMethod< - [input: string, delimiter: string], - [string[]], - "view" - >; - - "startBroadcast()": TypedContractMethod<[], [void], "nonpayable">; - - "startBroadcast(address)": TypedContractMethod< - [signer: AddressLike], - [void], - "nonpayable" - >; - - "startBroadcast(uint256)": TypedContractMethod< - [privateKey: BigNumberish], - [void], - "nonpayable" - >; - - startDebugTraceRecording: TypedContractMethod<[], [void], "nonpayable">; - - startMappingRecording: TypedContractMethod<[], [void], "nonpayable">; - - startStateDiffRecording: TypedContractMethod<[], [void], "nonpayable">; - - stopAndReturnDebugTraceRecording: TypedContractMethod< - [], - [VmSafe.DebugStepStructOutput[]], - "nonpayable" - >; - - stopAndReturnStateDiff: TypedContractMethod< - [], - [VmSafe.AccountAccessStructOutput[]], - "nonpayable" - >; - - stopBroadcast: TypedContractMethod<[], [void], "nonpayable">; - - stopMappingRecording: TypedContractMethod<[], [void], "nonpayable">; - - "toBase64(string)": TypedContractMethod<[data: string], [string], "view">; - - "toBase64(bytes)": TypedContractMethod<[data: BytesLike], [string], "view">; - - "toBase64URL(string)": TypedContractMethod<[data: string], [string], "view">; - - "toBase64URL(bytes)": TypedContractMethod< - [data: BytesLike], - [string], - "view" - >; - - toLowercase: TypedContractMethod<[input: string], [string], "view">; - - "toString(address)": TypedContractMethod< - [value: AddressLike], - [string], - "view" - >; - - "toString(uint256)": TypedContractMethod< - [value: BigNumberish], - [string], - "view" - >; - - "toString(bytes)": TypedContractMethod<[value: BytesLike], [string], "view">; - - "toString(bool)": TypedContractMethod<[value: boolean], [string], "view">; - - "toString(int256)": TypedContractMethod< - [value: BigNumberish], - [string], - "view" - >; - - "toString(bytes32)": TypedContractMethod< - [value: BytesLike], - [string], - "view" - >; - - toUppercase: TypedContractMethod<[input: string], [string], "view">; - - trim: TypedContractMethod<[input: string], [string], "view">; - - tryFfi: TypedContractMethod< - [commandInput: string[]], - [VmSafe.FfiResultStructOutput], - "nonpayable" - >; - - unixTime: TypedContractMethod<[], [bigint], "view">; - - writeFile: TypedContractMethod< - [path: string, data: string], - [void], - "nonpayable" - >; - - writeFileBinary: TypedContractMethod< - [path: string, data: BytesLike], - [void], - "nonpayable" - >; - - "writeJson(string,string,string)": TypedContractMethod< - [json: string, path: string, valueKey: string], - [void], - "nonpayable" - >; - - "writeJson(string,string)": TypedContractMethod< - [json: string, path: string], - [void], - "nonpayable" - >; - - writeLine: TypedContractMethod< - [path: string, data: string], - [void], - "nonpayable" - >; - - "writeToml(string,string,string)": TypedContractMethod< - [json: string, path: string, valueKey: string], - [void], - "nonpayable" - >; - - "writeToml(string,string)": TypedContractMethod< - [json: string, path: string], - [void], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "accesses" - ): TypedContractMethod< - [target: AddressLike], - [[string[], string[]] & { readSlots: string[]; writeSlots: string[] }], - "nonpayable" - >; - getFunction( - nameOrSignature: "addr" - ): TypedContractMethod<[privateKey: BigNumberish], [string], "view">; - getFunction( - nameOrSignature: "assertApproxEqAbs(uint256,uint256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, maxDelta: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertApproxEqAbs(int256,int256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, maxDelta: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertApproxEqAbs(int256,int256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxDelta: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertApproxEqAbs(uint256,uint256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxDelta: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxDelta: BigNumberish, - decimals: BigNumberish - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxDelta: BigNumberish, - decimals: BigNumberish - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxDelta: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxDelta: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertApproxEqRel(uint256,uint256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxPercentDelta: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertApproxEqRel(uint256,uint256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, maxPercentDelta: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertApproxEqRel(int256,int256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxPercentDelta: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertApproxEqRel(int256,int256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, maxPercentDelta: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxPercentDelta: BigNumberish, - decimals: BigNumberish - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxPercentDelta: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertApproxEqRelDecimal(int256,int256,uint256,uint256)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxPercentDelta: BigNumberish, - decimals: BigNumberish - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - maxPercentDelta: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(bytes32[],bytes32[])" - ): TypedContractMethod< - [left: BytesLike[], right: BytesLike[]], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(int256[],int256[],string)" - ): TypedContractMethod< - [left: BigNumberish[], right: BigNumberish[], error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(address,address,string)" - ): TypedContractMethod< - [left: AddressLike, right: AddressLike, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(string,string,string)" - ): TypedContractMethod< - [left: string, right: string, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(address[],address[])" - ): TypedContractMethod< - [left: AddressLike[], right: AddressLike[]], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(address[],address[],string)" - ): TypedContractMethod< - [left: AddressLike[], right: AddressLike[], error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(bool,bool,string)" - ): TypedContractMethod< - [left: boolean, right: boolean, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(address,address)" - ): TypedContractMethod< - [left: AddressLike, right: AddressLike], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(uint256[],uint256[],string)" - ): TypedContractMethod< - [left: BigNumberish[], right: BigNumberish[], error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(bool[],bool[])" - ): TypedContractMethod<[left: boolean[], right: boolean[]], [void], "view">; - getFunction( - nameOrSignature: "assertEq(int256[],int256[])" - ): TypedContractMethod< - [left: BigNumberish[], right: BigNumberish[]], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(int256,int256,string)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(bytes32,bytes32)" - ): TypedContractMethod<[left: BytesLike, right: BytesLike], [void], "view">; - getFunction( - nameOrSignature: "assertEq(uint256,uint256,string)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(uint256[],uint256[])" - ): TypedContractMethod< - [left: BigNumberish[], right: BigNumberish[]], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(bytes,bytes)" - ): TypedContractMethod<[left: BytesLike, right: BytesLike], [void], "view">; - getFunction( - nameOrSignature: "assertEq(uint256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(bytes32,bytes32,string)" - ): TypedContractMethod< - [left: BytesLike, right: BytesLike, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(string[],string[])" - ): TypedContractMethod<[left: string[], right: string[]], [void], "view">; - getFunction( - nameOrSignature: "assertEq(bytes32[],bytes32[],string)" - ): TypedContractMethod< - [left: BytesLike[], right: BytesLike[], error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(bytes,bytes,string)" - ): TypedContractMethod< - [left: BytesLike, right: BytesLike, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(bool[],bool[],string)" - ): TypedContractMethod< - [left: boolean[], right: boolean[], error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(bytes[],bytes[])" - ): TypedContractMethod< - [left: BytesLike[], right: BytesLike[]], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(string[],string[],string)" - ): TypedContractMethod< - [left: string[], right: string[], error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(string,string)" - ): TypedContractMethod<[left: string, right: string], [void], "view">; - getFunction( - nameOrSignature: "assertEq(bytes[],bytes[],string)" - ): TypedContractMethod< - [left: BytesLike[], right: BytesLike[], error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEq(bool,bool)" - ): TypedContractMethod<[left: boolean, right: boolean], [void], "view">; - getFunction( - nameOrSignature: "assertEq(int256,int256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEqDecimal(uint256,uint256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEqDecimal(int256,int256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEqDecimal(int256,int256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertEqDecimal(uint256,uint256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertFalse(bool,string)" - ): TypedContractMethod<[condition: boolean, error: string], [void], "view">; - getFunction( - nameOrSignature: "assertFalse(bool)" - ): TypedContractMethod<[condition: boolean], [void], "view">; - getFunction( - nameOrSignature: "assertGe(int256,int256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertGe(int256,int256,string)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertGe(uint256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertGe(uint256,uint256,string)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertGeDecimal(uint256,uint256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertGeDecimal(int256,int256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertGeDecimal(uint256,uint256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertGeDecimal(int256,int256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertGt(int256,int256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertGt(uint256,uint256,string)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertGt(uint256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertGt(int256,int256,string)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertGtDecimal(int256,int256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertGtDecimal(uint256,uint256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertGtDecimal(int256,int256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertGtDecimal(uint256,uint256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertLe(int256,int256,string)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertLe(uint256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertLe(int256,int256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertLe(uint256,uint256,string)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertLeDecimal(int256,int256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertLeDecimal(uint256,uint256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertLeDecimal(int256,int256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertLeDecimal(uint256,uint256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertLt(int256,int256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertLt(uint256,uint256,string)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertLt(int256,int256,string)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertLt(uint256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertLtDecimal(uint256,uint256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertLtDecimal(int256,int256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertLtDecimal(uint256,uint256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertLtDecimal(int256,int256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(bytes32[],bytes32[])" - ): TypedContractMethod< - [left: BytesLike[], right: BytesLike[]], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(int256[],int256[])" - ): TypedContractMethod< - [left: BigNumberish[], right: BigNumberish[]], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(bool,bool,string)" - ): TypedContractMethod< - [left: boolean, right: boolean, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(bytes[],bytes[],string)" - ): TypedContractMethod< - [left: BytesLike[], right: BytesLike[], error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(bool,bool)" - ): TypedContractMethod<[left: boolean, right: boolean], [void], "view">; - getFunction( - nameOrSignature: "assertNotEq(bool[],bool[])" - ): TypedContractMethod<[left: boolean[], right: boolean[]], [void], "view">; - getFunction( - nameOrSignature: "assertNotEq(bytes,bytes)" - ): TypedContractMethod<[left: BytesLike, right: BytesLike], [void], "view">; - getFunction( - nameOrSignature: "assertNotEq(address[],address[])" - ): TypedContractMethod< - [left: AddressLike[], right: AddressLike[]], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(int256,int256,string)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(uint256[],uint256[])" - ): TypedContractMethod< - [left: BigNumberish[], right: BigNumberish[]], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(bool[],bool[],string)" - ): TypedContractMethod< - [left: boolean[], right: boolean[], error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(string,string)" - ): TypedContractMethod<[left: string, right: string], [void], "view">; - getFunction( - nameOrSignature: "assertNotEq(address[],address[],string)" - ): TypedContractMethod< - [left: AddressLike[], right: AddressLike[], error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(string,string,string)" - ): TypedContractMethod< - [left: string, right: string, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(address,address,string)" - ): TypedContractMethod< - [left: AddressLike, right: AddressLike, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(bytes32,bytes32)" - ): TypedContractMethod<[left: BytesLike, right: BytesLike], [void], "view">; - getFunction( - nameOrSignature: "assertNotEq(bytes,bytes,string)" - ): TypedContractMethod< - [left: BytesLike, right: BytesLike, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(uint256,uint256,string)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(uint256[],uint256[],string)" - ): TypedContractMethod< - [left: BigNumberish[], right: BigNumberish[], error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(address,address)" - ): TypedContractMethod< - [left: AddressLike, right: AddressLike], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(bytes32,bytes32,string)" - ): TypedContractMethod< - [left: BytesLike, right: BytesLike, error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(string[],string[],string)" - ): TypedContractMethod< - [left: string[], right: string[], error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(uint256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(bytes32[],bytes32[],string)" - ): TypedContractMethod< - [left: BytesLike[], right: BytesLike[], error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(string[],string[])" - ): TypedContractMethod<[left: string[], right: string[]], [void], "view">; - getFunction( - nameOrSignature: "assertNotEq(int256[],int256[],string)" - ): TypedContractMethod< - [left: BigNumberish[], right: BigNumberish[], error: string], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(bytes[],bytes[])" - ): TypedContractMethod< - [left: BytesLike[], right: BytesLike[]], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEq(int256,int256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEqDecimal(int256,int256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEqDecimal(int256,int256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEqDecimal(uint256,uint256,uint256)" - ): TypedContractMethod< - [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertNotEqDecimal(uint256,uint256,uint256,string)" - ): TypedContractMethod< - [ - left: BigNumberish, - right: BigNumberish, - decimals: BigNumberish, - error: string - ], - [void], - "view" - >; - getFunction( - nameOrSignature: "assertTrue(bool)" - ): TypedContractMethod<[condition: boolean], [void], "view">; - getFunction( - nameOrSignature: "assertTrue(bool,string)" - ): TypedContractMethod<[condition: boolean, error: string], [void], "view">; - getFunction( - nameOrSignature: "assume" - ): TypedContractMethod<[condition: boolean], [void], "view">; - getFunction( - nameOrSignature: "assumeNoRevert()" - ): TypedContractMethod<[], [void], "view">; - getFunction( - nameOrSignature: "assumeNoRevert((address,bool,bytes)[])" - ): TypedContractMethod< - [potentialReverts: VmSafe.PotentialRevertStruct[]], - [void], - "view" - >; - getFunction( - nameOrSignature: "assumeNoRevert((address,bool,bytes))" - ): TypedContractMethod< - [potentialRevert: VmSafe.PotentialRevertStruct], - [void], - "view" - >; - getFunction( - nameOrSignature: "attachBlob" - ): TypedContractMethod<[blob: BytesLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "attachDelegation" - ): TypedContractMethod< - [signedDelegation: VmSafe.SignedDelegationStruct], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "breakpoint(string)" - ): TypedContractMethod<[char: string], [void], "view">; - getFunction( - nameOrSignature: "breakpoint(string,bool)" - ): TypedContractMethod<[char: string, value: boolean], [void], "view">; - getFunction( - nameOrSignature: "broadcast()" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "broadcast(address)" - ): TypedContractMethod<[signer: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "broadcast(uint256)" - ): TypedContractMethod<[privateKey: BigNumberish], [void], "nonpayable">; - getFunction( - nameOrSignature: "broadcastRawTransaction" - ): TypedContractMethod<[data: BytesLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "closeFile" - ): TypedContractMethod<[path: string], [void], "nonpayable">; - getFunction( - nameOrSignature: "computeCreate2Address(bytes32,bytes32)" - ): TypedContractMethod< - [salt: BytesLike, initCodeHash: BytesLike], - [string], - "view" - >; - getFunction( - nameOrSignature: "computeCreate2Address(bytes32,bytes32,address)" - ): TypedContractMethod< - [salt: BytesLike, initCodeHash: BytesLike, deployer: AddressLike], - [string], - "view" - >; - getFunction( - nameOrSignature: "computeCreateAddress" - ): TypedContractMethod< - [deployer: AddressLike, nonce: BigNumberish], - [string], - "view" - >; - getFunction( - nameOrSignature: "contains" - ): TypedContractMethod< - [subject: string, search: string], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "copyFile" - ): TypedContractMethod<[from: string, to: string], [bigint], "nonpayable">; - getFunction( - nameOrSignature: "copyStorage" - ): TypedContractMethod< - [from: AddressLike, to: AddressLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "createDir" - ): TypedContractMethod< - [path: string, recursive: boolean], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "createWallet(string)" - ): TypedContractMethod< - [walletLabel: string], - [VmSafe.WalletStructOutput], - "nonpayable" - >; - getFunction( - nameOrSignature: "createWallet(uint256)" - ): TypedContractMethod< - [privateKey: BigNumberish], - [VmSafe.WalletStructOutput], - "nonpayable" - >; - getFunction( - nameOrSignature: "createWallet(uint256,string)" - ): TypedContractMethod< - [privateKey: BigNumberish, walletLabel: string], - [VmSafe.WalletStructOutput], - "nonpayable" - >; - getFunction( - nameOrSignature: "deployCode(string,uint256,bytes32)" - ): TypedContractMethod< - [artifactPath: string, value: BigNumberish, salt: BytesLike], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "deployCode(string,bytes,bytes32)" - ): TypedContractMethod< - [artifactPath: string, constructorArgs: BytesLike, salt: BytesLike], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "deployCode(string,uint256)" - ): TypedContractMethod< - [artifactPath: string, value: BigNumberish], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "deployCode(string,bytes32)" - ): TypedContractMethod< - [artifactPath: string, salt: BytesLike], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "deployCode(string,bytes)" - ): TypedContractMethod< - [artifactPath: string, constructorArgs: BytesLike], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "deployCode(string,bytes,uint256,bytes32)" - ): TypedContractMethod< - [ - artifactPath: string, - constructorArgs: BytesLike, - value: BigNumberish, - salt: BytesLike - ], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "deployCode(string)" - ): TypedContractMethod<[artifactPath: string], [string], "nonpayable">; - getFunction( - nameOrSignature: "deployCode(string,bytes,uint256)" - ): TypedContractMethod< - [artifactPath: string, constructorArgs: BytesLike, value: BigNumberish], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "deriveKey(string,string,uint32,string)" - ): TypedContractMethod< - [ - mnemonic: string, - derivationPath: string, - index: BigNumberish, - language: string - ], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "deriveKey(string,uint32,string)" - ): TypedContractMethod< - [mnemonic: string, index: BigNumberish, language: string], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "deriveKey(string,uint32)" - ): TypedContractMethod< - [mnemonic: string, index: BigNumberish], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "deriveKey(string,string,uint32)" - ): TypedContractMethod< - [mnemonic: string, derivationPath: string, index: BigNumberish], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "ensNamehash" - ): TypedContractMethod<[name: string], [string], "view">; - getFunction( - nameOrSignature: "envAddress(string)" - ): TypedContractMethod<[name: string], [string], "view">; - getFunction( - nameOrSignature: "envAddress(string,string)" - ): TypedContractMethod<[name: string, delim: string], [string[]], "view">; - getFunction( - nameOrSignature: "envBool(string)" - ): TypedContractMethod<[name: string], [boolean], "view">; - getFunction( - nameOrSignature: "envBool(string,string)" - ): TypedContractMethod<[name: string, delim: string], [boolean[]], "view">; - getFunction( - nameOrSignature: "envBytes(string)" - ): TypedContractMethod<[name: string], [string], "view">; - getFunction( - nameOrSignature: "envBytes(string,string)" - ): TypedContractMethod<[name: string, delim: string], [string[]], "view">; - getFunction( - nameOrSignature: "envBytes32(string,string)" - ): TypedContractMethod<[name: string, delim: string], [string[]], "view">; - getFunction( - nameOrSignature: "envBytes32(string)" - ): TypedContractMethod<[name: string], [string], "view">; - getFunction( - nameOrSignature: "envExists" - ): TypedContractMethod<[name: string], [boolean], "view">; - getFunction( - nameOrSignature: "envInt(string,string)" - ): TypedContractMethod<[name: string, delim: string], [bigint[]], "view">; - getFunction( - nameOrSignature: "envInt(string)" - ): TypedContractMethod<[name: string], [bigint], "view">; - getFunction( - nameOrSignature: "envOr(string,string,bytes32[])" - ): TypedContractMethod< - [name: string, delim: string, defaultValue: BytesLike[]], - [string[]], - "view" - >; - getFunction( - nameOrSignature: "envOr(string,string,int256[])" - ): TypedContractMethod< - [name: string, delim: string, defaultValue: BigNumberish[]], - [bigint[]], - "view" - >; - getFunction( - nameOrSignature: "envOr(string,bool)" - ): TypedContractMethod< - [name: string, defaultValue: boolean], - [boolean], - "view" - >; - getFunction( - nameOrSignature: "envOr(string,address)" - ): TypedContractMethod< - [name: string, defaultValue: AddressLike], - [string], - "view" - >; - getFunction( - nameOrSignature: "envOr(string,uint256)" - ): TypedContractMethod< - [name: string, defaultValue: BigNumberish], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "envOr(string,string,bytes[])" - ): TypedContractMethod< - [name: string, delim: string, defaultValue: BytesLike[]], - [string[]], - "view" - >; - getFunction( - nameOrSignature: "envOr(string,string,uint256[])" - ): TypedContractMethod< - [name: string, delim: string, defaultValue: BigNumberish[]], - [bigint[]], - "view" - >; - getFunction( - nameOrSignature: "envOr(string,string,string[])" - ): TypedContractMethod< - [name: string, delim: string, defaultValue: string[]], - [string[]], - "view" - >; - getFunction( - nameOrSignature: "envOr(string,bytes)" - ): TypedContractMethod< - [name: string, defaultValue: BytesLike], - [string], - "view" - >; - getFunction( - nameOrSignature: "envOr(string,bytes32)" - ): TypedContractMethod< - [name: string, defaultValue: BytesLike], - [string], - "view" - >; - getFunction( - nameOrSignature: "envOr(string,int256)" - ): TypedContractMethod< - [name: string, defaultValue: BigNumberish], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "envOr(string,string,address[])" - ): TypedContractMethod< - [name: string, delim: string, defaultValue: AddressLike[]], - [string[]], - "view" - >; - getFunction( - nameOrSignature: "envOr(string,string)" - ): TypedContractMethod< - [name: string, defaultValue: string], - [string], - "view" - >; - getFunction( - nameOrSignature: "envOr(string,string,bool[])" - ): TypedContractMethod< - [name: string, delim: string, defaultValue: boolean[]], - [boolean[]], - "view" - >; - getFunction( - nameOrSignature: "envString(string,string)" - ): TypedContractMethod<[name: string, delim: string], [string[]], "view">; - getFunction( - nameOrSignature: "envString(string)" - ): TypedContractMethod<[name: string], [string], "view">; - getFunction( - nameOrSignature: "envUint(string)" - ): TypedContractMethod<[name: string], [bigint], "view">; - getFunction( - nameOrSignature: "envUint(string,string)" - ): TypedContractMethod<[name: string, delim: string], [bigint[]], "view">; - getFunction( - nameOrSignature: "eth_getLogs" - ): TypedContractMethod< - [ - fromBlock: BigNumberish, - toBlock: BigNumberish, - target: AddressLike, - topics: BytesLike[] - ], - [VmSafe.EthGetLogsStructOutput[]], - "nonpayable" - >; - getFunction( - nameOrSignature: "exists" - ): TypedContractMethod<[path: string], [boolean], "view">; - getFunction( - nameOrSignature: "ffi" - ): TypedContractMethod<[commandInput: string[]], [string], "nonpayable">; - getFunction( - nameOrSignature: "foundryVersionAtLeast" - ): TypedContractMethod<[version: string], [boolean], "view">; - getFunction( - nameOrSignature: "foundryVersionCmp" - ): TypedContractMethod<[version: string], [bigint], "view">; - getFunction( - nameOrSignature: "fsMetadata" - ): TypedContractMethod< - [path: string], - [VmSafe.FsMetadataStructOutput], - "view" - >; - getFunction( - nameOrSignature: "getArtifactPathByCode" - ): TypedContractMethod<[code: BytesLike], [string], "view">; - getFunction( - nameOrSignature: "getArtifactPathByDeployedCode" - ): TypedContractMethod<[deployedCode: BytesLike], [string], "view">; - getFunction( - nameOrSignature: "getBlobBaseFee" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "getBlockNumber" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "getBlockTimestamp" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "getBroadcast" - ): TypedContractMethod< - [contractName: string, chainId: BigNumberish, txType: BigNumberish], - [VmSafe.BroadcastTxSummaryStructOutput], - "view" - >; - getFunction( - nameOrSignature: "getBroadcasts(string,uint64)" - ): TypedContractMethod< - [contractName: string, chainId: BigNumberish], - [VmSafe.BroadcastTxSummaryStructOutput[]], - "view" - >; - getFunction( - nameOrSignature: "getBroadcasts(string,uint64,uint8)" - ): TypedContractMethod< - [contractName: string, chainId: BigNumberish, txType: BigNumberish], - [VmSafe.BroadcastTxSummaryStructOutput[]], - "view" - >; - getFunction( - nameOrSignature: "getChain(string)" - ): TypedContractMethod< - [chainAlias: string], - [VmSafe.ChainStructOutput], - "view" - >; - getFunction( - nameOrSignature: "getChain(uint256)" - ): TypedContractMethod< - [chainId: BigNumberish], - [VmSafe.ChainStructOutput], - "view" - >; - getFunction( - nameOrSignature: "getCode" - ): TypedContractMethod<[artifactPath: string], [string], "view">; - getFunction( - nameOrSignature: "getDeployedCode" - ): TypedContractMethod<[artifactPath: string], [string], "view">; - getFunction( - nameOrSignature: "getDeployment(string,uint64)" - ): TypedContractMethod< - [contractName: string, chainId: BigNumberish], - [string], - "view" - >; - getFunction( - nameOrSignature: "getDeployment(string)" - ): TypedContractMethod<[contractName: string], [string], "view">; - getFunction( - nameOrSignature: "getDeployments" - ): TypedContractMethod< - [contractName: string, chainId: BigNumberish], - [string[]], - "view" - >; - getFunction( - nameOrSignature: "getFoundryVersion" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "getLabel" - ): TypedContractMethod<[account: AddressLike], [string], "view">; - getFunction( - nameOrSignature: "getMappingKeyAndParentOf" - ): TypedContractMethod< - [target: AddressLike, elementSlot: BytesLike], - [ - [boolean, string, string] & { - found: boolean; - key: string; - parent: string; - } - ], - "nonpayable" - >; - getFunction( - nameOrSignature: "getMappingLength" - ): TypedContractMethod< - [target: AddressLike, mappingSlot: BytesLike], - [bigint], - "nonpayable" - >; - getFunction( - nameOrSignature: "getMappingSlotAt" - ): TypedContractMethod< - [target: AddressLike, mappingSlot: BytesLike, idx: BigNumberish], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "getNonce(address)" - ): TypedContractMethod<[account: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "getNonce((address,uint256,uint256,uint256))" - ): TypedContractMethod<[wallet: VmSafe.WalletStruct], [bigint], "nonpayable">; - getFunction( - nameOrSignature: "getRecordedLogs" - ): TypedContractMethod<[], [VmSafe.LogStructOutput[]], "nonpayable">; - getFunction( - nameOrSignature: "getStateDiff" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "getStateDiffJson" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "getWallets" - ): TypedContractMethod<[], [string[]], "nonpayable">; - getFunction( - nameOrSignature: "indexOf" - ): TypedContractMethod<[input: string, key: string], [bigint], "view">; - getFunction( - nameOrSignature: "isContext" - ): TypedContractMethod<[context: BigNumberish], [boolean], "view">; - getFunction( - nameOrSignature: "isDir" - ): TypedContractMethod<[path: string], [boolean], "view">; - getFunction( - nameOrSignature: "isFile" - ): TypedContractMethod<[path: string], [boolean], "view">; - getFunction( - nameOrSignature: "keyExists" - ): TypedContractMethod<[json: string, key: string], [boolean], "view">; - getFunction( - nameOrSignature: "keyExistsJson" - ): TypedContractMethod<[json: string, key: string], [boolean], "view">; - getFunction( - nameOrSignature: "keyExistsToml" - ): TypedContractMethod<[toml: string, key: string], [boolean], "view">; - getFunction( - nameOrSignature: "label" - ): TypedContractMethod< - [account: AddressLike, newLabel: string], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "lastCallGas" - ): TypedContractMethod<[], [VmSafe.GasStructOutput], "view">; - getFunction( - nameOrSignature: "load" - ): TypedContractMethod< - [target: AddressLike, slot: BytesLike], - [string], - "view" - >; - getFunction( - nameOrSignature: "parseAddress" - ): TypedContractMethod<[stringifiedValue: string], [string], "view">; - getFunction( - nameOrSignature: "parseBool" - ): TypedContractMethod<[stringifiedValue: string], [boolean], "view">; - getFunction( - nameOrSignature: "parseBytes" - ): TypedContractMethod<[stringifiedValue: string], [string], "view">; - getFunction( - nameOrSignature: "parseBytes32" - ): TypedContractMethod<[stringifiedValue: string], [string], "view">; - getFunction( - nameOrSignature: "parseInt" - ): TypedContractMethod<[stringifiedValue: string], [bigint], "view">; - getFunction( - nameOrSignature: "parseJson(string)" - ): TypedContractMethod<[json: string], [string], "view">; - getFunction( - nameOrSignature: "parseJson(string,string)" - ): TypedContractMethod<[json: string, key: string], [string], "view">; - getFunction( - nameOrSignature: "parseJsonAddress" - ): TypedContractMethod<[json: string, key: string], [string], "view">; - getFunction( - nameOrSignature: "parseJsonAddressArray" - ): TypedContractMethod<[json: string, key: string], [string[]], "view">; - getFunction( - nameOrSignature: "parseJsonBool" - ): TypedContractMethod<[json: string, key: string], [boolean], "view">; - getFunction( - nameOrSignature: "parseJsonBoolArray" - ): TypedContractMethod<[json: string, key: string], [boolean[]], "view">; - getFunction( - nameOrSignature: "parseJsonBytes" - ): TypedContractMethod<[json: string, key: string], [string], "view">; - getFunction( - nameOrSignature: "parseJsonBytes32" - ): TypedContractMethod<[json: string, key: string], [string], "view">; - getFunction( - nameOrSignature: "parseJsonBytes32Array" - ): TypedContractMethod<[json: string, key: string], [string[]], "view">; - getFunction( - nameOrSignature: "parseJsonBytesArray" - ): TypedContractMethod<[json: string, key: string], [string[]], "view">; - getFunction( - nameOrSignature: "parseJsonInt" - ): TypedContractMethod<[json: string, key: string], [bigint], "view">; - getFunction( - nameOrSignature: "parseJsonIntArray" - ): TypedContractMethod<[json: string, key: string], [bigint[]], "view">; - getFunction( - nameOrSignature: "parseJsonKeys" - ): TypedContractMethod<[json: string, key: string], [string[]], "view">; - getFunction( - nameOrSignature: "parseJsonString" - ): TypedContractMethod<[json: string, key: string], [string], "view">; - getFunction( - nameOrSignature: "parseJsonStringArray" - ): TypedContractMethod<[json: string, key: string], [string[]], "view">; - getFunction( - nameOrSignature: "parseJsonType(string,string)" - ): TypedContractMethod< - [json: string, typeDescription: string], - [string], - "view" - >; - getFunction( - nameOrSignature: "parseJsonType(string,string,string)" - ): TypedContractMethod< - [json: string, key: string, typeDescription: string], - [string], - "view" - >; - getFunction( - nameOrSignature: "parseJsonTypeArray" - ): TypedContractMethod< - [json: string, key: string, typeDescription: string], - [string], - "view" - >; - getFunction( - nameOrSignature: "parseJsonUint" - ): TypedContractMethod<[json: string, key: string], [bigint], "view">; - getFunction( - nameOrSignature: "parseJsonUintArray" - ): TypedContractMethod<[json: string, key: string], [bigint[]], "view">; - getFunction( - nameOrSignature: "parseToml(string,string)" - ): TypedContractMethod<[toml: string, key: string], [string], "view">; - getFunction( - nameOrSignature: "parseToml(string)" - ): TypedContractMethod<[toml: string], [string], "view">; - getFunction( - nameOrSignature: "parseTomlAddress" - ): TypedContractMethod<[toml: string, key: string], [string], "view">; - getFunction( - nameOrSignature: "parseTomlAddressArray" - ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; - getFunction( - nameOrSignature: "parseTomlBool" - ): TypedContractMethod<[toml: string, key: string], [boolean], "view">; - getFunction( - nameOrSignature: "parseTomlBoolArray" - ): TypedContractMethod<[toml: string, key: string], [boolean[]], "view">; - getFunction( - nameOrSignature: "parseTomlBytes" - ): TypedContractMethod<[toml: string, key: string], [string], "view">; - getFunction( - nameOrSignature: "parseTomlBytes32" - ): TypedContractMethod<[toml: string, key: string], [string], "view">; - getFunction( - nameOrSignature: "parseTomlBytes32Array" - ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; - getFunction( - nameOrSignature: "parseTomlBytesArray" - ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; - getFunction( - nameOrSignature: "parseTomlInt" - ): TypedContractMethod<[toml: string, key: string], [bigint], "view">; - getFunction( - nameOrSignature: "parseTomlIntArray" - ): TypedContractMethod<[toml: string, key: string], [bigint[]], "view">; - getFunction( - nameOrSignature: "parseTomlKeys" - ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; - getFunction( - nameOrSignature: "parseTomlString" - ): TypedContractMethod<[toml: string, key: string], [string], "view">; - getFunction( - nameOrSignature: "parseTomlStringArray" - ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; - getFunction( - nameOrSignature: "parseTomlType(string,string)" - ): TypedContractMethod< - [toml: string, typeDescription: string], - [string], - "view" - >; - getFunction( - nameOrSignature: "parseTomlType(string,string,string)" - ): TypedContractMethod< - [toml: string, key: string, typeDescription: string], - [string], - "view" - >; - getFunction( - nameOrSignature: "parseTomlTypeArray" - ): TypedContractMethod< - [toml: string, key: string, typeDescription: string], - [string], - "view" - >; - getFunction( - nameOrSignature: "parseTomlUint" - ): TypedContractMethod<[toml: string, key: string], [bigint], "view">; - getFunction( - nameOrSignature: "parseTomlUintArray" - ): TypedContractMethod<[toml: string, key: string], [bigint[]], "view">; - getFunction( - nameOrSignature: "parseUint" - ): TypedContractMethod<[stringifiedValue: string], [bigint], "view">; - getFunction( - nameOrSignature: "pauseGasMetering" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "pauseTracing" - ): TypedContractMethod<[], [void], "view">; - getFunction( - nameOrSignature: "projectRoot" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "prompt" - ): TypedContractMethod<[promptText: string], [string], "nonpayable">; - getFunction( - nameOrSignature: "promptAddress" - ): TypedContractMethod<[promptText: string], [string], "nonpayable">; - getFunction( - nameOrSignature: "promptSecret" - ): TypedContractMethod<[promptText: string], [string], "nonpayable">; - getFunction( - nameOrSignature: "promptSecretUint" - ): TypedContractMethod<[promptText: string], [bigint], "nonpayable">; - getFunction( - nameOrSignature: "promptUint" - ): TypedContractMethod<[promptText: string], [bigint], "nonpayable">; - getFunction( - nameOrSignature: "publicKeyP256" - ): TypedContractMethod< - [privateKey: BigNumberish], - [[bigint, bigint] & { publicKeyX: bigint; publicKeyY: bigint }], - "view" - >; - getFunction( - nameOrSignature: "randomAddress" - ): TypedContractMethod<[], [string], "nonpayable">; - getFunction( - nameOrSignature: "randomBool" - ): TypedContractMethod<[], [boolean], "view">; - getFunction( - nameOrSignature: "randomBytes" - ): TypedContractMethod<[len: BigNumberish], [string], "view">; - getFunction( - nameOrSignature: "randomBytes4" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "randomBytes8" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "randomInt()" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "randomInt(uint256)" - ): TypedContractMethod<[bits: BigNumberish], [bigint], "view">; - getFunction( - nameOrSignature: "randomUint()" - ): TypedContractMethod<[], [bigint], "nonpayable">; - getFunction( - nameOrSignature: "randomUint(uint256)" - ): TypedContractMethod<[bits: BigNumberish], [bigint], "view">; - getFunction( - nameOrSignature: "randomUint(uint256,uint256)" - ): TypedContractMethod< - [min: BigNumberish, max: BigNumberish], - [bigint], - "nonpayable" - >; - getFunction( - nameOrSignature: "readDir(string,uint64)" - ): TypedContractMethod< - [path: string, maxDepth: BigNumberish], - [VmSafe.DirEntryStructOutput[]], - "view" - >; - getFunction( - nameOrSignature: "readDir(string,uint64,bool)" - ): TypedContractMethod< - [path: string, maxDepth: BigNumberish, followLinks: boolean], - [VmSafe.DirEntryStructOutput[]], - "view" - >; - getFunction( - nameOrSignature: "readDir(string)" - ): TypedContractMethod< - [path: string], - [VmSafe.DirEntryStructOutput[]], - "view" - >; - getFunction( - nameOrSignature: "readFile" - ): TypedContractMethod<[path: string], [string], "view">; - getFunction( - nameOrSignature: "readFileBinary" - ): TypedContractMethod<[path: string], [string], "view">; - getFunction( - nameOrSignature: "readLine" - ): TypedContractMethod<[path: string], [string], "view">; - getFunction( - nameOrSignature: "readLink" - ): TypedContractMethod<[linkPath: string], [string], "view">; - getFunction( - nameOrSignature: "record" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "recordLogs" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "rememberKey" - ): TypedContractMethod<[privateKey: BigNumberish], [string], "nonpayable">; - getFunction( - nameOrSignature: "rememberKeys(string,string,uint32)" - ): TypedContractMethod< - [mnemonic: string, derivationPath: string, count: BigNumberish], - [string[]], - "nonpayable" - >; - getFunction( - nameOrSignature: "rememberKeys(string,string,string,uint32)" - ): TypedContractMethod< - [ - mnemonic: string, - derivationPath: string, - language: string, - count: BigNumberish - ], - [string[]], - "nonpayable" - >; - getFunction( - nameOrSignature: "removeDir" - ): TypedContractMethod< - [path: string, recursive: boolean], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "removeFile" - ): TypedContractMethod<[path: string], [void], "nonpayable">; - getFunction( - nameOrSignature: "replace" - ): TypedContractMethod< - [input: string, from: string, to: string], - [string], - "view" - >; - getFunction( - nameOrSignature: "resetGasMetering" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "resumeGasMetering" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "resumeTracing" - ): TypedContractMethod<[], [void], "view">; - getFunction( - nameOrSignature: "rpc(string,string,string)" - ): TypedContractMethod< - [urlOrAlias: string, method: string, params: string], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "rpc(string,string)" - ): TypedContractMethod< - [method: string, params: string], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "rpcUrl" - ): TypedContractMethod<[rpcAlias: string], [string], "view">; - getFunction( - nameOrSignature: "rpcUrlStructs" - ): TypedContractMethod<[], [VmSafe.RpcStructOutput[]], "view">; - getFunction( - nameOrSignature: "rpcUrls" - ): TypedContractMethod<[], [[string, string][]], "view">; - getFunction( - nameOrSignature: "serializeAddress(string,string,address[])" - ): TypedContractMethod< - [objectKey: string, valueKey: string, values: AddressLike[]], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "serializeAddress(string,string,address)" - ): TypedContractMethod< - [objectKey: string, valueKey: string, value: AddressLike], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "serializeBool(string,string,bool[])" - ): TypedContractMethod< - [objectKey: string, valueKey: string, values: boolean[]], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "serializeBool(string,string,bool)" - ): TypedContractMethod< - [objectKey: string, valueKey: string, value: boolean], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "serializeBytes(string,string,bytes[])" - ): TypedContractMethod< - [objectKey: string, valueKey: string, values: BytesLike[]], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "serializeBytes(string,string,bytes)" - ): TypedContractMethod< - [objectKey: string, valueKey: string, value: BytesLike], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "serializeBytes32(string,string,bytes32[])" - ): TypedContractMethod< - [objectKey: string, valueKey: string, values: BytesLike[]], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "serializeBytes32(string,string,bytes32)" - ): TypedContractMethod< - [objectKey: string, valueKey: string, value: BytesLike], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "serializeInt(string,string,int256)" - ): TypedContractMethod< - [objectKey: string, valueKey: string, value: BigNumberish], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "serializeInt(string,string,int256[])" - ): TypedContractMethod< - [objectKey: string, valueKey: string, values: BigNumberish[]], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "serializeJson" - ): TypedContractMethod< - [objectKey: string, value: string], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "serializeJsonType(string,bytes)" - ): TypedContractMethod< - [typeDescription: string, value: BytesLike], - [string], - "view" - >; - getFunction( - nameOrSignature: "serializeJsonType(string,string,string,bytes)" - ): TypedContractMethod< - [ - objectKey: string, - valueKey: string, - typeDescription: string, - value: BytesLike - ], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "serializeString(string,string,string[])" - ): TypedContractMethod< - [objectKey: string, valueKey: string, values: string[]], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "serializeString(string,string,string)" - ): TypedContractMethod< - [objectKey: string, valueKey: string, value: string], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "serializeUint(string,string,uint256)" - ): TypedContractMethod< - [objectKey: string, valueKey: string, value: BigNumberish], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "serializeUint(string,string,uint256[])" - ): TypedContractMethod< - [objectKey: string, valueKey: string, values: BigNumberish[]], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "serializeUintToHex" - ): TypedContractMethod< - [objectKey: string, valueKey: string, value: BigNumberish], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "setArbitraryStorage(address,bool)" - ): TypedContractMethod< - [target: AddressLike, overwrite: boolean], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "setArbitraryStorage(address)" - ): TypedContractMethod<[target: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "setEnv" - ): TypedContractMethod<[name: string, value: string], [void], "nonpayable">; - getFunction( - nameOrSignature: "shuffle" - ): TypedContractMethod<[array: BigNumberish[]], [bigint[]], "nonpayable">; - getFunction( - nameOrSignature: "sign(bytes32)" - ): TypedContractMethod< - [digest: BytesLike], - [[bigint, string, string] & { v: bigint; r: string; s: string }], - "view" - >; - getFunction( - nameOrSignature: "sign(address,bytes32)" - ): TypedContractMethod< - [signer: AddressLike, digest: BytesLike], - [[bigint, string, string] & { v: bigint; r: string; s: string }], - "view" - >; - getFunction( - nameOrSignature: "sign((address,uint256,uint256,uint256),bytes32)" - ): TypedContractMethod< - [wallet: VmSafe.WalletStruct, digest: BytesLike], - [[bigint, string, string] & { v: bigint; r: string; s: string }], - "nonpayable" - >; - getFunction( - nameOrSignature: "sign(uint256,bytes32)" - ): TypedContractMethod< - [privateKey: BigNumberish, digest: BytesLike], - [[bigint, string, string] & { v: bigint; r: string; s: string }], - "view" - >; - getFunction( - nameOrSignature: "signAndAttachDelegation(address,uint256)" - ): TypedContractMethod< - [implementation: AddressLike, privateKey: BigNumberish], - [VmSafe.SignedDelegationStructOutput], - "nonpayable" - >; - getFunction( - nameOrSignature: "signAndAttachDelegation(address,uint256,uint64)" - ): TypedContractMethod< - [ - implementation: AddressLike, - privateKey: BigNumberish, - nonce: BigNumberish - ], - [VmSafe.SignedDelegationStructOutput], - "nonpayable" - >; - getFunction( - nameOrSignature: "signCompact((address,uint256,uint256,uint256),bytes32)" - ): TypedContractMethod< - [wallet: VmSafe.WalletStruct, digest: BytesLike], - [[string, string] & { r: string; vs: string }], - "nonpayable" - >; - getFunction( - nameOrSignature: "signCompact(address,bytes32)" - ): TypedContractMethod< - [signer: AddressLike, digest: BytesLike], - [[string, string] & { r: string; vs: string }], - "view" - >; - getFunction( - nameOrSignature: "signCompact(bytes32)" - ): TypedContractMethod< - [digest: BytesLike], - [[string, string] & { r: string; vs: string }], - "view" - >; - getFunction( - nameOrSignature: "signCompact(uint256,bytes32)" - ): TypedContractMethod< - [privateKey: BigNumberish, digest: BytesLike], - [[string, string] & { r: string; vs: string }], - "view" - >; - getFunction( - nameOrSignature: "signDelegation(address,uint256)" - ): TypedContractMethod< - [implementation: AddressLike, privateKey: BigNumberish], - [VmSafe.SignedDelegationStructOutput], - "nonpayable" - >; - getFunction( - nameOrSignature: "signDelegation(address,uint256,uint64)" - ): TypedContractMethod< - [ - implementation: AddressLike, - privateKey: BigNumberish, - nonce: BigNumberish - ], - [VmSafe.SignedDelegationStructOutput], - "nonpayable" - >; - getFunction( - nameOrSignature: "signP256" - ): TypedContractMethod< - [privateKey: BigNumberish, digest: BytesLike], - [[string, string] & { r: string; s: string }], - "view" - >; - getFunction( - nameOrSignature: "sleep" - ): TypedContractMethod<[duration: BigNumberish], [void], "nonpayable">; - getFunction( - nameOrSignature: "sort" - ): TypedContractMethod<[array: BigNumberish[]], [bigint[]], "nonpayable">; - getFunction( - nameOrSignature: "split" - ): TypedContractMethod< - [input: string, delimiter: string], - [string[]], - "view" - >; - getFunction( - nameOrSignature: "startBroadcast()" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "startBroadcast(address)" - ): TypedContractMethod<[signer: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "startBroadcast(uint256)" - ): TypedContractMethod<[privateKey: BigNumberish], [void], "nonpayable">; - getFunction( - nameOrSignature: "startDebugTraceRecording" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "startMappingRecording" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "startStateDiffRecording" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "stopAndReturnDebugTraceRecording" - ): TypedContractMethod<[], [VmSafe.DebugStepStructOutput[]], "nonpayable">; - getFunction( - nameOrSignature: "stopAndReturnStateDiff" - ): TypedContractMethod< - [], - [VmSafe.AccountAccessStructOutput[]], - "nonpayable" - >; - getFunction( - nameOrSignature: "stopBroadcast" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "stopMappingRecording" - ): TypedContractMethod<[], [void], "nonpayable">; - getFunction( - nameOrSignature: "toBase64(string)" - ): TypedContractMethod<[data: string], [string], "view">; - getFunction( - nameOrSignature: "toBase64(bytes)" - ): TypedContractMethod<[data: BytesLike], [string], "view">; - getFunction( - nameOrSignature: "toBase64URL(string)" - ): TypedContractMethod<[data: string], [string], "view">; - getFunction( - nameOrSignature: "toBase64URL(bytes)" - ): TypedContractMethod<[data: BytesLike], [string], "view">; - getFunction( - nameOrSignature: "toLowercase" - ): TypedContractMethod<[input: string], [string], "view">; - getFunction( - nameOrSignature: "toString(address)" - ): TypedContractMethod<[value: AddressLike], [string], "view">; - getFunction( - nameOrSignature: "toString(uint256)" - ): TypedContractMethod<[value: BigNumberish], [string], "view">; - getFunction( - nameOrSignature: "toString(bytes)" - ): TypedContractMethod<[value: BytesLike], [string], "view">; - getFunction( - nameOrSignature: "toString(bool)" - ): TypedContractMethod<[value: boolean], [string], "view">; - getFunction( - nameOrSignature: "toString(int256)" - ): TypedContractMethod<[value: BigNumberish], [string], "view">; - getFunction( - nameOrSignature: "toString(bytes32)" - ): TypedContractMethod<[value: BytesLike], [string], "view">; - getFunction( - nameOrSignature: "toUppercase" - ): TypedContractMethod<[input: string], [string], "view">; - getFunction( - nameOrSignature: "trim" - ): TypedContractMethod<[input: string], [string], "view">; - getFunction( - nameOrSignature: "tryFfi" - ): TypedContractMethod< - [commandInput: string[]], - [VmSafe.FfiResultStructOutput], - "nonpayable" - >; - getFunction( - nameOrSignature: "unixTime" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "writeFile" - ): TypedContractMethod<[path: string, data: string], [void], "nonpayable">; - getFunction( - nameOrSignature: "writeFileBinary" - ): TypedContractMethod<[path: string, data: BytesLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "writeJson(string,string,string)" - ): TypedContractMethod< - [json: string, path: string, valueKey: string], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "writeJson(string,string)" - ): TypedContractMethod<[json: string, path: string], [void], "nonpayable">; - getFunction( - nameOrSignature: "writeLine" - ): TypedContractMethod<[path: string, data: string], [void], "nonpayable">; - getFunction( - nameOrSignature: "writeToml(string,string,string)" - ): TypedContractMethod< - [json: string, path: string, valueKey: string], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "writeToml(string,string)" - ): TypedContractMethod<[json: string, path: string], [void], "nonpayable">; - - filters: {}; -} diff --git a/typechain-types/forge-std/Vm.sol/index.ts b/typechain-types/forge-std/Vm.sol/index.ts deleted file mode 100644 index 6ea1a166..00000000 --- a/typechain-types/forge-std/Vm.sol/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { Vm } from "./Vm"; -export type { VmSafe } from "./VmSafe"; diff --git a/typechain-types/forge-std/index.ts b/typechain-types/forge-std/index.ts deleted file mode 100644 index 6531f389..00000000 --- a/typechain-types/forge-std/index.ts +++ /dev/null @@ -1,14 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as stdErrorSol from "./StdError.sol"; -export type { stdErrorSol }; -import type * as stdStorageSol from "./StdStorage.sol"; -export type { stdStorageSol }; -import type * as vmSol from "./Vm.sol"; -export type { vmSol }; -import type * as interfaces from "./interfaces"; -export type { interfaces }; -export type { StdAssertions } from "./StdAssertions"; -export type { StdInvariant } from "./StdInvariant"; -export type { Test } from "./Test"; diff --git a/typechain-types/forge-std/interfaces/IMulticall3.ts b/typechain-types/forge-std/interfaces/IMulticall3.ts deleted file mode 100644 index cd484dee..00000000 --- a/typechain-types/forge-std/interfaces/IMulticall3.ts +++ /dev/null @@ -1,416 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../common"; - -export declare namespace IMulticall3 { - export type CallStruct = { target: AddressLike; callData: BytesLike }; - - export type CallStructOutput = [target: string, callData: string] & { - target: string; - callData: string; - }; - - export type Call3Struct = { - target: AddressLike; - allowFailure: boolean; - callData: BytesLike; - }; - - export type Call3StructOutput = [ - target: string, - allowFailure: boolean, - callData: string - ] & { target: string; allowFailure: boolean; callData: string }; - - export type ResultStruct = { success: boolean; returnData: BytesLike }; - - export type ResultStructOutput = [success: boolean, returnData: string] & { - success: boolean; - returnData: string; - }; - - export type Call3ValueStruct = { - target: AddressLike; - allowFailure: boolean; - value: BigNumberish; - callData: BytesLike; - }; - - export type Call3ValueStructOutput = [ - target: string, - allowFailure: boolean, - value: bigint, - callData: string - ] & { - target: string; - allowFailure: boolean; - value: bigint; - callData: string; - }; -} - -export interface IMulticall3Interface extends Interface { - getFunction( - nameOrSignature: - | "aggregate" - | "aggregate3" - | "aggregate3Value" - | "blockAndAggregate" - | "getBasefee" - | "getBlockHash" - | "getBlockNumber" - | "getChainId" - | "getCurrentBlockCoinbase" - | "getCurrentBlockDifficulty" - | "getCurrentBlockGasLimit" - | "getCurrentBlockTimestamp" - | "getEthBalance" - | "getLastBlockHash" - | "tryAggregate" - | "tryBlockAndAggregate" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "aggregate", - values: [IMulticall3.CallStruct[]] - ): string; - encodeFunctionData( - functionFragment: "aggregate3", - values: [IMulticall3.Call3Struct[]] - ): string; - encodeFunctionData( - functionFragment: "aggregate3Value", - values: [IMulticall3.Call3ValueStruct[]] - ): string; - encodeFunctionData( - functionFragment: "blockAndAggregate", - values: [IMulticall3.CallStruct[]] - ): string; - encodeFunctionData( - functionFragment: "getBasefee", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getBlockHash", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "getBlockNumber", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getChainId", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getCurrentBlockCoinbase", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getCurrentBlockDifficulty", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getCurrentBlockGasLimit", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getCurrentBlockTimestamp", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getEthBalance", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "getLastBlockHash", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "tryAggregate", - values: [boolean, IMulticall3.CallStruct[]] - ): string; - encodeFunctionData( - functionFragment: "tryBlockAndAggregate", - values: [boolean, IMulticall3.CallStruct[]] - ): string; - - decodeFunctionResult(functionFragment: "aggregate", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "aggregate3", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "aggregate3Value", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "blockAndAggregate", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "getBasefee", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "getBlockHash", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getBlockNumber", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "getChainId", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "getCurrentBlockCoinbase", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getCurrentBlockDifficulty", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getCurrentBlockGasLimit", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getCurrentBlockTimestamp", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getEthBalance", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getLastBlockHash", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "tryAggregate", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "tryBlockAndAggregate", - data: BytesLike - ): Result; -} - -export interface IMulticall3 extends BaseContract { - connect(runner?: ContractRunner | null): IMulticall3; - waitForDeployment(): Promise; - - interface: IMulticall3Interface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - aggregate: TypedContractMethod< - [calls: IMulticall3.CallStruct[]], - [[bigint, string[]] & { blockNumber: bigint; returnData: string[] }], - "payable" - >; - - aggregate3: TypedContractMethod< - [calls: IMulticall3.Call3Struct[]], - [IMulticall3.ResultStructOutput[]], - "payable" - >; - - aggregate3Value: TypedContractMethod< - [calls: IMulticall3.Call3ValueStruct[]], - [IMulticall3.ResultStructOutput[]], - "payable" - >; - - blockAndAggregate: TypedContractMethod< - [calls: IMulticall3.CallStruct[]], - [ - [bigint, string, IMulticall3.ResultStructOutput[]] & { - blockNumber: bigint; - blockHash: string; - returnData: IMulticall3.ResultStructOutput[]; - } - ], - "payable" - >; - - getBasefee: TypedContractMethod<[], [bigint], "view">; - - getBlockHash: TypedContractMethod< - [blockNumber: BigNumberish], - [string], - "view" - >; - - getBlockNumber: TypedContractMethod<[], [bigint], "view">; - - getChainId: TypedContractMethod<[], [bigint], "view">; - - getCurrentBlockCoinbase: TypedContractMethod<[], [string], "view">; - - getCurrentBlockDifficulty: TypedContractMethod<[], [bigint], "view">; - - getCurrentBlockGasLimit: TypedContractMethod<[], [bigint], "view">; - - getCurrentBlockTimestamp: TypedContractMethod<[], [bigint], "view">; - - getEthBalance: TypedContractMethod<[addr: AddressLike], [bigint], "view">; - - getLastBlockHash: TypedContractMethod<[], [string], "view">; - - tryAggregate: TypedContractMethod< - [requireSuccess: boolean, calls: IMulticall3.CallStruct[]], - [IMulticall3.ResultStructOutput[]], - "payable" - >; - - tryBlockAndAggregate: TypedContractMethod< - [requireSuccess: boolean, calls: IMulticall3.CallStruct[]], - [ - [bigint, string, IMulticall3.ResultStructOutput[]] & { - blockNumber: bigint; - blockHash: string; - returnData: IMulticall3.ResultStructOutput[]; - } - ], - "payable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "aggregate" - ): TypedContractMethod< - [calls: IMulticall3.CallStruct[]], - [[bigint, string[]] & { blockNumber: bigint; returnData: string[] }], - "payable" - >; - getFunction( - nameOrSignature: "aggregate3" - ): TypedContractMethod< - [calls: IMulticall3.Call3Struct[]], - [IMulticall3.ResultStructOutput[]], - "payable" - >; - getFunction( - nameOrSignature: "aggregate3Value" - ): TypedContractMethod< - [calls: IMulticall3.Call3ValueStruct[]], - [IMulticall3.ResultStructOutput[]], - "payable" - >; - getFunction( - nameOrSignature: "blockAndAggregate" - ): TypedContractMethod< - [calls: IMulticall3.CallStruct[]], - [ - [bigint, string, IMulticall3.ResultStructOutput[]] & { - blockNumber: bigint; - blockHash: string; - returnData: IMulticall3.ResultStructOutput[]; - } - ], - "payable" - >; - getFunction( - nameOrSignature: "getBasefee" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "getBlockHash" - ): TypedContractMethod<[blockNumber: BigNumberish], [string], "view">; - getFunction( - nameOrSignature: "getBlockNumber" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "getChainId" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "getCurrentBlockCoinbase" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "getCurrentBlockDifficulty" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "getCurrentBlockGasLimit" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "getCurrentBlockTimestamp" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "getEthBalance" - ): TypedContractMethod<[addr: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "getLastBlockHash" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "tryAggregate" - ): TypedContractMethod< - [requireSuccess: boolean, calls: IMulticall3.CallStruct[]], - [IMulticall3.ResultStructOutput[]], - "payable" - >; - getFunction( - nameOrSignature: "tryBlockAndAggregate" - ): TypedContractMethod< - [requireSuccess: boolean, calls: IMulticall3.CallStruct[]], - [ - [bigint, string, IMulticall3.ResultStructOutput[]] & { - blockNumber: bigint; - blockHash: string; - returnData: IMulticall3.ResultStructOutput[]; - } - ], - "payable" - >; - - filters: {}; -} diff --git a/typechain-types/forge-std/interfaces/index.ts b/typechain-types/forge-std/interfaces/index.ts deleted file mode 100644 index a368e0a3..00000000 --- a/typechain-types/forge-std/interfaces/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { IMulticall3 } from "./IMulticall3"; diff --git a/typechain-types/hardhat.d.ts b/typechain-types/hardhat.d.ts deleted file mode 100644 index 31f8910b..00000000 --- a/typechain-types/hardhat.d.ts +++ /dev/null @@ -1,2223 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { ethers } from "ethers"; -import { - DeployContractOptions, - FactoryOptions, - HardhatEthersHelpers as HardhatEthersHelpersBase, -} from "@nomicfoundation/hardhat-ethers/types"; - -import * as Contracts from "."; - -declare module "hardhat/types/runtime" { - interface HardhatEthersHelpers extends HardhatEthersHelpersBase { - getContractFactory( - name: "AccessControlUpgradeable", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "Initializable", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "UUPSUpgradeable", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "ContextUpgradeable", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "ERC165Upgradeable", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "PausableUpgradeable", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "ReentrancyGuardUpgradeable", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IAccessControl", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IERC1822Proxiable", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IERC1155Errors", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IERC20Errors", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IERC721Errors", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IERC1363", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IERC1967", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IBeacon", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "ERC1967Proxy", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "ERC1967Utils", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "Proxy", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "ERC20", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IERC20Metadata", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IERC20", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "SafeERC20", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "Address", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "Errors", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IERC165", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IERC20", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IUniswapV2Callee", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IUniswapV2ERC20", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IUniswapV2Factory", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IUniswapV2Pair", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "UniswapV2ERC20", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "UniswapV2Factory", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "UniswapV2Pair", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IERC20", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IUniswapV2Router01", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IUniswapV2Router02", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IWETH", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "UniswapV2Router02", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IUniswapV3SwapCallback", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "ISwapRouter", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "INotSupportedMethods", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "ERC20Custody", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "GatewayEVM", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IERC20Custody", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IERC20CustodyErrors", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IERC20CustodyEvents", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "Callable", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IGatewayEVM", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IGatewayEVMErrors", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IGatewayEVMEvents", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IZetaConnectorEvents", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IZetaNonEthNew", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "ZetaConnectorBase", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "ZetaConnectorNative", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "ZetaConnectorNonNative", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "Abortable", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "Revertable", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "GatewayZEVM", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IGatewayZEVM", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IGatewayZEVMErrors", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IGatewayZEVMEvents", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "ISystem", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IWETH9", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IZRC20", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IZRC20Metadata", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "ZRC20Events", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "UniversalContract", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "ZContract", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "SystemContract", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "SystemContractErrors", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "WETH9", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "ZRC20", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "ZRC20Errors", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "BytesHelperLib", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "ZetaEthMock", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "OnlySystem", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "Revertable", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IERC20", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IWETH", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IZRC20", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IZRC20Metadata", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "ZRC20Events", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "Math", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "UniswapV2Library", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "MockZRC20", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "TestUniswapRouter", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "WZETA", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "SwapHelperLib", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "SwapLibrary", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "SystemContract", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "SystemContractErrors", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "EVMSetup", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "ITestERC20", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IZetaNonEth", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "FoundrySetup", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "ERC20Mock", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IZRC20Mock", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "ZRC20Mock", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "NodeLogicMock", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "WrapGatewayEVM", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "WrapGatewayZEVM", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "TokenSetup", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IUniswapV2Factory", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IUniswapV2Router02", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "UniswapV2SetupLib", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "INonfungiblePositionManager", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IUniswapV3Factory", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IUniswapV3Pool", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "UniswapV3SetupLib", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "ZetaSetup", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "TestZRC20", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "UniversalContract", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "ZContract", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IMulticall3", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "StdAssertions", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "StdError", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "StdInvariant", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "StdStorageSafe", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "Test", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "Vm", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "VmSafe", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - - getContractAt( - name: "AccessControlUpgradeable", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "Initializable", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "UUPSUpgradeable", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "ContextUpgradeable", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "ERC165Upgradeable", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "PausableUpgradeable", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "ReentrancyGuardUpgradeable", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IAccessControl", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IERC1822Proxiable", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IERC1155Errors", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IERC20Errors", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IERC721Errors", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IERC1363", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IERC1967", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IBeacon", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "ERC1967Proxy", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "ERC1967Utils", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "Proxy", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "ERC20", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IERC20Metadata", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IERC20", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "SafeERC20", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "Address", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "Errors", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IERC165", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IERC20", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IUniswapV2Callee", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IUniswapV2ERC20", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IUniswapV2Factory", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IUniswapV2Pair", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "UniswapV2ERC20", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "UniswapV2Factory", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "UniswapV2Pair", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IERC20", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IUniswapV2Router01", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IUniswapV2Router02", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IWETH", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "UniswapV2Router02", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IUniswapV3SwapCallback", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "ISwapRouter", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "INotSupportedMethods", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "ERC20Custody", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "GatewayEVM", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IERC20Custody", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IERC20CustodyErrors", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IERC20CustodyEvents", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "Callable", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IGatewayEVM", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IGatewayEVMErrors", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IGatewayEVMEvents", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IZetaConnectorEvents", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IZetaNonEthNew", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "ZetaConnectorBase", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "ZetaConnectorNative", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "ZetaConnectorNonNative", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "Abortable", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "Revertable", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "GatewayZEVM", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IGatewayZEVM", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IGatewayZEVMErrors", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IGatewayZEVMEvents", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "ISystem", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IWETH9", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IZRC20", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IZRC20Metadata", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "ZRC20Events", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "UniversalContract", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "ZContract", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "SystemContract", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "SystemContractErrors", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "WETH9", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "ZRC20", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "ZRC20Errors", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "BytesHelperLib", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "ZetaEthMock", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "OnlySystem", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "Revertable", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IERC20", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IWETH", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IZRC20", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IZRC20Metadata", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "ZRC20Events", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "Math", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "UniswapV2Library", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "MockZRC20", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "TestUniswapRouter", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "WZETA", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "SwapHelperLib", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "SwapLibrary", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "SystemContract", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "SystemContractErrors", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "EVMSetup", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "ITestERC20", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IZetaNonEth", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "FoundrySetup", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "ERC20Mock", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IZRC20Mock", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "ZRC20Mock", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "NodeLogicMock", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "WrapGatewayEVM", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "WrapGatewayZEVM", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "TokenSetup", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IUniswapV2Factory", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IUniswapV2Router02", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "UniswapV2SetupLib", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "INonfungiblePositionManager", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IUniswapV3Factory", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IUniswapV3Pool", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "UniswapV3SetupLib", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "ZetaSetup", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "TestZRC20", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "UniversalContract", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "ZContract", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IMulticall3", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "StdAssertions", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "StdError", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "StdInvariant", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "StdStorageSafe", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "Test", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "Vm", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "VmSafe", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - - deployContract( - name: "AccessControlUpgradeable", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Initializable", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "UUPSUpgradeable", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ContextUpgradeable", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ERC165Upgradeable", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "PausableUpgradeable", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ReentrancyGuardUpgradeable", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IAccessControl", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC1822Proxiable", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC1155Errors", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC20Errors", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC721Errors", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC1363", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC1967", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IBeacon", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ERC1967Proxy", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ERC1967Utils", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Proxy", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ERC20", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC20Metadata", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC20", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "SafeERC20", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Address", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Errors", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC165", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC20", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IUniswapV2Callee", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IUniswapV2ERC20", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IUniswapV2Factory", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IUniswapV2Pair", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "UniswapV2ERC20", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "UniswapV2Factory", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "UniswapV2Pair", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC20", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IUniswapV2Router01", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IUniswapV2Router02", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IWETH", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "UniswapV2Router02", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IUniswapV3SwapCallback", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ISwapRouter", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "INotSupportedMethods", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ERC20Custody", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "GatewayEVM", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC20Custody", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC20CustodyErrors", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC20CustodyEvents", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Callable", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IGatewayEVM", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IGatewayEVMErrors", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IGatewayEVMEvents", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IZetaConnectorEvents", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IZetaNonEthNew", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ZetaConnectorBase", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ZetaConnectorNative", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ZetaConnectorNonNative", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Abortable", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Revertable", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "GatewayZEVM", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IGatewayZEVM", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IGatewayZEVMErrors", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IGatewayZEVMEvents", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ISystem", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IWETH9", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IZRC20", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IZRC20Metadata", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ZRC20Events", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "UniversalContract", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ZContract", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "SystemContract", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "SystemContractErrors", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "WETH9", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ZRC20", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ZRC20Errors", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "BytesHelperLib", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ZetaEthMock", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "OnlySystem", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Revertable", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC20", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IWETH", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IZRC20", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IZRC20Metadata", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ZRC20Events", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Math", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "UniswapV2Library", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "MockZRC20", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "TestUniswapRouter", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "WZETA", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "SwapHelperLib", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "SwapLibrary", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "SystemContract", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "SystemContractErrors", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "EVMSetup", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ITestERC20", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IZetaNonEth", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "FoundrySetup", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ERC20Mock", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IZRC20Mock", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ZRC20Mock", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "NodeLogicMock", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "WrapGatewayEVM", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "WrapGatewayZEVM", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "TokenSetup", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IUniswapV2Factory", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IUniswapV2Router02", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "UniswapV2SetupLib", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "INonfungiblePositionManager", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IUniswapV3Factory", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IUniswapV3Pool", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "UniswapV3SetupLib", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ZetaSetup", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "TestZRC20", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "UniversalContract", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ZContract", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IMulticall3", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "StdAssertions", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "StdError", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "StdInvariant", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "StdStorageSafe", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Test", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Vm", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "VmSafe", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - - deployContract( - name: "AccessControlUpgradeable", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Initializable", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "UUPSUpgradeable", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ContextUpgradeable", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ERC165Upgradeable", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "PausableUpgradeable", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ReentrancyGuardUpgradeable", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IAccessControl", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC1822Proxiable", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC1155Errors", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC20Errors", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC721Errors", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC1363", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC1967", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IBeacon", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ERC1967Proxy", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ERC1967Utils", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Proxy", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ERC20", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC20Metadata", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC20", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "SafeERC20", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Address", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Errors", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC165", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC20", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IUniswapV2Callee", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IUniswapV2ERC20", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IUniswapV2Factory", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IUniswapV2Pair", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "UniswapV2ERC20", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "UniswapV2Factory", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "UniswapV2Pair", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC20", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IUniswapV2Router01", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IUniswapV2Router02", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IWETH", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "UniswapV2Router02", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IUniswapV3SwapCallback", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ISwapRouter", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "INotSupportedMethods", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ERC20Custody", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "GatewayEVM", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC20Custody", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC20CustodyErrors", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC20CustodyEvents", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Callable", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IGatewayEVM", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IGatewayEVMErrors", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IGatewayEVMEvents", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IZetaConnectorEvents", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IZetaNonEthNew", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ZetaConnectorBase", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ZetaConnectorNative", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ZetaConnectorNonNative", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Abortable", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Revertable", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "GatewayZEVM", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IGatewayZEVM", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IGatewayZEVMErrors", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IGatewayZEVMEvents", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ISystem", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IWETH9", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IZRC20", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IZRC20Metadata", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ZRC20Events", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "UniversalContract", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ZContract", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "SystemContract", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "SystemContractErrors", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "WETH9", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ZRC20", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ZRC20Errors", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "BytesHelperLib", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ZetaEthMock", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "OnlySystem", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Revertable", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC20", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IWETH", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IZRC20", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IZRC20Metadata", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ZRC20Events", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Math", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "UniswapV2Library", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "MockZRC20", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "TestUniswapRouter", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "WZETA", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "SwapHelperLib", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "SwapLibrary", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "SystemContract", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "SystemContractErrors", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "EVMSetup", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ITestERC20", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IZetaNonEth", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "FoundrySetup", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ERC20Mock", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IZRC20Mock", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ZRC20Mock", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "NodeLogicMock", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "WrapGatewayEVM", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "WrapGatewayZEVM", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "TokenSetup", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IUniswapV2Factory", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IUniswapV2Router02", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "UniswapV2SetupLib", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "INonfungiblePositionManager", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IUniswapV3Factory", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IUniswapV3Pool", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "UniswapV3SetupLib", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ZetaSetup", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "TestZRC20", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "UniversalContract", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ZContract", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IMulticall3", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "StdAssertions", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "StdError", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "StdInvariant", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "StdStorageSafe", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Test", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Vm", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "VmSafe", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - - // default types - getContractFactory( - name: string, - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - abi: any[], - bytecode: ethers.BytesLike, - signer?: ethers.Signer - ): Promise; - getContractAt( - nameOrAbi: string | any[], - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - deployContract( - name: string, - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: string, - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - } -} diff --git a/typechain-types/index.ts b/typechain-types/index.ts deleted file mode 100644 index c69db839..00000000 --- a/typechain-types/index.ts +++ /dev/null @@ -1,228 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as openzeppelin from "./@openzeppelin"; -export type { openzeppelin }; -import type * as uniswap from "./@uniswap"; -export type { uniswap }; -import type * as zetachain from "./@zetachain"; -export type { zetachain }; -import type * as contracts from "./contracts"; -export type { contracts }; -import type * as forgeStd from "./forge-std"; -export type { forgeStd }; -export * as factories from "./factories"; -export type { AccessControlUpgradeable } from "./@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable"; -export { AccessControlUpgradeable__factory } from "./factories/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable__factory"; -export type { Initializable } from "./@openzeppelin/contracts-upgradeable/proxy/utils/Initializable"; -export { Initializable__factory } from "./factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory"; -export type { UUPSUpgradeable } from "./@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable"; -export { UUPSUpgradeable__factory } from "./factories/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable__factory"; -export type { ContextUpgradeable } from "./@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable"; -export { ContextUpgradeable__factory } from "./factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory"; -export type { ERC165Upgradeable } from "./@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable"; -export { ERC165Upgradeable__factory } from "./factories/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable__factory"; -export type { PausableUpgradeable } from "./@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable"; -export { PausableUpgradeable__factory } from "./factories/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable__factory"; -export type { ReentrancyGuardUpgradeable } from "./@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable"; -export { ReentrancyGuardUpgradeable__factory } from "./factories/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable__factory"; -export type { IAccessControl } from "./@openzeppelin/contracts/access/IAccessControl"; -export { IAccessControl__factory } from "./factories/@openzeppelin/contracts/access/IAccessControl__factory"; -export type { IERC1822Proxiable } from "./@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable"; -export { IERC1822Proxiable__factory } from "./factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory"; -export type { IERC1155Errors } from "./@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors"; -export { IERC1155Errors__factory } from "./factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors__factory"; -export type { IERC20Errors } from "./@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors"; -export { IERC20Errors__factory } from "./factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors__factory"; -export type { IERC721Errors } from "./@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors"; -export { IERC721Errors__factory } from "./factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors__factory"; -export type { IERC1363 } from "./@openzeppelin/contracts/interfaces/IERC1363"; -export { IERC1363__factory } from "./factories/@openzeppelin/contracts/interfaces/IERC1363__factory"; -export type { IERC1967 } from "./@openzeppelin/contracts/interfaces/IERC1967"; -export { IERC1967__factory } from "./factories/@openzeppelin/contracts/interfaces/IERC1967__factory"; -export type { IBeacon } from "./@openzeppelin/contracts/proxy/beacon/IBeacon"; -export { IBeacon__factory } from "./factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory"; -export type { ERC1967Proxy } from "./@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy"; -export { ERC1967Proxy__factory } from "./factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory"; -export type { ERC1967Utils } from "./@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils"; -export { ERC1967Utils__factory } from "./factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils__factory"; -export type { Proxy } from "./@openzeppelin/contracts/proxy/Proxy"; -export { Proxy__factory } from "./factories/@openzeppelin/contracts/proxy/Proxy__factory"; -export type { ERC20 } from "./@openzeppelin/contracts/token/ERC20/ERC20"; -export { ERC20__factory } from "./factories/@openzeppelin/contracts/token/ERC20/ERC20__factory"; -export type { IERC20Metadata } from "./@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata"; -export { IERC20Metadata__factory } from "./factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory"; -export type { IERC20 } from "./@openzeppelin/contracts/token/ERC20/IERC20"; -export { IERC20__factory } from "./factories/@openzeppelin/contracts/token/ERC20/IERC20__factory"; -export type { SafeERC20 } from "./@openzeppelin/contracts/token/ERC20/utils/SafeERC20"; -export { SafeERC20__factory } from "./factories/@openzeppelin/contracts/token/ERC20/utils/SafeERC20__factory"; -export type { Address } from "./@openzeppelin/contracts/utils/Address"; -export { Address__factory } from "./factories/@openzeppelin/contracts/utils/Address__factory"; -export type { Errors } from "./@openzeppelin/contracts/utils/Errors"; -export { Errors__factory } from "./factories/@openzeppelin/contracts/utils/Errors__factory"; -export type { IERC165 } from "./@openzeppelin/contracts/utils/introspection/IERC165"; -export { IERC165__factory } from "./factories/@openzeppelin/contracts/utils/introspection/IERC165__factory"; -export type { IUniswapV2Callee } from "./@uniswap/v2-core/contracts/interfaces/IUniswapV2Callee"; -export { IUniswapV2Callee__factory } from "./factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Callee__factory"; -export type { IUniswapV2ERC20 } from "./@uniswap/v2-core/contracts/interfaces/IUniswapV2ERC20"; -export { IUniswapV2ERC20__factory } from "./factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2ERC20__factory"; -export type { IUniswapV2Factory } from "./@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory"; -export { IUniswapV2Factory__factory } from "./factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory__factory"; -export type { IUniswapV2Pair } from "./@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair"; -export { IUniswapV2Pair__factory } from "./factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair__factory"; -export type { UniswapV2ERC20 } from "./@uniswap/v2-core/contracts/UniswapV2ERC20"; -export { UniswapV2ERC20__factory } from "./factories/@uniswap/v2-core/contracts/UniswapV2ERC20__factory"; -export type { UniswapV2Factory } from "./@uniswap/v2-core/contracts/UniswapV2Factory"; -export { UniswapV2Factory__factory } from "./factories/@uniswap/v2-core/contracts/UniswapV2Factory__factory"; -export type { UniswapV2Pair } from "./@uniswap/v2-core/contracts/UniswapV2Pair"; -export { UniswapV2Pair__factory } from "./factories/@uniswap/v2-core/contracts/UniswapV2Pair__factory"; -export type { IUniswapV2Router01 } from "./@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01"; -export { IUniswapV2Router01__factory } from "./factories/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01__factory"; -export type { IUniswapV2Router02 } from "./@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02"; -export { IUniswapV2Router02__factory } from "./factories/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02__factory"; -export type { IWETH } from "./@uniswap/v2-periphery/contracts/interfaces/IWETH"; -export { IWETH__factory } from "./factories/@uniswap/v2-periphery/contracts/interfaces/IWETH__factory"; -export type { UniswapV2Router02 } from "./@uniswap/v2-periphery/contracts/UniswapV2Router02"; -export { UniswapV2Router02__factory } from "./factories/@uniswap/v2-periphery/contracts/UniswapV2Router02__factory"; -export type { IUniswapV3SwapCallback } from "./@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback"; -export { IUniswapV3SwapCallback__factory } from "./factories/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback__factory"; -export type { ISwapRouter } from "./@uniswap/v3-periphery/contracts/interfaces/ISwapRouter"; -export { ISwapRouter__factory } from "./factories/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter__factory"; -export type { INotSupportedMethods } from "./@zetachain/protocol-contracts/contracts/Errors.sol/INotSupportedMethods"; -export { INotSupportedMethods__factory } from "./factories/@zetachain/protocol-contracts/contracts/Errors.sol/INotSupportedMethods__factory"; -export type { ERC20Custody } from "./@zetachain/protocol-contracts/contracts/evm/ERC20Custody"; -export { ERC20Custody__factory } from "./factories/@zetachain/protocol-contracts/contracts/evm/ERC20Custody__factory"; -export type { GatewayEVM } from "./@zetachain/protocol-contracts/contracts/evm/GatewayEVM"; -export { GatewayEVM__factory } from "./factories/@zetachain/protocol-contracts/contracts/evm/GatewayEVM__factory"; -export type { IERC20Custody } from "./@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20Custody"; -export { IERC20Custody__factory } from "./factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20Custody__factory"; -export type { IERC20CustodyErrors } from "./@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyErrors"; -export { IERC20CustodyErrors__factory } from "./factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyErrors__factory"; -export type { IERC20CustodyEvents } from "./@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyEvents"; -export { IERC20CustodyEvents__factory } from "./factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyEvents__factory"; -export type { Callable } from "./@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/Callable"; -export { Callable__factory } from "./factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/Callable__factory"; -export type { IGatewayEVM } from "./@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVM"; -export { IGatewayEVM__factory } from "./factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVM__factory"; -export type { IGatewayEVMErrors } from "./@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMErrors"; -export { IGatewayEVMErrors__factory } from "./factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMErrors__factory"; -export type { IGatewayEVMEvents } from "./@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMEvents"; -export { IGatewayEVMEvents__factory } from "./factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMEvents__factory"; -export type { IZetaConnectorEvents } from "./@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/IZetaConnectorEvents"; -export { IZetaConnectorEvents__factory } from "./factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/IZetaConnectorEvents__factory"; -export type { IZetaNonEthNew } from "./@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaNonEthNew"; -export { IZetaNonEthNew__factory } from "./factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaNonEthNew__factory"; -export type { ZetaConnectorBase } from "./@zetachain/protocol-contracts/contracts/evm/ZetaConnectorBase"; -export { ZetaConnectorBase__factory } from "./factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorBase__factory"; -export type { ZetaConnectorNative } from "./@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNative"; -export { ZetaConnectorNative__factory } from "./factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNative__factory"; -export type { ZetaConnectorNonNative } from "./@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNonNative"; -export { ZetaConnectorNonNative__factory } from "./factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNonNative__factory"; -export type { Abortable } from "./@zetachain/protocol-contracts/contracts/Revert.sol/Abortable"; -export { Abortable__factory } from "./factories/@zetachain/protocol-contracts/contracts/Revert.sol/Abortable__factory"; -export type { Revertable } from "./@zetachain/protocol-contracts/contracts/Revert.sol/Revertable"; -export { Revertable__factory } from "./factories/@zetachain/protocol-contracts/contracts/Revert.sol/Revertable__factory"; -export type { GatewayZEVM } from "./@zetachain/protocol-contracts/contracts/zevm/GatewayZEVM"; -export { GatewayZEVM__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/GatewayZEVM__factory"; -export type { IGatewayZEVM } from "./@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVM"; -export { IGatewayZEVM__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVM__factory"; -export type { IGatewayZEVMErrors } from "./@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMErrors"; -export { IGatewayZEVMErrors__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMErrors__factory"; -export type { IGatewayZEVMEvents } from "./@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMEvents"; -export { IGatewayZEVMEvents__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMEvents__factory"; -export type { ISystem } from "./@zetachain/protocol-contracts/contracts/zevm/interfaces/ISystem"; -export { ISystem__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/ISystem__factory"; -export type { IWETH9 } from "./@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/IWETH9"; -export { IWETH9__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/IWETH9__factory"; -export type { IZRC20 } from "./@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20"; -export { IZRC20__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20__factory"; -export type { IZRC20Metadata } from "./@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata"; -export { IZRC20Metadata__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata__factory"; -export type { ZRC20Events } from "./@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/ZRC20Events"; -export { ZRC20Events__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/ZRC20Events__factory"; -export type { UniversalContract } from "./@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/UniversalContract"; -export { UniversalContract__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/UniversalContract__factory"; -export type { ZContract } from "./@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/ZContract"; -export { ZContract__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/ZContract__factory"; -export type { SystemContract } from "./@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContract"; -export { SystemContract__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContract__factory"; -export type { SystemContractErrors } from "./@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContractErrors"; -export { SystemContractErrors__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContractErrors__factory"; -export type { WETH9 } from "./@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/WETH9"; -export { WETH9__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/WETH9__factory"; -export type { ZRC20 } from "./@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20"; -export { ZRC20__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20__factory"; -export type { ZRC20Errors } from "./@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20Errors"; -export { ZRC20Errors__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20Errors__factory"; -export type { BytesHelperLib } from "./contracts/BytesHelperLib"; -export { BytesHelperLib__factory } from "./factories/contracts/BytesHelperLib__factory"; -export type { ZetaEthMock } from "./contracts/EthZetaMock.sol/ZetaEthMock"; -export { ZetaEthMock__factory } from "./factories/contracts/EthZetaMock.sol/ZetaEthMock__factory"; -export type { OnlySystem } from "./contracts/OnlySystem"; -export { OnlySystem__factory } from "./factories/contracts/OnlySystem__factory"; -export type { Math } from "./contracts/shared/libraries/SafeMath.sol/Math"; -export { Math__factory } from "./factories/contracts/shared/libraries/SafeMath.sol/Math__factory"; -export type { UniswapV2Library } from "./contracts/shared/libraries/UniswapV2Library"; -export { UniswapV2Library__factory } from "./factories/contracts/shared/libraries/UniswapV2Library__factory"; -export type { MockZRC20 } from "./contracts/shared/MockZRC20"; -export { MockZRC20__factory } from "./factories/contracts/shared/MockZRC20__factory"; -export type { TestUniswapRouter } from "./contracts/shared/TestUniswapRouter"; -export { TestUniswapRouter__factory } from "./factories/contracts/shared/TestUniswapRouter__factory"; -export type { WZETA } from "./contracts/shared/WZETA"; -export { WZETA__factory } from "./factories/contracts/shared/WZETA__factory"; -export type { SwapHelperLib } from "./contracts/SwapHelperLib"; -export { SwapHelperLib__factory } from "./factories/contracts/SwapHelperLib__factory"; -export type { SwapLibrary } from "./contracts/SwapHelpers.sol/SwapLibrary"; -export { SwapLibrary__factory } from "./factories/contracts/SwapHelpers.sol/SwapLibrary__factory"; -export type { EVMSetup } from "./contracts/testing/EVMSetup.t.sol/EVMSetup"; -export { EVMSetup__factory } from "./factories/contracts/testing/EVMSetup.t.sol/EVMSetup__factory"; -export type { ITestERC20 } from "./contracts/testing/EVMSetup.t.sol/ITestERC20"; -export { ITestERC20__factory } from "./factories/contracts/testing/EVMSetup.t.sol/ITestERC20__factory"; -export type { IZetaNonEth } from "./contracts/testing/EVMSetup.t.sol/IZetaNonEth"; -export { IZetaNonEth__factory } from "./factories/contracts/testing/EVMSetup.t.sol/IZetaNonEth__factory"; -export type { FoundrySetup } from "./contracts/testing/FoundrySetup.t.sol/FoundrySetup"; -export { FoundrySetup__factory } from "./factories/contracts/testing/FoundrySetup.t.sol/FoundrySetup__factory"; -export type { ERC20Mock } from "./contracts/testing/mock/ERC20Mock"; -export { ERC20Mock__factory } from "./factories/contracts/testing/mock/ERC20Mock__factory"; -export type { IZRC20Mock } from "./contracts/testing/mock/ZRC20Mock.sol/IZRC20Mock"; -export { IZRC20Mock__factory } from "./factories/contracts/testing/mock/ZRC20Mock.sol/IZRC20Mock__factory"; -export type { ZRC20Mock } from "./contracts/testing/mock/ZRC20Mock.sol/ZRC20Mock"; -export { ZRC20Mock__factory } from "./factories/contracts/testing/mock/ZRC20Mock.sol/ZRC20Mock__factory"; -export type { NodeLogicMock } from "./contracts/testing/mockGateway/NodeLogicMock"; -export { NodeLogicMock__factory } from "./factories/contracts/testing/mockGateway/NodeLogicMock__factory"; -export type { WrapGatewayEVM } from "./contracts/testing/mockGateway/WrapGatewayEVM"; -export { WrapGatewayEVM__factory } from "./factories/contracts/testing/mockGateway/WrapGatewayEVM__factory"; -export type { WrapGatewayZEVM } from "./contracts/testing/mockGateway/WrapGatewayZEVM"; -export { WrapGatewayZEVM__factory } from "./factories/contracts/testing/mockGateway/WrapGatewayZEVM__factory"; -export type { TokenSetup } from "./contracts/testing/TokenSetup.t.sol/TokenSetup"; -export { TokenSetup__factory } from "./factories/contracts/testing/TokenSetup.t.sol/TokenSetup__factory"; -export type { UniswapV2SetupLib } from "./contracts/testing/UniswapV2SetupLib.sol/UniswapV2SetupLib"; -export { UniswapV2SetupLib__factory } from "./factories/contracts/testing/UniswapV2SetupLib.sol/UniswapV2SetupLib__factory"; -export type { INonfungiblePositionManager } from "./contracts/testing/UniswapV3SetupLib.sol/INonfungiblePositionManager"; -export { INonfungiblePositionManager__factory } from "./factories/contracts/testing/UniswapV3SetupLib.sol/INonfungiblePositionManager__factory"; -export type { IUniswapV3Factory } from "./contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Factory"; -export { IUniswapV3Factory__factory } from "./factories/contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Factory__factory"; -export type { IUniswapV3Pool } from "./contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Pool"; -export { IUniswapV3Pool__factory } from "./factories/contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Pool__factory"; -export type { UniswapV3SetupLib } from "./contracts/testing/UniswapV3SetupLib.sol/UniswapV3SetupLib"; -export { UniswapV3SetupLib__factory } from "./factories/contracts/testing/UniswapV3SetupLib.sol/UniswapV3SetupLib__factory"; -export type { ZetaSetup } from "./contracts/testing/ZetaSetup.t.sol/ZetaSetup"; -export { ZetaSetup__factory } from "./factories/contracts/testing/ZetaSetup.t.sol/ZetaSetup__factory"; -export type { TestZRC20 } from "./contracts/TestZRC20"; -export { TestZRC20__factory } from "./factories/contracts/TestZRC20__factory"; -export type { IMulticall3 } from "./forge-std/interfaces/IMulticall3"; -export { IMulticall3__factory } from "./factories/forge-std/interfaces/IMulticall3__factory"; -export type { StdAssertions } from "./forge-std/StdAssertions"; -export { StdAssertions__factory } from "./factories/forge-std/StdAssertions__factory"; -export type { StdError } from "./forge-std/StdError.sol/StdError"; -export { StdError__factory } from "./factories/forge-std/StdError.sol/StdError__factory"; -export type { StdInvariant } from "./forge-std/StdInvariant"; -export { StdInvariant__factory } from "./factories/forge-std/StdInvariant__factory"; -export type { StdStorageSafe } from "./forge-std/StdStorage.sol/StdStorageSafe"; -export { StdStorageSafe__factory } from "./factories/forge-std/StdStorage.sol/StdStorageSafe__factory"; -export type { Test } from "./forge-std/Test"; -export { Test__factory } from "./factories/forge-std/Test__factory"; -export type { Vm } from "./forge-std/Vm.sol/Vm"; -export { Vm__factory } from "./factories/forge-std/Vm.sol/Vm__factory"; -export type { VmSafe } from "./forge-std/Vm.sol/VmSafe"; -export { VmSafe__factory } from "./factories/forge-std/Vm.sol/VmSafe__factory"; From cfb9973d413681c55bc911ef5d9bb5d4b19295f5 Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Mon, 7 Jul 2025 09:35:42 +0300 Subject: [PATCH 27/44] fix build --- lib/forge-std | 1 + .../access/AccessControlUpgradeable.ts | 359 + .../contracts-upgradeable/access/index.ts | 4 + .../contracts-upgradeable/index.ts | 9 + .../contracts-upgradeable/proxy/index.ts | 5 + .../proxy/utils/Initializable.ts | 105 + .../proxy/utils/UUPSUpgradeable.ts | 196 + .../proxy/utils/index.ts | 5 + .../utils/ContextUpgradeable.ts | 105 + .../utils/PausableUpgradeable.ts | 183 + .../utils/ReentrancyGuardUpgradeable.ts | 105 + .../contracts-upgradeable/utils/index.ts | 8 + .../utils/introspection/ERC165Upgradeable.ts | 130 + .../utils/introspection/index.ts | 4 + .../contracts/access/IAccessControl.ts | 292 + .../@openzeppelin/contracts/access/index.ts | 4 + .../@openzeppelin/contracts/index.ts | 13 + .../contracts/interfaces/IERC1363.ts | 412 + .../contracts/interfaces/IERC1967.ts | 168 + .../draft-IERC1822.sol/IERC1822Proxiable.ts | 90 + .../interfaces/draft-IERC1822.sol/index.ts | 4 + .../draft-IERC6093.sol/IERC1155Errors.ts | 69 + .../draft-IERC6093.sol/IERC20Errors.ts | 69 + .../draft-IERC6093.sol/IERC721Errors.ts | 69 + .../interfaces/draft-IERC6093.sol/index.ts | 6 + .../contracts/interfaces/index.ts | 9 + .../contracts/proxy/ERC1967/ERC1967Proxy.ts | 105 + .../contracts/proxy/ERC1967/ERC1967Utils.ts | 69 + .../contracts/proxy/ERC1967/index.ts | 5 + .../@openzeppelin/contracts/proxy/Proxy.ts | 69 + .../contracts/proxy/beacon/IBeacon.ts | 90 + .../contracts/proxy/beacon/index.ts | 4 + .../@openzeppelin/contracts/proxy/index.ts | 8 + .../contracts/token/ERC20/ERC20.ts | 286 + .../contracts/token/ERC20/IERC20.ts | 262 + .../token/ERC20/extensions/IERC20Metadata.ts | 286 + .../contracts/token/ERC20/extensions/index.ts | 4 + .../contracts/token/ERC20/index.ts | 9 + .../contracts/token/ERC20/utils/SafeERC20.ts | 69 + .../contracts/token/ERC20/utils/index.ts | 4 + .../@openzeppelin/contracts/token/index.ts | 5 + .../@openzeppelin/contracts/utils/Address.ts | 69 + .../@openzeppelin/contracts/utils/Errors.ts | 69 + .../@openzeppelin/contracts/utils/index.ts | 7 + .../contracts/utils/introspection/IERC165.ts | 94 + .../contracts/utils/introspection/index.ts | 4 + typechain-types/@openzeppelin/index.ts | 7 + typechain-types/@uniswap/index.ts | 11 + .../v2-core/contracts/UniswapV2ERC20.ts | 365 + .../v2-core/contracts/UniswapV2Factory.ts | 243 + .../v2-core/contracts/UniswapV2Pair.ts | 728 + .../@uniswap/v2-core/contracts/index.ts | 8 + .../v2-core/contracts/interfaces/IERC20.ts | 286 + .../contracts/interfaces/IUniswapV2Callee.ts | 110 + .../contracts/interfaces/IUniswapV2ERC20.ts | 365 + .../contracts/interfaces/IUniswapV2Factory.ts | 243 + .../contracts/interfaces/IUniswapV2Pair.ts | 728 + .../v2-core/contracts/interfaces/index.ts | 8 + typechain-types/@uniswap/v2-core/index.ts | 5 + .../contracts/UniswapV2Router02.ts | 964 ++ .../@uniswap/v2-periphery/contracts/index.ts | 6 + .../contracts/interfaces/IERC20.ts | 286 + .../interfaces/IUniswapV2Router01.ts | 754 + .../interfaces/IUniswapV2Router02.ts | 964 ++ .../contracts/interfaces/IWETH.ts | 116 + .../contracts/interfaces/index.ts | 7 + .../@uniswap/v2-periphery/index.ts | 5 + .../@uniswap/v3-core/contracts/index.ts | 5 + .../callback/IUniswapV3SwapCallback.ts | 99 + .../contracts/interfaces/callback/index.ts | 4 + .../v3-core/contracts/interfaces/index.ts | 5 + typechain-types/@uniswap/v3-core/index.ts | 5 + .../@uniswap/v3-periphery/contracts/index.ts | 5 + .../contracts/interfaces/ISwapRouter.ts | 296 + .../contracts/interfaces/index.ts | 4 + .../@uniswap/v3-periphery/index.ts | 5 + typechain-types/@zetachain/index.ts | 5 + .../Errors.sol/INotSupportedMethods.ts | 69 + .../contracts/Errors.sol/index.ts | 4 + .../contracts/Revert.sol/Abortable.ts | 122 + .../contracts/Revert.sol/Revertable.ts | 111 + .../contracts/Revert.sol/index.ts | 5 + .../contracts/evm/ERC20Custody.ts | 1110 ++ .../contracts/evm/GatewayEVM.ts | 1322 ++ .../contracts/evm/ZetaConnectorBase.ts | 919 ++ .../contracts/evm/ZetaConnectorNative.ts | 919 ++ .../contracts/evm/ZetaConnectorNonNative.ts | 976 ++ .../protocol-contracts/contracts/evm/index.ts | 10 + .../IERC20Custody.sol/IERC20Custody.ts | 488 + .../IERC20Custody.sol/IERC20CustodyErrors.ts | 69 + .../IERC20Custody.sol/IERC20CustodyEvents.ts | 362 + .../evm/interfaces/IERC20Custody.sol/index.ts | 6 + .../interfaces/IGatewayEVM.sol/Callable.ts | 100 + .../interfaces/IGatewayEVM.sol/IGatewayEVM.ts | 723 + .../IGatewayEVM.sol/IGatewayEVMErrors.ts | 69 + .../IGatewayEVM.sol/IGatewayEVMEvents.ts | 422 + .../evm/interfaces/IGatewayEVM.sol/index.ts | 7 + .../IZetaConnectorEvents.ts | 241 + .../interfaces/IZetaConnector.sol/index.ts | 4 + .../evm/interfaces/IZetaNonEthNew.ts | 300 + .../contracts/evm/interfaces/index.ts | 10 + .../protocol-contracts/contracts/index.ts | 11 + .../contracts/zevm/GatewayZEVM.ts | 1243 ++ .../zevm/SystemContract.sol/SystemContract.ts | 569 + .../SystemContractErrors.ts | 69 + .../zevm/SystemContract.sol/index.ts | 5 + .../contracts/zevm/WZETA.sol/WETH9.ts | 369 + .../contracts/zevm/WZETA.sol/index.ts | 4 + .../contracts/zevm/ZRC20.sol/ZRC20.ts | 748 + .../contracts/zevm/ZRC20.sol/ZRC20Errors.ts | 69 + .../contracts/zevm/ZRC20.sol/index.ts | 5 + .../contracts/zevm/index.ts | 12 + .../IGatewayZEVM.sol/IGatewayZEVM.ts | 686 + .../IGatewayZEVM.sol/IGatewayZEVMErrors.ts | 69 + .../IGatewayZEVM.sol/IGatewayZEVMEvents.ts | 282 + .../zevm/interfaces/IGatewayZEVM.sol/index.ts | 6 + .../contracts/zevm/interfaces/ISystem.ts | 176 + .../zevm/interfaces/IWZETA.sol/IWETH9.ts | 345 + .../zevm/interfaces/IWZETA.sol/index.ts | 4 + .../zevm/interfaces/IZRC20.sol/IZRC20.ts | 301 + .../interfaces/IZRC20.sol/IZRC20Metadata.ts | 325 + .../zevm/interfaces/IZRC20.sol/ZRC20Events.ts | 361 + .../zevm/interfaces/IZRC20.sol/index.ts | 6 + .../UniversalContract.ts | 119 + .../UniversalContract.sol/ZContract.ts | 122 + .../interfaces/UniversalContract.sol/index.ts | 5 + .../contracts/zevm/interfaces/index.ts | 12 + .../@zetachain/protocol-contracts/index.ts | 5 + typechain-types/common.ts | 131 + typechain-types/contracts/BytesHelperLib.ts | 69 + .../contracts/EthZetaMock.sol/ZetaEthMock.ts | 286 + .../contracts/EthZetaMock.sol/index.ts | 4 + typechain-types/contracts/OnlySystem.ts | 69 + .../contracts/Revert.sol/Revertable.ts | 109 + typechain-types/contracts/Revert.sol/index.ts | 4 + typechain-types/contracts/SwapHelperLib.ts | 133 + .../contracts/SwapHelpers.sol/SwapLibrary.ts | 69 + .../contracts/SwapHelpers.sol/index.ts | 4 + .../SystemContract.sol/SystemContract.ts | 569 + .../SystemContractErrors.ts | 69 + .../contracts/SystemContract.sol/index.ts | 5 + typechain-types/contracts/TestZRC20.ts | 360 + .../UniversalContract.ts | 154 + .../UniversalContract.sol/ZContract.ts | 122 + .../contracts/UniversalContract.sol/index.ts | 5 + typechain-types/contracts/index.ts | 21 + typechain-types/contracts/shared/MockZRC20.ts | 459 + .../contracts/shared/TestUniswapRouter.ts | 497 + typechain-types/contracts/shared/WZETA.ts | 369 + typechain-types/contracts/shared/index.ts | 10 + .../contracts/shared/interfaces/IERC20.ts | 286 + .../contracts/shared/interfaces/IWETH.ts | 116 + .../shared/interfaces/IZRC20.sol/IZRC20.ts | 301 + .../interfaces/IZRC20.sol/IZRC20Metadata.ts | 325 + .../interfaces/IZRC20.sol/ZRC20Events.ts | 361 + .../shared/interfaces/IZRC20.sol/index.ts | 6 + .../contracts/shared/interfaces/index.ts | 7 + .../shared/libraries/SafeMath.sol/Math.ts | 69 + .../shared/libraries/SafeMath.sol/index.ts | 4 + .../shared/libraries/UniswapV2Library.ts | 69 + .../contracts/shared/libraries/index.ts | 6 + .../testing/EVMSetup.t.sol/EVMSetup.ts | 1111 ++ .../testing/EVMSetup.t.sol/ITestERC20.ts | 97 + .../testing/EVMSetup.t.sol/IZetaNonEth.ts | 101 + .../contracts/testing/EVMSetup.t.sol/index.ts | 6 + .../FoundrySetup.t.sol/FoundrySetup.ts | 1225 ++ .../testing/FoundrySetup.t.sol/index.ts | 4 + .../testing/TokenSetup.t.sol/TokenSetup.ts | 1186 ++ .../testing/TokenSetup.t.sol/index.ts | 4 + .../IUniswapV2Factory.ts | 114 + .../IUniswapV2Router02.ts | 139 + .../UniswapV2SetupLib.ts | 1034 ++ .../testing/UniswapV2SetupLib.sol/index.ts | 6 + .../INonfungiblePositionManager.ts | 239 + .../IUniswapV3Factory.ts | 115 + .../UniswapV3SetupLib.sol/IUniswapV3Pool.ts | 150 + .../UniswapV3SetupLib.ts | 966 ++ .../testing/UniswapV3SetupLib.sol/index.ts | 7 + .../testing/ZetaSetup.t.sol/ZetaSetup.ts | 1190 ++ .../testing/ZetaSetup.t.sol/index.ts | 4 + typechain-types/contracts/testing/index.ts | 19 + .../contracts/testing/mock/ERC20Mock.ts | 324 + .../testing/mock/ZRC20Mock.sol/IZRC20Mock.ts | 352 + .../testing/mock/ZRC20Mock.sol/ZRC20Mock.ts | 799 ++ .../testing/mock/ZRC20Mock.sol/index.ts | 5 + .../contracts/testing/mock/index.ts | 6 + .../testing/mockGateway/NodeLogicMock.ts | 1542 +++ .../testing/mockGateway/WrapGatewayEVM.ts | 109 + .../testing/mockGateway/WrapGatewayZEVM.ts | 102 + .../contracts/testing/mockGateway/index.ts | 6 + .../AccessControlUpgradeable__factory.ts | 277 + .../contracts-upgradeable/access/index.ts | 4 + .../contracts-upgradeable/index.ts | 6 + .../contracts-upgradeable/proxy/index.ts | 4 + .../proxy/utils/Initializable__factory.ts | 48 + .../proxy/utils/UUPSUpgradeable__factory.ts | 153 + .../proxy/utils/index.ts | 5 + .../utils/ContextUpgradeable__factory.ts | 48 + .../utils/PausableUpgradeable__factory.ts | 101 + .../ReentrancyGuardUpgradeable__factory.ts | 57 + .../contracts-upgradeable/utils/index.ts | 7 + .../ERC165Upgradeable__factory.ts | 67 + .../utils/introspection/index.ts | 4 + .../access/IAccessControl__factory.ts | 218 + .../@openzeppelin/contracts/access/index.ts | 4 + .../@openzeppelin/contracts/index.ts | 8 + .../contracts/interfaces/IERC1363__factory.ts | 393 + .../contracts/interfaces/IERC1967__factory.ts | 67 + .../IERC1822Proxiable__factory.ts | 38 + .../interfaces/draft-IERC1822.sol/index.ts | 4 + .../IERC1155Errors__factory.ts | 127 + .../IERC20Errors__factory.ts | 111 + .../IERC721Errors__factory.ts | 128 + .../interfaces/draft-IERC6093.sol/index.ts | 6 + .../contracts/interfaces/index.ts | 7 + .../proxy/ERC1967/ERC1967Proxy__factory.ts | 144 + .../proxy/ERC1967/ERC1967Utils__factory.ts | 105 + .../contracts/proxy/ERC1967/index.ts | 5 + .../contracts/proxy/Proxy__factory.ts | 26 + .../proxy/beacon/IBeacon__factory.ts | 35 + .../contracts/proxy/beacon/index.ts | 4 + .../@openzeppelin/contracts/proxy/index.ts | 6 + .../contracts/token/ERC20/ERC20__factory.ts | 330 + .../contracts/token/ERC20/IERC20__factory.ts | 205 + .../extensions/IERC20Metadata__factory.ts | 247 + .../contracts/token/ERC20/extensions/index.ts | 4 + .../contracts/token/ERC20/index.ts | 7 + .../token/ERC20/utils/SafeERC20__factory.ts | 96 + .../contracts/token/ERC20/utils/index.ts | 4 + .../@openzeppelin/contracts/token/index.ts | 4 + .../contracts/utils/Address__factory.ts | 75 + .../contracts/utils/Errors__factory.ts | 101 + .../@openzeppelin/contracts/utils/index.ts | 6 + .../utils/introspection/IERC165__factory.ts | 41 + .../contracts/utils/introspection/index.ts | 4 + .../factories/@openzeppelin/index.ts | 5 + typechain-types/factories/@uniswap/index.ts | 7 + .../contracts/UniswapV2ERC20__factory.ts | 409 + .../contracts/UniswapV2Factory__factory.ts | 267 + .../contracts/UniswapV2Pair__factory.ts | 778 ++ .../@uniswap/v2-core/contracts/index.ts | 7 + .../contracts/interfaces/IERC20__factory.ts | 244 + .../interfaces/IUniswapV2Callee__factory.ts | 53 + .../interfaces/IUniswapV2ERC20__factory.ts | 335 + .../interfaces/IUniswapV2Factory__factory.ts | 188 + .../interfaces/IUniswapV2Pair__factory.ts | 676 + .../v2-core/contracts/interfaces/index.ts | 8 + .../factories/@uniswap/v2-core/index.ts | 4 + .../contracts/UniswapV2Router02__factory.ts | 1049 ++ .../@uniswap/v2-periphery/contracts/index.ts | 5 + .../contracts/interfaces/IERC20__factory.ts | 244 + .../interfaces/IUniswapV2Router01__factory.ts | 774 ++ .../interfaces/IUniswapV2Router02__factory.ts | 976 ++ .../contracts/interfaces/IWETH__factory.ts | 66 + .../contracts/interfaces/index.ts | 7 + .../factories/@uniswap/v2-periphery/index.ts | 4 + .../@uniswap/v3-core/contracts/index.ts | 4 + .../IUniswapV3SwapCallback__factory.ts | 52 + .../contracts/interfaces/callback/index.ts | 4 + .../v3-core/contracts/interfaces/index.ts | 4 + .../factories/@uniswap/v3-core/index.ts | 4 + .../@uniswap/v3-periphery/contracts/index.ts | 4 + .../interfaces/ISwapRouter__factory.ts | 259 + .../contracts/interfaces/index.ts | 4 + .../factories/@uniswap/v3-periphery/index.ts | 4 + typechain-types/factories/@zetachain/index.ts | 4 + .../INotSupportedMethods__factory.ts | 39 + .../contracts/Errors.sol/index.ts | 4 + .../Revert.sol/Abortable__factory.ts | 67 + .../Revert.sol/Revertable__factory.ts | 57 + .../contracts/Revert.sol/index.ts | 5 + .../contracts/evm/ERC20Custody__factory.ts | 1023 ++ .../contracts/evm/GatewayEVM__factory.ts | 1533 +++ .../evm/ZetaConnectorBase__factory.ts | 817 ++ .../evm/ZetaConnectorNative__factory.ts | 876 ++ .../evm/ZetaConnectorNonNative__factory.ts | 909 ++ .../protocol-contracts/contracts/evm/index.ts | 9 + .../IERC20CustodyErrors__factory.ts | 44 + .../IERC20CustodyEvents__factory.ts | 220 + .../IERC20Custody__factory.ts | 368 + .../evm/interfaces/IERC20Custody.sol/index.ts | 6 + .../IGatewayEVM.sol/Callable__factory.ts | 53 + .../IGatewayEVMErrors__factory.ts | 113 + .../IGatewayEVMEvents__factory.ts | 357 + .../IGatewayEVM.sol/IGatewayEVM__factory.ts | 878 ++ .../evm/interfaces/IGatewayEVM.sol/index.ts | 7 + .../IZetaConnectorEvents__factory.ts | 145 + .../interfaces/IZetaConnector.sol/index.ts | 4 + .../evm/interfaces/IZetaNonEthNew__factory.ts | 249 + .../contracts/evm/interfaces/index.ts | 7 + .../protocol-contracts/contracts/index.ts | 7 + .../contracts/zevm/GatewayZEVM__factory.ts | 1684 +++ .../SystemContractErrors__factory.ts | 54 + .../SystemContract__factory.ts | 506 + .../zevm/SystemContract.sol/index.ts | 5 + .../zevm/WZETA.sol/WETH9__factory.ts | 348 + .../contracts/zevm/WZETA.sol/index.ts | 4 + .../zevm/ZRC20.sol/ZRC20Errors__factory.ts | 62 + .../zevm/ZRC20.sol/ZRC20__factory.ts | 808 ++ .../contracts/zevm/ZRC20.sol/index.ts | 5 + .../contracts/zevm/index.ts | 8 + .../IGatewayZEVMErrors__factory.ts | 192 + .../IGatewayZEVMEvents__factory.ts | 319 + .../IGatewayZEVM.sol/IGatewayZEVM__factory.ts | 1080 ++ .../zevm/interfaces/IGatewayZEVM.sol/index.ts | 6 + .../zevm/interfaces/ISystem__factory.ts | 118 + .../interfaces/IWZETA.sol/IWETH9__factory.ts | 263 + .../zevm/interfaces/IWZETA.sol/index.ts | 4 + .../IZRC20.sol/IZRC20Metadata__factory.ts | 358 + .../interfaces/IZRC20.sol/IZRC20__factory.ts | 316 + .../IZRC20.sol/ZRC20Events__factory.ts | 186 + .../zevm/interfaces/IZRC20.sol/index.ts | 6 + .../UniversalContract__factory.ts | 70 + .../ZContract__factory.ts | 67 + .../interfaces/UniversalContract.sol/index.ts | 5 + .../contracts/zevm/interfaces/index.ts | 8 + .../@zetachain/protocol-contracts/index.ts | 4 + .../contracts/BytesHelperLib__factory.ts | 72 + .../EthZetaMock.sol/ZetaEthMock__factory.ts | 400 + .../contracts/EthZetaMock.sol/index.ts | 4 + .../contracts/OnlySystem__factory.ts | 75 + .../Revert.sol/Revertable__factory.ts | 52 + .../factories/contracts/Revert.sol/index.ts | 4 + .../contracts/SwapHelperLib__factory.ts | 190 + .../SwapHelpers.sol/SwapLibrary__factory.ts | 69 + .../contracts/SwapHelpers.sol/index.ts | 4 + .../SystemContractErrors__factory.ts | 54 + .../SystemContract__factory.ts | 506 + .../contracts/SystemContract.sol/index.ts | 5 + .../factories/contracts/TestZRC20__factory.ts | 508 + .../UniversalContract__factory.ts | 100 + .../ZContract__factory.ts | 67 + .../contracts/UniversalContract.sol/index.ts | 5 + typechain-types/factories/contracts/index.ts | 14 + .../contracts/shared/MockZRC20__factory.ts | 600 + .../shared/TestUniswapRouter__factory.ts | 623 + .../contracts/shared/WZETA__factory.ts | 345 + .../factories/contracts/shared/index.ts | 8 + .../shared/interfaces/IERC20__factory.ts | 244 + .../shared/interfaces/IWETH__factory.ts | 66 + .../IZRC20.sol/IZRC20Metadata__factory.ts | 358 + .../interfaces/IZRC20.sol/IZRC20__factory.ts | 316 + .../IZRC20.sol/ZRC20Events__factory.ts | 186 + .../shared/interfaces/IZRC20.sol/index.ts | 6 + .../contracts/shared/interfaces/index.ts | 6 + .../libraries/SafeMath.sol/Math__factory.ts | 79 + .../shared/libraries/SafeMath.sol/index.ts | 4 + .../libraries/UniswapV2Library__factory.ts | 102 + .../contracts/shared/libraries/index.ts | 5 + .../EVMSetup.t.sol/EVMSetup__factory.ts | 883 ++ .../EVMSetup.t.sol/ITestERC20__factory.ts | 40 + .../EVMSetup.t.sol/IZetaNonEth__factory.ts | 40 + .../contracts/testing/EVMSetup.t.sol/index.ts | 6 + .../FoundrySetup__factory.ts | 944 ++ .../testing/FoundrySetup.t.sol/index.ts | 4 + .../TokenSetup.t.sol/TokenSetup__factory.ts | 906 ++ .../testing/TokenSetup.t.sol/index.ts | 4 + .../IUniswapV2Factory__factory.ts | 73 + .../IUniswapV2Router02__factory.ts | 89 + .../UniswapV2SetupLib__factory.ts | 707 + .../testing/UniswapV2SetupLib.sol/index.ts | 6 + .../INonfungiblePositionManager__factory.ts | 213 + .../IUniswapV3Factory__factory.ts | 83 + .../IUniswapV3Pool__factory.ts | 120 + .../UniswapV3SetupLib__factory.ts | 635 + .../testing/UniswapV3SetupLib.sol/index.ts | 7 + .../ZetaSetup.t.sol/ZetaSetup__factory.ts | 889 ++ .../testing/ZetaSetup.t.sol/index.ts | 4 + .../factories/contracts/testing/index.ts | 11 + .../testing/mock/ERC20Mock__factory.ts | 430 + .../mock/ZRC20Mock.sol/IZRC20Mock__factory.ts | 352 + .../mock/ZRC20Mock.sol/ZRC20Mock__factory.ts | 844 ++ .../testing/mock/ZRC20Mock.sol/index.ts | 5 + .../factories/contracts/testing/mock/index.ts | 5 + .../mockGateway/NodeLogicMock__factory.ts | 1340 ++ .../mockGateway/WrapGatewayEVM__factory.ts | 155 + .../mockGateway/WrapGatewayZEVM__factory.ts | 124 + .../contracts/testing/mockGateway/index.ts | 6 + .../forge-std/StdAssertions__factory.ts | 402 + .../StdError.sol/StdError__factory.ts | 181 + .../factories/forge-std/StdError.sol/index.ts | 4 + .../forge-std/StdInvariant__factory.ts | 203 + .../StdStorage.sol/StdStorageSafe__factory.ts | 117 + .../forge-std/StdStorage.sol/index.ts | 4 + .../factories/forge-std/Test__factory.ts | 587 + .../forge-std/Vm.sol/VmSafe__factory.ts | 9077 ++++++++++++ .../factories/forge-std/Vm.sol/Vm__factory.ts | 11477 ++++++++++++++++ .../factories/forge-std/Vm.sol/index.ts | 5 + typechain-types/factories/forge-std/index.ts | 10 + .../interfaces/IMulticall3__factory.ts | 460 + .../factories/forge-std/interfaces/index.ts | 4 + typechain-types/factories/index.ts | 8 + typechain-types/forge-std/StdAssertions.ts | 762 + .../forge-std/StdError.sol/StdError.ts | 199 + .../forge-std/StdError.sol/index.ts | 4 + typechain-types/forge-std/StdInvariant.ts | 273 + .../StdStorage.sol/StdStorageSafe.ts | 153 + .../forge-std/StdStorage.sol/index.ts | 4 + typechain-types/forge-std/Test.ts | 966 ++ typechain-types/forge-std/Vm.sol/Vm.ts | 10534 ++++++++++++++ typechain-types/forge-std/Vm.sol/VmSafe.ts | 7888 +++++++++++ typechain-types/forge-std/Vm.sol/index.ts | 5 + typechain-types/forge-std/index.ts | 14 + .../forge-std/interfaces/IMulticall3.ts | 416 + typechain-types/forge-std/interfaces/index.ts | 4 + typechain-types/hardhat.d.ts | 2223 +++ typechain-types/index.ts | 228 + 407 files changed, 125197 insertions(+) create mode 160000 lib/forge-std create mode 100644 typechain-types/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.ts create mode 100644 typechain-types/@openzeppelin/contracts-upgradeable/access/index.ts create mode 100644 typechain-types/@openzeppelin/contracts-upgradeable/index.ts create mode 100644 typechain-types/@openzeppelin/contracts-upgradeable/proxy/index.ts create mode 100644 typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.ts create mode 100644 typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.ts create mode 100644 typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/index.ts create mode 100644 typechain-types/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.ts create mode 100644 typechain-types/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.ts create mode 100644 typechain-types/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.ts create mode 100644 typechain-types/@openzeppelin/contracts-upgradeable/utils/index.ts create mode 100644 typechain-types/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.ts create mode 100644 typechain-types/@openzeppelin/contracts-upgradeable/utils/introspection/index.ts create mode 100644 typechain-types/@openzeppelin/contracts/access/IAccessControl.ts create mode 100644 typechain-types/@openzeppelin/contracts/access/index.ts create mode 100644 typechain-types/@openzeppelin/contracts/index.ts create mode 100644 typechain-types/@openzeppelin/contracts/interfaces/IERC1363.ts create mode 100644 typechain-types/@openzeppelin/contracts/interfaces/IERC1967.ts create mode 100644 typechain-types/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.ts create mode 100644 typechain-types/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.ts create mode 100644 typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.ts create mode 100644 typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.ts create mode 100644 typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.ts create mode 100644 typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts create mode 100644 typechain-types/@openzeppelin/contracts/interfaces/index.ts create mode 100644 typechain-types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.ts create mode 100644 typechain-types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.ts create mode 100644 typechain-types/@openzeppelin/contracts/proxy/ERC1967/index.ts create mode 100644 typechain-types/@openzeppelin/contracts/proxy/Proxy.ts create mode 100644 typechain-types/@openzeppelin/contracts/proxy/beacon/IBeacon.ts create mode 100644 typechain-types/@openzeppelin/contracts/proxy/beacon/index.ts create mode 100644 typechain-types/@openzeppelin/contracts/proxy/index.ts create mode 100644 typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.ts create mode 100644 typechain-types/@openzeppelin/contracts/token/ERC20/IERC20.ts create mode 100644 typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.ts create mode 100644 typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.ts create mode 100644 typechain-types/@openzeppelin/contracts/token/ERC20/index.ts create mode 100644 typechain-types/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.ts create mode 100644 typechain-types/@openzeppelin/contracts/token/ERC20/utils/index.ts create mode 100644 typechain-types/@openzeppelin/contracts/token/index.ts create mode 100644 typechain-types/@openzeppelin/contracts/utils/Address.ts create mode 100644 typechain-types/@openzeppelin/contracts/utils/Errors.ts create mode 100644 typechain-types/@openzeppelin/contracts/utils/index.ts create mode 100644 typechain-types/@openzeppelin/contracts/utils/introspection/IERC165.ts create mode 100644 typechain-types/@openzeppelin/contracts/utils/introspection/index.ts create mode 100644 typechain-types/@openzeppelin/index.ts create mode 100644 typechain-types/@uniswap/index.ts create mode 100644 typechain-types/@uniswap/v2-core/contracts/UniswapV2ERC20.ts create mode 100644 typechain-types/@uniswap/v2-core/contracts/UniswapV2Factory.ts create mode 100644 typechain-types/@uniswap/v2-core/contracts/UniswapV2Pair.ts create mode 100644 typechain-types/@uniswap/v2-core/contracts/index.ts create mode 100644 typechain-types/@uniswap/v2-core/contracts/interfaces/IERC20.ts create mode 100644 typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2Callee.ts create mode 100644 typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2ERC20.ts create mode 100644 typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.ts create mode 100644 typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair.ts create mode 100644 typechain-types/@uniswap/v2-core/contracts/interfaces/index.ts create mode 100644 typechain-types/@uniswap/v2-core/index.ts create mode 100644 typechain-types/@uniswap/v2-periphery/contracts/UniswapV2Router02.ts create mode 100644 typechain-types/@uniswap/v2-periphery/contracts/index.ts create mode 100644 typechain-types/@uniswap/v2-periphery/contracts/interfaces/IERC20.ts create mode 100644 typechain-types/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.ts create mode 100644 typechain-types/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.ts create mode 100644 typechain-types/@uniswap/v2-periphery/contracts/interfaces/IWETH.ts create mode 100644 typechain-types/@uniswap/v2-periphery/contracts/interfaces/index.ts create mode 100644 typechain-types/@uniswap/v2-periphery/index.ts create mode 100644 typechain-types/@uniswap/v3-core/contracts/index.ts create mode 100644 typechain-types/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.ts create mode 100644 typechain-types/@uniswap/v3-core/contracts/interfaces/callback/index.ts create mode 100644 typechain-types/@uniswap/v3-core/contracts/interfaces/index.ts create mode 100644 typechain-types/@uniswap/v3-core/index.ts create mode 100644 typechain-types/@uniswap/v3-periphery/contracts/index.ts create mode 100644 typechain-types/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter.ts create mode 100644 typechain-types/@uniswap/v3-periphery/contracts/interfaces/index.ts create mode 100644 typechain-types/@uniswap/v3-periphery/index.ts create mode 100644 typechain-types/@zetachain/index.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/Errors.sol/INotSupportedMethods.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/Errors.sol/index.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/Revert.sol/Abortable.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/Revert.sol/Revertable.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/Revert.sol/index.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/ERC20Custody.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/GatewayEVM.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorBase.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNative.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNonNative.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/index.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20Custody.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyErrors.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyEvents.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/index.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/Callable.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVM.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMErrors.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMEvents.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/index.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/IZetaConnectorEvents.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/index.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaNonEthNew.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/index.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/index.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/GatewayZEVM.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContract.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContractErrors.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/index.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/WETH9.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/index.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20Errors.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/index.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/index.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVM.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMErrors.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMEvents.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/index.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/ISystem.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/IWETH9.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/index.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/ZRC20Events.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/index.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/UniversalContract.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/ZContract.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/index.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/index.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/index.ts create mode 100644 typechain-types/common.ts create mode 100644 typechain-types/contracts/BytesHelperLib.ts create mode 100644 typechain-types/contracts/EthZetaMock.sol/ZetaEthMock.ts create mode 100644 typechain-types/contracts/EthZetaMock.sol/index.ts create mode 100644 typechain-types/contracts/OnlySystem.ts create mode 100644 typechain-types/contracts/Revert.sol/Revertable.ts create mode 100644 typechain-types/contracts/Revert.sol/index.ts create mode 100644 typechain-types/contracts/SwapHelperLib.ts create mode 100644 typechain-types/contracts/SwapHelpers.sol/SwapLibrary.ts create mode 100644 typechain-types/contracts/SwapHelpers.sol/index.ts create mode 100644 typechain-types/contracts/SystemContract.sol/SystemContract.ts create mode 100644 typechain-types/contracts/SystemContract.sol/SystemContractErrors.ts create mode 100644 typechain-types/contracts/SystemContract.sol/index.ts create mode 100644 typechain-types/contracts/TestZRC20.ts create mode 100644 typechain-types/contracts/UniversalContract.sol/UniversalContract.ts create mode 100644 typechain-types/contracts/UniversalContract.sol/ZContract.ts create mode 100644 typechain-types/contracts/UniversalContract.sol/index.ts create mode 100644 typechain-types/contracts/index.ts create mode 100644 typechain-types/contracts/shared/MockZRC20.ts create mode 100644 typechain-types/contracts/shared/TestUniswapRouter.ts create mode 100644 typechain-types/contracts/shared/WZETA.ts create mode 100644 typechain-types/contracts/shared/index.ts create mode 100644 typechain-types/contracts/shared/interfaces/IERC20.ts create mode 100644 typechain-types/contracts/shared/interfaces/IWETH.ts create mode 100644 typechain-types/contracts/shared/interfaces/IZRC20.sol/IZRC20.ts create mode 100644 typechain-types/contracts/shared/interfaces/IZRC20.sol/IZRC20Metadata.ts create mode 100644 typechain-types/contracts/shared/interfaces/IZRC20.sol/ZRC20Events.ts create mode 100644 typechain-types/contracts/shared/interfaces/IZRC20.sol/index.ts create mode 100644 typechain-types/contracts/shared/interfaces/index.ts create mode 100644 typechain-types/contracts/shared/libraries/SafeMath.sol/Math.ts create mode 100644 typechain-types/contracts/shared/libraries/SafeMath.sol/index.ts create mode 100644 typechain-types/contracts/shared/libraries/UniswapV2Library.ts create mode 100644 typechain-types/contracts/shared/libraries/index.ts create mode 100644 typechain-types/contracts/testing/EVMSetup.t.sol/EVMSetup.ts create mode 100644 typechain-types/contracts/testing/EVMSetup.t.sol/ITestERC20.ts create mode 100644 typechain-types/contracts/testing/EVMSetup.t.sol/IZetaNonEth.ts create mode 100644 typechain-types/contracts/testing/EVMSetup.t.sol/index.ts create mode 100644 typechain-types/contracts/testing/FoundrySetup.t.sol/FoundrySetup.ts create mode 100644 typechain-types/contracts/testing/FoundrySetup.t.sol/index.ts create mode 100644 typechain-types/contracts/testing/TokenSetup.t.sol/TokenSetup.ts create mode 100644 typechain-types/contracts/testing/TokenSetup.t.sol/index.ts create mode 100644 typechain-types/contracts/testing/UniswapV2SetupLib.sol/IUniswapV2Factory.ts create mode 100644 typechain-types/contracts/testing/UniswapV2SetupLib.sol/IUniswapV2Router02.ts create mode 100644 typechain-types/contracts/testing/UniswapV2SetupLib.sol/UniswapV2SetupLib.ts create mode 100644 typechain-types/contracts/testing/UniswapV2SetupLib.sol/index.ts create mode 100644 typechain-types/contracts/testing/UniswapV3SetupLib.sol/INonfungiblePositionManager.ts create mode 100644 typechain-types/contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Factory.ts create mode 100644 typechain-types/contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Pool.ts create mode 100644 typechain-types/contracts/testing/UniswapV3SetupLib.sol/UniswapV3SetupLib.ts create mode 100644 typechain-types/contracts/testing/UniswapV3SetupLib.sol/index.ts create mode 100644 typechain-types/contracts/testing/ZetaSetup.t.sol/ZetaSetup.ts create mode 100644 typechain-types/contracts/testing/ZetaSetup.t.sol/index.ts create mode 100644 typechain-types/contracts/testing/index.ts create mode 100644 typechain-types/contracts/testing/mock/ERC20Mock.ts create mode 100644 typechain-types/contracts/testing/mock/ZRC20Mock.sol/IZRC20Mock.ts create mode 100644 typechain-types/contracts/testing/mock/ZRC20Mock.sol/ZRC20Mock.ts create mode 100644 typechain-types/contracts/testing/mock/ZRC20Mock.sol/index.ts create mode 100644 typechain-types/contracts/testing/mock/index.ts create mode 100644 typechain-types/contracts/testing/mockGateway/NodeLogicMock.ts create mode 100644 typechain-types/contracts/testing/mockGateway/WrapGatewayEVM.ts create mode 100644 typechain-types/contracts/testing/mockGateway/WrapGatewayZEVM.ts create mode 100644 typechain-types/contracts/testing/mockGateway/index.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable__factory.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts-upgradeable/access/index.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts-upgradeable/index.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/index.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable__factory.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/index.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable__factory.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable__factory.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/index.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable__factory.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/introspection/index.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts/access/IAccessControl__factory.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts/access/index.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts/index.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts/interfaces/IERC1363__factory.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts/interfaces/IERC1967__factory.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors__factory.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors__factory.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors__factory.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts/interfaces/index.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils__factory.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/index.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts/proxy/Proxy__factory.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts/proxy/beacon/index.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts/proxy/index.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts/token/ERC20/index.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts/token/ERC20/utils/SafeERC20__factory.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts/token/ERC20/utils/index.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts/token/index.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts/utils/Address__factory.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts/utils/Errors__factory.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts/utils/index.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts/utils/introspection/IERC165__factory.ts create mode 100644 typechain-types/factories/@openzeppelin/contracts/utils/introspection/index.ts create mode 100644 typechain-types/factories/@openzeppelin/index.ts create mode 100644 typechain-types/factories/@uniswap/index.ts create mode 100644 typechain-types/factories/@uniswap/v2-core/contracts/UniswapV2ERC20__factory.ts create mode 100644 typechain-types/factories/@uniswap/v2-core/contracts/UniswapV2Factory__factory.ts create mode 100644 typechain-types/factories/@uniswap/v2-core/contracts/UniswapV2Pair__factory.ts create mode 100644 typechain-types/factories/@uniswap/v2-core/contracts/index.ts create mode 100644 typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IERC20__factory.ts create mode 100644 typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Callee__factory.ts create mode 100644 typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2ERC20__factory.ts create mode 100644 typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory__factory.ts create mode 100644 typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair__factory.ts create mode 100644 typechain-types/factories/@uniswap/v2-core/contracts/interfaces/index.ts create mode 100644 typechain-types/factories/@uniswap/v2-core/index.ts create mode 100644 typechain-types/factories/@uniswap/v2-periphery/contracts/UniswapV2Router02__factory.ts create mode 100644 typechain-types/factories/@uniswap/v2-periphery/contracts/index.ts create mode 100644 typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IERC20__factory.ts create mode 100644 typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01__factory.ts create mode 100644 typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02__factory.ts create mode 100644 typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IWETH__factory.ts create mode 100644 typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/index.ts create mode 100644 typechain-types/factories/@uniswap/v2-periphery/index.ts create mode 100644 typechain-types/factories/@uniswap/v3-core/contracts/index.ts create mode 100644 typechain-types/factories/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback__factory.ts create mode 100644 typechain-types/factories/@uniswap/v3-core/contracts/interfaces/callback/index.ts create mode 100644 typechain-types/factories/@uniswap/v3-core/contracts/interfaces/index.ts create mode 100644 typechain-types/factories/@uniswap/v3-core/index.ts create mode 100644 typechain-types/factories/@uniswap/v3-periphery/contracts/index.ts create mode 100644 typechain-types/factories/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter__factory.ts create mode 100644 typechain-types/factories/@uniswap/v3-periphery/contracts/interfaces/index.ts create mode 100644 typechain-types/factories/@uniswap/v3-periphery/index.ts create mode 100644 typechain-types/factories/@zetachain/index.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/Errors.sol/INotSupportedMethods__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/Errors.sol/index.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/Revert.sol/Abortable__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/Revert.sol/Revertable__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/Revert.sol/index.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ERC20Custody__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/GatewayEVM__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorBase__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNative__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNonNative__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/index.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyErrors__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyEvents__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20Custody__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/index.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/Callable__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMErrors__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMEvents__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVM__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/index.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/IZetaConnectorEvents__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/index.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaNonEthNew__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/index.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/index.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/GatewayZEVM__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContractErrors__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContract__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/index.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/WETH9__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/index.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20Errors__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/index.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/index.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMErrors__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMEvents__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVM__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/index.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/ISystem__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/IWETH9__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/index.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/ZRC20Events__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/index.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/UniversalContract__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/ZContract__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/index.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/index.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/index.ts create mode 100644 typechain-types/factories/contracts/BytesHelperLib__factory.ts create mode 100644 typechain-types/factories/contracts/EthZetaMock.sol/ZetaEthMock__factory.ts create mode 100644 typechain-types/factories/contracts/EthZetaMock.sol/index.ts create mode 100644 typechain-types/factories/contracts/OnlySystem__factory.ts create mode 100644 typechain-types/factories/contracts/Revert.sol/Revertable__factory.ts create mode 100644 typechain-types/factories/contracts/Revert.sol/index.ts create mode 100644 typechain-types/factories/contracts/SwapHelperLib__factory.ts create mode 100644 typechain-types/factories/contracts/SwapHelpers.sol/SwapLibrary__factory.ts create mode 100644 typechain-types/factories/contracts/SwapHelpers.sol/index.ts create mode 100644 typechain-types/factories/contracts/SystemContract.sol/SystemContractErrors__factory.ts create mode 100644 typechain-types/factories/contracts/SystemContract.sol/SystemContract__factory.ts create mode 100644 typechain-types/factories/contracts/SystemContract.sol/index.ts create mode 100644 typechain-types/factories/contracts/TestZRC20__factory.ts create mode 100644 typechain-types/factories/contracts/UniversalContract.sol/UniversalContract__factory.ts create mode 100644 typechain-types/factories/contracts/UniversalContract.sol/ZContract__factory.ts create mode 100644 typechain-types/factories/contracts/UniversalContract.sol/index.ts create mode 100644 typechain-types/factories/contracts/index.ts create mode 100644 typechain-types/factories/contracts/shared/MockZRC20__factory.ts create mode 100644 typechain-types/factories/contracts/shared/TestUniswapRouter__factory.ts create mode 100644 typechain-types/factories/contracts/shared/WZETA__factory.ts create mode 100644 typechain-types/factories/contracts/shared/index.ts create mode 100644 typechain-types/factories/contracts/shared/interfaces/IERC20__factory.ts create mode 100644 typechain-types/factories/contracts/shared/interfaces/IWETH__factory.ts create mode 100644 typechain-types/factories/contracts/shared/interfaces/IZRC20.sol/IZRC20Metadata__factory.ts create mode 100644 typechain-types/factories/contracts/shared/interfaces/IZRC20.sol/IZRC20__factory.ts create mode 100644 typechain-types/factories/contracts/shared/interfaces/IZRC20.sol/ZRC20Events__factory.ts create mode 100644 typechain-types/factories/contracts/shared/interfaces/IZRC20.sol/index.ts create mode 100644 typechain-types/factories/contracts/shared/interfaces/index.ts create mode 100644 typechain-types/factories/contracts/shared/libraries/SafeMath.sol/Math__factory.ts create mode 100644 typechain-types/factories/contracts/shared/libraries/SafeMath.sol/index.ts create mode 100644 typechain-types/factories/contracts/shared/libraries/UniswapV2Library__factory.ts create mode 100644 typechain-types/factories/contracts/shared/libraries/index.ts create mode 100644 typechain-types/factories/contracts/testing/EVMSetup.t.sol/EVMSetup__factory.ts create mode 100644 typechain-types/factories/contracts/testing/EVMSetup.t.sol/ITestERC20__factory.ts create mode 100644 typechain-types/factories/contracts/testing/EVMSetup.t.sol/IZetaNonEth__factory.ts create mode 100644 typechain-types/factories/contracts/testing/EVMSetup.t.sol/index.ts create mode 100644 typechain-types/factories/contracts/testing/FoundrySetup.t.sol/FoundrySetup__factory.ts create mode 100644 typechain-types/factories/contracts/testing/FoundrySetup.t.sol/index.ts create mode 100644 typechain-types/factories/contracts/testing/TokenSetup.t.sol/TokenSetup__factory.ts create mode 100644 typechain-types/factories/contracts/testing/TokenSetup.t.sol/index.ts create mode 100644 typechain-types/factories/contracts/testing/UniswapV2SetupLib.sol/IUniswapV2Factory__factory.ts create mode 100644 typechain-types/factories/contracts/testing/UniswapV2SetupLib.sol/IUniswapV2Router02__factory.ts create mode 100644 typechain-types/factories/contracts/testing/UniswapV2SetupLib.sol/UniswapV2SetupLib__factory.ts create mode 100644 typechain-types/factories/contracts/testing/UniswapV2SetupLib.sol/index.ts create mode 100644 typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/INonfungiblePositionManager__factory.ts create mode 100644 typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Factory__factory.ts create mode 100644 typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Pool__factory.ts create mode 100644 typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/UniswapV3SetupLib__factory.ts create mode 100644 typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/index.ts create mode 100644 typechain-types/factories/contracts/testing/ZetaSetup.t.sol/ZetaSetup__factory.ts create mode 100644 typechain-types/factories/contracts/testing/ZetaSetup.t.sol/index.ts create mode 100644 typechain-types/factories/contracts/testing/index.ts create mode 100644 typechain-types/factories/contracts/testing/mock/ERC20Mock__factory.ts create mode 100644 typechain-types/factories/contracts/testing/mock/ZRC20Mock.sol/IZRC20Mock__factory.ts create mode 100644 typechain-types/factories/contracts/testing/mock/ZRC20Mock.sol/ZRC20Mock__factory.ts create mode 100644 typechain-types/factories/contracts/testing/mock/ZRC20Mock.sol/index.ts create mode 100644 typechain-types/factories/contracts/testing/mock/index.ts create mode 100644 typechain-types/factories/contracts/testing/mockGateway/NodeLogicMock__factory.ts create mode 100644 typechain-types/factories/contracts/testing/mockGateway/WrapGatewayEVM__factory.ts create mode 100644 typechain-types/factories/contracts/testing/mockGateway/WrapGatewayZEVM__factory.ts create mode 100644 typechain-types/factories/contracts/testing/mockGateway/index.ts create mode 100644 typechain-types/factories/forge-std/StdAssertions__factory.ts create mode 100644 typechain-types/factories/forge-std/StdError.sol/StdError__factory.ts create mode 100644 typechain-types/factories/forge-std/StdError.sol/index.ts create mode 100644 typechain-types/factories/forge-std/StdInvariant__factory.ts create mode 100644 typechain-types/factories/forge-std/StdStorage.sol/StdStorageSafe__factory.ts create mode 100644 typechain-types/factories/forge-std/StdStorage.sol/index.ts create mode 100644 typechain-types/factories/forge-std/Test__factory.ts create mode 100644 typechain-types/factories/forge-std/Vm.sol/VmSafe__factory.ts create mode 100644 typechain-types/factories/forge-std/Vm.sol/Vm__factory.ts create mode 100644 typechain-types/factories/forge-std/Vm.sol/index.ts create mode 100644 typechain-types/factories/forge-std/index.ts create mode 100644 typechain-types/factories/forge-std/interfaces/IMulticall3__factory.ts create mode 100644 typechain-types/factories/forge-std/interfaces/index.ts create mode 100644 typechain-types/factories/index.ts create mode 100644 typechain-types/forge-std/StdAssertions.ts create mode 100644 typechain-types/forge-std/StdError.sol/StdError.ts create mode 100644 typechain-types/forge-std/StdError.sol/index.ts create mode 100644 typechain-types/forge-std/StdInvariant.ts create mode 100644 typechain-types/forge-std/StdStorage.sol/StdStorageSafe.ts create mode 100644 typechain-types/forge-std/StdStorage.sol/index.ts create mode 100644 typechain-types/forge-std/Test.ts create mode 100644 typechain-types/forge-std/Vm.sol/Vm.ts create mode 100644 typechain-types/forge-std/Vm.sol/VmSafe.ts create mode 100644 typechain-types/forge-std/Vm.sol/index.ts create mode 100644 typechain-types/forge-std/index.ts create mode 100644 typechain-types/forge-std/interfaces/IMulticall3.ts create mode 100644 typechain-types/forge-std/interfaces/index.ts create mode 100644 typechain-types/hardhat.d.ts create mode 100644 typechain-types/index.ts diff --git a/lib/forge-std b/lib/forge-std new file mode 160000 index 00000000..77041d2c --- /dev/null +++ b/lib/forge-std @@ -0,0 +1 @@ +Subproject commit 77041d2ce690e692d6e03cc812b57d1ddaa4d505 diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.ts b/typechain-types/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.ts new file mode 100644 index 00000000..5408b5bc --- /dev/null +++ b/typechain-types/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.ts @@ -0,0 +1,359 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../common"; + +export interface AccessControlUpgradeableInterface extends Interface { + getFunction( + nameOrSignature: + | "DEFAULT_ADMIN_ROLE" + | "getRoleAdmin" + | "grantRole" + | "hasRole" + | "renounceRole" + | "revokeRole" + | "supportsInterface" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "Initialized" + | "RoleAdminChanged" + | "RoleGranted" + | "RoleRevoked" + ): EventFragment; + + encodeFunctionData( + functionFragment: "DEFAULT_ADMIN_ROLE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getRoleAdmin", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "grantRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "hasRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "renounceRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "revokeRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "DEFAULT_ADMIN_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getRoleAdmin", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "renounceRole", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "supportsInterface", + data: BytesLike + ): Result; +} + +export namespace InitializedEvent { + export type InputTuple = [version: BigNumberish]; + export type OutputTuple = [version: bigint]; + export interface OutputObject { + version: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleAdminChangedEvent { + export type InputTuple = [ + role: BytesLike, + previousAdminRole: BytesLike, + newAdminRole: BytesLike + ]; + export type OutputTuple = [ + role: string, + previousAdminRole: string, + newAdminRole: string + ]; + export interface OutputObject { + role: string; + previousAdminRole: string; + newAdminRole: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleGrantedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleRevokedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface AccessControlUpgradeable extends BaseContract { + connect(runner?: ContractRunner | null): AccessControlUpgradeable; + waitForDeployment(): Promise; + + interface: AccessControlUpgradeableInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + DEFAULT_ADMIN_ROLE: TypedContractMethod<[], [string], "view">; + + getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">; + + grantRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + hasRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + + renounceRole: TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + + revokeRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + supportsInterface: TypedContractMethod< + [interfaceId: BytesLike], + [boolean], + "view" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "DEFAULT_ADMIN_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "getRoleAdmin" + ): TypedContractMethod<[role: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "grantRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "hasRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + getFunction( + nameOrSignature: "renounceRole" + ): TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "revokeRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "supportsInterface" + ): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; + + getEvent( + key: "Initialized" + ): TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + getEvent( + key: "RoleAdminChanged" + ): TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + getEvent( + key: "RoleGranted" + ): TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + getEvent( + key: "RoleRevoked" + ): TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + + filters: { + "Initialized(uint64)": TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + Initialized: TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + + "RoleAdminChanged(bytes32,bytes32,bytes32)": TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + RoleAdminChanged: TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + + "RoleGranted(bytes32,address,address)": TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + RoleGranted: TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + + "RoleRevoked(bytes32,address,address)": TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + RoleRevoked: TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/access/index.ts b/typechain-types/@openzeppelin/contracts-upgradeable/access/index.ts new file mode 100644 index 00000000..6fe0d909 --- /dev/null +++ b/typechain-types/@openzeppelin/contracts-upgradeable/access/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { AccessControlUpgradeable } from "./AccessControlUpgradeable"; diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/index.ts b/typechain-types/@openzeppelin/contracts-upgradeable/index.ts new file mode 100644 index 00000000..cb37af6a --- /dev/null +++ b/typechain-types/@openzeppelin/contracts-upgradeable/index.ts @@ -0,0 +1,9 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as access from "./access"; +export type { access }; +import type * as proxy from "./proxy"; +export type { proxy }; +import type * as utils from "./utils"; +export type { utils }; diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/proxy/index.ts b/typechain-types/@openzeppelin/contracts-upgradeable/proxy/index.ts new file mode 100644 index 00000000..74cdc5fa --- /dev/null +++ b/typechain-types/@openzeppelin/contracts-upgradeable/proxy/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as utils from "./utils"; +export type { utils }; diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.ts b/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.ts new file mode 100644 index 00000000..b449ea2c --- /dev/null +++ b/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.ts @@ -0,0 +1,105 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + FunctionFragment, + Interface, + EventFragment, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, +} from "../../../../common"; + +export interface InitializableInterface extends Interface { + getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; +} + +export namespace InitializedEvent { + export type InputTuple = [version: BigNumberish]; + export type OutputTuple = [version: bigint]; + export interface OutputObject { + version: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface Initializable extends BaseContract { + connect(runner?: ContractRunner | null): Initializable; + waitForDeployment(): Promise; + + interface: InitializableInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + getEvent( + key: "Initialized" + ): TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + + filters: { + "Initialized(uint64)": TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + Initialized: TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.ts b/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.ts new file mode 100644 index 00000000..fd0c2543 --- /dev/null +++ b/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.ts @@ -0,0 +1,196 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../../common"; + +export interface UUPSUpgradeableInterface extends Interface { + getFunction( + nameOrSignature: + | "UPGRADE_INTERFACE_VERSION" + | "proxiableUUID" + | "upgradeToAndCall" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Initialized" | "Upgraded"): EventFragment; + + encodeFunctionData( + functionFragment: "UPGRADE_INTERFACE_VERSION", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "proxiableUUID", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "upgradeToAndCall", + values: [AddressLike, BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "UPGRADE_INTERFACE_VERSION", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "proxiableUUID", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "upgradeToAndCall", + data: BytesLike + ): Result; +} + +export namespace InitializedEvent { + export type InputTuple = [version: BigNumberish]; + export type OutputTuple = [version: bigint]; + export interface OutputObject { + version: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpgradedEvent { + export type InputTuple = [implementation: AddressLike]; + export type OutputTuple = [implementation: string]; + export interface OutputObject { + implementation: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface UUPSUpgradeable extends BaseContract { + connect(runner?: ContractRunner | null): UUPSUpgradeable; + waitForDeployment(): Promise; + + interface: UUPSUpgradeableInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + UPGRADE_INTERFACE_VERSION: TypedContractMethod<[], [string], "view">; + + proxiableUUID: TypedContractMethod<[], [string], "view">; + + upgradeToAndCall: TypedContractMethod< + [newImplementation: AddressLike, data: BytesLike], + [void], + "payable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "UPGRADE_INTERFACE_VERSION" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "proxiableUUID" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "upgradeToAndCall" + ): TypedContractMethod< + [newImplementation: AddressLike, data: BytesLike], + [void], + "payable" + >; + + getEvent( + key: "Initialized" + ): TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + getEvent( + key: "Upgraded" + ): TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + + filters: { + "Initialized(uint64)": TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + Initialized: TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + + "Upgraded(address)": TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + Upgraded: TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/index.ts b/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/index.ts new file mode 100644 index 00000000..f23837ba --- /dev/null +++ b/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { Initializable } from "./Initializable"; +export type { UUPSUpgradeable } from "./UUPSUpgradeable"; diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.ts b/typechain-types/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.ts new file mode 100644 index 00000000..a6af1bed --- /dev/null +++ b/typechain-types/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.ts @@ -0,0 +1,105 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + FunctionFragment, + Interface, + EventFragment, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, +} from "../../../common"; + +export interface ContextUpgradeableInterface extends Interface { + getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; +} + +export namespace InitializedEvent { + export type InputTuple = [version: BigNumberish]; + export type OutputTuple = [version: bigint]; + export interface OutputObject { + version: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ContextUpgradeable extends BaseContract { + connect(runner?: ContractRunner | null): ContextUpgradeable; + waitForDeployment(): Promise; + + interface: ContextUpgradeableInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + getEvent( + key: "Initialized" + ): TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + + filters: { + "Initialized(uint64)": TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + Initialized: TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.ts b/typechain-types/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.ts new file mode 100644 index 00000000..4f3ad279 --- /dev/null +++ b/typechain-types/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.ts @@ -0,0 +1,183 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../common"; + +export interface PausableUpgradeableInterface extends Interface { + getFunction(nameOrSignature: "paused"): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: "Initialized" | "Paused" | "Unpaused" + ): EventFragment; + + encodeFunctionData(functionFragment: "paused", values?: undefined): string; + + decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result; +} + +export namespace InitializedEvent { + export type InputTuple = [version: BigNumberish]; + export type OutputTuple = [version: bigint]; + export interface OutputObject { + version: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace PausedEvent { + export type InputTuple = [account: AddressLike]; + export type OutputTuple = [account: string]; + export interface OutputObject { + account: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UnpausedEvent { + export type InputTuple = [account: AddressLike]; + export type OutputTuple = [account: string]; + export interface OutputObject { + account: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface PausableUpgradeable extends BaseContract { + connect(runner?: ContractRunner | null): PausableUpgradeable; + waitForDeployment(): Promise; + + interface: PausableUpgradeableInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + paused: TypedContractMethod<[], [boolean], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "paused" + ): TypedContractMethod<[], [boolean], "view">; + + getEvent( + key: "Initialized" + ): TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + getEvent( + key: "Paused" + ): TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + getEvent( + key: "Unpaused" + ): TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + + filters: { + "Initialized(uint64)": TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + Initialized: TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + + "Paused(address)": TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + Paused: TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + + "Unpaused(address)": TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + Unpaused: TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.ts b/typechain-types/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.ts new file mode 100644 index 00000000..f78ba69e --- /dev/null +++ b/typechain-types/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.ts @@ -0,0 +1,105 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + FunctionFragment, + Interface, + EventFragment, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, +} from "../../../common"; + +export interface ReentrancyGuardUpgradeableInterface extends Interface { + getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; +} + +export namespace InitializedEvent { + export type InputTuple = [version: BigNumberish]; + export type OutputTuple = [version: bigint]; + export interface OutputObject { + version: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ReentrancyGuardUpgradeable extends BaseContract { + connect(runner?: ContractRunner | null): ReentrancyGuardUpgradeable; + waitForDeployment(): Promise; + + interface: ReentrancyGuardUpgradeableInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + getEvent( + key: "Initialized" + ): TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + + filters: { + "Initialized(uint64)": TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + Initialized: TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/utils/index.ts b/typechain-types/@openzeppelin/contracts-upgradeable/utils/index.ts new file mode 100644 index 00000000..c1dd9cf4 --- /dev/null +++ b/typechain-types/@openzeppelin/contracts-upgradeable/utils/index.ts @@ -0,0 +1,8 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as introspection from "./introspection"; +export type { introspection }; +export type { ContextUpgradeable } from "./ContextUpgradeable"; +export type { PausableUpgradeable } from "./PausableUpgradeable"; +export type { ReentrancyGuardUpgradeable } from "./ReentrancyGuardUpgradeable"; diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.ts b/typechain-types/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.ts new file mode 100644 index 00000000..b39c00c6 --- /dev/null +++ b/typechain-types/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.ts @@ -0,0 +1,130 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../../common"; + +export interface ERC165UpgradeableInterface extends Interface { + getFunction(nameOrSignature: "supportsInterface"): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; + + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "supportsInterface", + data: BytesLike + ): Result; +} + +export namespace InitializedEvent { + export type InputTuple = [version: BigNumberish]; + export type OutputTuple = [version: bigint]; + export interface OutputObject { + version: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ERC165Upgradeable extends BaseContract { + connect(runner?: ContractRunner | null): ERC165Upgradeable; + waitForDeployment(): Promise; + + interface: ERC165UpgradeableInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + supportsInterface: TypedContractMethod< + [interfaceId: BytesLike], + [boolean], + "view" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "supportsInterface" + ): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; + + getEvent( + key: "Initialized" + ): TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + + filters: { + "Initialized(uint64)": TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + Initialized: TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/utils/introspection/index.ts b/typechain-types/@openzeppelin/contracts-upgradeable/utils/introspection/index.ts new file mode 100644 index 00000000..dd989106 --- /dev/null +++ b/typechain-types/@openzeppelin/contracts-upgradeable/utils/introspection/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { ERC165Upgradeable } from "./ERC165Upgradeable"; diff --git a/typechain-types/@openzeppelin/contracts/access/IAccessControl.ts b/typechain-types/@openzeppelin/contracts/access/IAccessControl.ts new file mode 100644 index 00000000..1f0c8cfb --- /dev/null +++ b/typechain-types/@openzeppelin/contracts/access/IAccessControl.ts @@ -0,0 +1,292 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../common"; + +export interface IAccessControlInterface extends Interface { + getFunction( + nameOrSignature: + | "getRoleAdmin" + | "grantRole" + | "hasRole" + | "renounceRole" + | "revokeRole" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: "RoleAdminChanged" | "RoleGranted" | "RoleRevoked" + ): EventFragment; + + encodeFunctionData( + functionFragment: "getRoleAdmin", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "grantRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "hasRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "renounceRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "revokeRole", + values: [BytesLike, AddressLike] + ): string; + + decodeFunctionResult( + functionFragment: "getRoleAdmin", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "renounceRole", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result; +} + +export namespace RoleAdminChangedEvent { + export type InputTuple = [ + role: BytesLike, + previousAdminRole: BytesLike, + newAdminRole: BytesLike + ]; + export type OutputTuple = [ + role: string, + previousAdminRole: string, + newAdminRole: string + ]; + export interface OutputObject { + role: string; + previousAdminRole: string; + newAdminRole: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleGrantedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleRevokedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IAccessControl extends BaseContract { + connect(runner?: ContractRunner | null): IAccessControl; + waitForDeployment(): Promise; + + interface: IAccessControlInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">; + + grantRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + hasRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + + renounceRole: TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + + revokeRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "getRoleAdmin" + ): TypedContractMethod<[role: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "grantRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "hasRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + getFunction( + nameOrSignature: "renounceRole" + ): TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "revokeRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + getEvent( + key: "RoleAdminChanged" + ): TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + getEvent( + key: "RoleGranted" + ): TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + getEvent( + key: "RoleRevoked" + ): TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + + filters: { + "RoleAdminChanged(bytes32,bytes32,bytes32)": TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + RoleAdminChanged: TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + + "RoleGranted(bytes32,address,address)": TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + RoleGranted: TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + + "RoleRevoked(bytes32,address,address)": TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + RoleRevoked: TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@openzeppelin/contracts/access/index.ts b/typechain-types/@openzeppelin/contracts/access/index.ts new file mode 100644 index 00000000..9ad8b51e --- /dev/null +++ b/typechain-types/@openzeppelin/contracts/access/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IAccessControl } from "./IAccessControl"; diff --git a/typechain-types/@openzeppelin/contracts/index.ts b/typechain-types/@openzeppelin/contracts/index.ts new file mode 100644 index 00000000..b570e960 --- /dev/null +++ b/typechain-types/@openzeppelin/contracts/index.ts @@ -0,0 +1,13 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as access from "./access"; +export type { access }; +import type * as interfaces from "./interfaces"; +export type { interfaces }; +import type * as proxy from "./proxy"; +export type { proxy }; +import type * as token from "./token"; +export type { token }; +import type * as utils from "./utils"; +export type { utils }; diff --git a/typechain-types/@openzeppelin/contracts/interfaces/IERC1363.ts b/typechain-types/@openzeppelin/contracts/interfaces/IERC1363.ts new file mode 100644 index 00000000..9f620e7b --- /dev/null +++ b/typechain-types/@openzeppelin/contracts/interfaces/IERC1363.ts @@ -0,0 +1,412 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../common"; + +export interface IERC1363Interface extends Interface { + getFunction( + nameOrSignature: + | "allowance" + | "approve" + | "approveAndCall(address,uint256)" + | "approveAndCall(address,uint256,bytes)" + | "balanceOf" + | "supportsInterface" + | "totalSupply" + | "transfer" + | "transferAndCall(address,uint256)" + | "transferAndCall(address,uint256,bytes)" + | "transferFrom" + | "transferFromAndCall(address,address,uint256,bytes)" + | "transferFromAndCall(address,address,uint256)" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; + + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "approveAndCall(address,uint256)", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "approveAndCall(address,uint256,bytes)", + values: [AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferAndCall(address,uint256)", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferAndCall(address,uint256,bytes)", + values: [AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFromAndCall(address,address,uint256,bytes)", + values: [AddressLike, AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "transferFromAndCall(address,address,uint256)", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "approveAndCall(address,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "approveAndCall(address,uint256,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "supportsInterface", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferAndCall(address,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferAndCall(address,uint256,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferFromAndCall(address,address,uint256,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferFromAndCall(address,address,uint256)", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IERC1363 extends BaseContract { + connect(runner?: ContractRunner | null): IERC1363; + waitForDeployment(): Promise; + + interface: IERC1363Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + "approveAndCall(address,uint256)": TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + "approveAndCall(address,uint256,bytes)": TypedContractMethod< + [spender: AddressLike, value: BigNumberish, data: BytesLike], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + supportsInterface: TypedContractMethod< + [interfaceId: BytesLike], + [boolean], + "view" + >; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + "transferAndCall(address,uint256)": TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + "transferAndCall(address,uint256,bytes)": TypedContractMethod< + [to: AddressLike, value: BigNumberish, data: BytesLike], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + "transferFromAndCall(address,address,uint256,bytes)": TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish, data: BytesLike], + [boolean], + "nonpayable" + >; + + "transferFromAndCall(address,address,uint256)": TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "approveAndCall(address,uint256)" + ): TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "approveAndCall(address,uint256,bytes)" + ): TypedContractMethod< + [spender: AddressLike, value: BigNumberish, data: BytesLike], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "supportsInterface" + ): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferAndCall(address,uint256)" + ): TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferAndCall(address,uint256,bytes)" + ): TypedContractMethod< + [to: AddressLike, value: BigNumberish, data: BytesLike], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFromAndCall(address,address,uint256,bytes)" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish, data: BytesLike], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFromAndCall(address,address,uint256)" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@openzeppelin/contracts/interfaces/IERC1967.ts b/typechain-types/@openzeppelin/contracts/interfaces/IERC1967.ts new file mode 100644 index 00000000..4a317bdb --- /dev/null +++ b/typechain-types/@openzeppelin/contracts/interfaces/IERC1967.ts @@ -0,0 +1,168 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, +} from "../../../common"; + +export interface IERC1967Interface extends Interface { + getEvent( + nameOrSignatureOrTopic: "AdminChanged" | "BeaconUpgraded" | "Upgraded" + ): EventFragment; +} + +export namespace AdminChangedEvent { + export type InputTuple = [previousAdmin: AddressLike, newAdmin: AddressLike]; + export type OutputTuple = [previousAdmin: string, newAdmin: string]; + export interface OutputObject { + previousAdmin: string; + newAdmin: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace BeaconUpgradedEvent { + export type InputTuple = [beacon: AddressLike]; + export type OutputTuple = [beacon: string]; + export interface OutputObject { + beacon: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpgradedEvent { + export type InputTuple = [implementation: AddressLike]; + export type OutputTuple = [implementation: string]; + export interface OutputObject { + implementation: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IERC1967 extends BaseContract { + connect(runner?: ContractRunner | null): IERC1967; + waitForDeployment(): Promise; + + interface: IERC1967Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + getEvent( + key: "AdminChanged" + ): TypedContractEvent< + AdminChangedEvent.InputTuple, + AdminChangedEvent.OutputTuple, + AdminChangedEvent.OutputObject + >; + getEvent( + key: "BeaconUpgraded" + ): TypedContractEvent< + BeaconUpgradedEvent.InputTuple, + BeaconUpgradedEvent.OutputTuple, + BeaconUpgradedEvent.OutputObject + >; + getEvent( + key: "Upgraded" + ): TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + + filters: { + "AdminChanged(address,address)": TypedContractEvent< + AdminChangedEvent.InputTuple, + AdminChangedEvent.OutputTuple, + AdminChangedEvent.OutputObject + >; + AdminChanged: TypedContractEvent< + AdminChangedEvent.InputTuple, + AdminChangedEvent.OutputTuple, + AdminChangedEvent.OutputObject + >; + + "BeaconUpgraded(address)": TypedContractEvent< + BeaconUpgradedEvent.InputTuple, + BeaconUpgradedEvent.OutputTuple, + BeaconUpgradedEvent.OutputObject + >; + BeaconUpgraded: TypedContractEvent< + BeaconUpgradedEvent.InputTuple, + BeaconUpgradedEvent.OutputTuple, + BeaconUpgradedEvent.OutputObject + >; + + "Upgraded(address)": TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + Upgraded: TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.ts b/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.ts new file mode 100644 index 00000000..f822039b --- /dev/null +++ b/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.ts @@ -0,0 +1,90 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../../../common"; + +export interface IERC1822ProxiableInterface extends Interface { + getFunction(nameOrSignature: "proxiableUUID"): FunctionFragment; + + encodeFunctionData( + functionFragment: "proxiableUUID", + values?: undefined + ): string; + + decodeFunctionResult( + functionFragment: "proxiableUUID", + data: BytesLike + ): Result; +} + +export interface IERC1822Proxiable extends BaseContract { + connect(runner?: ContractRunner | null): IERC1822Proxiable; + waitForDeployment(): Promise; + + interface: IERC1822ProxiableInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + proxiableUUID: TypedContractMethod<[], [string], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "proxiableUUID" + ): TypedContractMethod<[], [string], "view">; + + filters: {}; +} diff --git a/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.ts b/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.ts new file mode 100644 index 00000000..daec45bb --- /dev/null +++ b/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IERC1822Proxiable } from "./IERC1822Proxiable"; diff --git a/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.ts b/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.ts new file mode 100644 index 00000000..959e42d8 --- /dev/null +++ b/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../../../../common"; + +export interface IERC1155ErrorsInterface extends Interface {} + +export interface IERC1155Errors extends BaseContract { + connect(runner?: ContractRunner | null): IERC1155Errors; + waitForDeployment(): Promise; + + interface: IERC1155ErrorsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.ts b/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.ts new file mode 100644 index 00000000..04699221 --- /dev/null +++ b/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../../../../common"; + +export interface IERC20ErrorsInterface extends Interface {} + +export interface IERC20Errors extends BaseContract { + connect(runner?: ContractRunner | null): IERC20Errors; + waitForDeployment(): Promise; + + interface: IERC20ErrorsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.ts b/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.ts new file mode 100644 index 00000000..39b0d2b5 --- /dev/null +++ b/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../../../../common"; + +export interface IERC721ErrorsInterface extends Interface {} + +export interface IERC721Errors extends BaseContract { + connect(runner?: ContractRunner | null): IERC721Errors; + waitForDeployment(): Promise; + + interface: IERC721ErrorsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts b/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts new file mode 100644 index 00000000..9415fdf5 --- /dev/null +++ b/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IERC1155Errors } from "./IERC1155Errors"; +export type { IERC20Errors } from "./IERC20Errors"; +export type { IERC721Errors } from "./IERC721Errors"; diff --git a/typechain-types/@openzeppelin/contracts/interfaces/index.ts b/typechain-types/@openzeppelin/contracts/interfaces/index.ts new file mode 100644 index 00000000..110573ea --- /dev/null +++ b/typechain-types/@openzeppelin/contracts/interfaces/index.ts @@ -0,0 +1,9 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as draftIerc1822Sol from "./draft-IERC1822.sol"; +export type { draftIerc1822Sol }; +import type * as draftIerc6093Sol from "./draft-IERC6093.sol"; +export type { draftIerc6093Sol }; +export type { IERC1363 } from "./IERC1363"; +export type { IERC1967 } from "./IERC1967"; diff --git a/typechain-types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.ts b/typechain-types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.ts new file mode 100644 index 00000000..9d43c748 --- /dev/null +++ b/typechain-types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.ts @@ -0,0 +1,105 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, +} from "../../../../common"; + +export interface ERC1967ProxyInterface extends Interface { + getEvent(nameOrSignatureOrTopic: "Upgraded"): EventFragment; +} + +export namespace UpgradedEvent { + export type InputTuple = [implementation: AddressLike]; + export type OutputTuple = [implementation: string]; + export interface OutputObject { + implementation: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ERC1967Proxy extends BaseContract { + connect(runner?: ContractRunner | null): ERC1967Proxy; + waitForDeployment(): Promise; + + interface: ERC1967ProxyInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + getEvent( + key: "Upgraded" + ): TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + + filters: { + "Upgraded(address)": TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + Upgraded: TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.ts b/typechain-types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.ts new file mode 100644 index 00000000..cba1ba06 --- /dev/null +++ b/typechain-types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../../../../common"; + +export interface ERC1967UtilsInterface extends Interface {} + +export interface ERC1967Utils extends BaseContract { + connect(runner?: ContractRunner | null): ERC1967Utils; + waitForDeployment(): Promise; + + interface: ERC1967UtilsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/typechain-types/@openzeppelin/contracts/proxy/ERC1967/index.ts b/typechain-types/@openzeppelin/contracts/proxy/ERC1967/index.ts new file mode 100644 index 00000000..1e96104c --- /dev/null +++ b/typechain-types/@openzeppelin/contracts/proxy/ERC1967/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { ERC1967Proxy } from "./ERC1967Proxy"; +export type { ERC1967Utils } from "./ERC1967Utils"; diff --git a/typechain-types/@openzeppelin/contracts/proxy/Proxy.ts b/typechain-types/@openzeppelin/contracts/proxy/Proxy.ts new file mode 100644 index 00000000..1cff7a06 --- /dev/null +++ b/typechain-types/@openzeppelin/contracts/proxy/Proxy.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../../../common"; + +export interface ProxyInterface extends Interface {} + +export interface Proxy extends BaseContract { + connect(runner?: ContractRunner | null): Proxy; + waitForDeployment(): Promise; + + interface: ProxyInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/typechain-types/@openzeppelin/contracts/proxy/beacon/IBeacon.ts b/typechain-types/@openzeppelin/contracts/proxy/beacon/IBeacon.ts new file mode 100644 index 00000000..27a21e39 --- /dev/null +++ b/typechain-types/@openzeppelin/contracts/proxy/beacon/IBeacon.ts @@ -0,0 +1,90 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../../../common"; + +export interface IBeaconInterface extends Interface { + getFunction(nameOrSignature: "implementation"): FunctionFragment; + + encodeFunctionData( + functionFragment: "implementation", + values?: undefined + ): string; + + decodeFunctionResult( + functionFragment: "implementation", + data: BytesLike + ): Result; +} + +export interface IBeacon extends BaseContract { + connect(runner?: ContractRunner | null): IBeacon; + waitForDeployment(): Promise; + + interface: IBeaconInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + implementation: TypedContractMethod<[], [string], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "implementation" + ): TypedContractMethod<[], [string], "view">; + + filters: {}; +} diff --git a/typechain-types/@openzeppelin/contracts/proxy/beacon/index.ts b/typechain-types/@openzeppelin/contracts/proxy/beacon/index.ts new file mode 100644 index 00000000..9224b1ea --- /dev/null +++ b/typechain-types/@openzeppelin/contracts/proxy/beacon/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IBeacon } from "./IBeacon"; diff --git a/typechain-types/@openzeppelin/contracts/proxy/index.ts b/typechain-types/@openzeppelin/contracts/proxy/index.ts new file mode 100644 index 00000000..a6b7130e --- /dev/null +++ b/typechain-types/@openzeppelin/contracts/proxy/index.ts @@ -0,0 +1,8 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as erc1967 from "./ERC1967"; +export type { erc1967 }; +import type * as beacon from "./beacon"; +export type { beacon }; +export type { Proxy } from "./Proxy"; diff --git a/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.ts b/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.ts new file mode 100644 index 00000000..46736897 --- /dev/null +++ b/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.ts @@ -0,0 +1,286 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../../common"; + +export interface ERC20Interface extends Interface { + getFunction( + nameOrSignature: + | "allowance" + | "approve" + | "balanceOf" + | "decimals" + | "name" + | "symbol" + | "totalSupply" + | "transfer" + | "transferFrom" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; + + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ERC20 extends BaseContract { + connect(runner?: ContractRunner | null): ERC20; + waitForDeployment(): Promise; + + interface: ERC20Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + decimals: TypedContractMethod<[], [bigint], "view">; + + name: TypedContractMethod<[], [string], "view">; + + symbol: TypedContractMethod<[], [string], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "decimals" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@openzeppelin/contracts/token/ERC20/IERC20.ts b/typechain-types/@openzeppelin/contracts/token/ERC20/IERC20.ts new file mode 100644 index 00000000..d800ff34 --- /dev/null +++ b/typechain-types/@openzeppelin/contracts/token/ERC20/IERC20.ts @@ -0,0 +1,262 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../../common"; + +export interface IERC20Interface extends Interface { + getFunction( + nameOrSignature: + | "allowance" + | "approve" + | "balanceOf" + | "totalSupply" + | "transfer" + | "transferFrom" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; + + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IERC20 extends BaseContract { + connect(runner?: ContractRunner | null): IERC20; + waitForDeployment(): Promise; + + interface: IERC20Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.ts b/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.ts new file mode 100644 index 00000000..6b509353 --- /dev/null +++ b/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.ts @@ -0,0 +1,286 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../../../common"; + +export interface IERC20MetadataInterface extends Interface { + getFunction( + nameOrSignature: + | "allowance" + | "approve" + | "balanceOf" + | "decimals" + | "name" + | "symbol" + | "totalSupply" + | "transfer" + | "transferFrom" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; + + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IERC20Metadata extends BaseContract { + connect(runner?: ContractRunner | null): IERC20Metadata; + waitForDeployment(): Promise; + + interface: IERC20MetadataInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + decimals: TypedContractMethod<[], [bigint], "view">; + + name: TypedContractMethod<[], [string], "view">; + + symbol: TypedContractMethod<[], [string], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "decimals" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.ts b/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.ts new file mode 100644 index 00000000..6044cdef --- /dev/null +++ b/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IERC20Metadata } from "./IERC20Metadata"; diff --git a/typechain-types/@openzeppelin/contracts/token/ERC20/index.ts b/typechain-types/@openzeppelin/contracts/token/ERC20/index.ts new file mode 100644 index 00000000..588dd9bf --- /dev/null +++ b/typechain-types/@openzeppelin/contracts/token/ERC20/index.ts @@ -0,0 +1,9 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as extensions from "./extensions"; +export type { extensions }; +import type * as utils from "./utils"; +export type { utils }; +export type { ERC20 } from "./ERC20"; +export type { IERC20 } from "./IERC20"; diff --git a/typechain-types/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.ts b/typechain-types/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.ts new file mode 100644 index 00000000..90d8f8c8 --- /dev/null +++ b/typechain-types/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../../../../../common"; + +export interface SafeERC20Interface extends Interface {} + +export interface SafeERC20 extends BaseContract { + connect(runner?: ContractRunner | null): SafeERC20; + waitForDeployment(): Promise; + + interface: SafeERC20Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/typechain-types/@openzeppelin/contracts/token/ERC20/utils/index.ts b/typechain-types/@openzeppelin/contracts/token/ERC20/utils/index.ts new file mode 100644 index 00000000..915f5b87 --- /dev/null +++ b/typechain-types/@openzeppelin/contracts/token/ERC20/utils/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { SafeERC20 } from "./SafeERC20"; diff --git a/typechain-types/@openzeppelin/contracts/token/index.ts b/typechain-types/@openzeppelin/contracts/token/index.ts new file mode 100644 index 00000000..5c4062a9 --- /dev/null +++ b/typechain-types/@openzeppelin/contracts/token/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as erc20 from "./ERC20"; +export type { erc20 }; diff --git a/typechain-types/@openzeppelin/contracts/utils/Address.ts b/typechain-types/@openzeppelin/contracts/utils/Address.ts new file mode 100644 index 00000000..eaaadeb4 --- /dev/null +++ b/typechain-types/@openzeppelin/contracts/utils/Address.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../../../common"; + +export interface AddressInterface extends Interface {} + +export interface Address extends BaseContract { + connect(runner?: ContractRunner | null): Address; + waitForDeployment(): Promise; + + interface: AddressInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/typechain-types/@openzeppelin/contracts/utils/Errors.ts b/typechain-types/@openzeppelin/contracts/utils/Errors.ts new file mode 100644 index 00000000..961498f5 --- /dev/null +++ b/typechain-types/@openzeppelin/contracts/utils/Errors.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../../../common"; + +export interface ErrorsInterface extends Interface {} + +export interface Errors extends BaseContract { + connect(runner?: ContractRunner | null): Errors; + waitForDeployment(): Promise; + + interface: ErrorsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/typechain-types/@openzeppelin/contracts/utils/index.ts b/typechain-types/@openzeppelin/contracts/utils/index.ts new file mode 100644 index 00000000..2787cda6 --- /dev/null +++ b/typechain-types/@openzeppelin/contracts/utils/index.ts @@ -0,0 +1,7 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as introspection from "./introspection"; +export type { introspection }; +export type { Address } from "./Address"; +export type { Errors } from "./Errors"; diff --git a/typechain-types/@openzeppelin/contracts/utils/introspection/IERC165.ts b/typechain-types/@openzeppelin/contracts/utils/introspection/IERC165.ts new file mode 100644 index 00000000..c943112c --- /dev/null +++ b/typechain-types/@openzeppelin/contracts/utils/introspection/IERC165.ts @@ -0,0 +1,94 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../../../common"; + +export interface IERC165Interface extends Interface { + getFunction(nameOrSignature: "supportsInterface"): FunctionFragment; + + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "supportsInterface", + data: BytesLike + ): Result; +} + +export interface IERC165 extends BaseContract { + connect(runner?: ContractRunner | null): IERC165; + waitForDeployment(): Promise; + + interface: IERC165Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + supportsInterface: TypedContractMethod< + [interfaceId: BytesLike], + [boolean], + "view" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "supportsInterface" + ): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; + + filters: {}; +} diff --git a/typechain-types/@openzeppelin/contracts/utils/introspection/index.ts b/typechain-types/@openzeppelin/contracts/utils/introspection/index.ts new file mode 100644 index 00000000..3fcca5c2 --- /dev/null +++ b/typechain-types/@openzeppelin/contracts/utils/introspection/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IERC165 } from "./IERC165"; diff --git a/typechain-types/@openzeppelin/index.ts b/typechain-types/@openzeppelin/index.ts new file mode 100644 index 00000000..f34b8770 --- /dev/null +++ b/typechain-types/@openzeppelin/index.ts @@ -0,0 +1,7 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as contracts from "./contracts"; +export type { contracts }; +import type * as contractsUpgradeable from "./contracts-upgradeable"; +export type { contractsUpgradeable }; diff --git a/typechain-types/@uniswap/index.ts b/typechain-types/@uniswap/index.ts new file mode 100644 index 00000000..7a53629e --- /dev/null +++ b/typechain-types/@uniswap/index.ts @@ -0,0 +1,11 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as v2Core from "./v2-core"; +export type { v2Core }; +import type * as v2Periphery from "./v2-periphery"; +export type { v2Periphery }; +import type * as v3Core from "./v3-core"; +export type { v3Core }; +import type * as v3Periphery from "./v3-periphery"; +export type { v3Periphery }; diff --git a/typechain-types/@uniswap/v2-core/contracts/UniswapV2ERC20.ts b/typechain-types/@uniswap/v2-core/contracts/UniswapV2ERC20.ts new file mode 100644 index 00000000..0b95ec20 --- /dev/null +++ b/typechain-types/@uniswap/v2-core/contracts/UniswapV2ERC20.ts @@ -0,0 +1,365 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../common"; + +export interface UniswapV2ERC20Interface extends Interface { + getFunction( + nameOrSignature: + | "DOMAIN_SEPARATOR" + | "PERMIT_TYPEHASH" + | "allowance" + | "approve" + | "balanceOf" + | "decimals" + | "name" + | "nonces" + | "permit" + | "symbol" + | "totalSupply" + | "transfer" + | "transferFrom" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; + + encodeFunctionData( + functionFragment: "DOMAIN_SEPARATOR", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "PERMIT_TYPEHASH", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "nonces", values: [AddressLike]): string; + encodeFunctionData( + functionFragment: "permit", + values: [ + AddressLike, + AddressLike, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult( + functionFragment: "DOMAIN_SEPARATOR", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "PERMIT_TYPEHASH", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "nonces", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "permit", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface UniswapV2ERC20 extends BaseContract { + connect(runner?: ContractRunner | null): UniswapV2ERC20; + waitForDeployment(): Promise; + + interface: UniswapV2ERC20Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + DOMAIN_SEPARATOR: TypedContractMethod<[], [string], "view">; + + PERMIT_TYPEHASH: TypedContractMethod<[], [string], "view">; + + allowance: TypedContractMethod< + [arg0: AddressLike, arg1: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[arg0: AddressLike], [bigint], "view">; + + decimals: TypedContractMethod<[], [bigint], "view">; + + name: TypedContractMethod<[], [string], "view">; + + nonces: TypedContractMethod<[arg0: AddressLike], [bigint], "view">; + + permit: TypedContractMethod< + [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike + ], + [void], + "nonpayable" + >; + + symbol: TypedContractMethod<[], [string], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "DOMAIN_SEPARATOR" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "PERMIT_TYPEHASH" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [arg0: AddressLike, arg1: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[arg0: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "decimals" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "nonces" + ): TypedContractMethod<[arg0: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "permit" + ): TypedContractMethod< + [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@uniswap/v2-core/contracts/UniswapV2Factory.ts b/typechain-types/@uniswap/v2-core/contracts/UniswapV2Factory.ts new file mode 100644 index 00000000..35f6d1e2 --- /dev/null +++ b/typechain-types/@uniswap/v2-core/contracts/UniswapV2Factory.ts @@ -0,0 +1,243 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../common"; + +export interface UniswapV2FactoryInterface extends Interface { + getFunction( + nameOrSignature: + | "allPairs" + | "allPairsLength" + | "createPair" + | "feeTo" + | "feeToSetter" + | "getPair" + | "setFeeTo" + | "setFeeToSetter" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "PairCreated"): EventFragment; + + encodeFunctionData( + functionFragment: "allPairs", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "allPairsLength", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "createPair", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData(functionFragment: "feeTo", values?: undefined): string; + encodeFunctionData( + functionFragment: "feeToSetter", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getPair", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setFeeTo", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setFeeToSetter", + values: [AddressLike] + ): string; + + decodeFunctionResult(functionFragment: "allPairs", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "allPairsLength", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "createPair", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "feeTo", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "feeToSetter", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "getPair", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "setFeeTo", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "setFeeToSetter", + data: BytesLike + ): Result; +} + +export namespace PairCreatedEvent { + export type InputTuple = [ + token0: AddressLike, + token1: AddressLike, + pair: AddressLike, + arg3: BigNumberish + ]; + export type OutputTuple = [ + token0: string, + token1: string, + pair: string, + arg3: bigint + ]; + export interface OutputObject { + token0: string; + token1: string; + pair: string; + arg3: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface UniswapV2Factory extends BaseContract { + connect(runner?: ContractRunner | null): UniswapV2Factory; + waitForDeployment(): Promise; + + interface: UniswapV2FactoryInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allPairs: TypedContractMethod<[arg0: BigNumberish], [string], "view">; + + allPairsLength: TypedContractMethod<[], [bigint], "view">; + + createPair: TypedContractMethod< + [tokenA: AddressLike, tokenB: AddressLike], + [string], + "nonpayable" + >; + + feeTo: TypedContractMethod<[], [string], "view">; + + feeToSetter: TypedContractMethod<[], [string], "view">; + + getPair: TypedContractMethod< + [arg0: AddressLike, arg1: AddressLike], + [string], + "view" + >; + + setFeeTo: TypedContractMethod<[_feeTo: AddressLike], [void], "nonpayable">; + + setFeeToSetter: TypedContractMethod< + [_feeToSetter: AddressLike], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allPairs" + ): TypedContractMethod<[arg0: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "allPairsLength" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "createPair" + ): TypedContractMethod< + [tokenA: AddressLike, tokenB: AddressLike], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "feeTo" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "feeToSetter" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "getPair" + ): TypedContractMethod< + [arg0: AddressLike, arg1: AddressLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "setFeeTo" + ): TypedContractMethod<[_feeTo: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "setFeeToSetter" + ): TypedContractMethod<[_feeToSetter: AddressLike], [void], "nonpayable">; + + getEvent( + key: "PairCreated" + ): TypedContractEvent< + PairCreatedEvent.InputTuple, + PairCreatedEvent.OutputTuple, + PairCreatedEvent.OutputObject + >; + + filters: { + "PairCreated(address,address,address,uint256)": TypedContractEvent< + PairCreatedEvent.InputTuple, + PairCreatedEvent.OutputTuple, + PairCreatedEvent.OutputObject + >; + PairCreated: TypedContractEvent< + PairCreatedEvent.InputTuple, + PairCreatedEvent.OutputTuple, + PairCreatedEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@uniswap/v2-core/contracts/UniswapV2Pair.ts b/typechain-types/@uniswap/v2-core/contracts/UniswapV2Pair.ts new file mode 100644 index 00000000..692de8bc --- /dev/null +++ b/typechain-types/@uniswap/v2-core/contracts/UniswapV2Pair.ts @@ -0,0 +1,728 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../common"; + +export interface UniswapV2PairInterface extends Interface { + getFunction( + nameOrSignature: + | "DOMAIN_SEPARATOR" + | "MINIMUM_LIQUIDITY" + | "PERMIT_TYPEHASH" + | "allowance" + | "approve" + | "balanceOf" + | "burn" + | "decimals" + | "factory" + | "getReserves" + | "initialize" + | "kLast" + | "mint" + | "name" + | "nonces" + | "permit" + | "price0CumulativeLast" + | "price1CumulativeLast" + | "skim" + | "swap" + | "symbol" + | "sync" + | "token0" + | "token1" + | "totalSupply" + | "transfer" + | "transferFrom" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "Approval" + | "Burn" + | "Mint" + | "Swap" + | "Sync" + | "Transfer" + ): EventFragment; + + encodeFunctionData( + functionFragment: "DOMAIN_SEPARATOR", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "MINIMUM_LIQUIDITY", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "PERMIT_TYPEHASH", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "burn", values: [AddressLike]): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData(functionFragment: "factory", values?: undefined): string; + encodeFunctionData( + functionFragment: "getReserves", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "initialize", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData(functionFragment: "kLast", values?: undefined): string; + encodeFunctionData(functionFragment: "mint", values: [AddressLike]): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "nonces", values: [AddressLike]): string; + encodeFunctionData( + functionFragment: "permit", + values: [ + AddressLike, + AddressLike, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "price0CumulativeLast", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "price1CumulativeLast", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "skim", values: [AddressLike]): string; + encodeFunctionData( + functionFragment: "swap", + values: [BigNumberish, BigNumberish, AddressLike, BytesLike] + ): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData(functionFragment: "sync", values?: undefined): string; + encodeFunctionData(functionFragment: "token0", values?: undefined): string; + encodeFunctionData(functionFragment: "token1", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult( + functionFragment: "DOMAIN_SEPARATOR", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "MINIMUM_LIQUIDITY", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "PERMIT_TYPEHASH", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getReserves", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "kLast", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "nonces", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "permit", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "price0CumulativeLast", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "price1CumulativeLast", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "skim", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "swap", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "sync", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "token0", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "token1", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace BurnEvent { + export type InputTuple = [ + sender: AddressLike, + amount0: BigNumberish, + amount1: BigNumberish, + to: AddressLike + ]; + export type OutputTuple = [ + sender: string, + amount0: bigint, + amount1: bigint, + to: string + ]; + export interface OutputObject { + sender: string; + amount0: bigint; + amount1: bigint; + to: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace MintEvent { + export type InputTuple = [ + sender: AddressLike, + amount0: BigNumberish, + amount1: BigNumberish + ]; + export type OutputTuple = [sender: string, amount0: bigint, amount1: bigint]; + export interface OutputObject { + sender: string; + amount0: bigint; + amount1: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace SwapEvent { + export type InputTuple = [ + sender: AddressLike, + amount0In: BigNumberish, + amount1In: BigNumberish, + amount0Out: BigNumberish, + amount1Out: BigNumberish, + to: AddressLike + ]; + export type OutputTuple = [ + sender: string, + amount0In: bigint, + amount1In: bigint, + amount0Out: bigint, + amount1Out: bigint, + to: string + ]; + export interface OutputObject { + sender: string; + amount0In: bigint; + amount1In: bigint; + amount0Out: bigint; + amount1Out: bigint; + to: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace SyncEvent { + export type InputTuple = [reserve0: BigNumberish, reserve1: BigNumberish]; + export type OutputTuple = [reserve0: bigint, reserve1: bigint]; + export interface OutputObject { + reserve0: bigint; + reserve1: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface UniswapV2Pair extends BaseContract { + connect(runner?: ContractRunner | null): UniswapV2Pair; + waitForDeployment(): Promise; + + interface: UniswapV2PairInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + DOMAIN_SEPARATOR: TypedContractMethod<[], [string], "view">; + + MINIMUM_LIQUIDITY: TypedContractMethod<[], [bigint], "view">; + + PERMIT_TYPEHASH: TypedContractMethod<[], [string], "view">; + + allowance: TypedContractMethod< + [arg0: AddressLike, arg1: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[arg0: AddressLike], [bigint], "view">; + + burn: TypedContractMethod< + [to: AddressLike], + [[bigint, bigint] & { amount0: bigint; amount1: bigint }], + "nonpayable" + >; + + decimals: TypedContractMethod<[], [bigint], "view">; + + factory: TypedContractMethod<[], [string], "view">; + + getReserves: TypedContractMethod< + [], + [ + [bigint, bigint, bigint] & { + _reserve0: bigint; + _reserve1: bigint; + _blockTimestampLast: bigint; + } + ], + "view" + >; + + initialize: TypedContractMethod< + [_token0: AddressLike, _token1: AddressLike], + [void], + "nonpayable" + >; + + kLast: TypedContractMethod<[], [bigint], "view">; + + mint: TypedContractMethod<[to: AddressLike], [bigint], "nonpayable">; + + name: TypedContractMethod<[], [string], "view">; + + nonces: TypedContractMethod<[arg0: AddressLike], [bigint], "view">; + + permit: TypedContractMethod< + [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike + ], + [void], + "nonpayable" + >; + + price0CumulativeLast: TypedContractMethod<[], [bigint], "view">; + + price1CumulativeLast: TypedContractMethod<[], [bigint], "view">; + + skim: TypedContractMethod<[to: AddressLike], [void], "nonpayable">; + + swap: TypedContractMethod< + [ + amount0Out: BigNumberish, + amount1Out: BigNumberish, + to: AddressLike, + data: BytesLike + ], + [void], + "nonpayable" + >; + + symbol: TypedContractMethod<[], [string], "view">; + + sync: TypedContractMethod<[], [void], "nonpayable">; + + token0: TypedContractMethod<[], [string], "view">; + + token1: TypedContractMethod<[], [string], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "DOMAIN_SEPARATOR" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "MINIMUM_LIQUIDITY" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "PERMIT_TYPEHASH" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [arg0: AddressLike, arg1: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[arg0: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "burn" + ): TypedContractMethod< + [to: AddressLike], + [[bigint, bigint] & { amount0: bigint; amount1: bigint }], + "nonpayable" + >; + getFunction( + nameOrSignature: "decimals" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "factory" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "getReserves" + ): TypedContractMethod< + [], + [ + [bigint, bigint, bigint] & { + _reserve0: bigint; + _reserve1: bigint; + _blockTimestampLast: bigint; + } + ], + "view" + >; + getFunction( + nameOrSignature: "initialize" + ): TypedContractMethod< + [_token0: AddressLike, _token1: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "kLast" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "mint" + ): TypedContractMethod<[to: AddressLike], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "nonces" + ): TypedContractMethod<[arg0: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "permit" + ): TypedContractMethod< + [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "price0CumulativeLast" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "price1CumulativeLast" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "skim" + ): TypedContractMethod<[to: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "swap" + ): TypedContractMethod< + [ + amount0Out: BigNumberish, + amount1Out: BigNumberish, + to: AddressLike, + data: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "sync" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "token0" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "token1" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Burn" + ): TypedContractEvent< + BurnEvent.InputTuple, + BurnEvent.OutputTuple, + BurnEvent.OutputObject + >; + getEvent( + key: "Mint" + ): TypedContractEvent< + MintEvent.InputTuple, + MintEvent.OutputTuple, + MintEvent.OutputObject + >; + getEvent( + key: "Swap" + ): TypedContractEvent< + SwapEvent.InputTuple, + SwapEvent.OutputTuple, + SwapEvent.OutputObject + >; + getEvent( + key: "Sync" + ): TypedContractEvent< + SyncEvent.InputTuple, + SyncEvent.OutputTuple, + SyncEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Burn(address,uint256,uint256,address)": TypedContractEvent< + BurnEvent.InputTuple, + BurnEvent.OutputTuple, + BurnEvent.OutputObject + >; + Burn: TypedContractEvent< + BurnEvent.InputTuple, + BurnEvent.OutputTuple, + BurnEvent.OutputObject + >; + + "Mint(address,uint256,uint256)": TypedContractEvent< + MintEvent.InputTuple, + MintEvent.OutputTuple, + MintEvent.OutputObject + >; + Mint: TypedContractEvent< + MintEvent.InputTuple, + MintEvent.OutputTuple, + MintEvent.OutputObject + >; + + "Swap(address,uint256,uint256,uint256,uint256,address)": TypedContractEvent< + SwapEvent.InputTuple, + SwapEvent.OutputTuple, + SwapEvent.OutputObject + >; + Swap: TypedContractEvent< + SwapEvent.InputTuple, + SwapEvent.OutputTuple, + SwapEvent.OutputObject + >; + + "Sync(uint112,uint112)": TypedContractEvent< + SyncEvent.InputTuple, + SyncEvent.OutputTuple, + SyncEvent.OutputObject + >; + Sync: TypedContractEvent< + SyncEvent.InputTuple, + SyncEvent.OutputTuple, + SyncEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@uniswap/v2-core/contracts/index.ts b/typechain-types/@uniswap/v2-core/contracts/index.ts new file mode 100644 index 00000000..45757d7b --- /dev/null +++ b/typechain-types/@uniswap/v2-core/contracts/index.ts @@ -0,0 +1,8 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as interfaces from "./interfaces"; +export type { interfaces }; +export type { UniswapV2ERC20 } from "./UniswapV2ERC20"; +export type { UniswapV2Factory } from "./UniswapV2Factory"; +export type { UniswapV2Pair } from "./UniswapV2Pair"; diff --git a/typechain-types/@uniswap/v2-core/contracts/interfaces/IERC20.ts b/typechain-types/@uniswap/v2-core/contracts/interfaces/IERC20.ts new file mode 100644 index 00000000..ef222e7f --- /dev/null +++ b/typechain-types/@uniswap/v2-core/contracts/interfaces/IERC20.ts @@ -0,0 +1,286 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../../common"; + +export interface IERC20Interface extends Interface { + getFunction( + nameOrSignature: + | "allowance" + | "approve" + | "balanceOf" + | "decimals" + | "name" + | "symbol" + | "totalSupply" + | "transfer" + | "transferFrom" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; + + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IERC20 extends BaseContract { + connect(runner?: ContractRunner | null): IERC20; + waitForDeployment(): Promise; + + interface: IERC20Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[owner: AddressLike], [bigint], "view">; + + decimals: TypedContractMethod<[], [bigint], "view">; + + name: TypedContractMethod<[], [string], "view">; + + symbol: TypedContractMethod<[], [string], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[owner: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "decimals" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2Callee.ts b/typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2Callee.ts new file mode 100644 index 00000000..79c1d18e --- /dev/null +++ b/typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2Callee.ts @@ -0,0 +1,110 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../../../common"; + +export interface IUniswapV2CalleeInterface extends Interface { + getFunction(nameOrSignature: "uniswapV2Call"): FunctionFragment; + + encodeFunctionData( + functionFragment: "uniswapV2Call", + values: [AddressLike, BigNumberish, BigNumberish, BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "uniswapV2Call", + data: BytesLike + ): Result; +} + +export interface IUniswapV2Callee extends BaseContract { + connect(runner?: ContractRunner | null): IUniswapV2Callee; + waitForDeployment(): Promise; + + interface: IUniswapV2CalleeInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + uniswapV2Call: TypedContractMethod< + [ + sender: AddressLike, + amount0: BigNumberish, + amount1: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "uniswapV2Call" + ): TypedContractMethod< + [ + sender: AddressLike, + amount0: BigNumberish, + amount1: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + + filters: {}; +} diff --git a/typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2ERC20.ts b/typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2ERC20.ts new file mode 100644 index 00000000..5ba7f82c --- /dev/null +++ b/typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2ERC20.ts @@ -0,0 +1,365 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../../common"; + +export interface IUniswapV2ERC20Interface extends Interface { + getFunction( + nameOrSignature: + | "DOMAIN_SEPARATOR" + | "PERMIT_TYPEHASH" + | "allowance" + | "approve" + | "balanceOf" + | "decimals" + | "name" + | "nonces" + | "permit" + | "symbol" + | "totalSupply" + | "transfer" + | "transferFrom" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; + + encodeFunctionData( + functionFragment: "DOMAIN_SEPARATOR", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "PERMIT_TYPEHASH", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "nonces", values: [AddressLike]): string; + encodeFunctionData( + functionFragment: "permit", + values: [ + AddressLike, + AddressLike, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult( + functionFragment: "DOMAIN_SEPARATOR", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "PERMIT_TYPEHASH", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "nonces", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "permit", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IUniswapV2ERC20 extends BaseContract { + connect(runner?: ContractRunner | null): IUniswapV2ERC20; + waitForDeployment(): Promise; + + interface: IUniswapV2ERC20Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + DOMAIN_SEPARATOR: TypedContractMethod<[], [string], "view">; + + PERMIT_TYPEHASH: TypedContractMethod<[], [string], "view">; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[owner: AddressLike], [bigint], "view">; + + decimals: TypedContractMethod<[], [bigint], "view">; + + name: TypedContractMethod<[], [string], "view">; + + nonces: TypedContractMethod<[owner: AddressLike], [bigint], "view">; + + permit: TypedContractMethod< + [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike + ], + [void], + "nonpayable" + >; + + symbol: TypedContractMethod<[], [string], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "DOMAIN_SEPARATOR" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "PERMIT_TYPEHASH" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[owner: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "decimals" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "nonces" + ): TypedContractMethod<[owner: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "permit" + ): TypedContractMethod< + [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.ts b/typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.ts new file mode 100644 index 00000000..1738b032 --- /dev/null +++ b/typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.ts @@ -0,0 +1,243 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../../common"; + +export interface IUniswapV2FactoryInterface extends Interface { + getFunction( + nameOrSignature: + | "allPairs" + | "allPairsLength" + | "createPair" + | "feeTo" + | "feeToSetter" + | "getPair" + | "setFeeTo" + | "setFeeToSetter" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "PairCreated"): EventFragment; + + encodeFunctionData( + functionFragment: "allPairs", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "allPairsLength", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "createPair", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData(functionFragment: "feeTo", values?: undefined): string; + encodeFunctionData( + functionFragment: "feeToSetter", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getPair", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setFeeTo", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setFeeToSetter", + values: [AddressLike] + ): string; + + decodeFunctionResult(functionFragment: "allPairs", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "allPairsLength", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "createPair", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "feeTo", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "feeToSetter", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "getPair", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "setFeeTo", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "setFeeToSetter", + data: BytesLike + ): Result; +} + +export namespace PairCreatedEvent { + export type InputTuple = [ + token0: AddressLike, + token1: AddressLike, + pair: AddressLike, + arg3: BigNumberish + ]; + export type OutputTuple = [ + token0: string, + token1: string, + pair: string, + arg3: bigint + ]; + export interface OutputObject { + token0: string; + token1: string; + pair: string; + arg3: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IUniswapV2Factory extends BaseContract { + connect(runner?: ContractRunner | null): IUniswapV2Factory; + waitForDeployment(): Promise; + + interface: IUniswapV2FactoryInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allPairs: TypedContractMethod<[arg0: BigNumberish], [string], "view">; + + allPairsLength: TypedContractMethod<[], [bigint], "view">; + + createPair: TypedContractMethod< + [tokenA: AddressLike, tokenB: AddressLike], + [string], + "nonpayable" + >; + + feeTo: TypedContractMethod<[], [string], "view">; + + feeToSetter: TypedContractMethod<[], [string], "view">; + + getPair: TypedContractMethod< + [tokenA: AddressLike, tokenB: AddressLike], + [string], + "view" + >; + + setFeeTo: TypedContractMethod<[arg0: AddressLike], [void], "nonpayable">; + + setFeeToSetter: TypedContractMethod< + [arg0: AddressLike], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allPairs" + ): TypedContractMethod<[arg0: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "allPairsLength" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "createPair" + ): TypedContractMethod< + [tokenA: AddressLike, tokenB: AddressLike], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "feeTo" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "feeToSetter" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "getPair" + ): TypedContractMethod< + [tokenA: AddressLike, tokenB: AddressLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "setFeeTo" + ): TypedContractMethod<[arg0: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "setFeeToSetter" + ): TypedContractMethod<[arg0: AddressLike], [void], "nonpayable">; + + getEvent( + key: "PairCreated" + ): TypedContractEvent< + PairCreatedEvent.InputTuple, + PairCreatedEvent.OutputTuple, + PairCreatedEvent.OutputObject + >; + + filters: { + "PairCreated(address,address,address,uint256)": TypedContractEvent< + PairCreatedEvent.InputTuple, + PairCreatedEvent.OutputTuple, + PairCreatedEvent.OutputObject + >; + PairCreated: TypedContractEvent< + PairCreatedEvent.InputTuple, + PairCreatedEvent.OutputTuple, + PairCreatedEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair.ts b/typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair.ts new file mode 100644 index 00000000..5219c61c --- /dev/null +++ b/typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair.ts @@ -0,0 +1,728 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../../common"; + +export interface IUniswapV2PairInterface extends Interface { + getFunction( + nameOrSignature: + | "DOMAIN_SEPARATOR" + | "MINIMUM_LIQUIDITY" + | "PERMIT_TYPEHASH" + | "allowance" + | "approve" + | "balanceOf" + | "burn" + | "decimals" + | "factory" + | "getReserves" + | "initialize" + | "kLast" + | "mint" + | "name" + | "nonces" + | "permit" + | "price0CumulativeLast" + | "price1CumulativeLast" + | "skim" + | "swap" + | "symbol" + | "sync" + | "token0" + | "token1" + | "totalSupply" + | "transfer" + | "transferFrom" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "Approval" + | "Burn" + | "Mint" + | "Swap" + | "Sync" + | "Transfer" + ): EventFragment; + + encodeFunctionData( + functionFragment: "DOMAIN_SEPARATOR", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "MINIMUM_LIQUIDITY", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "PERMIT_TYPEHASH", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "burn", values: [AddressLike]): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData(functionFragment: "factory", values?: undefined): string; + encodeFunctionData( + functionFragment: "getReserves", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "initialize", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData(functionFragment: "kLast", values?: undefined): string; + encodeFunctionData(functionFragment: "mint", values: [AddressLike]): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "nonces", values: [AddressLike]): string; + encodeFunctionData( + functionFragment: "permit", + values: [ + AddressLike, + AddressLike, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "price0CumulativeLast", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "price1CumulativeLast", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "skim", values: [AddressLike]): string; + encodeFunctionData( + functionFragment: "swap", + values: [BigNumberish, BigNumberish, AddressLike, BytesLike] + ): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData(functionFragment: "sync", values?: undefined): string; + encodeFunctionData(functionFragment: "token0", values?: undefined): string; + encodeFunctionData(functionFragment: "token1", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult( + functionFragment: "DOMAIN_SEPARATOR", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "MINIMUM_LIQUIDITY", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "PERMIT_TYPEHASH", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getReserves", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "kLast", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "nonces", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "permit", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "price0CumulativeLast", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "price1CumulativeLast", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "skim", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "swap", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "sync", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "token0", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "token1", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace BurnEvent { + export type InputTuple = [ + sender: AddressLike, + amount0: BigNumberish, + amount1: BigNumberish, + to: AddressLike + ]; + export type OutputTuple = [ + sender: string, + amount0: bigint, + amount1: bigint, + to: string + ]; + export interface OutputObject { + sender: string; + amount0: bigint; + amount1: bigint; + to: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace MintEvent { + export type InputTuple = [ + sender: AddressLike, + amount0: BigNumberish, + amount1: BigNumberish + ]; + export type OutputTuple = [sender: string, amount0: bigint, amount1: bigint]; + export interface OutputObject { + sender: string; + amount0: bigint; + amount1: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace SwapEvent { + export type InputTuple = [ + sender: AddressLike, + amount0In: BigNumberish, + amount1In: BigNumberish, + amount0Out: BigNumberish, + amount1Out: BigNumberish, + to: AddressLike + ]; + export type OutputTuple = [ + sender: string, + amount0In: bigint, + amount1In: bigint, + amount0Out: bigint, + amount1Out: bigint, + to: string + ]; + export interface OutputObject { + sender: string; + amount0In: bigint; + amount1In: bigint; + amount0Out: bigint; + amount1Out: bigint; + to: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace SyncEvent { + export type InputTuple = [reserve0: BigNumberish, reserve1: BigNumberish]; + export type OutputTuple = [reserve0: bigint, reserve1: bigint]; + export interface OutputObject { + reserve0: bigint; + reserve1: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IUniswapV2Pair extends BaseContract { + connect(runner?: ContractRunner | null): IUniswapV2Pair; + waitForDeployment(): Promise; + + interface: IUniswapV2PairInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + DOMAIN_SEPARATOR: TypedContractMethod<[], [string], "view">; + + MINIMUM_LIQUIDITY: TypedContractMethod<[], [bigint], "view">; + + PERMIT_TYPEHASH: TypedContractMethod<[], [string], "view">; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[owner: AddressLike], [bigint], "view">; + + burn: TypedContractMethod< + [to: AddressLike], + [[bigint, bigint] & { amount0: bigint; amount1: bigint }], + "nonpayable" + >; + + decimals: TypedContractMethod<[], [bigint], "view">; + + factory: TypedContractMethod<[], [string], "view">; + + getReserves: TypedContractMethod< + [], + [ + [bigint, bigint, bigint] & { + reserve0: bigint; + reserve1: bigint; + blockTimestampLast: bigint; + } + ], + "view" + >; + + initialize: TypedContractMethod< + [arg0: AddressLike, arg1: AddressLike], + [void], + "nonpayable" + >; + + kLast: TypedContractMethod<[], [bigint], "view">; + + mint: TypedContractMethod<[to: AddressLike], [bigint], "nonpayable">; + + name: TypedContractMethod<[], [string], "view">; + + nonces: TypedContractMethod<[owner: AddressLike], [bigint], "view">; + + permit: TypedContractMethod< + [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike + ], + [void], + "nonpayable" + >; + + price0CumulativeLast: TypedContractMethod<[], [bigint], "view">; + + price1CumulativeLast: TypedContractMethod<[], [bigint], "view">; + + skim: TypedContractMethod<[to: AddressLike], [void], "nonpayable">; + + swap: TypedContractMethod< + [ + amount0Out: BigNumberish, + amount1Out: BigNumberish, + to: AddressLike, + data: BytesLike + ], + [void], + "nonpayable" + >; + + symbol: TypedContractMethod<[], [string], "view">; + + sync: TypedContractMethod<[], [void], "nonpayable">; + + token0: TypedContractMethod<[], [string], "view">; + + token1: TypedContractMethod<[], [string], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "DOMAIN_SEPARATOR" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "MINIMUM_LIQUIDITY" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "PERMIT_TYPEHASH" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[owner: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "burn" + ): TypedContractMethod< + [to: AddressLike], + [[bigint, bigint] & { amount0: bigint; amount1: bigint }], + "nonpayable" + >; + getFunction( + nameOrSignature: "decimals" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "factory" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "getReserves" + ): TypedContractMethod< + [], + [ + [bigint, bigint, bigint] & { + reserve0: bigint; + reserve1: bigint; + blockTimestampLast: bigint; + } + ], + "view" + >; + getFunction( + nameOrSignature: "initialize" + ): TypedContractMethod< + [arg0: AddressLike, arg1: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "kLast" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "mint" + ): TypedContractMethod<[to: AddressLike], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "nonces" + ): TypedContractMethod<[owner: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "permit" + ): TypedContractMethod< + [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "price0CumulativeLast" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "price1CumulativeLast" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "skim" + ): TypedContractMethod<[to: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "swap" + ): TypedContractMethod< + [ + amount0Out: BigNumberish, + amount1Out: BigNumberish, + to: AddressLike, + data: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "sync" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "token0" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "token1" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Burn" + ): TypedContractEvent< + BurnEvent.InputTuple, + BurnEvent.OutputTuple, + BurnEvent.OutputObject + >; + getEvent( + key: "Mint" + ): TypedContractEvent< + MintEvent.InputTuple, + MintEvent.OutputTuple, + MintEvent.OutputObject + >; + getEvent( + key: "Swap" + ): TypedContractEvent< + SwapEvent.InputTuple, + SwapEvent.OutputTuple, + SwapEvent.OutputObject + >; + getEvent( + key: "Sync" + ): TypedContractEvent< + SyncEvent.InputTuple, + SyncEvent.OutputTuple, + SyncEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Burn(address,uint256,uint256,address)": TypedContractEvent< + BurnEvent.InputTuple, + BurnEvent.OutputTuple, + BurnEvent.OutputObject + >; + Burn: TypedContractEvent< + BurnEvent.InputTuple, + BurnEvent.OutputTuple, + BurnEvent.OutputObject + >; + + "Mint(address,uint256,uint256)": TypedContractEvent< + MintEvent.InputTuple, + MintEvent.OutputTuple, + MintEvent.OutputObject + >; + Mint: TypedContractEvent< + MintEvent.InputTuple, + MintEvent.OutputTuple, + MintEvent.OutputObject + >; + + "Swap(address,uint256,uint256,uint256,uint256,address)": TypedContractEvent< + SwapEvent.InputTuple, + SwapEvent.OutputTuple, + SwapEvent.OutputObject + >; + Swap: TypedContractEvent< + SwapEvent.InputTuple, + SwapEvent.OutputTuple, + SwapEvent.OutputObject + >; + + "Sync(uint112,uint112)": TypedContractEvent< + SyncEvent.InputTuple, + SyncEvent.OutputTuple, + SyncEvent.OutputObject + >; + Sync: TypedContractEvent< + SyncEvent.InputTuple, + SyncEvent.OutputTuple, + SyncEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@uniswap/v2-core/contracts/interfaces/index.ts b/typechain-types/@uniswap/v2-core/contracts/interfaces/index.ts new file mode 100644 index 00000000..d0e021d7 --- /dev/null +++ b/typechain-types/@uniswap/v2-core/contracts/interfaces/index.ts @@ -0,0 +1,8 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IERC20 } from "./IERC20"; +export type { IUniswapV2Callee } from "./IUniswapV2Callee"; +export type { IUniswapV2ERC20 } from "./IUniswapV2ERC20"; +export type { IUniswapV2Factory } from "./IUniswapV2Factory"; +export type { IUniswapV2Pair } from "./IUniswapV2Pair"; diff --git a/typechain-types/@uniswap/v2-core/index.ts b/typechain-types/@uniswap/v2-core/index.ts new file mode 100644 index 00000000..a11e4ca2 --- /dev/null +++ b/typechain-types/@uniswap/v2-core/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as contracts from "./contracts"; +export type { contracts }; diff --git a/typechain-types/@uniswap/v2-periphery/contracts/UniswapV2Router02.ts b/typechain-types/@uniswap/v2-periphery/contracts/UniswapV2Router02.ts new file mode 100644 index 00000000..dd6417a6 --- /dev/null +++ b/typechain-types/@uniswap/v2-periphery/contracts/UniswapV2Router02.ts @@ -0,0 +1,964 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../../common"; + +export interface UniswapV2Router02Interface extends Interface { + getFunction( + nameOrSignature: + | "WETH" + | "addLiquidity" + | "addLiquidityETH" + | "factory" + | "getAmountIn" + | "getAmountOut" + | "getAmountsIn" + | "getAmountsOut" + | "quote" + | "removeLiquidity" + | "removeLiquidityETH" + | "removeLiquidityETHSupportingFeeOnTransferTokens" + | "removeLiquidityETHWithPermit" + | "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens" + | "removeLiquidityWithPermit" + | "swapETHForExactTokens" + | "swapExactETHForTokens" + | "swapExactETHForTokensSupportingFeeOnTransferTokens" + | "swapExactTokensForETH" + | "swapExactTokensForETHSupportingFeeOnTransferTokens" + | "swapExactTokensForTokens" + | "swapExactTokensForTokensSupportingFeeOnTransferTokens" + | "swapTokensForExactETH" + | "swapTokensForExactTokens" + ): FunctionFragment; + + encodeFunctionData(functionFragment: "WETH", values?: undefined): string; + encodeFunctionData( + functionFragment: "addLiquidity", + values: [ + AddressLike, + AddressLike, + BigNumberish, + BigNumberish, + BigNumberish, + BigNumberish, + AddressLike, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "addLiquidityETH", + values: [ + AddressLike, + BigNumberish, + BigNumberish, + BigNumberish, + AddressLike, + BigNumberish + ] + ): string; + encodeFunctionData(functionFragment: "factory", values?: undefined): string; + encodeFunctionData( + functionFragment: "getAmountIn", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getAmountOut", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getAmountsIn", + values: [BigNumberish, AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "getAmountsOut", + values: [BigNumberish, AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "quote", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidity", + values: [ + AddressLike, + AddressLike, + BigNumberish, + BigNumberish, + BigNumberish, + AddressLike, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidityETH", + values: [ + AddressLike, + BigNumberish, + BigNumberish, + BigNumberish, + AddressLike, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidityETHSupportingFeeOnTransferTokens", + values: [ + AddressLike, + BigNumberish, + BigNumberish, + BigNumberish, + AddressLike, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidityETHWithPermit", + values: [ + AddressLike, + BigNumberish, + BigNumberish, + BigNumberish, + AddressLike, + BigNumberish, + boolean, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", + values: [ + AddressLike, + BigNumberish, + BigNumberish, + BigNumberish, + AddressLike, + BigNumberish, + boolean, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidityWithPermit", + values: [ + AddressLike, + AddressLike, + BigNumberish, + BigNumberish, + BigNumberish, + AddressLike, + BigNumberish, + boolean, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "swapETHForExactTokens", + values: [BigNumberish, AddressLike[], AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "swapExactETHForTokens", + values: [BigNumberish, AddressLike[], AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "swapExactETHForTokensSupportingFeeOnTransferTokens", + values: [BigNumberish, AddressLike[], AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "swapExactTokensForETH", + values: [ + BigNumberish, + BigNumberish, + AddressLike[], + AddressLike, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "swapExactTokensForETHSupportingFeeOnTransferTokens", + values: [ + BigNumberish, + BigNumberish, + AddressLike[], + AddressLike, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "swapExactTokensForTokens", + values: [ + BigNumberish, + BigNumberish, + AddressLike[], + AddressLike, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "swapExactTokensForTokensSupportingFeeOnTransferTokens", + values: [ + BigNumberish, + BigNumberish, + AddressLike[], + AddressLike, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "swapTokensForExactETH", + values: [ + BigNumberish, + BigNumberish, + AddressLike[], + AddressLike, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "swapTokensForExactTokens", + values: [ + BigNumberish, + BigNumberish, + AddressLike[], + AddressLike, + BigNumberish + ] + ): string; + + decodeFunctionResult(functionFragment: "WETH", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "addLiquidity", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "addLiquidityETH", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getAmountIn", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getAmountOut", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getAmountsIn", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getAmountsOut", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "quote", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "removeLiquidity", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "removeLiquidityETH", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "removeLiquidityETHSupportingFeeOnTransferTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "removeLiquidityETHWithPermit", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "removeLiquidityWithPermit", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapETHForExactTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapExactETHForTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapExactETHForTokensSupportingFeeOnTransferTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapExactTokensForETH", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapExactTokensForETHSupportingFeeOnTransferTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapExactTokensForTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapExactTokensForTokensSupportingFeeOnTransferTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapTokensForExactETH", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapTokensForExactTokens", + data: BytesLike + ): Result; +} + +export interface UniswapV2Router02 extends BaseContract { + connect(runner?: ContractRunner | null): UniswapV2Router02; + waitForDeployment(): Promise; + + interface: UniswapV2Router02Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + WETH: TypedContractMethod<[], [string], "view">; + + addLiquidity: TypedContractMethod< + [ + tokenA: AddressLike, + tokenB: AddressLike, + amountADesired: BigNumberish, + amountBDesired: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [ + [bigint, bigint, bigint] & { + amountA: bigint; + amountB: bigint; + liquidity: bigint; + } + ], + "nonpayable" + >; + + addLiquidityETH: TypedContractMethod< + [ + token: AddressLike, + amountTokenDesired: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [ + [bigint, bigint, bigint] & { + amountToken: bigint; + amountETH: bigint; + liquidity: bigint; + } + ], + "payable" + >; + + factory: TypedContractMethod<[], [string], "view">; + + getAmountIn: TypedContractMethod< + [ + amountOut: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish + ], + [bigint], + "view" + >; + + getAmountOut: TypedContractMethod< + [amountIn: BigNumberish, reserveIn: BigNumberish, reserveOut: BigNumberish], + [bigint], + "view" + >; + + getAmountsIn: TypedContractMethod< + [amountOut: BigNumberish, path: AddressLike[]], + [bigint[]], + "view" + >; + + getAmountsOut: TypedContractMethod< + [amountIn: BigNumberish, path: AddressLike[]], + [bigint[]], + "view" + >; + + quote: TypedContractMethod< + [amountA: BigNumberish, reserveA: BigNumberish, reserveB: BigNumberish], + [bigint], + "view" + >; + + removeLiquidity: TypedContractMethod< + [ + tokenA: AddressLike, + tokenB: AddressLike, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [[bigint, bigint] & { amountA: bigint; amountB: bigint }], + "nonpayable" + >; + + removeLiquidityETH: TypedContractMethod< + [ + token: AddressLike, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [[bigint, bigint] & { amountToken: bigint; amountETH: bigint }], + "nonpayable" + >; + + removeLiquidityETHSupportingFeeOnTransferTokens: TypedContractMethod< + [ + token: AddressLike, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [bigint], + "nonpayable" + >; + + removeLiquidityETHWithPermit: TypedContractMethod< + [ + token: AddressLike, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike + ], + [[bigint, bigint] & { amountToken: bigint; amountETH: bigint }], + "nonpayable" + >; + + removeLiquidityETHWithPermitSupportingFeeOnTransferTokens: TypedContractMethod< + [ + token: AddressLike, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike + ], + [bigint], + "nonpayable" + >; + + removeLiquidityWithPermit: TypedContractMethod< + [ + tokenA: AddressLike, + tokenB: AddressLike, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike + ], + [[bigint, bigint] & { amountA: bigint; amountB: bigint }], + "nonpayable" + >; + + swapETHForExactTokens: TypedContractMethod< + [ + amountOut: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "payable" + >; + + swapExactETHForTokens: TypedContractMethod< + [ + amountOutMin: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "payable" + >; + + swapExactETHForTokensSupportingFeeOnTransferTokens: TypedContractMethod< + [ + amountOutMin: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [void], + "payable" + >; + + swapExactTokensForETH: TypedContractMethod< + [ + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "nonpayable" + >; + + swapExactTokensForETHSupportingFeeOnTransferTokens: TypedContractMethod< + [ + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [void], + "nonpayable" + >; + + swapExactTokensForTokens: TypedContractMethod< + [ + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "nonpayable" + >; + + swapExactTokensForTokensSupportingFeeOnTransferTokens: TypedContractMethod< + [ + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [void], + "nonpayable" + >; + + swapTokensForExactETH: TypedContractMethod< + [ + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "nonpayable" + >; + + swapTokensForExactTokens: TypedContractMethod< + [ + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "WETH" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "addLiquidity" + ): TypedContractMethod< + [ + tokenA: AddressLike, + tokenB: AddressLike, + amountADesired: BigNumberish, + amountBDesired: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [ + [bigint, bigint, bigint] & { + amountA: bigint; + amountB: bigint; + liquidity: bigint; + } + ], + "nonpayable" + >; + getFunction( + nameOrSignature: "addLiquidityETH" + ): TypedContractMethod< + [ + token: AddressLike, + amountTokenDesired: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [ + [bigint, bigint, bigint] & { + amountToken: bigint; + amountETH: bigint; + liquidity: bigint; + } + ], + "payable" + >; + getFunction( + nameOrSignature: "factory" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "getAmountIn" + ): TypedContractMethod< + [ + amountOut: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish + ], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "getAmountOut" + ): TypedContractMethod< + [amountIn: BigNumberish, reserveIn: BigNumberish, reserveOut: BigNumberish], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "getAmountsIn" + ): TypedContractMethod< + [amountOut: BigNumberish, path: AddressLike[]], + [bigint[]], + "view" + >; + getFunction( + nameOrSignature: "getAmountsOut" + ): TypedContractMethod< + [amountIn: BigNumberish, path: AddressLike[]], + [bigint[]], + "view" + >; + getFunction( + nameOrSignature: "quote" + ): TypedContractMethod< + [amountA: BigNumberish, reserveA: BigNumberish, reserveB: BigNumberish], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "removeLiquidity" + ): TypedContractMethod< + [ + tokenA: AddressLike, + tokenB: AddressLike, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [[bigint, bigint] & { amountA: bigint; amountB: bigint }], + "nonpayable" + >; + getFunction( + nameOrSignature: "removeLiquidityETH" + ): TypedContractMethod< + [ + token: AddressLike, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [[bigint, bigint] & { amountToken: bigint; amountETH: bigint }], + "nonpayable" + >; + getFunction( + nameOrSignature: "removeLiquidityETHSupportingFeeOnTransferTokens" + ): TypedContractMethod< + [ + token: AddressLike, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [bigint], + "nonpayable" + >; + getFunction( + nameOrSignature: "removeLiquidityETHWithPermit" + ): TypedContractMethod< + [ + token: AddressLike, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike + ], + [[bigint, bigint] & { amountToken: bigint; amountETH: bigint }], + "nonpayable" + >; + getFunction( + nameOrSignature: "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens" + ): TypedContractMethod< + [ + token: AddressLike, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike + ], + [bigint], + "nonpayable" + >; + getFunction( + nameOrSignature: "removeLiquidityWithPermit" + ): TypedContractMethod< + [ + tokenA: AddressLike, + tokenB: AddressLike, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike + ], + [[bigint, bigint] & { amountA: bigint; amountB: bigint }], + "nonpayable" + >; + getFunction( + nameOrSignature: "swapETHForExactTokens" + ): TypedContractMethod< + [ + amountOut: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "payable" + >; + getFunction( + nameOrSignature: "swapExactETHForTokens" + ): TypedContractMethod< + [ + amountOutMin: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "payable" + >; + getFunction( + nameOrSignature: "swapExactETHForTokensSupportingFeeOnTransferTokens" + ): TypedContractMethod< + [ + amountOutMin: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [void], + "payable" + >; + getFunction( + nameOrSignature: "swapExactTokensForETH" + ): TypedContractMethod< + [ + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "nonpayable" + >; + getFunction( + nameOrSignature: "swapExactTokensForETHSupportingFeeOnTransferTokens" + ): TypedContractMethod< + [ + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "swapExactTokensForTokens" + ): TypedContractMethod< + [ + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "nonpayable" + >; + getFunction( + nameOrSignature: "swapExactTokensForTokensSupportingFeeOnTransferTokens" + ): TypedContractMethod< + [ + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "swapTokensForExactETH" + ): TypedContractMethod< + [ + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "nonpayable" + >; + getFunction( + nameOrSignature: "swapTokensForExactTokens" + ): TypedContractMethod< + [ + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "nonpayable" + >; + + filters: {}; +} diff --git a/typechain-types/@uniswap/v2-periphery/contracts/index.ts b/typechain-types/@uniswap/v2-periphery/contracts/index.ts new file mode 100644 index 00000000..33335590 --- /dev/null +++ b/typechain-types/@uniswap/v2-periphery/contracts/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as interfaces from "./interfaces"; +export type { interfaces }; +export type { UniswapV2Router02 } from "./UniswapV2Router02"; diff --git a/typechain-types/@uniswap/v2-periphery/contracts/interfaces/IERC20.ts b/typechain-types/@uniswap/v2-periphery/contracts/interfaces/IERC20.ts new file mode 100644 index 00000000..ef222e7f --- /dev/null +++ b/typechain-types/@uniswap/v2-periphery/contracts/interfaces/IERC20.ts @@ -0,0 +1,286 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../../common"; + +export interface IERC20Interface extends Interface { + getFunction( + nameOrSignature: + | "allowance" + | "approve" + | "balanceOf" + | "decimals" + | "name" + | "symbol" + | "totalSupply" + | "transfer" + | "transferFrom" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; + + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IERC20 extends BaseContract { + connect(runner?: ContractRunner | null): IERC20; + waitForDeployment(): Promise; + + interface: IERC20Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[owner: AddressLike], [bigint], "view">; + + decimals: TypedContractMethod<[], [bigint], "view">; + + name: TypedContractMethod<[], [string], "view">; + + symbol: TypedContractMethod<[], [string], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[owner: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "decimals" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.ts b/typechain-types/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.ts new file mode 100644 index 00000000..63fad112 --- /dev/null +++ b/typechain-types/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.ts @@ -0,0 +1,754 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../../../common"; + +export interface IUniswapV2Router01Interface extends Interface { + getFunction( + nameOrSignature: + | "WETH" + | "addLiquidity" + | "addLiquidityETH" + | "factory" + | "getAmountIn" + | "getAmountOut" + | "getAmountsIn" + | "getAmountsOut" + | "quote" + | "removeLiquidity" + | "removeLiquidityETH" + | "removeLiquidityETHWithPermit" + | "removeLiquidityWithPermit" + | "swapETHForExactTokens" + | "swapExactETHForTokens" + | "swapExactTokensForETH" + | "swapExactTokensForTokens" + | "swapTokensForExactETH" + | "swapTokensForExactTokens" + ): FunctionFragment; + + encodeFunctionData(functionFragment: "WETH", values?: undefined): string; + encodeFunctionData( + functionFragment: "addLiquidity", + values: [ + AddressLike, + AddressLike, + BigNumberish, + BigNumberish, + BigNumberish, + BigNumberish, + AddressLike, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "addLiquidityETH", + values: [ + AddressLike, + BigNumberish, + BigNumberish, + BigNumberish, + AddressLike, + BigNumberish + ] + ): string; + encodeFunctionData(functionFragment: "factory", values?: undefined): string; + encodeFunctionData( + functionFragment: "getAmountIn", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getAmountOut", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getAmountsIn", + values: [BigNumberish, AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "getAmountsOut", + values: [BigNumberish, AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "quote", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidity", + values: [ + AddressLike, + AddressLike, + BigNumberish, + BigNumberish, + BigNumberish, + AddressLike, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidityETH", + values: [ + AddressLike, + BigNumberish, + BigNumberish, + BigNumberish, + AddressLike, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidityETHWithPermit", + values: [ + AddressLike, + BigNumberish, + BigNumberish, + BigNumberish, + AddressLike, + BigNumberish, + boolean, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidityWithPermit", + values: [ + AddressLike, + AddressLike, + BigNumberish, + BigNumberish, + BigNumberish, + AddressLike, + BigNumberish, + boolean, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "swapETHForExactTokens", + values: [BigNumberish, AddressLike[], AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "swapExactETHForTokens", + values: [BigNumberish, AddressLike[], AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "swapExactTokensForETH", + values: [ + BigNumberish, + BigNumberish, + AddressLike[], + AddressLike, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "swapExactTokensForTokens", + values: [ + BigNumberish, + BigNumberish, + AddressLike[], + AddressLike, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "swapTokensForExactETH", + values: [ + BigNumberish, + BigNumberish, + AddressLike[], + AddressLike, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "swapTokensForExactTokens", + values: [ + BigNumberish, + BigNumberish, + AddressLike[], + AddressLike, + BigNumberish + ] + ): string; + + decodeFunctionResult(functionFragment: "WETH", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "addLiquidity", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "addLiquidityETH", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getAmountIn", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getAmountOut", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getAmountsIn", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getAmountsOut", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "quote", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "removeLiquidity", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "removeLiquidityETH", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "removeLiquidityETHWithPermit", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "removeLiquidityWithPermit", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapETHForExactTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapExactETHForTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapExactTokensForETH", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapExactTokensForTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapTokensForExactETH", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapTokensForExactTokens", + data: BytesLike + ): Result; +} + +export interface IUniswapV2Router01 extends BaseContract { + connect(runner?: ContractRunner | null): IUniswapV2Router01; + waitForDeployment(): Promise; + + interface: IUniswapV2Router01Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + WETH: TypedContractMethod<[], [string], "view">; + + addLiquidity: TypedContractMethod< + [ + tokenA: AddressLike, + tokenB: AddressLike, + amountADesired: BigNumberish, + amountBDesired: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [ + [bigint, bigint, bigint] & { + amountA: bigint; + amountB: bigint; + liquidity: bigint; + } + ], + "nonpayable" + >; + + addLiquidityETH: TypedContractMethod< + [ + token: AddressLike, + amountTokenDesired: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [ + [bigint, bigint, bigint] & { + amountToken: bigint; + amountETH: bigint; + liquidity: bigint; + } + ], + "payable" + >; + + factory: TypedContractMethod<[], [string], "view">; + + getAmountIn: TypedContractMethod< + [ + amountOut: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish + ], + [bigint], + "view" + >; + + getAmountOut: TypedContractMethod< + [amountIn: BigNumberish, reserveIn: BigNumberish, reserveOut: BigNumberish], + [bigint], + "view" + >; + + getAmountsIn: TypedContractMethod< + [amountOut: BigNumberish, path: AddressLike[]], + [bigint[]], + "view" + >; + + getAmountsOut: TypedContractMethod< + [amountIn: BigNumberish, path: AddressLike[]], + [bigint[]], + "view" + >; + + quote: TypedContractMethod< + [amountA: BigNumberish, reserveA: BigNumberish, reserveB: BigNumberish], + [bigint], + "view" + >; + + removeLiquidity: TypedContractMethod< + [ + tokenA: AddressLike, + tokenB: AddressLike, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [[bigint, bigint] & { amountA: bigint; amountB: bigint }], + "nonpayable" + >; + + removeLiquidityETH: TypedContractMethod< + [ + token: AddressLike, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [[bigint, bigint] & { amountToken: bigint; amountETH: bigint }], + "nonpayable" + >; + + removeLiquidityETHWithPermit: TypedContractMethod< + [ + token: AddressLike, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike + ], + [[bigint, bigint] & { amountToken: bigint; amountETH: bigint }], + "nonpayable" + >; + + removeLiquidityWithPermit: TypedContractMethod< + [ + tokenA: AddressLike, + tokenB: AddressLike, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike + ], + [[bigint, bigint] & { amountA: bigint; amountB: bigint }], + "nonpayable" + >; + + swapETHForExactTokens: TypedContractMethod< + [ + amountOut: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "payable" + >; + + swapExactETHForTokens: TypedContractMethod< + [ + amountOutMin: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "payable" + >; + + swapExactTokensForETH: TypedContractMethod< + [ + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "nonpayable" + >; + + swapExactTokensForTokens: TypedContractMethod< + [ + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "nonpayable" + >; + + swapTokensForExactETH: TypedContractMethod< + [ + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "nonpayable" + >; + + swapTokensForExactTokens: TypedContractMethod< + [ + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "WETH" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "addLiquidity" + ): TypedContractMethod< + [ + tokenA: AddressLike, + tokenB: AddressLike, + amountADesired: BigNumberish, + amountBDesired: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [ + [bigint, bigint, bigint] & { + amountA: bigint; + amountB: bigint; + liquidity: bigint; + } + ], + "nonpayable" + >; + getFunction( + nameOrSignature: "addLiquidityETH" + ): TypedContractMethod< + [ + token: AddressLike, + amountTokenDesired: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [ + [bigint, bigint, bigint] & { + amountToken: bigint; + amountETH: bigint; + liquidity: bigint; + } + ], + "payable" + >; + getFunction( + nameOrSignature: "factory" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "getAmountIn" + ): TypedContractMethod< + [ + amountOut: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish + ], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "getAmountOut" + ): TypedContractMethod< + [amountIn: BigNumberish, reserveIn: BigNumberish, reserveOut: BigNumberish], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "getAmountsIn" + ): TypedContractMethod< + [amountOut: BigNumberish, path: AddressLike[]], + [bigint[]], + "view" + >; + getFunction( + nameOrSignature: "getAmountsOut" + ): TypedContractMethod< + [amountIn: BigNumberish, path: AddressLike[]], + [bigint[]], + "view" + >; + getFunction( + nameOrSignature: "quote" + ): TypedContractMethod< + [amountA: BigNumberish, reserveA: BigNumberish, reserveB: BigNumberish], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "removeLiquidity" + ): TypedContractMethod< + [ + tokenA: AddressLike, + tokenB: AddressLike, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [[bigint, bigint] & { amountA: bigint; amountB: bigint }], + "nonpayable" + >; + getFunction( + nameOrSignature: "removeLiquidityETH" + ): TypedContractMethod< + [ + token: AddressLike, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [[bigint, bigint] & { amountToken: bigint; amountETH: bigint }], + "nonpayable" + >; + getFunction( + nameOrSignature: "removeLiquidityETHWithPermit" + ): TypedContractMethod< + [ + token: AddressLike, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike + ], + [[bigint, bigint] & { amountToken: bigint; amountETH: bigint }], + "nonpayable" + >; + getFunction( + nameOrSignature: "removeLiquidityWithPermit" + ): TypedContractMethod< + [ + tokenA: AddressLike, + tokenB: AddressLike, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike + ], + [[bigint, bigint] & { amountA: bigint; amountB: bigint }], + "nonpayable" + >; + getFunction( + nameOrSignature: "swapETHForExactTokens" + ): TypedContractMethod< + [ + amountOut: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "payable" + >; + getFunction( + nameOrSignature: "swapExactETHForTokens" + ): TypedContractMethod< + [ + amountOutMin: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "payable" + >; + getFunction( + nameOrSignature: "swapExactTokensForETH" + ): TypedContractMethod< + [ + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "nonpayable" + >; + getFunction( + nameOrSignature: "swapExactTokensForTokens" + ): TypedContractMethod< + [ + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "nonpayable" + >; + getFunction( + nameOrSignature: "swapTokensForExactETH" + ): TypedContractMethod< + [ + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "nonpayable" + >; + getFunction( + nameOrSignature: "swapTokensForExactTokens" + ): TypedContractMethod< + [ + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "nonpayable" + >; + + filters: {}; +} diff --git a/typechain-types/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.ts b/typechain-types/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.ts new file mode 100644 index 00000000..e9a5a3e1 --- /dev/null +++ b/typechain-types/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.ts @@ -0,0 +1,964 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../../../common"; + +export interface IUniswapV2Router02Interface extends Interface { + getFunction( + nameOrSignature: + | "WETH" + | "addLiquidity" + | "addLiquidityETH" + | "factory" + | "getAmountIn" + | "getAmountOut" + | "getAmountsIn" + | "getAmountsOut" + | "quote" + | "removeLiquidity" + | "removeLiquidityETH" + | "removeLiquidityETHSupportingFeeOnTransferTokens" + | "removeLiquidityETHWithPermit" + | "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens" + | "removeLiquidityWithPermit" + | "swapETHForExactTokens" + | "swapExactETHForTokens" + | "swapExactETHForTokensSupportingFeeOnTransferTokens" + | "swapExactTokensForETH" + | "swapExactTokensForETHSupportingFeeOnTransferTokens" + | "swapExactTokensForTokens" + | "swapExactTokensForTokensSupportingFeeOnTransferTokens" + | "swapTokensForExactETH" + | "swapTokensForExactTokens" + ): FunctionFragment; + + encodeFunctionData(functionFragment: "WETH", values?: undefined): string; + encodeFunctionData( + functionFragment: "addLiquidity", + values: [ + AddressLike, + AddressLike, + BigNumberish, + BigNumberish, + BigNumberish, + BigNumberish, + AddressLike, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "addLiquidityETH", + values: [ + AddressLike, + BigNumberish, + BigNumberish, + BigNumberish, + AddressLike, + BigNumberish + ] + ): string; + encodeFunctionData(functionFragment: "factory", values?: undefined): string; + encodeFunctionData( + functionFragment: "getAmountIn", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getAmountOut", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getAmountsIn", + values: [BigNumberish, AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "getAmountsOut", + values: [BigNumberish, AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "quote", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidity", + values: [ + AddressLike, + AddressLike, + BigNumberish, + BigNumberish, + BigNumberish, + AddressLike, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidityETH", + values: [ + AddressLike, + BigNumberish, + BigNumberish, + BigNumberish, + AddressLike, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidityETHSupportingFeeOnTransferTokens", + values: [ + AddressLike, + BigNumberish, + BigNumberish, + BigNumberish, + AddressLike, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidityETHWithPermit", + values: [ + AddressLike, + BigNumberish, + BigNumberish, + BigNumberish, + AddressLike, + BigNumberish, + boolean, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", + values: [ + AddressLike, + BigNumberish, + BigNumberish, + BigNumberish, + AddressLike, + BigNumberish, + boolean, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidityWithPermit", + values: [ + AddressLike, + AddressLike, + BigNumberish, + BigNumberish, + BigNumberish, + AddressLike, + BigNumberish, + boolean, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "swapETHForExactTokens", + values: [BigNumberish, AddressLike[], AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "swapExactETHForTokens", + values: [BigNumberish, AddressLike[], AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "swapExactETHForTokensSupportingFeeOnTransferTokens", + values: [BigNumberish, AddressLike[], AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "swapExactTokensForETH", + values: [ + BigNumberish, + BigNumberish, + AddressLike[], + AddressLike, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "swapExactTokensForETHSupportingFeeOnTransferTokens", + values: [ + BigNumberish, + BigNumberish, + AddressLike[], + AddressLike, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "swapExactTokensForTokens", + values: [ + BigNumberish, + BigNumberish, + AddressLike[], + AddressLike, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "swapExactTokensForTokensSupportingFeeOnTransferTokens", + values: [ + BigNumberish, + BigNumberish, + AddressLike[], + AddressLike, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "swapTokensForExactETH", + values: [ + BigNumberish, + BigNumberish, + AddressLike[], + AddressLike, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "swapTokensForExactTokens", + values: [ + BigNumberish, + BigNumberish, + AddressLike[], + AddressLike, + BigNumberish + ] + ): string; + + decodeFunctionResult(functionFragment: "WETH", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "addLiquidity", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "addLiquidityETH", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getAmountIn", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getAmountOut", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getAmountsIn", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getAmountsOut", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "quote", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "removeLiquidity", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "removeLiquidityETH", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "removeLiquidityETHSupportingFeeOnTransferTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "removeLiquidityETHWithPermit", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "removeLiquidityWithPermit", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapETHForExactTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapExactETHForTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapExactETHForTokensSupportingFeeOnTransferTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapExactTokensForETH", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapExactTokensForETHSupportingFeeOnTransferTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapExactTokensForTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapExactTokensForTokensSupportingFeeOnTransferTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapTokensForExactETH", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapTokensForExactTokens", + data: BytesLike + ): Result; +} + +export interface IUniswapV2Router02 extends BaseContract { + connect(runner?: ContractRunner | null): IUniswapV2Router02; + waitForDeployment(): Promise; + + interface: IUniswapV2Router02Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + WETH: TypedContractMethod<[], [string], "view">; + + addLiquidity: TypedContractMethod< + [ + tokenA: AddressLike, + tokenB: AddressLike, + amountADesired: BigNumberish, + amountBDesired: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [ + [bigint, bigint, bigint] & { + amountA: bigint; + amountB: bigint; + liquidity: bigint; + } + ], + "nonpayable" + >; + + addLiquidityETH: TypedContractMethod< + [ + token: AddressLike, + amountTokenDesired: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [ + [bigint, bigint, bigint] & { + amountToken: bigint; + amountETH: bigint; + liquidity: bigint; + } + ], + "payable" + >; + + factory: TypedContractMethod<[], [string], "view">; + + getAmountIn: TypedContractMethod< + [ + amountOut: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish + ], + [bigint], + "view" + >; + + getAmountOut: TypedContractMethod< + [amountIn: BigNumberish, reserveIn: BigNumberish, reserveOut: BigNumberish], + [bigint], + "view" + >; + + getAmountsIn: TypedContractMethod< + [amountOut: BigNumberish, path: AddressLike[]], + [bigint[]], + "view" + >; + + getAmountsOut: TypedContractMethod< + [amountIn: BigNumberish, path: AddressLike[]], + [bigint[]], + "view" + >; + + quote: TypedContractMethod< + [amountA: BigNumberish, reserveA: BigNumberish, reserveB: BigNumberish], + [bigint], + "view" + >; + + removeLiquidity: TypedContractMethod< + [ + tokenA: AddressLike, + tokenB: AddressLike, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [[bigint, bigint] & { amountA: bigint; amountB: bigint }], + "nonpayable" + >; + + removeLiquidityETH: TypedContractMethod< + [ + token: AddressLike, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [[bigint, bigint] & { amountToken: bigint; amountETH: bigint }], + "nonpayable" + >; + + removeLiquidityETHSupportingFeeOnTransferTokens: TypedContractMethod< + [ + token: AddressLike, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [bigint], + "nonpayable" + >; + + removeLiquidityETHWithPermit: TypedContractMethod< + [ + token: AddressLike, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike + ], + [[bigint, bigint] & { amountToken: bigint; amountETH: bigint }], + "nonpayable" + >; + + removeLiquidityETHWithPermitSupportingFeeOnTransferTokens: TypedContractMethod< + [ + token: AddressLike, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike + ], + [bigint], + "nonpayable" + >; + + removeLiquidityWithPermit: TypedContractMethod< + [ + tokenA: AddressLike, + tokenB: AddressLike, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike + ], + [[bigint, bigint] & { amountA: bigint; amountB: bigint }], + "nonpayable" + >; + + swapETHForExactTokens: TypedContractMethod< + [ + amountOut: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "payable" + >; + + swapExactETHForTokens: TypedContractMethod< + [ + amountOutMin: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "payable" + >; + + swapExactETHForTokensSupportingFeeOnTransferTokens: TypedContractMethod< + [ + amountOutMin: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [void], + "payable" + >; + + swapExactTokensForETH: TypedContractMethod< + [ + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "nonpayable" + >; + + swapExactTokensForETHSupportingFeeOnTransferTokens: TypedContractMethod< + [ + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [void], + "nonpayable" + >; + + swapExactTokensForTokens: TypedContractMethod< + [ + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "nonpayable" + >; + + swapExactTokensForTokensSupportingFeeOnTransferTokens: TypedContractMethod< + [ + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [void], + "nonpayable" + >; + + swapTokensForExactETH: TypedContractMethod< + [ + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "nonpayable" + >; + + swapTokensForExactTokens: TypedContractMethod< + [ + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "WETH" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "addLiquidity" + ): TypedContractMethod< + [ + tokenA: AddressLike, + tokenB: AddressLike, + amountADesired: BigNumberish, + amountBDesired: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [ + [bigint, bigint, bigint] & { + amountA: bigint; + amountB: bigint; + liquidity: bigint; + } + ], + "nonpayable" + >; + getFunction( + nameOrSignature: "addLiquidityETH" + ): TypedContractMethod< + [ + token: AddressLike, + amountTokenDesired: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [ + [bigint, bigint, bigint] & { + amountToken: bigint; + amountETH: bigint; + liquidity: bigint; + } + ], + "payable" + >; + getFunction( + nameOrSignature: "factory" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "getAmountIn" + ): TypedContractMethod< + [ + amountOut: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish + ], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "getAmountOut" + ): TypedContractMethod< + [amountIn: BigNumberish, reserveIn: BigNumberish, reserveOut: BigNumberish], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "getAmountsIn" + ): TypedContractMethod< + [amountOut: BigNumberish, path: AddressLike[]], + [bigint[]], + "view" + >; + getFunction( + nameOrSignature: "getAmountsOut" + ): TypedContractMethod< + [amountIn: BigNumberish, path: AddressLike[]], + [bigint[]], + "view" + >; + getFunction( + nameOrSignature: "quote" + ): TypedContractMethod< + [amountA: BigNumberish, reserveA: BigNumberish, reserveB: BigNumberish], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "removeLiquidity" + ): TypedContractMethod< + [ + tokenA: AddressLike, + tokenB: AddressLike, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [[bigint, bigint] & { amountA: bigint; amountB: bigint }], + "nonpayable" + >; + getFunction( + nameOrSignature: "removeLiquidityETH" + ): TypedContractMethod< + [ + token: AddressLike, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [[bigint, bigint] & { amountToken: bigint; amountETH: bigint }], + "nonpayable" + >; + getFunction( + nameOrSignature: "removeLiquidityETHSupportingFeeOnTransferTokens" + ): TypedContractMethod< + [ + token: AddressLike, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [bigint], + "nonpayable" + >; + getFunction( + nameOrSignature: "removeLiquidityETHWithPermit" + ): TypedContractMethod< + [ + token: AddressLike, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike + ], + [[bigint, bigint] & { amountToken: bigint; amountETH: bigint }], + "nonpayable" + >; + getFunction( + nameOrSignature: "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens" + ): TypedContractMethod< + [ + token: AddressLike, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike + ], + [bigint], + "nonpayable" + >; + getFunction( + nameOrSignature: "removeLiquidityWithPermit" + ): TypedContractMethod< + [ + tokenA: AddressLike, + tokenB: AddressLike, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike + ], + [[bigint, bigint] & { amountA: bigint; amountB: bigint }], + "nonpayable" + >; + getFunction( + nameOrSignature: "swapETHForExactTokens" + ): TypedContractMethod< + [ + amountOut: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "payable" + >; + getFunction( + nameOrSignature: "swapExactETHForTokens" + ): TypedContractMethod< + [ + amountOutMin: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "payable" + >; + getFunction( + nameOrSignature: "swapExactETHForTokensSupportingFeeOnTransferTokens" + ): TypedContractMethod< + [ + amountOutMin: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [void], + "payable" + >; + getFunction( + nameOrSignature: "swapExactTokensForETH" + ): TypedContractMethod< + [ + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "nonpayable" + >; + getFunction( + nameOrSignature: "swapExactTokensForETHSupportingFeeOnTransferTokens" + ): TypedContractMethod< + [ + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "swapExactTokensForTokens" + ): TypedContractMethod< + [ + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "nonpayable" + >; + getFunction( + nameOrSignature: "swapExactTokensForTokensSupportingFeeOnTransferTokens" + ): TypedContractMethod< + [ + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "swapTokensForExactETH" + ): TypedContractMethod< + [ + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "nonpayable" + >; + getFunction( + nameOrSignature: "swapTokensForExactTokens" + ): TypedContractMethod< + [ + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "nonpayable" + >; + + filters: {}; +} diff --git a/typechain-types/@uniswap/v2-periphery/contracts/interfaces/IWETH.ts b/typechain-types/@uniswap/v2-periphery/contracts/interfaces/IWETH.ts new file mode 100644 index 00000000..1131a201 --- /dev/null +++ b/typechain-types/@uniswap/v2-periphery/contracts/interfaces/IWETH.ts @@ -0,0 +1,116 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../../../common"; + +export interface IWETHInterface extends Interface { + getFunction( + nameOrSignature: "deposit" | "transfer" | "withdraw" + ): FunctionFragment; + + encodeFunctionData(functionFragment: "deposit", values?: undefined): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdraw", + values: [BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; +} + +export interface IWETH extends BaseContract { + connect(runner?: ContractRunner | null): IWETH; + waitForDeployment(): Promise; + + interface: IWETHInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + deposit: TypedContractMethod<[], [void], "payable">; + + transfer: TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + withdraw: TypedContractMethod<[arg0: BigNumberish], [void], "nonpayable">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "deposit" + ): TypedContractMethod<[], [void], "payable">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdraw" + ): TypedContractMethod<[arg0: BigNumberish], [void], "nonpayable">; + + filters: {}; +} diff --git a/typechain-types/@uniswap/v2-periphery/contracts/interfaces/index.ts b/typechain-types/@uniswap/v2-periphery/contracts/interfaces/index.ts new file mode 100644 index 00000000..d7c00510 --- /dev/null +++ b/typechain-types/@uniswap/v2-periphery/contracts/interfaces/index.ts @@ -0,0 +1,7 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IERC20 } from "./IERC20"; +export type { IUniswapV2Router01 } from "./IUniswapV2Router01"; +export type { IUniswapV2Router02 } from "./IUniswapV2Router02"; +export type { IWETH } from "./IWETH"; diff --git a/typechain-types/@uniswap/v2-periphery/index.ts b/typechain-types/@uniswap/v2-periphery/index.ts new file mode 100644 index 00000000..a11e4ca2 --- /dev/null +++ b/typechain-types/@uniswap/v2-periphery/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as contracts from "./contracts"; +export type { contracts }; diff --git a/typechain-types/@uniswap/v3-core/contracts/index.ts b/typechain-types/@uniswap/v3-core/contracts/index.ts new file mode 100644 index 00000000..92159233 --- /dev/null +++ b/typechain-types/@uniswap/v3-core/contracts/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as interfaces from "./interfaces"; +export type { interfaces }; diff --git a/typechain-types/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.ts b/typechain-types/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.ts new file mode 100644 index 00000000..7ad62fc2 --- /dev/null +++ b/typechain-types/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.ts @@ -0,0 +1,99 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../../../../common"; + +export interface IUniswapV3SwapCallbackInterface extends Interface { + getFunction(nameOrSignature: "uniswapV3SwapCallback"): FunctionFragment; + + encodeFunctionData( + functionFragment: "uniswapV3SwapCallback", + values: [BigNumberish, BigNumberish, BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "uniswapV3SwapCallback", + data: BytesLike + ): Result; +} + +export interface IUniswapV3SwapCallback extends BaseContract { + connect(runner?: ContractRunner | null): IUniswapV3SwapCallback; + waitForDeployment(): Promise; + + interface: IUniswapV3SwapCallbackInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + uniswapV3SwapCallback: TypedContractMethod< + [amount0Delta: BigNumberish, amount1Delta: BigNumberish, data: BytesLike], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "uniswapV3SwapCallback" + ): TypedContractMethod< + [amount0Delta: BigNumberish, amount1Delta: BigNumberish, data: BytesLike], + [void], + "nonpayable" + >; + + filters: {}; +} diff --git a/typechain-types/@uniswap/v3-core/contracts/interfaces/callback/index.ts b/typechain-types/@uniswap/v3-core/contracts/interfaces/callback/index.ts new file mode 100644 index 00000000..c552691c --- /dev/null +++ b/typechain-types/@uniswap/v3-core/contracts/interfaces/callback/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IUniswapV3SwapCallback } from "./IUniswapV3SwapCallback"; diff --git a/typechain-types/@uniswap/v3-core/contracts/interfaces/index.ts b/typechain-types/@uniswap/v3-core/contracts/interfaces/index.ts new file mode 100644 index 00000000..3b69c538 --- /dev/null +++ b/typechain-types/@uniswap/v3-core/contracts/interfaces/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as callback from "./callback"; +export type { callback }; diff --git a/typechain-types/@uniswap/v3-core/index.ts b/typechain-types/@uniswap/v3-core/index.ts new file mode 100644 index 00000000..a11e4ca2 --- /dev/null +++ b/typechain-types/@uniswap/v3-core/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as contracts from "./contracts"; +export type { contracts }; diff --git a/typechain-types/@uniswap/v3-periphery/contracts/index.ts b/typechain-types/@uniswap/v3-periphery/contracts/index.ts new file mode 100644 index 00000000..92159233 --- /dev/null +++ b/typechain-types/@uniswap/v3-periphery/contracts/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as interfaces from "./interfaces"; +export type { interfaces }; diff --git a/typechain-types/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter.ts b/typechain-types/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter.ts new file mode 100644 index 00000000..22e1bc3f --- /dev/null +++ b/typechain-types/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter.ts @@ -0,0 +1,296 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../../../common"; + +export declare namespace ISwapRouter { + export type ExactInputParamsStruct = { + path: BytesLike; + recipient: AddressLike; + deadline: BigNumberish; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + }; + + export type ExactInputParamsStructOutput = [ + path: string, + recipient: string, + deadline: bigint, + amountIn: bigint, + amountOutMinimum: bigint + ] & { + path: string; + recipient: string; + deadline: bigint; + amountIn: bigint; + amountOutMinimum: bigint; + }; + + export type ExactInputSingleParamsStruct = { + tokenIn: AddressLike; + tokenOut: AddressLike; + fee: BigNumberish; + recipient: AddressLike; + deadline: BigNumberish; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }; + + export type ExactInputSingleParamsStructOutput = [ + tokenIn: string, + tokenOut: string, + fee: bigint, + recipient: string, + deadline: bigint, + amountIn: bigint, + amountOutMinimum: bigint, + sqrtPriceLimitX96: bigint + ] & { + tokenIn: string; + tokenOut: string; + fee: bigint; + recipient: string; + deadline: bigint; + amountIn: bigint; + amountOutMinimum: bigint; + sqrtPriceLimitX96: bigint; + }; + + export type ExactOutputParamsStruct = { + path: BytesLike; + recipient: AddressLike; + deadline: BigNumberish; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + }; + + export type ExactOutputParamsStructOutput = [ + path: string, + recipient: string, + deadline: bigint, + amountOut: bigint, + amountInMaximum: bigint + ] & { + path: string; + recipient: string; + deadline: bigint; + amountOut: bigint; + amountInMaximum: bigint; + }; + + export type ExactOutputSingleParamsStruct = { + tokenIn: AddressLike; + tokenOut: AddressLike; + fee: BigNumberish; + recipient: AddressLike; + deadline: BigNumberish; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }; + + export type ExactOutputSingleParamsStructOutput = [ + tokenIn: string, + tokenOut: string, + fee: bigint, + recipient: string, + deadline: bigint, + amountOut: bigint, + amountInMaximum: bigint, + sqrtPriceLimitX96: bigint + ] & { + tokenIn: string; + tokenOut: string; + fee: bigint; + recipient: string; + deadline: bigint; + amountOut: bigint; + amountInMaximum: bigint; + sqrtPriceLimitX96: bigint; + }; +} + +export interface ISwapRouterInterface extends Interface { + getFunction( + nameOrSignature: + | "exactInput" + | "exactInputSingle" + | "exactOutput" + | "exactOutputSingle" + | "uniswapV3SwapCallback" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "exactInput", + values: [ISwapRouter.ExactInputParamsStruct] + ): string; + encodeFunctionData( + functionFragment: "exactInputSingle", + values: [ISwapRouter.ExactInputSingleParamsStruct] + ): string; + encodeFunctionData( + functionFragment: "exactOutput", + values: [ISwapRouter.ExactOutputParamsStruct] + ): string; + encodeFunctionData( + functionFragment: "exactOutputSingle", + values: [ISwapRouter.ExactOutputSingleParamsStruct] + ): string; + encodeFunctionData( + functionFragment: "uniswapV3SwapCallback", + values: [BigNumberish, BigNumberish, BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "exactInput", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "exactInputSingle", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "exactOutput", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "exactOutputSingle", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapV3SwapCallback", + data: BytesLike + ): Result; +} + +export interface ISwapRouter extends BaseContract { + connect(runner?: ContractRunner | null): ISwapRouter; + waitForDeployment(): Promise; + + interface: ISwapRouterInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + exactInput: TypedContractMethod< + [params: ISwapRouter.ExactInputParamsStruct], + [bigint], + "payable" + >; + + exactInputSingle: TypedContractMethod< + [params: ISwapRouter.ExactInputSingleParamsStruct], + [bigint], + "payable" + >; + + exactOutput: TypedContractMethod< + [params: ISwapRouter.ExactOutputParamsStruct], + [bigint], + "payable" + >; + + exactOutputSingle: TypedContractMethod< + [params: ISwapRouter.ExactOutputSingleParamsStruct], + [bigint], + "payable" + >; + + uniswapV3SwapCallback: TypedContractMethod< + [amount0Delta: BigNumberish, amount1Delta: BigNumberish, data: BytesLike], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "exactInput" + ): TypedContractMethod< + [params: ISwapRouter.ExactInputParamsStruct], + [bigint], + "payable" + >; + getFunction( + nameOrSignature: "exactInputSingle" + ): TypedContractMethod< + [params: ISwapRouter.ExactInputSingleParamsStruct], + [bigint], + "payable" + >; + getFunction( + nameOrSignature: "exactOutput" + ): TypedContractMethod< + [params: ISwapRouter.ExactOutputParamsStruct], + [bigint], + "payable" + >; + getFunction( + nameOrSignature: "exactOutputSingle" + ): TypedContractMethod< + [params: ISwapRouter.ExactOutputSingleParamsStruct], + [bigint], + "payable" + >; + getFunction( + nameOrSignature: "uniswapV3SwapCallback" + ): TypedContractMethod< + [amount0Delta: BigNumberish, amount1Delta: BigNumberish, data: BytesLike], + [void], + "nonpayable" + >; + + filters: {}; +} diff --git a/typechain-types/@uniswap/v3-periphery/contracts/interfaces/index.ts b/typechain-types/@uniswap/v3-periphery/contracts/interfaces/index.ts new file mode 100644 index 00000000..0286eebb --- /dev/null +++ b/typechain-types/@uniswap/v3-periphery/contracts/interfaces/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { ISwapRouter } from "./ISwapRouter"; diff --git a/typechain-types/@uniswap/v3-periphery/index.ts b/typechain-types/@uniswap/v3-periphery/index.ts new file mode 100644 index 00000000..a11e4ca2 --- /dev/null +++ b/typechain-types/@uniswap/v3-periphery/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as contracts from "./contracts"; +export type { contracts }; diff --git a/typechain-types/@zetachain/index.ts b/typechain-types/@zetachain/index.ts new file mode 100644 index 00000000..98ac4539 --- /dev/null +++ b/typechain-types/@zetachain/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as protocolContracts from "./protocol-contracts"; +export type { protocolContracts }; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/Errors.sol/INotSupportedMethods.ts b/typechain-types/@zetachain/protocol-contracts/contracts/Errors.sol/INotSupportedMethods.ts new file mode 100644 index 00000000..364a47e0 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/Errors.sol/INotSupportedMethods.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../../../../common"; + +export interface INotSupportedMethodsInterface extends Interface {} + +export interface INotSupportedMethods extends BaseContract { + connect(runner?: ContractRunner | null): INotSupportedMethods; + waitForDeployment(): Promise; + + interface: INotSupportedMethodsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/Errors.sol/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/Errors.sol/index.ts new file mode 100644 index 00000000..83223141 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/Errors.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { INotSupportedMethods } from "./INotSupportedMethods"; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/Revert.sol/Abortable.ts b/typechain-types/@zetachain/protocol-contracts/contracts/Revert.sol/Abortable.ts new file mode 100644 index 00000000..b5e28e8e --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/Revert.sol/Abortable.ts @@ -0,0 +1,122 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../../../common"; + +export type AbortContextStruct = { + sender: BytesLike; + asset: AddressLike; + amount: BigNumberish; + outgoing: boolean; + chainID: BigNumberish; + revertMessage: BytesLike; +}; + +export type AbortContextStructOutput = [ + sender: string, + asset: string, + amount: bigint, + outgoing: boolean, + chainID: bigint, + revertMessage: string +] & { + sender: string; + asset: string; + amount: bigint; + outgoing: boolean; + chainID: bigint; + revertMessage: string; +}; + +export interface AbortableInterface extends Interface { + getFunction(nameOrSignature: "onAbort"): FunctionFragment; + + encodeFunctionData( + functionFragment: "onAbort", + values: [AbortContextStruct] + ): string; + + decodeFunctionResult(functionFragment: "onAbort", data: BytesLike): Result; +} + +export interface Abortable extends BaseContract { + connect(runner?: ContractRunner | null): Abortable; + waitForDeployment(): Promise; + + interface: AbortableInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + onAbort: TypedContractMethod< + [abortContext: AbortContextStruct], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "onAbort" + ): TypedContractMethod< + [abortContext: AbortContextStruct], + [void], + "nonpayable" + >; + + filters: {}; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/Revert.sol/Revertable.ts b/typechain-types/@zetachain/protocol-contracts/contracts/Revert.sol/Revertable.ts new file mode 100644 index 00000000..072e91fe --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/Revert.sol/Revertable.ts @@ -0,0 +1,111 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../../../common"; + +export type RevertContextStruct = { + sender: AddressLike; + asset: AddressLike; + amount: BigNumberish; + revertMessage: BytesLike; +}; + +export type RevertContextStructOutput = [ + sender: string, + asset: string, + amount: bigint, + revertMessage: string +] & { sender: string; asset: string; amount: bigint; revertMessage: string }; + +export interface RevertableInterface extends Interface { + getFunction(nameOrSignature: "onRevert"): FunctionFragment; + + encodeFunctionData( + functionFragment: "onRevert", + values: [RevertContextStruct] + ): string; + + decodeFunctionResult(functionFragment: "onRevert", data: BytesLike): Result; +} + +export interface Revertable extends BaseContract { + connect(runner?: ContractRunner | null): Revertable; + waitForDeployment(): Promise; + + interface: RevertableInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + onRevert: TypedContractMethod< + [revertContext: RevertContextStruct], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "onRevert" + ): TypedContractMethod< + [revertContext: RevertContextStruct], + [void], + "nonpayable" + >; + + filters: {}; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/Revert.sol/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/Revert.sol/index.ts new file mode 100644 index 00000000..8900c08a --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/Revert.sol/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { Abortable } from "./Abortable"; +export type { Revertable } from "./Revertable"; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/ERC20Custody.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/ERC20Custody.ts new file mode 100644 index 00000000..fe4207af --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/evm/ERC20Custody.ts @@ -0,0 +1,1110 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../../common"; + +export type RevertContextStruct = { + sender: AddressLike; + asset: AddressLike; + amount: BigNumberish; + revertMessage: BytesLike; +}; + +export type RevertContextStructOutput = [ + sender: string, + asset: string, + amount: bigint, + revertMessage: string +] & { sender: string; asset: string; amount: bigint; revertMessage: string }; + +export type MessageContextStruct = { sender: AddressLike }; + +export type MessageContextStructOutput = [sender: string] & { sender: string }; + +export interface ERC20CustodyInterface extends Interface { + getFunction( + nameOrSignature: + | "DEFAULT_ADMIN_ROLE" + | "PAUSER_ROLE" + | "UPGRADE_INTERFACE_VERSION" + | "WHITELISTER_ROLE" + | "WITHDRAWER_ROLE" + | "deposit" + | "gateway" + | "getRoleAdmin" + | "grantRole" + | "hasRole" + | "initialize" + | "pause" + | "paused" + | "proxiableUUID" + | "renounceRole" + | "revokeRole" + | "setSupportsLegacy" + | "supportsInterface" + | "supportsLegacy" + | "tssAddress" + | "unpause" + | "unwhitelist" + | "updateTSSAddress" + | "upgradeToAndCall" + | "whitelist" + | "whitelisted" + | "withdraw" + | "withdrawAndCall" + | "withdrawAndRevert" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "Deposited" + | "Initialized" + | "Paused" + | "RoleAdminChanged" + | "RoleGranted" + | "RoleRevoked" + | "Unpaused" + | "Unwhitelisted" + | "UpdatedCustodyTSSAddress" + | "Upgraded" + | "Whitelisted" + | "Withdrawn" + | "WithdrawnAndCalled" + | "WithdrawnAndReverted" + ): EventFragment; + + encodeFunctionData( + functionFragment: "DEFAULT_ADMIN_ROLE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "PAUSER_ROLE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "UPGRADE_INTERFACE_VERSION", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "WHITELISTER_ROLE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "WITHDRAWER_ROLE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "deposit", + values: [BytesLike, AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData(functionFragment: "gateway", values?: undefined): string; + encodeFunctionData( + functionFragment: "getRoleAdmin", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "grantRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "hasRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "initialize", + values: [AddressLike, AddressLike, AddressLike] + ): string; + encodeFunctionData(functionFragment: "pause", values?: undefined): string; + encodeFunctionData(functionFragment: "paused", values?: undefined): string; + encodeFunctionData( + functionFragment: "proxiableUUID", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "renounceRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "revokeRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setSupportsLegacy", + values: [boolean] + ): string; + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "supportsLegacy", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "tssAddress", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "unpause", values?: undefined): string; + encodeFunctionData( + functionFragment: "unwhitelist", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "updateTSSAddress", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "upgradeToAndCall", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "whitelist", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "whitelisted", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "withdraw", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdrawAndCall", + values: [ + MessageContextStruct, + AddressLike, + AddressLike, + BigNumberish, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "withdrawAndRevert", + values: [ + AddressLike, + AddressLike, + BigNumberish, + BytesLike, + RevertContextStruct + ] + ): string; + + decodeFunctionResult( + functionFragment: "DEFAULT_ADMIN_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "PAUSER_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "UPGRADE_INTERFACE_VERSION", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "WHITELISTER_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "WITHDRAWER_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "gateway", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getRoleAdmin", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "pause", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "proxiableUUID", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "renounceRole", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "setSupportsLegacy", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "supportsInterface", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "supportsLegacy", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "tssAddress", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "unpause", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "unwhitelist", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "updateTSSAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "upgradeToAndCall", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "whitelist", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "whitelisted", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "withdrawAndCall", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdrawAndRevert", + data: BytesLike + ): Result; +} + +export namespace DepositedEvent { + export type InputTuple = [ + recipient: BytesLike, + asset: AddressLike, + amount: BigNumberish, + message: BytesLike + ]; + export type OutputTuple = [ + recipient: string, + asset: string, + amount: bigint, + message: string + ]; + export interface OutputObject { + recipient: string; + asset: string; + amount: bigint; + message: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace InitializedEvent { + export type InputTuple = [version: BigNumberish]; + export type OutputTuple = [version: bigint]; + export interface OutputObject { + version: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace PausedEvent { + export type InputTuple = [account: AddressLike]; + export type OutputTuple = [account: string]; + export interface OutputObject { + account: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleAdminChangedEvent { + export type InputTuple = [ + role: BytesLike, + previousAdminRole: BytesLike, + newAdminRole: BytesLike + ]; + export type OutputTuple = [ + role: string, + previousAdminRole: string, + newAdminRole: string + ]; + export interface OutputObject { + role: string; + previousAdminRole: string; + newAdminRole: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleGrantedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleRevokedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UnpausedEvent { + export type InputTuple = [account: AddressLike]; + export type OutputTuple = [account: string]; + export interface OutputObject { + account: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UnwhitelistedEvent { + export type InputTuple = [token: AddressLike]; + export type OutputTuple = [token: string]; + export interface OutputObject { + token: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpdatedCustodyTSSAddressEvent { + export type InputTuple = [ + oldTSSAddress: AddressLike, + newTSSAddress: AddressLike + ]; + export type OutputTuple = [oldTSSAddress: string, newTSSAddress: string]; + export interface OutputObject { + oldTSSAddress: string; + newTSSAddress: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpgradedEvent { + export type InputTuple = [implementation: AddressLike]; + export type OutputTuple = [implementation: string]; + export interface OutputObject { + implementation: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WhitelistedEvent { + export type InputTuple = [token: AddressLike]; + export type OutputTuple = [token: string]; + export interface OutputObject { + token: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawnEvent { + export type InputTuple = [ + to: AddressLike, + token: AddressLike, + amount: BigNumberish + ]; + export type OutputTuple = [to: string, token: string, amount: bigint]; + export interface OutputObject { + to: string; + token: string; + amount: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawnAndCalledEvent { + export type InputTuple = [ + to: AddressLike, + token: AddressLike, + amount: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [ + to: string, + token: string, + amount: bigint, + data: string + ]; + export interface OutputObject { + to: string; + token: string; + amount: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawnAndRevertedEvent { + export type InputTuple = [ + to: AddressLike, + token: AddressLike, + amount: BigNumberish, + data: BytesLike, + revertContext: RevertContextStruct + ]; + export type OutputTuple = [ + to: string, + token: string, + amount: bigint, + data: string, + revertContext: RevertContextStructOutput + ]; + export interface OutputObject { + to: string; + token: string; + amount: bigint; + data: string; + revertContext: RevertContextStructOutput; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ERC20Custody extends BaseContract { + connect(runner?: ContractRunner | null): ERC20Custody; + waitForDeployment(): Promise; + + interface: ERC20CustodyInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + DEFAULT_ADMIN_ROLE: TypedContractMethod<[], [string], "view">; + + PAUSER_ROLE: TypedContractMethod<[], [string], "view">; + + UPGRADE_INTERFACE_VERSION: TypedContractMethod<[], [string], "view">; + + WHITELISTER_ROLE: TypedContractMethod<[], [string], "view">; + + WITHDRAWER_ROLE: TypedContractMethod<[], [string], "view">; + + deposit: TypedContractMethod< + [ + recipient: BytesLike, + asset: AddressLike, + amount: BigNumberish, + message: BytesLike + ], + [void], + "nonpayable" + >; + + gateway: TypedContractMethod<[], [string], "view">; + + getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">; + + grantRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + hasRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + + initialize: TypedContractMethod< + [gateway_: AddressLike, tssAddress_: AddressLike, admin_: AddressLike], + [void], + "nonpayable" + >; + + pause: TypedContractMethod<[], [void], "nonpayable">; + + paused: TypedContractMethod<[], [boolean], "view">; + + proxiableUUID: TypedContractMethod<[], [string], "view">; + + renounceRole: TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + + revokeRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + setSupportsLegacy: TypedContractMethod< + [_supportsLegacy: boolean], + [void], + "nonpayable" + >; + + supportsInterface: TypedContractMethod< + [interfaceId: BytesLike], + [boolean], + "view" + >; + + supportsLegacy: TypedContractMethod<[], [boolean], "view">; + + tssAddress: TypedContractMethod<[], [string], "view">; + + unpause: TypedContractMethod<[], [void], "nonpayable">; + + unwhitelist: TypedContractMethod<[token: AddressLike], [void], "nonpayable">; + + updateTSSAddress: TypedContractMethod< + [newTSSAddress: AddressLike], + [void], + "nonpayable" + >; + + upgradeToAndCall: TypedContractMethod< + [newImplementation: AddressLike, data: BytesLike], + [void], + "payable" + >; + + whitelist: TypedContractMethod<[token: AddressLike], [void], "nonpayable">; + + whitelisted: TypedContractMethod<[arg0: AddressLike], [boolean], "view">; + + withdraw: TypedContractMethod< + [to: AddressLike, token: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + + withdrawAndCall: TypedContractMethod< + [ + messageContext: MessageContextStruct, + to: AddressLike, + token: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + + withdrawAndRevert: TypedContractMethod< + [ + to: AddressLike, + token: AddressLike, + amount: BigNumberish, + data: BytesLike, + revertContext: RevertContextStruct + ], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "DEFAULT_ADMIN_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "PAUSER_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "UPGRADE_INTERFACE_VERSION" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "WHITELISTER_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "WITHDRAWER_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "deposit" + ): TypedContractMethod< + [ + recipient: BytesLike, + asset: AddressLike, + amount: BigNumberish, + message: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "gateway" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "getRoleAdmin" + ): TypedContractMethod<[role: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "grantRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "hasRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + getFunction( + nameOrSignature: "initialize" + ): TypedContractMethod< + [gateway_: AddressLike, tssAddress_: AddressLike, admin_: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "pause" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "paused" + ): TypedContractMethod<[], [boolean], "view">; + getFunction( + nameOrSignature: "proxiableUUID" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "renounceRole" + ): TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "revokeRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setSupportsLegacy" + ): TypedContractMethod<[_supportsLegacy: boolean], [void], "nonpayable">; + getFunction( + nameOrSignature: "supportsInterface" + ): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; + getFunction( + nameOrSignature: "supportsLegacy" + ): TypedContractMethod<[], [boolean], "view">; + getFunction( + nameOrSignature: "tssAddress" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "unpause" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "unwhitelist" + ): TypedContractMethod<[token: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "updateTSSAddress" + ): TypedContractMethod<[newTSSAddress: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "upgradeToAndCall" + ): TypedContractMethod< + [newImplementation: AddressLike, data: BytesLike], + [void], + "payable" + >; + getFunction( + nameOrSignature: "whitelist" + ): TypedContractMethod<[token: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "whitelisted" + ): TypedContractMethod<[arg0: AddressLike], [boolean], "view">; + getFunction( + nameOrSignature: "withdraw" + ): TypedContractMethod< + [to: AddressLike, token: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawAndCall" + ): TypedContractMethod< + [ + messageContext: MessageContextStruct, + to: AddressLike, + token: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawAndRevert" + ): TypedContractMethod< + [ + to: AddressLike, + token: AddressLike, + amount: BigNumberish, + data: BytesLike, + revertContext: RevertContextStruct + ], + [void], + "nonpayable" + >; + + getEvent( + key: "Deposited" + ): TypedContractEvent< + DepositedEvent.InputTuple, + DepositedEvent.OutputTuple, + DepositedEvent.OutputObject + >; + getEvent( + key: "Initialized" + ): TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + getEvent( + key: "Paused" + ): TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + getEvent( + key: "RoleAdminChanged" + ): TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + getEvent( + key: "RoleGranted" + ): TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + getEvent( + key: "RoleRevoked" + ): TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + getEvent( + key: "Unpaused" + ): TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + getEvent( + key: "Unwhitelisted" + ): TypedContractEvent< + UnwhitelistedEvent.InputTuple, + UnwhitelistedEvent.OutputTuple, + UnwhitelistedEvent.OutputObject + >; + getEvent( + key: "UpdatedCustodyTSSAddress" + ): TypedContractEvent< + UpdatedCustodyTSSAddressEvent.InputTuple, + UpdatedCustodyTSSAddressEvent.OutputTuple, + UpdatedCustodyTSSAddressEvent.OutputObject + >; + getEvent( + key: "Upgraded" + ): TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + getEvent( + key: "Whitelisted" + ): TypedContractEvent< + WhitelistedEvent.InputTuple, + WhitelistedEvent.OutputTuple, + WhitelistedEvent.OutputObject + >; + getEvent( + key: "Withdrawn" + ): TypedContractEvent< + WithdrawnEvent.InputTuple, + WithdrawnEvent.OutputTuple, + WithdrawnEvent.OutputObject + >; + getEvent( + key: "WithdrawnAndCalled" + ): TypedContractEvent< + WithdrawnAndCalledEvent.InputTuple, + WithdrawnAndCalledEvent.OutputTuple, + WithdrawnAndCalledEvent.OutputObject + >; + getEvent( + key: "WithdrawnAndReverted" + ): TypedContractEvent< + WithdrawnAndRevertedEvent.InputTuple, + WithdrawnAndRevertedEvent.OutputTuple, + WithdrawnAndRevertedEvent.OutputObject + >; + + filters: { + "Deposited(bytes,address,uint256,bytes)": TypedContractEvent< + DepositedEvent.InputTuple, + DepositedEvent.OutputTuple, + DepositedEvent.OutputObject + >; + Deposited: TypedContractEvent< + DepositedEvent.InputTuple, + DepositedEvent.OutputTuple, + DepositedEvent.OutputObject + >; + + "Initialized(uint64)": TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + Initialized: TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + + "Paused(address)": TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + Paused: TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + + "RoleAdminChanged(bytes32,bytes32,bytes32)": TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + RoleAdminChanged: TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + + "RoleGranted(bytes32,address,address)": TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + RoleGranted: TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + + "RoleRevoked(bytes32,address,address)": TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + RoleRevoked: TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + + "Unpaused(address)": TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + Unpaused: TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + + "Unwhitelisted(address)": TypedContractEvent< + UnwhitelistedEvent.InputTuple, + UnwhitelistedEvent.OutputTuple, + UnwhitelistedEvent.OutputObject + >; + Unwhitelisted: TypedContractEvent< + UnwhitelistedEvent.InputTuple, + UnwhitelistedEvent.OutputTuple, + UnwhitelistedEvent.OutputObject + >; + + "UpdatedCustodyTSSAddress(address,address)": TypedContractEvent< + UpdatedCustodyTSSAddressEvent.InputTuple, + UpdatedCustodyTSSAddressEvent.OutputTuple, + UpdatedCustodyTSSAddressEvent.OutputObject + >; + UpdatedCustodyTSSAddress: TypedContractEvent< + UpdatedCustodyTSSAddressEvent.InputTuple, + UpdatedCustodyTSSAddressEvent.OutputTuple, + UpdatedCustodyTSSAddressEvent.OutputObject + >; + + "Upgraded(address)": TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + Upgraded: TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + + "Whitelisted(address)": TypedContractEvent< + WhitelistedEvent.InputTuple, + WhitelistedEvent.OutputTuple, + WhitelistedEvent.OutputObject + >; + Whitelisted: TypedContractEvent< + WhitelistedEvent.InputTuple, + WhitelistedEvent.OutputTuple, + WhitelistedEvent.OutputObject + >; + + "Withdrawn(address,address,uint256)": TypedContractEvent< + WithdrawnEvent.InputTuple, + WithdrawnEvent.OutputTuple, + WithdrawnEvent.OutputObject + >; + Withdrawn: TypedContractEvent< + WithdrawnEvent.InputTuple, + WithdrawnEvent.OutputTuple, + WithdrawnEvent.OutputObject + >; + + "WithdrawnAndCalled(address,address,uint256,bytes)": TypedContractEvent< + WithdrawnAndCalledEvent.InputTuple, + WithdrawnAndCalledEvent.OutputTuple, + WithdrawnAndCalledEvent.OutputObject + >; + WithdrawnAndCalled: TypedContractEvent< + WithdrawnAndCalledEvent.InputTuple, + WithdrawnAndCalledEvent.OutputTuple, + WithdrawnAndCalledEvent.OutputObject + >; + + "WithdrawnAndReverted(address,address,uint256,bytes,tuple)": TypedContractEvent< + WithdrawnAndRevertedEvent.InputTuple, + WithdrawnAndRevertedEvent.OutputTuple, + WithdrawnAndRevertedEvent.OutputObject + >; + WithdrawnAndReverted: TypedContractEvent< + WithdrawnAndRevertedEvent.InputTuple, + WithdrawnAndRevertedEvent.OutputTuple, + WithdrawnAndRevertedEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/GatewayEVM.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/GatewayEVM.ts new file mode 100644 index 00000000..46a3fe54 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/evm/GatewayEVM.ts @@ -0,0 +1,1322 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../../common"; + +export type RevertOptionsStruct = { + revertAddress: AddressLike; + callOnRevert: boolean; + abortAddress: AddressLike; + revertMessage: BytesLike; + onRevertGasLimit: BigNumberish; +}; + +export type RevertOptionsStructOutput = [ + revertAddress: string, + callOnRevert: boolean, + abortAddress: string, + revertMessage: string, + onRevertGasLimit: bigint +] & { + revertAddress: string; + callOnRevert: boolean; + abortAddress: string; + revertMessage: string; + onRevertGasLimit: bigint; +}; + +export type RevertContextStruct = { + sender: AddressLike; + asset: AddressLike; + amount: BigNumberish; + revertMessage: BytesLike; +}; + +export type RevertContextStructOutput = [ + sender: string, + asset: string, + amount: bigint, + revertMessage: string +] & { sender: string; asset: string; amount: bigint; revertMessage: string }; + +export type MessageContextStruct = { sender: AddressLike }; + +export type MessageContextStructOutput = [sender: string] & { sender: string }; + +export interface GatewayEVMInterface extends Interface { + getFunction( + nameOrSignature: + | "ASSET_HANDLER_ROLE" + | "DEFAULT_ADMIN_ROLE" + | "MAX_PAYLOAD_SIZE" + | "PAUSER_ROLE" + | "TSS_ROLE" + | "UPGRADE_INTERFACE_VERSION" + | "call" + | "custody" + | "deposit(address,uint256,address,(address,bool,address,bytes,uint256))" + | "deposit(address,(address,bool,address,bytes,uint256))" + | "depositAndCall(address,bytes,(address,bool,address,bytes,uint256))" + | "depositAndCall(address,uint256,address,bytes,(address,bool,address,bytes,uint256))" + | "execute" + | "executeRevert" + | "executeWithERC20" + | "getRoleAdmin" + | "grantRole" + | "hasRole" + | "initialize" + | "pause" + | "paused" + | "proxiableUUID" + | "renounceRole" + | "revertWithERC20" + | "revokeRole" + | "setConnector" + | "setCustody" + | "supportsInterface" + | "tssAddress" + | "unpause" + | "updateTSSAddress" + | "upgradeToAndCall" + | "zetaConnector" + | "zetaToken" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "Called" + | "Deposited" + | "DepositedAndCalled" + | "Executed" + | "ExecutedWithERC20" + | "Initialized" + | "Paused" + | "Reverted" + | "RoleAdminChanged" + | "RoleGranted" + | "RoleRevoked" + | "Unpaused" + | "UpdatedGatewayTSSAddress" + | "Upgraded" + ): EventFragment; + + encodeFunctionData( + functionFragment: "ASSET_HANDLER_ROLE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "DEFAULT_ADMIN_ROLE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "MAX_PAYLOAD_SIZE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "PAUSER_ROLE", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "TSS_ROLE", values?: undefined): string; + encodeFunctionData( + functionFragment: "UPGRADE_INTERFACE_VERSION", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "call", + values: [AddressLike, BytesLike, RevertOptionsStruct] + ): string; + encodeFunctionData(functionFragment: "custody", values?: undefined): string; + encodeFunctionData( + functionFragment: "deposit(address,uint256,address,(address,bool,address,bytes,uint256))", + values: [AddressLike, BigNumberish, AddressLike, RevertOptionsStruct] + ): string; + encodeFunctionData( + functionFragment: "deposit(address,(address,bool,address,bytes,uint256))", + values: [AddressLike, RevertOptionsStruct] + ): string; + encodeFunctionData( + functionFragment: "depositAndCall(address,bytes,(address,bool,address,bytes,uint256))", + values: [AddressLike, BytesLike, RevertOptionsStruct] + ): string; + encodeFunctionData( + functionFragment: "depositAndCall(address,uint256,address,bytes,(address,bool,address,bytes,uint256))", + values: [ + AddressLike, + BigNumberish, + AddressLike, + BytesLike, + RevertOptionsStruct + ] + ): string; + encodeFunctionData( + functionFragment: "execute", + values: [MessageContextStruct, AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "executeRevert", + values: [AddressLike, BytesLike, RevertContextStruct] + ): string; + encodeFunctionData( + functionFragment: "executeWithERC20", + values: [ + MessageContextStruct, + AddressLike, + AddressLike, + BigNumberish, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "getRoleAdmin", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "grantRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "hasRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "initialize", + values: [AddressLike, AddressLike, AddressLike] + ): string; + encodeFunctionData(functionFragment: "pause", values?: undefined): string; + encodeFunctionData(functionFragment: "paused", values?: undefined): string; + encodeFunctionData( + functionFragment: "proxiableUUID", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "renounceRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "revertWithERC20", + values: [ + AddressLike, + AddressLike, + BigNumberish, + BytesLike, + RevertContextStruct + ] + ): string; + encodeFunctionData( + functionFragment: "revokeRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setConnector", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setCustody", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "tssAddress", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "unpause", values?: undefined): string; + encodeFunctionData( + functionFragment: "updateTSSAddress", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "upgradeToAndCall", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "zetaConnector", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "zetaToken", values?: undefined): string; + + decodeFunctionResult( + functionFragment: "ASSET_HANDLER_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "DEFAULT_ADMIN_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "MAX_PAYLOAD_SIZE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "PAUSER_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "TSS_ROLE", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "UPGRADE_INTERFACE_VERSION", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "call", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "custody", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "deposit(address,uint256,address,(address,bool,address,bytes,uint256))", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deposit(address,(address,bool,address,bytes,uint256))", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "depositAndCall(address,bytes,(address,bool,address,bytes,uint256))", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "depositAndCall(address,uint256,address,bytes,(address,bool,address,bytes,uint256))", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "execute", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "executeRevert", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "executeWithERC20", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getRoleAdmin", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "pause", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "proxiableUUID", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "renounceRole", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "revertWithERC20", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "setConnector", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "setCustody", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "supportsInterface", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "tssAddress", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "unpause", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "updateTSSAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "upgradeToAndCall", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "zetaConnector", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "zetaToken", data: BytesLike): Result; +} + +export namespace CalledEvent { + export type InputTuple = [ + sender: AddressLike, + receiver: AddressLike, + payload: BytesLike, + revertOptions: RevertOptionsStruct + ]; + export type OutputTuple = [ + sender: string, + receiver: string, + payload: string, + revertOptions: RevertOptionsStructOutput + ]; + export interface OutputObject { + sender: string; + receiver: string; + payload: string; + revertOptions: RevertOptionsStructOutput; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace DepositedEvent { + export type InputTuple = [ + sender: AddressLike, + receiver: AddressLike, + amount: BigNumberish, + asset: AddressLike, + payload: BytesLike, + revertOptions: RevertOptionsStruct + ]; + export type OutputTuple = [ + sender: string, + receiver: string, + amount: bigint, + asset: string, + payload: string, + revertOptions: RevertOptionsStructOutput + ]; + export interface OutputObject { + sender: string; + receiver: string; + amount: bigint; + asset: string; + payload: string; + revertOptions: RevertOptionsStructOutput; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace DepositedAndCalledEvent { + export type InputTuple = [ + sender: AddressLike, + receiver: AddressLike, + amount: BigNumberish, + asset: AddressLike, + payload: BytesLike, + revertOptions: RevertOptionsStruct + ]; + export type OutputTuple = [ + sender: string, + receiver: string, + amount: bigint, + asset: string, + payload: string, + revertOptions: RevertOptionsStructOutput + ]; + export interface OutputObject { + sender: string; + receiver: string; + amount: bigint; + asset: string; + payload: string; + revertOptions: RevertOptionsStructOutput; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ExecutedEvent { + export type InputTuple = [ + destination: AddressLike, + value: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [destination: string, value: bigint, data: string]; + export interface OutputObject { + destination: string; + value: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ExecutedWithERC20Event { + export type InputTuple = [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [ + token: string, + to: string, + amount: bigint, + data: string + ]; + export interface OutputObject { + token: string; + to: string; + amount: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace InitializedEvent { + export type InputTuple = [version: BigNumberish]; + export type OutputTuple = [version: bigint]; + export interface OutputObject { + version: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace PausedEvent { + export type InputTuple = [account: AddressLike]; + export type OutputTuple = [account: string]; + export interface OutputObject { + account: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RevertedEvent { + export type InputTuple = [ + to: AddressLike, + token: AddressLike, + amount: BigNumberish, + data: BytesLike, + revertContext: RevertContextStruct + ]; + export type OutputTuple = [ + to: string, + token: string, + amount: bigint, + data: string, + revertContext: RevertContextStructOutput + ]; + export interface OutputObject { + to: string; + token: string; + amount: bigint; + data: string; + revertContext: RevertContextStructOutput; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleAdminChangedEvent { + export type InputTuple = [ + role: BytesLike, + previousAdminRole: BytesLike, + newAdminRole: BytesLike + ]; + export type OutputTuple = [ + role: string, + previousAdminRole: string, + newAdminRole: string + ]; + export interface OutputObject { + role: string; + previousAdminRole: string; + newAdminRole: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleGrantedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleRevokedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UnpausedEvent { + export type InputTuple = [account: AddressLike]; + export type OutputTuple = [account: string]; + export interface OutputObject { + account: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpdatedGatewayTSSAddressEvent { + export type InputTuple = [ + oldTSSAddress: AddressLike, + newTSSAddress: AddressLike + ]; + export type OutputTuple = [oldTSSAddress: string, newTSSAddress: string]; + export interface OutputObject { + oldTSSAddress: string; + newTSSAddress: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpgradedEvent { + export type InputTuple = [implementation: AddressLike]; + export type OutputTuple = [implementation: string]; + export interface OutputObject { + implementation: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface GatewayEVM extends BaseContract { + connect(runner?: ContractRunner | null): GatewayEVM; + waitForDeployment(): Promise; + + interface: GatewayEVMInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + ASSET_HANDLER_ROLE: TypedContractMethod<[], [string], "view">; + + DEFAULT_ADMIN_ROLE: TypedContractMethod<[], [string], "view">; + + MAX_PAYLOAD_SIZE: TypedContractMethod<[], [bigint], "view">; + + PAUSER_ROLE: TypedContractMethod<[], [string], "view">; + + TSS_ROLE: TypedContractMethod<[], [string], "view">; + + UPGRADE_INTERFACE_VERSION: TypedContractMethod<[], [string], "view">; + + call: TypedContractMethod< + [ + receiver: AddressLike, + payload: BytesLike, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + + custody: TypedContractMethod<[], [string], "view">; + + "deposit(address,uint256,address,(address,bool,address,bytes,uint256))": TypedContractMethod< + [ + receiver: AddressLike, + amount: BigNumberish, + asset: AddressLike, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + + "deposit(address,(address,bool,address,bytes,uint256))": TypedContractMethod< + [receiver: AddressLike, revertOptions: RevertOptionsStruct], + [void], + "payable" + >; + + "depositAndCall(address,bytes,(address,bool,address,bytes,uint256))": TypedContractMethod< + [ + receiver: AddressLike, + payload: BytesLike, + revertOptions: RevertOptionsStruct + ], + [void], + "payable" + >; + + "depositAndCall(address,uint256,address,bytes,(address,bool,address,bytes,uint256))": TypedContractMethod< + [ + receiver: AddressLike, + amount: BigNumberish, + asset: AddressLike, + payload: BytesLike, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + + execute: TypedContractMethod< + [ + messageContext: MessageContextStruct, + destination: AddressLike, + data: BytesLike + ], + [string], + "payable" + >; + + executeRevert: TypedContractMethod< + [ + destination: AddressLike, + data: BytesLike, + revertContext: RevertContextStruct + ], + [void], + "payable" + >; + + executeWithERC20: TypedContractMethod< + [ + messageContext: MessageContextStruct, + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + + getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">; + + grantRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + hasRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + + initialize: TypedContractMethod< + [tssAddress_: AddressLike, zetaToken_: AddressLike, admin_: AddressLike], + [void], + "nonpayable" + >; + + pause: TypedContractMethod<[], [void], "nonpayable">; + + paused: TypedContractMethod<[], [boolean], "view">; + + proxiableUUID: TypedContractMethod<[], [string], "view">; + + renounceRole: TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + + revertWithERC20: TypedContractMethod< + [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike, + revertContext: RevertContextStruct + ], + [void], + "nonpayable" + >; + + revokeRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + setConnector: TypedContractMethod< + [zetaConnector_: AddressLike], + [void], + "nonpayable" + >; + + setCustody: TypedContractMethod< + [custody_: AddressLike], + [void], + "nonpayable" + >; + + supportsInterface: TypedContractMethod< + [interfaceId: BytesLike], + [boolean], + "view" + >; + + tssAddress: TypedContractMethod<[], [string], "view">; + + unpause: TypedContractMethod<[], [void], "nonpayable">; + + updateTSSAddress: TypedContractMethod< + [newTSSAddress: AddressLike], + [void], + "nonpayable" + >; + + upgradeToAndCall: TypedContractMethod< + [newImplementation: AddressLike, data: BytesLike], + [void], + "payable" + >; + + zetaConnector: TypedContractMethod<[], [string], "view">; + + zetaToken: TypedContractMethod<[], [string], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "ASSET_HANDLER_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "DEFAULT_ADMIN_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "MAX_PAYLOAD_SIZE" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "PAUSER_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "TSS_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "UPGRADE_INTERFACE_VERSION" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "call" + ): TypedContractMethod< + [ + receiver: AddressLike, + payload: BytesLike, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "custody" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "deposit(address,uint256,address,(address,bool,address,bytes,uint256))" + ): TypedContractMethod< + [ + receiver: AddressLike, + amount: BigNumberish, + asset: AddressLike, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "deposit(address,(address,bool,address,bytes,uint256))" + ): TypedContractMethod< + [receiver: AddressLike, revertOptions: RevertOptionsStruct], + [void], + "payable" + >; + getFunction( + nameOrSignature: "depositAndCall(address,bytes,(address,bool,address,bytes,uint256))" + ): TypedContractMethod< + [ + receiver: AddressLike, + payload: BytesLike, + revertOptions: RevertOptionsStruct + ], + [void], + "payable" + >; + getFunction( + nameOrSignature: "depositAndCall(address,uint256,address,bytes,(address,bool,address,bytes,uint256))" + ): TypedContractMethod< + [ + receiver: AddressLike, + amount: BigNumberish, + asset: AddressLike, + payload: BytesLike, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "execute" + ): TypedContractMethod< + [ + messageContext: MessageContextStruct, + destination: AddressLike, + data: BytesLike + ], + [string], + "payable" + >; + getFunction( + nameOrSignature: "executeRevert" + ): TypedContractMethod< + [ + destination: AddressLike, + data: BytesLike, + revertContext: RevertContextStruct + ], + [void], + "payable" + >; + getFunction( + nameOrSignature: "executeWithERC20" + ): TypedContractMethod< + [ + messageContext: MessageContextStruct, + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "getRoleAdmin" + ): TypedContractMethod<[role: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "grantRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "hasRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + getFunction( + nameOrSignature: "initialize" + ): TypedContractMethod< + [tssAddress_: AddressLike, zetaToken_: AddressLike, admin_: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "pause" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "paused" + ): TypedContractMethod<[], [boolean], "view">; + getFunction( + nameOrSignature: "proxiableUUID" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "renounceRole" + ): TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "revertWithERC20" + ): TypedContractMethod< + [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike, + revertContext: RevertContextStruct + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "revokeRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setConnector" + ): TypedContractMethod<[zetaConnector_: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "setCustody" + ): TypedContractMethod<[custody_: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "supportsInterface" + ): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; + getFunction( + nameOrSignature: "tssAddress" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "unpause" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "updateTSSAddress" + ): TypedContractMethod<[newTSSAddress: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "upgradeToAndCall" + ): TypedContractMethod< + [newImplementation: AddressLike, data: BytesLike], + [void], + "payable" + >; + getFunction( + nameOrSignature: "zetaConnector" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "zetaToken" + ): TypedContractMethod<[], [string], "view">; + + getEvent( + key: "Called" + ): TypedContractEvent< + CalledEvent.InputTuple, + CalledEvent.OutputTuple, + CalledEvent.OutputObject + >; + getEvent( + key: "Deposited" + ): TypedContractEvent< + DepositedEvent.InputTuple, + DepositedEvent.OutputTuple, + DepositedEvent.OutputObject + >; + getEvent( + key: "DepositedAndCalled" + ): TypedContractEvent< + DepositedAndCalledEvent.InputTuple, + DepositedAndCalledEvent.OutputTuple, + DepositedAndCalledEvent.OutputObject + >; + getEvent( + key: "Executed" + ): TypedContractEvent< + ExecutedEvent.InputTuple, + ExecutedEvent.OutputTuple, + ExecutedEvent.OutputObject + >; + getEvent( + key: "ExecutedWithERC20" + ): TypedContractEvent< + ExecutedWithERC20Event.InputTuple, + ExecutedWithERC20Event.OutputTuple, + ExecutedWithERC20Event.OutputObject + >; + getEvent( + key: "Initialized" + ): TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + getEvent( + key: "Paused" + ): TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + getEvent( + key: "Reverted" + ): TypedContractEvent< + RevertedEvent.InputTuple, + RevertedEvent.OutputTuple, + RevertedEvent.OutputObject + >; + getEvent( + key: "RoleAdminChanged" + ): TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + getEvent( + key: "RoleGranted" + ): TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + getEvent( + key: "RoleRevoked" + ): TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + getEvent( + key: "Unpaused" + ): TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + getEvent( + key: "UpdatedGatewayTSSAddress" + ): TypedContractEvent< + UpdatedGatewayTSSAddressEvent.InputTuple, + UpdatedGatewayTSSAddressEvent.OutputTuple, + UpdatedGatewayTSSAddressEvent.OutputObject + >; + getEvent( + key: "Upgraded" + ): TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + + filters: { + "Called(address,address,bytes,tuple)": TypedContractEvent< + CalledEvent.InputTuple, + CalledEvent.OutputTuple, + CalledEvent.OutputObject + >; + Called: TypedContractEvent< + CalledEvent.InputTuple, + CalledEvent.OutputTuple, + CalledEvent.OutputObject + >; + + "Deposited(address,address,uint256,address,bytes,tuple)": TypedContractEvent< + DepositedEvent.InputTuple, + DepositedEvent.OutputTuple, + DepositedEvent.OutputObject + >; + Deposited: TypedContractEvent< + DepositedEvent.InputTuple, + DepositedEvent.OutputTuple, + DepositedEvent.OutputObject + >; + + "DepositedAndCalled(address,address,uint256,address,bytes,tuple)": TypedContractEvent< + DepositedAndCalledEvent.InputTuple, + DepositedAndCalledEvent.OutputTuple, + DepositedAndCalledEvent.OutputObject + >; + DepositedAndCalled: TypedContractEvent< + DepositedAndCalledEvent.InputTuple, + DepositedAndCalledEvent.OutputTuple, + DepositedAndCalledEvent.OutputObject + >; + + "Executed(address,uint256,bytes)": TypedContractEvent< + ExecutedEvent.InputTuple, + ExecutedEvent.OutputTuple, + ExecutedEvent.OutputObject + >; + Executed: TypedContractEvent< + ExecutedEvent.InputTuple, + ExecutedEvent.OutputTuple, + ExecutedEvent.OutputObject + >; + + "ExecutedWithERC20(address,address,uint256,bytes)": TypedContractEvent< + ExecutedWithERC20Event.InputTuple, + ExecutedWithERC20Event.OutputTuple, + ExecutedWithERC20Event.OutputObject + >; + ExecutedWithERC20: TypedContractEvent< + ExecutedWithERC20Event.InputTuple, + ExecutedWithERC20Event.OutputTuple, + ExecutedWithERC20Event.OutputObject + >; + + "Initialized(uint64)": TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + Initialized: TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + + "Paused(address)": TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + Paused: TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + + "Reverted(address,address,uint256,bytes,tuple)": TypedContractEvent< + RevertedEvent.InputTuple, + RevertedEvent.OutputTuple, + RevertedEvent.OutputObject + >; + Reverted: TypedContractEvent< + RevertedEvent.InputTuple, + RevertedEvent.OutputTuple, + RevertedEvent.OutputObject + >; + + "RoleAdminChanged(bytes32,bytes32,bytes32)": TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + RoleAdminChanged: TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + + "RoleGranted(bytes32,address,address)": TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + RoleGranted: TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + + "RoleRevoked(bytes32,address,address)": TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + RoleRevoked: TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + + "Unpaused(address)": TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + Unpaused: TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + + "UpdatedGatewayTSSAddress(address,address)": TypedContractEvent< + UpdatedGatewayTSSAddressEvent.InputTuple, + UpdatedGatewayTSSAddressEvent.OutputTuple, + UpdatedGatewayTSSAddressEvent.OutputObject + >; + UpdatedGatewayTSSAddress: TypedContractEvent< + UpdatedGatewayTSSAddressEvent.InputTuple, + UpdatedGatewayTSSAddressEvent.OutputTuple, + UpdatedGatewayTSSAddressEvent.OutputObject + >; + + "Upgraded(address)": TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + Upgraded: TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorBase.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorBase.ts new file mode 100644 index 00000000..e3e648f9 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorBase.ts @@ -0,0 +1,919 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../../common"; + +export type RevertContextStruct = { + sender: AddressLike; + asset: AddressLike; + amount: BigNumberish; + revertMessage: BytesLike; +}; + +export type RevertContextStructOutput = [ + sender: string, + asset: string, + amount: bigint, + revertMessage: string +] & { sender: string; asset: string; amount: bigint; revertMessage: string }; + +export type MessageContextStruct = { sender: AddressLike }; + +export type MessageContextStructOutput = [sender: string] & { sender: string }; + +export interface ZetaConnectorBaseInterface extends Interface { + getFunction( + nameOrSignature: + | "DEFAULT_ADMIN_ROLE" + | "PAUSER_ROLE" + | "TSS_ROLE" + | "UPGRADE_INTERFACE_VERSION" + | "WITHDRAWER_ROLE" + | "gateway" + | "getRoleAdmin" + | "grantRole" + | "hasRole" + | "initialize" + | "pause" + | "paused" + | "proxiableUUID" + | "receiveTokens" + | "renounceRole" + | "revokeRole" + | "supportsInterface" + | "tssAddress" + | "unpause" + | "updateTSSAddress" + | "upgradeToAndCall" + | "withdraw" + | "withdrawAndCall" + | "withdrawAndRevert" + | "zetaToken" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "Initialized" + | "Paused" + | "RoleAdminChanged" + | "RoleGranted" + | "RoleRevoked" + | "Unpaused" + | "UpdatedZetaConnectorTSSAddress" + | "Upgraded" + | "Withdrawn" + | "WithdrawnAndCalled" + | "WithdrawnAndReverted" + ): EventFragment; + + encodeFunctionData( + functionFragment: "DEFAULT_ADMIN_ROLE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "PAUSER_ROLE", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "TSS_ROLE", values?: undefined): string; + encodeFunctionData( + functionFragment: "UPGRADE_INTERFACE_VERSION", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "WITHDRAWER_ROLE", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "gateway", values?: undefined): string; + encodeFunctionData( + functionFragment: "getRoleAdmin", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "grantRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "hasRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "initialize", + values: [AddressLike, AddressLike, AddressLike, AddressLike] + ): string; + encodeFunctionData(functionFragment: "pause", values?: undefined): string; + encodeFunctionData(functionFragment: "paused", values?: undefined): string; + encodeFunctionData( + functionFragment: "proxiableUUID", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "receiveTokens", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "renounceRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "revokeRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "tssAddress", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "unpause", values?: undefined): string; + encodeFunctionData( + functionFragment: "updateTSSAddress", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "upgradeToAndCall", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "withdraw", + values: [AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "withdrawAndCall", + values: [ + MessageContextStruct, + AddressLike, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "withdrawAndRevert", + values: [ + AddressLike, + BigNumberish, + BytesLike, + BytesLike, + RevertContextStruct + ] + ): string; + encodeFunctionData(functionFragment: "zetaToken", values?: undefined): string; + + decodeFunctionResult( + functionFragment: "DEFAULT_ADMIN_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "PAUSER_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "TSS_ROLE", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "UPGRADE_INTERFACE_VERSION", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "WITHDRAWER_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "gateway", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getRoleAdmin", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "pause", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "proxiableUUID", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "receiveTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "renounceRole", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "supportsInterface", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "tssAddress", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "unpause", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "updateTSSAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "upgradeToAndCall", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "withdrawAndCall", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdrawAndRevert", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "zetaToken", data: BytesLike): Result; +} + +export namespace InitializedEvent { + export type InputTuple = [version: BigNumberish]; + export type OutputTuple = [version: bigint]; + export interface OutputObject { + version: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace PausedEvent { + export type InputTuple = [account: AddressLike]; + export type OutputTuple = [account: string]; + export interface OutputObject { + account: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleAdminChangedEvent { + export type InputTuple = [ + role: BytesLike, + previousAdminRole: BytesLike, + newAdminRole: BytesLike + ]; + export type OutputTuple = [ + role: string, + previousAdminRole: string, + newAdminRole: string + ]; + export interface OutputObject { + role: string; + previousAdminRole: string; + newAdminRole: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleGrantedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleRevokedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UnpausedEvent { + export type InputTuple = [account: AddressLike]; + export type OutputTuple = [account: string]; + export interface OutputObject { + account: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpdatedZetaConnectorTSSAddressEvent { + export type InputTuple = [ + oldTSSAddress: AddressLike, + newTSSAddress: AddressLike + ]; + export type OutputTuple = [oldTSSAddress: string, newTSSAddress: string]; + export interface OutputObject { + oldTSSAddress: string; + newTSSAddress: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpgradedEvent { + export type InputTuple = [implementation: AddressLike]; + export type OutputTuple = [implementation: string]; + export interface OutputObject { + implementation: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawnEvent { + export type InputTuple = [to: AddressLike, amount: BigNumberish]; + export type OutputTuple = [to: string, amount: bigint]; + export interface OutputObject { + to: string; + amount: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawnAndCalledEvent { + export type InputTuple = [ + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [to: string, amount: bigint, data: string]; + export interface OutputObject { + to: string; + amount: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawnAndRevertedEvent { + export type InputTuple = [ + to: AddressLike, + amount: BigNumberish, + data: BytesLike, + revertContext: RevertContextStruct + ]; + export type OutputTuple = [ + to: string, + amount: bigint, + data: string, + revertContext: RevertContextStructOutput + ]; + export interface OutputObject { + to: string; + amount: bigint; + data: string; + revertContext: RevertContextStructOutput; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ZetaConnectorBase extends BaseContract { + connect(runner?: ContractRunner | null): ZetaConnectorBase; + waitForDeployment(): Promise; + + interface: ZetaConnectorBaseInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + DEFAULT_ADMIN_ROLE: TypedContractMethod<[], [string], "view">; + + PAUSER_ROLE: TypedContractMethod<[], [string], "view">; + + TSS_ROLE: TypedContractMethod<[], [string], "view">; + + UPGRADE_INTERFACE_VERSION: TypedContractMethod<[], [string], "view">; + + WITHDRAWER_ROLE: TypedContractMethod<[], [string], "view">; + + gateway: TypedContractMethod<[], [string], "view">; + + getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">; + + grantRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + hasRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + + initialize: TypedContractMethod< + [ + gateway_: AddressLike, + zetaToken_: AddressLike, + tssAddress_: AddressLike, + admin_: AddressLike + ], + [void], + "nonpayable" + >; + + pause: TypedContractMethod<[], [void], "nonpayable">; + + paused: TypedContractMethod<[], [boolean], "view">; + + proxiableUUID: TypedContractMethod<[], [string], "view">; + + receiveTokens: TypedContractMethod< + [amount: BigNumberish], + [void], + "nonpayable" + >; + + renounceRole: TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + + revokeRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + supportsInterface: TypedContractMethod< + [interfaceId: BytesLike], + [boolean], + "view" + >; + + tssAddress: TypedContractMethod<[], [string], "view">; + + unpause: TypedContractMethod<[], [void], "nonpayable">; + + updateTSSAddress: TypedContractMethod< + [newTSSAddress: AddressLike], + [void], + "nonpayable" + >; + + upgradeToAndCall: TypedContractMethod< + [newImplementation: AddressLike, data: BytesLike], + [void], + "payable" + >; + + withdraw: TypedContractMethod< + [to: AddressLike, amount: BigNumberish, internalSendHash: BytesLike], + [void], + "nonpayable" + >; + + withdrawAndCall: TypedContractMethod< + [ + messageContext: MessageContextStruct, + to: AddressLike, + amount: BigNumberish, + data: BytesLike, + internalSendHash: BytesLike + ], + [void], + "nonpayable" + >; + + withdrawAndRevert: TypedContractMethod< + [ + to: AddressLike, + amount: BigNumberish, + data: BytesLike, + internalSendHash: BytesLike, + revertContext: RevertContextStruct + ], + [void], + "nonpayable" + >; + + zetaToken: TypedContractMethod<[], [string], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "DEFAULT_ADMIN_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "PAUSER_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "TSS_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "UPGRADE_INTERFACE_VERSION" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "WITHDRAWER_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "gateway" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "getRoleAdmin" + ): TypedContractMethod<[role: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "grantRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "hasRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + getFunction( + nameOrSignature: "initialize" + ): TypedContractMethod< + [ + gateway_: AddressLike, + zetaToken_: AddressLike, + tssAddress_: AddressLike, + admin_: AddressLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "pause" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "paused" + ): TypedContractMethod<[], [boolean], "view">; + getFunction( + nameOrSignature: "proxiableUUID" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "receiveTokens" + ): TypedContractMethod<[amount: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "renounceRole" + ): TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "revokeRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "supportsInterface" + ): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; + getFunction( + nameOrSignature: "tssAddress" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "unpause" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "updateTSSAddress" + ): TypedContractMethod<[newTSSAddress: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "upgradeToAndCall" + ): TypedContractMethod< + [newImplementation: AddressLike, data: BytesLike], + [void], + "payable" + >; + getFunction( + nameOrSignature: "withdraw" + ): TypedContractMethod< + [to: AddressLike, amount: BigNumberish, internalSendHash: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawAndCall" + ): TypedContractMethod< + [ + messageContext: MessageContextStruct, + to: AddressLike, + amount: BigNumberish, + data: BytesLike, + internalSendHash: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawAndRevert" + ): TypedContractMethod< + [ + to: AddressLike, + amount: BigNumberish, + data: BytesLike, + internalSendHash: BytesLike, + revertContext: RevertContextStruct + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "zetaToken" + ): TypedContractMethod<[], [string], "view">; + + getEvent( + key: "Initialized" + ): TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + getEvent( + key: "Paused" + ): TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + getEvent( + key: "RoleAdminChanged" + ): TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + getEvent( + key: "RoleGranted" + ): TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + getEvent( + key: "RoleRevoked" + ): TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + getEvent( + key: "Unpaused" + ): TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + getEvent( + key: "UpdatedZetaConnectorTSSAddress" + ): TypedContractEvent< + UpdatedZetaConnectorTSSAddressEvent.InputTuple, + UpdatedZetaConnectorTSSAddressEvent.OutputTuple, + UpdatedZetaConnectorTSSAddressEvent.OutputObject + >; + getEvent( + key: "Upgraded" + ): TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + getEvent( + key: "Withdrawn" + ): TypedContractEvent< + WithdrawnEvent.InputTuple, + WithdrawnEvent.OutputTuple, + WithdrawnEvent.OutputObject + >; + getEvent( + key: "WithdrawnAndCalled" + ): TypedContractEvent< + WithdrawnAndCalledEvent.InputTuple, + WithdrawnAndCalledEvent.OutputTuple, + WithdrawnAndCalledEvent.OutputObject + >; + getEvent( + key: "WithdrawnAndReverted" + ): TypedContractEvent< + WithdrawnAndRevertedEvent.InputTuple, + WithdrawnAndRevertedEvent.OutputTuple, + WithdrawnAndRevertedEvent.OutputObject + >; + + filters: { + "Initialized(uint64)": TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + Initialized: TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + + "Paused(address)": TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + Paused: TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + + "RoleAdminChanged(bytes32,bytes32,bytes32)": TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + RoleAdminChanged: TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + + "RoleGranted(bytes32,address,address)": TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + RoleGranted: TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + + "RoleRevoked(bytes32,address,address)": TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + RoleRevoked: TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + + "Unpaused(address)": TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + Unpaused: TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + + "UpdatedZetaConnectorTSSAddress(address,address)": TypedContractEvent< + UpdatedZetaConnectorTSSAddressEvent.InputTuple, + UpdatedZetaConnectorTSSAddressEvent.OutputTuple, + UpdatedZetaConnectorTSSAddressEvent.OutputObject + >; + UpdatedZetaConnectorTSSAddress: TypedContractEvent< + UpdatedZetaConnectorTSSAddressEvent.InputTuple, + UpdatedZetaConnectorTSSAddressEvent.OutputTuple, + UpdatedZetaConnectorTSSAddressEvent.OutputObject + >; + + "Upgraded(address)": TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + Upgraded: TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + + "Withdrawn(address,uint256)": TypedContractEvent< + WithdrawnEvent.InputTuple, + WithdrawnEvent.OutputTuple, + WithdrawnEvent.OutputObject + >; + Withdrawn: TypedContractEvent< + WithdrawnEvent.InputTuple, + WithdrawnEvent.OutputTuple, + WithdrawnEvent.OutputObject + >; + + "WithdrawnAndCalled(address,uint256,bytes)": TypedContractEvent< + WithdrawnAndCalledEvent.InputTuple, + WithdrawnAndCalledEvent.OutputTuple, + WithdrawnAndCalledEvent.OutputObject + >; + WithdrawnAndCalled: TypedContractEvent< + WithdrawnAndCalledEvent.InputTuple, + WithdrawnAndCalledEvent.OutputTuple, + WithdrawnAndCalledEvent.OutputObject + >; + + "WithdrawnAndReverted(address,uint256,bytes,tuple)": TypedContractEvent< + WithdrawnAndRevertedEvent.InputTuple, + WithdrawnAndRevertedEvent.OutputTuple, + WithdrawnAndRevertedEvent.OutputObject + >; + WithdrawnAndReverted: TypedContractEvent< + WithdrawnAndRevertedEvent.InputTuple, + WithdrawnAndRevertedEvent.OutputTuple, + WithdrawnAndRevertedEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNative.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNative.ts new file mode 100644 index 00000000..2a1aecb3 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNative.ts @@ -0,0 +1,919 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../../common"; + +export type RevertContextStruct = { + sender: AddressLike; + asset: AddressLike; + amount: BigNumberish; + revertMessage: BytesLike; +}; + +export type RevertContextStructOutput = [ + sender: string, + asset: string, + amount: bigint, + revertMessage: string +] & { sender: string; asset: string; amount: bigint; revertMessage: string }; + +export type MessageContextStruct = { sender: AddressLike }; + +export type MessageContextStructOutput = [sender: string] & { sender: string }; + +export interface ZetaConnectorNativeInterface extends Interface { + getFunction( + nameOrSignature: + | "DEFAULT_ADMIN_ROLE" + | "PAUSER_ROLE" + | "TSS_ROLE" + | "UPGRADE_INTERFACE_VERSION" + | "WITHDRAWER_ROLE" + | "gateway" + | "getRoleAdmin" + | "grantRole" + | "hasRole" + | "initialize" + | "pause" + | "paused" + | "proxiableUUID" + | "receiveTokens" + | "renounceRole" + | "revokeRole" + | "supportsInterface" + | "tssAddress" + | "unpause" + | "updateTSSAddress" + | "upgradeToAndCall" + | "withdraw" + | "withdrawAndCall" + | "withdrawAndRevert" + | "zetaToken" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "Initialized" + | "Paused" + | "RoleAdminChanged" + | "RoleGranted" + | "RoleRevoked" + | "Unpaused" + | "UpdatedZetaConnectorTSSAddress" + | "Upgraded" + | "Withdrawn" + | "WithdrawnAndCalled" + | "WithdrawnAndReverted" + ): EventFragment; + + encodeFunctionData( + functionFragment: "DEFAULT_ADMIN_ROLE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "PAUSER_ROLE", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "TSS_ROLE", values?: undefined): string; + encodeFunctionData( + functionFragment: "UPGRADE_INTERFACE_VERSION", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "WITHDRAWER_ROLE", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "gateway", values?: undefined): string; + encodeFunctionData( + functionFragment: "getRoleAdmin", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "grantRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "hasRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "initialize", + values: [AddressLike, AddressLike, AddressLike, AddressLike] + ): string; + encodeFunctionData(functionFragment: "pause", values?: undefined): string; + encodeFunctionData(functionFragment: "paused", values?: undefined): string; + encodeFunctionData( + functionFragment: "proxiableUUID", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "receiveTokens", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "renounceRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "revokeRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "tssAddress", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "unpause", values?: undefined): string; + encodeFunctionData( + functionFragment: "updateTSSAddress", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "upgradeToAndCall", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "withdraw", + values: [AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "withdrawAndCall", + values: [ + MessageContextStruct, + AddressLike, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "withdrawAndRevert", + values: [ + AddressLike, + BigNumberish, + BytesLike, + BytesLike, + RevertContextStruct + ] + ): string; + encodeFunctionData(functionFragment: "zetaToken", values?: undefined): string; + + decodeFunctionResult( + functionFragment: "DEFAULT_ADMIN_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "PAUSER_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "TSS_ROLE", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "UPGRADE_INTERFACE_VERSION", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "WITHDRAWER_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "gateway", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getRoleAdmin", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "pause", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "proxiableUUID", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "receiveTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "renounceRole", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "supportsInterface", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "tssAddress", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "unpause", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "updateTSSAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "upgradeToAndCall", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "withdrawAndCall", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdrawAndRevert", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "zetaToken", data: BytesLike): Result; +} + +export namespace InitializedEvent { + export type InputTuple = [version: BigNumberish]; + export type OutputTuple = [version: bigint]; + export interface OutputObject { + version: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace PausedEvent { + export type InputTuple = [account: AddressLike]; + export type OutputTuple = [account: string]; + export interface OutputObject { + account: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleAdminChangedEvent { + export type InputTuple = [ + role: BytesLike, + previousAdminRole: BytesLike, + newAdminRole: BytesLike + ]; + export type OutputTuple = [ + role: string, + previousAdminRole: string, + newAdminRole: string + ]; + export interface OutputObject { + role: string; + previousAdminRole: string; + newAdminRole: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleGrantedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleRevokedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UnpausedEvent { + export type InputTuple = [account: AddressLike]; + export type OutputTuple = [account: string]; + export interface OutputObject { + account: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpdatedZetaConnectorTSSAddressEvent { + export type InputTuple = [ + oldTSSAddress: AddressLike, + newTSSAddress: AddressLike + ]; + export type OutputTuple = [oldTSSAddress: string, newTSSAddress: string]; + export interface OutputObject { + oldTSSAddress: string; + newTSSAddress: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpgradedEvent { + export type InputTuple = [implementation: AddressLike]; + export type OutputTuple = [implementation: string]; + export interface OutputObject { + implementation: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawnEvent { + export type InputTuple = [to: AddressLike, amount: BigNumberish]; + export type OutputTuple = [to: string, amount: bigint]; + export interface OutputObject { + to: string; + amount: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawnAndCalledEvent { + export type InputTuple = [ + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [to: string, amount: bigint, data: string]; + export interface OutputObject { + to: string; + amount: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawnAndRevertedEvent { + export type InputTuple = [ + to: AddressLike, + amount: BigNumberish, + data: BytesLike, + revertContext: RevertContextStruct + ]; + export type OutputTuple = [ + to: string, + amount: bigint, + data: string, + revertContext: RevertContextStructOutput + ]; + export interface OutputObject { + to: string; + amount: bigint; + data: string; + revertContext: RevertContextStructOutput; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ZetaConnectorNative extends BaseContract { + connect(runner?: ContractRunner | null): ZetaConnectorNative; + waitForDeployment(): Promise; + + interface: ZetaConnectorNativeInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + DEFAULT_ADMIN_ROLE: TypedContractMethod<[], [string], "view">; + + PAUSER_ROLE: TypedContractMethod<[], [string], "view">; + + TSS_ROLE: TypedContractMethod<[], [string], "view">; + + UPGRADE_INTERFACE_VERSION: TypedContractMethod<[], [string], "view">; + + WITHDRAWER_ROLE: TypedContractMethod<[], [string], "view">; + + gateway: TypedContractMethod<[], [string], "view">; + + getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">; + + grantRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + hasRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + + initialize: TypedContractMethod< + [ + gateway_: AddressLike, + zetaToken_: AddressLike, + tssAddress_: AddressLike, + admin_: AddressLike + ], + [void], + "nonpayable" + >; + + pause: TypedContractMethod<[], [void], "nonpayable">; + + paused: TypedContractMethod<[], [boolean], "view">; + + proxiableUUID: TypedContractMethod<[], [string], "view">; + + receiveTokens: TypedContractMethod< + [amount: BigNumberish], + [void], + "nonpayable" + >; + + renounceRole: TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + + revokeRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + supportsInterface: TypedContractMethod< + [interfaceId: BytesLike], + [boolean], + "view" + >; + + tssAddress: TypedContractMethod<[], [string], "view">; + + unpause: TypedContractMethod<[], [void], "nonpayable">; + + updateTSSAddress: TypedContractMethod< + [newTSSAddress: AddressLike], + [void], + "nonpayable" + >; + + upgradeToAndCall: TypedContractMethod< + [newImplementation: AddressLike, data: BytesLike], + [void], + "payable" + >; + + withdraw: TypedContractMethod< + [to: AddressLike, amount: BigNumberish, arg2: BytesLike], + [void], + "nonpayable" + >; + + withdrawAndCall: TypedContractMethod< + [ + messageContext: MessageContextStruct, + to: AddressLike, + amount: BigNumberish, + data: BytesLike, + arg4: BytesLike + ], + [void], + "nonpayable" + >; + + withdrawAndRevert: TypedContractMethod< + [ + to: AddressLike, + amount: BigNumberish, + data: BytesLike, + arg3: BytesLike, + revertContext: RevertContextStruct + ], + [void], + "nonpayable" + >; + + zetaToken: TypedContractMethod<[], [string], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "DEFAULT_ADMIN_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "PAUSER_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "TSS_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "UPGRADE_INTERFACE_VERSION" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "WITHDRAWER_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "gateway" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "getRoleAdmin" + ): TypedContractMethod<[role: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "grantRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "hasRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + getFunction( + nameOrSignature: "initialize" + ): TypedContractMethod< + [ + gateway_: AddressLike, + zetaToken_: AddressLike, + tssAddress_: AddressLike, + admin_: AddressLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "pause" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "paused" + ): TypedContractMethod<[], [boolean], "view">; + getFunction( + nameOrSignature: "proxiableUUID" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "receiveTokens" + ): TypedContractMethod<[amount: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "renounceRole" + ): TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "revokeRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "supportsInterface" + ): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; + getFunction( + nameOrSignature: "tssAddress" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "unpause" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "updateTSSAddress" + ): TypedContractMethod<[newTSSAddress: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "upgradeToAndCall" + ): TypedContractMethod< + [newImplementation: AddressLike, data: BytesLike], + [void], + "payable" + >; + getFunction( + nameOrSignature: "withdraw" + ): TypedContractMethod< + [to: AddressLike, amount: BigNumberish, arg2: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawAndCall" + ): TypedContractMethod< + [ + messageContext: MessageContextStruct, + to: AddressLike, + amount: BigNumberish, + data: BytesLike, + arg4: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawAndRevert" + ): TypedContractMethod< + [ + to: AddressLike, + amount: BigNumberish, + data: BytesLike, + arg3: BytesLike, + revertContext: RevertContextStruct + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "zetaToken" + ): TypedContractMethod<[], [string], "view">; + + getEvent( + key: "Initialized" + ): TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + getEvent( + key: "Paused" + ): TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + getEvent( + key: "RoleAdminChanged" + ): TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + getEvent( + key: "RoleGranted" + ): TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + getEvent( + key: "RoleRevoked" + ): TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + getEvent( + key: "Unpaused" + ): TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + getEvent( + key: "UpdatedZetaConnectorTSSAddress" + ): TypedContractEvent< + UpdatedZetaConnectorTSSAddressEvent.InputTuple, + UpdatedZetaConnectorTSSAddressEvent.OutputTuple, + UpdatedZetaConnectorTSSAddressEvent.OutputObject + >; + getEvent( + key: "Upgraded" + ): TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + getEvent( + key: "Withdrawn" + ): TypedContractEvent< + WithdrawnEvent.InputTuple, + WithdrawnEvent.OutputTuple, + WithdrawnEvent.OutputObject + >; + getEvent( + key: "WithdrawnAndCalled" + ): TypedContractEvent< + WithdrawnAndCalledEvent.InputTuple, + WithdrawnAndCalledEvent.OutputTuple, + WithdrawnAndCalledEvent.OutputObject + >; + getEvent( + key: "WithdrawnAndReverted" + ): TypedContractEvent< + WithdrawnAndRevertedEvent.InputTuple, + WithdrawnAndRevertedEvent.OutputTuple, + WithdrawnAndRevertedEvent.OutputObject + >; + + filters: { + "Initialized(uint64)": TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + Initialized: TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + + "Paused(address)": TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + Paused: TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + + "RoleAdminChanged(bytes32,bytes32,bytes32)": TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + RoleAdminChanged: TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + + "RoleGranted(bytes32,address,address)": TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + RoleGranted: TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + + "RoleRevoked(bytes32,address,address)": TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + RoleRevoked: TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + + "Unpaused(address)": TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + Unpaused: TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + + "UpdatedZetaConnectorTSSAddress(address,address)": TypedContractEvent< + UpdatedZetaConnectorTSSAddressEvent.InputTuple, + UpdatedZetaConnectorTSSAddressEvent.OutputTuple, + UpdatedZetaConnectorTSSAddressEvent.OutputObject + >; + UpdatedZetaConnectorTSSAddress: TypedContractEvent< + UpdatedZetaConnectorTSSAddressEvent.InputTuple, + UpdatedZetaConnectorTSSAddressEvent.OutputTuple, + UpdatedZetaConnectorTSSAddressEvent.OutputObject + >; + + "Upgraded(address)": TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + Upgraded: TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + + "Withdrawn(address,uint256)": TypedContractEvent< + WithdrawnEvent.InputTuple, + WithdrawnEvent.OutputTuple, + WithdrawnEvent.OutputObject + >; + Withdrawn: TypedContractEvent< + WithdrawnEvent.InputTuple, + WithdrawnEvent.OutputTuple, + WithdrawnEvent.OutputObject + >; + + "WithdrawnAndCalled(address,uint256,bytes)": TypedContractEvent< + WithdrawnAndCalledEvent.InputTuple, + WithdrawnAndCalledEvent.OutputTuple, + WithdrawnAndCalledEvent.OutputObject + >; + WithdrawnAndCalled: TypedContractEvent< + WithdrawnAndCalledEvent.InputTuple, + WithdrawnAndCalledEvent.OutputTuple, + WithdrawnAndCalledEvent.OutputObject + >; + + "WithdrawnAndReverted(address,uint256,bytes,tuple)": TypedContractEvent< + WithdrawnAndRevertedEvent.InputTuple, + WithdrawnAndRevertedEvent.OutputTuple, + WithdrawnAndRevertedEvent.OutputObject + >; + WithdrawnAndReverted: TypedContractEvent< + WithdrawnAndRevertedEvent.InputTuple, + WithdrawnAndRevertedEvent.OutputTuple, + WithdrawnAndRevertedEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNonNative.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNonNative.ts new file mode 100644 index 00000000..06b564bd --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNonNative.ts @@ -0,0 +1,976 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../../common"; + +export type RevertContextStruct = { + sender: AddressLike; + asset: AddressLike; + amount: BigNumberish; + revertMessage: BytesLike; +}; + +export type RevertContextStructOutput = [ + sender: string, + asset: string, + amount: bigint, + revertMessage: string +] & { sender: string; asset: string; amount: bigint; revertMessage: string }; + +export type MessageContextStruct = { sender: AddressLike }; + +export type MessageContextStructOutput = [sender: string] & { sender: string }; + +export interface ZetaConnectorNonNativeInterface extends Interface { + getFunction( + nameOrSignature: + | "DEFAULT_ADMIN_ROLE" + | "PAUSER_ROLE" + | "TSS_ROLE" + | "UPGRADE_INTERFACE_VERSION" + | "WITHDRAWER_ROLE" + | "gateway" + | "getRoleAdmin" + | "grantRole" + | "hasRole" + | "initialize" + | "maxSupply" + | "pause" + | "paused" + | "proxiableUUID" + | "receiveTokens" + | "renounceRole" + | "revokeRole" + | "setMaxSupply" + | "supportsInterface" + | "tssAddress" + | "unpause" + | "updateTSSAddress" + | "upgradeToAndCall" + | "withdraw" + | "withdrawAndCall" + | "withdrawAndRevert" + | "zetaToken" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "Initialized" + | "MaxSupplyUpdated" + | "Paused" + | "RoleAdminChanged" + | "RoleGranted" + | "RoleRevoked" + | "Unpaused" + | "UpdatedZetaConnectorTSSAddress" + | "Upgraded" + | "Withdrawn" + | "WithdrawnAndCalled" + | "WithdrawnAndReverted" + ): EventFragment; + + encodeFunctionData( + functionFragment: "DEFAULT_ADMIN_ROLE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "PAUSER_ROLE", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "TSS_ROLE", values?: undefined): string; + encodeFunctionData( + functionFragment: "UPGRADE_INTERFACE_VERSION", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "WITHDRAWER_ROLE", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "gateway", values?: undefined): string; + encodeFunctionData( + functionFragment: "getRoleAdmin", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "grantRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "hasRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "initialize", + values: [AddressLike, AddressLike, AddressLike, AddressLike] + ): string; + encodeFunctionData(functionFragment: "maxSupply", values?: undefined): string; + encodeFunctionData(functionFragment: "pause", values?: undefined): string; + encodeFunctionData(functionFragment: "paused", values?: undefined): string; + encodeFunctionData( + functionFragment: "proxiableUUID", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "receiveTokens", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "renounceRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "revokeRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setMaxSupply", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "tssAddress", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "unpause", values?: undefined): string; + encodeFunctionData( + functionFragment: "updateTSSAddress", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "upgradeToAndCall", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "withdraw", + values: [AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "withdrawAndCall", + values: [ + MessageContextStruct, + AddressLike, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "withdrawAndRevert", + values: [ + AddressLike, + BigNumberish, + BytesLike, + BytesLike, + RevertContextStruct + ] + ): string; + encodeFunctionData(functionFragment: "zetaToken", values?: undefined): string; + + decodeFunctionResult( + functionFragment: "DEFAULT_ADMIN_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "PAUSER_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "TSS_ROLE", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "UPGRADE_INTERFACE_VERSION", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "WITHDRAWER_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "gateway", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getRoleAdmin", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "maxSupply", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "pause", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "proxiableUUID", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "receiveTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "renounceRole", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "setMaxSupply", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "supportsInterface", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "tssAddress", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "unpause", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "updateTSSAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "upgradeToAndCall", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "withdrawAndCall", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdrawAndRevert", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "zetaToken", data: BytesLike): Result; +} + +export namespace InitializedEvent { + export type InputTuple = [version: BigNumberish]; + export type OutputTuple = [version: bigint]; + export interface OutputObject { + version: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace MaxSupplyUpdatedEvent { + export type InputTuple = [maxSupply: BigNumberish]; + export type OutputTuple = [maxSupply: bigint]; + export interface OutputObject { + maxSupply: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace PausedEvent { + export type InputTuple = [account: AddressLike]; + export type OutputTuple = [account: string]; + export interface OutputObject { + account: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleAdminChangedEvent { + export type InputTuple = [ + role: BytesLike, + previousAdminRole: BytesLike, + newAdminRole: BytesLike + ]; + export type OutputTuple = [ + role: string, + previousAdminRole: string, + newAdminRole: string + ]; + export interface OutputObject { + role: string; + previousAdminRole: string; + newAdminRole: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleGrantedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleRevokedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UnpausedEvent { + export type InputTuple = [account: AddressLike]; + export type OutputTuple = [account: string]; + export interface OutputObject { + account: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpdatedZetaConnectorTSSAddressEvent { + export type InputTuple = [ + oldTSSAddress: AddressLike, + newTSSAddress: AddressLike + ]; + export type OutputTuple = [oldTSSAddress: string, newTSSAddress: string]; + export interface OutputObject { + oldTSSAddress: string; + newTSSAddress: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpgradedEvent { + export type InputTuple = [implementation: AddressLike]; + export type OutputTuple = [implementation: string]; + export interface OutputObject { + implementation: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawnEvent { + export type InputTuple = [to: AddressLike, amount: BigNumberish]; + export type OutputTuple = [to: string, amount: bigint]; + export interface OutputObject { + to: string; + amount: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawnAndCalledEvent { + export type InputTuple = [ + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [to: string, amount: bigint, data: string]; + export interface OutputObject { + to: string; + amount: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawnAndRevertedEvent { + export type InputTuple = [ + to: AddressLike, + amount: BigNumberish, + data: BytesLike, + revertContext: RevertContextStruct + ]; + export type OutputTuple = [ + to: string, + amount: bigint, + data: string, + revertContext: RevertContextStructOutput + ]; + export interface OutputObject { + to: string; + amount: bigint; + data: string; + revertContext: RevertContextStructOutput; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ZetaConnectorNonNative extends BaseContract { + connect(runner?: ContractRunner | null): ZetaConnectorNonNative; + waitForDeployment(): Promise; + + interface: ZetaConnectorNonNativeInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + DEFAULT_ADMIN_ROLE: TypedContractMethod<[], [string], "view">; + + PAUSER_ROLE: TypedContractMethod<[], [string], "view">; + + TSS_ROLE: TypedContractMethod<[], [string], "view">; + + UPGRADE_INTERFACE_VERSION: TypedContractMethod<[], [string], "view">; + + WITHDRAWER_ROLE: TypedContractMethod<[], [string], "view">; + + gateway: TypedContractMethod<[], [string], "view">; + + getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">; + + grantRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + hasRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + + initialize: TypedContractMethod< + [ + gateway_: AddressLike, + zetaToken_: AddressLike, + tssAddress_: AddressLike, + admin_: AddressLike + ], + [void], + "nonpayable" + >; + + maxSupply: TypedContractMethod<[], [bigint], "view">; + + pause: TypedContractMethod<[], [void], "nonpayable">; + + paused: TypedContractMethod<[], [boolean], "view">; + + proxiableUUID: TypedContractMethod<[], [string], "view">; + + receiveTokens: TypedContractMethod< + [amount: BigNumberish], + [void], + "nonpayable" + >; + + renounceRole: TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + + revokeRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + setMaxSupply: TypedContractMethod< + [maxSupply_: BigNumberish], + [void], + "nonpayable" + >; + + supportsInterface: TypedContractMethod< + [interfaceId: BytesLike], + [boolean], + "view" + >; + + tssAddress: TypedContractMethod<[], [string], "view">; + + unpause: TypedContractMethod<[], [void], "nonpayable">; + + updateTSSAddress: TypedContractMethod< + [newTSSAddress: AddressLike], + [void], + "nonpayable" + >; + + upgradeToAndCall: TypedContractMethod< + [newImplementation: AddressLike, data: BytesLike], + [void], + "payable" + >; + + withdraw: TypedContractMethod< + [to: AddressLike, amount: BigNumberish, internalSendHash: BytesLike], + [void], + "nonpayable" + >; + + withdrawAndCall: TypedContractMethod< + [ + messageContext: MessageContextStruct, + to: AddressLike, + amount: BigNumberish, + data: BytesLike, + internalSendHash: BytesLike + ], + [void], + "nonpayable" + >; + + withdrawAndRevert: TypedContractMethod< + [ + to: AddressLike, + amount: BigNumberish, + data: BytesLike, + internalSendHash: BytesLike, + revertContext: RevertContextStruct + ], + [void], + "nonpayable" + >; + + zetaToken: TypedContractMethod<[], [string], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "DEFAULT_ADMIN_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "PAUSER_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "TSS_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "UPGRADE_INTERFACE_VERSION" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "WITHDRAWER_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "gateway" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "getRoleAdmin" + ): TypedContractMethod<[role: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "grantRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "hasRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + getFunction( + nameOrSignature: "initialize" + ): TypedContractMethod< + [ + gateway_: AddressLike, + zetaToken_: AddressLike, + tssAddress_: AddressLike, + admin_: AddressLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "maxSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "pause" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "paused" + ): TypedContractMethod<[], [boolean], "view">; + getFunction( + nameOrSignature: "proxiableUUID" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "receiveTokens" + ): TypedContractMethod<[amount: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "renounceRole" + ): TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "revokeRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setMaxSupply" + ): TypedContractMethod<[maxSupply_: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "supportsInterface" + ): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; + getFunction( + nameOrSignature: "tssAddress" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "unpause" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "updateTSSAddress" + ): TypedContractMethod<[newTSSAddress: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "upgradeToAndCall" + ): TypedContractMethod< + [newImplementation: AddressLike, data: BytesLike], + [void], + "payable" + >; + getFunction( + nameOrSignature: "withdraw" + ): TypedContractMethod< + [to: AddressLike, amount: BigNumberish, internalSendHash: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawAndCall" + ): TypedContractMethod< + [ + messageContext: MessageContextStruct, + to: AddressLike, + amount: BigNumberish, + data: BytesLike, + internalSendHash: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawAndRevert" + ): TypedContractMethod< + [ + to: AddressLike, + amount: BigNumberish, + data: BytesLike, + internalSendHash: BytesLike, + revertContext: RevertContextStruct + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "zetaToken" + ): TypedContractMethod<[], [string], "view">; + + getEvent( + key: "Initialized" + ): TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + getEvent( + key: "MaxSupplyUpdated" + ): TypedContractEvent< + MaxSupplyUpdatedEvent.InputTuple, + MaxSupplyUpdatedEvent.OutputTuple, + MaxSupplyUpdatedEvent.OutputObject + >; + getEvent( + key: "Paused" + ): TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + getEvent( + key: "RoleAdminChanged" + ): TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + getEvent( + key: "RoleGranted" + ): TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + getEvent( + key: "RoleRevoked" + ): TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + getEvent( + key: "Unpaused" + ): TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + getEvent( + key: "UpdatedZetaConnectorTSSAddress" + ): TypedContractEvent< + UpdatedZetaConnectorTSSAddressEvent.InputTuple, + UpdatedZetaConnectorTSSAddressEvent.OutputTuple, + UpdatedZetaConnectorTSSAddressEvent.OutputObject + >; + getEvent( + key: "Upgraded" + ): TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + getEvent( + key: "Withdrawn" + ): TypedContractEvent< + WithdrawnEvent.InputTuple, + WithdrawnEvent.OutputTuple, + WithdrawnEvent.OutputObject + >; + getEvent( + key: "WithdrawnAndCalled" + ): TypedContractEvent< + WithdrawnAndCalledEvent.InputTuple, + WithdrawnAndCalledEvent.OutputTuple, + WithdrawnAndCalledEvent.OutputObject + >; + getEvent( + key: "WithdrawnAndReverted" + ): TypedContractEvent< + WithdrawnAndRevertedEvent.InputTuple, + WithdrawnAndRevertedEvent.OutputTuple, + WithdrawnAndRevertedEvent.OutputObject + >; + + filters: { + "Initialized(uint64)": TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + Initialized: TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + + "MaxSupplyUpdated(uint256)": TypedContractEvent< + MaxSupplyUpdatedEvent.InputTuple, + MaxSupplyUpdatedEvent.OutputTuple, + MaxSupplyUpdatedEvent.OutputObject + >; + MaxSupplyUpdated: TypedContractEvent< + MaxSupplyUpdatedEvent.InputTuple, + MaxSupplyUpdatedEvent.OutputTuple, + MaxSupplyUpdatedEvent.OutputObject + >; + + "Paused(address)": TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + Paused: TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + + "RoleAdminChanged(bytes32,bytes32,bytes32)": TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + RoleAdminChanged: TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + + "RoleGranted(bytes32,address,address)": TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + RoleGranted: TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + + "RoleRevoked(bytes32,address,address)": TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + RoleRevoked: TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + + "Unpaused(address)": TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + Unpaused: TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + + "UpdatedZetaConnectorTSSAddress(address,address)": TypedContractEvent< + UpdatedZetaConnectorTSSAddressEvent.InputTuple, + UpdatedZetaConnectorTSSAddressEvent.OutputTuple, + UpdatedZetaConnectorTSSAddressEvent.OutputObject + >; + UpdatedZetaConnectorTSSAddress: TypedContractEvent< + UpdatedZetaConnectorTSSAddressEvent.InputTuple, + UpdatedZetaConnectorTSSAddressEvent.OutputTuple, + UpdatedZetaConnectorTSSAddressEvent.OutputObject + >; + + "Upgraded(address)": TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + Upgraded: TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + + "Withdrawn(address,uint256)": TypedContractEvent< + WithdrawnEvent.InputTuple, + WithdrawnEvent.OutputTuple, + WithdrawnEvent.OutputObject + >; + Withdrawn: TypedContractEvent< + WithdrawnEvent.InputTuple, + WithdrawnEvent.OutputTuple, + WithdrawnEvent.OutputObject + >; + + "WithdrawnAndCalled(address,uint256,bytes)": TypedContractEvent< + WithdrawnAndCalledEvent.InputTuple, + WithdrawnAndCalledEvent.OutputTuple, + WithdrawnAndCalledEvent.OutputObject + >; + WithdrawnAndCalled: TypedContractEvent< + WithdrawnAndCalledEvent.InputTuple, + WithdrawnAndCalledEvent.OutputTuple, + WithdrawnAndCalledEvent.OutputObject + >; + + "WithdrawnAndReverted(address,uint256,bytes,tuple)": TypedContractEvent< + WithdrawnAndRevertedEvent.InputTuple, + WithdrawnAndRevertedEvent.OutputTuple, + WithdrawnAndRevertedEvent.OutputObject + >; + WithdrawnAndReverted: TypedContractEvent< + WithdrawnAndRevertedEvent.InputTuple, + WithdrawnAndRevertedEvent.OutputTuple, + WithdrawnAndRevertedEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/index.ts new file mode 100644 index 00000000..1c621303 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/evm/index.ts @@ -0,0 +1,10 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as interfaces from "./interfaces"; +export type { interfaces }; +export type { ERC20Custody } from "./ERC20Custody"; +export type { GatewayEVM } from "./GatewayEVM"; +export type { ZetaConnectorBase } from "./ZetaConnectorBase"; +export type { ZetaConnectorNative } from "./ZetaConnectorNative"; +export type { ZetaConnectorNonNative } from "./ZetaConnectorNonNative"; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20Custody.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20Custody.ts new file mode 100644 index 00000000..c36a69df --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20Custody.ts @@ -0,0 +1,488 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../../../../common"; + +export type RevertContextStruct = { + sender: AddressLike; + asset: AddressLike; + amount: BigNumberish; + revertMessage: BytesLike; +}; + +export type RevertContextStructOutput = [ + sender: string, + asset: string, + amount: bigint, + revertMessage: string +] & { sender: string; asset: string; amount: bigint; revertMessage: string }; + +export type MessageContextStruct = { sender: AddressLike }; + +export type MessageContextStructOutput = [sender: string] & { sender: string }; + +export interface IERC20CustodyInterface extends Interface { + getFunction( + nameOrSignature: + | "whitelisted" + | "withdraw" + | "withdrawAndCall" + | "withdrawAndRevert" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "Deposited" + | "Unwhitelisted" + | "UpdatedCustodyTSSAddress" + | "Whitelisted" + | "Withdrawn" + | "WithdrawnAndCalled" + | "WithdrawnAndReverted" + ): EventFragment; + + encodeFunctionData( + functionFragment: "whitelisted", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "withdraw", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdrawAndCall", + values: [ + MessageContextStruct, + AddressLike, + AddressLike, + BigNumberish, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "withdrawAndRevert", + values: [ + AddressLike, + AddressLike, + BigNumberish, + BytesLike, + RevertContextStruct + ] + ): string; + + decodeFunctionResult( + functionFragment: "whitelisted", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "withdrawAndCall", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdrawAndRevert", + data: BytesLike + ): Result; +} + +export namespace DepositedEvent { + export type InputTuple = [ + recipient: BytesLike, + asset: AddressLike, + amount: BigNumberish, + message: BytesLike + ]; + export type OutputTuple = [ + recipient: string, + asset: string, + amount: bigint, + message: string + ]; + export interface OutputObject { + recipient: string; + asset: string; + amount: bigint; + message: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UnwhitelistedEvent { + export type InputTuple = [token: AddressLike]; + export type OutputTuple = [token: string]; + export interface OutputObject { + token: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpdatedCustodyTSSAddressEvent { + export type InputTuple = [ + oldTSSAddress: AddressLike, + newTSSAddress: AddressLike + ]; + export type OutputTuple = [oldTSSAddress: string, newTSSAddress: string]; + export interface OutputObject { + oldTSSAddress: string; + newTSSAddress: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WhitelistedEvent { + export type InputTuple = [token: AddressLike]; + export type OutputTuple = [token: string]; + export interface OutputObject { + token: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawnEvent { + export type InputTuple = [ + to: AddressLike, + token: AddressLike, + amount: BigNumberish + ]; + export type OutputTuple = [to: string, token: string, amount: bigint]; + export interface OutputObject { + to: string; + token: string; + amount: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawnAndCalledEvent { + export type InputTuple = [ + to: AddressLike, + token: AddressLike, + amount: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [ + to: string, + token: string, + amount: bigint, + data: string + ]; + export interface OutputObject { + to: string; + token: string; + amount: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawnAndRevertedEvent { + export type InputTuple = [ + to: AddressLike, + token: AddressLike, + amount: BigNumberish, + data: BytesLike, + revertContext: RevertContextStruct + ]; + export type OutputTuple = [ + to: string, + token: string, + amount: bigint, + data: string, + revertContext: RevertContextStructOutput + ]; + export interface OutputObject { + to: string; + token: string; + amount: bigint; + data: string; + revertContext: RevertContextStructOutput; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IERC20Custody extends BaseContract { + connect(runner?: ContractRunner | null): IERC20Custody; + waitForDeployment(): Promise; + + interface: IERC20CustodyInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + whitelisted: TypedContractMethod<[token: AddressLike], [boolean], "view">; + + withdraw: TypedContractMethod< + [token: AddressLike, to: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + + withdrawAndCall: TypedContractMethod< + [ + messageContext: MessageContextStruct, + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + + withdrawAndRevert: TypedContractMethod< + [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike, + revertContext: RevertContextStruct + ], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "whitelisted" + ): TypedContractMethod<[token: AddressLike], [boolean], "view">; + getFunction( + nameOrSignature: "withdraw" + ): TypedContractMethod< + [token: AddressLike, to: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawAndCall" + ): TypedContractMethod< + [ + messageContext: MessageContextStruct, + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawAndRevert" + ): TypedContractMethod< + [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike, + revertContext: RevertContextStruct + ], + [void], + "nonpayable" + >; + + getEvent( + key: "Deposited" + ): TypedContractEvent< + DepositedEvent.InputTuple, + DepositedEvent.OutputTuple, + DepositedEvent.OutputObject + >; + getEvent( + key: "Unwhitelisted" + ): TypedContractEvent< + UnwhitelistedEvent.InputTuple, + UnwhitelistedEvent.OutputTuple, + UnwhitelistedEvent.OutputObject + >; + getEvent( + key: "UpdatedCustodyTSSAddress" + ): TypedContractEvent< + UpdatedCustodyTSSAddressEvent.InputTuple, + UpdatedCustodyTSSAddressEvent.OutputTuple, + UpdatedCustodyTSSAddressEvent.OutputObject + >; + getEvent( + key: "Whitelisted" + ): TypedContractEvent< + WhitelistedEvent.InputTuple, + WhitelistedEvent.OutputTuple, + WhitelistedEvent.OutputObject + >; + getEvent( + key: "Withdrawn" + ): TypedContractEvent< + WithdrawnEvent.InputTuple, + WithdrawnEvent.OutputTuple, + WithdrawnEvent.OutputObject + >; + getEvent( + key: "WithdrawnAndCalled" + ): TypedContractEvent< + WithdrawnAndCalledEvent.InputTuple, + WithdrawnAndCalledEvent.OutputTuple, + WithdrawnAndCalledEvent.OutputObject + >; + getEvent( + key: "WithdrawnAndReverted" + ): TypedContractEvent< + WithdrawnAndRevertedEvent.InputTuple, + WithdrawnAndRevertedEvent.OutputTuple, + WithdrawnAndRevertedEvent.OutputObject + >; + + filters: { + "Deposited(bytes,address,uint256,bytes)": TypedContractEvent< + DepositedEvent.InputTuple, + DepositedEvent.OutputTuple, + DepositedEvent.OutputObject + >; + Deposited: TypedContractEvent< + DepositedEvent.InputTuple, + DepositedEvent.OutputTuple, + DepositedEvent.OutputObject + >; + + "Unwhitelisted(address)": TypedContractEvent< + UnwhitelistedEvent.InputTuple, + UnwhitelistedEvent.OutputTuple, + UnwhitelistedEvent.OutputObject + >; + Unwhitelisted: TypedContractEvent< + UnwhitelistedEvent.InputTuple, + UnwhitelistedEvent.OutputTuple, + UnwhitelistedEvent.OutputObject + >; + + "UpdatedCustodyTSSAddress(address,address)": TypedContractEvent< + UpdatedCustodyTSSAddressEvent.InputTuple, + UpdatedCustodyTSSAddressEvent.OutputTuple, + UpdatedCustodyTSSAddressEvent.OutputObject + >; + UpdatedCustodyTSSAddress: TypedContractEvent< + UpdatedCustodyTSSAddressEvent.InputTuple, + UpdatedCustodyTSSAddressEvent.OutputTuple, + UpdatedCustodyTSSAddressEvent.OutputObject + >; + + "Whitelisted(address)": TypedContractEvent< + WhitelistedEvent.InputTuple, + WhitelistedEvent.OutputTuple, + WhitelistedEvent.OutputObject + >; + Whitelisted: TypedContractEvent< + WhitelistedEvent.InputTuple, + WhitelistedEvent.OutputTuple, + WhitelistedEvent.OutputObject + >; + + "Withdrawn(address,address,uint256)": TypedContractEvent< + WithdrawnEvent.InputTuple, + WithdrawnEvent.OutputTuple, + WithdrawnEvent.OutputObject + >; + Withdrawn: TypedContractEvent< + WithdrawnEvent.InputTuple, + WithdrawnEvent.OutputTuple, + WithdrawnEvent.OutputObject + >; + + "WithdrawnAndCalled(address,address,uint256,bytes)": TypedContractEvent< + WithdrawnAndCalledEvent.InputTuple, + WithdrawnAndCalledEvent.OutputTuple, + WithdrawnAndCalledEvent.OutputObject + >; + WithdrawnAndCalled: TypedContractEvent< + WithdrawnAndCalledEvent.InputTuple, + WithdrawnAndCalledEvent.OutputTuple, + WithdrawnAndCalledEvent.OutputObject + >; + + "WithdrawnAndReverted(address,address,uint256,bytes,tuple)": TypedContractEvent< + WithdrawnAndRevertedEvent.InputTuple, + WithdrawnAndRevertedEvent.OutputTuple, + WithdrawnAndRevertedEvent.OutputObject + >; + WithdrawnAndReverted: TypedContractEvent< + WithdrawnAndRevertedEvent.InputTuple, + WithdrawnAndRevertedEvent.OutputTuple, + WithdrawnAndRevertedEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyErrors.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyErrors.ts new file mode 100644 index 00000000..0c616ee9 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyErrors.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../../../../../../common"; + +export interface IERC20CustodyErrorsInterface extends Interface {} + +export interface IERC20CustodyErrors extends BaseContract { + connect(runner?: ContractRunner | null): IERC20CustodyErrors; + waitForDeployment(): Promise; + + interface: IERC20CustodyErrorsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyEvents.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyEvents.ts new file mode 100644 index 00000000..dd837919 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyEvents.ts @@ -0,0 +1,362 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, +} from "../../../../../../common"; + +export type RevertContextStruct = { + sender: AddressLike; + asset: AddressLike; + amount: BigNumberish; + revertMessage: BytesLike; +}; + +export type RevertContextStructOutput = [ + sender: string, + asset: string, + amount: bigint, + revertMessage: string +] & { sender: string; asset: string; amount: bigint; revertMessage: string }; + +export interface IERC20CustodyEventsInterface extends Interface { + getEvent( + nameOrSignatureOrTopic: + | "Deposited" + | "Unwhitelisted" + | "UpdatedCustodyTSSAddress" + | "Whitelisted" + | "Withdrawn" + | "WithdrawnAndCalled" + | "WithdrawnAndReverted" + ): EventFragment; +} + +export namespace DepositedEvent { + export type InputTuple = [ + recipient: BytesLike, + asset: AddressLike, + amount: BigNumberish, + message: BytesLike + ]; + export type OutputTuple = [ + recipient: string, + asset: string, + amount: bigint, + message: string + ]; + export interface OutputObject { + recipient: string; + asset: string; + amount: bigint; + message: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UnwhitelistedEvent { + export type InputTuple = [token: AddressLike]; + export type OutputTuple = [token: string]; + export interface OutputObject { + token: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpdatedCustodyTSSAddressEvent { + export type InputTuple = [ + oldTSSAddress: AddressLike, + newTSSAddress: AddressLike + ]; + export type OutputTuple = [oldTSSAddress: string, newTSSAddress: string]; + export interface OutputObject { + oldTSSAddress: string; + newTSSAddress: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WhitelistedEvent { + export type InputTuple = [token: AddressLike]; + export type OutputTuple = [token: string]; + export interface OutputObject { + token: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawnEvent { + export type InputTuple = [ + to: AddressLike, + token: AddressLike, + amount: BigNumberish + ]; + export type OutputTuple = [to: string, token: string, amount: bigint]; + export interface OutputObject { + to: string; + token: string; + amount: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawnAndCalledEvent { + export type InputTuple = [ + to: AddressLike, + token: AddressLike, + amount: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [ + to: string, + token: string, + amount: bigint, + data: string + ]; + export interface OutputObject { + to: string; + token: string; + amount: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawnAndRevertedEvent { + export type InputTuple = [ + to: AddressLike, + token: AddressLike, + amount: BigNumberish, + data: BytesLike, + revertContext: RevertContextStruct + ]; + export type OutputTuple = [ + to: string, + token: string, + amount: bigint, + data: string, + revertContext: RevertContextStructOutput + ]; + export interface OutputObject { + to: string; + token: string; + amount: bigint; + data: string; + revertContext: RevertContextStructOutput; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IERC20CustodyEvents extends BaseContract { + connect(runner?: ContractRunner | null): IERC20CustodyEvents; + waitForDeployment(): Promise; + + interface: IERC20CustodyEventsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + getEvent( + key: "Deposited" + ): TypedContractEvent< + DepositedEvent.InputTuple, + DepositedEvent.OutputTuple, + DepositedEvent.OutputObject + >; + getEvent( + key: "Unwhitelisted" + ): TypedContractEvent< + UnwhitelistedEvent.InputTuple, + UnwhitelistedEvent.OutputTuple, + UnwhitelistedEvent.OutputObject + >; + getEvent( + key: "UpdatedCustodyTSSAddress" + ): TypedContractEvent< + UpdatedCustodyTSSAddressEvent.InputTuple, + UpdatedCustodyTSSAddressEvent.OutputTuple, + UpdatedCustodyTSSAddressEvent.OutputObject + >; + getEvent( + key: "Whitelisted" + ): TypedContractEvent< + WhitelistedEvent.InputTuple, + WhitelistedEvent.OutputTuple, + WhitelistedEvent.OutputObject + >; + getEvent( + key: "Withdrawn" + ): TypedContractEvent< + WithdrawnEvent.InputTuple, + WithdrawnEvent.OutputTuple, + WithdrawnEvent.OutputObject + >; + getEvent( + key: "WithdrawnAndCalled" + ): TypedContractEvent< + WithdrawnAndCalledEvent.InputTuple, + WithdrawnAndCalledEvent.OutputTuple, + WithdrawnAndCalledEvent.OutputObject + >; + getEvent( + key: "WithdrawnAndReverted" + ): TypedContractEvent< + WithdrawnAndRevertedEvent.InputTuple, + WithdrawnAndRevertedEvent.OutputTuple, + WithdrawnAndRevertedEvent.OutputObject + >; + + filters: { + "Deposited(bytes,address,uint256,bytes)": TypedContractEvent< + DepositedEvent.InputTuple, + DepositedEvent.OutputTuple, + DepositedEvent.OutputObject + >; + Deposited: TypedContractEvent< + DepositedEvent.InputTuple, + DepositedEvent.OutputTuple, + DepositedEvent.OutputObject + >; + + "Unwhitelisted(address)": TypedContractEvent< + UnwhitelistedEvent.InputTuple, + UnwhitelistedEvent.OutputTuple, + UnwhitelistedEvent.OutputObject + >; + Unwhitelisted: TypedContractEvent< + UnwhitelistedEvent.InputTuple, + UnwhitelistedEvent.OutputTuple, + UnwhitelistedEvent.OutputObject + >; + + "UpdatedCustodyTSSAddress(address,address)": TypedContractEvent< + UpdatedCustodyTSSAddressEvent.InputTuple, + UpdatedCustodyTSSAddressEvent.OutputTuple, + UpdatedCustodyTSSAddressEvent.OutputObject + >; + UpdatedCustodyTSSAddress: TypedContractEvent< + UpdatedCustodyTSSAddressEvent.InputTuple, + UpdatedCustodyTSSAddressEvent.OutputTuple, + UpdatedCustodyTSSAddressEvent.OutputObject + >; + + "Whitelisted(address)": TypedContractEvent< + WhitelistedEvent.InputTuple, + WhitelistedEvent.OutputTuple, + WhitelistedEvent.OutputObject + >; + Whitelisted: TypedContractEvent< + WhitelistedEvent.InputTuple, + WhitelistedEvent.OutputTuple, + WhitelistedEvent.OutputObject + >; + + "Withdrawn(address,address,uint256)": TypedContractEvent< + WithdrawnEvent.InputTuple, + WithdrawnEvent.OutputTuple, + WithdrawnEvent.OutputObject + >; + Withdrawn: TypedContractEvent< + WithdrawnEvent.InputTuple, + WithdrawnEvent.OutputTuple, + WithdrawnEvent.OutputObject + >; + + "WithdrawnAndCalled(address,address,uint256,bytes)": TypedContractEvent< + WithdrawnAndCalledEvent.InputTuple, + WithdrawnAndCalledEvent.OutputTuple, + WithdrawnAndCalledEvent.OutputObject + >; + WithdrawnAndCalled: TypedContractEvent< + WithdrawnAndCalledEvent.InputTuple, + WithdrawnAndCalledEvent.OutputTuple, + WithdrawnAndCalledEvent.OutputObject + >; + + "WithdrawnAndReverted(address,address,uint256,bytes,tuple)": TypedContractEvent< + WithdrawnAndRevertedEvent.InputTuple, + WithdrawnAndRevertedEvent.OutputTuple, + WithdrawnAndRevertedEvent.OutputObject + >; + WithdrawnAndReverted: TypedContractEvent< + WithdrawnAndRevertedEvent.InputTuple, + WithdrawnAndRevertedEvent.OutputTuple, + WithdrawnAndRevertedEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/index.ts new file mode 100644 index 00000000..26e32f74 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IERC20Custody } from "./IERC20Custody"; +export type { IERC20CustodyErrors } from "./IERC20CustodyErrors"; +export type { IERC20CustodyEvents } from "./IERC20CustodyEvents"; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/Callable.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/Callable.ts new file mode 100644 index 00000000..4e7c128f --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/Callable.ts @@ -0,0 +1,100 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../../../../../common"; + +export type MessageContextStruct = { sender: AddressLike }; + +export type MessageContextStructOutput = [sender: string] & { sender: string }; + +export interface CallableInterface extends Interface { + getFunction(nameOrSignature: "onCall"): FunctionFragment; + + encodeFunctionData( + functionFragment: "onCall", + values: [MessageContextStruct, BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "onCall", data: BytesLike): Result; +} + +export interface Callable extends BaseContract { + connect(runner?: ContractRunner | null): Callable; + waitForDeployment(): Promise; + + interface: CallableInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + onCall: TypedContractMethod< + [context: MessageContextStruct, message: BytesLike], + [string], + "payable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "onCall" + ): TypedContractMethod< + [context: MessageContextStruct, message: BytesLike], + [string], + "payable" + >; + + filters: {}; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVM.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVM.ts new file mode 100644 index 00000000..853f7ab9 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVM.ts @@ -0,0 +1,723 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../../../../common"; + +export type RevertOptionsStruct = { + revertAddress: AddressLike; + callOnRevert: boolean; + abortAddress: AddressLike; + revertMessage: BytesLike; + onRevertGasLimit: BigNumberish; +}; + +export type RevertOptionsStructOutput = [ + revertAddress: string, + callOnRevert: boolean, + abortAddress: string, + revertMessage: string, + onRevertGasLimit: bigint +] & { + revertAddress: string; + callOnRevert: boolean; + abortAddress: string; + revertMessage: string; + onRevertGasLimit: bigint; +}; + +export type RevertContextStruct = { + sender: AddressLike; + asset: AddressLike; + amount: BigNumberish; + revertMessage: BytesLike; +}; + +export type RevertContextStructOutput = [ + sender: string, + asset: string, + amount: bigint, + revertMessage: string +] & { sender: string; asset: string; amount: bigint; revertMessage: string }; + +export type MessageContextStruct = { sender: AddressLike }; + +export type MessageContextStructOutput = [sender: string] & { sender: string }; + +export interface IGatewayEVMInterface extends Interface { + getFunction( + nameOrSignature: + | "call" + | "deposit(address,uint256,address,(address,bool,address,bytes,uint256))" + | "deposit(address,(address,bool,address,bytes,uint256))" + | "depositAndCall(address,bytes,(address,bool,address,bytes,uint256))" + | "depositAndCall(address,uint256,address,bytes,(address,bool,address,bytes,uint256))" + | "execute" + | "executeRevert" + | "executeWithERC20" + | "revertWithERC20" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "Called" + | "Deposited" + | "DepositedAndCalled" + | "Executed" + | "ExecutedWithERC20" + | "Reverted" + | "UpdatedGatewayTSSAddress" + ): EventFragment; + + encodeFunctionData( + functionFragment: "call", + values: [AddressLike, BytesLike, RevertOptionsStruct] + ): string; + encodeFunctionData( + functionFragment: "deposit(address,uint256,address,(address,bool,address,bytes,uint256))", + values: [AddressLike, BigNumberish, AddressLike, RevertOptionsStruct] + ): string; + encodeFunctionData( + functionFragment: "deposit(address,(address,bool,address,bytes,uint256))", + values: [AddressLike, RevertOptionsStruct] + ): string; + encodeFunctionData( + functionFragment: "depositAndCall(address,bytes,(address,bool,address,bytes,uint256))", + values: [AddressLike, BytesLike, RevertOptionsStruct] + ): string; + encodeFunctionData( + functionFragment: "depositAndCall(address,uint256,address,bytes,(address,bool,address,bytes,uint256))", + values: [ + AddressLike, + BigNumberish, + AddressLike, + BytesLike, + RevertOptionsStruct + ] + ): string; + encodeFunctionData( + functionFragment: "execute", + values: [MessageContextStruct, AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "executeRevert", + values: [AddressLike, BytesLike, RevertContextStruct] + ): string; + encodeFunctionData( + functionFragment: "executeWithERC20", + values: [ + MessageContextStruct, + AddressLike, + AddressLike, + BigNumberish, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "revertWithERC20", + values: [ + AddressLike, + AddressLike, + BigNumberish, + BytesLike, + RevertContextStruct + ] + ): string; + + decodeFunctionResult(functionFragment: "call", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "deposit(address,uint256,address,(address,bool,address,bytes,uint256))", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deposit(address,(address,bool,address,bytes,uint256))", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "depositAndCall(address,bytes,(address,bool,address,bytes,uint256))", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "depositAndCall(address,uint256,address,bytes,(address,bool,address,bytes,uint256))", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "execute", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "executeRevert", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "executeWithERC20", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "revertWithERC20", + data: BytesLike + ): Result; +} + +export namespace CalledEvent { + export type InputTuple = [ + sender: AddressLike, + receiver: AddressLike, + payload: BytesLike, + revertOptions: RevertOptionsStruct + ]; + export type OutputTuple = [ + sender: string, + receiver: string, + payload: string, + revertOptions: RevertOptionsStructOutput + ]; + export interface OutputObject { + sender: string; + receiver: string; + payload: string; + revertOptions: RevertOptionsStructOutput; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace DepositedEvent { + export type InputTuple = [ + sender: AddressLike, + receiver: AddressLike, + amount: BigNumberish, + asset: AddressLike, + payload: BytesLike, + revertOptions: RevertOptionsStruct + ]; + export type OutputTuple = [ + sender: string, + receiver: string, + amount: bigint, + asset: string, + payload: string, + revertOptions: RevertOptionsStructOutput + ]; + export interface OutputObject { + sender: string; + receiver: string; + amount: bigint; + asset: string; + payload: string; + revertOptions: RevertOptionsStructOutput; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace DepositedAndCalledEvent { + export type InputTuple = [ + sender: AddressLike, + receiver: AddressLike, + amount: BigNumberish, + asset: AddressLike, + payload: BytesLike, + revertOptions: RevertOptionsStruct + ]; + export type OutputTuple = [ + sender: string, + receiver: string, + amount: bigint, + asset: string, + payload: string, + revertOptions: RevertOptionsStructOutput + ]; + export interface OutputObject { + sender: string; + receiver: string; + amount: bigint; + asset: string; + payload: string; + revertOptions: RevertOptionsStructOutput; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ExecutedEvent { + export type InputTuple = [ + destination: AddressLike, + value: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [destination: string, value: bigint, data: string]; + export interface OutputObject { + destination: string; + value: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ExecutedWithERC20Event { + export type InputTuple = [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [ + token: string, + to: string, + amount: bigint, + data: string + ]; + export interface OutputObject { + token: string; + to: string; + amount: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RevertedEvent { + export type InputTuple = [ + to: AddressLike, + token: AddressLike, + amount: BigNumberish, + data: BytesLike, + revertContext: RevertContextStruct + ]; + export type OutputTuple = [ + to: string, + token: string, + amount: bigint, + data: string, + revertContext: RevertContextStructOutput + ]; + export interface OutputObject { + to: string; + token: string; + amount: bigint; + data: string; + revertContext: RevertContextStructOutput; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpdatedGatewayTSSAddressEvent { + export type InputTuple = [ + oldTSSAddress: AddressLike, + newTSSAddress: AddressLike + ]; + export type OutputTuple = [oldTSSAddress: string, newTSSAddress: string]; + export interface OutputObject { + oldTSSAddress: string; + newTSSAddress: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IGatewayEVM extends BaseContract { + connect(runner?: ContractRunner | null): IGatewayEVM; + waitForDeployment(): Promise; + + interface: IGatewayEVMInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + call: TypedContractMethod< + [ + receiver: AddressLike, + payload: BytesLike, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + + "deposit(address,uint256,address,(address,bool,address,bytes,uint256))": TypedContractMethod< + [ + receiver: AddressLike, + amount: BigNumberish, + asset: AddressLike, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + + "deposit(address,(address,bool,address,bytes,uint256))": TypedContractMethod< + [receiver: AddressLike, revertOptions: RevertOptionsStruct], + [void], + "payable" + >; + + "depositAndCall(address,bytes,(address,bool,address,bytes,uint256))": TypedContractMethod< + [ + receiver: AddressLike, + payload: BytesLike, + revertOptions: RevertOptionsStruct + ], + [void], + "payable" + >; + + "depositAndCall(address,uint256,address,bytes,(address,bool,address,bytes,uint256))": TypedContractMethod< + [ + receiver: AddressLike, + amount: BigNumberish, + asset: AddressLike, + payload: BytesLike, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + + execute: TypedContractMethod< + [ + messageContext: MessageContextStruct, + destination: AddressLike, + data: BytesLike + ], + [string], + "payable" + >; + + executeRevert: TypedContractMethod< + [ + destination: AddressLike, + data: BytesLike, + revertContext: RevertContextStruct + ], + [void], + "payable" + >; + + executeWithERC20: TypedContractMethod< + [ + messageContext: MessageContextStruct, + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + + revertWithERC20: TypedContractMethod< + [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike, + revertContext: RevertContextStruct + ], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "call" + ): TypedContractMethod< + [ + receiver: AddressLike, + payload: BytesLike, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "deposit(address,uint256,address,(address,bool,address,bytes,uint256))" + ): TypedContractMethod< + [ + receiver: AddressLike, + amount: BigNumberish, + asset: AddressLike, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "deposit(address,(address,bool,address,bytes,uint256))" + ): TypedContractMethod< + [receiver: AddressLike, revertOptions: RevertOptionsStruct], + [void], + "payable" + >; + getFunction( + nameOrSignature: "depositAndCall(address,bytes,(address,bool,address,bytes,uint256))" + ): TypedContractMethod< + [ + receiver: AddressLike, + payload: BytesLike, + revertOptions: RevertOptionsStruct + ], + [void], + "payable" + >; + getFunction( + nameOrSignature: "depositAndCall(address,uint256,address,bytes,(address,bool,address,bytes,uint256))" + ): TypedContractMethod< + [ + receiver: AddressLike, + amount: BigNumberish, + asset: AddressLike, + payload: BytesLike, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "execute" + ): TypedContractMethod< + [ + messageContext: MessageContextStruct, + destination: AddressLike, + data: BytesLike + ], + [string], + "payable" + >; + getFunction( + nameOrSignature: "executeRevert" + ): TypedContractMethod< + [ + destination: AddressLike, + data: BytesLike, + revertContext: RevertContextStruct + ], + [void], + "payable" + >; + getFunction( + nameOrSignature: "executeWithERC20" + ): TypedContractMethod< + [ + messageContext: MessageContextStruct, + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "revertWithERC20" + ): TypedContractMethod< + [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike, + revertContext: RevertContextStruct + ], + [void], + "nonpayable" + >; + + getEvent( + key: "Called" + ): TypedContractEvent< + CalledEvent.InputTuple, + CalledEvent.OutputTuple, + CalledEvent.OutputObject + >; + getEvent( + key: "Deposited" + ): TypedContractEvent< + DepositedEvent.InputTuple, + DepositedEvent.OutputTuple, + DepositedEvent.OutputObject + >; + getEvent( + key: "DepositedAndCalled" + ): TypedContractEvent< + DepositedAndCalledEvent.InputTuple, + DepositedAndCalledEvent.OutputTuple, + DepositedAndCalledEvent.OutputObject + >; + getEvent( + key: "Executed" + ): TypedContractEvent< + ExecutedEvent.InputTuple, + ExecutedEvent.OutputTuple, + ExecutedEvent.OutputObject + >; + getEvent( + key: "ExecutedWithERC20" + ): TypedContractEvent< + ExecutedWithERC20Event.InputTuple, + ExecutedWithERC20Event.OutputTuple, + ExecutedWithERC20Event.OutputObject + >; + getEvent( + key: "Reverted" + ): TypedContractEvent< + RevertedEvent.InputTuple, + RevertedEvent.OutputTuple, + RevertedEvent.OutputObject + >; + getEvent( + key: "UpdatedGatewayTSSAddress" + ): TypedContractEvent< + UpdatedGatewayTSSAddressEvent.InputTuple, + UpdatedGatewayTSSAddressEvent.OutputTuple, + UpdatedGatewayTSSAddressEvent.OutputObject + >; + + filters: { + "Called(address,address,bytes,tuple)": TypedContractEvent< + CalledEvent.InputTuple, + CalledEvent.OutputTuple, + CalledEvent.OutputObject + >; + Called: TypedContractEvent< + CalledEvent.InputTuple, + CalledEvent.OutputTuple, + CalledEvent.OutputObject + >; + + "Deposited(address,address,uint256,address,bytes,tuple)": TypedContractEvent< + DepositedEvent.InputTuple, + DepositedEvent.OutputTuple, + DepositedEvent.OutputObject + >; + Deposited: TypedContractEvent< + DepositedEvent.InputTuple, + DepositedEvent.OutputTuple, + DepositedEvent.OutputObject + >; + + "DepositedAndCalled(address,address,uint256,address,bytes,tuple)": TypedContractEvent< + DepositedAndCalledEvent.InputTuple, + DepositedAndCalledEvent.OutputTuple, + DepositedAndCalledEvent.OutputObject + >; + DepositedAndCalled: TypedContractEvent< + DepositedAndCalledEvent.InputTuple, + DepositedAndCalledEvent.OutputTuple, + DepositedAndCalledEvent.OutputObject + >; + + "Executed(address,uint256,bytes)": TypedContractEvent< + ExecutedEvent.InputTuple, + ExecutedEvent.OutputTuple, + ExecutedEvent.OutputObject + >; + Executed: TypedContractEvent< + ExecutedEvent.InputTuple, + ExecutedEvent.OutputTuple, + ExecutedEvent.OutputObject + >; + + "ExecutedWithERC20(address,address,uint256,bytes)": TypedContractEvent< + ExecutedWithERC20Event.InputTuple, + ExecutedWithERC20Event.OutputTuple, + ExecutedWithERC20Event.OutputObject + >; + ExecutedWithERC20: TypedContractEvent< + ExecutedWithERC20Event.InputTuple, + ExecutedWithERC20Event.OutputTuple, + ExecutedWithERC20Event.OutputObject + >; + + "Reverted(address,address,uint256,bytes,tuple)": TypedContractEvent< + RevertedEvent.InputTuple, + RevertedEvent.OutputTuple, + RevertedEvent.OutputObject + >; + Reverted: TypedContractEvent< + RevertedEvent.InputTuple, + RevertedEvent.OutputTuple, + RevertedEvent.OutputObject + >; + + "UpdatedGatewayTSSAddress(address,address)": TypedContractEvent< + UpdatedGatewayTSSAddressEvent.InputTuple, + UpdatedGatewayTSSAddressEvent.OutputTuple, + UpdatedGatewayTSSAddressEvent.OutputObject + >; + UpdatedGatewayTSSAddress: TypedContractEvent< + UpdatedGatewayTSSAddressEvent.InputTuple, + UpdatedGatewayTSSAddressEvent.OutputTuple, + UpdatedGatewayTSSAddressEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMErrors.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMErrors.ts new file mode 100644 index 00000000..c7624d90 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMErrors.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../../../../../../common"; + +export interface IGatewayEVMErrorsInterface extends Interface {} + +export interface IGatewayEVMErrors extends BaseContract { + connect(runner?: ContractRunner | null): IGatewayEVMErrors; + waitForDeployment(): Promise; + + interface: IGatewayEVMErrorsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMEvents.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMEvents.ts new file mode 100644 index 00000000..af5c311a --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMEvents.ts @@ -0,0 +1,422 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, +} from "../../../../../../common"; + +export type RevertOptionsStruct = { + revertAddress: AddressLike; + callOnRevert: boolean; + abortAddress: AddressLike; + revertMessage: BytesLike; + onRevertGasLimit: BigNumberish; +}; + +export type RevertOptionsStructOutput = [ + revertAddress: string, + callOnRevert: boolean, + abortAddress: string, + revertMessage: string, + onRevertGasLimit: bigint +] & { + revertAddress: string; + callOnRevert: boolean; + abortAddress: string; + revertMessage: string; + onRevertGasLimit: bigint; +}; + +export type RevertContextStruct = { + sender: AddressLike; + asset: AddressLike; + amount: BigNumberish; + revertMessage: BytesLike; +}; + +export type RevertContextStructOutput = [ + sender: string, + asset: string, + amount: bigint, + revertMessage: string +] & { sender: string; asset: string; amount: bigint; revertMessage: string }; + +export interface IGatewayEVMEventsInterface extends Interface { + getEvent( + nameOrSignatureOrTopic: + | "Called" + | "Deposited" + | "DepositedAndCalled" + | "Executed" + | "ExecutedWithERC20" + | "Reverted" + | "UpdatedGatewayTSSAddress" + ): EventFragment; +} + +export namespace CalledEvent { + export type InputTuple = [ + sender: AddressLike, + receiver: AddressLike, + payload: BytesLike, + revertOptions: RevertOptionsStruct + ]; + export type OutputTuple = [ + sender: string, + receiver: string, + payload: string, + revertOptions: RevertOptionsStructOutput + ]; + export interface OutputObject { + sender: string; + receiver: string; + payload: string; + revertOptions: RevertOptionsStructOutput; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace DepositedEvent { + export type InputTuple = [ + sender: AddressLike, + receiver: AddressLike, + amount: BigNumberish, + asset: AddressLike, + payload: BytesLike, + revertOptions: RevertOptionsStruct + ]; + export type OutputTuple = [ + sender: string, + receiver: string, + amount: bigint, + asset: string, + payload: string, + revertOptions: RevertOptionsStructOutput + ]; + export interface OutputObject { + sender: string; + receiver: string; + amount: bigint; + asset: string; + payload: string; + revertOptions: RevertOptionsStructOutput; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace DepositedAndCalledEvent { + export type InputTuple = [ + sender: AddressLike, + receiver: AddressLike, + amount: BigNumberish, + asset: AddressLike, + payload: BytesLike, + revertOptions: RevertOptionsStruct + ]; + export type OutputTuple = [ + sender: string, + receiver: string, + amount: bigint, + asset: string, + payload: string, + revertOptions: RevertOptionsStructOutput + ]; + export interface OutputObject { + sender: string; + receiver: string; + amount: bigint; + asset: string; + payload: string; + revertOptions: RevertOptionsStructOutput; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ExecutedEvent { + export type InputTuple = [ + destination: AddressLike, + value: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [destination: string, value: bigint, data: string]; + export interface OutputObject { + destination: string; + value: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ExecutedWithERC20Event { + export type InputTuple = [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [ + token: string, + to: string, + amount: bigint, + data: string + ]; + export interface OutputObject { + token: string; + to: string; + amount: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RevertedEvent { + export type InputTuple = [ + to: AddressLike, + token: AddressLike, + amount: BigNumberish, + data: BytesLike, + revertContext: RevertContextStruct + ]; + export type OutputTuple = [ + to: string, + token: string, + amount: bigint, + data: string, + revertContext: RevertContextStructOutput + ]; + export interface OutputObject { + to: string; + token: string; + amount: bigint; + data: string; + revertContext: RevertContextStructOutput; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpdatedGatewayTSSAddressEvent { + export type InputTuple = [ + oldTSSAddress: AddressLike, + newTSSAddress: AddressLike + ]; + export type OutputTuple = [oldTSSAddress: string, newTSSAddress: string]; + export interface OutputObject { + oldTSSAddress: string; + newTSSAddress: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IGatewayEVMEvents extends BaseContract { + connect(runner?: ContractRunner | null): IGatewayEVMEvents; + waitForDeployment(): Promise; + + interface: IGatewayEVMEventsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + getEvent( + key: "Called" + ): TypedContractEvent< + CalledEvent.InputTuple, + CalledEvent.OutputTuple, + CalledEvent.OutputObject + >; + getEvent( + key: "Deposited" + ): TypedContractEvent< + DepositedEvent.InputTuple, + DepositedEvent.OutputTuple, + DepositedEvent.OutputObject + >; + getEvent( + key: "DepositedAndCalled" + ): TypedContractEvent< + DepositedAndCalledEvent.InputTuple, + DepositedAndCalledEvent.OutputTuple, + DepositedAndCalledEvent.OutputObject + >; + getEvent( + key: "Executed" + ): TypedContractEvent< + ExecutedEvent.InputTuple, + ExecutedEvent.OutputTuple, + ExecutedEvent.OutputObject + >; + getEvent( + key: "ExecutedWithERC20" + ): TypedContractEvent< + ExecutedWithERC20Event.InputTuple, + ExecutedWithERC20Event.OutputTuple, + ExecutedWithERC20Event.OutputObject + >; + getEvent( + key: "Reverted" + ): TypedContractEvent< + RevertedEvent.InputTuple, + RevertedEvent.OutputTuple, + RevertedEvent.OutputObject + >; + getEvent( + key: "UpdatedGatewayTSSAddress" + ): TypedContractEvent< + UpdatedGatewayTSSAddressEvent.InputTuple, + UpdatedGatewayTSSAddressEvent.OutputTuple, + UpdatedGatewayTSSAddressEvent.OutputObject + >; + + filters: { + "Called(address,address,bytes,tuple)": TypedContractEvent< + CalledEvent.InputTuple, + CalledEvent.OutputTuple, + CalledEvent.OutputObject + >; + Called: TypedContractEvent< + CalledEvent.InputTuple, + CalledEvent.OutputTuple, + CalledEvent.OutputObject + >; + + "Deposited(address,address,uint256,address,bytes,tuple)": TypedContractEvent< + DepositedEvent.InputTuple, + DepositedEvent.OutputTuple, + DepositedEvent.OutputObject + >; + Deposited: TypedContractEvent< + DepositedEvent.InputTuple, + DepositedEvent.OutputTuple, + DepositedEvent.OutputObject + >; + + "DepositedAndCalled(address,address,uint256,address,bytes,tuple)": TypedContractEvent< + DepositedAndCalledEvent.InputTuple, + DepositedAndCalledEvent.OutputTuple, + DepositedAndCalledEvent.OutputObject + >; + DepositedAndCalled: TypedContractEvent< + DepositedAndCalledEvent.InputTuple, + DepositedAndCalledEvent.OutputTuple, + DepositedAndCalledEvent.OutputObject + >; + + "Executed(address,uint256,bytes)": TypedContractEvent< + ExecutedEvent.InputTuple, + ExecutedEvent.OutputTuple, + ExecutedEvent.OutputObject + >; + Executed: TypedContractEvent< + ExecutedEvent.InputTuple, + ExecutedEvent.OutputTuple, + ExecutedEvent.OutputObject + >; + + "ExecutedWithERC20(address,address,uint256,bytes)": TypedContractEvent< + ExecutedWithERC20Event.InputTuple, + ExecutedWithERC20Event.OutputTuple, + ExecutedWithERC20Event.OutputObject + >; + ExecutedWithERC20: TypedContractEvent< + ExecutedWithERC20Event.InputTuple, + ExecutedWithERC20Event.OutputTuple, + ExecutedWithERC20Event.OutputObject + >; + + "Reverted(address,address,uint256,bytes,tuple)": TypedContractEvent< + RevertedEvent.InputTuple, + RevertedEvent.OutputTuple, + RevertedEvent.OutputObject + >; + Reverted: TypedContractEvent< + RevertedEvent.InputTuple, + RevertedEvent.OutputTuple, + RevertedEvent.OutputObject + >; + + "UpdatedGatewayTSSAddress(address,address)": TypedContractEvent< + UpdatedGatewayTSSAddressEvent.InputTuple, + UpdatedGatewayTSSAddressEvent.OutputTuple, + UpdatedGatewayTSSAddressEvent.OutputObject + >; + UpdatedGatewayTSSAddress: TypedContractEvent< + UpdatedGatewayTSSAddressEvent.InputTuple, + UpdatedGatewayTSSAddressEvent.OutputTuple, + UpdatedGatewayTSSAddressEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/index.ts new file mode 100644 index 00000000..35717632 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/index.ts @@ -0,0 +1,7 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { Callable } from "./Callable"; +export type { IGatewayEVM } from "./IGatewayEVM"; +export type { IGatewayEVMErrors } from "./IGatewayEVMErrors"; +export type { IGatewayEVMEvents } from "./IGatewayEVMEvents"; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/IZetaConnectorEvents.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/IZetaConnectorEvents.ts new file mode 100644 index 00000000..bdf342f4 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/IZetaConnectorEvents.ts @@ -0,0 +1,241 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, +} from "../../../../../../common"; + +export type RevertContextStruct = { + sender: AddressLike; + asset: AddressLike; + amount: BigNumberish; + revertMessage: BytesLike; +}; + +export type RevertContextStructOutput = [ + sender: string, + asset: string, + amount: bigint, + revertMessage: string +] & { sender: string; asset: string; amount: bigint; revertMessage: string }; + +export interface IZetaConnectorEventsInterface extends Interface { + getEvent( + nameOrSignatureOrTopic: + | "UpdatedZetaConnectorTSSAddress" + | "Withdrawn" + | "WithdrawnAndCalled" + | "WithdrawnAndReverted" + ): EventFragment; +} + +export namespace UpdatedZetaConnectorTSSAddressEvent { + export type InputTuple = [ + oldTSSAddress: AddressLike, + newTSSAddress: AddressLike + ]; + export type OutputTuple = [oldTSSAddress: string, newTSSAddress: string]; + export interface OutputObject { + oldTSSAddress: string; + newTSSAddress: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawnEvent { + export type InputTuple = [to: AddressLike, amount: BigNumberish]; + export type OutputTuple = [to: string, amount: bigint]; + export interface OutputObject { + to: string; + amount: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawnAndCalledEvent { + export type InputTuple = [ + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ]; + export type OutputTuple = [to: string, amount: bigint, data: string]; + export interface OutputObject { + to: string; + amount: bigint; + data: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawnAndRevertedEvent { + export type InputTuple = [ + to: AddressLike, + amount: BigNumberish, + data: BytesLike, + revertContext: RevertContextStruct + ]; + export type OutputTuple = [ + to: string, + amount: bigint, + data: string, + revertContext: RevertContextStructOutput + ]; + export interface OutputObject { + to: string; + amount: bigint; + data: string; + revertContext: RevertContextStructOutput; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IZetaConnectorEvents extends BaseContract { + connect(runner?: ContractRunner | null): IZetaConnectorEvents; + waitForDeployment(): Promise; + + interface: IZetaConnectorEventsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + getEvent( + key: "UpdatedZetaConnectorTSSAddress" + ): TypedContractEvent< + UpdatedZetaConnectorTSSAddressEvent.InputTuple, + UpdatedZetaConnectorTSSAddressEvent.OutputTuple, + UpdatedZetaConnectorTSSAddressEvent.OutputObject + >; + getEvent( + key: "Withdrawn" + ): TypedContractEvent< + WithdrawnEvent.InputTuple, + WithdrawnEvent.OutputTuple, + WithdrawnEvent.OutputObject + >; + getEvent( + key: "WithdrawnAndCalled" + ): TypedContractEvent< + WithdrawnAndCalledEvent.InputTuple, + WithdrawnAndCalledEvent.OutputTuple, + WithdrawnAndCalledEvent.OutputObject + >; + getEvent( + key: "WithdrawnAndReverted" + ): TypedContractEvent< + WithdrawnAndRevertedEvent.InputTuple, + WithdrawnAndRevertedEvent.OutputTuple, + WithdrawnAndRevertedEvent.OutputObject + >; + + filters: { + "UpdatedZetaConnectorTSSAddress(address,address)": TypedContractEvent< + UpdatedZetaConnectorTSSAddressEvent.InputTuple, + UpdatedZetaConnectorTSSAddressEvent.OutputTuple, + UpdatedZetaConnectorTSSAddressEvent.OutputObject + >; + UpdatedZetaConnectorTSSAddress: TypedContractEvent< + UpdatedZetaConnectorTSSAddressEvent.InputTuple, + UpdatedZetaConnectorTSSAddressEvent.OutputTuple, + UpdatedZetaConnectorTSSAddressEvent.OutputObject + >; + + "Withdrawn(address,uint256)": TypedContractEvent< + WithdrawnEvent.InputTuple, + WithdrawnEvent.OutputTuple, + WithdrawnEvent.OutputObject + >; + Withdrawn: TypedContractEvent< + WithdrawnEvent.InputTuple, + WithdrawnEvent.OutputTuple, + WithdrawnEvent.OutputObject + >; + + "WithdrawnAndCalled(address,uint256,bytes)": TypedContractEvent< + WithdrawnAndCalledEvent.InputTuple, + WithdrawnAndCalledEvent.OutputTuple, + WithdrawnAndCalledEvent.OutputObject + >; + WithdrawnAndCalled: TypedContractEvent< + WithdrawnAndCalledEvent.InputTuple, + WithdrawnAndCalledEvent.OutputTuple, + WithdrawnAndCalledEvent.OutputObject + >; + + "WithdrawnAndReverted(address,uint256,bytes,tuple)": TypedContractEvent< + WithdrawnAndRevertedEvent.InputTuple, + WithdrawnAndRevertedEvent.OutputTuple, + WithdrawnAndRevertedEvent.OutputObject + >; + WithdrawnAndReverted: TypedContractEvent< + WithdrawnAndRevertedEvent.InputTuple, + WithdrawnAndRevertedEvent.OutputTuple, + WithdrawnAndRevertedEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/index.ts new file mode 100644 index 00000000..eb97bbe0 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IZetaConnectorEvents } from "./IZetaConnectorEvents"; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaNonEthNew.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaNonEthNew.ts new file mode 100644 index 00000000..04968b39 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaNonEthNew.ts @@ -0,0 +1,300 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../../../common"; + +export interface IZetaNonEthNewInterface extends Interface { + getFunction( + nameOrSignature: + | "allowance" + | "approve" + | "balanceOf" + | "burnFrom" + | "mint" + | "totalSupply" + | "transfer" + | "transferFrom" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; + + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "burnFrom", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "mint", + values: [AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "burnFrom", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IZetaNonEthNew extends BaseContract { + connect(runner?: ContractRunner | null): IZetaNonEthNew; + waitForDeployment(): Promise; + + interface: IZetaNonEthNewInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + burnFrom: TypedContractMethod< + [account: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + + mint: TypedContractMethod< + [mintee: AddressLike, value: BigNumberish, internalSendHash: BytesLike], + [void], + "nonpayable" + >; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "burnFrom" + ): TypedContractMethod< + [account: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "mint" + ): TypedContractMethod< + [mintee: AddressLike, value: BigNumberish, internalSendHash: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/index.ts new file mode 100644 index 00000000..437efc45 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/evm/interfaces/index.ts @@ -0,0 +1,10 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as ierc20CustodySol from "./IERC20Custody.sol"; +export type { ierc20CustodySol }; +import type * as iGatewayEvmSol from "./IGatewayEVM.sol"; +export type { iGatewayEvmSol }; +import type * as iZetaConnectorSol from "./IZetaConnector.sol"; +export type { iZetaConnectorSol }; +export type { IZetaNonEthNew } from "./IZetaNonEthNew"; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/index.ts new file mode 100644 index 00000000..4c40819e --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/index.ts @@ -0,0 +1,11 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as errorsSol from "./Errors.sol"; +export type { errorsSol }; +import type * as revertSol from "./Revert.sol"; +export type { revertSol }; +import type * as evm from "./evm"; +export type { evm }; +import type * as zevm from "./zevm"; +export type { zevm }; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/GatewayZEVM.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/GatewayZEVM.ts new file mode 100644 index 00000000..ce43c203 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/GatewayZEVM.ts @@ -0,0 +1,1243 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../../common"; + +export type CallOptionsStruct = { + gasLimit: BigNumberish; + isArbitraryCall: boolean; +}; + +export type CallOptionsStructOutput = [ + gasLimit: bigint, + isArbitraryCall: boolean +] & { gasLimit: bigint; isArbitraryCall: boolean }; + +export type RevertOptionsStruct = { + revertAddress: AddressLike; + callOnRevert: boolean; + abortAddress: AddressLike; + revertMessage: BytesLike; + onRevertGasLimit: BigNumberish; +}; + +export type RevertOptionsStructOutput = [ + revertAddress: string, + callOnRevert: boolean, + abortAddress: string, + revertMessage: string, + onRevertGasLimit: bigint +] & { + revertAddress: string; + callOnRevert: boolean; + abortAddress: string; + revertMessage: string; + onRevertGasLimit: bigint; +}; + +export type MessageContextStruct = { + sender: BytesLike; + senderEVM: AddressLike; + chainID: BigNumberish; +}; + +export type MessageContextStructOutput = [ + sender: string, + senderEVM: string, + chainID: bigint +] & { sender: string; senderEVM: string; chainID: bigint }; + +export type RevertContextStruct = { + sender: AddressLike; + asset: AddressLike; + amount: BigNumberish; + revertMessage: BytesLike; +}; + +export type RevertContextStructOutput = [ + sender: string, + asset: string, + amount: bigint, + revertMessage: string +] & { sender: string; asset: string; amount: bigint; revertMessage: string }; + +export type AbortContextStruct = { + sender: BytesLike; + asset: AddressLike; + amount: BigNumberish; + outgoing: boolean; + chainID: BigNumberish; + revertMessage: BytesLike; +}; + +export type AbortContextStructOutput = [ + sender: string, + asset: string, + amount: bigint, + outgoing: boolean, + chainID: bigint, + revertMessage: string +] & { + sender: string; + asset: string; + amount: bigint; + outgoing: boolean; + chainID: bigint; + revertMessage: string; +}; + +export interface GatewayZEVMInterface extends Interface { + getFunction( + nameOrSignature: + | "DEFAULT_ADMIN_ROLE" + | "MAX_MESSAGE_SIZE" + | "PAUSER_ROLE" + | "PROTOCOL_ADDRESS" + | "UPGRADE_INTERFACE_VERSION" + | "call" + | "deposit" + | "depositAndCall((bytes,address,uint256),uint256,address,bytes)" + | "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)" + | "depositAndRevert" + | "execute" + | "executeAbort" + | "executeRevert" + | "getRoleAdmin" + | "grantRole" + | "hasRole" + | "initialize" + | "pause" + | "paused" + | "proxiableUUID" + | "renounceRole" + | "revokeRole" + | "supportsInterface" + | "unpause" + | "upgradeToAndCall" + | "withdraw(bytes,uint256,address,(address,bool,address,bytes,uint256))" + | "withdraw(bytes,uint256,uint256,(address,bool,address,bytes,uint256))" + | "withdrawAndCall(bytes,uint256,uint256,bytes,(uint256,bool),(address,bool,address,bytes,uint256))" + | "withdrawAndCall(bytes,uint256,address,bytes,(uint256,bool),(address,bool,address,bytes,uint256))" + | "zetaToken" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "Called" + | "Initialized" + | "Paused" + | "RoleAdminChanged" + | "RoleGranted" + | "RoleRevoked" + | "Unpaused" + | "Upgraded" + | "Withdrawn" + | "WithdrawnAndCalled" + ): EventFragment; + + encodeFunctionData( + functionFragment: "DEFAULT_ADMIN_ROLE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "MAX_MESSAGE_SIZE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "PAUSER_ROLE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "PROTOCOL_ADDRESS", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "UPGRADE_INTERFACE_VERSION", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "call", + values: [ + BytesLike, + AddressLike, + BytesLike, + CallOptionsStruct, + RevertOptionsStruct + ] + ): string; + encodeFunctionData( + functionFragment: "deposit", + values: [AddressLike, BigNumberish, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "depositAndCall((bytes,address,uint256),uint256,address,bytes)", + values: [MessageContextStruct, BigNumberish, AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)", + values: [ + MessageContextStruct, + AddressLike, + BigNumberish, + AddressLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "depositAndRevert", + values: [AddressLike, BigNumberish, AddressLike, RevertContextStruct] + ): string; + encodeFunctionData( + functionFragment: "execute", + values: [ + MessageContextStruct, + AddressLike, + BigNumberish, + AddressLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "executeAbort", + values: [AddressLike, AbortContextStruct] + ): string; + encodeFunctionData( + functionFragment: "executeRevert", + values: [AddressLike, RevertContextStruct] + ): string; + encodeFunctionData( + functionFragment: "getRoleAdmin", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "grantRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "hasRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "initialize", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData(functionFragment: "pause", values?: undefined): string; + encodeFunctionData(functionFragment: "paused", values?: undefined): string; + encodeFunctionData( + functionFragment: "proxiableUUID", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "renounceRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "revokeRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "unpause", values?: undefined): string; + encodeFunctionData( + functionFragment: "upgradeToAndCall", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "withdraw(bytes,uint256,address,(address,bool,address,bytes,uint256))", + values: [BytesLike, BigNumberish, AddressLike, RevertOptionsStruct] + ): string; + encodeFunctionData( + functionFragment: "withdraw(bytes,uint256,uint256,(address,bool,address,bytes,uint256))", + values: [BytesLike, BigNumberish, BigNumberish, RevertOptionsStruct] + ): string; + encodeFunctionData( + functionFragment: "withdrawAndCall(bytes,uint256,uint256,bytes,(uint256,bool),(address,bool,address,bytes,uint256))", + values: [ + BytesLike, + BigNumberish, + BigNumberish, + BytesLike, + CallOptionsStruct, + RevertOptionsStruct + ] + ): string; + encodeFunctionData( + functionFragment: "withdrawAndCall(bytes,uint256,address,bytes,(uint256,bool),(address,bool,address,bytes,uint256))", + values: [ + BytesLike, + BigNumberish, + AddressLike, + BytesLike, + CallOptionsStruct, + RevertOptionsStruct + ] + ): string; + encodeFunctionData(functionFragment: "zetaToken", values?: undefined): string; + + decodeFunctionResult( + functionFragment: "DEFAULT_ADMIN_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "MAX_MESSAGE_SIZE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "PAUSER_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "PROTOCOL_ADDRESS", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "UPGRADE_INTERFACE_VERSION", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "call", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "depositAndCall((bytes,address,uint256),uint256,address,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "depositAndRevert", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "execute", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "executeAbort", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "executeRevert", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getRoleAdmin", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "pause", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "proxiableUUID", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "renounceRole", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "supportsInterface", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "unpause", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "upgradeToAndCall", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdraw(bytes,uint256,address,(address,bool,address,bytes,uint256))", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdraw(bytes,uint256,uint256,(address,bool,address,bytes,uint256))", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdrawAndCall(bytes,uint256,uint256,bytes,(uint256,bool),(address,bool,address,bytes,uint256))", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdrawAndCall(bytes,uint256,address,bytes,(uint256,bool),(address,bool,address,bytes,uint256))", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "zetaToken", data: BytesLike): Result; +} + +export namespace CalledEvent { + export type InputTuple = [ + sender: AddressLike, + zrc20: AddressLike, + receiver: BytesLike, + message: BytesLike, + callOptions: CallOptionsStruct, + revertOptions: RevertOptionsStruct + ]; + export type OutputTuple = [ + sender: string, + zrc20: string, + receiver: string, + message: string, + callOptions: CallOptionsStructOutput, + revertOptions: RevertOptionsStructOutput + ]; + export interface OutputObject { + sender: string; + zrc20: string; + receiver: string; + message: string; + callOptions: CallOptionsStructOutput; + revertOptions: RevertOptionsStructOutput; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace InitializedEvent { + export type InputTuple = [version: BigNumberish]; + export type OutputTuple = [version: bigint]; + export interface OutputObject { + version: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace PausedEvent { + export type InputTuple = [account: AddressLike]; + export type OutputTuple = [account: string]; + export interface OutputObject { + account: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleAdminChangedEvent { + export type InputTuple = [ + role: BytesLike, + previousAdminRole: BytesLike, + newAdminRole: BytesLike + ]; + export type OutputTuple = [ + role: string, + previousAdminRole: string, + newAdminRole: string + ]; + export interface OutputObject { + role: string; + previousAdminRole: string; + newAdminRole: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleGrantedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleRevokedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UnpausedEvent { + export type InputTuple = [account: AddressLike]; + export type OutputTuple = [account: string]; + export interface OutputObject { + account: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpgradedEvent { + export type InputTuple = [implementation: AddressLike]; + export type OutputTuple = [implementation: string]; + export interface OutputObject { + implementation: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawnEvent { + export type InputTuple = [ + sender: AddressLike, + chainId: BigNumberish, + receiver: BytesLike, + zrc20: AddressLike, + value: BigNumberish, + gasfee: BigNumberish, + protocolFlatFee: BigNumberish, + message: BytesLike, + callOptions: CallOptionsStruct, + revertOptions: RevertOptionsStruct + ]; + export type OutputTuple = [ + sender: string, + chainId: bigint, + receiver: string, + zrc20: string, + value: bigint, + gasfee: bigint, + protocolFlatFee: bigint, + message: string, + callOptions: CallOptionsStructOutput, + revertOptions: RevertOptionsStructOutput + ]; + export interface OutputObject { + sender: string; + chainId: bigint; + receiver: string; + zrc20: string; + value: bigint; + gasfee: bigint; + protocolFlatFee: bigint; + message: string; + callOptions: CallOptionsStructOutput; + revertOptions: RevertOptionsStructOutput; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawnAndCalledEvent { + export type InputTuple = [ + sender: AddressLike, + chainId: BigNumberish, + receiver: BytesLike, + zrc20: AddressLike, + value: BigNumberish, + gasfee: BigNumberish, + protocolFlatFee: BigNumberish, + message: BytesLike, + callOptions: CallOptionsStruct, + revertOptions: RevertOptionsStruct + ]; + export type OutputTuple = [ + sender: string, + chainId: bigint, + receiver: string, + zrc20: string, + value: bigint, + gasfee: bigint, + protocolFlatFee: bigint, + message: string, + callOptions: CallOptionsStructOutput, + revertOptions: RevertOptionsStructOutput + ]; + export interface OutputObject { + sender: string; + chainId: bigint; + receiver: string; + zrc20: string; + value: bigint; + gasfee: bigint; + protocolFlatFee: bigint; + message: string; + callOptions: CallOptionsStructOutput; + revertOptions: RevertOptionsStructOutput; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface GatewayZEVM extends BaseContract { + connect(runner?: ContractRunner | null): GatewayZEVM; + waitForDeployment(): Promise; + + interface: GatewayZEVMInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + DEFAULT_ADMIN_ROLE: TypedContractMethod<[], [string], "view">; + + MAX_MESSAGE_SIZE: TypedContractMethod<[], [bigint], "view">; + + PAUSER_ROLE: TypedContractMethod<[], [string], "view">; + + PROTOCOL_ADDRESS: TypedContractMethod<[], [string], "view">; + + UPGRADE_INTERFACE_VERSION: TypedContractMethod<[], [string], "view">; + + call: TypedContractMethod< + [ + receiver: BytesLike, + zrc20: AddressLike, + message: BytesLike, + callOptions: CallOptionsStruct, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + + deposit: TypedContractMethod< + [zrc20: AddressLike, amount: BigNumberish, target: AddressLike], + [void], + "nonpayable" + >; + + "depositAndCall((bytes,address,uint256),uint256,address,bytes)": TypedContractMethod< + [ + context: MessageContextStruct, + amount: BigNumberish, + target: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + + "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)": TypedContractMethod< + [ + context: MessageContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + target: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + + depositAndRevert: TypedContractMethod< + [ + zrc20: AddressLike, + amount: BigNumberish, + target: AddressLike, + revertContext: RevertContextStruct + ], + [void], + "nonpayable" + >; + + execute: TypedContractMethod< + [ + context: MessageContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + target: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + + executeAbort: TypedContractMethod< + [target: AddressLike, abortContext: AbortContextStruct], + [void], + "nonpayable" + >; + + executeRevert: TypedContractMethod< + [target: AddressLike, revertContext: RevertContextStruct], + [void], + "nonpayable" + >; + + getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">; + + grantRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + hasRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + + initialize: TypedContractMethod< + [zetaToken_: AddressLike, admin_: AddressLike], + [void], + "nonpayable" + >; + + pause: TypedContractMethod<[], [void], "nonpayable">; + + paused: TypedContractMethod<[], [boolean], "view">; + + proxiableUUID: TypedContractMethod<[], [string], "view">; + + renounceRole: TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + + revokeRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + supportsInterface: TypedContractMethod< + [interfaceId: BytesLike], + [boolean], + "view" + >; + + unpause: TypedContractMethod<[], [void], "nonpayable">; + + upgradeToAndCall: TypedContractMethod< + [newImplementation: AddressLike, data: BytesLike], + [void], + "payable" + >; + + "withdraw(bytes,uint256,address,(address,bool,address,bytes,uint256))": TypedContractMethod< + [ + receiver: BytesLike, + amount: BigNumberish, + zrc20: AddressLike, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + + "withdraw(bytes,uint256,uint256,(address,bool,address,bytes,uint256))": TypedContractMethod< + [ + arg0: BytesLike, + arg1: BigNumberish, + arg2: BigNumberish, + arg3: RevertOptionsStruct + ], + [void], + "view" + >; + + "withdrawAndCall(bytes,uint256,uint256,bytes,(uint256,bool),(address,bool,address,bytes,uint256))": TypedContractMethod< + [ + arg0: BytesLike, + arg1: BigNumberish, + arg2: BigNumberish, + arg3: BytesLike, + arg4: CallOptionsStruct, + arg5: RevertOptionsStruct + ], + [void], + "view" + >; + + "withdrawAndCall(bytes,uint256,address,bytes,(uint256,bool),(address,bool,address,bytes,uint256))": TypedContractMethod< + [ + receiver: BytesLike, + amount: BigNumberish, + zrc20: AddressLike, + message: BytesLike, + callOptions: CallOptionsStruct, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + + zetaToken: TypedContractMethod<[], [string], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "DEFAULT_ADMIN_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "MAX_MESSAGE_SIZE" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "PAUSER_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "PROTOCOL_ADDRESS" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "UPGRADE_INTERFACE_VERSION" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "call" + ): TypedContractMethod< + [ + receiver: BytesLike, + zrc20: AddressLike, + message: BytesLike, + callOptions: CallOptionsStruct, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "deposit" + ): TypedContractMethod< + [zrc20: AddressLike, amount: BigNumberish, target: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "depositAndCall((bytes,address,uint256),uint256,address,bytes)" + ): TypedContractMethod< + [ + context: MessageContextStruct, + amount: BigNumberish, + target: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)" + ): TypedContractMethod< + [ + context: MessageContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + target: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "depositAndRevert" + ): TypedContractMethod< + [ + zrc20: AddressLike, + amount: BigNumberish, + target: AddressLike, + revertContext: RevertContextStruct + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "execute" + ): TypedContractMethod< + [ + context: MessageContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + target: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "executeAbort" + ): TypedContractMethod< + [target: AddressLike, abortContext: AbortContextStruct], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "executeRevert" + ): TypedContractMethod< + [target: AddressLike, revertContext: RevertContextStruct], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "getRoleAdmin" + ): TypedContractMethod<[role: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "grantRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "hasRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + getFunction( + nameOrSignature: "initialize" + ): TypedContractMethod< + [zetaToken_: AddressLike, admin_: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "pause" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "paused" + ): TypedContractMethod<[], [boolean], "view">; + getFunction( + nameOrSignature: "proxiableUUID" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "renounceRole" + ): TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "revokeRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "supportsInterface" + ): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; + getFunction( + nameOrSignature: "unpause" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "upgradeToAndCall" + ): TypedContractMethod< + [newImplementation: AddressLike, data: BytesLike], + [void], + "payable" + >; + getFunction( + nameOrSignature: "withdraw(bytes,uint256,address,(address,bool,address,bytes,uint256))" + ): TypedContractMethod< + [ + receiver: BytesLike, + amount: BigNumberish, + zrc20: AddressLike, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdraw(bytes,uint256,uint256,(address,bool,address,bytes,uint256))" + ): TypedContractMethod< + [ + arg0: BytesLike, + arg1: BigNumberish, + arg2: BigNumberish, + arg3: RevertOptionsStruct + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "withdrawAndCall(bytes,uint256,uint256,bytes,(uint256,bool),(address,bool,address,bytes,uint256))" + ): TypedContractMethod< + [ + arg0: BytesLike, + arg1: BigNumberish, + arg2: BigNumberish, + arg3: BytesLike, + arg4: CallOptionsStruct, + arg5: RevertOptionsStruct + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "withdrawAndCall(bytes,uint256,address,bytes,(uint256,bool),(address,bool,address,bytes,uint256))" + ): TypedContractMethod< + [ + receiver: BytesLike, + amount: BigNumberish, + zrc20: AddressLike, + message: BytesLike, + callOptions: CallOptionsStruct, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "zetaToken" + ): TypedContractMethod<[], [string], "view">; + + getEvent( + key: "Called" + ): TypedContractEvent< + CalledEvent.InputTuple, + CalledEvent.OutputTuple, + CalledEvent.OutputObject + >; + getEvent( + key: "Initialized" + ): TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + getEvent( + key: "Paused" + ): TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + getEvent( + key: "RoleAdminChanged" + ): TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + getEvent( + key: "RoleGranted" + ): TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + getEvent( + key: "RoleRevoked" + ): TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + getEvent( + key: "Unpaused" + ): TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + getEvent( + key: "Upgraded" + ): TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + getEvent( + key: "Withdrawn" + ): TypedContractEvent< + WithdrawnEvent.InputTuple, + WithdrawnEvent.OutputTuple, + WithdrawnEvent.OutputObject + >; + getEvent( + key: "WithdrawnAndCalled" + ): TypedContractEvent< + WithdrawnAndCalledEvent.InputTuple, + WithdrawnAndCalledEvent.OutputTuple, + WithdrawnAndCalledEvent.OutputObject + >; + + filters: { + "Called(address,address,bytes,bytes,tuple,tuple)": TypedContractEvent< + CalledEvent.InputTuple, + CalledEvent.OutputTuple, + CalledEvent.OutputObject + >; + Called: TypedContractEvent< + CalledEvent.InputTuple, + CalledEvent.OutputTuple, + CalledEvent.OutputObject + >; + + "Initialized(uint64)": TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + Initialized: TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + + "Paused(address)": TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + Paused: TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + + "RoleAdminChanged(bytes32,bytes32,bytes32)": TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + RoleAdminChanged: TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + + "RoleGranted(bytes32,address,address)": TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + RoleGranted: TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + + "RoleRevoked(bytes32,address,address)": TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + RoleRevoked: TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + + "Unpaused(address)": TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + Unpaused: TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + + "Upgraded(address)": TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + Upgraded: TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + + "Withdrawn(address,uint256,bytes,address,uint256,uint256,uint256,bytes,tuple,tuple)": TypedContractEvent< + WithdrawnEvent.InputTuple, + WithdrawnEvent.OutputTuple, + WithdrawnEvent.OutputObject + >; + Withdrawn: TypedContractEvent< + WithdrawnEvent.InputTuple, + WithdrawnEvent.OutputTuple, + WithdrawnEvent.OutputObject + >; + + "WithdrawnAndCalled(address,uint256,bytes,address,uint256,uint256,uint256,bytes,tuple,tuple)": TypedContractEvent< + WithdrawnAndCalledEvent.InputTuple, + WithdrawnAndCalledEvent.OutputTuple, + WithdrawnAndCalledEvent.OutputObject + >; + WithdrawnAndCalled: TypedContractEvent< + WithdrawnAndCalledEvent.InputTuple, + WithdrawnAndCalledEvent.OutputTuple, + WithdrawnAndCalledEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContract.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContract.ts new file mode 100644 index 00000000..ef4704d1 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContract.ts @@ -0,0 +1,569 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../../../common"; + +export type ZContextStruct = { + origin: BytesLike; + sender: AddressLike; + chainID: BigNumberish; +}; + +export type ZContextStructOutput = [ + origin: string, + sender: string, + chainID: bigint +] & { origin: string; sender: string; chainID: bigint }; + +export interface SystemContractInterface extends Interface { + getFunction( + nameOrSignature: + | "FUNGIBLE_MODULE_ADDRESS" + | "depositAndCall" + | "gasCoinZRC20ByChainId" + | "gasPriceByChainId" + | "gasZetaPoolByChainId" + | "setConnectorZEVMAddress" + | "setGasCoinZRC20" + | "setGasPrice" + | "setGasZetaPool" + | "setWZETAContractAddress" + | "uniswapv2FactoryAddress" + | "uniswapv2PairFor" + | "uniswapv2Router02Address" + | "wZetaContractAddress" + | "zetaConnectorZEVMAddress" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "SetConnectorZEVM" + | "SetGasCoin" + | "SetGasPrice" + | "SetGasZetaPool" + | "SetWZeta" + | "SystemContractDeployed" + ): EventFragment; + + encodeFunctionData( + functionFragment: "FUNGIBLE_MODULE_ADDRESS", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "depositAndCall", + values: [ZContextStruct, AddressLike, BigNumberish, AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "gasCoinZRC20ByChainId", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "gasPriceByChainId", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "gasZetaPoolByChainId", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "setConnectorZEVMAddress", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setGasCoinZRC20", + values: [BigNumberish, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setGasPrice", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "setGasZetaPool", + values: [BigNumberish, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setWZETAContractAddress", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "uniswapv2FactoryAddress", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "uniswapv2PairFor", + values: [AddressLike, AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "uniswapv2Router02Address", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "wZetaContractAddress", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "zetaConnectorZEVMAddress", + values?: undefined + ): string; + + decodeFunctionResult( + functionFragment: "FUNGIBLE_MODULE_ADDRESS", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "depositAndCall", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "gasCoinZRC20ByChainId", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "gasPriceByChainId", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "gasZetaPoolByChainId", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setConnectorZEVMAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setGasCoinZRC20", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setGasPrice", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setGasZetaPool", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setWZETAContractAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapv2FactoryAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapv2PairFor", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapv2Router02Address", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "wZetaContractAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "zetaConnectorZEVMAddress", + data: BytesLike + ): Result; +} + +export namespace SetConnectorZEVMEvent { + export type InputTuple = [arg0: AddressLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace SetGasCoinEvent { + export type InputTuple = [arg0: BigNumberish, arg1: AddressLike]; + export type OutputTuple = [arg0: bigint, arg1: string]; + export interface OutputObject { + arg0: bigint; + arg1: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace SetGasPriceEvent { + export type InputTuple = [arg0: BigNumberish, arg1: BigNumberish]; + export type OutputTuple = [arg0: bigint, arg1: bigint]; + export interface OutputObject { + arg0: bigint; + arg1: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace SetGasZetaPoolEvent { + export type InputTuple = [arg0: BigNumberish, arg1: AddressLike]; + export type OutputTuple = [arg0: bigint, arg1: string]; + export interface OutputObject { + arg0: bigint; + arg1: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace SetWZetaEvent { + export type InputTuple = [arg0: AddressLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace SystemContractDeployedEvent { + export type InputTuple = []; + export type OutputTuple = []; + export interface OutputObject {} + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface SystemContract extends BaseContract { + connect(runner?: ContractRunner | null): SystemContract; + waitForDeployment(): Promise; + + interface: SystemContractInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + FUNGIBLE_MODULE_ADDRESS: TypedContractMethod<[], [string], "view">; + + depositAndCall: TypedContractMethod< + [ + context: ZContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + target: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + + gasCoinZRC20ByChainId: TypedContractMethod< + [arg0: BigNumberish], + [string], + "view" + >; + + gasPriceByChainId: TypedContractMethod< + [arg0: BigNumberish], + [bigint], + "view" + >; + + gasZetaPoolByChainId: TypedContractMethod< + [arg0: BigNumberish], + [string], + "view" + >; + + setConnectorZEVMAddress: TypedContractMethod< + [addr: AddressLike], + [void], + "nonpayable" + >; + + setGasCoinZRC20: TypedContractMethod< + [chainID: BigNumberish, zrc20: AddressLike], + [void], + "nonpayable" + >; + + setGasPrice: TypedContractMethod< + [chainID: BigNumberish, price: BigNumberish], + [void], + "nonpayable" + >; + + setGasZetaPool: TypedContractMethod< + [chainID: BigNumberish, erc20: AddressLike], + [void], + "nonpayable" + >; + + setWZETAContractAddress: TypedContractMethod< + [addr: AddressLike], + [void], + "nonpayable" + >; + + uniswapv2FactoryAddress: TypedContractMethod<[], [string], "view">; + + uniswapv2PairFor: TypedContractMethod< + [factory: AddressLike, tokenA: AddressLike, tokenB: AddressLike], + [string], + "view" + >; + + uniswapv2Router02Address: TypedContractMethod<[], [string], "view">; + + wZetaContractAddress: TypedContractMethod<[], [string], "view">; + + zetaConnectorZEVMAddress: TypedContractMethod<[], [string], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "FUNGIBLE_MODULE_ADDRESS" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "depositAndCall" + ): TypedContractMethod< + [ + context: ZContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + target: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "gasCoinZRC20ByChainId" + ): TypedContractMethod<[arg0: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "gasPriceByChainId" + ): TypedContractMethod<[arg0: BigNumberish], [bigint], "view">; + getFunction( + nameOrSignature: "gasZetaPoolByChainId" + ): TypedContractMethod<[arg0: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "setConnectorZEVMAddress" + ): TypedContractMethod<[addr: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "setGasCoinZRC20" + ): TypedContractMethod< + [chainID: BigNumberish, zrc20: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setGasPrice" + ): TypedContractMethod< + [chainID: BigNumberish, price: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setGasZetaPool" + ): TypedContractMethod< + [chainID: BigNumberish, erc20: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setWZETAContractAddress" + ): TypedContractMethod<[addr: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "uniswapv2FactoryAddress" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "uniswapv2PairFor" + ): TypedContractMethod< + [factory: AddressLike, tokenA: AddressLike, tokenB: AddressLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "uniswapv2Router02Address" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "wZetaContractAddress" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "zetaConnectorZEVMAddress" + ): TypedContractMethod<[], [string], "view">; + + getEvent( + key: "SetConnectorZEVM" + ): TypedContractEvent< + SetConnectorZEVMEvent.InputTuple, + SetConnectorZEVMEvent.OutputTuple, + SetConnectorZEVMEvent.OutputObject + >; + getEvent( + key: "SetGasCoin" + ): TypedContractEvent< + SetGasCoinEvent.InputTuple, + SetGasCoinEvent.OutputTuple, + SetGasCoinEvent.OutputObject + >; + getEvent( + key: "SetGasPrice" + ): TypedContractEvent< + SetGasPriceEvent.InputTuple, + SetGasPriceEvent.OutputTuple, + SetGasPriceEvent.OutputObject + >; + getEvent( + key: "SetGasZetaPool" + ): TypedContractEvent< + SetGasZetaPoolEvent.InputTuple, + SetGasZetaPoolEvent.OutputTuple, + SetGasZetaPoolEvent.OutputObject + >; + getEvent( + key: "SetWZeta" + ): TypedContractEvent< + SetWZetaEvent.InputTuple, + SetWZetaEvent.OutputTuple, + SetWZetaEvent.OutputObject + >; + getEvent( + key: "SystemContractDeployed" + ): TypedContractEvent< + SystemContractDeployedEvent.InputTuple, + SystemContractDeployedEvent.OutputTuple, + SystemContractDeployedEvent.OutputObject + >; + + filters: { + "SetConnectorZEVM(address)": TypedContractEvent< + SetConnectorZEVMEvent.InputTuple, + SetConnectorZEVMEvent.OutputTuple, + SetConnectorZEVMEvent.OutputObject + >; + SetConnectorZEVM: TypedContractEvent< + SetConnectorZEVMEvent.InputTuple, + SetConnectorZEVMEvent.OutputTuple, + SetConnectorZEVMEvent.OutputObject + >; + + "SetGasCoin(uint256,address)": TypedContractEvent< + SetGasCoinEvent.InputTuple, + SetGasCoinEvent.OutputTuple, + SetGasCoinEvent.OutputObject + >; + SetGasCoin: TypedContractEvent< + SetGasCoinEvent.InputTuple, + SetGasCoinEvent.OutputTuple, + SetGasCoinEvent.OutputObject + >; + + "SetGasPrice(uint256,uint256)": TypedContractEvent< + SetGasPriceEvent.InputTuple, + SetGasPriceEvent.OutputTuple, + SetGasPriceEvent.OutputObject + >; + SetGasPrice: TypedContractEvent< + SetGasPriceEvent.InputTuple, + SetGasPriceEvent.OutputTuple, + SetGasPriceEvent.OutputObject + >; + + "SetGasZetaPool(uint256,address)": TypedContractEvent< + SetGasZetaPoolEvent.InputTuple, + SetGasZetaPoolEvent.OutputTuple, + SetGasZetaPoolEvent.OutputObject + >; + SetGasZetaPool: TypedContractEvent< + SetGasZetaPoolEvent.InputTuple, + SetGasZetaPoolEvent.OutputTuple, + SetGasZetaPoolEvent.OutputObject + >; + + "SetWZeta(address)": TypedContractEvent< + SetWZetaEvent.InputTuple, + SetWZetaEvent.OutputTuple, + SetWZetaEvent.OutputObject + >; + SetWZeta: TypedContractEvent< + SetWZetaEvent.InputTuple, + SetWZetaEvent.OutputTuple, + SetWZetaEvent.OutputObject + >; + + "SystemContractDeployed()": TypedContractEvent< + SystemContractDeployedEvent.InputTuple, + SystemContractDeployedEvent.OutputTuple, + SystemContractDeployedEvent.OutputObject + >; + SystemContractDeployed: TypedContractEvent< + SystemContractDeployedEvent.InputTuple, + SystemContractDeployedEvent.OutputTuple, + SystemContractDeployedEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContractErrors.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContractErrors.ts new file mode 100644 index 00000000..c80098ab --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContractErrors.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../../../../../common"; + +export interface SystemContractErrorsInterface extends Interface {} + +export interface SystemContractErrors extends BaseContract { + connect(runner?: ContractRunner | null): SystemContractErrors; + waitForDeployment(): Promise; + + interface: SystemContractErrorsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/index.ts new file mode 100644 index 00000000..d5591cc5 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { SystemContract } from "./SystemContract"; +export type { SystemContractErrors } from "./SystemContractErrors"; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/WETH9.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/WETH9.ts new file mode 100644 index 00000000..4fd6c83c --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/WETH9.ts @@ -0,0 +1,369 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../../../common"; + +export interface WETH9Interface extends Interface { + getFunction( + nameOrSignature: + | "allowance" + | "approve" + | "balanceOf" + | "decimals" + | "deposit" + | "name" + | "symbol" + | "totalSupply" + | "transfer" + | "transferFrom" + | "withdraw" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: "Approval" | "Deposit" | "Transfer" | "Withdrawal" + ): EventFragment; + + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData(functionFragment: "deposit", values?: undefined): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdraw", + values: [BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + src: AddressLike, + guy: AddressLike, + wad: BigNumberish + ]; + export type OutputTuple = [src: string, guy: string, wad: bigint]; + export interface OutputObject { + src: string; + guy: string; + wad: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace DepositEvent { + export type InputTuple = [dst: AddressLike, wad: BigNumberish]; + export type OutputTuple = [dst: string, wad: bigint]; + export interface OutputObject { + dst: string; + wad: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + src: AddressLike, + dst: AddressLike, + wad: BigNumberish + ]; + export type OutputTuple = [src: string, dst: string, wad: bigint]; + export interface OutputObject { + src: string; + dst: string; + wad: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawalEvent { + export type InputTuple = [src: AddressLike, wad: BigNumberish]; + export type OutputTuple = [src: string, wad: bigint]; + export interface OutputObject { + src: string; + wad: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface WETH9 extends BaseContract { + connect(runner?: ContractRunner | null): WETH9; + waitForDeployment(): Promise; + + interface: WETH9Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allowance: TypedContractMethod< + [arg0: AddressLike, arg1: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [guy: AddressLike, wad: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[arg0: AddressLike], [bigint], "view">; + + decimals: TypedContractMethod<[], [bigint], "view">; + + deposit: TypedContractMethod<[], [void], "payable">; + + name: TypedContractMethod<[], [string], "view">; + + symbol: TypedContractMethod<[], [string], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [dst: AddressLike, wad: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [src: AddressLike, dst: AddressLike, wad: BigNumberish], + [boolean], + "nonpayable" + >; + + withdraw: TypedContractMethod<[wad: BigNumberish], [void], "nonpayable">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [arg0: AddressLike, arg1: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [guy: AddressLike, wad: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[arg0: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "decimals" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "deposit" + ): TypedContractMethod<[], [void], "payable">; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [dst: AddressLike, wad: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [src: AddressLike, dst: AddressLike, wad: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdraw" + ): TypedContractMethod<[wad: BigNumberish], [void], "nonpayable">; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Deposit" + ): TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + getEvent( + key: "Withdrawal" + ): TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Deposit(address,uint256)": TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + Deposit: TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + "Withdrawal(address,uint256)": TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + Withdrawal: TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/index.ts new file mode 100644 index 00000000..3f031232 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { WETH9 } from "./WETH9"; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20.ts new file mode 100644 index 00000000..9becf37e --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20.ts @@ -0,0 +1,748 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../../../common"; + +export interface ZRC20Interface extends Interface { + getFunction( + nameOrSignature: + | "CHAIN_ID" + | "COIN_TYPE" + | "FUNGIBLE_MODULE_ADDRESS" + | "GAS_LIMIT" + | "PROTOCOL_FLAT_FEE" + | "SYSTEM_CONTRACT_ADDRESS" + | "allowance" + | "approve" + | "balanceOf" + | "burn" + | "decimals" + | "deposit" + | "gatewayAddress" + | "name" + | "setName" + | "setSymbol" + | "symbol" + | "totalSupply" + | "transfer" + | "transferFrom" + | "updateGasLimit" + | "updateGatewayAddress" + | "updateProtocolFlatFee" + | "updateSystemContractAddress" + | "withdraw" + | "withdrawGasFee" + | "withdrawGasFeeWithGasLimit" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "Approval" + | "Deposit" + | "Transfer" + | "UpdatedGasLimit" + | "UpdatedGateway" + | "UpdatedProtocolFlatFee" + | "UpdatedSystemContract" + | "Withdrawal" + ): EventFragment; + + encodeFunctionData(functionFragment: "CHAIN_ID", values?: undefined): string; + encodeFunctionData(functionFragment: "COIN_TYPE", values?: undefined): string; + encodeFunctionData( + functionFragment: "FUNGIBLE_MODULE_ADDRESS", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "GAS_LIMIT", values?: undefined): string; + encodeFunctionData( + functionFragment: "PROTOCOL_FLAT_FEE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "SYSTEM_CONTRACT_ADDRESS", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "burn", values: [BigNumberish]): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData( + functionFragment: "deposit", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "gatewayAddress", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "setName", values: [string]): string; + encodeFunctionData(functionFragment: "setSymbol", values: [string]): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "updateGasLimit", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "updateGatewayAddress", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "updateProtocolFlatFee", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "updateSystemContractAddress", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "withdraw", + values: [BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdrawGasFee", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "withdrawGasFeeWithGasLimit", + values: [BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "CHAIN_ID", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "COIN_TYPE", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "FUNGIBLE_MODULE_ADDRESS", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "GAS_LIMIT", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "PROTOCOL_FLAT_FEE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "SYSTEM_CONTRACT_ADDRESS", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "gatewayAddress", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "setName", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "setSymbol", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "updateGasLimit", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "updateGatewayAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "updateProtocolFlatFee", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "updateSystemContractAddress", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "withdrawGasFee", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdrawGasFeeWithGasLimit", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace DepositEvent { + export type InputTuple = [ + from: BytesLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpdatedGasLimitEvent { + export type InputTuple = [gasLimit: BigNumberish]; + export type OutputTuple = [gasLimit: bigint]; + export interface OutputObject { + gasLimit: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpdatedGatewayEvent { + export type InputTuple = [gateway: AddressLike]; + export type OutputTuple = [gateway: string]; + export interface OutputObject { + gateway: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpdatedProtocolFlatFeeEvent { + export type InputTuple = [protocolFlatFee: BigNumberish]; + export type OutputTuple = [protocolFlatFee: bigint]; + export interface OutputObject { + protocolFlatFee: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpdatedSystemContractEvent { + export type InputTuple = [systemContract: AddressLike]; + export type OutputTuple = [systemContract: string]; + export interface OutputObject { + systemContract: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawalEvent { + export type InputTuple = [ + from: AddressLike, + to: BytesLike, + value: BigNumberish, + gasFee: BigNumberish, + protocolFlatFee: BigNumberish + ]; + export type OutputTuple = [ + from: string, + to: string, + value: bigint, + gasFee: bigint, + protocolFlatFee: bigint + ]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + gasFee: bigint; + protocolFlatFee: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ZRC20 extends BaseContract { + connect(runner?: ContractRunner | null): ZRC20; + waitForDeployment(): Promise; + + interface: ZRC20Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + CHAIN_ID: TypedContractMethod<[], [bigint], "view">; + + COIN_TYPE: TypedContractMethod<[], [bigint], "view">; + + FUNGIBLE_MODULE_ADDRESS: TypedContractMethod<[], [string], "view">; + + GAS_LIMIT: TypedContractMethod<[], [bigint], "view">; + + PROTOCOL_FLAT_FEE: TypedContractMethod<[], [bigint], "view">; + + SYSTEM_CONTRACT_ADDRESS: TypedContractMethod<[], [string], "view">; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + burn: TypedContractMethod<[amount: BigNumberish], [boolean], "nonpayable">; + + decimals: TypedContractMethod<[], [bigint], "view">; + + deposit: TypedContractMethod< + [to: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + gatewayAddress: TypedContractMethod<[], [string], "view">; + + name: TypedContractMethod<[], [string], "view">; + + setName: TypedContractMethod<[newName: string], [void], "nonpayable">; + + setSymbol: TypedContractMethod<[newSymbol: string], [void], "nonpayable">; + + symbol: TypedContractMethod<[], [string], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + updateGasLimit: TypedContractMethod< + [gasLimit_: BigNumberish], + [void], + "nonpayable" + >; + + updateGatewayAddress: TypedContractMethod< + [addr: AddressLike], + [void], + "nonpayable" + >; + + updateProtocolFlatFee: TypedContractMethod< + [protocolFlatFee_: BigNumberish], + [void], + "nonpayable" + >; + + updateSystemContractAddress: TypedContractMethod< + [addr: AddressLike], + [void], + "nonpayable" + >; + + withdraw: TypedContractMethod< + [to: BytesLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + withdrawGasFee: TypedContractMethod<[], [[string, bigint]], "view">; + + withdrawGasFeeWithGasLimit: TypedContractMethod< + [gasLimit: BigNumberish], + [[string, bigint]], + "view" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "CHAIN_ID" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "COIN_TYPE" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "FUNGIBLE_MODULE_ADDRESS" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "GAS_LIMIT" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "PROTOCOL_FLAT_FEE" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "SYSTEM_CONTRACT_ADDRESS" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "burn" + ): TypedContractMethod<[amount: BigNumberish], [boolean], "nonpayable">; + getFunction( + nameOrSignature: "decimals" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "deposit" + ): TypedContractMethod< + [to: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "gatewayAddress" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "setName" + ): TypedContractMethod<[newName: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "setSymbol" + ): TypedContractMethod<[newSymbol: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "updateGasLimit" + ): TypedContractMethod<[gasLimit_: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "updateGatewayAddress" + ): TypedContractMethod<[addr: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "updateProtocolFlatFee" + ): TypedContractMethod< + [protocolFlatFee_: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "updateSystemContractAddress" + ): TypedContractMethod<[addr: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "withdraw" + ): TypedContractMethod< + [to: BytesLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawGasFee" + ): TypedContractMethod<[], [[string, bigint]], "view">; + getFunction( + nameOrSignature: "withdrawGasFeeWithGasLimit" + ): TypedContractMethod<[gasLimit: BigNumberish], [[string, bigint]], "view">; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Deposit" + ): TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + getEvent( + key: "UpdatedGasLimit" + ): TypedContractEvent< + UpdatedGasLimitEvent.InputTuple, + UpdatedGasLimitEvent.OutputTuple, + UpdatedGasLimitEvent.OutputObject + >; + getEvent( + key: "UpdatedGateway" + ): TypedContractEvent< + UpdatedGatewayEvent.InputTuple, + UpdatedGatewayEvent.OutputTuple, + UpdatedGatewayEvent.OutputObject + >; + getEvent( + key: "UpdatedProtocolFlatFee" + ): TypedContractEvent< + UpdatedProtocolFlatFeeEvent.InputTuple, + UpdatedProtocolFlatFeeEvent.OutputTuple, + UpdatedProtocolFlatFeeEvent.OutputObject + >; + getEvent( + key: "UpdatedSystemContract" + ): TypedContractEvent< + UpdatedSystemContractEvent.InputTuple, + UpdatedSystemContractEvent.OutputTuple, + UpdatedSystemContractEvent.OutputObject + >; + getEvent( + key: "Withdrawal" + ): TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Deposit(bytes,address,uint256)": TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + Deposit: TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + "UpdatedGasLimit(uint256)": TypedContractEvent< + UpdatedGasLimitEvent.InputTuple, + UpdatedGasLimitEvent.OutputTuple, + UpdatedGasLimitEvent.OutputObject + >; + UpdatedGasLimit: TypedContractEvent< + UpdatedGasLimitEvent.InputTuple, + UpdatedGasLimitEvent.OutputTuple, + UpdatedGasLimitEvent.OutputObject + >; + + "UpdatedGateway(address)": TypedContractEvent< + UpdatedGatewayEvent.InputTuple, + UpdatedGatewayEvent.OutputTuple, + UpdatedGatewayEvent.OutputObject + >; + UpdatedGateway: TypedContractEvent< + UpdatedGatewayEvent.InputTuple, + UpdatedGatewayEvent.OutputTuple, + UpdatedGatewayEvent.OutputObject + >; + + "UpdatedProtocolFlatFee(uint256)": TypedContractEvent< + UpdatedProtocolFlatFeeEvent.InputTuple, + UpdatedProtocolFlatFeeEvent.OutputTuple, + UpdatedProtocolFlatFeeEvent.OutputObject + >; + UpdatedProtocolFlatFee: TypedContractEvent< + UpdatedProtocolFlatFeeEvent.InputTuple, + UpdatedProtocolFlatFeeEvent.OutputTuple, + UpdatedProtocolFlatFeeEvent.OutputObject + >; + + "UpdatedSystemContract(address)": TypedContractEvent< + UpdatedSystemContractEvent.InputTuple, + UpdatedSystemContractEvent.OutputTuple, + UpdatedSystemContractEvent.OutputObject + >; + UpdatedSystemContract: TypedContractEvent< + UpdatedSystemContractEvent.InputTuple, + UpdatedSystemContractEvent.OutputTuple, + UpdatedSystemContractEvent.OutputObject + >; + + "Withdrawal(address,bytes,uint256,uint256,uint256)": TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + Withdrawal: TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20Errors.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20Errors.ts new file mode 100644 index 00000000..7e52810a --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20Errors.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../../../../../common"; + +export interface ZRC20ErrorsInterface extends Interface {} + +export interface ZRC20Errors extends BaseContract { + connect(runner?: ContractRunner | null): ZRC20Errors; + waitForDeployment(): Promise; + + interface: ZRC20ErrorsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/index.ts new file mode 100644 index 00000000..0a005122 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { ZRC20 } from "./ZRC20"; +export type { ZRC20Errors } from "./ZRC20Errors"; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/index.ts new file mode 100644 index 00000000..007d930b --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/index.ts @@ -0,0 +1,12 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as systemContractSol from "./SystemContract.sol"; +export type { systemContractSol }; +import type * as wzetaSol from "./WZETA.sol"; +export type { wzetaSol }; +import type * as zrc20Sol from "./ZRC20.sol"; +export type { zrc20Sol }; +import type * as interfaces from "./interfaces"; +export type { interfaces }; +export type { GatewayZEVM } from "./GatewayZEVM"; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVM.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVM.ts new file mode 100644 index 00000000..4fa36464 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVM.ts @@ -0,0 +1,686 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../../../../common"; + +export type CallOptionsStruct = { + gasLimit: BigNumberish; + isArbitraryCall: boolean; +}; + +export type CallOptionsStructOutput = [ + gasLimit: bigint, + isArbitraryCall: boolean +] & { gasLimit: bigint; isArbitraryCall: boolean }; + +export type RevertOptionsStruct = { + revertAddress: AddressLike; + callOnRevert: boolean; + abortAddress: AddressLike; + revertMessage: BytesLike; + onRevertGasLimit: BigNumberish; +}; + +export type RevertOptionsStructOutput = [ + revertAddress: string, + callOnRevert: boolean, + abortAddress: string, + revertMessage: string, + onRevertGasLimit: bigint +] & { + revertAddress: string; + callOnRevert: boolean; + abortAddress: string; + revertMessage: string; + onRevertGasLimit: bigint; +}; + +export type MessageContextStruct = { + sender: BytesLike; + senderEVM: AddressLike; + chainID: BigNumberish; +}; + +export type MessageContextStructOutput = [ + sender: string, + senderEVM: string, + chainID: bigint +] & { sender: string; senderEVM: string; chainID: bigint }; + +export type RevertContextStruct = { + sender: AddressLike; + asset: AddressLike; + amount: BigNumberish; + revertMessage: BytesLike; +}; + +export type RevertContextStructOutput = [ + sender: string, + asset: string, + amount: bigint, + revertMessage: string +] & { sender: string; asset: string; amount: bigint; revertMessage: string }; + +export interface IGatewayZEVMInterface extends Interface { + getFunction( + nameOrSignature: + | "call" + | "deposit" + | "depositAndCall((bytes,address,uint256),uint256,address,bytes)" + | "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)" + | "depositAndRevert" + | "execute" + | "executeRevert" + | "withdraw(bytes,uint256,address,(address,bool,address,bytes,uint256))" + | "withdraw(bytes,uint256,uint256,(address,bool,address,bytes,uint256))" + | "withdrawAndCall(bytes,uint256,uint256,bytes,(uint256,bool),(address,bool,address,bytes,uint256))" + | "withdrawAndCall(bytes,uint256,address,bytes,(uint256,bool),(address,bool,address,bytes,uint256))" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: "Called" | "Withdrawn" | "WithdrawnAndCalled" + ): EventFragment; + + encodeFunctionData( + functionFragment: "call", + values: [ + BytesLike, + AddressLike, + BytesLike, + CallOptionsStruct, + RevertOptionsStruct + ] + ): string; + encodeFunctionData( + functionFragment: "deposit", + values: [AddressLike, BigNumberish, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "depositAndCall((bytes,address,uint256),uint256,address,bytes)", + values: [MessageContextStruct, BigNumberish, AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)", + values: [ + MessageContextStruct, + AddressLike, + BigNumberish, + AddressLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "depositAndRevert", + values: [AddressLike, BigNumberish, AddressLike, RevertContextStruct] + ): string; + encodeFunctionData( + functionFragment: "execute", + values: [ + MessageContextStruct, + AddressLike, + BigNumberish, + AddressLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "executeRevert", + values: [AddressLike, RevertContextStruct] + ): string; + encodeFunctionData( + functionFragment: "withdraw(bytes,uint256,address,(address,bool,address,bytes,uint256))", + values: [BytesLike, BigNumberish, AddressLike, RevertOptionsStruct] + ): string; + encodeFunctionData( + functionFragment: "withdraw(bytes,uint256,uint256,(address,bool,address,bytes,uint256))", + values: [BytesLike, BigNumberish, BigNumberish, RevertOptionsStruct] + ): string; + encodeFunctionData( + functionFragment: "withdrawAndCall(bytes,uint256,uint256,bytes,(uint256,bool),(address,bool,address,bytes,uint256))", + values: [ + BytesLike, + BigNumberish, + BigNumberish, + BytesLike, + CallOptionsStruct, + RevertOptionsStruct + ] + ): string; + encodeFunctionData( + functionFragment: "withdrawAndCall(bytes,uint256,address,bytes,(uint256,bool),(address,bool,address,bytes,uint256))", + values: [ + BytesLike, + BigNumberish, + AddressLike, + BytesLike, + CallOptionsStruct, + RevertOptionsStruct + ] + ): string; + + decodeFunctionResult(functionFragment: "call", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "depositAndCall((bytes,address,uint256),uint256,address,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "depositAndRevert", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "execute", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "executeRevert", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdraw(bytes,uint256,address,(address,bool,address,bytes,uint256))", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdraw(bytes,uint256,uint256,(address,bool,address,bytes,uint256))", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdrawAndCall(bytes,uint256,uint256,bytes,(uint256,bool),(address,bool,address,bytes,uint256))", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdrawAndCall(bytes,uint256,address,bytes,(uint256,bool),(address,bool,address,bytes,uint256))", + data: BytesLike + ): Result; +} + +export namespace CalledEvent { + export type InputTuple = [ + sender: AddressLike, + zrc20: AddressLike, + receiver: BytesLike, + message: BytesLike, + callOptions: CallOptionsStruct, + revertOptions: RevertOptionsStruct + ]; + export type OutputTuple = [ + sender: string, + zrc20: string, + receiver: string, + message: string, + callOptions: CallOptionsStructOutput, + revertOptions: RevertOptionsStructOutput + ]; + export interface OutputObject { + sender: string; + zrc20: string; + receiver: string; + message: string; + callOptions: CallOptionsStructOutput; + revertOptions: RevertOptionsStructOutput; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawnEvent { + export type InputTuple = [ + sender: AddressLike, + chainId: BigNumberish, + receiver: BytesLike, + zrc20: AddressLike, + value: BigNumberish, + gasfee: BigNumberish, + protocolFlatFee: BigNumberish, + message: BytesLike, + callOptions: CallOptionsStruct, + revertOptions: RevertOptionsStruct + ]; + export type OutputTuple = [ + sender: string, + chainId: bigint, + receiver: string, + zrc20: string, + value: bigint, + gasfee: bigint, + protocolFlatFee: bigint, + message: string, + callOptions: CallOptionsStructOutput, + revertOptions: RevertOptionsStructOutput + ]; + export interface OutputObject { + sender: string; + chainId: bigint; + receiver: string; + zrc20: string; + value: bigint; + gasfee: bigint; + protocolFlatFee: bigint; + message: string; + callOptions: CallOptionsStructOutput; + revertOptions: RevertOptionsStructOutput; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawnAndCalledEvent { + export type InputTuple = [ + sender: AddressLike, + chainId: BigNumberish, + receiver: BytesLike, + zrc20: AddressLike, + value: BigNumberish, + gasfee: BigNumberish, + protocolFlatFee: BigNumberish, + message: BytesLike, + callOptions: CallOptionsStruct, + revertOptions: RevertOptionsStruct + ]; + export type OutputTuple = [ + sender: string, + chainId: bigint, + receiver: string, + zrc20: string, + value: bigint, + gasfee: bigint, + protocolFlatFee: bigint, + message: string, + callOptions: CallOptionsStructOutput, + revertOptions: RevertOptionsStructOutput + ]; + export interface OutputObject { + sender: string; + chainId: bigint; + receiver: string; + zrc20: string; + value: bigint; + gasfee: bigint; + protocolFlatFee: bigint; + message: string; + callOptions: CallOptionsStructOutput; + revertOptions: RevertOptionsStructOutput; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IGatewayZEVM extends BaseContract { + connect(runner?: ContractRunner | null): IGatewayZEVM; + waitForDeployment(): Promise; + + interface: IGatewayZEVMInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + call: TypedContractMethod< + [ + receiver: BytesLike, + zrc20: AddressLike, + message: BytesLike, + callOptions: CallOptionsStruct, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + + deposit: TypedContractMethod< + [zrc20: AddressLike, amount: BigNumberish, target: AddressLike], + [void], + "nonpayable" + >; + + "depositAndCall((bytes,address,uint256),uint256,address,bytes)": TypedContractMethod< + [ + context: MessageContextStruct, + amount: BigNumberish, + target: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + + "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)": TypedContractMethod< + [ + context: MessageContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + target: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + + depositAndRevert: TypedContractMethod< + [ + zrc20: AddressLike, + amount: BigNumberish, + target: AddressLike, + revertContext: RevertContextStruct + ], + [void], + "nonpayable" + >; + + execute: TypedContractMethod< + [ + context: MessageContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + target: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + + executeRevert: TypedContractMethod< + [target: AddressLike, revertContext: RevertContextStruct], + [void], + "nonpayable" + >; + + "withdraw(bytes,uint256,address,(address,bool,address,bytes,uint256))": TypedContractMethod< + [ + receiver: BytesLike, + amount: BigNumberish, + zrc20: AddressLike, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + + "withdraw(bytes,uint256,uint256,(address,bool,address,bytes,uint256))": TypedContractMethod< + [ + receiver: BytesLike, + amount: BigNumberish, + chainId: BigNumberish, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + + "withdrawAndCall(bytes,uint256,uint256,bytes,(uint256,bool),(address,bool,address,bytes,uint256))": TypedContractMethod< + [ + receiver: BytesLike, + amount: BigNumberish, + chainId: BigNumberish, + message: BytesLike, + callOptions: CallOptionsStruct, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + + "withdrawAndCall(bytes,uint256,address,bytes,(uint256,bool),(address,bool,address,bytes,uint256))": TypedContractMethod< + [ + receiver: BytesLike, + amount: BigNumberish, + zrc20: AddressLike, + message: BytesLike, + callOptions: CallOptionsStruct, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "call" + ): TypedContractMethod< + [ + receiver: BytesLike, + zrc20: AddressLike, + message: BytesLike, + callOptions: CallOptionsStruct, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "deposit" + ): TypedContractMethod< + [zrc20: AddressLike, amount: BigNumberish, target: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "depositAndCall((bytes,address,uint256),uint256,address,bytes)" + ): TypedContractMethod< + [ + context: MessageContextStruct, + amount: BigNumberish, + target: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)" + ): TypedContractMethod< + [ + context: MessageContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + target: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "depositAndRevert" + ): TypedContractMethod< + [ + zrc20: AddressLike, + amount: BigNumberish, + target: AddressLike, + revertContext: RevertContextStruct + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "execute" + ): TypedContractMethod< + [ + context: MessageContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + target: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "executeRevert" + ): TypedContractMethod< + [target: AddressLike, revertContext: RevertContextStruct], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdraw(bytes,uint256,address,(address,bool,address,bytes,uint256))" + ): TypedContractMethod< + [ + receiver: BytesLike, + amount: BigNumberish, + zrc20: AddressLike, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdraw(bytes,uint256,uint256,(address,bool,address,bytes,uint256))" + ): TypedContractMethod< + [ + receiver: BytesLike, + amount: BigNumberish, + chainId: BigNumberish, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawAndCall(bytes,uint256,uint256,bytes,(uint256,bool),(address,bool,address,bytes,uint256))" + ): TypedContractMethod< + [ + receiver: BytesLike, + amount: BigNumberish, + chainId: BigNumberish, + message: BytesLike, + callOptions: CallOptionsStruct, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawAndCall(bytes,uint256,address,bytes,(uint256,bool),(address,bool,address,bytes,uint256))" + ): TypedContractMethod< + [ + receiver: BytesLike, + amount: BigNumberish, + zrc20: AddressLike, + message: BytesLike, + callOptions: CallOptionsStruct, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + + getEvent( + key: "Called" + ): TypedContractEvent< + CalledEvent.InputTuple, + CalledEvent.OutputTuple, + CalledEvent.OutputObject + >; + getEvent( + key: "Withdrawn" + ): TypedContractEvent< + WithdrawnEvent.InputTuple, + WithdrawnEvent.OutputTuple, + WithdrawnEvent.OutputObject + >; + getEvent( + key: "WithdrawnAndCalled" + ): TypedContractEvent< + WithdrawnAndCalledEvent.InputTuple, + WithdrawnAndCalledEvent.OutputTuple, + WithdrawnAndCalledEvent.OutputObject + >; + + filters: { + "Called(address,address,bytes,bytes,tuple,tuple)": TypedContractEvent< + CalledEvent.InputTuple, + CalledEvent.OutputTuple, + CalledEvent.OutputObject + >; + Called: TypedContractEvent< + CalledEvent.InputTuple, + CalledEvent.OutputTuple, + CalledEvent.OutputObject + >; + + "Withdrawn(address,uint256,bytes,address,uint256,uint256,uint256,bytes,tuple,tuple)": TypedContractEvent< + WithdrawnEvent.InputTuple, + WithdrawnEvent.OutputTuple, + WithdrawnEvent.OutputObject + >; + Withdrawn: TypedContractEvent< + WithdrawnEvent.InputTuple, + WithdrawnEvent.OutputTuple, + WithdrawnEvent.OutputObject + >; + + "WithdrawnAndCalled(address,uint256,bytes,address,uint256,uint256,uint256,bytes,tuple,tuple)": TypedContractEvent< + WithdrawnAndCalledEvent.InputTuple, + WithdrawnAndCalledEvent.OutputTuple, + WithdrawnAndCalledEvent.OutputObject + >; + WithdrawnAndCalled: TypedContractEvent< + WithdrawnAndCalledEvent.InputTuple, + WithdrawnAndCalledEvent.OutputTuple, + WithdrawnAndCalledEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMErrors.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMErrors.ts new file mode 100644 index 00000000..48b4b0ea --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMErrors.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../../../../../../common"; + +export interface IGatewayZEVMErrorsInterface extends Interface {} + +export interface IGatewayZEVMErrors extends BaseContract { + connect(runner?: ContractRunner | null): IGatewayZEVMErrors; + waitForDeployment(): Promise; + + interface: IGatewayZEVMErrorsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMEvents.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMEvents.ts new file mode 100644 index 00000000..91f48741 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMEvents.ts @@ -0,0 +1,282 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, +} from "../../../../../../common"; + +export type CallOptionsStruct = { + gasLimit: BigNumberish; + isArbitraryCall: boolean; +}; + +export type CallOptionsStructOutput = [ + gasLimit: bigint, + isArbitraryCall: boolean +] & { gasLimit: bigint; isArbitraryCall: boolean }; + +export type RevertOptionsStruct = { + revertAddress: AddressLike; + callOnRevert: boolean; + abortAddress: AddressLike; + revertMessage: BytesLike; + onRevertGasLimit: BigNumberish; +}; + +export type RevertOptionsStructOutput = [ + revertAddress: string, + callOnRevert: boolean, + abortAddress: string, + revertMessage: string, + onRevertGasLimit: bigint +] & { + revertAddress: string; + callOnRevert: boolean; + abortAddress: string; + revertMessage: string; + onRevertGasLimit: bigint; +}; + +export interface IGatewayZEVMEventsInterface extends Interface { + getEvent( + nameOrSignatureOrTopic: "Called" | "Withdrawn" | "WithdrawnAndCalled" + ): EventFragment; +} + +export namespace CalledEvent { + export type InputTuple = [ + sender: AddressLike, + zrc20: AddressLike, + receiver: BytesLike, + message: BytesLike, + callOptions: CallOptionsStruct, + revertOptions: RevertOptionsStruct + ]; + export type OutputTuple = [ + sender: string, + zrc20: string, + receiver: string, + message: string, + callOptions: CallOptionsStructOutput, + revertOptions: RevertOptionsStructOutput + ]; + export interface OutputObject { + sender: string; + zrc20: string; + receiver: string; + message: string; + callOptions: CallOptionsStructOutput; + revertOptions: RevertOptionsStructOutput; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawnEvent { + export type InputTuple = [ + sender: AddressLike, + chainId: BigNumberish, + receiver: BytesLike, + zrc20: AddressLike, + value: BigNumberish, + gasfee: BigNumberish, + protocolFlatFee: BigNumberish, + message: BytesLike, + callOptions: CallOptionsStruct, + revertOptions: RevertOptionsStruct + ]; + export type OutputTuple = [ + sender: string, + chainId: bigint, + receiver: string, + zrc20: string, + value: bigint, + gasfee: bigint, + protocolFlatFee: bigint, + message: string, + callOptions: CallOptionsStructOutput, + revertOptions: RevertOptionsStructOutput + ]; + export interface OutputObject { + sender: string; + chainId: bigint; + receiver: string; + zrc20: string; + value: bigint; + gasfee: bigint; + protocolFlatFee: bigint; + message: string; + callOptions: CallOptionsStructOutput; + revertOptions: RevertOptionsStructOutput; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawnAndCalledEvent { + export type InputTuple = [ + sender: AddressLike, + chainId: BigNumberish, + receiver: BytesLike, + zrc20: AddressLike, + value: BigNumberish, + gasfee: BigNumberish, + protocolFlatFee: BigNumberish, + message: BytesLike, + callOptions: CallOptionsStruct, + revertOptions: RevertOptionsStruct + ]; + export type OutputTuple = [ + sender: string, + chainId: bigint, + receiver: string, + zrc20: string, + value: bigint, + gasfee: bigint, + protocolFlatFee: bigint, + message: string, + callOptions: CallOptionsStructOutput, + revertOptions: RevertOptionsStructOutput + ]; + export interface OutputObject { + sender: string; + chainId: bigint; + receiver: string; + zrc20: string; + value: bigint; + gasfee: bigint; + protocolFlatFee: bigint; + message: string; + callOptions: CallOptionsStructOutput; + revertOptions: RevertOptionsStructOutput; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IGatewayZEVMEvents extends BaseContract { + connect(runner?: ContractRunner | null): IGatewayZEVMEvents; + waitForDeployment(): Promise; + + interface: IGatewayZEVMEventsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + getEvent( + key: "Called" + ): TypedContractEvent< + CalledEvent.InputTuple, + CalledEvent.OutputTuple, + CalledEvent.OutputObject + >; + getEvent( + key: "Withdrawn" + ): TypedContractEvent< + WithdrawnEvent.InputTuple, + WithdrawnEvent.OutputTuple, + WithdrawnEvent.OutputObject + >; + getEvent( + key: "WithdrawnAndCalled" + ): TypedContractEvent< + WithdrawnAndCalledEvent.InputTuple, + WithdrawnAndCalledEvent.OutputTuple, + WithdrawnAndCalledEvent.OutputObject + >; + + filters: { + "Called(address,address,bytes,bytes,tuple,tuple)": TypedContractEvent< + CalledEvent.InputTuple, + CalledEvent.OutputTuple, + CalledEvent.OutputObject + >; + Called: TypedContractEvent< + CalledEvent.InputTuple, + CalledEvent.OutputTuple, + CalledEvent.OutputObject + >; + + "Withdrawn(address,uint256,bytes,address,uint256,uint256,uint256,bytes,tuple,tuple)": TypedContractEvent< + WithdrawnEvent.InputTuple, + WithdrawnEvent.OutputTuple, + WithdrawnEvent.OutputObject + >; + Withdrawn: TypedContractEvent< + WithdrawnEvent.InputTuple, + WithdrawnEvent.OutputTuple, + WithdrawnEvent.OutputObject + >; + + "WithdrawnAndCalled(address,uint256,bytes,address,uint256,uint256,uint256,bytes,tuple,tuple)": TypedContractEvent< + WithdrawnAndCalledEvent.InputTuple, + WithdrawnAndCalledEvent.OutputTuple, + WithdrawnAndCalledEvent.OutputObject + >; + WithdrawnAndCalled: TypedContractEvent< + WithdrawnAndCalledEvent.InputTuple, + WithdrawnAndCalledEvent.OutputTuple, + WithdrawnAndCalledEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/index.ts new file mode 100644 index 00000000..736bdfc6 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IGatewayZEVM } from "./IGatewayZEVM"; +export type { IGatewayZEVMErrors } from "./IGatewayZEVMErrors"; +export type { IGatewayZEVMEvents } from "./IGatewayZEVMEvents"; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/ISystem.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/ISystem.ts new file mode 100644 index 00000000..70aad4b1 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/ISystem.ts @@ -0,0 +1,176 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../../../../common"; + +export interface ISystemInterface extends Interface { + getFunction( + nameOrSignature: + | "FUNGIBLE_MODULE_ADDRESS" + | "gasCoinZRC20ByChainId" + | "gasPriceByChainId" + | "gasZetaPoolByChainId" + | "uniswapv2FactoryAddress" + | "wZetaContractAddress" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "FUNGIBLE_MODULE_ADDRESS", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "gasCoinZRC20ByChainId", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "gasPriceByChainId", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "gasZetaPoolByChainId", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "uniswapv2FactoryAddress", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "wZetaContractAddress", + values?: undefined + ): string; + + decodeFunctionResult( + functionFragment: "FUNGIBLE_MODULE_ADDRESS", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "gasCoinZRC20ByChainId", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "gasPriceByChainId", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "gasZetaPoolByChainId", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapv2FactoryAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "wZetaContractAddress", + data: BytesLike + ): Result; +} + +export interface ISystem extends BaseContract { + connect(runner?: ContractRunner | null): ISystem; + waitForDeployment(): Promise; + + interface: ISystemInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + FUNGIBLE_MODULE_ADDRESS: TypedContractMethod<[], [string], "view">; + + gasCoinZRC20ByChainId: TypedContractMethod< + [chainID: BigNumberish], + [string], + "view" + >; + + gasPriceByChainId: TypedContractMethod< + [chainID: BigNumberish], + [bigint], + "view" + >; + + gasZetaPoolByChainId: TypedContractMethod< + [chainID: BigNumberish], + [string], + "view" + >; + + uniswapv2FactoryAddress: TypedContractMethod<[], [string], "view">; + + wZetaContractAddress: TypedContractMethod<[], [string], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "FUNGIBLE_MODULE_ADDRESS" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "gasCoinZRC20ByChainId" + ): TypedContractMethod<[chainID: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "gasPriceByChainId" + ): TypedContractMethod<[chainID: BigNumberish], [bigint], "view">; + getFunction( + nameOrSignature: "gasZetaPoolByChainId" + ): TypedContractMethod<[chainID: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "uniswapv2FactoryAddress" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "wZetaContractAddress" + ): TypedContractMethod<[], [string], "view">; + + filters: {}; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/IWETH9.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/IWETH9.ts new file mode 100644 index 00000000..59e96e8d --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/IWETH9.ts @@ -0,0 +1,345 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../../../../common"; + +export interface IWETH9Interface extends Interface { + getFunction( + nameOrSignature: + | "allowance" + | "approve" + | "balanceOf" + | "deposit" + | "totalSupply" + | "transfer" + | "transferFrom" + | "withdraw" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: "Approval" | "Deposit" | "Transfer" | "Withdrawal" + ): EventFragment; + + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "deposit", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdraw", + values: [BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace DepositEvent { + export type InputTuple = [dst: AddressLike, wad: BigNumberish]; + export type OutputTuple = [dst: string, wad: bigint]; + export interface OutputObject { + dst: string; + wad: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawalEvent { + export type InputTuple = [src: AddressLike, wad: BigNumberish]; + export type OutputTuple = [src: string, wad: bigint]; + export interface OutputObject { + src: string; + wad: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IWETH9 extends BaseContract { + connect(runner?: ContractRunner | null): IWETH9; + waitForDeployment(): Promise; + + interface: IWETH9Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, wad: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[owner: AddressLike], [bigint], "view">; + + deposit: TypedContractMethod<[], [void], "payable">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [to: AddressLike, wad: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [from: AddressLike, to: AddressLike, wad: BigNumberish], + [boolean], + "nonpayable" + >; + + withdraw: TypedContractMethod<[wad: BigNumberish], [void], "nonpayable">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, wad: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[owner: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "deposit" + ): TypedContractMethod<[], [void], "payable">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, wad: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, wad: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdraw" + ): TypedContractMethod<[wad: BigNumberish], [void], "nonpayable">; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Deposit" + ): TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + getEvent( + key: "Withdrawal" + ): TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Deposit(address,uint256)": TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + Deposit: TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + "Withdrawal(address,uint256)": TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + Withdrawal: TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/index.ts new file mode 100644 index 00000000..95069327 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IWETH9 } from "./IWETH9"; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20.ts new file mode 100644 index 00000000..2c976c2b --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20.ts @@ -0,0 +1,301 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../../../../../common"; + +export interface IZRC20Interface extends Interface { + getFunction( + nameOrSignature: + | "GAS_LIMIT" + | "PROTOCOL_FLAT_FEE" + | "allowance" + | "approve" + | "balanceOf" + | "burn" + | "deposit" + | "setName" + | "setSymbol" + | "totalSupply" + | "transfer" + | "transferFrom" + | "withdraw" + | "withdrawGasFee" + | "withdrawGasFeeWithGasLimit" + ): FunctionFragment; + + encodeFunctionData(functionFragment: "GAS_LIMIT", values?: undefined): string; + encodeFunctionData( + functionFragment: "PROTOCOL_FLAT_FEE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "burn", values: [BigNumberish]): string; + encodeFunctionData( + functionFragment: "deposit", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "setName", values: [string]): string; + encodeFunctionData(functionFragment: "setSymbol", values: [string]): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdraw", + values: [BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdrawGasFee", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "withdrawGasFeeWithGasLimit", + values: [BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "GAS_LIMIT", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "PROTOCOL_FLAT_FEE", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "setName", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "setSymbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "withdrawGasFee", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdrawGasFeeWithGasLimit", + data: BytesLike + ): Result; +} + +export interface IZRC20 extends BaseContract { + connect(runner?: ContractRunner | null): IZRC20; + waitForDeployment(): Promise; + + interface: IZRC20Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + GAS_LIMIT: TypedContractMethod<[], [bigint], "view">; + + PROTOCOL_FLAT_FEE: TypedContractMethod<[], [bigint], "view">; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + burn: TypedContractMethod<[amount: BigNumberish], [boolean], "nonpayable">; + + deposit: TypedContractMethod< + [to: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + setName: TypedContractMethod<[newName: string], [void], "nonpayable">; + + setSymbol: TypedContractMethod<[newSymbol: string], [void], "nonpayable">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + withdraw: TypedContractMethod< + [to: BytesLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + withdrawGasFee: TypedContractMethod<[], [[string, bigint]], "view">; + + withdrawGasFeeWithGasLimit: TypedContractMethod< + [gasLimit: BigNumberish], + [[string, bigint]], + "view" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "GAS_LIMIT" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "PROTOCOL_FLAT_FEE" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "burn" + ): TypedContractMethod<[amount: BigNumberish], [boolean], "nonpayable">; + getFunction( + nameOrSignature: "deposit" + ): TypedContractMethod< + [to: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "setName" + ): TypedContractMethod<[newName: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "setSymbol" + ): TypedContractMethod<[newSymbol: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdraw" + ): TypedContractMethod< + [to: BytesLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawGasFee" + ): TypedContractMethod<[], [[string, bigint]], "view">; + getFunction( + nameOrSignature: "withdrawGasFeeWithGasLimit" + ): TypedContractMethod<[gasLimit: BigNumberish], [[string, bigint]], "view">; + + filters: {}; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata.ts new file mode 100644 index 00000000..fcb32db1 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata.ts @@ -0,0 +1,325 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../../../../../common"; + +export interface IZRC20MetadataInterface extends Interface { + getFunction( + nameOrSignature: + | "GAS_LIMIT" + | "PROTOCOL_FLAT_FEE" + | "allowance" + | "approve" + | "balanceOf" + | "burn" + | "decimals" + | "deposit" + | "name" + | "setName" + | "setSymbol" + | "symbol" + | "totalSupply" + | "transfer" + | "transferFrom" + | "withdraw" + | "withdrawGasFee" + | "withdrawGasFeeWithGasLimit" + ): FunctionFragment; + + encodeFunctionData(functionFragment: "GAS_LIMIT", values?: undefined): string; + encodeFunctionData( + functionFragment: "PROTOCOL_FLAT_FEE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "burn", values: [BigNumberish]): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData( + functionFragment: "deposit", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "setName", values: [string]): string; + encodeFunctionData(functionFragment: "setSymbol", values: [string]): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdraw", + values: [BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdrawGasFee", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "withdrawGasFeeWithGasLimit", + values: [BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "GAS_LIMIT", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "PROTOCOL_FLAT_FEE", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "setName", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "setSymbol", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "withdrawGasFee", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdrawGasFeeWithGasLimit", + data: BytesLike + ): Result; +} + +export interface IZRC20Metadata extends BaseContract { + connect(runner?: ContractRunner | null): IZRC20Metadata; + waitForDeployment(): Promise; + + interface: IZRC20MetadataInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + GAS_LIMIT: TypedContractMethod<[], [bigint], "view">; + + PROTOCOL_FLAT_FEE: TypedContractMethod<[], [bigint], "view">; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + burn: TypedContractMethod<[amount: BigNumberish], [boolean], "nonpayable">; + + decimals: TypedContractMethod<[], [bigint], "view">; + + deposit: TypedContractMethod< + [to: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + name: TypedContractMethod<[], [string], "view">; + + setName: TypedContractMethod<[newName: string], [void], "nonpayable">; + + setSymbol: TypedContractMethod<[newSymbol: string], [void], "nonpayable">; + + symbol: TypedContractMethod<[], [string], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + withdraw: TypedContractMethod< + [to: BytesLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + withdrawGasFee: TypedContractMethod<[], [[string, bigint]], "view">; + + withdrawGasFeeWithGasLimit: TypedContractMethod< + [gasLimit: BigNumberish], + [[string, bigint]], + "view" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "GAS_LIMIT" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "PROTOCOL_FLAT_FEE" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "burn" + ): TypedContractMethod<[amount: BigNumberish], [boolean], "nonpayable">; + getFunction( + nameOrSignature: "decimals" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "deposit" + ): TypedContractMethod< + [to: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "setName" + ): TypedContractMethod<[newName: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "setSymbol" + ): TypedContractMethod<[newSymbol: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdraw" + ): TypedContractMethod< + [to: BytesLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawGasFee" + ): TypedContractMethod<[], [[string, bigint]], "view">; + getFunction( + nameOrSignature: "withdrawGasFeeWithGasLimit" + ): TypedContractMethod<[gasLimit: BigNumberish], [[string, bigint]], "view">; + + filters: {}; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/ZRC20Events.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/ZRC20Events.ts new file mode 100644 index 00000000..93b65e1a --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/ZRC20Events.ts @@ -0,0 +1,361 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, +} from "../../../../../../common"; + +export interface ZRC20EventsInterface extends Interface { + getEvent( + nameOrSignatureOrTopic: + | "Approval" + | "Deposit" + | "Transfer" + | "UpdatedGasLimit" + | "UpdatedGateway" + | "UpdatedProtocolFlatFee" + | "UpdatedSystemContract" + | "Withdrawal" + ): EventFragment; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace DepositEvent { + export type InputTuple = [ + from: BytesLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpdatedGasLimitEvent { + export type InputTuple = [gasLimit: BigNumberish]; + export type OutputTuple = [gasLimit: bigint]; + export interface OutputObject { + gasLimit: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpdatedGatewayEvent { + export type InputTuple = [gateway: AddressLike]; + export type OutputTuple = [gateway: string]; + export interface OutputObject { + gateway: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpdatedProtocolFlatFeeEvent { + export type InputTuple = [protocolFlatFee: BigNumberish]; + export type OutputTuple = [protocolFlatFee: bigint]; + export interface OutputObject { + protocolFlatFee: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpdatedSystemContractEvent { + export type InputTuple = [systemContract: AddressLike]; + export type OutputTuple = [systemContract: string]; + export interface OutputObject { + systemContract: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawalEvent { + export type InputTuple = [ + from: AddressLike, + to: BytesLike, + value: BigNumberish, + gasFee: BigNumberish, + protocolFlatFee: BigNumberish + ]; + export type OutputTuple = [ + from: string, + to: string, + value: bigint, + gasFee: bigint, + protocolFlatFee: bigint + ]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + gasFee: bigint; + protocolFlatFee: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ZRC20Events extends BaseContract { + connect(runner?: ContractRunner | null): ZRC20Events; + waitForDeployment(): Promise; + + interface: ZRC20EventsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Deposit" + ): TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + getEvent( + key: "UpdatedGasLimit" + ): TypedContractEvent< + UpdatedGasLimitEvent.InputTuple, + UpdatedGasLimitEvent.OutputTuple, + UpdatedGasLimitEvent.OutputObject + >; + getEvent( + key: "UpdatedGateway" + ): TypedContractEvent< + UpdatedGatewayEvent.InputTuple, + UpdatedGatewayEvent.OutputTuple, + UpdatedGatewayEvent.OutputObject + >; + getEvent( + key: "UpdatedProtocolFlatFee" + ): TypedContractEvent< + UpdatedProtocolFlatFeeEvent.InputTuple, + UpdatedProtocolFlatFeeEvent.OutputTuple, + UpdatedProtocolFlatFeeEvent.OutputObject + >; + getEvent( + key: "UpdatedSystemContract" + ): TypedContractEvent< + UpdatedSystemContractEvent.InputTuple, + UpdatedSystemContractEvent.OutputTuple, + UpdatedSystemContractEvent.OutputObject + >; + getEvent( + key: "Withdrawal" + ): TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Deposit(bytes,address,uint256)": TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + Deposit: TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + "UpdatedGasLimit(uint256)": TypedContractEvent< + UpdatedGasLimitEvent.InputTuple, + UpdatedGasLimitEvent.OutputTuple, + UpdatedGasLimitEvent.OutputObject + >; + UpdatedGasLimit: TypedContractEvent< + UpdatedGasLimitEvent.InputTuple, + UpdatedGasLimitEvent.OutputTuple, + UpdatedGasLimitEvent.OutputObject + >; + + "UpdatedGateway(address)": TypedContractEvent< + UpdatedGatewayEvent.InputTuple, + UpdatedGatewayEvent.OutputTuple, + UpdatedGatewayEvent.OutputObject + >; + UpdatedGateway: TypedContractEvent< + UpdatedGatewayEvent.InputTuple, + UpdatedGatewayEvent.OutputTuple, + UpdatedGatewayEvent.OutputObject + >; + + "UpdatedProtocolFlatFee(uint256)": TypedContractEvent< + UpdatedProtocolFlatFeeEvent.InputTuple, + UpdatedProtocolFlatFeeEvent.OutputTuple, + UpdatedProtocolFlatFeeEvent.OutputObject + >; + UpdatedProtocolFlatFee: TypedContractEvent< + UpdatedProtocolFlatFeeEvent.InputTuple, + UpdatedProtocolFlatFeeEvent.OutputTuple, + UpdatedProtocolFlatFeeEvent.OutputObject + >; + + "UpdatedSystemContract(address)": TypedContractEvent< + UpdatedSystemContractEvent.InputTuple, + UpdatedSystemContractEvent.OutputTuple, + UpdatedSystemContractEvent.OutputObject + >; + UpdatedSystemContract: TypedContractEvent< + UpdatedSystemContractEvent.InputTuple, + UpdatedSystemContractEvent.OutputTuple, + UpdatedSystemContractEvent.OutputObject + >; + + "Withdrawal(address,bytes,uint256,uint256,uint256)": TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + Withdrawal: TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/index.ts new file mode 100644 index 00000000..603ef6e3 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IZRC20 } from "./IZRC20"; +export type { IZRC20Metadata } from "./IZRC20Metadata"; +export type { ZRC20Events } from "./ZRC20Events"; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/UniversalContract.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/UniversalContract.ts new file mode 100644 index 00000000..89d53bb2 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/UniversalContract.ts @@ -0,0 +1,119 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../../../../../common"; + +export type MessageContextStruct = { + sender: BytesLike; + senderEVM: AddressLike; + chainID: BigNumberish; +}; + +export type MessageContextStructOutput = [ + sender: string, + senderEVM: string, + chainID: bigint +] & { sender: string; senderEVM: string; chainID: bigint }; + +export interface UniversalContractInterface extends Interface { + getFunction(nameOrSignature: "onCall"): FunctionFragment; + + encodeFunctionData( + functionFragment: "onCall", + values: [MessageContextStruct, AddressLike, BigNumberish, BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "onCall", data: BytesLike): Result; +} + +export interface UniversalContract extends BaseContract { + connect(runner?: ContractRunner | null): UniversalContract; + waitForDeployment(): Promise; + + interface: UniversalContractInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + onCall: TypedContractMethod< + [ + context: MessageContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + message: BytesLike + ], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "onCall" + ): TypedContractMethod< + [ + context: MessageContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + message: BytesLike + ], + [void], + "nonpayable" + >; + + filters: {}; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/ZContract.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/ZContract.ts new file mode 100644 index 00000000..9e3ab26e --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/ZContract.ts @@ -0,0 +1,122 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../../../../../common"; + +export type ZContextStruct = { + origin: BytesLike; + sender: AddressLike; + chainID: BigNumberish; +}; + +export type ZContextStructOutput = [ + origin: string, + sender: string, + chainID: bigint +] & { origin: string; sender: string; chainID: bigint }; + +export interface ZContractInterface extends Interface { + getFunction(nameOrSignature: "onCrossChainCall"): FunctionFragment; + + encodeFunctionData( + functionFragment: "onCrossChainCall", + values: [ZContextStruct, AddressLike, BigNumberish, BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "onCrossChainCall", + data: BytesLike + ): Result; +} + +export interface ZContract extends BaseContract { + connect(runner?: ContractRunner | null): ZContract; + waitForDeployment(): Promise; + + interface: ZContractInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + onCrossChainCall: TypedContractMethod< + [ + context: ZContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + message: BytesLike + ], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "onCrossChainCall" + ): TypedContractMethod< + [ + context: ZContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + message: BytesLike + ], + [void], + "nonpayable" + >; + + filters: {}; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/index.ts new file mode 100644 index 00000000..bf8e5a02 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { UniversalContract } from "./UniversalContract"; +export type { ZContract } from "./ZContract"; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/index.ts new file mode 100644 index 00000000..c598744d --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/index.ts @@ -0,0 +1,12 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as iGatewayZevmSol from "./IGatewayZEVM.sol"; +export type { iGatewayZevmSol }; +import type * as iwzetaSol from "./IWZETA.sol"; +export type { iwzetaSol }; +import type * as izrc20Sol from "./IZRC20.sol"; +export type { izrc20Sol }; +import type * as universalContractSol from "./UniversalContract.sol"; +export type { universalContractSol }; +export type { ISystem } from "./ISystem"; diff --git a/typechain-types/@zetachain/protocol-contracts/index.ts b/typechain-types/@zetachain/protocol-contracts/index.ts new file mode 100644 index 00000000..a11e4ca2 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as contracts from "./contracts"; +export type { contracts }; diff --git a/typechain-types/common.ts b/typechain-types/common.ts new file mode 100644 index 00000000..56b5f21e --- /dev/null +++ b/typechain-types/common.ts @@ -0,0 +1,131 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + FunctionFragment, + Typed, + EventFragment, + ContractTransaction, + ContractTransactionResponse, + DeferredTopicFilter, + EventLog, + TransactionRequest, + LogDescription, +} from "ethers"; + +export interface TypedDeferredTopicFilter<_TCEvent extends TypedContractEvent> + extends DeferredTopicFilter {} + +export interface TypedContractEvent< + InputTuple extends Array = any, + OutputTuple extends Array = any, + OutputObject = any +> { + (...args: Partial): TypedDeferredTopicFilter< + TypedContractEvent + >; + name: string; + fragment: EventFragment; + getFragment(...args: Partial): EventFragment; +} + +type __TypechainAOutputTuple = T extends TypedContractEvent< + infer _U, + infer W +> + ? W + : never; +type __TypechainOutputObject = T extends TypedContractEvent< + infer _U, + infer _W, + infer V +> + ? V + : never; + +export interface TypedEventLog + extends Omit { + args: __TypechainAOutputTuple & __TypechainOutputObject; +} + +export interface TypedLogDescription + extends Omit { + args: __TypechainAOutputTuple & __TypechainOutputObject; +} + +export type TypedListener = ( + ...listenerArg: [ + ...__TypechainAOutputTuple, + TypedEventLog, + ...undefined[] + ] +) => void; + +export type MinEthersFactory = { + deploy(...a: ARGS[]): Promise; +}; + +export type GetContractTypeFromFactory = F extends MinEthersFactory< + infer C, + any +> + ? C + : never; +export type GetARGsTypeFromFactory = F extends MinEthersFactory + ? Parameters + : never; + +export type StateMutability = "nonpayable" | "payable" | "view"; + +export type BaseOverrides = Omit; +export type NonPayableOverrides = Omit< + BaseOverrides, + "value" | "blockTag" | "enableCcipRead" +>; +export type PayableOverrides = Omit< + BaseOverrides, + "blockTag" | "enableCcipRead" +>; +export type ViewOverrides = Omit; +export type Overrides = S extends "nonpayable" + ? NonPayableOverrides + : S extends "payable" + ? PayableOverrides + : ViewOverrides; + +export type PostfixOverrides, S extends StateMutability> = + | A + | [...A, Overrides]; +export type ContractMethodArgs< + A extends Array, + S extends StateMutability +> = PostfixOverrides<{ [I in keyof A]-?: A[I] | Typed }, S>; + +export type DefaultReturnType = R extends Array ? R[0] : R; + +// export interface ContractMethod = Array, R = any, D extends R | ContractTransactionResponse = R | ContractTransactionResponse> { +export interface TypedContractMethod< + A extends Array = Array, + R = any, + S extends StateMutability = "payable" +> { + (...args: ContractMethodArgs): S extends "view" + ? Promise> + : Promise; + + name: string; + + fragment: FunctionFragment; + + getFragment(...args: ContractMethodArgs): FunctionFragment; + + populateTransaction( + ...args: ContractMethodArgs + ): Promise; + staticCall( + ...args: ContractMethodArgs + ): Promise>; + send(...args: ContractMethodArgs): Promise; + estimateGas(...args: ContractMethodArgs): Promise; + staticCallResult(...args: ContractMethodArgs): Promise; +} diff --git a/typechain-types/contracts/BytesHelperLib.ts b/typechain-types/contracts/BytesHelperLib.ts new file mode 100644 index 00000000..9cdaa3b3 --- /dev/null +++ b/typechain-types/contracts/BytesHelperLib.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../common"; + +export interface BytesHelperLibInterface extends Interface {} + +export interface BytesHelperLib extends BaseContract { + connect(runner?: ContractRunner | null): BytesHelperLib; + waitForDeployment(): Promise; + + interface: BytesHelperLibInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/typechain-types/contracts/EthZetaMock.sol/ZetaEthMock.ts b/typechain-types/contracts/EthZetaMock.sol/ZetaEthMock.ts new file mode 100644 index 00000000..44b72eee --- /dev/null +++ b/typechain-types/contracts/EthZetaMock.sol/ZetaEthMock.ts @@ -0,0 +1,286 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../common"; + +export interface ZetaEthMockInterface extends Interface { + getFunction( + nameOrSignature: + | "allowance" + | "approve" + | "balanceOf" + | "decimals" + | "name" + | "symbol" + | "totalSupply" + | "transfer" + | "transferFrom" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; + + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ZetaEthMock extends BaseContract { + connect(runner?: ContractRunner | null): ZetaEthMock; + waitForDeployment(): Promise; + + interface: ZetaEthMockInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + decimals: TypedContractMethod<[], [bigint], "view">; + + name: TypedContractMethod<[], [string], "view">; + + symbol: TypedContractMethod<[], [string], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "decimals" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/typechain-types/contracts/EthZetaMock.sol/index.ts b/typechain-types/contracts/EthZetaMock.sol/index.ts new file mode 100644 index 00000000..76f2bf48 --- /dev/null +++ b/typechain-types/contracts/EthZetaMock.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { ZetaEthMock } from "./ZetaEthMock"; diff --git a/typechain-types/contracts/OnlySystem.ts b/typechain-types/contracts/OnlySystem.ts new file mode 100644 index 00000000..332c7e40 --- /dev/null +++ b/typechain-types/contracts/OnlySystem.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../common"; + +export interface OnlySystemInterface extends Interface {} + +export interface OnlySystem extends BaseContract { + connect(runner?: ContractRunner | null): OnlySystem; + waitForDeployment(): Promise; + + interface: OnlySystemInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/typechain-types/contracts/Revert.sol/Revertable.ts b/typechain-types/contracts/Revert.sol/Revertable.ts new file mode 100644 index 00000000..5bd605cb --- /dev/null +++ b/typechain-types/contracts/Revert.sol/Revertable.ts @@ -0,0 +1,109 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../common"; + +export type RevertContextStruct = { + asset: AddressLike; + amount: BigNumberish; + revertMessage: BytesLike; +}; + +export type RevertContextStructOutput = [ + asset: string, + amount: bigint, + revertMessage: string +] & { asset: string; amount: bigint; revertMessage: string }; + +export interface RevertableInterface extends Interface { + getFunction(nameOrSignature: "onRevert"): FunctionFragment; + + encodeFunctionData( + functionFragment: "onRevert", + values: [RevertContextStruct] + ): string; + + decodeFunctionResult(functionFragment: "onRevert", data: BytesLike): Result; +} + +export interface Revertable extends BaseContract { + connect(runner?: ContractRunner | null): Revertable; + waitForDeployment(): Promise; + + interface: RevertableInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + onRevert: TypedContractMethod< + [revertContext: RevertContextStruct], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "onRevert" + ): TypedContractMethod< + [revertContext: RevertContextStruct], + [void], + "nonpayable" + >; + + filters: {}; +} diff --git a/typechain-types/contracts/Revert.sol/index.ts b/typechain-types/contracts/Revert.sol/index.ts new file mode 100644 index 00000000..12a1db84 --- /dev/null +++ b/typechain-types/contracts/Revert.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { Revertable } from "./Revertable"; diff --git a/typechain-types/contracts/SwapHelperLib.ts b/typechain-types/contracts/SwapHelperLib.ts new file mode 100644 index 00000000..d155749d --- /dev/null +++ b/typechain-types/contracts/SwapHelperLib.ts @@ -0,0 +1,133 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../common"; + +export interface SwapHelperLibInterface extends Interface { + getFunction( + nameOrSignature: "getMinOutAmount" | "uniswapv2PairFor" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "getMinOutAmount", + values: [AddressLike, AddressLike, AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "uniswapv2PairFor", + values: [AddressLike, AddressLike, AddressLike] + ): string; + + decodeFunctionResult( + functionFragment: "getMinOutAmount", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapv2PairFor", + data: BytesLike + ): Result; +} + +export interface SwapHelperLib extends BaseContract { + connect(runner?: ContractRunner | null): SwapHelperLib; + waitForDeployment(): Promise; + + interface: SwapHelperLibInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getMinOutAmount: TypedContractMethod< + [ + router: AddressLike, + zrc20: AddressLike, + target: AddressLike, + amountIn: BigNumberish + ], + [bigint], + "view" + >; + + uniswapv2PairFor: TypedContractMethod< + [factory: AddressLike, tokenA: AddressLike, tokenB: AddressLike], + [string], + "view" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "getMinOutAmount" + ): TypedContractMethod< + [ + router: AddressLike, + zrc20: AddressLike, + target: AddressLike, + amountIn: BigNumberish + ], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "uniswapv2PairFor" + ): TypedContractMethod< + [factory: AddressLike, tokenA: AddressLike, tokenB: AddressLike], + [string], + "view" + >; + + filters: {}; +} diff --git a/typechain-types/contracts/SwapHelpers.sol/SwapLibrary.ts b/typechain-types/contracts/SwapHelpers.sol/SwapLibrary.ts new file mode 100644 index 00000000..9280fb4a --- /dev/null +++ b/typechain-types/contracts/SwapHelpers.sol/SwapLibrary.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../../common"; + +export interface SwapLibraryInterface extends Interface {} + +export interface SwapLibrary extends BaseContract { + connect(runner?: ContractRunner | null): SwapLibrary; + waitForDeployment(): Promise; + + interface: SwapLibraryInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/typechain-types/contracts/SwapHelpers.sol/index.ts b/typechain-types/contracts/SwapHelpers.sol/index.ts new file mode 100644 index 00000000..2d07bc4f --- /dev/null +++ b/typechain-types/contracts/SwapHelpers.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { SwapLibrary } from "./SwapLibrary"; diff --git a/typechain-types/contracts/SystemContract.sol/SystemContract.ts b/typechain-types/contracts/SystemContract.sol/SystemContract.ts new file mode 100644 index 00000000..25b29dc3 --- /dev/null +++ b/typechain-types/contracts/SystemContract.sol/SystemContract.ts @@ -0,0 +1,569 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../common"; + +export type ZContextStruct = { + origin: BytesLike; + sender: AddressLike; + chainID: BigNumberish; +}; + +export type ZContextStructOutput = [ + origin: string, + sender: string, + chainID: bigint +] & { origin: string; sender: string; chainID: bigint }; + +export interface SystemContractInterface extends Interface { + getFunction( + nameOrSignature: + | "FUNGIBLE_MODULE_ADDRESS" + | "depositAndCall" + | "gasCoinZRC20ByChainId" + | "gasPriceByChainId" + | "gasZetaPoolByChainId" + | "setConnectorZEVMAddress" + | "setGasCoinZRC20" + | "setGasPrice" + | "setGasZetaPool" + | "setWZETAContractAddress" + | "uniswapv2FactoryAddress" + | "uniswapv2PairFor" + | "uniswapv2Router02Address" + | "wZetaContractAddress" + | "zetaConnectorZEVMAddress" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "SetConnectorZEVM" + | "SetGasCoin" + | "SetGasPrice" + | "SetGasZetaPool" + | "SetWZeta" + | "SystemContractDeployed" + ): EventFragment; + + encodeFunctionData( + functionFragment: "FUNGIBLE_MODULE_ADDRESS", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "depositAndCall", + values: [ZContextStruct, AddressLike, BigNumberish, AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "gasCoinZRC20ByChainId", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "gasPriceByChainId", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "gasZetaPoolByChainId", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "setConnectorZEVMAddress", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setGasCoinZRC20", + values: [BigNumberish, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setGasPrice", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "setGasZetaPool", + values: [BigNumberish, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setWZETAContractAddress", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "uniswapv2FactoryAddress", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "uniswapv2PairFor", + values: [AddressLike, AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "uniswapv2Router02Address", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "wZetaContractAddress", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "zetaConnectorZEVMAddress", + values?: undefined + ): string; + + decodeFunctionResult( + functionFragment: "FUNGIBLE_MODULE_ADDRESS", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "depositAndCall", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "gasCoinZRC20ByChainId", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "gasPriceByChainId", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "gasZetaPoolByChainId", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setConnectorZEVMAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setGasCoinZRC20", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setGasPrice", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setGasZetaPool", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setWZETAContractAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapv2FactoryAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapv2PairFor", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapv2Router02Address", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "wZetaContractAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "zetaConnectorZEVMAddress", + data: BytesLike + ): Result; +} + +export namespace SetConnectorZEVMEvent { + export type InputTuple = [arg0: AddressLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace SetGasCoinEvent { + export type InputTuple = [arg0: BigNumberish, arg1: AddressLike]; + export type OutputTuple = [arg0: bigint, arg1: string]; + export interface OutputObject { + arg0: bigint; + arg1: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace SetGasPriceEvent { + export type InputTuple = [arg0: BigNumberish, arg1: BigNumberish]; + export type OutputTuple = [arg0: bigint, arg1: bigint]; + export interface OutputObject { + arg0: bigint; + arg1: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace SetGasZetaPoolEvent { + export type InputTuple = [arg0: BigNumberish, arg1: AddressLike]; + export type OutputTuple = [arg0: bigint, arg1: string]; + export interface OutputObject { + arg0: bigint; + arg1: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace SetWZetaEvent { + export type InputTuple = [arg0: AddressLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace SystemContractDeployedEvent { + export type InputTuple = []; + export type OutputTuple = []; + export interface OutputObject {} + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface SystemContract extends BaseContract { + connect(runner?: ContractRunner | null): SystemContract; + waitForDeployment(): Promise; + + interface: SystemContractInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + FUNGIBLE_MODULE_ADDRESS: TypedContractMethod<[], [string], "view">; + + depositAndCall: TypedContractMethod< + [ + context: ZContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + target: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + + gasCoinZRC20ByChainId: TypedContractMethod< + [arg0: BigNumberish], + [string], + "view" + >; + + gasPriceByChainId: TypedContractMethod< + [arg0: BigNumberish], + [bigint], + "view" + >; + + gasZetaPoolByChainId: TypedContractMethod< + [arg0: BigNumberish], + [string], + "view" + >; + + setConnectorZEVMAddress: TypedContractMethod< + [addr: AddressLike], + [void], + "nonpayable" + >; + + setGasCoinZRC20: TypedContractMethod< + [chainID: BigNumberish, zrc20: AddressLike], + [void], + "nonpayable" + >; + + setGasPrice: TypedContractMethod< + [chainID: BigNumberish, price: BigNumberish], + [void], + "nonpayable" + >; + + setGasZetaPool: TypedContractMethod< + [chainID: BigNumberish, erc20: AddressLike], + [void], + "nonpayable" + >; + + setWZETAContractAddress: TypedContractMethod< + [addr: AddressLike], + [void], + "nonpayable" + >; + + uniswapv2FactoryAddress: TypedContractMethod<[], [string], "view">; + + uniswapv2PairFor: TypedContractMethod< + [factory: AddressLike, tokenA: AddressLike, tokenB: AddressLike], + [string], + "view" + >; + + uniswapv2Router02Address: TypedContractMethod<[], [string], "view">; + + wZetaContractAddress: TypedContractMethod<[], [string], "view">; + + zetaConnectorZEVMAddress: TypedContractMethod<[], [string], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "FUNGIBLE_MODULE_ADDRESS" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "depositAndCall" + ): TypedContractMethod< + [ + context: ZContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + target: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "gasCoinZRC20ByChainId" + ): TypedContractMethod<[arg0: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "gasPriceByChainId" + ): TypedContractMethod<[arg0: BigNumberish], [bigint], "view">; + getFunction( + nameOrSignature: "gasZetaPoolByChainId" + ): TypedContractMethod<[arg0: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "setConnectorZEVMAddress" + ): TypedContractMethod<[addr: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "setGasCoinZRC20" + ): TypedContractMethod< + [chainID: BigNumberish, zrc20: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setGasPrice" + ): TypedContractMethod< + [chainID: BigNumberish, price: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setGasZetaPool" + ): TypedContractMethod< + [chainID: BigNumberish, erc20: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setWZETAContractAddress" + ): TypedContractMethod<[addr: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "uniswapv2FactoryAddress" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "uniswapv2PairFor" + ): TypedContractMethod< + [factory: AddressLike, tokenA: AddressLike, tokenB: AddressLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "uniswapv2Router02Address" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "wZetaContractAddress" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "zetaConnectorZEVMAddress" + ): TypedContractMethod<[], [string], "view">; + + getEvent( + key: "SetConnectorZEVM" + ): TypedContractEvent< + SetConnectorZEVMEvent.InputTuple, + SetConnectorZEVMEvent.OutputTuple, + SetConnectorZEVMEvent.OutputObject + >; + getEvent( + key: "SetGasCoin" + ): TypedContractEvent< + SetGasCoinEvent.InputTuple, + SetGasCoinEvent.OutputTuple, + SetGasCoinEvent.OutputObject + >; + getEvent( + key: "SetGasPrice" + ): TypedContractEvent< + SetGasPriceEvent.InputTuple, + SetGasPriceEvent.OutputTuple, + SetGasPriceEvent.OutputObject + >; + getEvent( + key: "SetGasZetaPool" + ): TypedContractEvent< + SetGasZetaPoolEvent.InputTuple, + SetGasZetaPoolEvent.OutputTuple, + SetGasZetaPoolEvent.OutputObject + >; + getEvent( + key: "SetWZeta" + ): TypedContractEvent< + SetWZetaEvent.InputTuple, + SetWZetaEvent.OutputTuple, + SetWZetaEvent.OutputObject + >; + getEvent( + key: "SystemContractDeployed" + ): TypedContractEvent< + SystemContractDeployedEvent.InputTuple, + SystemContractDeployedEvent.OutputTuple, + SystemContractDeployedEvent.OutputObject + >; + + filters: { + "SetConnectorZEVM(address)": TypedContractEvent< + SetConnectorZEVMEvent.InputTuple, + SetConnectorZEVMEvent.OutputTuple, + SetConnectorZEVMEvent.OutputObject + >; + SetConnectorZEVM: TypedContractEvent< + SetConnectorZEVMEvent.InputTuple, + SetConnectorZEVMEvent.OutputTuple, + SetConnectorZEVMEvent.OutputObject + >; + + "SetGasCoin(uint256,address)": TypedContractEvent< + SetGasCoinEvent.InputTuple, + SetGasCoinEvent.OutputTuple, + SetGasCoinEvent.OutputObject + >; + SetGasCoin: TypedContractEvent< + SetGasCoinEvent.InputTuple, + SetGasCoinEvent.OutputTuple, + SetGasCoinEvent.OutputObject + >; + + "SetGasPrice(uint256,uint256)": TypedContractEvent< + SetGasPriceEvent.InputTuple, + SetGasPriceEvent.OutputTuple, + SetGasPriceEvent.OutputObject + >; + SetGasPrice: TypedContractEvent< + SetGasPriceEvent.InputTuple, + SetGasPriceEvent.OutputTuple, + SetGasPriceEvent.OutputObject + >; + + "SetGasZetaPool(uint256,address)": TypedContractEvent< + SetGasZetaPoolEvent.InputTuple, + SetGasZetaPoolEvent.OutputTuple, + SetGasZetaPoolEvent.OutputObject + >; + SetGasZetaPool: TypedContractEvent< + SetGasZetaPoolEvent.InputTuple, + SetGasZetaPoolEvent.OutputTuple, + SetGasZetaPoolEvent.OutputObject + >; + + "SetWZeta(address)": TypedContractEvent< + SetWZetaEvent.InputTuple, + SetWZetaEvent.OutputTuple, + SetWZetaEvent.OutputObject + >; + SetWZeta: TypedContractEvent< + SetWZetaEvent.InputTuple, + SetWZetaEvent.OutputTuple, + SetWZetaEvent.OutputObject + >; + + "SystemContractDeployed()": TypedContractEvent< + SystemContractDeployedEvent.InputTuple, + SystemContractDeployedEvent.OutputTuple, + SystemContractDeployedEvent.OutputObject + >; + SystemContractDeployed: TypedContractEvent< + SystemContractDeployedEvent.InputTuple, + SystemContractDeployedEvent.OutputTuple, + SystemContractDeployedEvent.OutputObject + >; + }; +} diff --git a/typechain-types/contracts/SystemContract.sol/SystemContractErrors.ts b/typechain-types/contracts/SystemContract.sol/SystemContractErrors.ts new file mode 100644 index 00000000..bae50c05 --- /dev/null +++ b/typechain-types/contracts/SystemContract.sol/SystemContractErrors.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../../common"; + +export interface SystemContractErrorsInterface extends Interface {} + +export interface SystemContractErrors extends BaseContract { + connect(runner?: ContractRunner | null): SystemContractErrors; + waitForDeployment(): Promise; + + interface: SystemContractErrorsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/typechain-types/contracts/SystemContract.sol/index.ts b/typechain-types/contracts/SystemContract.sol/index.ts new file mode 100644 index 00000000..d5591cc5 --- /dev/null +++ b/typechain-types/contracts/SystemContract.sol/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { SystemContract } from "./SystemContract"; +export type { SystemContractErrors } from "./SystemContractErrors"; diff --git a/typechain-types/contracts/TestZRC20.ts b/typechain-types/contracts/TestZRC20.ts new file mode 100644 index 00000000..c9bf8174 --- /dev/null +++ b/typechain-types/contracts/TestZRC20.ts @@ -0,0 +1,360 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../common"; + +export interface TestZRC20Interface extends Interface { + getFunction( + nameOrSignature: + | "allowance" + | "approve" + | "balanceOf" + | "bytesToAddress" + | "decimals" + | "deposit" + | "name" + | "symbol" + | "totalSupply" + | "transfer" + | "transferFrom" + | "withdraw" + | "withdrawGasFee" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; + + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "bytesToAddress", + values: [BytesLike, BigNumberish, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData( + functionFragment: "deposit", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdraw", + values: [BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdrawGasFee", + values?: undefined + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "bytesToAddress", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "withdrawGasFee", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface TestZRC20 extends BaseContract { + connect(runner?: ContractRunner | null): TestZRC20; + waitForDeployment(): Promise; + + interface: TestZRC20Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + bytesToAddress: TypedContractMethod< + [data: BytesLike, offset: BigNumberish, size: BigNumberish], + [string], + "view" + >; + + decimals: TypedContractMethod<[], [bigint], "view">; + + deposit: TypedContractMethod< + [to: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + name: TypedContractMethod<[], [string], "view">; + + symbol: TypedContractMethod<[], [string], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + withdraw: TypedContractMethod< + [to: BytesLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + withdrawGasFee: TypedContractMethod<[], [[string, bigint]], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "bytesToAddress" + ): TypedContractMethod< + [data: BytesLike, offset: BigNumberish, size: BigNumberish], + [string], + "view" + >; + getFunction( + nameOrSignature: "decimals" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "deposit" + ): TypedContractMethod< + [to: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdraw" + ): TypedContractMethod< + [to: BytesLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawGasFee" + ): TypedContractMethod<[], [[string, bigint]], "view">; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/typechain-types/contracts/UniversalContract.sol/UniversalContract.ts b/typechain-types/contracts/UniversalContract.sol/UniversalContract.ts new file mode 100644 index 00000000..0e05b1e1 --- /dev/null +++ b/typechain-types/contracts/UniversalContract.sol/UniversalContract.ts @@ -0,0 +1,154 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../common"; + +export type ZContextStruct = { + origin: BytesLike; + sender: AddressLike; + chainID: BigNumberish; +}; + +export type ZContextStructOutput = [ + origin: string, + sender: string, + chainID: bigint +] & { origin: string; sender: string; chainID: bigint }; + +export type RevertContextStruct = { + asset: AddressLike; + amount: BigNumberish; + revertMessage: BytesLike; +}; + +export type RevertContextStructOutput = [ + asset: string, + amount: bigint, + revertMessage: string +] & { asset: string; amount: bigint; revertMessage: string }; + +export interface UniversalContractInterface extends Interface { + getFunction( + nameOrSignature: "onCrossChainCall" | "onRevert" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "onCrossChainCall", + values: [ZContextStruct, AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "onRevert", + values: [RevertContextStruct] + ): string; + + decodeFunctionResult( + functionFragment: "onCrossChainCall", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "onRevert", data: BytesLike): Result; +} + +export interface UniversalContract extends BaseContract { + connect(runner?: ContractRunner | null): UniversalContract; + waitForDeployment(): Promise; + + interface: UniversalContractInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + onCrossChainCall: TypedContractMethod< + [ + context: ZContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + message: BytesLike + ], + [void], + "nonpayable" + >; + + onRevert: TypedContractMethod< + [revertContext: RevertContextStruct], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "onCrossChainCall" + ): TypedContractMethod< + [ + context: ZContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + message: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "onRevert" + ): TypedContractMethod< + [revertContext: RevertContextStruct], + [void], + "nonpayable" + >; + + filters: {}; +} diff --git a/typechain-types/contracts/UniversalContract.sol/ZContract.ts b/typechain-types/contracts/UniversalContract.sol/ZContract.ts new file mode 100644 index 00000000..1bb30f01 --- /dev/null +++ b/typechain-types/contracts/UniversalContract.sol/ZContract.ts @@ -0,0 +1,122 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../common"; + +export type ZContextStruct = { + origin: BytesLike; + sender: AddressLike; + chainID: BigNumberish; +}; + +export type ZContextStructOutput = [ + origin: string, + sender: string, + chainID: bigint +] & { origin: string; sender: string; chainID: bigint }; + +export interface ZContractInterface extends Interface { + getFunction(nameOrSignature: "onCrossChainCall"): FunctionFragment; + + encodeFunctionData( + functionFragment: "onCrossChainCall", + values: [ZContextStruct, AddressLike, BigNumberish, BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "onCrossChainCall", + data: BytesLike + ): Result; +} + +export interface ZContract extends BaseContract { + connect(runner?: ContractRunner | null): ZContract; + waitForDeployment(): Promise; + + interface: ZContractInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + onCrossChainCall: TypedContractMethod< + [ + context: ZContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + message: BytesLike + ], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "onCrossChainCall" + ): TypedContractMethod< + [ + context: ZContextStruct, + zrc20: AddressLike, + amount: BigNumberish, + message: BytesLike + ], + [void], + "nonpayable" + >; + + filters: {}; +} diff --git a/typechain-types/contracts/UniversalContract.sol/index.ts b/typechain-types/contracts/UniversalContract.sol/index.ts new file mode 100644 index 00000000..bf8e5a02 --- /dev/null +++ b/typechain-types/contracts/UniversalContract.sol/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { UniversalContract } from "./UniversalContract"; +export type { ZContract } from "./ZContract"; diff --git a/typechain-types/contracts/index.ts b/typechain-types/contracts/index.ts new file mode 100644 index 00000000..cf313b1d --- /dev/null +++ b/typechain-types/contracts/index.ts @@ -0,0 +1,21 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as ethZetaMockSol from "./EthZetaMock.sol"; +export type { ethZetaMockSol }; +import type * as revertSol from "./Revert.sol"; +export type { revertSol }; +import type * as swapHelpersSol from "./SwapHelpers.sol"; +export type { swapHelpersSol }; +import type * as systemContractSol from "./SystemContract.sol"; +export type { systemContractSol }; +import type * as universalContractSol from "./UniversalContract.sol"; +export type { universalContractSol }; +import type * as shared from "./shared"; +export type { shared }; +import type * as testing from "./testing"; +export type { testing }; +export type { BytesHelperLib } from "./BytesHelperLib"; +export type { OnlySystem } from "./OnlySystem"; +export type { SwapHelperLib } from "./SwapHelperLib"; +export type { TestZRC20 } from "./TestZRC20"; diff --git a/typechain-types/contracts/shared/MockZRC20.ts b/typechain-types/contracts/shared/MockZRC20.ts new file mode 100644 index 00000000..230ae500 --- /dev/null +++ b/typechain-types/contracts/shared/MockZRC20.ts @@ -0,0 +1,459 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../common"; + +export interface MockZRC20Interface extends Interface { + getFunction( + nameOrSignature: + | "allowance" + | "approve" + | "balanceOf" + | "bytesToAddress" + | "decimals" + | "deposit" + | "gasFee" + | "gasFeeAddress" + | "name" + | "setGasFee" + | "setGasFeeAddress" + | "symbol" + | "totalSupply" + | "transfer" + | "transferFrom" + | "withdraw" + | "withdrawGasFee" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: "Approval" | "Transfer" | "Withdrawal" + ): EventFragment; + + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "bytesToAddress", + values: [BytesLike, BigNumberish, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData( + functionFragment: "deposit", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "gasFee", values?: undefined): string; + encodeFunctionData( + functionFragment: "gasFeeAddress", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData( + functionFragment: "setGasFee", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "setGasFeeAddress", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdraw", + values: [BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdrawGasFee", + values?: undefined + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "bytesToAddress", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "gasFee", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "gasFeeAddress", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "setGasFee", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "setGasFeeAddress", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "withdrawGasFee", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawalEvent { + export type InputTuple = [ + from: AddressLike, + to: BytesLike, + value: BigNumberish, + gasfee: BigNumberish, + protocolFlatFee: BigNumberish + ]; + export type OutputTuple = [ + from: string, + to: string, + value: bigint, + gasfee: bigint, + protocolFlatFee: bigint + ]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + gasfee: bigint; + protocolFlatFee: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface MockZRC20 extends BaseContract { + connect(runner?: ContractRunner | null): MockZRC20; + waitForDeployment(): Promise; + + interface: MockZRC20Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + bytesToAddress: TypedContractMethod< + [data: BytesLike, offset: BigNumberish, size: BigNumberish], + [string], + "view" + >; + + decimals: TypedContractMethod<[], [bigint], "view">; + + deposit: TypedContractMethod< + [to: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + gasFee: TypedContractMethod<[], [bigint], "view">; + + gasFeeAddress: TypedContractMethod<[], [string], "view">; + + name: TypedContractMethod<[], [string], "view">; + + setGasFee: TypedContractMethod<[gasFee_: BigNumberish], [void], "nonpayable">; + + setGasFeeAddress: TypedContractMethod< + [gasFeeAddress_: AddressLike], + [void], + "nonpayable" + >; + + symbol: TypedContractMethod<[], [string], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + withdraw: TypedContractMethod< + [to: BytesLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + withdrawGasFee: TypedContractMethod<[], [[string, bigint]], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "bytesToAddress" + ): TypedContractMethod< + [data: BytesLike, offset: BigNumberish, size: BigNumberish], + [string], + "view" + >; + getFunction( + nameOrSignature: "decimals" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "deposit" + ): TypedContractMethod< + [to: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "gasFee" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "gasFeeAddress" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "setGasFee" + ): TypedContractMethod<[gasFee_: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "setGasFeeAddress" + ): TypedContractMethod<[gasFeeAddress_: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdraw" + ): TypedContractMethod< + [to: BytesLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawGasFee" + ): TypedContractMethod<[], [[string, bigint]], "view">; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + getEvent( + key: "Withdrawal" + ): TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + "Withdrawal(address,bytes,uint256,uint256,uint256)": TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + Withdrawal: TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + }; +} diff --git a/typechain-types/contracts/shared/TestUniswapRouter.ts b/typechain-types/contracts/shared/TestUniswapRouter.ts new file mode 100644 index 00000000..5862f0c1 --- /dev/null +++ b/typechain-types/contracts/shared/TestUniswapRouter.ts @@ -0,0 +1,497 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../common"; + +export interface TestUniswapRouterInterface extends Interface { + getFunction( + nameOrSignature: + | "WETH" + | "addLiquidity" + | "addLiquidityETH" + | "factory" + | "getAmountIn" + | "getAmountOut" + | "getAmountsIn" + | "getAmountsOut" + | "quote" + | "removeLiquidity" + | "removeLiquidityETH" + | "swapExactTokensForTokens" + | "swapTokensForExactTokens" + ): FunctionFragment; + + encodeFunctionData(functionFragment: "WETH", values?: undefined): string; + encodeFunctionData( + functionFragment: "addLiquidity", + values: [ + AddressLike, + AddressLike, + BigNumberish, + BigNumberish, + BigNumberish, + BigNumberish, + AddressLike, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "addLiquidityETH", + values: [ + AddressLike, + BigNumberish, + BigNumberish, + BigNumberish, + AddressLike, + BigNumberish + ] + ): string; + encodeFunctionData(functionFragment: "factory", values?: undefined): string; + encodeFunctionData( + functionFragment: "getAmountIn", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getAmountOut", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getAmountsIn", + values: [BigNumberish, AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "getAmountsOut", + values: [BigNumberish, AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "quote", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidity", + values: [ + AddressLike, + AddressLike, + BigNumberish, + BigNumberish, + BigNumberish, + AddressLike, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidityETH", + values: [ + AddressLike, + BigNumberish, + BigNumberish, + BigNumberish, + AddressLike, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "swapExactTokensForTokens", + values: [ + BigNumberish, + BigNumberish, + AddressLike[], + AddressLike, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "swapTokensForExactTokens", + values: [ + BigNumberish, + BigNumberish, + AddressLike[], + AddressLike, + BigNumberish + ] + ): string; + + decodeFunctionResult(functionFragment: "WETH", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "addLiquidity", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "addLiquidityETH", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getAmountIn", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getAmountOut", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getAmountsIn", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getAmountsOut", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "quote", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "removeLiquidity", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "removeLiquidityETH", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapExactTokensForTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapTokensForExactTokens", + data: BytesLike + ): Result; +} + +export interface TestUniswapRouter extends BaseContract { + connect(runner?: ContractRunner | null): TestUniswapRouter; + waitForDeployment(): Promise; + + interface: TestUniswapRouterInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + WETH: TypedContractMethod<[], [string], "view">; + + addLiquidity: TypedContractMethod< + [ + tokenA: AddressLike, + tokenB: AddressLike, + amountADesired: BigNumberish, + amountBDesired: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [ + [bigint, bigint, bigint] & { + amountA: bigint; + amountB: bigint; + liquidity: bigint; + } + ], + "nonpayable" + >; + + addLiquidityETH: TypedContractMethod< + [ + token: AddressLike, + amountTokenDesired: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [ + [bigint, bigint, bigint] & { + amountToken: bigint; + amountETH: bigint; + liquidity: bigint; + } + ], + "payable" + >; + + factory: TypedContractMethod<[], [string], "view">; + + getAmountIn: TypedContractMethod< + [ + amountOut: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish + ], + [bigint], + "view" + >; + + getAmountOut: TypedContractMethod< + [amountIn: BigNumberish, reserveIn: BigNumberish, reserveOut: BigNumberish], + [bigint], + "view" + >; + + getAmountsIn: TypedContractMethod< + [amountOut: BigNumberish, path: AddressLike[]], + [bigint[]], + "view" + >; + + getAmountsOut: TypedContractMethod< + [amountIn: BigNumberish, path: AddressLike[]], + [bigint[]], + "view" + >; + + quote: TypedContractMethod< + [amountA: BigNumberish, reserveA: BigNumberish, reserveB: BigNumberish], + [bigint], + "view" + >; + + removeLiquidity: TypedContractMethod< + [ + tokenA: AddressLike, + tokenB: AddressLike, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [[bigint, bigint] & { amountA: bigint; amountB: bigint }], + "nonpayable" + >; + + removeLiquidityETH: TypedContractMethod< + [ + token: AddressLike, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [[bigint, bigint] & { amountToken: bigint; amountETH: bigint }], + "nonpayable" + >; + + swapExactTokensForTokens: TypedContractMethod< + [ + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "nonpayable" + >; + + swapTokensForExactTokens: TypedContractMethod< + [ + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "WETH" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "addLiquidity" + ): TypedContractMethod< + [ + tokenA: AddressLike, + tokenB: AddressLike, + amountADesired: BigNumberish, + amountBDesired: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [ + [bigint, bigint, bigint] & { + amountA: bigint; + amountB: bigint; + liquidity: bigint; + } + ], + "nonpayable" + >; + getFunction( + nameOrSignature: "addLiquidityETH" + ): TypedContractMethod< + [ + token: AddressLike, + amountTokenDesired: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [ + [bigint, bigint, bigint] & { + amountToken: bigint; + amountETH: bigint; + liquidity: bigint; + } + ], + "payable" + >; + getFunction( + nameOrSignature: "factory" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "getAmountIn" + ): TypedContractMethod< + [ + amountOut: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish + ], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "getAmountOut" + ): TypedContractMethod< + [amountIn: BigNumberish, reserveIn: BigNumberish, reserveOut: BigNumberish], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "getAmountsIn" + ): TypedContractMethod< + [amountOut: BigNumberish, path: AddressLike[]], + [bigint[]], + "view" + >; + getFunction( + nameOrSignature: "getAmountsOut" + ): TypedContractMethod< + [amountIn: BigNumberish, path: AddressLike[]], + [bigint[]], + "view" + >; + getFunction( + nameOrSignature: "quote" + ): TypedContractMethod< + [amountA: BigNumberish, reserveA: BigNumberish, reserveB: BigNumberish], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "removeLiquidity" + ): TypedContractMethod< + [ + tokenA: AddressLike, + tokenB: AddressLike, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [[bigint, bigint] & { amountA: bigint; amountB: bigint }], + "nonpayable" + >; + getFunction( + nameOrSignature: "removeLiquidityETH" + ): TypedContractMethod< + [ + token: AddressLike, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [[bigint, bigint] & { amountToken: bigint; amountETH: bigint }], + "nonpayable" + >; + getFunction( + nameOrSignature: "swapExactTokensForTokens" + ): TypedContractMethod< + [ + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "nonpayable" + >; + getFunction( + nameOrSignature: "swapTokensForExactTokens" + ): TypedContractMethod< + [ + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: AddressLike[], + to: AddressLike, + deadline: BigNumberish + ], + [bigint[]], + "nonpayable" + >; + + filters: {}; +} diff --git a/typechain-types/contracts/shared/WZETA.ts b/typechain-types/contracts/shared/WZETA.ts new file mode 100644 index 00000000..c250803a --- /dev/null +++ b/typechain-types/contracts/shared/WZETA.ts @@ -0,0 +1,369 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../common"; + +export interface WZETAInterface extends Interface { + getFunction( + nameOrSignature: + | "allowance" + | "approve" + | "balanceOf" + | "decimals" + | "deposit" + | "name" + | "symbol" + | "totalSupply" + | "transfer" + | "transferFrom" + | "withdraw" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: "Approval" | "Deposit" | "Transfer" | "Withdrawal" + ): EventFragment; + + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData(functionFragment: "deposit", values?: undefined): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdraw", + values: [BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + src: AddressLike, + guy: AddressLike, + wad: BigNumberish + ]; + export type OutputTuple = [src: string, guy: string, wad: bigint]; + export interface OutputObject { + src: string; + guy: string; + wad: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace DepositEvent { + export type InputTuple = [dst: AddressLike, wad: BigNumberish]; + export type OutputTuple = [dst: string, wad: bigint]; + export interface OutputObject { + dst: string; + wad: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + src: AddressLike, + dst: AddressLike, + wad: BigNumberish + ]; + export type OutputTuple = [src: string, dst: string, wad: bigint]; + export interface OutputObject { + src: string; + dst: string; + wad: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawalEvent { + export type InputTuple = [src: AddressLike, wad: BigNumberish]; + export type OutputTuple = [src: string, wad: bigint]; + export interface OutputObject { + src: string; + wad: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface WZETA extends BaseContract { + connect(runner?: ContractRunner | null): WZETA; + waitForDeployment(): Promise; + + interface: WZETAInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allowance: TypedContractMethod< + [arg0: AddressLike, arg1: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [guy: AddressLike, wad: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[arg0: AddressLike], [bigint], "view">; + + decimals: TypedContractMethod<[], [bigint], "view">; + + deposit: TypedContractMethod<[], [void], "payable">; + + name: TypedContractMethod<[], [string], "view">; + + symbol: TypedContractMethod<[], [string], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [dst: AddressLike, wad: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [src: AddressLike, dst: AddressLike, wad: BigNumberish], + [boolean], + "nonpayable" + >; + + withdraw: TypedContractMethod<[wad: BigNumberish], [void], "nonpayable">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [arg0: AddressLike, arg1: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [guy: AddressLike, wad: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[arg0: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "decimals" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "deposit" + ): TypedContractMethod<[], [void], "payable">; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [dst: AddressLike, wad: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [src: AddressLike, dst: AddressLike, wad: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdraw" + ): TypedContractMethod<[wad: BigNumberish], [void], "nonpayable">; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Deposit" + ): TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + getEvent( + key: "Withdrawal" + ): TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Deposit(address,uint256)": TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + Deposit: TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + "Withdrawal(address,uint256)": TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + Withdrawal: TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + }; +} diff --git a/typechain-types/contracts/shared/index.ts b/typechain-types/contracts/shared/index.ts new file mode 100644 index 00000000..2a7ceeeb --- /dev/null +++ b/typechain-types/contracts/shared/index.ts @@ -0,0 +1,10 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as interfaces from "./interfaces"; +export type { interfaces }; +import type * as libraries from "./libraries"; +export type { libraries }; +export type { MockZRC20 } from "./MockZRC20"; +export type { TestUniswapRouter } from "./TestUniswapRouter"; +export type { WZETA } from "./WZETA"; diff --git a/typechain-types/contracts/shared/interfaces/IERC20.ts b/typechain-types/contracts/shared/interfaces/IERC20.ts new file mode 100644 index 00000000..c9ba63d5 --- /dev/null +++ b/typechain-types/contracts/shared/interfaces/IERC20.ts @@ -0,0 +1,286 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../common"; + +export interface IERC20Interface extends Interface { + getFunction( + nameOrSignature: + | "allowance" + | "approve" + | "balanceOf" + | "decimals" + | "name" + | "symbol" + | "totalSupply" + | "transfer" + | "transferFrom" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; + + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IERC20 extends BaseContract { + connect(runner?: ContractRunner | null): IERC20; + waitForDeployment(): Promise; + + interface: IERC20Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[owner: AddressLike], [bigint], "view">; + + decimals: TypedContractMethod<[], [bigint], "view">; + + name: TypedContractMethod<[], [string], "view">; + + symbol: TypedContractMethod<[], [string], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[owner: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "decimals" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/typechain-types/contracts/shared/interfaces/IWETH.ts b/typechain-types/contracts/shared/interfaces/IWETH.ts new file mode 100644 index 00000000..80a77564 --- /dev/null +++ b/typechain-types/contracts/shared/interfaces/IWETH.ts @@ -0,0 +1,116 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../../common"; + +export interface IWETHInterface extends Interface { + getFunction( + nameOrSignature: "deposit" | "transfer" | "withdraw" + ): FunctionFragment; + + encodeFunctionData(functionFragment: "deposit", values?: undefined): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdraw", + values: [BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; +} + +export interface IWETH extends BaseContract { + connect(runner?: ContractRunner | null): IWETH; + waitForDeployment(): Promise; + + interface: IWETHInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + deposit: TypedContractMethod<[], [void], "payable">; + + transfer: TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + withdraw: TypedContractMethod<[arg0: BigNumberish], [void], "nonpayable">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "deposit" + ): TypedContractMethod<[], [void], "payable">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdraw" + ): TypedContractMethod<[arg0: BigNumberish], [void], "nonpayable">; + + filters: {}; +} diff --git a/typechain-types/contracts/shared/interfaces/IZRC20.sol/IZRC20.ts b/typechain-types/contracts/shared/interfaces/IZRC20.sol/IZRC20.ts new file mode 100644 index 00000000..4ed399ae --- /dev/null +++ b/typechain-types/contracts/shared/interfaces/IZRC20.sol/IZRC20.ts @@ -0,0 +1,301 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../../../common"; + +export interface IZRC20Interface extends Interface { + getFunction( + nameOrSignature: + | "GAS_LIMIT" + | "PROTOCOL_FLAT_FEE" + | "allowance" + | "approve" + | "balanceOf" + | "burn" + | "deposit" + | "setName" + | "setSymbol" + | "totalSupply" + | "transfer" + | "transferFrom" + | "withdraw" + | "withdrawGasFee" + | "withdrawGasFeeWithGasLimit" + ): FunctionFragment; + + encodeFunctionData(functionFragment: "GAS_LIMIT", values?: undefined): string; + encodeFunctionData( + functionFragment: "PROTOCOL_FLAT_FEE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "burn", values: [BigNumberish]): string; + encodeFunctionData( + functionFragment: "deposit", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "setName", values: [string]): string; + encodeFunctionData(functionFragment: "setSymbol", values: [string]): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdraw", + values: [BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdrawGasFee", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "withdrawGasFeeWithGasLimit", + values: [BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "GAS_LIMIT", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "PROTOCOL_FLAT_FEE", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "setName", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "setSymbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "withdrawGasFee", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdrawGasFeeWithGasLimit", + data: BytesLike + ): Result; +} + +export interface IZRC20 extends BaseContract { + connect(runner?: ContractRunner | null): IZRC20; + waitForDeployment(): Promise; + + interface: IZRC20Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + GAS_LIMIT: TypedContractMethod<[], [bigint], "view">; + + PROTOCOL_FLAT_FEE: TypedContractMethod<[], [bigint], "view">; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + burn: TypedContractMethod<[amount: BigNumberish], [boolean], "nonpayable">; + + deposit: TypedContractMethod< + [to: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + setName: TypedContractMethod<[newName: string], [void], "nonpayable">; + + setSymbol: TypedContractMethod<[newSymbol: string], [void], "nonpayable">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + withdraw: TypedContractMethod< + [to: BytesLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + withdrawGasFee: TypedContractMethod<[], [[string, bigint]], "view">; + + withdrawGasFeeWithGasLimit: TypedContractMethod< + [gasLimit: BigNumberish], + [[string, bigint]], + "view" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "GAS_LIMIT" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "PROTOCOL_FLAT_FEE" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "burn" + ): TypedContractMethod<[amount: BigNumberish], [boolean], "nonpayable">; + getFunction( + nameOrSignature: "deposit" + ): TypedContractMethod< + [to: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "setName" + ): TypedContractMethod<[newName: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "setSymbol" + ): TypedContractMethod<[newSymbol: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdraw" + ): TypedContractMethod< + [to: BytesLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawGasFee" + ): TypedContractMethod<[], [[string, bigint]], "view">; + getFunction( + nameOrSignature: "withdrawGasFeeWithGasLimit" + ): TypedContractMethod<[gasLimit: BigNumberish], [[string, bigint]], "view">; + + filters: {}; +} diff --git a/typechain-types/contracts/shared/interfaces/IZRC20.sol/IZRC20Metadata.ts b/typechain-types/contracts/shared/interfaces/IZRC20.sol/IZRC20Metadata.ts new file mode 100644 index 00000000..34ed6a65 --- /dev/null +++ b/typechain-types/contracts/shared/interfaces/IZRC20.sol/IZRC20Metadata.ts @@ -0,0 +1,325 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../../../common"; + +export interface IZRC20MetadataInterface extends Interface { + getFunction( + nameOrSignature: + | "GAS_LIMIT" + | "PROTOCOL_FLAT_FEE" + | "allowance" + | "approve" + | "balanceOf" + | "burn" + | "decimals" + | "deposit" + | "name" + | "setName" + | "setSymbol" + | "symbol" + | "totalSupply" + | "transfer" + | "transferFrom" + | "withdraw" + | "withdrawGasFee" + | "withdrawGasFeeWithGasLimit" + ): FunctionFragment; + + encodeFunctionData(functionFragment: "GAS_LIMIT", values?: undefined): string; + encodeFunctionData( + functionFragment: "PROTOCOL_FLAT_FEE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "burn", values: [BigNumberish]): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData( + functionFragment: "deposit", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "setName", values: [string]): string; + encodeFunctionData(functionFragment: "setSymbol", values: [string]): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdraw", + values: [BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdrawGasFee", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "withdrawGasFeeWithGasLimit", + values: [BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "GAS_LIMIT", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "PROTOCOL_FLAT_FEE", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "setName", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "setSymbol", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "withdrawGasFee", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdrawGasFeeWithGasLimit", + data: BytesLike + ): Result; +} + +export interface IZRC20Metadata extends BaseContract { + connect(runner?: ContractRunner | null): IZRC20Metadata; + waitForDeployment(): Promise; + + interface: IZRC20MetadataInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + GAS_LIMIT: TypedContractMethod<[], [bigint], "view">; + + PROTOCOL_FLAT_FEE: TypedContractMethod<[], [bigint], "view">; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + burn: TypedContractMethod<[amount: BigNumberish], [boolean], "nonpayable">; + + decimals: TypedContractMethod<[], [bigint], "view">; + + deposit: TypedContractMethod< + [to: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + name: TypedContractMethod<[], [string], "view">; + + setName: TypedContractMethod<[newName: string], [void], "nonpayable">; + + setSymbol: TypedContractMethod<[newSymbol: string], [void], "nonpayable">; + + symbol: TypedContractMethod<[], [string], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + withdraw: TypedContractMethod< + [to: BytesLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + withdrawGasFee: TypedContractMethod<[], [[string, bigint]], "view">; + + withdrawGasFeeWithGasLimit: TypedContractMethod< + [gasLimit: BigNumberish], + [[string, bigint]], + "view" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "GAS_LIMIT" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "PROTOCOL_FLAT_FEE" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "burn" + ): TypedContractMethod<[amount: BigNumberish], [boolean], "nonpayable">; + getFunction( + nameOrSignature: "decimals" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "deposit" + ): TypedContractMethod< + [to: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "setName" + ): TypedContractMethod<[newName: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "setSymbol" + ): TypedContractMethod<[newSymbol: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdraw" + ): TypedContractMethod< + [to: BytesLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawGasFee" + ): TypedContractMethod<[], [[string, bigint]], "view">; + getFunction( + nameOrSignature: "withdrawGasFeeWithGasLimit" + ): TypedContractMethod<[gasLimit: BigNumberish], [[string, bigint]], "view">; + + filters: {}; +} diff --git a/typechain-types/contracts/shared/interfaces/IZRC20.sol/ZRC20Events.ts b/typechain-types/contracts/shared/interfaces/IZRC20.sol/ZRC20Events.ts new file mode 100644 index 00000000..7bba7069 --- /dev/null +++ b/typechain-types/contracts/shared/interfaces/IZRC20.sol/ZRC20Events.ts @@ -0,0 +1,361 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, +} from "../../../../common"; + +export interface ZRC20EventsInterface extends Interface { + getEvent( + nameOrSignatureOrTopic: + | "Approval" + | "Deposit" + | "Transfer" + | "UpdatedGasLimit" + | "UpdatedGateway" + | "UpdatedProtocolFlatFee" + | "UpdatedSystemContract" + | "Withdrawal" + ): EventFragment; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace DepositEvent { + export type InputTuple = [ + from: BytesLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpdatedGasLimitEvent { + export type InputTuple = [gasLimit: BigNumberish]; + export type OutputTuple = [gasLimit: bigint]; + export interface OutputObject { + gasLimit: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpdatedGatewayEvent { + export type InputTuple = [gateway: AddressLike]; + export type OutputTuple = [gateway: string]; + export interface OutputObject { + gateway: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpdatedProtocolFlatFeeEvent { + export type InputTuple = [protocolFlatFee: BigNumberish]; + export type OutputTuple = [protocolFlatFee: bigint]; + export interface OutputObject { + protocolFlatFee: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpdatedSystemContractEvent { + export type InputTuple = [systemContract: AddressLike]; + export type OutputTuple = [systemContract: string]; + export interface OutputObject { + systemContract: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawalEvent { + export type InputTuple = [ + from: AddressLike, + to: BytesLike, + value: BigNumberish, + gasFee: BigNumberish, + protocolFlatFee: BigNumberish + ]; + export type OutputTuple = [ + from: string, + to: string, + value: bigint, + gasFee: bigint, + protocolFlatFee: bigint + ]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + gasFee: bigint; + protocolFlatFee: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ZRC20Events extends BaseContract { + connect(runner?: ContractRunner | null): ZRC20Events; + waitForDeployment(): Promise; + + interface: ZRC20EventsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Deposit" + ): TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + getEvent( + key: "UpdatedGasLimit" + ): TypedContractEvent< + UpdatedGasLimitEvent.InputTuple, + UpdatedGasLimitEvent.OutputTuple, + UpdatedGasLimitEvent.OutputObject + >; + getEvent( + key: "UpdatedGateway" + ): TypedContractEvent< + UpdatedGatewayEvent.InputTuple, + UpdatedGatewayEvent.OutputTuple, + UpdatedGatewayEvent.OutputObject + >; + getEvent( + key: "UpdatedProtocolFlatFee" + ): TypedContractEvent< + UpdatedProtocolFlatFeeEvent.InputTuple, + UpdatedProtocolFlatFeeEvent.OutputTuple, + UpdatedProtocolFlatFeeEvent.OutputObject + >; + getEvent( + key: "UpdatedSystemContract" + ): TypedContractEvent< + UpdatedSystemContractEvent.InputTuple, + UpdatedSystemContractEvent.OutputTuple, + UpdatedSystemContractEvent.OutputObject + >; + getEvent( + key: "Withdrawal" + ): TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Deposit(bytes,address,uint256)": TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + Deposit: TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + "UpdatedGasLimit(uint256)": TypedContractEvent< + UpdatedGasLimitEvent.InputTuple, + UpdatedGasLimitEvent.OutputTuple, + UpdatedGasLimitEvent.OutputObject + >; + UpdatedGasLimit: TypedContractEvent< + UpdatedGasLimitEvent.InputTuple, + UpdatedGasLimitEvent.OutputTuple, + UpdatedGasLimitEvent.OutputObject + >; + + "UpdatedGateway(address)": TypedContractEvent< + UpdatedGatewayEvent.InputTuple, + UpdatedGatewayEvent.OutputTuple, + UpdatedGatewayEvent.OutputObject + >; + UpdatedGateway: TypedContractEvent< + UpdatedGatewayEvent.InputTuple, + UpdatedGatewayEvent.OutputTuple, + UpdatedGatewayEvent.OutputObject + >; + + "UpdatedProtocolFlatFee(uint256)": TypedContractEvent< + UpdatedProtocolFlatFeeEvent.InputTuple, + UpdatedProtocolFlatFeeEvent.OutputTuple, + UpdatedProtocolFlatFeeEvent.OutputObject + >; + UpdatedProtocolFlatFee: TypedContractEvent< + UpdatedProtocolFlatFeeEvent.InputTuple, + UpdatedProtocolFlatFeeEvent.OutputTuple, + UpdatedProtocolFlatFeeEvent.OutputObject + >; + + "UpdatedSystemContract(address)": TypedContractEvent< + UpdatedSystemContractEvent.InputTuple, + UpdatedSystemContractEvent.OutputTuple, + UpdatedSystemContractEvent.OutputObject + >; + UpdatedSystemContract: TypedContractEvent< + UpdatedSystemContractEvent.InputTuple, + UpdatedSystemContractEvent.OutputTuple, + UpdatedSystemContractEvent.OutputObject + >; + + "Withdrawal(address,bytes,uint256,uint256,uint256)": TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + Withdrawal: TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + }; +} diff --git a/typechain-types/contracts/shared/interfaces/IZRC20.sol/index.ts b/typechain-types/contracts/shared/interfaces/IZRC20.sol/index.ts new file mode 100644 index 00000000..603ef6e3 --- /dev/null +++ b/typechain-types/contracts/shared/interfaces/IZRC20.sol/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IZRC20 } from "./IZRC20"; +export type { IZRC20Metadata } from "./IZRC20Metadata"; +export type { ZRC20Events } from "./ZRC20Events"; diff --git a/typechain-types/contracts/shared/interfaces/index.ts b/typechain-types/contracts/shared/interfaces/index.ts new file mode 100644 index 00000000..290ffe2f --- /dev/null +++ b/typechain-types/contracts/shared/interfaces/index.ts @@ -0,0 +1,7 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as izrc20Sol from "./IZRC20.sol"; +export type { izrc20Sol }; +export type { IERC20 } from "./IERC20"; +export type { IWETH } from "./IWETH"; diff --git a/typechain-types/contracts/shared/libraries/SafeMath.sol/Math.ts b/typechain-types/contracts/shared/libraries/SafeMath.sol/Math.ts new file mode 100644 index 00000000..cfc37039 --- /dev/null +++ b/typechain-types/contracts/shared/libraries/SafeMath.sol/Math.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../../../../common"; + +export interface MathInterface extends Interface {} + +export interface Math extends BaseContract { + connect(runner?: ContractRunner | null): Math; + waitForDeployment(): Promise; + + interface: MathInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/typechain-types/contracts/shared/libraries/SafeMath.sol/index.ts b/typechain-types/contracts/shared/libraries/SafeMath.sol/index.ts new file mode 100644 index 00000000..48a816e8 --- /dev/null +++ b/typechain-types/contracts/shared/libraries/SafeMath.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { Math } from "./Math"; diff --git a/typechain-types/contracts/shared/libraries/UniswapV2Library.ts b/typechain-types/contracts/shared/libraries/UniswapV2Library.ts new file mode 100644 index 00000000..14f2bdf5 --- /dev/null +++ b/typechain-types/contracts/shared/libraries/UniswapV2Library.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../../../common"; + +export interface UniswapV2LibraryInterface extends Interface {} + +export interface UniswapV2Library extends BaseContract { + connect(runner?: ContractRunner | null): UniswapV2Library; + waitForDeployment(): Promise; + + interface: UniswapV2LibraryInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/typechain-types/contracts/shared/libraries/index.ts b/typechain-types/contracts/shared/libraries/index.ts new file mode 100644 index 00000000..399c5bba --- /dev/null +++ b/typechain-types/contracts/shared/libraries/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as safeMathSol from "./SafeMath.sol"; +export type { safeMathSol }; +export type { UniswapV2Library } from "./UniswapV2Library"; diff --git a/typechain-types/contracts/testing/EVMSetup.t.sol/EVMSetup.ts b/typechain-types/contracts/testing/EVMSetup.t.sol/EVMSetup.ts new file mode 100644 index 00000000..edfba5bf --- /dev/null +++ b/typechain-types/contracts/testing/EVMSetup.t.sol/EVMSetup.ts @@ -0,0 +1,1111 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../common"; + +export declare namespace StdInvariant { + export type FuzzSelectorStruct = { + addr: AddressLike; + selectors: BytesLike[]; + }; + + export type FuzzSelectorStructOutput = [addr: string, selectors: string[]] & { + addr: string; + selectors: string[]; + }; + + export type FuzzArtifactSelectorStruct = { + artifact: string; + selectors: BytesLike[]; + }; + + export type FuzzArtifactSelectorStructOutput = [ + artifact: string, + selectors: string[] + ] & { artifact: string; selectors: string[] }; + + export type FuzzInterfaceStruct = { addr: AddressLike; artifacts: string[] }; + + export type FuzzInterfaceStructOutput = [ + addr: string, + artifacts: string[] + ] & { addr: string; artifacts: string[] }; +} + +export interface EVMSetupInterface extends Interface { + getFunction( + nameOrSignature: + | "IS_TEST" + | "chainIdETH" + | "custody" + | "deployer" + | "excludeArtifacts" + | "excludeContracts" + | "excludeSelectors" + | "excludeSenders" + | "failed" + | "nodeLogicMockAddr" + | "setupEVMChain" + | "systemContract" + | "targetArtifactSelectors" + | "targetArtifacts" + | "targetContracts" + | "targetInterfaces" + | "targetSelectors" + | "targetSenders" + | "tss" + | "uniswapV2Router" + | "wrapGatewayEVM" + | "wzeta" + | "zetaConnector" + | "zetaToken" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "log" + | "log_address" + | "log_array(uint256[])" + | "log_array(int256[])" + | "log_array(address[])" + | "log_bytes" + | "log_bytes32" + | "log_int" + | "log_named_address" + | "log_named_array(string,uint256[])" + | "log_named_array(string,int256[])" + | "log_named_array(string,address[])" + | "log_named_bytes" + | "log_named_bytes32" + | "log_named_decimal_int" + | "log_named_decimal_uint" + | "log_named_int" + | "log_named_string" + | "log_named_uint" + | "log_string" + | "log_uint" + | "logs" + ): EventFragment; + + encodeFunctionData(functionFragment: "IS_TEST", values?: undefined): string; + encodeFunctionData( + functionFragment: "chainIdETH", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "custody", + values: [BigNumberish] + ): string; + encodeFunctionData(functionFragment: "deployer", values?: undefined): string; + encodeFunctionData( + functionFragment: "excludeArtifacts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "excludeContracts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "excludeSelectors", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "excludeSenders", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "failed", values?: undefined): string; + encodeFunctionData( + functionFragment: "nodeLogicMockAddr", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "setupEVMChain", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "systemContract", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetArtifactSelectors", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetArtifacts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetContracts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetInterfaces", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetSelectors", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetSenders", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "tss", values?: undefined): string; + encodeFunctionData( + functionFragment: "uniswapV2Router", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "wrapGatewayEVM", + values: [BigNumberish] + ): string; + encodeFunctionData(functionFragment: "wzeta", values?: undefined): string; + encodeFunctionData( + functionFragment: "zetaConnector", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "zetaToken", + values: [BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "IS_TEST", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "chainIdETH", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "custody", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "deployer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "excludeArtifacts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "excludeContracts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "excludeSelectors", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "excludeSenders", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "failed", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "nodeLogicMockAddr", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setupEVMChain", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "systemContract", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetArtifactSelectors", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetArtifacts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetContracts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetInterfaces", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetSelectors", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetSenders", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "tss", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "uniswapV2Router", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "wrapGatewayEVM", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "wzeta", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "zetaConnector", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "zetaToken", data: BytesLike): Result; +} + +export namespace logEvent { + export type InputTuple = [arg0: string]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_addressEvent { + export type InputTuple = [arg0: AddressLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_array_uint256_array_Event { + export type InputTuple = [val: BigNumberish[]]; + export type OutputTuple = [val: bigint[]]; + export interface OutputObject { + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_array_int256_array_Event { + export type InputTuple = [val: BigNumberish[]]; + export type OutputTuple = [val: bigint[]]; + export interface OutputObject { + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_array_address_array_Event { + export type InputTuple = [val: AddressLike[]]; + export type OutputTuple = [val: string[]]; + export interface OutputObject { + val: string[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_bytesEvent { + export type InputTuple = [arg0: BytesLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_bytes32Event { + export type InputTuple = [arg0: BytesLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_intEvent { + export type InputTuple = [arg0: BigNumberish]; + export type OutputTuple = [arg0: bigint]; + export interface OutputObject { + arg0: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_addressEvent { + export type InputTuple = [key: string, val: AddressLike]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_array_string_uint256_array_Event { + export type InputTuple = [key: string, val: BigNumberish[]]; + export type OutputTuple = [key: string, val: bigint[]]; + export interface OutputObject { + key: string; + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_array_string_int256_array_Event { + export type InputTuple = [key: string, val: BigNumberish[]]; + export type OutputTuple = [key: string, val: bigint[]]; + export interface OutputObject { + key: string; + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_array_string_address_array_Event { + export type InputTuple = [key: string, val: AddressLike[]]; + export type OutputTuple = [key: string, val: string[]]; + export interface OutputObject { + key: string; + val: string[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_bytesEvent { + export type InputTuple = [key: string, val: BytesLike]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_bytes32Event { + export type InputTuple = [key: string, val: BytesLike]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_decimal_intEvent { + export type InputTuple = [ + key: string, + val: BigNumberish, + decimals: BigNumberish + ]; + export type OutputTuple = [key: string, val: bigint, decimals: bigint]; + export interface OutputObject { + key: string; + val: bigint; + decimals: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_decimal_uintEvent { + export type InputTuple = [ + key: string, + val: BigNumberish, + decimals: BigNumberish + ]; + export type OutputTuple = [key: string, val: bigint, decimals: bigint]; + export interface OutputObject { + key: string; + val: bigint; + decimals: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_intEvent { + export type InputTuple = [key: string, val: BigNumberish]; + export type OutputTuple = [key: string, val: bigint]; + export interface OutputObject { + key: string; + val: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_stringEvent { + export type InputTuple = [key: string, val: string]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_uintEvent { + export type InputTuple = [key: string, val: BigNumberish]; + export type OutputTuple = [key: string, val: bigint]; + export interface OutputObject { + key: string; + val: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_stringEvent { + export type InputTuple = [arg0: string]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_uintEvent { + export type InputTuple = [arg0: BigNumberish]; + export type OutputTuple = [arg0: bigint]; + export interface OutputObject { + arg0: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace logsEvent { + export type InputTuple = [arg0: BytesLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface EVMSetup extends BaseContract { + connect(runner?: ContractRunner | null): EVMSetup; + waitForDeployment(): Promise; + + interface: EVMSetupInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + IS_TEST: TypedContractMethod<[], [boolean], "view">; + + chainIdETH: TypedContractMethod<[], [bigint], "view">; + + custody: TypedContractMethod<[arg0: BigNumberish], [string], "view">; + + deployer: TypedContractMethod<[], [string], "view">; + + excludeArtifacts: TypedContractMethod<[], [string[]], "view">; + + excludeContracts: TypedContractMethod<[], [string[]], "view">; + + excludeSelectors: TypedContractMethod< + [], + [StdInvariant.FuzzSelectorStructOutput[]], + "view" + >; + + excludeSenders: TypedContractMethod<[], [string[]], "view">; + + failed: TypedContractMethod<[], [boolean], "view">; + + nodeLogicMockAddr: TypedContractMethod<[], [string], "view">; + + setupEVMChain: TypedContractMethod< + [chainId: BigNumberish], + [void], + "nonpayable" + >; + + systemContract: TypedContractMethod<[], [string], "view">; + + targetArtifactSelectors: TypedContractMethod< + [], + [StdInvariant.FuzzArtifactSelectorStructOutput[]], + "view" + >; + + targetArtifacts: TypedContractMethod<[], [string[]], "view">; + + targetContracts: TypedContractMethod<[], [string[]], "view">; + + targetInterfaces: TypedContractMethod< + [], + [StdInvariant.FuzzInterfaceStructOutput[]], + "view" + >; + + targetSelectors: TypedContractMethod< + [], + [StdInvariant.FuzzSelectorStructOutput[]], + "view" + >; + + targetSenders: TypedContractMethod<[], [string[]], "view">; + + tss: TypedContractMethod<[], [string], "view">; + + uniswapV2Router: TypedContractMethod<[], [string], "view">; + + wrapGatewayEVM: TypedContractMethod<[arg0: BigNumberish], [string], "view">; + + wzeta: TypedContractMethod<[], [string], "view">; + + zetaConnector: TypedContractMethod<[arg0: BigNumberish], [string], "view">; + + zetaToken: TypedContractMethod<[arg0: BigNumberish], [string], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "IS_TEST" + ): TypedContractMethod<[], [boolean], "view">; + getFunction( + nameOrSignature: "chainIdETH" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "custody" + ): TypedContractMethod<[arg0: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "deployer" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "excludeArtifacts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "excludeContracts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "excludeSelectors" + ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; + getFunction( + nameOrSignature: "excludeSenders" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "failed" + ): TypedContractMethod<[], [boolean], "view">; + getFunction( + nameOrSignature: "nodeLogicMockAddr" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "setupEVMChain" + ): TypedContractMethod<[chainId: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "systemContract" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "targetArtifactSelectors" + ): TypedContractMethod< + [], + [StdInvariant.FuzzArtifactSelectorStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "targetArtifacts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "targetContracts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "targetInterfaces" + ): TypedContractMethod< + [], + [StdInvariant.FuzzInterfaceStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "targetSelectors" + ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; + getFunction( + nameOrSignature: "targetSenders" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "tss" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "uniswapV2Router" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "wrapGatewayEVM" + ): TypedContractMethod<[arg0: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "wzeta" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "zetaConnector" + ): TypedContractMethod<[arg0: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "zetaToken" + ): TypedContractMethod<[arg0: BigNumberish], [string], "view">; + + getEvent( + key: "log" + ): TypedContractEvent< + logEvent.InputTuple, + logEvent.OutputTuple, + logEvent.OutputObject + >; + getEvent( + key: "log_address" + ): TypedContractEvent< + log_addressEvent.InputTuple, + log_addressEvent.OutputTuple, + log_addressEvent.OutputObject + >; + getEvent( + key: "log_array(uint256[])" + ): TypedContractEvent< + log_array_uint256_array_Event.InputTuple, + log_array_uint256_array_Event.OutputTuple, + log_array_uint256_array_Event.OutputObject + >; + getEvent( + key: "log_array(int256[])" + ): TypedContractEvent< + log_array_int256_array_Event.InputTuple, + log_array_int256_array_Event.OutputTuple, + log_array_int256_array_Event.OutputObject + >; + getEvent( + key: "log_array(address[])" + ): TypedContractEvent< + log_array_address_array_Event.InputTuple, + log_array_address_array_Event.OutputTuple, + log_array_address_array_Event.OutputObject + >; + getEvent( + key: "log_bytes" + ): TypedContractEvent< + log_bytesEvent.InputTuple, + log_bytesEvent.OutputTuple, + log_bytesEvent.OutputObject + >; + getEvent( + key: "log_bytes32" + ): TypedContractEvent< + log_bytes32Event.InputTuple, + log_bytes32Event.OutputTuple, + log_bytes32Event.OutputObject + >; + getEvent( + key: "log_int" + ): TypedContractEvent< + log_intEvent.InputTuple, + log_intEvent.OutputTuple, + log_intEvent.OutputObject + >; + getEvent( + key: "log_named_address" + ): TypedContractEvent< + log_named_addressEvent.InputTuple, + log_named_addressEvent.OutputTuple, + log_named_addressEvent.OutputObject + >; + getEvent( + key: "log_named_array(string,uint256[])" + ): TypedContractEvent< + log_named_array_string_uint256_array_Event.InputTuple, + log_named_array_string_uint256_array_Event.OutputTuple, + log_named_array_string_uint256_array_Event.OutputObject + >; + getEvent( + key: "log_named_array(string,int256[])" + ): TypedContractEvent< + log_named_array_string_int256_array_Event.InputTuple, + log_named_array_string_int256_array_Event.OutputTuple, + log_named_array_string_int256_array_Event.OutputObject + >; + getEvent( + key: "log_named_array(string,address[])" + ): TypedContractEvent< + log_named_array_string_address_array_Event.InputTuple, + log_named_array_string_address_array_Event.OutputTuple, + log_named_array_string_address_array_Event.OutputObject + >; + getEvent( + key: "log_named_bytes" + ): TypedContractEvent< + log_named_bytesEvent.InputTuple, + log_named_bytesEvent.OutputTuple, + log_named_bytesEvent.OutputObject + >; + getEvent( + key: "log_named_bytes32" + ): TypedContractEvent< + log_named_bytes32Event.InputTuple, + log_named_bytes32Event.OutputTuple, + log_named_bytes32Event.OutputObject + >; + getEvent( + key: "log_named_decimal_int" + ): TypedContractEvent< + log_named_decimal_intEvent.InputTuple, + log_named_decimal_intEvent.OutputTuple, + log_named_decimal_intEvent.OutputObject + >; + getEvent( + key: "log_named_decimal_uint" + ): TypedContractEvent< + log_named_decimal_uintEvent.InputTuple, + log_named_decimal_uintEvent.OutputTuple, + log_named_decimal_uintEvent.OutputObject + >; + getEvent( + key: "log_named_int" + ): TypedContractEvent< + log_named_intEvent.InputTuple, + log_named_intEvent.OutputTuple, + log_named_intEvent.OutputObject + >; + getEvent( + key: "log_named_string" + ): TypedContractEvent< + log_named_stringEvent.InputTuple, + log_named_stringEvent.OutputTuple, + log_named_stringEvent.OutputObject + >; + getEvent( + key: "log_named_uint" + ): TypedContractEvent< + log_named_uintEvent.InputTuple, + log_named_uintEvent.OutputTuple, + log_named_uintEvent.OutputObject + >; + getEvent( + key: "log_string" + ): TypedContractEvent< + log_stringEvent.InputTuple, + log_stringEvent.OutputTuple, + log_stringEvent.OutputObject + >; + getEvent( + key: "log_uint" + ): TypedContractEvent< + log_uintEvent.InputTuple, + log_uintEvent.OutputTuple, + log_uintEvent.OutputObject + >; + getEvent( + key: "logs" + ): TypedContractEvent< + logsEvent.InputTuple, + logsEvent.OutputTuple, + logsEvent.OutputObject + >; + + filters: { + "log(string)": TypedContractEvent< + logEvent.InputTuple, + logEvent.OutputTuple, + logEvent.OutputObject + >; + log: TypedContractEvent< + logEvent.InputTuple, + logEvent.OutputTuple, + logEvent.OutputObject + >; + + "log_address(address)": TypedContractEvent< + log_addressEvent.InputTuple, + log_addressEvent.OutputTuple, + log_addressEvent.OutputObject + >; + log_address: TypedContractEvent< + log_addressEvent.InputTuple, + log_addressEvent.OutputTuple, + log_addressEvent.OutputObject + >; + + "log_array(uint256[])": TypedContractEvent< + log_array_uint256_array_Event.InputTuple, + log_array_uint256_array_Event.OutputTuple, + log_array_uint256_array_Event.OutputObject + >; + "log_array(int256[])": TypedContractEvent< + log_array_int256_array_Event.InputTuple, + log_array_int256_array_Event.OutputTuple, + log_array_int256_array_Event.OutputObject + >; + "log_array(address[])": TypedContractEvent< + log_array_address_array_Event.InputTuple, + log_array_address_array_Event.OutputTuple, + log_array_address_array_Event.OutputObject + >; + + "log_bytes(bytes)": TypedContractEvent< + log_bytesEvent.InputTuple, + log_bytesEvent.OutputTuple, + log_bytesEvent.OutputObject + >; + log_bytes: TypedContractEvent< + log_bytesEvent.InputTuple, + log_bytesEvent.OutputTuple, + log_bytesEvent.OutputObject + >; + + "log_bytes32(bytes32)": TypedContractEvent< + log_bytes32Event.InputTuple, + log_bytes32Event.OutputTuple, + log_bytes32Event.OutputObject + >; + log_bytes32: TypedContractEvent< + log_bytes32Event.InputTuple, + log_bytes32Event.OutputTuple, + log_bytes32Event.OutputObject + >; + + "log_int(int256)": TypedContractEvent< + log_intEvent.InputTuple, + log_intEvent.OutputTuple, + log_intEvent.OutputObject + >; + log_int: TypedContractEvent< + log_intEvent.InputTuple, + log_intEvent.OutputTuple, + log_intEvent.OutputObject + >; + + "log_named_address(string,address)": TypedContractEvent< + log_named_addressEvent.InputTuple, + log_named_addressEvent.OutputTuple, + log_named_addressEvent.OutputObject + >; + log_named_address: TypedContractEvent< + log_named_addressEvent.InputTuple, + log_named_addressEvent.OutputTuple, + log_named_addressEvent.OutputObject + >; + + "log_named_array(string,uint256[])": TypedContractEvent< + log_named_array_string_uint256_array_Event.InputTuple, + log_named_array_string_uint256_array_Event.OutputTuple, + log_named_array_string_uint256_array_Event.OutputObject + >; + "log_named_array(string,int256[])": TypedContractEvent< + log_named_array_string_int256_array_Event.InputTuple, + log_named_array_string_int256_array_Event.OutputTuple, + log_named_array_string_int256_array_Event.OutputObject + >; + "log_named_array(string,address[])": TypedContractEvent< + log_named_array_string_address_array_Event.InputTuple, + log_named_array_string_address_array_Event.OutputTuple, + log_named_array_string_address_array_Event.OutputObject + >; + + "log_named_bytes(string,bytes)": TypedContractEvent< + log_named_bytesEvent.InputTuple, + log_named_bytesEvent.OutputTuple, + log_named_bytesEvent.OutputObject + >; + log_named_bytes: TypedContractEvent< + log_named_bytesEvent.InputTuple, + log_named_bytesEvent.OutputTuple, + log_named_bytesEvent.OutputObject + >; + + "log_named_bytes32(string,bytes32)": TypedContractEvent< + log_named_bytes32Event.InputTuple, + log_named_bytes32Event.OutputTuple, + log_named_bytes32Event.OutputObject + >; + log_named_bytes32: TypedContractEvent< + log_named_bytes32Event.InputTuple, + log_named_bytes32Event.OutputTuple, + log_named_bytes32Event.OutputObject + >; + + "log_named_decimal_int(string,int256,uint256)": TypedContractEvent< + log_named_decimal_intEvent.InputTuple, + log_named_decimal_intEvent.OutputTuple, + log_named_decimal_intEvent.OutputObject + >; + log_named_decimal_int: TypedContractEvent< + log_named_decimal_intEvent.InputTuple, + log_named_decimal_intEvent.OutputTuple, + log_named_decimal_intEvent.OutputObject + >; + + "log_named_decimal_uint(string,uint256,uint256)": TypedContractEvent< + log_named_decimal_uintEvent.InputTuple, + log_named_decimal_uintEvent.OutputTuple, + log_named_decimal_uintEvent.OutputObject + >; + log_named_decimal_uint: TypedContractEvent< + log_named_decimal_uintEvent.InputTuple, + log_named_decimal_uintEvent.OutputTuple, + log_named_decimal_uintEvent.OutputObject + >; + + "log_named_int(string,int256)": TypedContractEvent< + log_named_intEvent.InputTuple, + log_named_intEvent.OutputTuple, + log_named_intEvent.OutputObject + >; + log_named_int: TypedContractEvent< + log_named_intEvent.InputTuple, + log_named_intEvent.OutputTuple, + log_named_intEvent.OutputObject + >; + + "log_named_string(string,string)": TypedContractEvent< + log_named_stringEvent.InputTuple, + log_named_stringEvent.OutputTuple, + log_named_stringEvent.OutputObject + >; + log_named_string: TypedContractEvent< + log_named_stringEvent.InputTuple, + log_named_stringEvent.OutputTuple, + log_named_stringEvent.OutputObject + >; + + "log_named_uint(string,uint256)": TypedContractEvent< + log_named_uintEvent.InputTuple, + log_named_uintEvent.OutputTuple, + log_named_uintEvent.OutputObject + >; + log_named_uint: TypedContractEvent< + log_named_uintEvent.InputTuple, + log_named_uintEvent.OutputTuple, + log_named_uintEvent.OutputObject + >; + + "log_string(string)": TypedContractEvent< + log_stringEvent.InputTuple, + log_stringEvent.OutputTuple, + log_stringEvent.OutputObject + >; + log_string: TypedContractEvent< + log_stringEvent.InputTuple, + log_stringEvent.OutputTuple, + log_stringEvent.OutputObject + >; + + "log_uint(uint256)": TypedContractEvent< + log_uintEvent.InputTuple, + log_uintEvent.OutputTuple, + log_uintEvent.OutputObject + >; + log_uint: TypedContractEvent< + log_uintEvent.InputTuple, + log_uintEvent.OutputTuple, + log_uintEvent.OutputObject + >; + + "logs(bytes)": TypedContractEvent< + logsEvent.InputTuple, + logsEvent.OutputTuple, + logsEvent.OutputObject + >; + logs: TypedContractEvent< + logsEvent.InputTuple, + logsEvent.OutputTuple, + logsEvent.OutputObject + >; + }; +} diff --git a/typechain-types/contracts/testing/EVMSetup.t.sol/ITestERC20.ts b/typechain-types/contracts/testing/EVMSetup.t.sol/ITestERC20.ts new file mode 100644 index 00000000..bc53b24f --- /dev/null +++ b/typechain-types/contracts/testing/EVMSetup.t.sol/ITestERC20.ts @@ -0,0 +1,97 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../../common"; + +export interface ITestERC20Interface extends Interface { + getFunction(nameOrSignature: "mint"): FunctionFragment; + + encodeFunctionData( + functionFragment: "mint", + values: [AddressLike, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; +} + +export interface ITestERC20 extends BaseContract { + connect(runner?: ContractRunner | null): ITestERC20; + waitForDeployment(): Promise; + + interface: ITestERC20Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + mint: TypedContractMethod< + [to: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "mint" + ): TypedContractMethod< + [to: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + + filters: {}; +} diff --git a/typechain-types/contracts/testing/EVMSetup.t.sol/IZetaNonEth.ts b/typechain-types/contracts/testing/EVMSetup.t.sol/IZetaNonEth.ts new file mode 100644 index 00000000..5ab67737 --- /dev/null +++ b/typechain-types/contracts/testing/EVMSetup.t.sol/IZetaNonEth.ts @@ -0,0 +1,101 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../../common"; + +export interface IZetaNonEthInterface extends Interface { + getFunction( + nameOrSignature: "updateTssAndConnectorAddresses" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "updateTssAndConnectorAddresses", + values: [AddressLike, AddressLike] + ): string; + + decodeFunctionResult( + functionFragment: "updateTssAndConnectorAddresses", + data: BytesLike + ): Result; +} + +export interface IZetaNonEth extends BaseContract { + connect(runner?: ContractRunner | null): IZetaNonEth; + waitForDeployment(): Promise; + + interface: IZetaNonEthInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + updateTssAndConnectorAddresses: TypedContractMethod< + [tssAddress_: AddressLike, connectorAddress_: AddressLike], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "updateTssAndConnectorAddresses" + ): TypedContractMethod< + [tssAddress_: AddressLike, connectorAddress_: AddressLike], + [void], + "nonpayable" + >; + + filters: {}; +} diff --git a/typechain-types/contracts/testing/EVMSetup.t.sol/index.ts b/typechain-types/contracts/testing/EVMSetup.t.sol/index.ts new file mode 100644 index 00000000..4fc3ad3d --- /dev/null +++ b/typechain-types/contracts/testing/EVMSetup.t.sol/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { EVMSetup } from "./EVMSetup"; +export type { ITestERC20 } from "./ITestERC20"; +export type { IZetaNonEth } from "./IZetaNonEth"; diff --git a/typechain-types/contracts/testing/FoundrySetup.t.sol/FoundrySetup.ts b/typechain-types/contracts/testing/FoundrySetup.t.sol/FoundrySetup.ts new file mode 100644 index 00000000..544028e7 --- /dev/null +++ b/typechain-types/contracts/testing/FoundrySetup.t.sol/FoundrySetup.ts @@ -0,0 +1,1225 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../common"; + +export declare namespace StdInvariant { + export type FuzzSelectorStruct = { + addr: AddressLike; + selectors: BytesLike[]; + }; + + export type FuzzSelectorStructOutput = [addr: string, selectors: string[]] & { + addr: string; + selectors: string[]; + }; + + export type FuzzArtifactSelectorStruct = { + artifact: string; + selectors: BytesLike[]; + }; + + export type FuzzArtifactSelectorStructOutput = [ + artifact: string, + selectors: string[] + ] & { artifact: string; selectors: string[] }; + + export type FuzzInterfaceStruct = { addr: AddressLike; artifacts: string[] }; + + export type FuzzInterfaceStructOutput = [ + addr: string, + artifacts: string[] + ] & { addr: string; artifacts: string[] }; +} + +export interface FoundrySetupInterface extends Interface { + getFunction( + nameOrSignature: + | "FUNGIBLE_MODULE_ADDRESS" + | "IS_TEST" + | "bnb_bnb" + | "chainIdBNB" + | "chainIdETH" + | "chainIdZeta" + | "deployer" + | "eth_eth" + | "evmSetup" + | "excludeArtifacts" + | "excludeContracts" + | "excludeSelectors" + | "excludeSenders" + | "failed" + | "nodeLogicMock" + | "setUp" + | "targetArtifactSelectors" + | "targetArtifacts" + | "targetContracts" + | "targetInterfaces" + | "targetSelectors" + | "targetSenders" + | "tokenSetup" + | "tss" + | "usdc_bnb" + | "usdc_eth" + | "zetaSetup" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "log" + | "log_address" + | "log_array(uint256[])" + | "log_array(int256[])" + | "log_array(address[])" + | "log_bytes" + | "log_bytes32" + | "log_int" + | "log_named_address" + | "log_named_array(string,uint256[])" + | "log_named_array(string,int256[])" + | "log_named_array(string,address[])" + | "log_named_bytes" + | "log_named_bytes32" + | "log_named_decimal_int" + | "log_named_decimal_uint" + | "log_named_int" + | "log_named_string" + | "log_named_uint" + | "log_string" + | "log_uint" + | "logs" + ): EventFragment; + + encodeFunctionData( + functionFragment: "FUNGIBLE_MODULE_ADDRESS", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "IS_TEST", values?: undefined): string; + encodeFunctionData(functionFragment: "bnb_bnb", values?: undefined): string; + encodeFunctionData( + functionFragment: "chainIdBNB", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "chainIdETH", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "chainIdZeta", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "deployer", values?: undefined): string; + encodeFunctionData(functionFragment: "eth_eth", values?: undefined): string; + encodeFunctionData(functionFragment: "evmSetup", values?: undefined): string; + encodeFunctionData( + functionFragment: "excludeArtifacts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "excludeContracts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "excludeSelectors", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "excludeSenders", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "failed", values?: undefined): string; + encodeFunctionData( + functionFragment: "nodeLogicMock", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "setUp", values?: undefined): string; + encodeFunctionData( + functionFragment: "targetArtifactSelectors", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetArtifacts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetContracts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetInterfaces", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetSelectors", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetSenders", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "tokenSetup", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "tss", values?: undefined): string; + encodeFunctionData(functionFragment: "usdc_bnb", values?: undefined): string; + encodeFunctionData(functionFragment: "usdc_eth", values?: undefined): string; + encodeFunctionData(functionFragment: "zetaSetup", values?: undefined): string; + + decodeFunctionResult( + functionFragment: "FUNGIBLE_MODULE_ADDRESS", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "IS_TEST", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "bnb_bnb", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "chainIdBNB", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "chainIdETH", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "chainIdZeta", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "deployer", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "eth_eth", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "evmSetup", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "excludeArtifacts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "excludeContracts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "excludeSelectors", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "excludeSenders", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "failed", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "nodeLogicMock", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "setUp", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "targetArtifactSelectors", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetArtifacts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetContracts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetInterfaces", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetSelectors", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetSenders", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "tokenSetup", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "tss", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "usdc_bnb", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "usdc_eth", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "zetaSetup", data: BytesLike): Result; +} + +export namespace logEvent { + export type InputTuple = [arg0: string]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_addressEvent { + export type InputTuple = [arg0: AddressLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_array_uint256_array_Event { + export type InputTuple = [val: BigNumberish[]]; + export type OutputTuple = [val: bigint[]]; + export interface OutputObject { + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_array_int256_array_Event { + export type InputTuple = [val: BigNumberish[]]; + export type OutputTuple = [val: bigint[]]; + export interface OutputObject { + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_array_address_array_Event { + export type InputTuple = [val: AddressLike[]]; + export type OutputTuple = [val: string[]]; + export interface OutputObject { + val: string[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_bytesEvent { + export type InputTuple = [arg0: BytesLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_bytes32Event { + export type InputTuple = [arg0: BytesLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_intEvent { + export type InputTuple = [arg0: BigNumberish]; + export type OutputTuple = [arg0: bigint]; + export interface OutputObject { + arg0: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_addressEvent { + export type InputTuple = [key: string, val: AddressLike]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_array_string_uint256_array_Event { + export type InputTuple = [key: string, val: BigNumberish[]]; + export type OutputTuple = [key: string, val: bigint[]]; + export interface OutputObject { + key: string; + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_array_string_int256_array_Event { + export type InputTuple = [key: string, val: BigNumberish[]]; + export type OutputTuple = [key: string, val: bigint[]]; + export interface OutputObject { + key: string; + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_array_string_address_array_Event { + export type InputTuple = [key: string, val: AddressLike[]]; + export type OutputTuple = [key: string, val: string[]]; + export interface OutputObject { + key: string; + val: string[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_bytesEvent { + export type InputTuple = [key: string, val: BytesLike]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_bytes32Event { + export type InputTuple = [key: string, val: BytesLike]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_decimal_intEvent { + export type InputTuple = [ + key: string, + val: BigNumberish, + decimals: BigNumberish + ]; + export type OutputTuple = [key: string, val: bigint, decimals: bigint]; + export interface OutputObject { + key: string; + val: bigint; + decimals: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_decimal_uintEvent { + export type InputTuple = [ + key: string, + val: BigNumberish, + decimals: BigNumberish + ]; + export type OutputTuple = [key: string, val: bigint, decimals: bigint]; + export interface OutputObject { + key: string; + val: bigint; + decimals: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_intEvent { + export type InputTuple = [key: string, val: BigNumberish]; + export type OutputTuple = [key: string, val: bigint]; + export interface OutputObject { + key: string; + val: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_stringEvent { + export type InputTuple = [key: string, val: string]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_uintEvent { + export type InputTuple = [key: string, val: BigNumberish]; + export type OutputTuple = [key: string, val: bigint]; + export interface OutputObject { + key: string; + val: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_stringEvent { + export type InputTuple = [arg0: string]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_uintEvent { + export type InputTuple = [arg0: BigNumberish]; + export type OutputTuple = [arg0: bigint]; + export interface OutputObject { + arg0: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace logsEvent { + export type InputTuple = [arg0: BytesLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface FoundrySetup extends BaseContract { + connect(runner?: ContractRunner | null): FoundrySetup; + waitForDeployment(): Promise; + + interface: FoundrySetupInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + FUNGIBLE_MODULE_ADDRESS: TypedContractMethod<[], [string], "view">; + + IS_TEST: TypedContractMethod<[], [boolean], "view">; + + bnb_bnb: TypedContractMethod< + [], + [ + [string, string, string, string, bigint, boolean, bigint] & { + zrc20: string; + asset: string; + name: string; + symbol: string; + chainId: bigint; + isGasToken: boolean; + decimals: bigint; + } + ], + "view" + >; + + chainIdBNB: TypedContractMethod<[], [bigint], "view">; + + chainIdETH: TypedContractMethod<[], [bigint], "view">; + + chainIdZeta: TypedContractMethod<[], [bigint], "view">; + + deployer: TypedContractMethod<[], [string], "view">; + + eth_eth: TypedContractMethod< + [], + [ + [string, string, string, string, bigint, boolean, bigint] & { + zrc20: string; + asset: string; + name: string; + symbol: string; + chainId: bigint; + isGasToken: boolean; + decimals: bigint; + } + ], + "view" + >; + + evmSetup: TypedContractMethod<[], [string], "view">; + + excludeArtifacts: TypedContractMethod<[], [string[]], "view">; + + excludeContracts: TypedContractMethod<[], [string[]], "view">; + + excludeSelectors: TypedContractMethod< + [], + [StdInvariant.FuzzSelectorStructOutput[]], + "view" + >; + + excludeSenders: TypedContractMethod<[], [string[]], "view">; + + failed: TypedContractMethod<[], [boolean], "view">; + + nodeLogicMock: TypedContractMethod<[], [string], "view">; + + setUp: TypedContractMethod<[], [void], "nonpayable">; + + targetArtifactSelectors: TypedContractMethod< + [], + [StdInvariant.FuzzArtifactSelectorStructOutput[]], + "view" + >; + + targetArtifacts: TypedContractMethod<[], [string[]], "view">; + + targetContracts: TypedContractMethod<[], [string[]], "view">; + + targetInterfaces: TypedContractMethod< + [], + [StdInvariant.FuzzInterfaceStructOutput[]], + "view" + >; + + targetSelectors: TypedContractMethod< + [], + [StdInvariant.FuzzSelectorStructOutput[]], + "view" + >; + + targetSenders: TypedContractMethod<[], [string[]], "view">; + + tokenSetup: TypedContractMethod<[], [string], "view">; + + tss: TypedContractMethod<[], [string], "view">; + + usdc_bnb: TypedContractMethod< + [], + [ + [string, string, string, string, bigint, boolean, bigint] & { + zrc20: string; + asset: string; + name: string; + symbol: string; + chainId: bigint; + isGasToken: boolean; + decimals: bigint; + } + ], + "view" + >; + + usdc_eth: TypedContractMethod< + [], + [ + [string, string, string, string, bigint, boolean, bigint] & { + zrc20: string; + asset: string; + name: string; + symbol: string; + chainId: bigint; + isGasToken: boolean; + decimals: bigint; + } + ], + "view" + >; + + zetaSetup: TypedContractMethod<[], [string], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "FUNGIBLE_MODULE_ADDRESS" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "IS_TEST" + ): TypedContractMethod<[], [boolean], "view">; + getFunction( + nameOrSignature: "bnb_bnb" + ): TypedContractMethod< + [], + [ + [string, string, string, string, bigint, boolean, bigint] & { + zrc20: string; + asset: string; + name: string; + symbol: string; + chainId: bigint; + isGasToken: boolean; + decimals: bigint; + } + ], + "view" + >; + getFunction( + nameOrSignature: "chainIdBNB" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "chainIdETH" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "chainIdZeta" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "deployer" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "eth_eth" + ): TypedContractMethod< + [], + [ + [string, string, string, string, bigint, boolean, bigint] & { + zrc20: string; + asset: string; + name: string; + symbol: string; + chainId: bigint; + isGasToken: boolean; + decimals: bigint; + } + ], + "view" + >; + getFunction( + nameOrSignature: "evmSetup" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "excludeArtifacts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "excludeContracts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "excludeSelectors" + ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; + getFunction( + nameOrSignature: "excludeSenders" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "failed" + ): TypedContractMethod<[], [boolean], "view">; + getFunction( + nameOrSignature: "nodeLogicMock" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "setUp" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "targetArtifactSelectors" + ): TypedContractMethod< + [], + [StdInvariant.FuzzArtifactSelectorStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "targetArtifacts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "targetContracts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "targetInterfaces" + ): TypedContractMethod< + [], + [StdInvariant.FuzzInterfaceStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "targetSelectors" + ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; + getFunction( + nameOrSignature: "targetSenders" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "tokenSetup" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "tss" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "usdc_bnb" + ): TypedContractMethod< + [], + [ + [string, string, string, string, bigint, boolean, bigint] & { + zrc20: string; + asset: string; + name: string; + symbol: string; + chainId: bigint; + isGasToken: boolean; + decimals: bigint; + } + ], + "view" + >; + getFunction( + nameOrSignature: "usdc_eth" + ): TypedContractMethod< + [], + [ + [string, string, string, string, bigint, boolean, bigint] & { + zrc20: string; + asset: string; + name: string; + symbol: string; + chainId: bigint; + isGasToken: boolean; + decimals: bigint; + } + ], + "view" + >; + getFunction( + nameOrSignature: "zetaSetup" + ): TypedContractMethod<[], [string], "view">; + + getEvent( + key: "log" + ): TypedContractEvent< + logEvent.InputTuple, + logEvent.OutputTuple, + logEvent.OutputObject + >; + getEvent( + key: "log_address" + ): TypedContractEvent< + log_addressEvent.InputTuple, + log_addressEvent.OutputTuple, + log_addressEvent.OutputObject + >; + getEvent( + key: "log_array(uint256[])" + ): TypedContractEvent< + log_array_uint256_array_Event.InputTuple, + log_array_uint256_array_Event.OutputTuple, + log_array_uint256_array_Event.OutputObject + >; + getEvent( + key: "log_array(int256[])" + ): TypedContractEvent< + log_array_int256_array_Event.InputTuple, + log_array_int256_array_Event.OutputTuple, + log_array_int256_array_Event.OutputObject + >; + getEvent( + key: "log_array(address[])" + ): TypedContractEvent< + log_array_address_array_Event.InputTuple, + log_array_address_array_Event.OutputTuple, + log_array_address_array_Event.OutputObject + >; + getEvent( + key: "log_bytes" + ): TypedContractEvent< + log_bytesEvent.InputTuple, + log_bytesEvent.OutputTuple, + log_bytesEvent.OutputObject + >; + getEvent( + key: "log_bytes32" + ): TypedContractEvent< + log_bytes32Event.InputTuple, + log_bytes32Event.OutputTuple, + log_bytes32Event.OutputObject + >; + getEvent( + key: "log_int" + ): TypedContractEvent< + log_intEvent.InputTuple, + log_intEvent.OutputTuple, + log_intEvent.OutputObject + >; + getEvent( + key: "log_named_address" + ): TypedContractEvent< + log_named_addressEvent.InputTuple, + log_named_addressEvent.OutputTuple, + log_named_addressEvent.OutputObject + >; + getEvent( + key: "log_named_array(string,uint256[])" + ): TypedContractEvent< + log_named_array_string_uint256_array_Event.InputTuple, + log_named_array_string_uint256_array_Event.OutputTuple, + log_named_array_string_uint256_array_Event.OutputObject + >; + getEvent( + key: "log_named_array(string,int256[])" + ): TypedContractEvent< + log_named_array_string_int256_array_Event.InputTuple, + log_named_array_string_int256_array_Event.OutputTuple, + log_named_array_string_int256_array_Event.OutputObject + >; + getEvent( + key: "log_named_array(string,address[])" + ): TypedContractEvent< + log_named_array_string_address_array_Event.InputTuple, + log_named_array_string_address_array_Event.OutputTuple, + log_named_array_string_address_array_Event.OutputObject + >; + getEvent( + key: "log_named_bytes" + ): TypedContractEvent< + log_named_bytesEvent.InputTuple, + log_named_bytesEvent.OutputTuple, + log_named_bytesEvent.OutputObject + >; + getEvent( + key: "log_named_bytes32" + ): TypedContractEvent< + log_named_bytes32Event.InputTuple, + log_named_bytes32Event.OutputTuple, + log_named_bytes32Event.OutputObject + >; + getEvent( + key: "log_named_decimal_int" + ): TypedContractEvent< + log_named_decimal_intEvent.InputTuple, + log_named_decimal_intEvent.OutputTuple, + log_named_decimal_intEvent.OutputObject + >; + getEvent( + key: "log_named_decimal_uint" + ): TypedContractEvent< + log_named_decimal_uintEvent.InputTuple, + log_named_decimal_uintEvent.OutputTuple, + log_named_decimal_uintEvent.OutputObject + >; + getEvent( + key: "log_named_int" + ): TypedContractEvent< + log_named_intEvent.InputTuple, + log_named_intEvent.OutputTuple, + log_named_intEvent.OutputObject + >; + getEvent( + key: "log_named_string" + ): TypedContractEvent< + log_named_stringEvent.InputTuple, + log_named_stringEvent.OutputTuple, + log_named_stringEvent.OutputObject + >; + getEvent( + key: "log_named_uint" + ): TypedContractEvent< + log_named_uintEvent.InputTuple, + log_named_uintEvent.OutputTuple, + log_named_uintEvent.OutputObject + >; + getEvent( + key: "log_string" + ): TypedContractEvent< + log_stringEvent.InputTuple, + log_stringEvent.OutputTuple, + log_stringEvent.OutputObject + >; + getEvent( + key: "log_uint" + ): TypedContractEvent< + log_uintEvent.InputTuple, + log_uintEvent.OutputTuple, + log_uintEvent.OutputObject + >; + getEvent( + key: "logs" + ): TypedContractEvent< + logsEvent.InputTuple, + logsEvent.OutputTuple, + logsEvent.OutputObject + >; + + filters: { + "log(string)": TypedContractEvent< + logEvent.InputTuple, + logEvent.OutputTuple, + logEvent.OutputObject + >; + log: TypedContractEvent< + logEvent.InputTuple, + logEvent.OutputTuple, + logEvent.OutputObject + >; + + "log_address(address)": TypedContractEvent< + log_addressEvent.InputTuple, + log_addressEvent.OutputTuple, + log_addressEvent.OutputObject + >; + log_address: TypedContractEvent< + log_addressEvent.InputTuple, + log_addressEvent.OutputTuple, + log_addressEvent.OutputObject + >; + + "log_array(uint256[])": TypedContractEvent< + log_array_uint256_array_Event.InputTuple, + log_array_uint256_array_Event.OutputTuple, + log_array_uint256_array_Event.OutputObject + >; + "log_array(int256[])": TypedContractEvent< + log_array_int256_array_Event.InputTuple, + log_array_int256_array_Event.OutputTuple, + log_array_int256_array_Event.OutputObject + >; + "log_array(address[])": TypedContractEvent< + log_array_address_array_Event.InputTuple, + log_array_address_array_Event.OutputTuple, + log_array_address_array_Event.OutputObject + >; + + "log_bytes(bytes)": TypedContractEvent< + log_bytesEvent.InputTuple, + log_bytesEvent.OutputTuple, + log_bytesEvent.OutputObject + >; + log_bytes: TypedContractEvent< + log_bytesEvent.InputTuple, + log_bytesEvent.OutputTuple, + log_bytesEvent.OutputObject + >; + + "log_bytes32(bytes32)": TypedContractEvent< + log_bytes32Event.InputTuple, + log_bytes32Event.OutputTuple, + log_bytes32Event.OutputObject + >; + log_bytes32: TypedContractEvent< + log_bytes32Event.InputTuple, + log_bytes32Event.OutputTuple, + log_bytes32Event.OutputObject + >; + + "log_int(int256)": TypedContractEvent< + log_intEvent.InputTuple, + log_intEvent.OutputTuple, + log_intEvent.OutputObject + >; + log_int: TypedContractEvent< + log_intEvent.InputTuple, + log_intEvent.OutputTuple, + log_intEvent.OutputObject + >; + + "log_named_address(string,address)": TypedContractEvent< + log_named_addressEvent.InputTuple, + log_named_addressEvent.OutputTuple, + log_named_addressEvent.OutputObject + >; + log_named_address: TypedContractEvent< + log_named_addressEvent.InputTuple, + log_named_addressEvent.OutputTuple, + log_named_addressEvent.OutputObject + >; + + "log_named_array(string,uint256[])": TypedContractEvent< + log_named_array_string_uint256_array_Event.InputTuple, + log_named_array_string_uint256_array_Event.OutputTuple, + log_named_array_string_uint256_array_Event.OutputObject + >; + "log_named_array(string,int256[])": TypedContractEvent< + log_named_array_string_int256_array_Event.InputTuple, + log_named_array_string_int256_array_Event.OutputTuple, + log_named_array_string_int256_array_Event.OutputObject + >; + "log_named_array(string,address[])": TypedContractEvent< + log_named_array_string_address_array_Event.InputTuple, + log_named_array_string_address_array_Event.OutputTuple, + log_named_array_string_address_array_Event.OutputObject + >; + + "log_named_bytes(string,bytes)": TypedContractEvent< + log_named_bytesEvent.InputTuple, + log_named_bytesEvent.OutputTuple, + log_named_bytesEvent.OutputObject + >; + log_named_bytes: TypedContractEvent< + log_named_bytesEvent.InputTuple, + log_named_bytesEvent.OutputTuple, + log_named_bytesEvent.OutputObject + >; + + "log_named_bytes32(string,bytes32)": TypedContractEvent< + log_named_bytes32Event.InputTuple, + log_named_bytes32Event.OutputTuple, + log_named_bytes32Event.OutputObject + >; + log_named_bytes32: TypedContractEvent< + log_named_bytes32Event.InputTuple, + log_named_bytes32Event.OutputTuple, + log_named_bytes32Event.OutputObject + >; + + "log_named_decimal_int(string,int256,uint256)": TypedContractEvent< + log_named_decimal_intEvent.InputTuple, + log_named_decimal_intEvent.OutputTuple, + log_named_decimal_intEvent.OutputObject + >; + log_named_decimal_int: TypedContractEvent< + log_named_decimal_intEvent.InputTuple, + log_named_decimal_intEvent.OutputTuple, + log_named_decimal_intEvent.OutputObject + >; + + "log_named_decimal_uint(string,uint256,uint256)": TypedContractEvent< + log_named_decimal_uintEvent.InputTuple, + log_named_decimal_uintEvent.OutputTuple, + log_named_decimal_uintEvent.OutputObject + >; + log_named_decimal_uint: TypedContractEvent< + log_named_decimal_uintEvent.InputTuple, + log_named_decimal_uintEvent.OutputTuple, + log_named_decimal_uintEvent.OutputObject + >; + + "log_named_int(string,int256)": TypedContractEvent< + log_named_intEvent.InputTuple, + log_named_intEvent.OutputTuple, + log_named_intEvent.OutputObject + >; + log_named_int: TypedContractEvent< + log_named_intEvent.InputTuple, + log_named_intEvent.OutputTuple, + log_named_intEvent.OutputObject + >; + + "log_named_string(string,string)": TypedContractEvent< + log_named_stringEvent.InputTuple, + log_named_stringEvent.OutputTuple, + log_named_stringEvent.OutputObject + >; + log_named_string: TypedContractEvent< + log_named_stringEvent.InputTuple, + log_named_stringEvent.OutputTuple, + log_named_stringEvent.OutputObject + >; + + "log_named_uint(string,uint256)": TypedContractEvent< + log_named_uintEvent.InputTuple, + log_named_uintEvent.OutputTuple, + log_named_uintEvent.OutputObject + >; + log_named_uint: TypedContractEvent< + log_named_uintEvent.InputTuple, + log_named_uintEvent.OutputTuple, + log_named_uintEvent.OutputObject + >; + + "log_string(string)": TypedContractEvent< + log_stringEvent.InputTuple, + log_stringEvent.OutputTuple, + log_stringEvent.OutputObject + >; + log_string: TypedContractEvent< + log_stringEvent.InputTuple, + log_stringEvent.OutputTuple, + log_stringEvent.OutputObject + >; + + "log_uint(uint256)": TypedContractEvent< + log_uintEvent.InputTuple, + log_uintEvent.OutputTuple, + log_uintEvent.OutputObject + >; + log_uint: TypedContractEvent< + log_uintEvent.InputTuple, + log_uintEvent.OutputTuple, + log_uintEvent.OutputObject + >; + + "logs(bytes)": TypedContractEvent< + logsEvent.InputTuple, + logsEvent.OutputTuple, + logsEvent.OutputObject + >; + logs: TypedContractEvent< + logsEvent.InputTuple, + logsEvent.OutputTuple, + logsEvent.OutputObject + >; + }; +} diff --git a/typechain-types/contracts/testing/FoundrySetup.t.sol/index.ts b/typechain-types/contracts/testing/FoundrySetup.t.sol/index.ts new file mode 100644 index 00000000..5b516b76 --- /dev/null +++ b/typechain-types/contracts/testing/FoundrySetup.t.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { FoundrySetup } from "./FoundrySetup"; diff --git a/typechain-types/contracts/testing/TokenSetup.t.sol/TokenSetup.ts b/typechain-types/contracts/testing/TokenSetup.t.sol/TokenSetup.ts new file mode 100644 index 00000000..645e9700 --- /dev/null +++ b/typechain-types/contracts/testing/TokenSetup.t.sol/TokenSetup.ts @@ -0,0 +1,1186 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../common"; + +export declare namespace TokenSetup { + export type ContractsStruct = { + zetaSetup: AddressLike; + evmSetup: AddressLike; + nodeLogicMock: AddressLike; + deployer: AddressLike; + tss: AddressLike; + }; + + export type ContractsStructOutput = [ + zetaSetup: string, + evmSetup: string, + nodeLogicMock: string, + deployer: string, + tss: string + ] & { + zetaSetup: string; + evmSetup: string; + nodeLogicMock: string; + deployer: string; + tss: string; + }; + + export type TokenInfoStruct = { + zrc20: AddressLike; + asset: AddressLike; + name: string; + symbol: string; + chainId: BigNumberish; + isGasToken: boolean; + decimals: BigNumberish; + }; + + export type TokenInfoStructOutput = [ + zrc20: string, + asset: string, + name: string, + symbol: string, + chainId: bigint, + isGasToken: boolean, + decimals: bigint + ] & { + zrc20: string; + asset: string; + name: string; + symbol: string; + chainId: bigint; + isGasToken: boolean; + decimals: bigint; + }; +} + +export declare namespace StdInvariant { + export type FuzzSelectorStruct = { + addr: AddressLike; + selectors: BytesLike[]; + }; + + export type FuzzSelectorStructOutput = [addr: string, selectors: string[]] & { + addr: string; + selectors: string[]; + }; + + export type FuzzArtifactSelectorStruct = { + artifact: string; + selectors: BytesLike[]; + }; + + export type FuzzArtifactSelectorStructOutput = [ + artifact: string, + selectors: string[] + ] & { artifact: string; selectors: string[] }; + + export type FuzzInterfaceStruct = { addr: AddressLike; artifacts: string[] }; + + export type FuzzInterfaceStructOutput = [ + addr: string, + artifacts: string[] + ] & { addr: string; artifacts: string[] }; +} + +export interface TokenSetupInterface extends Interface { + getFunction( + nameOrSignature: + | "IS_TEST" + | "createToken" + | "excludeArtifacts" + | "excludeContracts" + | "excludeSelectors" + | "excludeSenders" + | "failed" + | "foreignCoins" + | "getForeignCoins" + | "prepareUniswapV2" + | "targetArtifactSelectors" + | "targetArtifacts" + | "targetContracts" + | "targetInterfaces" + | "targetSelectors" + | "targetSenders" + | "uniswapV2AddLiquidity" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "log" + | "log_address" + | "log_array(uint256[])" + | "log_array(int256[])" + | "log_array(address[])" + | "log_bytes" + | "log_bytes32" + | "log_int" + | "log_named_address" + | "log_named_array(string,uint256[])" + | "log_named_array(string,int256[])" + | "log_named_array(string,address[])" + | "log_named_bytes" + | "log_named_bytes32" + | "log_named_decimal_int" + | "log_named_decimal_uint" + | "log_named_int" + | "log_named_string" + | "log_named_uint" + | "log_string" + | "log_uint" + | "logs" + ): EventFragment; + + encodeFunctionData(functionFragment: "IS_TEST", values?: undefined): string; + encodeFunctionData( + functionFragment: "createToken", + values: [ + TokenSetup.ContractsStruct, + string, + boolean, + BigNumberish, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "excludeArtifacts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "excludeContracts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "excludeSelectors", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "excludeSenders", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "failed", values?: undefined): string; + encodeFunctionData( + functionFragment: "foreignCoins", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getForeignCoins", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "prepareUniswapV2", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "targetArtifactSelectors", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetArtifacts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetContracts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetInterfaces", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetSelectors", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetSenders", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "uniswapV2AddLiquidity", + values: [ + AddressLike, + AddressLike, + AddressLike, + AddressLike, + AddressLike, + BigNumberish, + BigNumberish + ] + ): string; + + decodeFunctionResult(functionFragment: "IS_TEST", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "createToken", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "excludeArtifacts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "excludeContracts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "excludeSelectors", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "excludeSenders", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "failed", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "foreignCoins", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getForeignCoins", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "prepareUniswapV2", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetArtifactSelectors", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetArtifacts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetContracts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetInterfaces", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetSelectors", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetSenders", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapV2AddLiquidity", + data: BytesLike + ): Result; +} + +export namespace logEvent { + export type InputTuple = [arg0: string]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_addressEvent { + export type InputTuple = [arg0: AddressLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_array_uint256_array_Event { + export type InputTuple = [val: BigNumberish[]]; + export type OutputTuple = [val: bigint[]]; + export interface OutputObject { + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_array_int256_array_Event { + export type InputTuple = [val: BigNumberish[]]; + export type OutputTuple = [val: bigint[]]; + export interface OutputObject { + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_array_address_array_Event { + export type InputTuple = [val: AddressLike[]]; + export type OutputTuple = [val: string[]]; + export interface OutputObject { + val: string[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_bytesEvent { + export type InputTuple = [arg0: BytesLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_bytes32Event { + export type InputTuple = [arg0: BytesLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_intEvent { + export type InputTuple = [arg0: BigNumberish]; + export type OutputTuple = [arg0: bigint]; + export interface OutputObject { + arg0: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_addressEvent { + export type InputTuple = [key: string, val: AddressLike]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_array_string_uint256_array_Event { + export type InputTuple = [key: string, val: BigNumberish[]]; + export type OutputTuple = [key: string, val: bigint[]]; + export interface OutputObject { + key: string; + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_array_string_int256_array_Event { + export type InputTuple = [key: string, val: BigNumberish[]]; + export type OutputTuple = [key: string, val: bigint[]]; + export interface OutputObject { + key: string; + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_array_string_address_array_Event { + export type InputTuple = [key: string, val: AddressLike[]]; + export type OutputTuple = [key: string, val: string[]]; + export interface OutputObject { + key: string; + val: string[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_bytesEvent { + export type InputTuple = [key: string, val: BytesLike]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_bytes32Event { + export type InputTuple = [key: string, val: BytesLike]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_decimal_intEvent { + export type InputTuple = [ + key: string, + val: BigNumberish, + decimals: BigNumberish + ]; + export type OutputTuple = [key: string, val: bigint, decimals: bigint]; + export interface OutputObject { + key: string; + val: bigint; + decimals: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_decimal_uintEvent { + export type InputTuple = [ + key: string, + val: BigNumberish, + decimals: BigNumberish + ]; + export type OutputTuple = [key: string, val: bigint, decimals: bigint]; + export interface OutputObject { + key: string; + val: bigint; + decimals: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_intEvent { + export type InputTuple = [key: string, val: BigNumberish]; + export type OutputTuple = [key: string, val: bigint]; + export interface OutputObject { + key: string; + val: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_stringEvent { + export type InputTuple = [key: string, val: string]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_uintEvent { + export type InputTuple = [key: string, val: BigNumberish]; + export type OutputTuple = [key: string, val: bigint]; + export interface OutputObject { + key: string; + val: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_stringEvent { + export type InputTuple = [arg0: string]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_uintEvent { + export type InputTuple = [arg0: BigNumberish]; + export type OutputTuple = [arg0: bigint]; + export interface OutputObject { + arg0: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace logsEvent { + export type InputTuple = [arg0: BytesLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface TokenSetup extends BaseContract { + connect(runner?: ContractRunner | null): TokenSetup; + waitForDeployment(): Promise; + + interface: TokenSetupInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + IS_TEST: TypedContractMethod<[], [boolean], "view">; + + createToken: TypedContractMethod< + [ + contracts: TokenSetup.ContractsStruct, + symbol: string, + isGasToken: boolean, + chainId: BigNumberish, + decimals: BigNumberish + ], + [TokenSetup.TokenInfoStructOutput], + "nonpayable" + >; + + excludeArtifacts: TypedContractMethod<[], [string[]], "view">; + + excludeContracts: TypedContractMethod<[], [string[]], "view">; + + excludeSelectors: TypedContractMethod< + [], + [StdInvariant.FuzzSelectorStructOutput[]], + "view" + >; + + excludeSenders: TypedContractMethod<[], [string[]], "view">; + + failed: TypedContractMethod<[], [boolean], "view">; + + foreignCoins: TypedContractMethod< + [arg0: BigNumberish], + [ + [string, string, string, string, bigint, boolean, bigint] & { + zrc20: string; + asset: string; + name: string; + symbol: string; + chainId: bigint; + isGasToken: boolean; + decimals: bigint; + } + ], + "view" + >; + + getForeignCoins: TypedContractMethod< + [], + [TokenSetup.TokenInfoStructOutput[]], + "view" + >; + + prepareUniswapV2: TypedContractMethod< + [deployer: AddressLike, wzeta: AddressLike], + [[string, string] & { factory: string; router: string }], + "nonpayable" + >; + + targetArtifactSelectors: TypedContractMethod< + [], + [StdInvariant.FuzzArtifactSelectorStructOutput[]], + "view" + >; + + targetArtifacts: TypedContractMethod<[], [string[]], "view">; + + targetContracts: TypedContractMethod<[], [string[]], "view">; + + targetInterfaces: TypedContractMethod< + [], + [StdInvariant.FuzzInterfaceStructOutput[]], + "view" + >; + + targetSelectors: TypedContractMethod< + [], + [StdInvariant.FuzzSelectorStructOutput[]], + "view" + >; + + targetSenders: TypedContractMethod<[], [string[]], "view">; + + uniswapV2AddLiquidity: TypedContractMethod< + [ + uniswapV2Router: AddressLike, + uniswapV2Factory: AddressLike, + zrc20: AddressLike, + wzeta: AddressLike, + deployer: AddressLike, + zrc20Amount: BigNumberish, + wzetaAmount: BigNumberish + ], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "IS_TEST" + ): TypedContractMethod<[], [boolean], "view">; + getFunction( + nameOrSignature: "createToken" + ): TypedContractMethod< + [ + contracts: TokenSetup.ContractsStruct, + symbol: string, + isGasToken: boolean, + chainId: BigNumberish, + decimals: BigNumberish + ], + [TokenSetup.TokenInfoStructOutput], + "nonpayable" + >; + getFunction( + nameOrSignature: "excludeArtifacts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "excludeContracts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "excludeSelectors" + ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; + getFunction( + nameOrSignature: "excludeSenders" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "failed" + ): TypedContractMethod<[], [boolean], "view">; + getFunction( + nameOrSignature: "foreignCoins" + ): TypedContractMethod< + [arg0: BigNumberish], + [ + [string, string, string, string, bigint, boolean, bigint] & { + zrc20: string; + asset: string; + name: string; + symbol: string; + chainId: bigint; + isGasToken: boolean; + decimals: bigint; + } + ], + "view" + >; + getFunction( + nameOrSignature: "getForeignCoins" + ): TypedContractMethod<[], [TokenSetup.TokenInfoStructOutput[]], "view">; + getFunction( + nameOrSignature: "prepareUniswapV2" + ): TypedContractMethod< + [deployer: AddressLike, wzeta: AddressLike], + [[string, string] & { factory: string; router: string }], + "nonpayable" + >; + getFunction( + nameOrSignature: "targetArtifactSelectors" + ): TypedContractMethod< + [], + [StdInvariant.FuzzArtifactSelectorStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "targetArtifacts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "targetContracts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "targetInterfaces" + ): TypedContractMethod< + [], + [StdInvariant.FuzzInterfaceStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "targetSelectors" + ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; + getFunction( + nameOrSignature: "targetSenders" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "uniswapV2AddLiquidity" + ): TypedContractMethod< + [ + uniswapV2Router: AddressLike, + uniswapV2Factory: AddressLike, + zrc20: AddressLike, + wzeta: AddressLike, + deployer: AddressLike, + zrc20Amount: BigNumberish, + wzetaAmount: BigNumberish + ], + [void], + "nonpayable" + >; + + getEvent( + key: "log" + ): TypedContractEvent< + logEvent.InputTuple, + logEvent.OutputTuple, + logEvent.OutputObject + >; + getEvent( + key: "log_address" + ): TypedContractEvent< + log_addressEvent.InputTuple, + log_addressEvent.OutputTuple, + log_addressEvent.OutputObject + >; + getEvent( + key: "log_array(uint256[])" + ): TypedContractEvent< + log_array_uint256_array_Event.InputTuple, + log_array_uint256_array_Event.OutputTuple, + log_array_uint256_array_Event.OutputObject + >; + getEvent( + key: "log_array(int256[])" + ): TypedContractEvent< + log_array_int256_array_Event.InputTuple, + log_array_int256_array_Event.OutputTuple, + log_array_int256_array_Event.OutputObject + >; + getEvent( + key: "log_array(address[])" + ): TypedContractEvent< + log_array_address_array_Event.InputTuple, + log_array_address_array_Event.OutputTuple, + log_array_address_array_Event.OutputObject + >; + getEvent( + key: "log_bytes" + ): TypedContractEvent< + log_bytesEvent.InputTuple, + log_bytesEvent.OutputTuple, + log_bytesEvent.OutputObject + >; + getEvent( + key: "log_bytes32" + ): TypedContractEvent< + log_bytes32Event.InputTuple, + log_bytes32Event.OutputTuple, + log_bytes32Event.OutputObject + >; + getEvent( + key: "log_int" + ): TypedContractEvent< + log_intEvent.InputTuple, + log_intEvent.OutputTuple, + log_intEvent.OutputObject + >; + getEvent( + key: "log_named_address" + ): TypedContractEvent< + log_named_addressEvent.InputTuple, + log_named_addressEvent.OutputTuple, + log_named_addressEvent.OutputObject + >; + getEvent( + key: "log_named_array(string,uint256[])" + ): TypedContractEvent< + log_named_array_string_uint256_array_Event.InputTuple, + log_named_array_string_uint256_array_Event.OutputTuple, + log_named_array_string_uint256_array_Event.OutputObject + >; + getEvent( + key: "log_named_array(string,int256[])" + ): TypedContractEvent< + log_named_array_string_int256_array_Event.InputTuple, + log_named_array_string_int256_array_Event.OutputTuple, + log_named_array_string_int256_array_Event.OutputObject + >; + getEvent( + key: "log_named_array(string,address[])" + ): TypedContractEvent< + log_named_array_string_address_array_Event.InputTuple, + log_named_array_string_address_array_Event.OutputTuple, + log_named_array_string_address_array_Event.OutputObject + >; + getEvent( + key: "log_named_bytes" + ): TypedContractEvent< + log_named_bytesEvent.InputTuple, + log_named_bytesEvent.OutputTuple, + log_named_bytesEvent.OutputObject + >; + getEvent( + key: "log_named_bytes32" + ): TypedContractEvent< + log_named_bytes32Event.InputTuple, + log_named_bytes32Event.OutputTuple, + log_named_bytes32Event.OutputObject + >; + getEvent( + key: "log_named_decimal_int" + ): TypedContractEvent< + log_named_decimal_intEvent.InputTuple, + log_named_decimal_intEvent.OutputTuple, + log_named_decimal_intEvent.OutputObject + >; + getEvent( + key: "log_named_decimal_uint" + ): TypedContractEvent< + log_named_decimal_uintEvent.InputTuple, + log_named_decimal_uintEvent.OutputTuple, + log_named_decimal_uintEvent.OutputObject + >; + getEvent( + key: "log_named_int" + ): TypedContractEvent< + log_named_intEvent.InputTuple, + log_named_intEvent.OutputTuple, + log_named_intEvent.OutputObject + >; + getEvent( + key: "log_named_string" + ): TypedContractEvent< + log_named_stringEvent.InputTuple, + log_named_stringEvent.OutputTuple, + log_named_stringEvent.OutputObject + >; + getEvent( + key: "log_named_uint" + ): TypedContractEvent< + log_named_uintEvent.InputTuple, + log_named_uintEvent.OutputTuple, + log_named_uintEvent.OutputObject + >; + getEvent( + key: "log_string" + ): TypedContractEvent< + log_stringEvent.InputTuple, + log_stringEvent.OutputTuple, + log_stringEvent.OutputObject + >; + getEvent( + key: "log_uint" + ): TypedContractEvent< + log_uintEvent.InputTuple, + log_uintEvent.OutputTuple, + log_uintEvent.OutputObject + >; + getEvent( + key: "logs" + ): TypedContractEvent< + logsEvent.InputTuple, + logsEvent.OutputTuple, + logsEvent.OutputObject + >; + + filters: { + "log(string)": TypedContractEvent< + logEvent.InputTuple, + logEvent.OutputTuple, + logEvent.OutputObject + >; + log: TypedContractEvent< + logEvent.InputTuple, + logEvent.OutputTuple, + logEvent.OutputObject + >; + + "log_address(address)": TypedContractEvent< + log_addressEvent.InputTuple, + log_addressEvent.OutputTuple, + log_addressEvent.OutputObject + >; + log_address: TypedContractEvent< + log_addressEvent.InputTuple, + log_addressEvent.OutputTuple, + log_addressEvent.OutputObject + >; + + "log_array(uint256[])": TypedContractEvent< + log_array_uint256_array_Event.InputTuple, + log_array_uint256_array_Event.OutputTuple, + log_array_uint256_array_Event.OutputObject + >; + "log_array(int256[])": TypedContractEvent< + log_array_int256_array_Event.InputTuple, + log_array_int256_array_Event.OutputTuple, + log_array_int256_array_Event.OutputObject + >; + "log_array(address[])": TypedContractEvent< + log_array_address_array_Event.InputTuple, + log_array_address_array_Event.OutputTuple, + log_array_address_array_Event.OutputObject + >; + + "log_bytes(bytes)": TypedContractEvent< + log_bytesEvent.InputTuple, + log_bytesEvent.OutputTuple, + log_bytesEvent.OutputObject + >; + log_bytes: TypedContractEvent< + log_bytesEvent.InputTuple, + log_bytesEvent.OutputTuple, + log_bytesEvent.OutputObject + >; + + "log_bytes32(bytes32)": TypedContractEvent< + log_bytes32Event.InputTuple, + log_bytes32Event.OutputTuple, + log_bytes32Event.OutputObject + >; + log_bytes32: TypedContractEvent< + log_bytes32Event.InputTuple, + log_bytes32Event.OutputTuple, + log_bytes32Event.OutputObject + >; + + "log_int(int256)": TypedContractEvent< + log_intEvent.InputTuple, + log_intEvent.OutputTuple, + log_intEvent.OutputObject + >; + log_int: TypedContractEvent< + log_intEvent.InputTuple, + log_intEvent.OutputTuple, + log_intEvent.OutputObject + >; + + "log_named_address(string,address)": TypedContractEvent< + log_named_addressEvent.InputTuple, + log_named_addressEvent.OutputTuple, + log_named_addressEvent.OutputObject + >; + log_named_address: TypedContractEvent< + log_named_addressEvent.InputTuple, + log_named_addressEvent.OutputTuple, + log_named_addressEvent.OutputObject + >; + + "log_named_array(string,uint256[])": TypedContractEvent< + log_named_array_string_uint256_array_Event.InputTuple, + log_named_array_string_uint256_array_Event.OutputTuple, + log_named_array_string_uint256_array_Event.OutputObject + >; + "log_named_array(string,int256[])": TypedContractEvent< + log_named_array_string_int256_array_Event.InputTuple, + log_named_array_string_int256_array_Event.OutputTuple, + log_named_array_string_int256_array_Event.OutputObject + >; + "log_named_array(string,address[])": TypedContractEvent< + log_named_array_string_address_array_Event.InputTuple, + log_named_array_string_address_array_Event.OutputTuple, + log_named_array_string_address_array_Event.OutputObject + >; + + "log_named_bytes(string,bytes)": TypedContractEvent< + log_named_bytesEvent.InputTuple, + log_named_bytesEvent.OutputTuple, + log_named_bytesEvent.OutputObject + >; + log_named_bytes: TypedContractEvent< + log_named_bytesEvent.InputTuple, + log_named_bytesEvent.OutputTuple, + log_named_bytesEvent.OutputObject + >; + + "log_named_bytes32(string,bytes32)": TypedContractEvent< + log_named_bytes32Event.InputTuple, + log_named_bytes32Event.OutputTuple, + log_named_bytes32Event.OutputObject + >; + log_named_bytes32: TypedContractEvent< + log_named_bytes32Event.InputTuple, + log_named_bytes32Event.OutputTuple, + log_named_bytes32Event.OutputObject + >; + + "log_named_decimal_int(string,int256,uint256)": TypedContractEvent< + log_named_decimal_intEvent.InputTuple, + log_named_decimal_intEvent.OutputTuple, + log_named_decimal_intEvent.OutputObject + >; + log_named_decimal_int: TypedContractEvent< + log_named_decimal_intEvent.InputTuple, + log_named_decimal_intEvent.OutputTuple, + log_named_decimal_intEvent.OutputObject + >; + + "log_named_decimal_uint(string,uint256,uint256)": TypedContractEvent< + log_named_decimal_uintEvent.InputTuple, + log_named_decimal_uintEvent.OutputTuple, + log_named_decimal_uintEvent.OutputObject + >; + log_named_decimal_uint: TypedContractEvent< + log_named_decimal_uintEvent.InputTuple, + log_named_decimal_uintEvent.OutputTuple, + log_named_decimal_uintEvent.OutputObject + >; + + "log_named_int(string,int256)": TypedContractEvent< + log_named_intEvent.InputTuple, + log_named_intEvent.OutputTuple, + log_named_intEvent.OutputObject + >; + log_named_int: TypedContractEvent< + log_named_intEvent.InputTuple, + log_named_intEvent.OutputTuple, + log_named_intEvent.OutputObject + >; + + "log_named_string(string,string)": TypedContractEvent< + log_named_stringEvent.InputTuple, + log_named_stringEvent.OutputTuple, + log_named_stringEvent.OutputObject + >; + log_named_string: TypedContractEvent< + log_named_stringEvent.InputTuple, + log_named_stringEvent.OutputTuple, + log_named_stringEvent.OutputObject + >; + + "log_named_uint(string,uint256)": TypedContractEvent< + log_named_uintEvent.InputTuple, + log_named_uintEvent.OutputTuple, + log_named_uintEvent.OutputObject + >; + log_named_uint: TypedContractEvent< + log_named_uintEvent.InputTuple, + log_named_uintEvent.OutputTuple, + log_named_uintEvent.OutputObject + >; + + "log_string(string)": TypedContractEvent< + log_stringEvent.InputTuple, + log_stringEvent.OutputTuple, + log_stringEvent.OutputObject + >; + log_string: TypedContractEvent< + log_stringEvent.InputTuple, + log_stringEvent.OutputTuple, + log_stringEvent.OutputObject + >; + + "log_uint(uint256)": TypedContractEvent< + log_uintEvent.InputTuple, + log_uintEvent.OutputTuple, + log_uintEvent.OutputObject + >; + log_uint: TypedContractEvent< + log_uintEvent.InputTuple, + log_uintEvent.OutputTuple, + log_uintEvent.OutputObject + >; + + "logs(bytes)": TypedContractEvent< + logsEvent.InputTuple, + logsEvent.OutputTuple, + logsEvent.OutputObject + >; + logs: TypedContractEvent< + logsEvent.InputTuple, + logsEvent.OutputTuple, + logsEvent.OutputObject + >; + }; +} diff --git a/typechain-types/contracts/testing/TokenSetup.t.sol/index.ts b/typechain-types/contracts/testing/TokenSetup.t.sol/index.ts new file mode 100644 index 00000000..56137864 --- /dev/null +++ b/typechain-types/contracts/testing/TokenSetup.t.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { TokenSetup } from "./TokenSetup"; diff --git a/typechain-types/contracts/testing/UniswapV2SetupLib.sol/IUniswapV2Factory.ts b/typechain-types/contracts/testing/UniswapV2SetupLib.sol/IUniswapV2Factory.ts new file mode 100644 index 00000000..4c09f370 --- /dev/null +++ b/typechain-types/contracts/testing/UniswapV2SetupLib.sol/IUniswapV2Factory.ts @@ -0,0 +1,114 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../../common"; + +export interface IUniswapV2FactoryInterface extends Interface { + getFunction(nameOrSignature: "createPair" | "getPair"): FunctionFragment; + + encodeFunctionData( + functionFragment: "createPair", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "getPair", + values: [AddressLike, AddressLike] + ): string; + + decodeFunctionResult(functionFragment: "createPair", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "getPair", data: BytesLike): Result; +} + +export interface IUniswapV2Factory extends BaseContract { + connect(runner?: ContractRunner | null): IUniswapV2Factory; + waitForDeployment(): Promise; + + interface: IUniswapV2FactoryInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + createPair: TypedContractMethod< + [tokenA: AddressLike, tokenB: AddressLike], + [string], + "nonpayable" + >; + + getPair: TypedContractMethod< + [tokenA: AddressLike, tokenB: AddressLike], + [string], + "view" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "createPair" + ): TypedContractMethod< + [tokenA: AddressLike, tokenB: AddressLike], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "getPair" + ): TypedContractMethod< + [tokenA: AddressLike, tokenB: AddressLike], + [string], + "view" + >; + + filters: {}; +} diff --git a/typechain-types/contracts/testing/UniswapV2SetupLib.sol/IUniswapV2Router02.ts b/typechain-types/contracts/testing/UniswapV2SetupLib.sol/IUniswapV2Router02.ts new file mode 100644 index 00000000..ef7146e4 --- /dev/null +++ b/typechain-types/contracts/testing/UniswapV2SetupLib.sol/IUniswapV2Router02.ts @@ -0,0 +1,139 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../../common"; + +export interface IUniswapV2Router02Interface extends Interface { + getFunction(nameOrSignature: "addLiquidity"): FunctionFragment; + + encodeFunctionData( + functionFragment: "addLiquidity", + values: [ + AddressLike, + AddressLike, + BigNumberish, + BigNumberish, + BigNumberish, + BigNumberish, + AddressLike, + BigNumberish + ] + ): string; + + decodeFunctionResult( + functionFragment: "addLiquidity", + data: BytesLike + ): Result; +} + +export interface IUniswapV2Router02 extends BaseContract { + connect(runner?: ContractRunner | null): IUniswapV2Router02; + waitForDeployment(): Promise; + + interface: IUniswapV2Router02Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + addLiquidity: TypedContractMethod< + [ + tokenA: AddressLike, + tokenB: AddressLike, + amountADesired: BigNumberish, + amountBDesired: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [ + [bigint, bigint, bigint] & { + amountA: bigint; + amountB: bigint; + liquidity: bigint; + } + ], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "addLiquidity" + ): TypedContractMethod< + [ + tokenA: AddressLike, + tokenB: AddressLike, + amountADesired: BigNumberish, + amountBDesired: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: AddressLike, + deadline: BigNumberish + ], + [ + [bigint, bigint, bigint] & { + amountA: bigint; + amountB: bigint; + liquidity: bigint; + } + ], + "nonpayable" + >; + + filters: {}; +} diff --git a/typechain-types/contracts/testing/UniswapV2SetupLib.sol/UniswapV2SetupLib.ts b/typechain-types/contracts/testing/UniswapV2SetupLib.sol/UniswapV2SetupLib.ts new file mode 100644 index 00000000..4a93dd23 --- /dev/null +++ b/typechain-types/contracts/testing/UniswapV2SetupLib.sol/UniswapV2SetupLib.ts @@ -0,0 +1,1034 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../common"; + +export declare namespace StdInvariant { + export type FuzzSelectorStruct = { + addr: AddressLike; + selectors: BytesLike[]; + }; + + export type FuzzSelectorStructOutput = [addr: string, selectors: string[]] & { + addr: string; + selectors: string[]; + }; + + export type FuzzArtifactSelectorStruct = { + artifact: string; + selectors: BytesLike[]; + }; + + export type FuzzArtifactSelectorStructOutput = [ + artifact: string, + selectors: string[] + ] & { artifact: string; selectors: string[] }; + + export type FuzzInterfaceStruct = { addr: AddressLike; artifacts: string[] }; + + export type FuzzInterfaceStructOutput = [ + addr: string, + artifacts: string[] + ] & { addr: string; artifacts: string[] }; +} + +export interface UniswapV2SetupLibInterface extends Interface { + getFunction( + nameOrSignature: + | "IS_TEST" + | "excludeArtifacts" + | "excludeContracts" + | "excludeSelectors" + | "excludeSenders" + | "failed" + | "prepareUniswapV2" + | "targetArtifactSelectors" + | "targetArtifacts" + | "targetContracts" + | "targetInterfaces" + | "targetSelectors" + | "targetSenders" + | "uniswapV2AddLiquidity" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "log" + | "log_address" + | "log_array(uint256[])" + | "log_array(int256[])" + | "log_array(address[])" + | "log_bytes" + | "log_bytes32" + | "log_int" + | "log_named_address" + | "log_named_array(string,uint256[])" + | "log_named_array(string,int256[])" + | "log_named_array(string,address[])" + | "log_named_bytes" + | "log_named_bytes32" + | "log_named_decimal_int" + | "log_named_decimal_uint" + | "log_named_int" + | "log_named_string" + | "log_named_uint" + | "log_string" + | "log_uint" + | "logs" + ): EventFragment; + + encodeFunctionData(functionFragment: "IS_TEST", values?: undefined): string; + encodeFunctionData( + functionFragment: "excludeArtifacts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "excludeContracts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "excludeSelectors", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "excludeSenders", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "failed", values?: undefined): string; + encodeFunctionData( + functionFragment: "prepareUniswapV2", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "targetArtifactSelectors", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetArtifacts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetContracts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetInterfaces", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetSelectors", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetSenders", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "uniswapV2AddLiquidity", + values: [ + AddressLike, + AddressLike, + AddressLike, + AddressLike, + AddressLike, + BigNumberish, + BigNumberish + ] + ): string; + + decodeFunctionResult(functionFragment: "IS_TEST", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "excludeArtifacts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "excludeContracts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "excludeSelectors", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "excludeSenders", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "failed", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "prepareUniswapV2", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetArtifactSelectors", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetArtifacts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetContracts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetInterfaces", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetSelectors", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetSenders", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapV2AddLiquidity", + data: BytesLike + ): Result; +} + +export namespace logEvent { + export type InputTuple = [arg0: string]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_addressEvent { + export type InputTuple = [arg0: AddressLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_array_uint256_array_Event { + export type InputTuple = [val: BigNumberish[]]; + export type OutputTuple = [val: bigint[]]; + export interface OutputObject { + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_array_int256_array_Event { + export type InputTuple = [val: BigNumberish[]]; + export type OutputTuple = [val: bigint[]]; + export interface OutputObject { + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_array_address_array_Event { + export type InputTuple = [val: AddressLike[]]; + export type OutputTuple = [val: string[]]; + export interface OutputObject { + val: string[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_bytesEvent { + export type InputTuple = [arg0: BytesLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_bytes32Event { + export type InputTuple = [arg0: BytesLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_intEvent { + export type InputTuple = [arg0: BigNumberish]; + export type OutputTuple = [arg0: bigint]; + export interface OutputObject { + arg0: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_addressEvent { + export type InputTuple = [key: string, val: AddressLike]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_array_string_uint256_array_Event { + export type InputTuple = [key: string, val: BigNumberish[]]; + export type OutputTuple = [key: string, val: bigint[]]; + export interface OutputObject { + key: string; + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_array_string_int256_array_Event { + export type InputTuple = [key: string, val: BigNumberish[]]; + export type OutputTuple = [key: string, val: bigint[]]; + export interface OutputObject { + key: string; + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_array_string_address_array_Event { + export type InputTuple = [key: string, val: AddressLike[]]; + export type OutputTuple = [key: string, val: string[]]; + export interface OutputObject { + key: string; + val: string[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_bytesEvent { + export type InputTuple = [key: string, val: BytesLike]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_bytes32Event { + export type InputTuple = [key: string, val: BytesLike]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_decimal_intEvent { + export type InputTuple = [ + key: string, + val: BigNumberish, + decimals: BigNumberish + ]; + export type OutputTuple = [key: string, val: bigint, decimals: bigint]; + export interface OutputObject { + key: string; + val: bigint; + decimals: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_decimal_uintEvent { + export type InputTuple = [ + key: string, + val: BigNumberish, + decimals: BigNumberish + ]; + export type OutputTuple = [key: string, val: bigint, decimals: bigint]; + export interface OutputObject { + key: string; + val: bigint; + decimals: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_intEvent { + export type InputTuple = [key: string, val: BigNumberish]; + export type OutputTuple = [key: string, val: bigint]; + export interface OutputObject { + key: string; + val: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_stringEvent { + export type InputTuple = [key: string, val: string]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_uintEvent { + export type InputTuple = [key: string, val: BigNumberish]; + export type OutputTuple = [key: string, val: bigint]; + export interface OutputObject { + key: string; + val: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_stringEvent { + export type InputTuple = [arg0: string]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_uintEvent { + export type InputTuple = [arg0: BigNumberish]; + export type OutputTuple = [arg0: bigint]; + export interface OutputObject { + arg0: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace logsEvent { + export type InputTuple = [arg0: BytesLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface UniswapV2SetupLib extends BaseContract { + connect(runner?: ContractRunner | null): UniswapV2SetupLib; + waitForDeployment(): Promise; + + interface: UniswapV2SetupLibInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + IS_TEST: TypedContractMethod<[], [boolean], "view">; + + excludeArtifacts: TypedContractMethod<[], [string[]], "view">; + + excludeContracts: TypedContractMethod<[], [string[]], "view">; + + excludeSelectors: TypedContractMethod< + [], + [StdInvariant.FuzzSelectorStructOutput[]], + "view" + >; + + excludeSenders: TypedContractMethod<[], [string[]], "view">; + + failed: TypedContractMethod<[], [boolean], "view">; + + prepareUniswapV2: TypedContractMethod< + [deployer: AddressLike, wzeta: AddressLike], + [[string, string] & { factory: string; router: string }], + "nonpayable" + >; + + targetArtifactSelectors: TypedContractMethod< + [], + [StdInvariant.FuzzArtifactSelectorStructOutput[]], + "view" + >; + + targetArtifacts: TypedContractMethod<[], [string[]], "view">; + + targetContracts: TypedContractMethod<[], [string[]], "view">; + + targetInterfaces: TypedContractMethod< + [], + [StdInvariant.FuzzInterfaceStructOutput[]], + "view" + >; + + targetSelectors: TypedContractMethod< + [], + [StdInvariant.FuzzSelectorStructOutput[]], + "view" + >; + + targetSenders: TypedContractMethod<[], [string[]], "view">; + + uniswapV2AddLiquidity: TypedContractMethod< + [ + uniswapV2Router: AddressLike, + uniswapV2Factory: AddressLike, + zrc20: AddressLike, + wzeta: AddressLike, + deployer: AddressLike, + zrc20Amount: BigNumberish, + wzetaAmount: BigNumberish + ], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "IS_TEST" + ): TypedContractMethod<[], [boolean], "view">; + getFunction( + nameOrSignature: "excludeArtifacts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "excludeContracts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "excludeSelectors" + ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; + getFunction( + nameOrSignature: "excludeSenders" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "failed" + ): TypedContractMethod<[], [boolean], "view">; + getFunction( + nameOrSignature: "prepareUniswapV2" + ): TypedContractMethod< + [deployer: AddressLike, wzeta: AddressLike], + [[string, string] & { factory: string; router: string }], + "nonpayable" + >; + getFunction( + nameOrSignature: "targetArtifactSelectors" + ): TypedContractMethod< + [], + [StdInvariant.FuzzArtifactSelectorStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "targetArtifacts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "targetContracts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "targetInterfaces" + ): TypedContractMethod< + [], + [StdInvariant.FuzzInterfaceStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "targetSelectors" + ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; + getFunction( + nameOrSignature: "targetSenders" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "uniswapV2AddLiquidity" + ): TypedContractMethod< + [ + uniswapV2Router: AddressLike, + uniswapV2Factory: AddressLike, + zrc20: AddressLike, + wzeta: AddressLike, + deployer: AddressLike, + zrc20Amount: BigNumberish, + wzetaAmount: BigNumberish + ], + [void], + "nonpayable" + >; + + getEvent( + key: "log" + ): TypedContractEvent< + logEvent.InputTuple, + logEvent.OutputTuple, + logEvent.OutputObject + >; + getEvent( + key: "log_address" + ): TypedContractEvent< + log_addressEvent.InputTuple, + log_addressEvent.OutputTuple, + log_addressEvent.OutputObject + >; + getEvent( + key: "log_array(uint256[])" + ): TypedContractEvent< + log_array_uint256_array_Event.InputTuple, + log_array_uint256_array_Event.OutputTuple, + log_array_uint256_array_Event.OutputObject + >; + getEvent( + key: "log_array(int256[])" + ): TypedContractEvent< + log_array_int256_array_Event.InputTuple, + log_array_int256_array_Event.OutputTuple, + log_array_int256_array_Event.OutputObject + >; + getEvent( + key: "log_array(address[])" + ): TypedContractEvent< + log_array_address_array_Event.InputTuple, + log_array_address_array_Event.OutputTuple, + log_array_address_array_Event.OutputObject + >; + getEvent( + key: "log_bytes" + ): TypedContractEvent< + log_bytesEvent.InputTuple, + log_bytesEvent.OutputTuple, + log_bytesEvent.OutputObject + >; + getEvent( + key: "log_bytes32" + ): TypedContractEvent< + log_bytes32Event.InputTuple, + log_bytes32Event.OutputTuple, + log_bytes32Event.OutputObject + >; + getEvent( + key: "log_int" + ): TypedContractEvent< + log_intEvent.InputTuple, + log_intEvent.OutputTuple, + log_intEvent.OutputObject + >; + getEvent( + key: "log_named_address" + ): TypedContractEvent< + log_named_addressEvent.InputTuple, + log_named_addressEvent.OutputTuple, + log_named_addressEvent.OutputObject + >; + getEvent( + key: "log_named_array(string,uint256[])" + ): TypedContractEvent< + log_named_array_string_uint256_array_Event.InputTuple, + log_named_array_string_uint256_array_Event.OutputTuple, + log_named_array_string_uint256_array_Event.OutputObject + >; + getEvent( + key: "log_named_array(string,int256[])" + ): TypedContractEvent< + log_named_array_string_int256_array_Event.InputTuple, + log_named_array_string_int256_array_Event.OutputTuple, + log_named_array_string_int256_array_Event.OutputObject + >; + getEvent( + key: "log_named_array(string,address[])" + ): TypedContractEvent< + log_named_array_string_address_array_Event.InputTuple, + log_named_array_string_address_array_Event.OutputTuple, + log_named_array_string_address_array_Event.OutputObject + >; + getEvent( + key: "log_named_bytes" + ): TypedContractEvent< + log_named_bytesEvent.InputTuple, + log_named_bytesEvent.OutputTuple, + log_named_bytesEvent.OutputObject + >; + getEvent( + key: "log_named_bytes32" + ): TypedContractEvent< + log_named_bytes32Event.InputTuple, + log_named_bytes32Event.OutputTuple, + log_named_bytes32Event.OutputObject + >; + getEvent( + key: "log_named_decimal_int" + ): TypedContractEvent< + log_named_decimal_intEvent.InputTuple, + log_named_decimal_intEvent.OutputTuple, + log_named_decimal_intEvent.OutputObject + >; + getEvent( + key: "log_named_decimal_uint" + ): TypedContractEvent< + log_named_decimal_uintEvent.InputTuple, + log_named_decimal_uintEvent.OutputTuple, + log_named_decimal_uintEvent.OutputObject + >; + getEvent( + key: "log_named_int" + ): TypedContractEvent< + log_named_intEvent.InputTuple, + log_named_intEvent.OutputTuple, + log_named_intEvent.OutputObject + >; + getEvent( + key: "log_named_string" + ): TypedContractEvent< + log_named_stringEvent.InputTuple, + log_named_stringEvent.OutputTuple, + log_named_stringEvent.OutputObject + >; + getEvent( + key: "log_named_uint" + ): TypedContractEvent< + log_named_uintEvent.InputTuple, + log_named_uintEvent.OutputTuple, + log_named_uintEvent.OutputObject + >; + getEvent( + key: "log_string" + ): TypedContractEvent< + log_stringEvent.InputTuple, + log_stringEvent.OutputTuple, + log_stringEvent.OutputObject + >; + getEvent( + key: "log_uint" + ): TypedContractEvent< + log_uintEvent.InputTuple, + log_uintEvent.OutputTuple, + log_uintEvent.OutputObject + >; + getEvent( + key: "logs" + ): TypedContractEvent< + logsEvent.InputTuple, + logsEvent.OutputTuple, + logsEvent.OutputObject + >; + + filters: { + "log(string)": TypedContractEvent< + logEvent.InputTuple, + logEvent.OutputTuple, + logEvent.OutputObject + >; + log: TypedContractEvent< + logEvent.InputTuple, + logEvent.OutputTuple, + logEvent.OutputObject + >; + + "log_address(address)": TypedContractEvent< + log_addressEvent.InputTuple, + log_addressEvent.OutputTuple, + log_addressEvent.OutputObject + >; + log_address: TypedContractEvent< + log_addressEvent.InputTuple, + log_addressEvent.OutputTuple, + log_addressEvent.OutputObject + >; + + "log_array(uint256[])": TypedContractEvent< + log_array_uint256_array_Event.InputTuple, + log_array_uint256_array_Event.OutputTuple, + log_array_uint256_array_Event.OutputObject + >; + "log_array(int256[])": TypedContractEvent< + log_array_int256_array_Event.InputTuple, + log_array_int256_array_Event.OutputTuple, + log_array_int256_array_Event.OutputObject + >; + "log_array(address[])": TypedContractEvent< + log_array_address_array_Event.InputTuple, + log_array_address_array_Event.OutputTuple, + log_array_address_array_Event.OutputObject + >; + + "log_bytes(bytes)": TypedContractEvent< + log_bytesEvent.InputTuple, + log_bytesEvent.OutputTuple, + log_bytesEvent.OutputObject + >; + log_bytes: TypedContractEvent< + log_bytesEvent.InputTuple, + log_bytesEvent.OutputTuple, + log_bytesEvent.OutputObject + >; + + "log_bytes32(bytes32)": TypedContractEvent< + log_bytes32Event.InputTuple, + log_bytes32Event.OutputTuple, + log_bytes32Event.OutputObject + >; + log_bytes32: TypedContractEvent< + log_bytes32Event.InputTuple, + log_bytes32Event.OutputTuple, + log_bytes32Event.OutputObject + >; + + "log_int(int256)": TypedContractEvent< + log_intEvent.InputTuple, + log_intEvent.OutputTuple, + log_intEvent.OutputObject + >; + log_int: TypedContractEvent< + log_intEvent.InputTuple, + log_intEvent.OutputTuple, + log_intEvent.OutputObject + >; + + "log_named_address(string,address)": TypedContractEvent< + log_named_addressEvent.InputTuple, + log_named_addressEvent.OutputTuple, + log_named_addressEvent.OutputObject + >; + log_named_address: TypedContractEvent< + log_named_addressEvent.InputTuple, + log_named_addressEvent.OutputTuple, + log_named_addressEvent.OutputObject + >; + + "log_named_array(string,uint256[])": TypedContractEvent< + log_named_array_string_uint256_array_Event.InputTuple, + log_named_array_string_uint256_array_Event.OutputTuple, + log_named_array_string_uint256_array_Event.OutputObject + >; + "log_named_array(string,int256[])": TypedContractEvent< + log_named_array_string_int256_array_Event.InputTuple, + log_named_array_string_int256_array_Event.OutputTuple, + log_named_array_string_int256_array_Event.OutputObject + >; + "log_named_array(string,address[])": TypedContractEvent< + log_named_array_string_address_array_Event.InputTuple, + log_named_array_string_address_array_Event.OutputTuple, + log_named_array_string_address_array_Event.OutputObject + >; + + "log_named_bytes(string,bytes)": TypedContractEvent< + log_named_bytesEvent.InputTuple, + log_named_bytesEvent.OutputTuple, + log_named_bytesEvent.OutputObject + >; + log_named_bytes: TypedContractEvent< + log_named_bytesEvent.InputTuple, + log_named_bytesEvent.OutputTuple, + log_named_bytesEvent.OutputObject + >; + + "log_named_bytes32(string,bytes32)": TypedContractEvent< + log_named_bytes32Event.InputTuple, + log_named_bytes32Event.OutputTuple, + log_named_bytes32Event.OutputObject + >; + log_named_bytes32: TypedContractEvent< + log_named_bytes32Event.InputTuple, + log_named_bytes32Event.OutputTuple, + log_named_bytes32Event.OutputObject + >; + + "log_named_decimal_int(string,int256,uint256)": TypedContractEvent< + log_named_decimal_intEvent.InputTuple, + log_named_decimal_intEvent.OutputTuple, + log_named_decimal_intEvent.OutputObject + >; + log_named_decimal_int: TypedContractEvent< + log_named_decimal_intEvent.InputTuple, + log_named_decimal_intEvent.OutputTuple, + log_named_decimal_intEvent.OutputObject + >; + + "log_named_decimal_uint(string,uint256,uint256)": TypedContractEvent< + log_named_decimal_uintEvent.InputTuple, + log_named_decimal_uintEvent.OutputTuple, + log_named_decimal_uintEvent.OutputObject + >; + log_named_decimal_uint: TypedContractEvent< + log_named_decimal_uintEvent.InputTuple, + log_named_decimal_uintEvent.OutputTuple, + log_named_decimal_uintEvent.OutputObject + >; + + "log_named_int(string,int256)": TypedContractEvent< + log_named_intEvent.InputTuple, + log_named_intEvent.OutputTuple, + log_named_intEvent.OutputObject + >; + log_named_int: TypedContractEvent< + log_named_intEvent.InputTuple, + log_named_intEvent.OutputTuple, + log_named_intEvent.OutputObject + >; + + "log_named_string(string,string)": TypedContractEvent< + log_named_stringEvent.InputTuple, + log_named_stringEvent.OutputTuple, + log_named_stringEvent.OutputObject + >; + log_named_string: TypedContractEvent< + log_named_stringEvent.InputTuple, + log_named_stringEvent.OutputTuple, + log_named_stringEvent.OutputObject + >; + + "log_named_uint(string,uint256)": TypedContractEvent< + log_named_uintEvent.InputTuple, + log_named_uintEvent.OutputTuple, + log_named_uintEvent.OutputObject + >; + log_named_uint: TypedContractEvent< + log_named_uintEvent.InputTuple, + log_named_uintEvent.OutputTuple, + log_named_uintEvent.OutputObject + >; + + "log_string(string)": TypedContractEvent< + log_stringEvent.InputTuple, + log_stringEvent.OutputTuple, + log_stringEvent.OutputObject + >; + log_string: TypedContractEvent< + log_stringEvent.InputTuple, + log_stringEvent.OutputTuple, + log_stringEvent.OutputObject + >; + + "log_uint(uint256)": TypedContractEvent< + log_uintEvent.InputTuple, + log_uintEvent.OutputTuple, + log_uintEvent.OutputObject + >; + log_uint: TypedContractEvent< + log_uintEvent.InputTuple, + log_uintEvent.OutputTuple, + log_uintEvent.OutputObject + >; + + "logs(bytes)": TypedContractEvent< + logsEvent.InputTuple, + logsEvent.OutputTuple, + logsEvent.OutputObject + >; + logs: TypedContractEvent< + logsEvent.InputTuple, + logsEvent.OutputTuple, + logsEvent.OutputObject + >; + }; +} diff --git a/typechain-types/contracts/testing/UniswapV2SetupLib.sol/index.ts b/typechain-types/contracts/testing/UniswapV2SetupLib.sol/index.ts new file mode 100644 index 00000000..dd376e95 --- /dev/null +++ b/typechain-types/contracts/testing/UniswapV2SetupLib.sol/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IUniswapV2Factory } from "./IUniswapV2Factory"; +export type { IUniswapV2Router02 } from "./IUniswapV2Router02"; +export type { UniswapV2SetupLib } from "./UniswapV2SetupLib"; diff --git a/typechain-types/contracts/testing/UniswapV3SetupLib.sol/INonfungiblePositionManager.ts b/typechain-types/contracts/testing/UniswapV3SetupLib.sol/INonfungiblePositionManager.ts new file mode 100644 index 00000000..99689894 --- /dev/null +++ b/typechain-types/contracts/testing/UniswapV3SetupLib.sol/INonfungiblePositionManager.ts @@ -0,0 +1,239 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../../common"; + +export declare namespace INonfungiblePositionManager { + export type MintParamsStruct = { + token0: AddressLike; + token1: AddressLike; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Desired: BigNumberish; + amount1Desired: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: AddressLike; + deadline: BigNumberish; + }; + + export type MintParamsStructOutput = [ + token0: string, + token1: string, + fee: bigint, + tickLower: bigint, + tickUpper: bigint, + amount0Desired: bigint, + amount1Desired: bigint, + amount0Min: bigint, + amount1Min: bigint, + recipient: string, + deadline: bigint + ] & { + token0: string; + token1: string; + fee: bigint; + tickLower: bigint; + tickUpper: bigint; + amount0Desired: bigint; + amount1Desired: bigint; + amount0Min: bigint; + amount1Min: bigint; + recipient: string; + deadline: bigint; + }; +} + +export interface INonfungiblePositionManagerInterface extends Interface { + getFunction( + nameOrSignature: "mint" | "ownerOf" | "positions" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "mint", + values: [INonfungiblePositionManager.MintParamsStruct] + ): string; + encodeFunctionData( + functionFragment: "ownerOf", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "positions", + values: [BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "ownerOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "positions", data: BytesLike): Result; +} + +export interface INonfungiblePositionManager extends BaseContract { + connect(runner?: ContractRunner | null): INonfungiblePositionManager; + waitForDeployment(): Promise; + + interface: INonfungiblePositionManagerInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + mint: TypedContractMethod< + [params: INonfungiblePositionManager.MintParamsStruct], + [ + [bigint, bigint, bigint, bigint] & { + tokenId: bigint; + liquidity: bigint; + amount0: bigint; + amount1: bigint; + } + ], + "nonpayable" + >; + + ownerOf: TypedContractMethod<[tokenId: BigNumberish], [string], "view">; + + positions: TypedContractMethod< + [tokenId: BigNumberish], + [ + [ + bigint, + string, + string, + string, + bigint, + bigint, + bigint, + bigint, + bigint, + bigint, + bigint, + bigint + ] & { + nonce: bigint; + operator: string; + token0: string; + token1: string; + fee: bigint; + tickLower: bigint; + tickUpper: bigint; + liquidity: bigint; + feeGrowthInside0LastX128: bigint; + feeGrowthInside1LastX128: bigint; + tokensOwed0: bigint; + tokensOwed1: bigint; + } + ], + "view" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "mint" + ): TypedContractMethod< + [params: INonfungiblePositionManager.MintParamsStruct], + [ + [bigint, bigint, bigint, bigint] & { + tokenId: bigint; + liquidity: bigint; + amount0: bigint; + amount1: bigint; + } + ], + "nonpayable" + >; + getFunction( + nameOrSignature: "ownerOf" + ): TypedContractMethod<[tokenId: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "positions" + ): TypedContractMethod< + [tokenId: BigNumberish], + [ + [ + bigint, + string, + string, + string, + bigint, + bigint, + bigint, + bigint, + bigint, + bigint, + bigint, + bigint + ] & { + nonce: bigint; + operator: string; + token0: string; + token1: string; + fee: bigint; + tickLower: bigint; + tickUpper: bigint; + liquidity: bigint; + feeGrowthInside0LastX128: bigint; + feeGrowthInside1LastX128: bigint; + tokensOwed0: bigint; + tokensOwed1: bigint; + } + ], + "view" + >; + + filters: {}; +} diff --git a/typechain-types/contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Factory.ts b/typechain-types/contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Factory.ts new file mode 100644 index 00000000..6edc4b35 --- /dev/null +++ b/typechain-types/contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Factory.ts @@ -0,0 +1,115 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../../common"; + +export interface IUniswapV3FactoryInterface extends Interface { + getFunction(nameOrSignature: "createPool" | "getPool"): FunctionFragment; + + encodeFunctionData( + functionFragment: "createPool", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getPool", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "createPool", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "getPool", data: BytesLike): Result; +} + +export interface IUniswapV3Factory extends BaseContract { + connect(runner?: ContractRunner | null): IUniswapV3Factory; + waitForDeployment(): Promise; + + interface: IUniswapV3FactoryInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + createPool: TypedContractMethod< + [tokenA: AddressLike, tokenB: AddressLike, fee: BigNumberish], + [string], + "nonpayable" + >; + + getPool: TypedContractMethod< + [tokenA: AddressLike, tokenB: AddressLike, fee: BigNumberish], + [string], + "view" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "createPool" + ): TypedContractMethod< + [tokenA: AddressLike, tokenB: AddressLike, fee: BigNumberish], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "getPool" + ): TypedContractMethod< + [tokenA: AddressLike, tokenB: AddressLike, fee: BigNumberish], + [string], + "view" + >; + + filters: {}; +} diff --git a/typechain-types/contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Pool.ts b/typechain-types/contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Pool.ts new file mode 100644 index 00000000..c7ae1430 --- /dev/null +++ b/typechain-types/contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Pool.ts @@ -0,0 +1,150 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../../common"; + +export interface IUniswapV3PoolInterface extends Interface { + getFunction( + nameOrSignature: "initialize" | "liquidity" | "slot0" | "token0" | "token1" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "initialize", + values: [BigNumberish] + ): string; + encodeFunctionData(functionFragment: "liquidity", values?: undefined): string; + encodeFunctionData(functionFragment: "slot0", values?: undefined): string; + encodeFunctionData(functionFragment: "token0", values?: undefined): string; + encodeFunctionData(functionFragment: "token1", values?: undefined): string; + + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "liquidity", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "slot0", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "token0", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "token1", data: BytesLike): Result; +} + +export interface IUniswapV3Pool extends BaseContract { + connect(runner?: ContractRunner | null): IUniswapV3Pool; + waitForDeployment(): Promise; + + interface: IUniswapV3PoolInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + initialize: TypedContractMethod< + [sqrtPriceX96: BigNumberish], + [void], + "nonpayable" + >; + + liquidity: TypedContractMethod<[], [bigint], "view">; + + slot0: TypedContractMethod< + [], + [ + [bigint, bigint, bigint, bigint, bigint, bigint, boolean] & { + sqrtPriceX96: bigint; + tick: bigint; + observationIndex: bigint; + observationCardinality: bigint; + observationCardinalityNext: bigint; + feeProtocol: bigint; + unlocked: boolean; + } + ], + "view" + >; + + token0: TypedContractMethod<[], [string], "view">; + + token1: TypedContractMethod<[], [string], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "initialize" + ): TypedContractMethod<[sqrtPriceX96: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "liquidity" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "slot0" + ): TypedContractMethod< + [], + [ + [bigint, bigint, bigint, bigint, bigint, bigint, boolean] & { + sqrtPriceX96: bigint; + tick: bigint; + observationIndex: bigint; + observationCardinality: bigint; + observationCardinalityNext: bigint; + feeProtocol: bigint; + unlocked: boolean; + } + ], + "view" + >; + getFunction( + nameOrSignature: "token0" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "token1" + ): TypedContractMethod<[], [string], "view">; + + filters: {}; +} diff --git a/typechain-types/contracts/testing/UniswapV3SetupLib.sol/UniswapV3SetupLib.ts b/typechain-types/contracts/testing/UniswapV3SetupLib.sol/UniswapV3SetupLib.ts new file mode 100644 index 00000000..305659bd --- /dev/null +++ b/typechain-types/contracts/testing/UniswapV3SetupLib.sol/UniswapV3SetupLib.ts @@ -0,0 +1,966 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../common"; + +export declare namespace StdInvariant { + export type FuzzSelectorStruct = { + addr: AddressLike; + selectors: BytesLike[]; + }; + + export type FuzzSelectorStructOutput = [addr: string, selectors: string[]] & { + addr: string; + selectors: string[]; + }; + + export type FuzzArtifactSelectorStruct = { + artifact: string; + selectors: BytesLike[]; + }; + + export type FuzzArtifactSelectorStructOutput = [ + artifact: string, + selectors: string[] + ] & { artifact: string; selectors: string[] }; + + export type FuzzInterfaceStruct = { addr: AddressLike; artifacts: string[] }; + + export type FuzzInterfaceStructOutput = [ + addr: string, + artifacts: string[] + ] & { addr: string; artifacts: string[] }; +} + +export interface UniswapV3SetupLibInterface extends Interface { + getFunction( + nameOrSignature: + | "IS_TEST" + | "excludeArtifacts" + | "excludeContracts" + | "excludeSelectors" + | "excludeSenders" + | "failed" + | "targetArtifactSelectors" + | "targetArtifacts" + | "targetContracts" + | "targetInterfaces" + | "targetSelectors" + | "targetSenders" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "log" + | "log_address" + | "log_array(uint256[])" + | "log_array(int256[])" + | "log_array(address[])" + | "log_bytes" + | "log_bytes32" + | "log_int" + | "log_named_address" + | "log_named_array(string,uint256[])" + | "log_named_array(string,int256[])" + | "log_named_array(string,address[])" + | "log_named_bytes" + | "log_named_bytes32" + | "log_named_decimal_int" + | "log_named_decimal_uint" + | "log_named_int" + | "log_named_string" + | "log_named_uint" + | "log_string" + | "log_uint" + | "logs" + ): EventFragment; + + encodeFunctionData(functionFragment: "IS_TEST", values?: undefined): string; + encodeFunctionData( + functionFragment: "excludeArtifacts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "excludeContracts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "excludeSelectors", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "excludeSenders", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "failed", values?: undefined): string; + encodeFunctionData( + functionFragment: "targetArtifactSelectors", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetArtifacts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetContracts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetInterfaces", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetSelectors", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetSenders", + values?: undefined + ): string; + + decodeFunctionResult(functionFragment: "IS_TEST", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "excludeArtifacts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "excludeContracts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "excludeSelectors", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "excludeSenders", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "failed", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "targetArtifactSelectors", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetArtifacts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetContracts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetInterfaces", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetSelectors", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetSenders", + data: BytesLike + ): Result; +} + +export namespace logEvent { + export type InputTuple = [arg0: string]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_addressEvent { + export type InputTuple = [arg0: AddressLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_array_uint256_array_Event { + export type InputTuple = [val: BigNumberish[]]; + export type OutputTuple = [val: bigint[]]; + export interface OutputObject { + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_array_int256_array_Event { + export type InputTuple = [val: BigNumberish[]]; + export type OutputTuple = [val: bigint[]]; + export interface OutputObject { + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_array_address_array_Event { + export type InputTuple = [val: AddressLike[]]; + export type OutputTuple = [val: string[]]; + export interface OutputObject { + val: string[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_bytesEvent { + export type InputTuple = [arg0: BytesLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_bytes32Event { + export type InputTuple = [arg0: BytesLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_intEvent { + export type InputTuple = [arg0: BigNumberish]; + export type OutputTuple = [arg0: bigint]; + export interface OutputObject { + arg0: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_addressEvent { + export type InputTuple = [key: string, val: AddressLike]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_array_string_uint256_array_Event { + export type InputTuple = [key: string, val: BigNumberish[]]; + export type OutputTuple = [key: string, val: bigint[]]; + export interface OutputObject { + key: string; + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_array_string_int256_array_Event { + export type InputTuple = [key: string, val: BigNumberish[]]; + export type OutputTuple = [key: string, val: bigint[]]; + export interface OutputObject { + key: string; + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_array_string_address_array_Event { + export type InputTuple = [key: string, val: AddressLike[]]; + export type OutputTuple = [key: string, val: string[]]; + export interface OutputObject { + key: string; + val: string[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_bytesEvent { + export type InputTuple = [key: string, val: BytesLike]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_bytes32Event { + export type InputTuple = [key: string, val: BytesLike]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_decimal_intEvent { + export type InputTuple = [ + key: string, + val: BigNumberish, + decimals: BigNumberish + ]; + export type OutputTuple = [key: string, val: bigint, decimals: bigint]; + export interface OutputObject { + key: string; + val: bigint; + decimals: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_decimal_uintEvent { + export type InputTuple = [ + key: string, + val: BigNumberish, + decimals: BigNumberish + ]; + export type OutputTuple = [key: string, val: bigint, decimals: bigint]; + export interface OutputObject { + key: string; + val: bigint; + decimals: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_intEvent { + export type InputTuple = [key: string, val: BigNumberish]; + export type OutputTuple = [key: string, val: bigint]; + export interface OutputObject { + key: string; + val: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_stringEvent { + export type InputTuple = [key: string, val: string]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_uintEvent { + export type InputTuple = [key: string, val: BigNumberish]; + export type OutputTuple = [key: string, val: bigint]; + export interface OutputObject { + key: string; + val: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_stringEvent { + export type InputTuple = [arg0: string]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_uintEvent { + export type InputTuple = [arg0: BigNumberish]; + export type OutputTuple = [arg0: bigint]; + export interface OutputObject { + arg0: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace logsEvent { + export type InputTuple = [arg0: BytesLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface UniswapV3SetupLib extends BaseContract { + connect(runner?: ContractRunner | null): UniswapV3SetupLib; + waitForDeployment(): Promise; + + interface: UniswapV3SetupLibInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + IS_TEST: TypedContractMethod<[], [boolean], "view">; + + excludeArtifacts: TypedContractMethod<[], [string[]], "view">; + + excludeContracts: TypedContractMethod<[], [string[]], "view">; + + excludeSelectors: TypedContractMethod< + [], + [StdInvariant.FuzzSelectorStructOutput[]], + "view" + >; + + excludeSenders: TypedContractMethod<[], [string[]], "view">; + + failed: TypedContractMethod<[], [boolean], "view">; + + targetArtifactSelectors: TypedContractMethod< + [], + [StdInvariant.FuzzArtifactSelectorStructOutput[]], + "view" + >; + + targetArtifacts: TypedContractMethod<[], [string[]], "view">; + + targetContracts: TypedContractMethod<[], [string[]], "view">; + + targetInterfaces: TypedContractMethod< + [], + [StdInvariant.FuzzInterfaceStructOutput[]], + "view" + >; + + targetSelectors: TypedContractMethod< + [], + [StdInvariant.FuzzSelectorStructOutput[]], + "view" + >; + + targetSenders: TypedContractMethod<[], [string[]], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "IS_TEST" + ): TypedContractMethod<[], [boolean], "view">; + getFunction( + nameOrSignature: "excludeArtifacts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "excludeContracts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "excludeSelectors" + ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; + getFunction( + nameOrSignature: "excludeSenders" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "failed" + ): TypedContractMethod<[], [boolean], "view">; + getFunction( + nameOrSignature: "targetArtifactSelectors" + ): TypedContractMethod< + [], + [StdInvariant.FuzzArtifactSelectorStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "targetArtifacts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "targetContracts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "targetInterfaces" + ): TypedContractMethod< + [], + [StdInvariant.FuzzInterfaceStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "targetSelectors" + ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; + getFunction( + nameOrSignature: "targetSenders" + ): TypedContractMethod<[], [string[]], "view">; + + getEvent( + key: "log" + ): TypedContractEvent< + logEvent.InputTuple, + logEvent.OutputTuple, + logEvent.OutputObject + >; + getEvent( + key: "log_address" + ): TypedContractEvent< + log_addressEvent.InputTuple, + log_addressEvent.OutputTuple, + log_addressEvent.OutputObject + >; + getEvent( + key: "log_array(uint256[])" + ): TypedContractEvent< + log_array_uint256_array_Event.InputTuple, + log_array_uint256_array_Event.OutputTuple, + log_array_uint256_array_Event.OutputObject + >; + getEvent( + key: "log_array(int256[])" + ): TypedContractEvent< + log_array_int256_array_Event.InputTuple, + log_array_int256_array_Event.OutputTuple, + log_array_int256_array_Event.OutputObject + >; + getEvent( + key: "log_array(address[])" + ): TypedContractEvent< + log_array_address_array_Event.InputTuple, + log_array_address_array_Event.OutputTuple, + log_array_address_array_Event.OutputObject + >; + getEvent( + key: "log_bytes" + ): TypedContractEvent< + log_bytesEvent.InputTuple, + log_bytesEvent.OutputTuple, + log_bytesEvent.OutputObject + >; + getEvent( + key: "log_bytes32" + ): TypedContractEvent< + log_bytes32Event.InputTuple, + log_bytes32Event.OutputTuple, + log_bytes32Event.OutputObject + >; + getEvent( + key: "log_int" + ): TypedContractEvent< + log_intEvent.InputTuple, + log_intEvent.OutputTuple, + log_intEvent.OutputObject + >; + getEvent( + key: "log_named_address" + ): TypedContractEvent< + log_named_addressEvent.InputTuple, + log_named_addressEvent.OutputTuple, + log_named_addressEvent.OutputObject + >; + getEvent( + key: "log_named_array(string,uint256[])" + ): TypedContractEvent< + log_named_array_string_uint256_array_Event.InputTuple, + log_named_array_string_uint256_array_Event.OutputTuple, + log_named_array_string_uint256_array_Event.OutputObject + >; + getEvent( + key: "log_named_array(string,int256[])" + ): TypedContractEvent< + log_named_array_string_int256_array_Event.InputTuple, + log_named_array_string_int256_array_Event.OutputTuple, + log_named_array_string_int256_array_Event.OutputObject + >; + getEvent( + key: "log_named_array(string,address[])" + ): TypedContractEvent< + log_named_array_string_address_array_Event.InputTuple, + log_named_array_string_address_array_Event.OutputTuple, + log_named_array_string_address_array_Event.OutputObject + >; + getEvent( + key: "log_named_bytes" + ): TypedContractEvent< + log_named_bytesEvent.InputTuple, + log_named_bytesEvent.OutputTuple, + log_named_bytesEvent.OutputObject + >; + getEvent( + key: "log_named_bytes32" + ): TypedContractEvent< + log_named_bytes32Event.InputTuple, + log_named_bytes32Event.OutputTuple, + log_named_bytes32Event.OutputObject + >; + getEvent( + key: "log_named_decimal_int" + ): TypedContractEvent< + log_named_decimal_intEvent.InputTuple, + log_named_decimal_intEvent.OutputTuple, + log_named_decimal_intEvent.OutputObject + >; + getEvent( + key: "log_named_decimal_uint" + ): TypedContractEvent< + log_named_decimal_uintEvent.InputTuple, + log_named_decimal_uintEvent.OutputTuple, + log_named_decimal_uintEvent.OutputObject + >; + getEvent( + key: "log_named_int" + ): TypedContractEvent< + log_named_intEvent.InputTuple, + log_named_intEvent.OutputTuple, + log_named_intEvent.OutputObject + >; + getEvent( + key: "log_named_string" + ): TypedContractEvent< + log_named_stringEvent.InputTuple, + log_named_stringEvent.OutputTuple, + log_named_stringEvent.OutputObject + >; + getEvent( + key: "log_named_uint" + ): TypedContractEvent< + log_named_uintEvent.InputTuple, + log_named_uintEvent.OutputTuple, + log_named_uintEvent.OutputObject + >; + getEvent( + key: "log_string" + ): TypedContractEvent< + log_stringEvent.InputTuple, + log_stringEvent.OutputTuple, + log_stringEvent.OutputObject + >; + getEvent( + key: "log_uint" + ): TypedContractEvent< + log_uintEvent.InputTuple, + log_uintEvent.OutputTuple, + log_uintEvent.OutputObject + >; + getEvent( + key: "logs" + ): TypedContractEvent< + logsEvent.InputTuple, + logsEvent.OutputTuple, + logsEvent.OutputObject + >; + + filters: { + "log(string)": TypedContractEvent< + logEvent.InputTuple, + logEvent.OutputTuple, + logEvent.OutputObject + >; + log: TypedContractEvent< + logEvent.InputTuple, + logEvent.OutputTuple, + logEvent.OutputObject + >; + + "log_address(address)": TypedContractEvent< + log_addressEvent.InputTuple, + log_addressEvent.OutputTuple, + log_addressEvent.OutputObject + >; + log_address: TypedContractEvent< + log_addressEvent.InputTuple, + log_addressEvent.OutputTuple, + log_addressEvent.OutputObject + >; + + "log_array(uint256[])": TypedContractEvent< + log_array_uint256_array_Event.InputTuple, + log_array_uint256_array_Event.OutputTuple, + log_array_uint256_array_Event.OutputObject + >; + "log_array(int256[])": TypedContractEvent< + log_array_int256_array_Event.InputTuple, + log_array_int256_array_Event.OutputTuple, + log_array_int256_array_Event.OutputObject + >; + "log_array(address[])": TypedContractEvent< + log_array_address_array_Event.InputTuple, + log_array_address_array_Event.OutputTuple, + log_array_address_array_Event.OutputObject + >; + + "log_bytes(bytes)": TypedContractEvent< + log_bytesEvent.InputTuple, + log_bytesEvent.OutputTuple, + log_bytesEvent.OutputObject + >; + log_bytes: TypedContractEvent< + log_bytesEvent.InputTuple, + log_bytesEvent.OutputTuple, + log_bytesEvent.OutputObject + >; + + "log_bytes32(bytes32)": TypedContractEvent< + log_bytes32Event.InputTuple, + log_bytes32Event.OutputTuple, + log_bytes32Event.OutputObject + >; + log_bytes32: TypedContractEvent< + log_bytes32Event.InputTuple, + log_bytes32Event.OutputTuple, + log_bytes32Event.OutputObject + >; + + "log_int(int256)": TypedContractEvent< + log_intEvent.InputTuple, + log_intEvent.OutputTuple, + log_intEvent.OutputObject + >; + log_int: TypedContractEvent< + log_intEvent.InputTuple, + log_intEvent.OutputTuple, + log_intEvent.OutputObject + >; + + "log_named_address(string,address)": TypedContractEvent< + log_named_addressEvent.InputTuple, + log_named_addressEvent.OutputTuple, + log_named_addressEvent.OutputObject + >; + log_named_address: TypedContractEvent< + log_named_addressEvent.InputTuple, + log_named_addressEvent.OutputTuple, + log_named_addressEvent.OutputObject + >; + + "log_named_array(string,uint256[])": TypedContractEvent< + log_named_array_string_uint256_array_Event.InputTuple, + log_named_array_string_uint256_array_Event.OutputTuple, + log_named_array_string_uint256_array_Event.OutputObject + >; + "log_named_array(string,int256[])": TypedContractEvent< + log_named_array_string_int256_array_Event.InputTuple, + log_named_array_string_int256_array_Event.OutputTuple, + log_named_array_string_int256_array_Event.OutputObject + >; + "log_named_array(string,address[])": TypedContractEvent< + log_named_array_string_address_array_Event.InputTuple, + log_named_array_string_address_array_Event.OutputTuple, + log_named_array_string_address_array_Event.OutputObject + >; + + "log_named_bytes(string,bytes)": TypedContractEvent< + log_named_bytesEvent.InputTuple, + log_named_bytesEvent.OutputTuple, + log_named_bytesEvent.OutputObject + >; + log_named_bytes: TypedContractEvent< + log_named_bytesEvent.InputTuple, + log_named_bytesEvent.OutputTuple, + log_named_bytesEvent.OutputObject + >; + + "log_named_bytes32(string,bytes32)": TypedContractEvent< + log_named_bytes32Event.InputTuple, + log_named_bytes32Event.OutputTuple, + log_named_bytes32Event.OutputObject + >; + log_named_bytes32: TypedContractEvent< + log_named_bytes32Event.InputTuple, + log_named_bytes32Event.OutputTuple, + log_named_bytes32Event.OutputObject + >; + + "log_named_decimal_int(string,int256,uint256)": TypedContractEvent< + log_named_decimal_intEvent.InputTuple, + log_named_decimal_intEvent.OutputTuple, + log_named_decimal_intEvent.OutputObject + >; + log_named_decimal_int: TypedContractEvent< + log_named_decimal_intEvent.InputTuple, + log_named_decimal_intEvent.OutputTuple, + log_named_decimal_intEvent.OutputObject + >; + + "log_named_decimal_uint(string,uint256,uint256)": TypedContractEvent< + log_named_decimal_uintEvent.InputTuple, + log_named_decimal_uintEvent.OutputTuple, + log_named_decimal_uintEvent.OutputObject + >; + log_named_decimal_uint: TypedContractEvent< + log_named_decimal_uintEvent.InputTuple, + log_named_decimal_uintEvent.OutputTuple, + log_named_decimal_uintEvent.OutputObject + >; + + "log_named_int(string,int256)": TypedContractEvent< + log_named_intEvent.InputTuple, + log_named_intEvent.OutputTuple, + log_named_intEvent.OutputObject + >; + log_named_int: TypedContractEvent< + log_named_intEvent.InputTuple, + log_named_intEvent.OutputTuple, + log_named_intEvent.OutputObject + >; + + "log_named_string(string,string)": TypedContractEvent< + log_named_stringEvent.InputTuple, + log_named_stringEvent.OutputTuple, + log_named_stringEvent.OutputObject + >; + log_named_string: TypedContractEvent< + log_named_stringEvent.InputTuple, + log_named_stringEvent.OutputTuple, + log_named_stringEvent.OutputObject + >; + + "log_named_uint(string,uint256)": TypedContractEvent< + log_named_uintEvent.InputTuple, + log_named_uintEvent.OutputTuple, + log_named_uintEvent.OutputObject + >; + log_named_uint: TypedContractEvent< + log_named_uintEvent.InputTuple, + log_named_uintEvent.OutputTuple, + log_named_uintEvent.OutputObject + >; + + "log_string(string)": TypedContractEvent< + log_stringEvent.InputTuple, + log_stringEvent.OutputTuple, + log_stringEvent.OutputObject + >; + log_string: TypedContractEvent< + log_stringEvent.InputTuple, + log_stringEvent.OutputTuple, + log_stringEvent.OutputObject + >; + + "log_uint(uint256)": TypedContractEvent< + log_uintEvent.InputTuple, + log_uintEvent.OutputTuple, + log_uintEvent.OutputObject + >; + log_uint: TypedContractEvent< + log_uintEvent.InputTuple, + log_uintEvent.OutputTuple, + log_uintEvent.OutputObject + >; + + "logs(bytes)": TypedContractEvent< + logsEvent.InputTuple, + logsEvent.OutputTuple, + logsEvent.OutputObject + >; + logs: TypedContractEvent< + logsEvent.InputTuple, + logsEvent.OutputTuple, + logsEvent.OutputObject + >; + }; +} diff --git a/typechain-types/contracts/testing/UniswapV3SetupLib.sol/index.ts b/typechain-types/contracts/testing/UniswapV3SetupLib.sol/index.ts new file mode 100644 index 00000000..6788930a --- /dev/null +++ b/typechain-types/contracts/testing/UniswapV3SetupLib.sol/index.ts @@ -0,0 +1,7 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { INonfungiblePositionManager } from "./INonfungiblePositionManager"; +export type { IUniswapV3Factory } from "./IUniswapV3Factory"; +export type { IUniswapV3Pool } from "./IUniswapV3Pool"; +export type { UniswapV3SetupLib } from "./UniswapV3SetupLib"; diff --git a/typechain-types/contracts/testing/ZetaSetup.t.sol/ZetaSetup.ts b/typechain-types/contracts/testing/ZetaSetup.t.sol/ZetaSetup.ts new file mode 100644 index 00000000..198f0415 --- /dev/null +++ b/typechain-types/contracts/testing/ZetaSetup.t.sol/ZetaSetup.ts @@ -0,0 +1,1190 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../common"; + +export declare namespace StdInvariant { + export type FuzzSelectorStruct = { + addr: AddressLike; + selectors: BytesLike[]; + }; + + export type FuzzSelectorStructOutput = [addr: string, selectors: string[]] & { + addr: string; + selectors: string[]; + }; + + export type FuzzArtifactSelectorStruct = { + artifact: string; + selectors: BytesLike[]; + }; + + export type FuzzArtifactSelectorStructOutput = [ + artifact: string, + selectors: string[] + ] & { artifact: string; selectors: string[] }; + + export type FuzzInterfaceStruct = { addr: AddressLike; artifacts: string[] }; + + export type FuzzInterfaceStructOutput = [ + addr: string, + artifacts: string[] + ] & { addr: string; artifacts: string[] }; +} + +export interface ZetaSetupInterface extends Interface { + getFunction( + nameOrSignature: + | "FUNGIBLE_MODULE_ADDRESS" + | "IS_TEST" + | "deployer" + | "excludeArtifacts" + | "excludeContracts" + | "excludeSelectors" + | "excludeSenders" + | "failed" + | "nodeLogicMock" + | "prepareUniswapV2" + | "setupZetaChain" + | "systemContract" + | "targetArtifactSelectors" + | "targetArtifacts" + | "targetContracts" + | "targetInterfaces" + | "targetSelectors" + | "targetSenders" + | "uniswapV2AddLiquidity" + | "uniswapV2Factory" + | "uniswapV2Router" + | "uniswapV3Factory" + | "uniswapV3PositionManager" + | "uniswapV3Router" + | "wrapGatewayZEVM" + | "wzeta" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "log" + | "log_address" + | "log_array(uint256[])" + | "log_array(int256[])" + | "log_array(address[])" + | "log_bytes" + | "log_bytes32" + | "log_int" + | "log_named_address" + | "log_named_array(string,uint256[])" + | "log_named_array(string,int256[])" + | "log_named_array(string,address[])" + | "log_named_bytes" + | "log_named_bytes32" + | "log_named_decimal_int" + | "log_named_decimal_uint" + | "log_named_int" + | "log_named_string" + | "log_named_uint" + | "log_string" + | "log_uint" + | "logs" + ): EventFragment; + + encodeFunctionData( + functionFragment: "FUNGIBLE_MODULE_ADDRESS", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "IS_TEST", values?: undefined): string; + encodeFunctionData(functionFragment: "deployer", values?: undefined): string; + encodeFunctionData( + functionFragment: "excludeArtifacts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "excludeContracts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "excludeSelectors", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "excludeSenders", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "failed", values?: undefined): string; + encodeFunctionData( + functionFragment: "nodeLogicMock", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "prepareUniswapV2", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setupZetaChain", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "systemContract", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetArtifactSelectors", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetArtifacts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetContracts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetInterfaces", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetSelectors", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetSenders", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "uniswapV2AddLiquidity", + values: [ + AddressLike, + AddressLike, + AddressLike, + AddressLike, + AddressLike, + BigNumberish, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "uniswapV2Factory", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "uniswapV2Router", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "uniswapV3Factory", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "uniswapV3PositionManager", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "uniswapV3Router", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "wrapGatewayZEVM", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "wzeta", values?: undefined): string; + + decodeFunctionResult( + functionFragment: "FUNGIBLE_MODULE_ADDRESS", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "IS_TEST", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "deployer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "excludeArtifacts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "excludeContracts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "excludeSelectors", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "excludeSenders", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "failed", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "nodeLogicMock", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "prepareUniswapV2", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setupZetaChain", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "systemContract", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetArtifactSelectors", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetArtifacts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetContracts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetInterfaces", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetSelectors", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetSenders", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapV2AddLiquidity", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapV2Factory", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapV2Router", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapV3Factory", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapV3PositionManager", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapV3Router", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "wrapGatewayZEVM", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "wzeta", data: BytesLike): Result; +} + +export namespace logEvent { + export type InputTuple = [arg0: string]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_addressEvent { + export type InputTuple = [arg0: AddressLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_array_uint256_array_Event { + export type InputTuple = [val: BigNumberish[]]; + export type OutputTuple = [val: bigint[]]; + export interface OutputObject { + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_array_int256_array_Event { + export type InputTuple = [val: BigNumberish[]]; + export type OutputTuple = [val: bigint[]]; + export interface OutputObject { + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_array_address_array_Event { + export type InputTuple = [val: AddressLike[]]; + export type OutputTuple = [val: string[]]; + export interface OutputObject { + val: string[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_bytesEvent { + export type InputTuple = [arg0: BytesLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_bytes32Event { + export type InputTuple = [arg0: BytesLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_intEvent { + export type InputTuple = [arg0: BigNumberish]; + export type OutputTuple = [arg0: bigint]; + export interface OutputObject { + arg0: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_addressEvent { + export type InputTuple = [key: string, val: AddressLike]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_array_string_uint256_array_Event { + export type InputTuple = [key: string, val: BigNumberish[]]; + export type OutputTuple = [key: string, val: bigint[]]; + export interface OutputObject { + key: string; + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_array_string_int256_array_Event { + export type InputTuple = [key: string, val: BigNumberish[]]; + export type OutputTuple = [key: string, val: bigint[]]; + export interface OutputObject { + key: string; + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_array_string_address_array_Event { + export type InputTuple = [key: string, val: AddressLike[]]; + export type OutputTuple = [key: string, val: string[]]; + export interface OutputObject { + key: string; + val: string[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_bytesEvent { + export type InputTuple = [key: string, val: BytesLike]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_bytes32Event { + export type InputTuple = [key: string, val: BytesLike]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_decimal_intEvent { + export type InputTuple = [ + key: string, + val: BigNumberish, + decimals: BigNumberish + ]; + export type OutputTuple = [key: string, val: bigint, decimals: bigint]; + export interface OutputObject { + key: string; + val: bigint; + decimals: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_decimal_uintEvent { + export type InputTuple = [ + key: string, + val: BigNumberish, + decimals: BigNumberish + ]; + export type OutputTuple = [key: string, val: bigint, decimals: bigint]; + export interface OutputObject { + key: string; + val: bigint; + decimals: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_intEvent { + export type InputTuple = [key: string, val: BigNumberish]; + export type OutputTuple = [key: string, val: bigint]; + export interface OutputObject { + key: string; + val: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_stringEvent { + export type InputTuple = [key: string, val: string]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_uintEvent { + export type InputTuple = [key: string, val: BigNumberish]; + export type OutputTuple = [key: string, val: bigint]; + export interface OutputObject { + key: string; + val: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_stringEvent { + export type InputTuple = [arg0: string]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_uintEvent { + export type InputTuple = [arg0: BigNumberish]; + export type OutputTuple = [arg0: bigint]; + export interface OutputObject { + arg0: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace logsEvent { + export type InputTuple = [arg0: BytesLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ZetaSetup extends BaseContract { + connect(runner?: ContractRunner | null): ZetaSetup; + waitForDeployment(): Promise; + + interface: ZetaSetupInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + FUNGIBLE_MODULE_ADDRESS: TypedContractMethod<[], [string], "view">; + + IS_TEST: TypedContractMethod<[], [boolean], "view">; + + deployer: TypedContractMethod<[], [string], "view">; + + excludeArtifacts: TypedContractMethod<[], [string[]], "view">; + + excludeContracts: TypedContractMethod<[], [string[]], "view">; + + excludeSelectors: TypedContractMethod< + [], + [StdInvariant.FuzzSelectorStructOutput[]], + "view" + >; + + excludeSenders: TypedContractMethod<[], [string[]], "view">; + + failed: TypedContractMethod<[], [boolean], "view">; + + nodeLogicMock: TypedContractMethod<[], [string], "view">; + + prepareUniswapV2: TypedContractMethod< + [deployer: AddressLike, wzeta: AddressLike], + [[string, string] & { factory: string; router: string }], + "nonpayable" + >; + + setupZetaChain: TypedContractMethod<[], [void], "nonpayable">; + + systemContract: TypedContractMethod<[], [string], "view">; + + targetArtifactSelectors: TypedContractMethod< + [], + [StdInvariant.FuzzArtifactSelectorStructOutput[]], + "view" + >; + + targetArtifacts: TypedContractMethod<[], [string[]], "view">; + + targetContracts: TypedContractMethod<[], [string[]], "view">; + + targetInterfaces: TypedContractMethod< + [], + [StdInvariant.FuzzInterfaceStructOutput[]], + "view" + >; + + targetSelectors: TypedContractMethod< + [], + [StdInvariant.FuzzSelectorStructOutput[]], + "view" + >; + + targetSenders: TypedContractMethod<[], [string[]], "view">; + + uniswapV2AddLiquidity: TypedContractMethod< + [ + uniswapV2Router: AddressLike, + uniswapV2Factory: AddressLike, + zrc20: AddressLike, + wzeta: AddressLike, + deployer: AddressLike, + zrc20Amount: BigNumberish, + wzetaAmount: BigNumberish + ], + [void], + "nonpayable" + >; + + uniswapV2Factory: TypedContractMethod<[], [string], "view">; + + uniswapV2Router: TypedContractMethod<[], [string], "view">; + + uniswapV3Factory: TypedContractMethod<[], [string], "view">; + + uniswapV3PositionManager: TypedContractMethod<[], [string], "view">; + + uniswapV3Router: TypedContractMethod<[], [string], "view">; + + wrapGatewayZEVM: TypedContractMethod<[], [string], "view">; + + wzeta: TypedContractMethod<[], [string], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "FUNGIBLE_MODULE_ADDRESS" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "IS_TEST" + ): TypedContractMethod<[], [boolean], "view">; + getFunction( + nameOrSignature: "deployer" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "excludeArtifacts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "excludeContracts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "excludeSelectors" + ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; + getFunction( + nameOrSignature: "excludeSenders" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "failed" + ): TypedContractMethod<[], [boolean], "view">; + getFunction( + nameOrSignature: "nodeLogicMock" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "prepareUniswapV2" + ): TypedContractMethod< + [deployer: AddressLike, wzeta: AddressLike], + [[string, string] & { factory: string; router: string }], + "nonpayable" + >; + getFunction( + nameOrSignature: "setupZetaChain" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "systemContract" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "targetArtifactSelectors" + ): TypedContractMethod< + [], + [StdInvariant.FuzzArtifactSelectorStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "targetArtifacts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "targetContracts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "targetInterfaces" + ): TypedContractMethod< + [], + [StdInvariant.FuzzInterfaceStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "targetSelectors" + ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; + getFunction( + nameOrSignature: "targetSenders" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "uniswapV2AddLiquidity" + ): TypedContractMethod< + [ + uniswapV2Router: AddressLike, + uniswapV2Factory: AddressLike, + zrc20: AddressLike, + wzeta: AddressLike, + deployer: AddressLike, + zrc20Amount: BigNumberish, + wzetaAmount: BigNumberish + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "uniswapV2Factory" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "uniswapV2Router" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "uniswapV3Factory" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "uniswapV3PositionManager" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "uniswapV3Router" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "wrapGatewayZEVM" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "wzeta" + ): TypedContractMethod<[], [string], "view">; + + getEvent( + key: "log" + ): TypedContractEvent< + logEvent.InputTuple, + logEvent.OutputTuple, + logEvent.OutputObject + >; + getEvent( + key: "log_address" + ): TypedContractEvent< + log_addressEvent.InputTuple, + log_addressEvent.OutputTuple, + log_addressEvent.OutputObject + >; + getEvent( + key: "log_array(uint256[])" + ): TypedContractEvent< + log_array_uint256_array_Event.InputTuple, + log_array_uint256_array_Event.OutputTuple, + log_array_uint256_array_Event.OutputObject + >; + getEvent( + key: "log_array(int256[])" + ): TypedContractEvent< + log_array_int256_array_Event.InputTuple, + log_array_int256_array_Event.OutputTuple, + log_array_int256_array_Event.OutputObject + >; + getEvent( + key: "log_array(address[])" + ): TypedContractEvent< + log_array_address_array_Event.InputTuple, + log_array_address_array_Event.OutputTuple, + log_array_address_array_Event.OutputObject + >; + getEvent( + key: "log_bytes" + ): TypedContractEvent< + log_bytesEvent.InputTuple, + log_bytesEvent.OutputTuple, + log_bytesEvent.OutputObject + >; + getEvent( + key: "log_bytes32" + ): TypedContractEvent< + log_bytes32Event.InputTuple, + log_bytes32Event.OutputTuple, + log_bytes32Event.OutputObject + >; + getEvent( + key: "log_int" + ): TypedContractEvent< + log_intEvent.InputTuple, + log_intEvent.OutputTuple, + log_intEvent.OutputObject + >; + getEvent( + key: "log_named_address" + ): TypedContractEvent< + log_named_addressEvent.InputTuple, + log_named_addressEvent.OutputTuple, + log_named_addressEvent.OutputObject + >; + getEvent( + key: "log_named_array(string,uint256[])" + ): TypedContractEvent< + log_named_array_string_uint256_array_Event.InputTuple, + log_named_array_string_uint256_array_Event.OutputTuple, + log_named_array_string_uint256_array_Event.OutputObject + >; + getEvent( + key: "log_named_array(string,int256[])" + ): TypedContractEvent< + log_named_array_string_int256_array_Event.InputTuple, + log_named_array_string_int256_array_Event.OutputTuple, + log_named_array_string_int256_array_Event.OutputObject + >; + getEvent( + key: "log_named_array(string,address[])" + ): TypedContractEvent< + log_named_array_string_address_array_Event.InputTuple, + log_named_array_string_address_array_Event.OutputTuple, + log_named_array_string_address_array_Event.OutputObject + >; + getEvent( + key: "log_named_bytes" + ): TypedContractEvent< + log_named_bytesEvent.InputTuple, + log_named_bytesEvent.OutputTuple, + log_named_bytesEvent.OutputObject + >; + getEvent( + key: "log_named_bytes32" + ): TypedContractEvent< + log_named_bytes32Event.InputTuple, + log_named_bytes32Event.OutputTuple, + log_named_bytes32Event.OutputObject + >; + getEvent( + key: "log_named_decimal_int" + ): TypedContractEvent< + log_named_decimal_intEvent.InputTuple, + log_named_decimal_intEvent.OutputTuple, + log_named_decimal_intEvent.OutputObject + >; + getEvent( + key: "log_named_decimal_uint" + ): TypedContractEvent< + log_named_decimal_uintEvent.InputTuple, + log_named_decimal_uintEvent.OutputTuple, + log_named_decimal_uintEvent.OutputObject + >; + getEvent( + key: "log_named_int" + ): TypedContractEvent< + log_named_intEvent.InputTuple, + log_named_intEvent.OutputTuple, + log_named_intEvent.OutputObject + >; + getEvent( + key: "log_named_string" + ): TypedContractEvent< + log_named_stringEvent.InputTuple, + log_named_stringEvent.OutputTuple, + log_named_stringEvent.OutputObject + >; + getEvent( + key: "log_named_uint" + ): TypedContractEvent< + log_named_uintEvent.InputTuple, + log_named_uintEvent.OutputTuple, + log_named_uintEvent.OutputObject + >; + getEvent( + key: "log_string" + ): TypedContractEvent< + log_stringEvent.InputTuple, + log_stringEvent.OutputTuple, + log_stringEvent.OutputObject + >; + getEvent( + key: "log_uint" + ): TypedContractEvent< + log_uintEvent.InputTuple, + log_uintEvent.OutputTuple, + log_uintEvent.OutputObject + >; + getEvent( + key: "logs" + ): TypedContractEvent< + logsEvent.InputTuple, + logsEvent.OutputTuple, + logsEvent.OutputObject + >; + + filters: { + "log(string)": TypedContractEvent< + logEvent.InputTuple, + logEvent.OutputTuple, + logEvent.OutputObject + >; + log: TypedContractEvent< + logEvent.InputTuple, + logEvent.OutputTuple, + logEvent.OutputObject + >; + + "log_address(address)": TypedContractEvent< + log_addressEvent.InputTuple, + log_addressEvent.OutputTuple, + log_addressEvent.OutputObject + >; + log_address: TypedContractEvent< + log_addressEvent.InputTuple, + log_addressEvent.OutputTuple, + log_addressEvent.OutputObject + >; + + "log_array(uint256[])": TypedContractEvent< + log_array_uint256_array_Event.InputTuple, + log_array_uint256_array_Event.OutputTuple, + log_array_uint256_array_Event.OutputObject + >; + "log_array(int256[])": TypedContractEvent< + log_array_int256_array_Event.InputTuple, + log_array_int256_array_Event.OutputTuple, + log_array_int256_array_Event.OutputObject + >; + "log_array(address[])": TypedContractEvent< + log_array_address_array_Event.InputTuple, + log_array_address_array_Event.OutputTuple, + log_array_address_array_Event.OutputObject + >; + + "log_bytes(bytes)": TypedContractEvent< + log_bytesEvent.InputTuple, + log_bytesEvent.OutputTuple, + log_bytesEvent.OutputObject + >; + log_bytes: TypedContractEvent< + log_bytesEvent.InputTuple, + log_bytesEvent.OutputTuple, + log_bytesEvent.OutputObject + >; + + "log_bytes32(bytes32)": TypedContractEvent< + log_bytes32Event.InputTuple, + log_bytes32Event.OutputTuple, + log_bytes32Event.OutputObject + >; + log_bytes32: TypedContractEvent< + log_bytes32Event.InputTuple, + log_bytes32Event.OutputTuple, + log_bytes32Event.OutputObject + >; + + "log_int(int256)": TypedContractEvent< + log_intEvent.InputTuple, + log_intEvent.OutputTuple, + log_intEvent.OutputObject + >; + log_int: TypedContractEvent< + log_intEvent.InputTuple, + log_intEvent.OutputTuple, + log_intEvent.OutputObject + >; + + "log_named_address(string,address)": TypedContractEvent< + log_named_addressEvent.InputTuple, + log_named_addressEvent.OutputTuple, + log_named_addressEvent.OutputObject + >; + log_named_address: TypedContractEvent< + log_named_addressEvent.InputTuple, + log_named_addressEvent.OutputTuple, + log_named_addressEvent.OutputObject + >; + + "log_named_array(string,uint256[])": TypedContractEvent< + log_named_array_string_uint256_array_Event.InputTuple, + log_named_array_string_uint256_array_Event.OutputTuple, + log_named_array_string_uint256_array_Event.OutputObject + >; + "log_named_array(string,int256[])": TypedContractEvent< + log_named_array_string_int256_array_Event.InputTuple, + log_named_array_string_int256_array_Event.OutputTuple, + log_named_array_string_int256_array_Event.OutputObject + >; + "log_named_array(string,address[])": TypedContractEvent< + log_named_array_string_address_array_Event.InputTuple, + log_named_array_string_address_array_Event.OutputTuple, + log_named_array_string_address_array_Event.OutputObject + >; + + "log_named_bytes(string,bytes)": TypedContractEvent< + log_named_bytesEvent.InputTuple, + log_named_bytesEvent.OutputTuple, + log_named_bytesEvent.OutputObject + >; + log_named_bytes: TypedContractEvent< + log_named_bytesEvent.InputTuple, + log_named_bytesEvent.OutputTuple, + log_named_bytesEvent.OutputObject + >; + + "log_named_bytes32(string,bytes32)": TypedContractEvent< + log_named_bytes32Event.InputTuple, + log_named_bytes32Event.OutputTuple, + log_named_bytes32Event.OutputObject + >; + log_named_bytes32: TypedContractEvent< + log_named_bytes32Event.InputTuple, + log_named_bytes32Event.OutputTuple, + log_named_bytes32Event.OutputObject + >; + + "log_named_decimal_int(string,int256,uint256)": TypedContractEvent< + log_named_decimal_intEvent.InputTuple, + log_named_decimal_intEvent.OutputTuple, + log_named_decimal_intEvent.OutputObject + >; + log_named_decimal_int: TypedContractEvent< + log_named_decimal_intEvent.InputTuple, + log_named_decimal_intEvent.OutputTuple, + log_named_decimal_intEvent.OutputObject + >; + + "log_named_decimal_uint(string,uint256,uint256)": TypedContractEvent< + log_named_decimal_uintEvent.InputTuple, + log_named_decimal_uintEvent.OutputTuple, + log_named_decimal_uintEvent.OutputObject + >; + log_named_decimal_uint: TypedContractEvent< + log_named_decimal_uintEvent.InputTuple, + log_named_decimal_uintEvent.OutputTuple, + log_named_decimal_uintEvent.OutputObject + >; + + "log_named_int(string,int256)": TypedContractEvent< + log_named_intEvent.InputTuple, + log_named_intEvent.OutputTuple, + log_named_intEvent.OutputObject + >; + log_named_int: TypedContractEvent< + log_named_intEvent.InputTuple, + log_named_intEvent.OutputTuple, + log_named_intEvent.OutputObject + >; + + "log_named_string(string,string)": TypedContractEvent< + log_named_stringEvent.InputTuple, + log_named_stringEvent.OutputTuple, + log_named_stringEvent.OutputObject + >; + log_named_string: TypedContractEvent< + log_named_stringEvent.InputTuple, + log_named_stringEvent.OutputTuple, + log_named_stringEvent.OutputObject + >; + + "log_named_uint(string,uint256)": TypedContractEvent< + log_named_uintEvent.InputTuple, + log_named_uintEvent.OutputTuple, + log_named_uintEvent.OutputObject + >; + log_named_uint: TypedContractEvent< + log_named_uintEvent.InputTuple, + log_named_uintEvent.OutputTuple, + log_named_uintEvent.OutputObject + >; + + "log_string(string)": TypedContractEvent< + log_stringEvent.InputTuple, + log_stringEvent.OutputTuple, + log_stringEvent.OutputObject + >; + log_string: TypedContractEvent< + log_stringEvent.InputTuple, + log_stringEvent.OutputTuple, + log_stringEvent.OutputObject + >; + + "log_uint(uint256)": TypedContractEvent< + log_uintEvent.InputTuple, + log_uintEvent.OutputTuple, + log_uintEvent.OutputObject + >; + log_uint: TypedContractEvent< + log_uintEvent.InputTuple, + log_uintEvent.OutputTuple, + log_uintEvent.OutputObject + >; + + "logs(bytes)": TypedContractEvent< + logsEvent.InputTuple, + logsEvent.OutputTuple, + logsEvent.OutputObject + >; + logs: TypedContractEvent< + logsEvent.InputTuple, + logsEvent.OutputTuple, + logsEvent.OutputObject + >; + }; +} diff --git a/typechain-types/contracts/testing/ZetaSetup.t.sol/index.ts b/typechain-types/contracts/testing/ZetaSetup.t.sol/index.ts new file mode 100644 index 00000000..f16006f6 --- /dev/null +++ b/typechain-types/contracts/testing/ZetaSetup.t.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { ZetaSetup } from "./ZetaSetup"; diff --git a/typechain-types/contracts/testing/index.ts b/typechain-types/contracts/testing/index.ts new file mode 100644 index 00000000..880c4458 --- /dev/null +++ b/typechain-types/contracts/testing/index.ts @@ -0,0 +1,19 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as evmSetupTSol from "./EVMSetup.t.sol"; +export type { evmSetupTSol }; +import type * as foundrySetupTSol from "./FoundrySetup.t.sol"; +export type { foundrySetupTSol }; +import type * as tokenSetupTSol from "./TokenSetup.t.sol"; +export type { tokenSetupTSol }; +import type * as uniswapV2SetupLibSol from "./UniswapV2SetupLib.sol"; +export type { uniswapV2SetupLibSol }; +import type * as uniswapV3SetupLibSol from "./UniswapV3SetupLib.sol"; +export type { uniswapV3SetupLibSol }; +import type * as zetaSetupTSol from "./ZetaSetup.t.sol"; +export type { zetaSetupTSol }; +import type * as mock from "./mock"; +export type { mock }; +import type * as mockGateway from "./mockGateway"; +export type { mockGateway }; diff --git a/typechain-types/contracts/testing/mock/ERC20Mock.ts b/typechain-types/contracts/testing/mock/ERC20Mock.ts new file mode 100644 index 00000000..36a4e0b3 --- /dev/null +++ b/typechain-types/contracts/testing/mock/ERC20Mock.ts @@ -0,0 +1,324 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../common"; + +export interface ERC20MockInterface extends Interface { + getFunction( + nameOrSignature: + | "allowance" + | "approve" + | "balanceOf" + | "burn" + | "decimals" + | "mint" + | "name" + | "symbol" + | "totalSupply" + | "transfer" + | "transferFrom" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; + + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "burn", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData( + functionFragment: "mint", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ERC20Mock extends BaseContract { + connect(runner?: ContractRunner | null): ERC20Mock; + waitForDeployment(): Promise; + + interface: ERC20MockInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + burn: TypedContractMethod< + [account: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + + decimals: TypedContractMethod<[], [bigint], "view">; + + mint: TypedContractMethod< + [account: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + + name: TypedContractMethod<[], [string], "view">; + + symbol: TypedContractMethod<[], [string], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "burn" + ): TypedContractMethod< + [account: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "decimals" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "mint" + ): TypedContractMethod< + [account: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/typechain-types/contracts/testing/mock/ZRC20Mock.sol/IZRC20Mock.ts b/typechain-types/contracts/testing/mock/ZRC20Mock.sol/IZRC20Mock.ts new file mode 100644 index 00000000..52bcf38d --- /dev/null +++ b/typechain-types/contracts/testing/mock/ZRC20Mock.sol/IZRC20Mock.ts @@ -0,0 +1,352 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../../../common"; + +export interface IZRC20MockInterface extends Interface { + getFunction( + nameOrSignature: + | "GAS_LIMIT" + | "PROTOCOL_FLAT_FEE" + | "allowance" + | "approve" + | "balanceOf" + | "burn(uint256)" + | "burn(address,uint256)" + | "deposit" + | "mint" + | "setName" + | "setSymbol" + | "totalSupply" + | "transfer" + | "transferFrom" + | "withdraw" + | "withdrawGasFee" + | "withdrawGasFeeWithGasLimit" + ): FunctionFragment; + + encodeFunctionData(functionFragment: "GAS_LIMIT", values?: undefined): string; + encodeFunctionData( + functionFragment: "PROTOCOL_FLAT_FEE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "burn(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "burn(address,uint256)", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "deposit", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "mint", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "setName", values: [string]): string; + encodeFunctionData(functionFragment: "setSymbol", values: [string]): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdraw", + values: [BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdrawGasFee", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "withdrawGasFeeWithGasLimit", + values: [BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "GAS_LIMIT", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "PROTOCOL_FLAT_FEE", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "burn(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "burn(address,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "setName", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "setSymbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "withdrawGasFee", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdrawGasFeeWithGasLimit", + data: BytesLike + ): Result; +} + +export interface IZRC20Mock extends BaseContract { + connect(runner?: ContractRunner | null): IZRC20Mock; + waitForDeployment(): Promise; + + interface: IZRC20MockInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + GAS_LIMIT: TypedContractMethod<[], [bigint], "view">; + + PROTOCOL_FLAT_FEE: TypedContractMethod<[], [bigint], "view">; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + "burn(uint256)": TypedContractMethod< + [amount: BigNumberish], + [boolean], + "nonpayable" + >; + + "burn(address,uint256)": TypedContractMethod< + [account: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + + deposit: TypedContractMethod< + [to: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + mint: TypedContractMethod< + [account: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + + setName: TypedContractMethod<[newName: string], [void], "nonpayable">; + + setSymbol: TypedContractMethod<[newSymbol: string], [void], "nonpayable">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + withdraw: TypedContractMethod< + [to: BytesLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + withdrawGasFee: TypedContractMethod<[], [[string, bigint]], "view">; + + withdrawGasFeeWithGasLimit: TypedContractMethod< + [gasLimit: BigNumberish], + [[string, bigint]], + "view" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "GAS_LIMIT" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "PROTOCOL_FLAT_FEE" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "burn(uint256)" + ): TypedContractMethod<[amount: BigNumberish], [boolean], "nonpayable">; + getFunction( + nameOrSignature: "burn(address,uint256)" + ): TypedContractMethod< + [account: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "deposit" + ): TypedContractMethod< + [to: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "mint" + ): TypedContractMethod< + [account: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setName" + ): TypedContractMethod<[newName: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "setSymbol" + ): TypedContractMethod<[newSymbol: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdraw" + ): TypedContractMethod< + [to: BytesLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawGasFee" + ): TypedContractMethod<[], [[string, bigint]], "view">; + getFunction( + nameOrSignature: "withdrawGasFeeWithGasLimit" + ): TypedContractMethod<[gasLimit: BigNumberish], [[string, bigint]], "view">; + + filters: {}; +} diff --git a/typechain-types/contracts/testing/mock/ZRC20Mock.sol/ZRC20Mock.ts b/typechain-types/contracts/testing/mock/ZRC20Mock.sol/ZRC20Mock.ts new file mode 100644 index 00000000..cbf8928e --- /dev/null +++ b/typechain-types/contracts/testing/mock/ZRC20Mock.sol/ZRC20Mock.ts @@ -0,0 +1,799 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../../common"; + +export interface ZRC20MockInterface extends Interface { + getFunction( + nameOrSignature: + | "CHAIN_ID" + | "COIN_TYPE" + | "FUNGIBLE_MODULE_ADDRESS" + | "GAS_LIMIT" + | "PROTOCOL_FLAT_FEE" + | "SYSTEM_CONTRACT_ADDRESS" + | "allowance" + | "approve" + | "balanceOf" + | "burn(uint256)" + | "burn(address,uint256)" + | "decimals" + | "deposit" + | "gatewayAddress" + | "mint" + | "name" + | "setName" + | "setSymbol" + | "symbol" + | "totalSupply" + | "transfer" + | "transferFrom" + | "updateGasLimit" + | "updateGatewayAddress" + | "updateProtocolFlatFee" + | "updateSystemContractAddress" + | "withdraw" + | "withdrawGasFee" + | "withdrawGasFeeWithGasLimit" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "Approval" + | "Deposit" + | "Transfer" + | "UpdatedGasLimit" + | "UpdatedGateway" + | "UpdatedProtocolFlatFee" + | "UpdatedSystemContract" + | "Withdrawal" + ): EventFragment; + + encodeFunctionData(functionFragment: "CHAIN_ID", values?: undefined): string; + encodeFunctionData(functionFragment: "COIN_TYPE", values?: undefined): string; + encodeFunctionData( + functionFragment: "FUNGIBLE_MODULE_ADDRESS", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "GAS_LIMIT", values?: undefined): string; + encodeFunctionData( + functionFragment: "PROTOCOL_FLAT_FEE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "SYSTEM_CONTRACT_ADDRESS", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "burn(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "burn(address,uint256)", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData( + functionFragment: "deposit", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "gatewayAddress", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "mint", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "setName", values: [string]): string; + encodeFunctionData(functionFragment: "setSymbol", values: [string]): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "updateGasLimit", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "updateGatewayAddress", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "updateProtocolFlatFee", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "updateSystemContractAddress", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "withdraw", + values: [BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdrawGasFee", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "withdrawGasFeeWithGasLimit", + values: [BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "CHAIN_ID", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "COIN_TYPE", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "FUNGIBLE_MODULE_ADDRESS", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "GAS_LIMIT", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "PROTOCOL_FLAT_FEE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "SYSTEM_CONTRACT_ADDRESS", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "burn(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "burn(address,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "gatewayAddress", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "setName", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "setSymbol", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "updateGasLimit", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "updateGatewayAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "updateProtocolFlatFee", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "updateSystemContractAddress", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "withdrawGasFee", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdrawGasFeeWithGasLimit", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace DepositEvent { + export type InputTuple = [ + from: BytesLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpdatedGasLimitEvent { + export type InputTuple = [gasLimit: BigNumberish]; + export type OutputTuple = [gasLimit: bigint]; + export interface OutputObject { + gasLimit: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpdatedGatewayEvent { + export type InputTuple = [gateway: AddressLike]; + export type OutputTuple = [gateway: string]; + export interface OutputObject { + gateway: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpdatedProtocolFlatFeeEvent { + export type InputTuple = [protocolFlatFee: BigNumberish]; + export type OutputTuple = [protocolFlatFee: bigint]; + export interface OutputObject { + protocolFlatFee: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpdatedSystemContractEvent { + export type InputTuple = [systemContract: AddressLike]; + export type OutputTuple = [systemContract: string]; + export interface OutputObject { + systemContract: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WithdrawalEvent { + export type InputTuple = [ + from: AddressLike, + to: BytesLike, + value: BigNumberish, + gasFee: BigNumberish, + protocolFlatFee: BigNumberish + ]; + export type OutputTuple = [ + from: string, + to: string, + value: bigint, + gasFee: bigint, + protocolFlatFee: bigint + ]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + gasFee: bigint; + protocolFlatFee: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ZRC20Mock extends BaseContract { + connect(runner?: ContractRunner | null): ZRC20Mock; + waitForDeployment(): Promise; + + interface: ZRC20MockInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + CHAIN_ID: TypedContractMethod<[], [bigint], "view">; + + COIN_TYPE: TypedContractMethod<[], [bigint], "view">; + + FUNGIBLE_MODULE_ADDRESS: TypedContractMethod<[], [string], "view">; + + GAS_LIMIT: TypedContractMethod<[], [bigint], "view">; + + PROTOCOL_FLAT_FEE: TypedContractMethod<[], [bigint], "view">; + + SYSTEM_CONTRACT_ADDRESS: TypedContractMethod<[], [string], "view">; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + "burn(uint256)": TypedContractMethod< + [amount: BigNumberish], + [boolean], + "nonpayable" + >; + + "burn(address,uint256)": TypedContractMethod< + [account: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + + decimals: TypedContractMethod<[], [bigint], "view">; + + deposit: TypedContractMethod< + [to: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + gatewayAddress: TypedContractMethod<[], [string], "view">; + + mint: TypedContractMethod< + [account: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + + name: TypedContractMethod<[], [string], "view">; + + setName: TypedContractMethod<[newName: string], [void], "nonpayable">; + + setSymbol: TypedContractMethod<[newSymbol: string], [void], "nonpayable">; + + symbol: TypedContractMethod<[], [string], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + updateGasLimit: TypedContractMethod< + [gasLimit_: BigNumberish], + [void], + "nonpayable" + >; + + updateGatewayAddress: TypedContractMethod< + [addr: AddressLike], + [void], + "nonpayable" + >; + + updateProtocolFlatFee: TypedContractMethod< + [protocolFlatFee_: BigNumberish], + [void], + "nonpayable" + >; + + updateSystemContractAddress: TypedContractMethod< + [addr: AddressLike], + [void], + "nonpayable" + >; + + withdraw: TypedContractMethod< + [to: BytesLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + withdrawGasFee: TypedContractMethod<[], [[string, bigint]], "view">; + + withdrawGasFeeWithGasLimit: TypedContractMethod< + [gasLimit: BigNumberish], + [[string, bigint]], + "view" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "CHAIN_ID" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "COIN_TYPE" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "FUNGIBLE_MODULE_ADDRESS" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "GAS_LIMIT" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "PROTOCOL_FLAT_FEE" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "SYSTEM_CONTRACT_ADDRESS" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "burn(uint256)" + ): TypedContractMethod<[amount: BigNumberish], [boolean], "nonpayable">; + getFunction( + nameOrSignature: "burn(address,uint256)" + ): TypedContractMethod< + [account: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "decimals" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "deposit" + ): TypedContractMethod< + [to: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "gatewayAddress" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "mint" + ): TypedContractMethod< + [account: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "setName" + ): TypedContractMethod<[newName: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "setSymbol" + ): TypedContractMethod<[newSymbol: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "updateGasLimit" + ): TypedContractMethod<[gasLimit_: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "updateGatewayAddress" + ): TypedContractMethod<[addr: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "updateProtocolFlatFee" + ): TypedContractMethod< + [protocolFlatFee_: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "updateSystemContractAddress" + ): TypedContractMethod<[addr: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "withdraw" + ): TypedContractMethod< + [to: BytesLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawGasFee" + ): TypedContractMethod<[], [[string, bigint]], "view">; + getFunction( + nameOrSignature: "withdrawGasFeeWithGasLimit" + ): TypedContractMethod<[gasLimit: BigNumberish], [[string, bigint]], "view">; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Deposit" + ): TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + getEvent( + key: "UpdatedGasLimit" + ): TypedContractEvent< + UpdatedGasLimitEvent.InputTuple, + UpdatedGasLimitEvent.OutputTuple, + UpdatedGasLimitEvent.OutputObject + >; + getEvent( + key: "UpdatedGateway" + ): TypedContractEvent< + UpdatedGatewayEvent.InputTuple, + UpdatedGatewayEvent.OutputTuple, + UpdatedGatewayEvent.OutputObject + >; + getEvent( + key: "UpdatedProtocolFlatFee" + ): TypedContractEvent< + UpdatedProtocolFlatFeeEvent.InputTuple, + UpdatedProtocolFlatFeeEvent.OutputTuple, + UpdatedProtocolFlatFeeEvent.OutputObject + >; + getEvent( + key: "UpdatedSystemContract" + ): TypedContractEvent< + UpdatedSystemContractEvent.InputTuple, + UpdatedSystemContractEvent.OutputTuple, + UpdatedSystemContractEvent.OutputObject + >; + getEvent( + key: "Withdrawal" + ): TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Deposit(bytes,address,uint256)": TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + Deposit: TypedContractEvent< + DepositEvent.InputTuple, + DepositEvent.OutputTuple, + DepositEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + "UpdatedGasLimit(uint256)": TypedContractEvent< + UpdatedGasLimitEvent.InputTuple, + UpdatedGasLimitEvent.OutputTuple, + UpdatedGasLimitEvent.OutputObject + >; + UpdatedGasLimit: TypedContractEvent< + UpdatedGasLimitEvent.InputTuple, + UpdatedGasLimitEvent.OutputTuple, + UpdatedGasLimitEvent.OutputObject + >; + + "UpdatedGateway(address)": TypedContractEvent< + UpdatedGatewayEvent.InputTuple, + UpdatedGatewayEvent.OutputTuple, + UpdatedGatewayEvent.OutputObject + >; + UpdatedGateway: TypedContractEvent< + UpdatedGatewayEvent.InputTuple, + UpdatedGatewayEvent.OutputTuple, + UpdatedGatewayEvent.OutputObject + >; + + "UpdatedProtocolFlatFee(uint256)": TypedContractEvent< + UpdatedProtocolFlatFeeEvent.InputTuple, + UpdatedProtocolFlatFeeEvent.OutputTuple, + UpdatedProtocolFlatFeeEvent.OutputObject + >; + UpdatedProtocolFlatFee: TypedContractEvent< + UpdatedProtocolFlatFeeEvent.InputTuple, + UpdatedProtocolFlatFeeEvent.OutputTuple, + UpdatedProtocolFlatFeeEvent.OutputObject + >; + + "UpdatedSystemContract(address)": TypedContractEvent< + UpdatedSystemContractEvent.InputTuple, + UpdatedSystemContractEvent.OutputTuple, + UpdatedSystemContractEvent.OutputObject + >; + UpdatedSystemContract: TypedContractEvent< + UpdatedSystemContractEvent.InputTuple, + UpdatedSystemContractEvent.OutputTuple, + UpdatedSystemContractEvent.OutputObject + >; + + "Withdrawal(address,bytes,uint256,uint256,uint256)": TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + Withdrawal: TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + }; +} diff --git a/typechain-types/contracts/testing/mock/ZRC20Mock.sol/index.ts b/typechain-types/contracts/testing/mock/ZRC20Mock.sol/index.ts new file mode 100644 index 00000000..1e6c9816 --- /dev/null +++ b/typechain-types/contracts/testing/mock/ZRC20Mock.sol/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IZRC20Mock } from "./IZRC20Mock"; +export type { ZRC20Mock } from "./ZRC20Mock"; diff --git a/typechain-types/contracts/testing/mock/index.ts b/typechain-types/contracts/testing/mock/index.ts new file mode 100644 index 00000000..9c699a3b --- /dev/null +++ b/typechain-types/contracts/testing/mock/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as zrc20MockSol from "./ZRC20Mock.sol"; +export type { zrc20MockSol }; +export type { ERC20Mock } from "./ERC20Mock"; diff --git a/typechain-types/contracts/testing/mockGateway/NodeLogicMock.ts b/typechain-types/contracts/testing/mockGateway/NodeLogicMock.ts new file mode 100644 index 00000000..e9e5a5a7 --- /dev/null +++ b/typechain-types/contracts/testing/mockGateway/NodeLogicMock.ts @@ -0,0 +1,1542 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../common"; + +export type RevertOptionsStruct = { + revertAddress: AddressLike; + callOnRevert: boolean; + abortAddress: AddressLike; + revertMessage: BytesLike; + onRevertGasLimit: BigNumberish; +}; + +export type RevertOptionsStructOutput = [ + revertAddress: string, + callOnRevert: boolean, + abortAddress: string, + revertMessage: string, + onRevertGasLimit: bigint +] & { + revertAddress: string; + callOnRevert: boolean; + abortAddress: string; + revertMessage: string; + onRevertGasLimit: bigint; +}; + +export type CallOptionsStruct = { + gasLimit: BigNumberish; + isArbitraryCall: boolean; +}; + +export type CallOptionsStructOutput = [ + gasLimit: bigint, + isArbitraryCall: boolean +] & { gasLimit: bigint; isArbitraryCall: boolean }; + +export declare namespace StdInvariant { + export type FuzzSelectorStruct = { + addr: AddressLike; + selectors: BytesLike[]; + }; + + export type FuzzSelectorStructOutput = [addr: string, selectors: string[]] & { + addr: string; + selectors: string[]; + }; + + export type FuzzArtifactSelectorStruct = { + artifact: string; + selectors: BytesLike[]; + }; + + export type FuzzArtifactSelectorStructOutput = [ + artifact: string, + selectors: string[] + ] & { artifact: string; selectors: string[] }; + + export type FuzzInterfaceStruct = { addr: AddressLike; artifacts: string[] }; + + export type FuzzInterfaceStructOutput = [ + addr: string, + artifacts: string[] + ] & { addr: string; artifacts: string[] }; +} + +export interface NodeLogicMockInterface extends Interface { + getFunction( + nameOrSignature: + | "IS_TEST" + | "chainIdZeta" + | "erc20ToZRC20s" + | "excludeArtifacts" + | "excludeContracts" + | "excludeSelectors" + | "excludeSenders" + | "failed" + | "gasZRC20s" + | "gatewayEVMs" + | "gatewayZEVM" + | "getRuntimeCode" + | "handleEVMCall" + | "handleEVMDeposit" + | "handleEVMDepositAndCall" + | "handleZEVMCall" + | "handleZEVMWithdraw" + | "handleZEVMWithdrawAndCall" + | "setAssetToZRC20" + | "setChainIdZeta" + | "setGasZRC20" + | "setGatewayEVM" + | "setGatewayZEVM" + | "setUniswapRouter" + | "setWZETA" + | "setZRC20ToAsset" + | "targetArtifactSelectors" + | "targetArtifacts" + | "targetContracts" + | "targetInterfaces" + | "targetSelectors" + | "targetSenders" + | "uniswapRouter" + | "wzeta" + | "zrc20ToErc20s" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "log" + | "log_address" + | "log_array(uint256[])" + | "log_array(int256[])" + | "log_array(address[])" + | "log_bytes" + | "log_bytes32" + | "log_int" + | "log_named_address" + | "log_named_array(string,uint256[])" + | "log_named_array(string,int256[])" + | "log_named_array(string,address[])" + | "log_named_bytes" + | "log_named_bytes32" + | "log_named_decimal_int" + | "log_named_decimal_uint" + | "log_named_int" + | "log_named_string" + | "log_named_uint" + | "log_string" + | "log_uint" + | "logs" + ): EventFragment; + + encodeFunctionData(functionFragment: "IS_TEST", values?: undefined): string; + encodeFunctionData( + functionFragment: "chainIdZeta", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "erc20ToZRC20s", + values: [BigNumberish, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "excludeArtifacts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "excludeContracts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "excludeSelectors", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "excludeSenders", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "failed", values?: undefined): string; + encodeFunctionData( + functionFragment: "gasZRC20s", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "gatewayEVMs", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "gatewayZEVM", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getRuntimeCode", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "handleEVMCall", + values: [ + BigNumberish, + AddressLike, + AddressLike, + BytesLike, + RevertOptionsStruct + ] + ): string; + encodeFunctionData( + functionFragment: "handleEVMDeposit", + values: [ + BigNumberish, + AddressLike, + AddressLike, + BigNumberish, + AddressLike, + RevertOptionsStruct + ] + ): string; + encodeFunctionData( + functionFragment: "handleEVMDepositAndCall", + values: [ + BigNumberish, + AddressLike, + AddressLike, + BigNumberish, + AddressLike, + BytesLike, + RevertOptionsStruct + ] + ): string; + encodeFunctionData( + functionFragment: "handleZEVMCall", + values: [ + AddressLike, + BytesLike, + AddressLike, + BytesLike, + CallOptionsStruct, + RevertOptionsStruct + ] + ): string; + encodeFunctionData( + functionFragment: "handleZEVMWithdraw", + values: [ + AddressLike, + BytesLike, + BigNumberish, + AddressLike, + RevertOptionsStruct + ] + ): string; + encodeFunctionData( + functionFragment: "handleZEVMWithdrawAndCall", + values: [ + AddressLike, + BytesLike, + BigNumberish, + AddressLike, + BytesLike, + CallOptionsStruct, + RevertOptionsStruct + ] + ): string; + encodeFunctionData( + functionFragment: "setAssetToZRC20", + values: [BigNumberish, AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setChainIdZeta", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "setGasZRC20", + values: [BigNumberish, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setGatewayEVM", + values: [BigNumberish, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setGatewayZEVM", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setUniswapRouter", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setWZETA", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setZRC20ToAsset", + values: [BigNumberish, AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "targetArtifactSelectors", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetArtifacts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetContracts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetInterfaces", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetSelectors", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetSenders", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "uniswapRouter", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "wzeta", values?: undefined): string; + encodeFunctionData( + functionFragment: "zrc20ToErc20s", + values: [BigNumberish, AddressLike] + ): string; + + decodeFunctionResult(functionFragment: "IS_TEST", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "chainIdZeta", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "erc20ToZRC20s", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "excludeArtifacts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "excludeContracts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "excludeSelectors", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "excludeSenders", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "failed", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "gasZRC20s", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "gatewayEVMs", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "gatewayZEVM", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getRuntimeCode", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "handleEVMCall", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "handleEVMDeposit", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "handleEVMDepositAndCall", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "handleZEVMCall", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "handleZEVMWithdraw", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "handleZEVMWithdrawAndCall", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setAssetToZRC20", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setChainIdZeta", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setGasZRC20", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setGatewayEVM", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setGatewayZEVM", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setUniswapRouter", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "setWZETA", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "setZRC20ToAsset", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetArtifactSelectors", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetArtifacts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetContracts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetInterfaces", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetSelectors", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetSenders", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapRouter", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "wzeta", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "zrc20ToErc20s", + data: BytesLike + ): Result; +} + +export namespace logEvent { + export type InputTuple = [arg0: string]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_addressEvent { + export type InputTuple = [arg0: AddressLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_array_uint256_array_Event { + export type InputTuple = [val: BigNumberish[]]; + export type OutputTuple = [val: bigint[]]; + export interface OutputObject { + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_array_int256_array_Event { + export type InputTuple = [val: BigNumberish[]]; + export type OutputTuple = [val: bigint[]]; + export interface OutputObject { + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_array_address_array_Event { + export type InputTuple = [val: AddressLike[]]; + export type OutputTuple = [val: string[]]; + export interface OutputObject { + val: string[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_bytesEvent { + export type InputTuple = [arg0: BytesLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_bytes32Event { + export type InputTuple = [arg0: BytesLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_intEvent { + export type InputTuple = [arg0: BigNumberish]; + export type OutputTuple = [arg0: bigint]; + export interface OutputObject { + arg0: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_addressEvent { + export type InputTuple = [key: string, val: AddressLike]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_array_string_uint256_array_Event { + export type InputTuple = [key: string, val: BigNumberish[]]; + export type OutputTuple = [key: string, val: bigint[]]; + export interface OutputObject { + key: string; + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_array_string_int256_array_Event { + export type InputTuple = [key: string, val: BigNumberish[]]; + export type OutputTuple = [key: string, val: bigint[]]; + export interface OutputObject { + key: string; + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_array_string_address_array_Event { + export type InputTuple = [key: string, val: AddressLike[]]; + export type OutputTuple = [key: string, val: string[]]; + export interface OutputObject { + key: string; + val: string[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_bytesEvent { + export type InputTuple = [key: string, val: BytesLike]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_bytes32Event { + export type InputTuple = [key: string, val: BytesLike]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_decimal_intEvent { + export type InputTuple = [ + key: string, + val: BigNumberish, + decimals: BigNumberish + ]; + export type OutputTuple = [key: string, val: bigint, decimals: bigint]; + export interface OutputObject { + key: string; + val: bigint; + decimals: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_decimal_uintEvent { + export type InputTuple = [ + key: string, + val: BigNumberish, + decimals: BigNumberish + ]; + export type OutputTuple = [key: string, val: bigint, decimals: bigint]; + export interface OutputObject { + key: string; + val: bigint; + decimals: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_intEvent { + export type InputTuple = [key: string, val: BigNumberish]; + export type OutputTuple = [key: string, val: bigint]; + export interface OutputObject { + key: string; + val: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_stringEvent { + export type InputTuple = [key: string, val: string]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_uintEvent { + export type InputTuple = [key: string, val: BigNumberish]; + export type OutputTuple = [key: string, val: bigint]; + export interface OutputObject { + key: string; + val: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_stringEvent { + export type InputTuple = [arg0: string]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_uintEvent { + export type InputTuple = [arg0: BigNumberish]; + export type OutputTuple = [arg0: bigint]; + export interface OutputObject { + arg0: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace logsEvent { + export type InputTuple = [arg0: BytesLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface NodeLogicMock extends BaseContract { + connect(runner?: ContractRunner | null): NodeLogicMock; + waitForDeployment(): Promise; + + interface: NodeLogicMockInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + IS_TEST: TypedContractMethod<[], [boolean], "view">; + + chainIdZeta: TypedContractMethod<[], [bigint], "view">; + + erc20ToZRC20s: TypedContractMethod< + [arg0: BigNumberish, arg1: AddressLike], + [string], + "view" + >; + + excludeArtifacts: TypedContractMethod<[], [string[]], "view">; + + excludeContracts: TypedContractMethod<[], [string[]], "view">; + + excludeSelectors: TypedContractMethod< + [], + [StdInvariant.FuzzSelectorStructOutput[]], + "view" + >; + + excludeSenders: TypedContractMethod<[], [string[]], "view">; + + failed: TypedContractMethod<[], [boolean], "view">; + + gasZRC20s: TypedContractMethod<[arg0: BigNumberish], [string], "view">; + + gatewayEVMs: TypedContractMethod<[arg0: BigNumberish], [string], "view">; + + gatewayZEVM: TypedContractMethod<[], [string], "view">; + + getRuntimeCode: TypedContractMethod<[addr: AddressLike], [string], "view">; + + handleEVMCall: TypedContractMethod< + [ + chainId: BigNumberish, + sender: AddressLike, + receiver: AddressLike, + payload: BytesLike, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + + handleEVMDeposit: TypedContractMethod< + [ + chainId: BigNumberish, + sender: AddressLike, + receiver: AddressLike, + amount: BigNumberish, + asset: AddressLike, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + + handleEVMDepositAndCall: TypedContractMethod< + [ + chainId: BigNumberish, + sender: AddressLike, + receiver: AddressLike, + amount: BigNumberish, + asset: AddressLike, + payload: BytesLike, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + + handleZEVMCall: TypedContractMethod< + [ + sender: AddressLike, + receiver: BytesLike, + zrc20: AddressLike, + message: BytesLike, + callOptions: CallOptionsStruct, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + + handleZEVMWithdraw: TypedContractMethod< + [ + sender: AddressLike, + receiver: BytesLike, + amount: BigNumberish, + zrc20: AddressLike, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + + handleZEVMWithdrawAndCall: TypedContractMethod< + [ + sender: AddressLike, + receiver: BytesLike, + amount: BigNumberish, + zrc20: AddressLike, + message: BytesLike, + callOptions: CallOptionsStruct, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + + setAssetToZRC20: TypedContractMethod< + [chainId: BigNumberish, asset: AddressLike, zrc20: AddressLike], + [void], + "nonpayable" + >; + + setChainIdZeta: TypedContractMethod< + [_chainIdZeta: BigNumberish], + [void], + "nonpayable" + >; + + setGasZRC20: TypedContractMethod< + [chainId: BigNumberish, gasZRC20: AddressLike], + [void], + "nonpayable" + >; + + setGatewayEVM: TypedContractMethod< + [chainId: BigNumberish, gatewayEVM: AddressLike], + [void], + "nonpayable" + >; + + setGatewayZEVM: TypedContractMethod< + [_gatewayZEVM: AddressLike], + [void], + "nonpayable" + >; + + setUniswapRouter: TypedContractMethod< + [_uniswapRouter: AddressLike], + [void], + "nonpayable" + >; + + setWZETA: TypedContractMethod<[_wzeta: AddressLike], [void], "nonpayable">; + + setZRC20ToAsset: TypedContractMethod< + [chainId: BigNumberish, zrc20: AddressLike, asset: AddressLike], + [void], + "nonpayable" + >; + + targetArtifactSelectors: TypedContractMethod< + [], + [StdInvariant.FuzzArtifactSelectorStructOutput[]], + "view" + >; + + targetArtifacts: TypedContractMethod<[], [string[]], "view">; + + targetContracts: TypedContractMethod<[], [string[]], "view">; + + targetInterfaces: TypedContractMethod< + [], + [StdInvariant.FuzzInterfaceStructOutput[]], + "view" + >; + + targetSelectors: TypedContractMethod< + [], + [StdInvariant.FuzzSelectorStructOutput[]], + "view" + >; + + targetSenders: TypedContractMethod<[], [string[]], "view">; + + uniswapRouter: TypedContractMethod<[], [string], "view">; + + wzeta: TypedContractMethod<[], [string], "view">; + + zrc20ToErc20s: TypedContractMethod< + [arg0: BigNumberish, arg1: AddressLike], + [string], + "view" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "IS_TEST" + ): TypedContractMethod<[], [boolean], "view">; + getFunction( + nameOrSignature: "chainIdZeta" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "erc20ToZRC20s" + ): TypedContractMethod< + [arg0: BigNumberish, arg1: AddressLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "excludeArtifacts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "excludeContracts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "excludeSelectors" + ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; + getFunction( + nameOrSignature: "excludeSenders" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "failed" + ): TypedContractMethod<[], [boolean], "view">; + getFunction( + nameOrSignature: "gasZRC20s" + ): TypedContractMethod<[arg0: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "gatewayEVMs" + ): TypedContractMethod<[arg0: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "gatewayZEVM" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "getRuntimeCode" + ): TypedContractMethod<[addr: AddressLike], [string], "view">; + getFunction( + nameOrSignature: "handleEVMCall" + ): TypedContractMethod< + [ + chainId: BigNumberish, + sender: AddressLike, + receiver: AddressLike, + payload: BytesLike, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "handleEVMDeposit" + ): TypedContractMethod< + [ + chainId: BigNumberish, + sender: AddressLike, + receiver: AddressLike, + amount: BigNumberish, + asset: AddressLike, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "handleEVMDepositAndCall" + ): TypedContractMethod< + [ + chainId: BigNumberish, + sender: AddressLike, + receiver: AddressLike, + amount: BigNumberish, + asset: AddressLike, + payload: BytesLike, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "handleZEVMCall" + ): TypedContractMethod< + [ + sender: AddressLike, + receiver: BytesLike, + zrc20: AddressLike, + message: BytesLike, + callOptions: CallOptionsStruct, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "handleZEVMWithdraw" + ): TypedContractMethod< + [ + sender: AddressLike, + receiver: BytesLike, + amount: BigNumberish, + zrc20: AddressLike, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "handleZEVMWithdrawAndCall" + ): TypedContractMethod< + [ + sender: AddressLike, + receiver: BytesLike, + amount: BigNumberish, + zrc20: AddressLike, + message: BytesLike, + callOptions: CallOptionsStruct, + revertOptions: RevertOptionsStruct + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setAssetToZRC20" + ): TypedContractMethod< + [chainId: BigNumberish, asset: AddressLike, zrc20: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setChainIdZeta" + ): TypedContractMethod<[_chainIdZeta: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "setGasZRC20" + ): TypedContractMethod< + [chainId: BigNumberish, gasZRC20: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setGatewayEVM" + ): TypedContractMethod< + [chainId: BigNumberish, gatewayEVM: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setGatewayZEVM" + ): TypedContractMethod<[_gatewayZEVM: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "setUniswapRouter" + ): TypedContractMethod<[_uniswapRouter: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "setWZETA" + ): TypedContractMethod<[_wzeta: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "setZRC20ToAsset" + ): TypedContractMethod< + [chainId: BigNumberish, zrc20: AddressLike, asset: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "targetArtifactSelectors" + ): TypedContractMethod< + [], + [StdInvariant.FuzzArtifactSelectorStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "targetArtifacts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "targetContracts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "targetInterfaces" + ): TypedContractMethod< + [], + [StdInvariant.FuzzInterfaceStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "targetSelectors" + ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; + getFunction( + nameOrSignature: "targetSenders" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "uniswapRouter" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "wzeta" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "zrc20ToErc20s" + ): TypedContractMethod< + [arg0: BigNumberish, arg1: AddressLike], + [string], + "view" + >; + + getEvent( + key: "log" + ): TypedContractEvent< + logEvent.InputTuple, + logEvent.OutputTuple, + logEvent.OutputObject + >; + getEvent( + key: "log_address" + ): TypedContractEvent< + log_addressEvent.InputTuple, + log_addressEvent.OutputTuple, + log_addressEvent.OutputObject + >; + getEvent( + key: "log_array(uint256[])" + ): TypedContractEvent< + log_array_uint256_array_Event.InputTuple, + log_array_uint256_array_Event.OutputTuple, + log_array_uint256_array_Event.OutputObject + >; + getEvent( + key: "log_array(int256[])" + ): TypedContractEvent< + log_array_int256_array_Event.InputTuple, + log_array_int256_array_Event.OutputTuple, + log_array_int256_array_Event.OutputObject + >; + getEvent( + key: "log_array(address[])" + ): TypedContractEvent< + log_array_address_array_Event.InputTuple, + log_array_address_array_Event.OutputTuple, + log_array_address_array_Event.OutputObject + >; + getEvent( + key: "log_bytes" + ): TypedContractEvent< + log_bytesEvent.InputTuple, + log_bytesEvent.OutputTuple, + log_bytesEvent.OutputObject + >; + getEvent( + key: "log_bytes32" + ): TypedContractEvent< + log_bytes32Event.InputTuple, + log_bytes32Event.OutputTuple, + log_bytes32Event.OutputObject + >; + getEvent( + key: "log_int" + ): TypedContractEvent< + log_intEvent.InputTuple, + log_intEvent.OutputTuple, + log_intEvent.OutputObject + >; + getEvent( + key: "log_named_address" + ): TypedContractEvent< + log_named_addressEvent.InputTuple, + log_named_addressEvent.OutputTuple, + log_named_addressEvent.OutputObject + >; + getEvent( + key: "log_named_array(string,uint256[])" + ): TypedContractEvent< + log_named_array_string_uint256_array_Event.InputTuple, + log_named_array_string_uint256_array_Event.OutputTuple, + log_named_array_string_uint256_array_Event.OutputObject + >; + getEvent( + key: "log_named_array(string,int256[])" + ): TypedContractEvent< + log_named_array_string_int256_array_Event.InputTuple, + log_named_array_string_int256_array_Event.OutputTuple, + log_named_array_string_int256_array_Event.OutputObject + >; + getEvent( + key: "log_named_array(string,address[])" + ): TypedContractEvent< + log_named_array_string_address_array_Event.InputTuple, + log_named_array_string_address_array_Event.OutputTuple, + log_named_array_string_address_array_Event.OutputObject + >; + getEvent( + key: "log_named_bytes" + ): TypedContractEvent< + log_named_bytesEvent.InputTuple, + log_named_bytesEvent.OutputTuple, + log_named_bytesEvent.OutputObject + >; + getEvent( + key: "log_named_bytes32" + ): TypedContractEvent< + log_named_bytes32Event.InputTuple, + log_named_bytes32Event.OutputTuple, + log_named_bytes32Event.OutputObject + >; + getEvent( + key: "log_named_decimal_int" + ): TypedContractEvent< + log_named_decimal_intEvent.InputTuple, + log_named_decimal_intEvent.OutputTuple, + log_named_decimal_intEvent.OutputObject + >; + getEvent( + key: "log_named_decimal_uint" + ): TypedContractEvent< + log_named_decimal_uintEvent.InputTuple, + log_named_decimal_uintEvent.OutputTuple, + log_named_decimal_uintEvent.OutputObject + >; + getEvent( + key: "log_named_int" + ): TypedContractEvent< + log_named_intEvent.InputTuple, + log_named_intEvent.OutputTuple, + log_named_intEvent.OutputObject + >; + getEvent( + key: "log_named_string" + ): TypedContractEvent< + log_named_stringEvent.InputTuple, + log_named_stringEvent.OutputTuple, + log_named_stringEvent.OutputObject + >; + getEvent( + key: "log_named_uint" + ): TypedContractEvent< + log_named_uintEvent.InputTuple, + log_named_uintEvent.OutputTuple, + log_named_uintEvent.OutputObject + >; + getEvent( + key: "log_string" + ): TypedContractEvent< + log_stringEvent.InputTuple, + log_stringEvent.OutputTuple, + log_stringEvent.OutputObject + >; + getEvent( + key: "log_uint" + ): TypedContractEvent< + log_uintEvent.InputTuple, + log_uintEvent.OutputTuple, + log_uintEvent.OutputObject + >; + getEvent( + key: "logs" + ): TypedContractEvent< + logsEvent.InputTuple, + logsEvent.OutputTuple, + logsEvent.OutputObject + >; + + filters: { + "log(string)": TypedContractEvent< + logEvent.InputTuple, + logEvent.OutputTuple, + logEvent.OutputObject + >; + log: TypedContractEvent< + logEvent.InputTuple, + logEvent.OutputTuple, + logEvent.OutputObject + >; + + "log_address(address)": TypedContractEvent< + log_addressEvent.InputTuple, + log_addressEvent.OutputTuple, + log_addressEvent.OutputObject + >; + log_address: TypedContractEvent< + log_addressEvent.InputTuple, + log_addressEvent.OutputTuple, + log_addressEvent.OutputObject + >; + + "log_array(uint256[])": TypedContractEvent< + log_array_uint256_array_Event.InputTuple, + log_array_uint256_array_Event.OutputTuple, + log_array_uint256_array_Event.OutputObject + >; + "log_array(int256[])": TypedContractEvent< + log_array_int256_array_Event.InputTuple, + log_array_int256_array_Event.OutputTuple, + log_array_int256_array_Event.OutputObject + >; + "log_array(address[])": TypedContractEvent< + log_array_address_array_Event.InputTuple, + log_array_address_array_Event.OutputTuple, + log_array_address_array_Event.OutputObject + >; + + "log_bytes(bytes)": TypedContractEvent< + log_bytesEvent.InputTuple, + log_bytesEvent.OutputTuple, + log_bytesEvent.OutputObject + >; + log_bytes: TypedContractEvent< + log_bytesEvent.InputTuple, + log_bytesEvent.OutputTuple, + log_bytesEvent.OutputObject + >; + + "log_bytes32(bytes32)": TypedContractEvent< + log_bytes32Event.InputTuple, + log_bytes32Event.OutputTuple, + log_bytes32Event.OutputObject + >; + log_bytes32: TypedContractEvent< + log_bytes32Event.InputTuple, + log_bytes32Event.OutputTuple, + log_bytes32Event.OutputObject + >; + + "log_int(int256)": TypedContractEvent< + log_intEvent.InputTuple, + log_intEvent.OutputTuple, + log_intEvent.OutputObject + >; + log_int: TypedContractEvent< + log_intEvent.InputTuple, + log_intEvent.OutputTuple, + log_intEvent.OutputObject + >; + + "log_named_address(string,address)": TypedContractEvent< + log_named_addressEvent.InputTuple, + log_named_addressEvent.OutputTuple, + log_named_addressEvent.OutputObject + >; + log_named_address: TypedContractEvent< + log_named_addressEvent.InputTuple, + log_named_addressEvent.OutputTuple, + log_named_addressEvent.OutputObject + >; + + "log_named_array(string,uint256[])": TypedContractEvent< + log_named_array_string_uint256_array_Event.InputTuple, + log_named_array_string_uint256_array_Event.OutputTuple, + log_named_array_string_uint256_array_Event.OutputObject + >; + "log_named_array(string,int256[])": TypedContractEvent< + log_named_array_string_int256_array_Event.InputTuple, + log_named_array_string_int256_array_Event.OutputTuple, + log_named_array_string_int256_array_Event.OutputObject + >; + "log_named_array(string,address[])": TypedContractEvent< + log_named_array_string_address_array_Event.InputTuple, + log_named_array_string_address_array_Event.OutputTuple, + log_named_array_string_address_array_Event.OutputObject + >; + + "log_named_bytes(string,bytes)": TypedContractEvent< + log_named_bytesEvent.InputTuple, + log_named_bytesEvent.OutputTuple, + log_named_bytesEvent.OutputObject + >; + log_named_bytes: TypedContractEvent< + log_named_bytesEvent.InputTuple, + log_named_bytesEvent.OutputTuple, + log_named_bytesEvent.OutputObject + >; + + "log_named_bytes32(string,bytes32)": TypedContractEvent< + log_named_bytes32Event.InputTuple, + log_named_bytes32Event.OutputTuple, + log_named_bytes32Event.OutputObject + >; + log_named_bytes32: TypedContractEvent< + log_named_bytes32Event.InputTuple, + log_named_bytes32Event.OutputTuple, + log_named_bytes32Event.OutputObject + >; + + "log_named_decimal_int(string,int256,uint256)": TypedContractEvent< + log_named_decimal_intEvent.InputTuple, + log_named_decimal_intEvent.OutputTuple, + log_named_decimal_intEvent.OutputObject + >; + log_named_decimal_int: TypedContractEvent< + log_named_decimal_intEvent.InputTuple, + log_named_decimal_intEvent.OutputTuple, + log_named_decimal_intEvent.OutputObject + >; + + "log_named_decimal_uint(string,uint256,uint256)": TypedContractEvent< + log_named_decimal_uintEvent.InputTuple, + log_named_decimal_uintEvent.OutputTuple, + log_named_decimal_uintEvent.OutputObject + >; + log_named_decimal_uint: TypedContractEvent< + log_named_decimal_uintEvent.InputTuple, + log_named_decimal_uintEvent.OutputTuple, + log_named_decimal_uintEvent.OutputObject + >; + + "log_named_int(string,int256)": TypedContractEvent< + log_named_intEvent.InputTuple, + log_named_intEvent.OutputTuple, + log_named_intEvent.OutputObject + >; + log_named_int: TypedContractEvent< + log_named_intEvent.InputTuple, + log_named_intEvent.OutputTuple, + log_named_intEvent.OutputObject + >; + + "log_named_string(string,string)": TypedContractEvent< + log_named_stringEvent.InputTuple, + log_named_stringEvent.OutputTuple, + log_named_stringEvent.OutputObject + >; + log_named_string: TypedContractEvent< + log_named_stringEvent.InputTuple, + log_named_stringEvent.OutputTuple, + log_named_stringEvent.OutputObject + >; + + "log_named_uint(string,uint256)": TypedContractEvent< + log_named_uintEvent.InputTuple, + log_named_uintEvent.OutputTuple, + log_named_uintEvent.OutputObject + >; + log_named_uint: TypedContractEvent< + log_named_uintEvent.InputTuple, + log_named_uintEvent.OutputTuple, + log_named_uintEvent.OutputObject + >; + + "log_string(string)": TypedContractEvent< + log_stringEvent.InputTuple, + log_stringEvent.OutputTuple, + log_stringEvent.OutputObject + >; + log_string: TypedContractEvent< + log_stringEvent.InputTuple, + log_stringEvent.OutputTuple, + log_stringEvent.OutputObject + >; + + "log_uint(uint256)": TypedContractEvent< + log_uintEvent.InputTuple, + log_uintEvent.OutputTuple, + log_uintEvent.OutputObject + >; + log_uint: TypedContractEvent< + log_uintEvent.InputTuple, + log_uintEvent.OutputTuple, + log_uintEvent.OutputObject + >; + + "logs(bytes)": TypedContractEvent< + logsEvent.InputTuple, + logsEvent.OutputTuple, + logsEvent.OutputObject + >; + logs: TypedContractEvent< + logsEvent.InputTuple, + logsEvent.OutputTuple, + logsEvent.OutputObject + >; + }; +} diff --git a/typechain-types/contracts/testing/mockGateway/WrapGatewayEVM.ts b/typechain-types/contracts/testing/mockGateway/WrapGatewayEVM.ts new file mode 100644 index 00000000..eaa7d891 --- /dev/null +++ b/typechain-types/contracts/testing/mockGateway/WrapGatewayEVM.ts @@ -0,0 +1,109 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../../common"; + +export interface WrapGatewayEVMInterface extends Interface { + getFunction( + nameOrSignature: "CHAIN_ID" | "GATEWAY_IMPL" | "NODE_LOGIC" + ): FunctionFragment; + + encodeFunctionData(functionFragment: "CHAIN_ID", values?: undefined): string; + encodeFunctionData( + functionFragment: "GATEWAY_IMPL", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "NODE_LOGIC", + values?: undefined + ): string; + + decodeFunctionResult(functionFragment: "CHAIN_ID", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "GATEWAY_IMPL", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "NODE_LOGIC", data: BytesLike): Result; +} + +export interface WrapGatewayEVM extends BaseContract { + connect(runner?: ContractRunner | null): WrapGatewayEVM; + waitForDeployment(): Promise; + + interface: WrapGatewayEVMInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + CHAIN_ID: TypedContractMethod<[], [bigint], "view">; + + GATEWAY_IMPL: TypedContractMethod<[], [string], "view">; + + NODE_LOGIC: TypedContractMethod<[], [string], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "CHAIN_ID" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "GATEWAY_IMPL" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "NODE_LOGIC" + ): TypedContractMethod<[], [string], "view">; + + filters: {}; +} diff --git a/typechain-types/contracts/testing/mockGateway/WrapGatewayZEVM.ts b/typechain-types/contracts/testing/mockGateway/WrapGatewayZEVM.ts new file mode 100644 index 00000000..7906d773 --- /dev/null +++ b/typechain-types/contracts/testing/mockGateway/WrapGatewayZEVM.ts @@ -0,0 +1,102 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../../common"; + +export interface WrapGatewayZEVMInterface extends Interface { + getFunction( + nameOrSignature: "GATEWAY_ZEVM_IMPL" | "NODE_LOGIC" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "GATEWAY_ZEVM_IMPL", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "NODE_LOGIC", + values?: undefined + ): string; + + decodeFunctionResult( + functionFragment: "GATEWAY_ZEVM_IMPL", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "NODE_LOGIC", data: BytesLike): Result; +} + +export interface WrapGatewayZEVM extends BaseContract { + connect(runner?: ContractRunner | null): WrapGatewayZEVM; + waitForDeployment(): Promise; + + interface: WrapGatewayZEVMInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + GATEWAY_ZEVM_IMPL: TypedContractMethod<[], [string], "view">; + + NODE_LOGIC: TypedContractMethod<[], [string], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "GATEWAY_ZEVM_IMPL" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "NODE_LOGIC" + ): TypedContractMethod<[], [string], "view">; + + filters: {}; +} diff --git a/typechain-types/contracts/testing/mockGateway/index.ts b/typechain-types/contracts/testing/mockGateway/index.ts new file mode 100644 index 00000000..5b093fd2 --- /dev/null +++ b/typechain-types/contracts/testing/mockGateway/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { NodeLogicMock } from "./NodeLogicMock"; +export type { WrapGatewayEVM } from "./WrapGatewayEVM"; +export type { WrapGatewayZEVM } from "./WrapGatewayZEVM"; diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable__factory.ts b/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable__factory.ts new file mode 100644 index 00000000..f0727b73 --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable__factory.ts @@ -0,0 +1,277 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + AccessControlUpgradeable, + AccessControlUpgradeableInterface, +} from "../../../../@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable"; + +const _abi = [ + { + inputs: [], + name: "AccessControlBadConfirmation", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "bytes32", + name: "neededRole", + type: "bytes32", + }, + ], + name: "AccessControlUnauthorizedAccount", + type: "error", + }, + { + inputs: [], + name: "InvalidInitialization", + type: "error", + }, + { + inputs: [], + name: "NotInitializing", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint64", + name: "version", + type: "uint64", + }, + ], + name: "Initialized", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + indexed: true, + internalType: "bytes32", + name: "previousAdminRole", + type: "bytes32", + }, + { + indexed: true, + internalType: "bytes32", + name: "newAdminRole", + type: "bytes32", + }, + ], + name: "RoleAdminChanged", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + indexed: true, + internalType: "address", + name: "account", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "RoleGranted", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + indexed: true, + internalType: "address", + name: "account", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "RoleRevoked", + type: "event", + }, + { + inputs: [], + name: "DEFAULT_ADMIN_ROLE", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + ], + name: "getRoleAdmin", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "grantRole", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "hasRole", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "callerConfirmation", + type: "address", + }, + ], + name: "renounceRole", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "revokeRole", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes4", + name: "interfaceId", + type: "bytes4", + }, + ], + name: "supportsInterface", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +export class AccessControlUpgradeable__factory { + static readonly abi = _abi; + static createInterface(): AccessControlUpgradeableInterface { + return new Interface(_abi) as AccessControlUpgradeableInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): AccessControlUpgradeable { + return new Contract( + address, + _abi, + runner + ) as unknown as AccessControlUpgradeable; + } +} diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/index.ts b/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/index.ts new file mode 100644 index 00000000..82d689c5 --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { AccessControlUpgradeable__factory } from "./AccessControlUpgradeable__factory"; diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/index.ts b/typechain-types/factories/@openzeppelin/contracts-upgradeable/index.ts new file mode 100644 index 00000000..2b4c7e65 --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts-upgradeable/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as access from "./access"; +export * as proxy from "./proxy"; +export * as utils from "./utils"; diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/index.ts b/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/index.ts new file mode 100644 index 00000000..56778f88 --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as utils from "./utils"; diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.ts b/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.ts new file mode 100644 index 00000000..132c5778 --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.ts @@ -0,0 +1,48 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + Initializable, + InitializableInterface, +} from "../../../../../@openzeppelin/contracts-upgradeable/proxy/utils/Initializable"; + +const _abi = [ + { + inputs: [], + name: "InvalidInitialization", + type: "error", + }, + { + inputs: [], + name: "NotInitializing", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint64", + name: "version", + type: "uint64", + }, + ], + name: "Initialized", + type: "event", + }, +] as const; + +export class Initializable__factory { + static readonly abi = _abi; + static createInterface(): InitializableInterface { + return new Interface(_abi) as InitializableInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): Initializable { + return new Contract(address, _abi, runner) as unknown as Initializable; + } +} diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable__factory.ts b/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable__factory.ts new file mode 100644 index 00000000..a4d857f4 --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable__factory.ts @@ -0,0 +1,153 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + UUPSUpgradeable, + UUPSUpgradeableInterface, +} from "../../../../../@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + ], + name: "AddressEmptyCode", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "implementation", + type: "address", + }, + ], + name: "ERC1967InvalidImplementation", + type: "error", + }, + { + inputs: [], + name: "ERC1967NonPayable", + type: "error", + }, + { + inputs: [], + name: "FailedCall", + type: "error", + }, + { + inputs: [], + name: "InvalidInitialization", + type: "error", + }, + { + inputs: [], + name: "NotInitializing", + type: "error", + }, + { + inputs: [], + name: "UUPSUnauthorizedCallContext", + type: "error", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "slot", + type: "bytes32", + }, + ], + name: "UUPSUnsupportedProxiableUUID", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint64", + name: "version", + type: "uint64", + }, + ], + name: "Initialized", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "implementation", + type: "address", + }, + ], + name: "Upgraded", + type: "event", + }, + { + inputs: [], + name: "UPGRADE_INTERFACE_VERSION", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "proxiableUUID", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newImplementation", + type: "address", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "upgradeToAndCall", + outputs: [], + stateMutability: "payable", + type: "function", + }, +] as const; + +export class UUPSUpgradeable__factory { + static readonly abi = _abi; + static createInterface(): UUPSUpgradeableInterface { + return new Interface(_abi) as UUPSUpgradeableInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): UUPSUpgradeable { + return new Contract(address, _abi, runner) as unknown as UUPSUpgradeable; + } +} diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/index.ts b/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/index.ts new file mode 100644 index 00000000..a192d15d --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { Initializable__factory } from "./Initializable__factory"; +export { UUPSUpgradeable__factory } from "./UUPSUpgradeable__factory"; diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.ts b/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.ts new file mode 100644 index 00000000..60e8cbba --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.ts @@ -0,0 +1,48 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + ContextUpgradeable, + ContextUpgradeableInterface, +} from "../../../../@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable"; + +const _abi = [ + { + inputs: [], + name: "InvalidInitialization", + type: "error", + }, + { + inputs: [], + name: "NotInitializing", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint64", + name: "version", + type: "uint64", + }, + ], + name: "Initialized", + type: "event", + }, +] as const; + +export class ContextUpgradeable__factory { + static readonly abi = _abi; + static createInterface(): ContextUpgradeableInterface { + return new Interface(_abi) as ContextUpgradeableInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): ContextUpgradeable { + return new Contract(address, _abi, runner) as unknown as ContextUpgradeable; + } +} diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable__factory.ts b/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable__factory.ts new file mode 100644 index 00000000..f43afe92 --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable__factory.ts @@ -0,0 +1,101 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + PausableUpgradeable, + PausableUpgradeableInterface, +} from "../../../../@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable"; + +const _abi = [ + { + inputs: [], + name: "EnforcedPause", + type: "error", + }, + { + inputs: [], + name: "ExpectedPause", + type: "error", + }, + { + inputs: [], + name: "InvalidInitialization", + type: "error", + }, + { + inputs: [], + name: "NotInitializing", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint64", + name: "version", + type: "uint64", + }, + ], + name: "Initialized", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "Paused", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "Unpaused", + type: "event", + }, + { + inputs: [], + name: "paused", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +export class PausableUpgradeable__factory { + static readonly abi = _abi; + static createInterface(): PausableUpgradeableInterface { + return new Interface(_abi) as PausableUpgradeableInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): PausableUpgradeable { + return new Contract( + address, + _abi, + runner + ) as unknown as PausableUpgradeable; + } +} diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable__factory.ts b/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable__factory.ts new file mode 100644 index 00000000..a3fe9264 --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable__factory.ts @@ -0,0 +1,57 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + ReentrancyGuardUpgradeable, + ReentrancyGuardUpgradeableInterface, +} from "../../../../@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable"; + +const _abi = [ + { + inputs: [], + name: "InvalidInitialization", + type: "error", + }, + { + inputs: [], + name: "NotInitializing", + type: "error", + }, + { + inputs: [], + name: "ReentrancyGuardReentrantCall", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint64", + name: "version", + type: "uint64", + }, + ], + name: "Initialized", + type: "event", + }, +] as const; + +export class ReentrancyGuardUpgradeable__factory { + static readonly abi = _abi; + static createInterface(): ReentrancyGuardUpgradeableInterface { + return new Interface(_abi) as ReentrancyGuardUpgradeableInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): ReentrancyGuardUpgradeable { + return new Contract( + address, + _abi, + runner + ) as unknown as ReentrancyGuardUpgradeable; + } +} diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/index.ts b/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/index.ts new file mode 100644 index 00000000..979e6103 --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/index.ts @@ -0,0 +1,7 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as introspection from "./introspection"; +export { ContextUpgradeable__factory } from "./ContextUpgradeable__factory"; +export { PausableUpgradeable__factory } from "./PausableUpgradeable__factory"; +export { ReentrancyGuardUpgradeable__factory } from "./ReentrancyGuardUpgradeable__factory"; diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable__factory.ts b/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable__factory.ts new file mode 100644 index 00000000..fc2d6f48 --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable__factory.ts @@ -0,0 +1,67 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + ERC165Upgradeable, + ERC165UpgradeableInterface, +} from "../../../../../@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable"; + +const _abi = [ + { + inputs: [], + name: "InvalidInitialization", + type: "error", + }, + { + inputs: [], + name: "NotInitializing", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint64", + name: "version", + type: "uint64", + }, + ], + name: "Initialized", + type: "event", + }, + { + inputs: [ + { + internalType: "bytes4", + name: "interfaceId", + type: "bytes4", + }, + ], + name: "supportsInterface", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +export class ERC165Upgradeable__factory { + static readonly abi = _abi; + static createInterface(): ERC165UpgradeableInterface { + return new Interface(_abi) as ERC165UpgradeableInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): ERC165Upgradeable { + return new Contract(address, _abi, runner) as unknown as ERC165Upgradeable; + } +} diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/introspection/index.ts b/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/introspection/index.ts new file mode 100644 index 00000000..5cebdb19 --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/introspection/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { ERC165Upgradeable__factory } from "./ERC165Upgradeable__factory"; diff --git a/typechain-types/factories/@openzeppelin/contracts/access/IAccessControl__factory.ts b/typechain-types/factories/@openzeppelin/contracts/access/IAccessControl__factory.ts new file mode 100644 index 00000000..d1e35233 --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts/access/IAccessControl__factory.ts @@ -0,0 +1,218 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IAccessControl, + IAccessControlInterface, +} from "../../../../@openzeppelin/contracts/access/IAccessControl"; + +const _abi = [ + { + inputs: [], + name: "AccessControlBadConfirmation", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "bytes32", + name: "neededRole", + type: "bytes32", + }, + ], + name: "AccessControlUnauthorizedAccount", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + indexed: true, + internalType: "bytes32", + name: "previousAdminRole", + type: "bytes32", + }, + { + indexed: true, + internalType: "bytes32", + name: "newAdminRole", + type: "bytes32", + }, + ], + name: "RoleAdminChanged", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + indexed: true, + internalType: "address", + name: "account", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "RoleGranted", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + indexed: true, + internalType: "address", + name: "account", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "RoleRevoked", + type: "event", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + ], + name: "getRoleAdmin", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "grantRole", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "hasRole", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "callerConfirmation", + type: "address", + }, + ], + name: "renounceRole", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "revokeRole", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class IAccessControl__factory { + static readonly abi = _abi; + static createInterface(): IAccessControlInterface { + return new Interface(_abi) as IAccessControlInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IAccessControl { + return new Contract(address, _abi, runner) as unknown as IAccessControl; + } +} diff --git a/typechain-types/factories/@openzeppelin/contracts/access/index.ts b/typechain-types/factories/@openzeppelin/contracts/access/index.ts new file mode 100644 index 00000000..33abb021 --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts/access/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IAccessControl__factory } from "./IAccessControl__factory"; diff --git a/typechain-types/factories/@openzeppelin/contracts/index.ts b/typechain-types/factories/@openzeppelin/contracts/index.ts new file mode 100644 index 00000000..cacd2b7e --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts/index.ts @@ -0,0 +1,8 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as access from "./access"; +export * as interfaces from "./interfaces"; +export * as proxy from "./proxy"; +export * as token from "./token"; +export * as utils from "./utils"; diff --git a/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC1363__factory.ts b/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC1363__factory.ts new file mode 100644 index 00000000..6a0a0d47 --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC1363__factory.ts @@ -0,0 +1,393 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IERC1363, + IERC1363Interface, +} from "../../../../@openzeppelin/contracts/interfaces/IERC1363"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "approveAndCall", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "approveAndCall", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes4", + name: "interfaceId", + type: "bytes4", + }, + ], + name: "supportsInterface", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transferAndCall", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "transferAndCall", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "transferFromAndCall", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transferFromAndCall", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class IERC1363__factory { + static readonly abi = _abi; + static createInterface(): IERC1363Interface { + return new Interface(_abi) as IERC1363Interface; + } + static connect(address: string, runner?: ContractRunner | null): IERC1363 { + return new Contract(address, _abi, runner) as unknown as IERC1363; + } +} diff --git a/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC1967__factory.ts b/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC1967__factory.ts new file mode 100644 index 00000000..c4821f44 --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC1967__factory.ts @@ -0,0 +1,67 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IERC1967, + IERC1967Interface, +} from "../../../../@openzeppelin/contracts/interfaces/IERC1967"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "previousAdmin", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "newAdmin", + type: "address", + }, + ], + name: "AdminChanged", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "beacon", + type: "address", + }, + ], + name: "BeaconUpgraded", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "implementation", + type: "address", + }, + ], + name: "Upgraded", + type: "event", + }, +] as const; + +export class IERC1967__factory { + static readonly abi = _abi; + static createInterface(): IERC1967Interface { + return new Interface(_abi) as IERC1967Interface; + } + static connect(address: string, runner?: ContractRunner | null): IERC1967 { + return new Contract(address, _abi, runner) as unknown as IERC1967; + } +} diff --git a/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory.ts b/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory.ts new file mode 100644 index 00000000..360f9ed4 --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory.ts @@ -0,0 +1,38 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IERC1822Proxiable, + IERC1822ProxiableInterface, +} from "../../../../../@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable"; + +const _abi = [ + { + inputs: [], + name: "proxiableUUID", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +export class IERC1822Proxiable__factory { + static readonly abi = _abi; + static createInterface(): IERC1822ProxiableInterface { + return new Interface(_abi) as IERC1822ProxiableInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IERC1822Proxiable { + return new Contract(address, _abi, runner) as unknown as IERC1822Proxiable; + } +} diff --git a/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.ts b/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.ts new file mode 100644 index 00000000..ecca1339 --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IERC1822Proxiable__factory } from "./IERC1822Proxiable__factory"; diff --git a/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors__factory.ts b/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors__factory.ts new file mode 100644 index 00000000..0413f8c1 --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors__factory.ts @@ -0,0 +1,127 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IERC1155Errors, + IERC1155ErrorsInterface, +} from "../../../../../@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "uint256", + name: "balance", + type: "uint256", + }, + { + internalType: "uint256", + name: "needed", + type: "uint256", + }, + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "ERC1155InsufficientBalance", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "approver", + type: "address", + }, + ], + name: "ERC1155InvalidApprover", + type: "error", + }, + { + inputs: [ + { + internalType: "uint256", + name: "idsLength", + type: "uint256", + }, + { + internalType: "uint256", + name: "valuesLength", + type: "uint256", + }, + ], + name: "ERC1155InvalidArrayLength", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "operator", + type: "address", + }, + ], + name: "ERC1155InvalidOperator", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "receiver", + type: "address", + }, + ], + name: "ERC1155InvalidReceiver", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "ERC1155InvalidSender", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "operator", + type: "address", + }, + { + internalType: "address", + name: "owner", + type: "address", + }, + ], + name: "ERC1155MissingApprovalForAll", + type: "error", + }, +] as const; + +export class IERC1155Errors__factory { + static readonly abi = _abi; + static createInterface(): IERC1155ErrorsInterface { + return new Interface(_abi) as IERC1155ErrorsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IERC1155Errors { + return new Contract(address, _abi, runner) as unknown as IERC1155Errors; + } +} diff --git a/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors__factory.ts b/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors__factory.ts new file mode 100644 index 00000000..695f3f0f --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors__factory.ts @@ -0,0 +1,111 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IERC20Errors, + IERC20ErrorsInterface, +} from "../../../../../@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "allowance", + type: "uint256", + }, + { + internalType: "uint256", + name: "needed", + type: "uint256", + }, + ], + name: "ERC20InsufficientAllowance", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "uint256", + name: "balance", + type: "uint256", + }, + { + internalType: "uint256", + name: "needed", + type: "uint256", + }, + ], + name: "ERC20InsufficientBalance", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "approver", + type: "address", + }, + ], + name: "ERC20InvalidApprover", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "receiver", + type: "address", + }, + ], + name: "ERC20InvalidReceiver", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "ERC20InvalidSender", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "ERC20InvalidSpender", + type: "error", + }, +] as const; + +export class IERC20Errors__factory { + static readonly abi = _abi; + static createInterface(): IERC20ErrorsInterface { + return new Interface(_abi) as IERC20ErrorsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IERC20Errors { + return new Contract(address, _abi, runner) as unknown as IERC20Errors; + } +} diff --git a/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors__factory.ts b/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors__factory.ts new file mode 100644 index 00000000..8615d4dd --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors__factory.ts @@ -0,0 +1,128 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IERC721Errors, + IERC721ErrorsInterface, +} from "../../../../../@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + { + internalType: "address", + name: "owner", + type: "address", + }, + ], + name: "ERC721IncorrectOwner", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "operator", + type: "address", + }, + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "ERC721InsufficientApproval", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "approver", + type: "address", + }, + ], + name: "ERC721InvalidApprover", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "operator", + type: "address", + }, + ], + name: "ERC721InvalidOperator", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + ], + name: "ERC721InvalidOwner", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "receiver", + type: "address", + }, + ], + name: "ERC721InvalidReceiver", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "ERC721InvalidSender", + type: "error", + }, + { + inputs: [ + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "ERC721NonexistentToken", + type: "error", + }, +] as const; + +export class IERC721Errors__factory { + static readonly abi = _abi; + static createInterface(): IERC721ErrorsInterface { + return new Interface(_abi) as IERC721ErrorsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IERC721Errors { + return new Contract(address, _abi, runner) as unknown as IERC721Errors; + } +} diff --git a/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts b/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts new file mode 100644 index 00000000..571330ea --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IERC1155Errors__factory } from "./IERC1155Errors__factory"; +export { IERC20Errors__factory } from "./IERC20Errors__factory"; +export { IERC721Errors__factory } from "./IERC721Errors__factory"; diff --git a/typechain-types/factories/@openzeppelin/contracts/interfaces/index.ts b/typechain-types/factories/@openzeppelin/contracts/interfaces/index.ts new file mode 100644 index 00000000..b91187f9 --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts/interfaces/index.ts @@ -0,0 +1,7 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as draftIerc1822Sol from "./draft-IERC1822.sol"; +export * as draftIerc6093Sol from "./draft-IERC6093.sol"; +export { IERC1363__factory } from "./IERC1363__factory"; +export { IERC1967__factory } from "./IERC1967__factory"; diff --git a/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.ts b/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.ts new file mode 100644 index 00000000..b16b3c4a --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.ts @@ -0,0 +1,144 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + BytesLike, + AddressLike, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { PayableOverrides } from "../../../../../common"; +import type { + ERC1967Proxy, + ERC1967ProxyInterface, +} from "../../../../../@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "implementation", + type: "address", + }, + { + internalType: "bytes", + name: "_data", + type: "bytes", + }, + ], + stateMutability: "payable", + type: "constructor", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + ], + name: "AddressEmptyCode", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "implementation", + type: "address", + }, + ], + name: "ERC1967InvalidImplementation", + type: "error", + }, + { + inputs: [], + name: "ERC1967NonPayable", + type: "error", + }, + { + inputs: [], + name: "FailedCall", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "implementation", + type: "address", + }, + ], + name: "Upgraded", + type: "event", + }, + { + stateMutability: "payable", + type: "fallback", + }, +] as const; + +const _bytecode = + "0x60806040526102c68038038061001481610188565b928339810190604081830312610183578051906001600160a01b03821690818303610183576020810151906001600160401b038211610183570183601f820112156101835780519061006d610068836101c3565b610188565b94828652602083830101116101835760005b82811061016e575050602060009185010152813b1561015a577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a28151156101415760008083602061012995519101845af43d15610139573d91610119610068846101c3565b9283523d6000602085013e6101de565b505b604051608690816102408239f35b6060916101de565b5050341561012b5763b398979f60e01b60005260046000fd5b634c9c8ce360e01b60005260045260246000fd5b8060208092840101518282890101520161007f565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176101ad57604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b0381116101ad57601f01601f191660200190565b9061020457508051156101f357805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580610236575b610215575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b1561020d56fe60806040527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5460009081906001600160a01b0316368280378136915af43d6000803e15604b573d6000f35b3d6000fdfea264697066735822122050f22a01d073962c556a114f7af7ed5d52928a56307a2cc1329dcdbb635986ec64736f6c634300081a0033"; + +type ERC1967ProxyConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: ERC1967ProxyConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class ERC1967Proxy__factory extends ContractFactory { + constructor(...args: ERC1967ProxyConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + implementation: AddressLike, + _data: BytesLike, + overrides?: PayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(implementation, _data, overrides || {}); + } + override deploy( + implementation: AddressLike, + _data: BytesLike, + overrides?: PayableOverrides & { from?: string } + ) { + return super.deploy(implementation, _data, overrides || {}) as Promise< + ERC1967Proxy & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): ERC1967Proxy__factory { + return super.connect(runner) as ERC1967Proxy__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): ERC1967ProxyInterface { + return new Interface(_abi) as ERC1967ProxyInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): ERC1967Proxy { + return new Contract(address, _abi, runner) as unknown as ERC1967Proxy; + } +} diff --git a/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils__factory.ts b/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils__factory.ts new file mode 100644 index 00000000..c98f8425 --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils__factory.ts @@ -0,0 +1,105 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../../../common"; +import type { + ERC1967Utils, + ERC1967UtilsInterface, +} from "../../../../../@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "admin", + type: "address", + }, + ], + name: "ERC1967InvalidAdmin", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "beacon", + type: "address", + }, + ], + name: "ERC1967InvalidBeacon", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "implementation", + type: "address", + }, + ], + name: "ERC1967InvalidImplementation", + type: "error", + }, + { + inputs: [], + name: "ERC1967NonPayable", + type: "error", + }, +] as const; + +const _bytecode = + "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220c11cf1f15ab48ccbf744da22464f454f8088bc380492096b2255a2c2c78aebd364736f6c634300081a0033"; + +type ERC1967UtilsConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: ERC1967UtilsConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class ERC1967Utils__factory extends ContractFactory { + constructor(...args: ERC1967UtilsConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + ERC1967Utils & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): ERC1967Utils__factory { + return super.connect(runner) as ERC1967Utils__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): ERC1967UtilsInterface { + return new Interface(_abi) as ERC1967UtilsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): ERC1967Utils { + return new Contract(address, _abi, runner) as unknown as ERC1967Utils; + } +} diff --git a/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/index.ts b/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/index.ts new file mode 100644 index 00000000..b7cbb1b4 --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { ERC1967Proxy__factory } from "./ERC1967Proxy__factory"; +export { ERC1967Utils__factory } from "./ERC1967Utils__factory"; diff --git a/typechain-types/factories/@openzeppelin/contracts/proxy/Proxy__factory.ts b/typechain-types/factories/@openzeppelin/contracts/proxy/Proxy__factory.ts new file mode 100644 index 00000000..76f2c926 --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts/proxy/Proxy__factory.ts @@ -0,0 +1,26 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + Proxy, + ProxyInterface, +} from "../../../../@openzeppelin/contracts/proxy/Proxy"; + +const _abi = [ + { + stateMutability: "payable", + type: "fallback", + }, +] as const; + +export class Proxy__factory { + static readonly abi = _abi; + static createInterface(): ProxyInterface { + return new Interface(_abi) as ProxyInterface; + } + static connect(address: string, runner?: ContractRunner | null): Proxy { + return new Contract(address, _abi, runner) as unknown as Proxy; + } +} diff --git a/typechain-types/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.ts b/typechain-types/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.ts new file mode 100644 index 00000000..184893de --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.ts @@ -0,0 +1,35 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IBeacon, + IBeaconInterface, +} from "../../../../../@openzeppelin/contracts/proxy/beacon/IBeacon"; + +const _abi = [ + { + inputs: [], + name: "implementation", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +export class IBeacon__factory { + static readonly abi = _abi; + static createInterface(): IBeaconInterface { + return new Interface(_abi) as IBeaconInterface; + } + static connect(address: string, runner?: ContractRunner | null): IBeacon { + return new Contract(address, _abi, runner) as unknown as IBeacon; + } +} diff --git a/typechain-types/factories/@openzeppelin/contracts/proxy/beacon/index.ts b/typechain-types/factories/@openzeppelin/contracts/proxy/beacon/index.ts new file mode 100644 index 00000000..4a9d6289 --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts/proxy/beacon/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IBeacon__factory } from "./IBeacon__factory"; diff --git a/typechain-types/factories/@openzeppelin/contracts/proxy/index.ts b/typechain-types/factories/@openzeppelin/contracts/proxy/index.ts new file mode 100644 index 00000000..7f183c38 --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts/proxy/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as erc1967 from "./ERC1967"; +export * as beacon from "./beacon"; +export { Proxy__factory } from "./Proxy__factory"; diff --git a/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.ts b/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.ts new file mode 100644 index 00000000..5d8981a6 --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.ts @@ -0,0 +1,330 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + ERC20, + ERC20Interface, +} from "../../../../../@openzeppelin/contracts/token/ERC20/ERC20"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "allowance", + type: "uint256", + }, + { + internalType: "uint256", + name: "needed", + type: "uint256", + }, + ], + name: "ERC20InsufficientAllowance", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "uint256", + name: "balance", + type: "uint256", + }, + { + internalType: "uint256", + name: "needed", + type: "uint256", + }, + ], + name: "ERC20InsufficientBalance", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "approver", + type: "address", + }, + ], + name: "ERC20InvalidApprover", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "receiver", + type: "address", + }, + ], + name: "ERC20InvalidReceiver", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "ERC20InvalidSender", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "ERC20InvalidSpender", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class ERC20__factory { + static readonly abi = _abi; + static createInterface(): ERC20Interface { + return new Interface(_abi) as ERC20Interface; + } + static connect(address: string, runner?: ContractRunner | null): ERC20 { + return new Contract(address, _abi, runner) as unknown as ERC20; + } +} diff --git a/typechain-types/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.ts b/typechain-types/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.ts new file mode 100644 index 00000000..6768448d --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.ts @@ -0,0 +1,205 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IERC20, + IERC20Interface, +} from "../../../../../@openzeppelin/contracts/token/ERC20/IERC20"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class IERC20__factory { + static readonly abi = _abi; + static createInterface(): IERC20Interface { + return new Interface(_abi) as IERC20Interface; + } + static connect(address: string, runner?: ContractRunner | null): IERC20 { + return new Contract(address, _abi, runner) as unknown as IERC20; + } +} diff --git a/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory.ts b/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory.ts new file mode 100644 index 00000000..80abf969 --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory.ts @@ -0,0 +1,247 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IERC20Metadata, + IERC20MetadataInterface, +} from "../../../../../../@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class IERC20Metadata__factory { + static readonly abi = _abi; + static createInterface(): IERC20MetadataInterface { + return new Interface(_abi) as IERC20MetadataInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IERC20Metadata { + return new Contract(address, _abi, runner) as unknown as IERC20Metadata; + } +} diff --git a/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.ts b/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.ts new file mode 100644 index 00000000..b9477f85 --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IERC20Metadata__factory } from "./IERC20Metadata__factory"; diff --git a/typechain-types/factories/@openzeppelin/contracts/token/ERC20/index.ts b/typechain-types/factories/@openzeppelin/contracts/token/ERC20/index.ts new file mode 100644 index 00000000..d187f966 --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts/token/ERC20/index.ts @@ -0,0 +1,7 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as extensions from "./extensions"; +export * as utils from "./utils"; +export { ERC20__factory } from "./ERC20__factory"; +export { IERC20__factory } from "./IERC20__factory"; diff --git a/typechain-types/factories/@openzeppelin/contracts/token/ERC20/utils/SafeERC20__factory.ts b/typechain-types/factories/@openzeppelin/contracts/token/ERC20/utils/SafeERC20__factory.ts new file mode 100644 index 00000000..f53c35fc --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts/token/ERC20/utils/SafeERC20__factory.ts @@ -0,0 +1,96 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../../../../common"; +import type { + SafeERC20, + SafeERC20Interface, +} from "../../../../../../@openzeppelin/contracts/token/ERC20/utils/SafeERC20"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "currentAllowance", + type: "uint256", + }, + { + internalType: "uint256", + name: "requestedDecrease", + type: "uint256", + }, + ], + name: "SafeERC20FailedDecreaseAllowance", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "SafeERC20FailedOperation", + type: "error", + }, +] as const; + +const _bytecode = + "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212203c1d95b5507f663c32bedb8c30b08d3127c4916ea18af213d429fe053d2ce49e64736f6c634300081a0033"; + +type SafeERC20ConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: SafeERC20ConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class SafeERC20__factory extends ContractFactory { + constructor(...args: SafeERC20ConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + SafeERC20 & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): SafeERC20__factory { + return super.connect(runner) as SafeERC20__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): SafeERC20Interface { + return new Interface(_abi) as SafeERC20Interface; + } + static connect(address: string, runner?: ContractRunner | null): SafeERC20 { + return new Contract(address, _abi, runner) as unknown as SafeERC20; + } +} diff --git a/typechain-types/factories/@openzeppelin/contracts/token/ERC20/utils/index.ts b/typechain-types/factories/@openzeppelin/contracts/token/ERC20/utils/index.ts new file mode 100644 index 00000000..56fb056e --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts/token/ERC20/utils/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { SafeERC20__factory } from "./SafeERC20__factory"; diff --git a/typechain-types/factories/@openzeppelin/contracts/token/index.ts b/typechain-types/factories/@openzeppelin/contracts/token/index.ts new file mode 100644 index 00000000..da1e061e --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts/token/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as erc20 from "./ERC20"; diff --git a/typechain-types/factories/@openzeppelin/contracts/utils/Address__factory.ts b/typechain-types/factories/@openzeppelin/contracts/utils/Address__factory.ts new file mode 100644 index 00000000..ca2c16f2 --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts/utils/Address__factory.ts @@ -0,0 +1,75 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../../common"; +import type { + Address, + AddressInterface, +} from "../../../../@openzeppelin/contracts/utils/Address"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + ], + name: "AddressEmptyCode", + type: "error", + }, +] as const; + +const _bytecode = + "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212207b0ce22404ddaa4435b8e83aae48529ab78bf8c13022d5e3b9e59fac809195d464736f6c634300081a0033"; + +type AddressConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: AddressConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class Address__factory extends ContractFactory { + constructor(...args: AddressConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + Address & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): Address__factory { + return super.connect(runner) as Address__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): AddressInterface { + return new Interface(_abi) as AddressInterface; + } + static connect(address: string, runner?: ContractRunner | null): Address { + return new Contract(address, _abi, runner) as unknown as Address; + } +} diff --git a/typechain-types/factories/@openzeppelin/contracts/utils/Errors__factory.ts b/typechain-types/factories/@openzeppelin/contracts/utils/Errors__factory.ts new file mode 100644 index 00000000..9eb6036d --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts/utils/Errors__factory.ts @@ -0,0 +1,101 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../../common"; +import type { + Errors, + ErrorsInterface, +} from "../../../../@openzeppelin/contracts/utils/Errors"; + +const _abi = [ + { + inputs: [], + name: "FailedCall", + type: "error", + }, + { + inputs: [], + name: "FailedDeployment", + type: "error", + }, + { + inputs: [ + { + internalType: "uint256", + name: "balance", + type: "uint256", + }, + { + internalType: "uint256", + name: "needed", + type: "uint256", + }, + ], + name: "InsufficientBalance", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "MissingPrecompile", + type: "error", + }, +] as const; + +const _bytecode = + "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212206d903baad7a9c21d4f988903edc6ab3eadc934f31506ad4dc2253b669109920364736f6c634300081a0033"; + +type ErrorsConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: ErrorsConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class Errors__factory extends ContractFactory { + constructor(...args: ErrorsConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + Errors & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): Errors__factory { + return super.connect(runner) as Errors__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): ErrorsInterface { + return new Interface(_abi) as ErrorsInterface; + } + static connect(address: string, runner?: ContractRunner | null): Errors { + return new Contract(address, _abi, runner) as unknown as Errors; + } +} diff --git a/typechain-types/factories/@openzeppelin/contracts/utils/index.ts b/typechain-types/factories/@openzeppelin/contracts/utils/index.ts new file mode 100644 index 00000000..c9b888cd --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts/utils/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as introspection from "./introspection"; +export { Address__factory } from "./Address__factory"; +export { Errors__factory } from "./Errors__factory"; diff --git a/typechain-types/factories/@openzeppelin/contracts/utils/introspection/IERC165__factory.ts b/typechain-types/factories/@openzeppelin/contracts/utils/introspection/IERC165__factory.ts new file mode 100644 index 00000000..5cc03947 --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts/utils/introspection/IERC165__factory.ts @@ -0,0 +1,41 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IERC165, + IERC165Interface, +} from "../../../../../@openzeppelin/contracts/utils/introspection/IERC165"; + +const _abi = [ + { + inputs: [ + { + internalType: "bytes4", + name: "interfaceId", + type: "bytes4", + }, + ], + name: "supportsInterface", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +export class IERC165__factory { + static readonly abi = _abi; + static createInterface(): IERC165Interface { + return new Interface(_abi) as IERC165Interface; + } + static connect(address: string, runner?: ContractRunner | null): IERC165 { + return new Contract(address, _abi, runner) as unknown as IERC165; + } +} diff --git a/typechain-types/factories/@openzeppelin/contracts/utils/introspection/index.ts b/typechain-types/factories/@openzeppelin/contracts/utils/introspection/index.ts new file mode 100644 index 00000000..85d37333 --- /dev/null +++ b/typechain-types/factories/@openzeppelin/contracts/utils/introspection/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IERC165__factory } from "./IERC165__factory"; diff --git a/typechain-types/factories/@openzeppelin/index.ts b/typechain-types/factories/@openzeppelin/index.ts new file mode 100644 index 00000000..6923c15a --- /dev/null +++ b/typechain-types/factories/@openzeppelin/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as contracts from "./contracts"; +export * as contractsUpgradeable from "./contracts-upgradeable"; diff --git a/typechain-types/factories/@uniswap/index.ts b/typechain-types/factories/@uniswap/index.ts new file mode 100644 index 00000000..b34b9840 --- /dev/null +++ b/typechain-types/factories/@uniswap/index.ts @@ -0,0 +1,7 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as v2Core from "./v2-core"; +export * as v2Periphery from "./v2-periphery"; +export * as v3Core from "./v3-core"; +export * as v3Periphery from "./v3-periphery"; diff --git a/typechain-types/factories/@uniswap/v2-core/contracts/UniswapV2ERC20__factory.ts b/typechain-types/factories/@uniswap/v2-core/contracts/UniswapV2ERC20__factory.ts new file mode 100644 index 00000000..14d8a70f --- /dev/null +++ b/typechain-types/factories/@uniswap/v2-core/contracts/UniswapV2ERC20__factory.ts @@ -0,0 +1,409 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../../common"; +import type { + UniswapV2ERC20, + UniswapV2ERC20Interface, +} from "../../../../@uniswap/v2-core/contracts/UniswapV2ERC20"; + +const _abi = [ + { + inputs: [], + payable: false, + stateMutability: "nonpayable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + constant: true, + inputs: [], + name: "DOMAIN_SEPARATOR", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "PERMIT_TYPEHASH", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: true, + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "nonces", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "permit", + outputs: [], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: true, + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: false, + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +const _bytecode = + "0x608060405234801561001057600080fd5b506000469050604051808061109060529139605201905060405180910390206040518060400160405280600a81526020017f556e697377617020563200000000000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001208330604051602001808681526020018581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001955050505050506040516020818303038152906040528051906020012060038190555050610f618061012f6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b4114610371578063a9059cbb146103f4578063d505accf1461045a578063dd62ed3e146104f3576100cf565b80633644e515146102a357806370a08231146102c15780637ecebe0014610319576100cf565b806306fdde03146100d4578063095ea7b31461015757806318160ddd146101bd57806323b872dd146101db57806330adf81f14610261578063313ce5671461027f575b600080fd5b6100dc61056b565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561011c578082015181840152602081019050610101565b50505050905090810190601f1680156101495780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101a36004803603604081101561016d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105a4565b604051808215151515815260200191505060405180910390f35b6101c56105bb565b6040518082815260200191505060405180910390f35b610247600480360360608110156101f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105c1565b604051808215151515815260200191505060405180910390f35b61026961078c565b6040518082815260200191505060405180910390f35b6102876107b3565b604051808260ff1660ff16815260200191505060405180910390f35b6102ab6107b8565b6040518082815260200191505060405180910390f35b610303600480360360208110156102d757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107be565b6040518082815260200191505060405180910390f35b61035b6004803603602081101561032f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107d6565b6040518082815260200191505060405180910390f35b6103796107ee565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103b957808201518184015260208101905061039e565b50505050905090810190601f1680156103e65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104406004803603604081101561040a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610827565b604051808215151515815260200191505060405180910390f35b6104f1600480360360e081101561047057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803560ff169060200190929190803590602001909291908035906020019092919050505061083e565b005b6105556004803603604081101561050957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b82565b6040518082815260200191505060405180910390f35b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b60006105b1338484610ba7565b6001905092915050565b60005481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610776576106f582600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c9290919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610781848484610d15565b600190509392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b81565b601281565b60035481565b60016020528060005260406000206000915090505481565b60046020528060005260406000206000915090505481565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610834338484610d15565b6001905092915050565b428410156108b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f556e697377617056323a2045585049524544000000000000000000000000000081525060200191505060405180910390fd5b60006003547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b898989600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558a604051602001808781526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182815260200196505050505050506040516020818303038152906040528051906020012060405160200180807f190100000000000000000000000000000000000000000000000000000000000081525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600060018286868660405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610a86573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610afa57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b610b6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f556e697377617056323a20494e56414c49445f5349474e41545552450000000081525060200191505060405180910390fd5b610b77898989610ba7565b505050505050505050565b6002602052816000526040600020602052806000526040600020600091509150505481565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6000828284039150811115610d0f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f64732d6d6174682d7375622d756e646572666c6f77000000000000000000000081525060200191505060405180910390fd5b92915050565b610d6781600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c9290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610dfc81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ea990919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000828284019150811015610f26576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d6d6174682d6164642d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b9291505056fea265627a7a72315820bb81c50344d41e3449df903181794b4002a33a9853538530e1b4ba781a137c6764736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429"; + +type UniswapV2ERC20ConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: UniswapV2ERC20ConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class UniswapV2ERC20__factory extends ContractFactory { + constructor(...args: UniswapV2ERC20ConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + UniswapV2ERC20 & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): UniswapV2ERC20__factory { + return super.connect(runner) as UniswapV2ERC20__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): UniswapV2ERC20Interface { + return new Interface(_abi) as UniswapV2ERC20Interface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): UniswapV2ERC20 { + return new Contract(address, _abi, runner) as unknown as UniswapV2ERC20; + } +} diff --git a/typechain-types/factories/@uniswap/v2-core/contracts/UniswapV2Factory__factory.ts b/typechain-types/factories/@uniswap/v2-core/contracts/UniswapV2Factory__factory.ts new file mode 100644 index 00000000..eefea196 --- /dev/null +++ b/typechain-types/factories/@uniswap/v2-core/contracts/UniswapV2Factory__factory.ts @@ -0,0 +1,267 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + AddressLike, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { NonPayableOverrides } from "../../../../common"; +import type { + UniswapV2Factory, + UniswapV2FactoryInterface, +} from "../../../../@uniswap/v2-core/contracts/UniswapV2Factory"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "_feeToSetter", + type: "address", + }, + ], + payable: false, + stateMutability: "nonpayable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "token0", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "token1", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "pair", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "PairCreated", + type: "event", + }, + { + constant: true, + inputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "allPairs", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "allPairsLength", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + ], + name: "createPair", + outputs: [ + { + internalType: "address", + name: "pair", + type: "address", + }, + ], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: true, + inputs: [], + name: "feeTo", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "feeToSetter", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "getPair", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [ + { + internalType: "address", + name: "_feeTo", + type: "address", + }, + ], + name: "setFeeTo", + outputs: [], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: false, + inputs: [ + { + internalType: "address", + name: "_feeToSetter", + type: "address", + }, + ], + name: "setFeeToSetter", + outputs: [], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +const _bytecode = + "0x608060405234801561001057600080fd5b50604051614a45380380614a458339818101604052602081101561003357600080fd5b810190808051906020019092919050505080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506149b0806100956000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063a2e74af61161005b578063a2e74af6146101ad578063c9c65396146101f1578063e6a4390514610295578063f46901ed1461033957610088565b8063017e7e581461008d578063094b7415146100d75780631e3dd18b14610121578063574f2ba31461018f575b600080fd5b61009561037d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100df6103a2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61014d6004803603602081101561013757600080fd5b81019080803590602001909291905050506103c8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610197610404565b6040518082815260200191505060405180910390f35b6101ef600480360360208110156101c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610411565b005b6102536004803603604081101561020757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610518565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102f7600480360360408110156102ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bf5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61037b6004803603602081101561034f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c37565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600381815481106103d557fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600380549050905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f556e697377617056323a20464f5242494444454e00000000000000000000000081525060200191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156105bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f556e697377617056323a204944454e544943414c5f414444524553534553000081525060200191505060405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16106105f95783856105fc565b84845b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156106a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f556e697377617056323a205a45524f5f4144445245535300000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f556e697377617056323a20504149525f4558495354530000000000000000000081525060200191505060405180910390fd5b6060604051806020016107f390610d3d565b6020820181038252601f19601f82011660405250905060008383604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140192505050604051602081830303815290604052805190602001209050808251602084016000f594508473ffffffffffffffffffffffffffffffffffffffff1663485cc95585856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15801561095957600080fd5b505af115801561096d573d6000803e3d6000fd5b5050505084600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060038590806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e987600380549050604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a35050505092915050565b60026020528160005260406000206020528060005260406000206000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cfa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f556e697377617056323a20464f5242494444454e00000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b613c3180610d4b8339019056fe60806040526001600c5534801561001557600080fd5b5060004690506040518080613bdf60529139605201905060405180910390206040518060400160405280600a81526020017f556e697377617020563200000000000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001208330604051602001808681526020018581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200195505050505050604051602081830303815290604052805190602001206003819055505033600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613a6a806101756000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146108c4578063d505accf1461090e578063dd62ed3e146109a7578063fff6cae914610a1f576101a9565b8063ba9a7a5614610818578063bc25cf7714610836578063c45a01551461087a576101a9565b80637ecebe00116100d35780637ecebe001461067857806389afcb44146106d057806395d89b411461072f578063a9059cbb146107b2576101a9565b80636a627842146105aa57806370a08231146106025780637464fc3d1461065a576101a9565b806323b872dd116101665780633644e515116101405780633644e515146104ec578063485cc9551461050a5780635909c0d51461056e5780635a3d54931461058c576101a9565b806323b872dd1461042457806330adf81f146104aa578063313ce567146104c8576101a9565b8063022c0d9f146101ae57806306fdde031461025b5780630902f1ac146102de578063095ea7b3146103565780630dfe1681146103bc57806318160ddd14610406575b600080fd5b610259600480360360808110156101c457600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561021557600080fd5b82018360208201111561022757600080fd5b8035906020019184600183028401116401000000008311171561024957600080fd5b9091929391929390505050610a29565b005b610263611216565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102a3578082015181840152602081019050610288565b50505050905090810190601f1680156102d05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102e661124f565b60405180846dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168152602001836dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff1681526020018263ffffffff1663ffffffff168152602001935050505060405180910390f35b6103a26004803603604081101561036c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112ac565b604051808215151515815260200191505060405180910390f35b6103c46112c3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61040e6112e9565b6040518082815260200191505060405180910390f35b6104906004803603606081101561043a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112ef565b604051808215151515815260200191505060405180910390f35b6104b26114ba565b6040518082815260200191505060405180910390f35b6104d06114e1565b604051808260ff1660ff16815260200191505060405180910390f35b6104f46114e6565b6040518082815260200191505060405180910390f35b61056c6004803603604081101561052057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114ec565b005b610576611635565b6040518082815260200191505060405180910390f35b61059461163b565b6040518082815260200191505060405180910390f35b6105ec600480360360208110156105c057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611641565b6040518082815260200191505060405180910390f35b6106446004803603602081101561061857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611af2565b6040518082815260200191505060405180910390f35b610662611b0a565b6040518082815260200191505060405180910390f35b6106ba6004803603602081101561068e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b10565b6040518082815260200191505060405180910390f35b610712600480360360208110156106e657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b28565b604051808381526020018281526020019250505060405180910390f35b610737612115565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561077757808201518184015260208101905061075c565b50505050905090810190601f1680156107a45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107fe600480360360408110156107c857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061214e565b604051808215151515815260200191505060405180910390f35b610820612165565b6040518082815260200191505060405180910390f35b6108786004803603602081101561084c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061216b565b005b610882612446565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108cc61246c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6109a5600480360360e081101561092457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803560ff1690602001909291908035906020019092919080359060200190929190505050612492565b005b610a09600480360360408110156109bd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506127d6565b6040518082815260200191505060405180910390f35b610a276127fb565b005b6001600c5414610aa1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f556e697377617056323a204c4f434b454400000000000000000000000000000081525060200191505060405180910390fd5b6000600c819055506000851180610ab85750600084115b610b0d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061397c6025913960400191505060405180910390fd5b600080610b1861124f565b5091509150816dffffffffffffffffffffffffffff1687108015610b4b5750806dffffffffffffffffffffffffffff1686105b610ba0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806139c56021913960400191505060405180910390fd5b6000806000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508173ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614158015610c5957508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b610ccb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f556e697377617056323a20494e56414c49445f544f000000000000000000000081525060200191505060405180910390fd5b60008b1115610ce057610cdf828a8d612a7b565b5b60008a1115610cf557610cf4818a8c612a7b565b5b6000888890501115610ddd578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b158015610dc457600080fd5b505af1158015610dd8573d6000803e3d6000fd5b505050505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610e5a57600080fd5b505afa158015610e6e573d6000803e3d6000fd5b505050506040513d6020811015610e8457600080fd5b810190808051906020019092919050505093508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610f1457600080fd5b505afa158015610f28573d6000803e3d6000fd5b505050506040513d6020811015610f3e57600080fd5b810190808051906020019092919050505092505050600089856dffffffffffffffffffffffffffff16038311610f75576000610f8b565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610faf576000610fc5565b89856dffffffffffffffffffffffffffff160383035b90506000821180610fd65750600081115b61102b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806139a16024913960400191505060405180910390fd5b6000611067611044600385612cc890919063ffffffff16565b6110596103e888612cc890919063ffffffff16565b612d5d90919063ffffffff16565b905060006110a5611082600385612cc890919063ffffffff16565b6110976103e888612cc890919063ffffffff16565b612d5d90919063ffffffff16565b90506110ef620f42406110e1896dffffffffffffffffffffffffffff168b6dffffffffffffffffffffffffffff16612cc890919063ffffffff16565b612cc890919063ffffffff16565b6111028284612cc890919063ffffffff16565b1015611176576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f556e697377617056323a204b000000000000000000000000000000000000000081525060200191505060405180910390fd5b505061118484848888612de0565b8873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d82284848f8f6040518085815260200184815260200183815260200182815260200194505050505060405180910390a35050505050506001600c819055505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6000806000600860009054906101000a90046dffffffffffffffffffffffffffff1692506008600e9054906101000a90046dffffffffffffffffffffffffffff1691506008601c9054906101000a900463ffffffff169050909192565b60006112b933848461315e565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146114a45761142382600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d5d90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6114af848484613249565b600190509392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b81565b601281565b60035481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f556e697377617056323a20464f5242494444454e00000000000000000000000081525060200191505060405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60095481565b600a5481565b60006001600c54146116bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f556e697377617056323a204c4f434b454400000000000000000000000000000081525060200191505060405180910390fd5b6000600c819055506000806116ce61124f565b50915091506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561177457600080fd5b505afa158015611788573d6000803e3d6000fd5b505050506040513d602081101561179e57600080fd5b810190808051906020019092919050505090506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561185257600080fd5b505afa158015611866573d6000803e3d6000fd5b505050506040513d602081101561187c57600080fd5b8101908080519060200190929190505050905060006118b4856dffffffffffffffffffffffffffff1684612d5d90919063ffffffff16565b905060006118db856dffffffffffffffffffffffffffff1684612d5d90919063ffffffff16565b905060006118e987876133dd565b9050600080549050600081141561193d576119296103e861191b6119168688612cc890919063ffffffff16565b6135be565b612d5d90919063ffffffff16565b985061193860006103e8613620565b6119a0565b61199d886dffffffffffffffffffffffffffff166119648387612cc890919063ffffffff16565b8161196b57fe5b04886dffffffffffffffffffffffffffff166119908487612cc890919063ffffffff16565b8161199757fe5b0461373a565b98505b600089116119f9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180613a0e6028913960400191505060405180910390fd5b611a038a8a613620565b611a0f86868a8a612de0565b8115611a8757611a806008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff16600860009054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff16612cc890919063ffffffff16565b600b819055505b3373ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f8585604051808381526020018281526020019250505060405180910390a250505050505050506001600c81905550919050565b60016020528060005260406000206000915090505481565b600b5481565b60046020528060005260406000206000915090505481565b6000806001600c5414611ba3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f556e697377617056323a204c4f434b454400000000000000000000000000000081525060200191505060405180910390fd5b6000600c81905550600080611bb661124f565b50915091506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611c8857600080fd5b505afa158015611c9c573d6000803e3d6000fd5b505050506040513d6020811015611cb257600080fd5b8101908080519060200190929190505050905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611d4457600080fd5b505afa158015611d58573d6000803e3d6000fd5b505050506040513d6020811015611d6e57600080fd5b810190808051906020019092919050505090506000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000611dd188886133dd565b905060008054905080611ded8685612cc890919063ffffffff16565b81611df457fe5b049a5080611e0b8585612cc890919063ffffffff16565b81611e1257fe5b04995060008b118015611e25575060008a115b611e7a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806139e66028913960400191505060405180910390fd5b611e843084613753565b611e8f878d8d612a7b565b611e9a868d8c612a7b565b8673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611f1757600080fd5b505afa158015611f2b573d6000803e3d6000fd5b505050506040513d6020811015611f4157600080fd5b810190808051906020019092919050505094508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611fd157600080fd5b505afa158015611fe5573d6000803e3d6000fd5b505050506040513d6020811015611ffb57600080fd5b8101908080519060200190929190505050935061201a85858b8b612de0565b81156120925761208b6008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff16600860009054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff16612cc890919063ffffffff16565b600b819055505b8b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d819364968d8d604051808381526020018281526020019250505060405180910390a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b600061215b338484613249565b6001905092915050565b6103e881565b6001600c54146121e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f556e697377617056323a204c4f434b454400000000000000000000000000000081525060200191505060405180910390fd5b6000600c819055506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506123398284612334600860009054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156122eb57600080fd5b505afa1580156122ff573d6000803e3d6000fd5b505050506040513d602081101561231557600080fd5b8101908080519060200190929190505050612d5d90919063ffffffff16565b612a7b565b61243981846124346008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156123eb57600080fd5b505afa1580156123ff573d6000803e3d6000fd5b505050506040513d602081101561241557600080fd5b8101908080519060200190929190505050612d5d90919063ffffffff16565b612a7b565b50506001600c8190555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b42841015612508576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f556e697377617056323a2045585049524544000000000000000000000000000081525060200191505060405180910390fd5b60006003547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b898989600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558a604051602001808781526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182815260200196505050505050506040516020818303038152906040528051906020012060405160200180807f190100000000000000000000000000000000000000000000000000000000000081525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600060018286868660405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156126da573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561274e57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6127c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f556e697377617056323a20494e56414c49445f5349474e41545552450000000081525060200191505060405180910390fd5b6127cb89898961315e565b505050505050505050565b6002602052816000526040600020602052806000526040600020600091509150505481565b6001600c5414612873576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f556e697377617056323a204c4f434b454400000000000000000000000000000081525060200191505060405180910390fd5b6000600c81905550612a71600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561291d57600080fd5b505afa158015612931573d6000803e3d6000fd5b505050506040513d602081101561294757600080fd5b8101908080519060200190929190505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156129f757600080fd5b505afa158015612a0b573d6000803e3d6000fd5b505050506040513d6020811015612a2157600080fd5b8101908080519060200190929190505050600860009054906101000a90046dffffffffffffffffffffffffffff166008600e9054906101000a90046dffffffffffffffffffffffffffff16612de0565b6001600c81905550565b600060608473ffffffffffffffffffffffffffffffffffffffff166040518060400160405280601981526020017f7472616e7366657228616464726573732c75696e743235362900000000000000815250805190602001208585604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b60208310612ba85780518252602082019150602081019050602083039250612b85565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612c0a576040519150601f19603f3d011682016040523d82523d6000602084013e612c0f565b606091505b5091509150818015612c4f5750600081511480612c4e5750808060200190516020811015612c3c57600080fd5b81019080805190602001909291905050505b5b612cc1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f556e697377617056323a205452414e534645525f4641494c454400000000000081525060200191505060405180910390fd5b5050505050565b600080821480612ce55750828283850292508281612ce257fe5b04145b612d57576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d6d6174682d6d756c2d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b92915050565b6000828284039150811115612dda576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f64732d6d6174682d7375622d756e646572666c6f77000000000000000000000081525060200191505060405180910390fd5b92915050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6dffffffffffffffffffffffffffff168411158015612e5057507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6dffffffffffffffffffffffffffff168311155b612ec2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f556e697377617056323a204f564552464c4f570000000000000000000000000081525060200191505060405180910390fd5b60006401000000004281612ed257fe5b06905060006008601c9054906101000a900463ffffffff168203905060008163ffffffff16118015612f1557506000846dffffffffffffffffffffffffffff1614155b8015612f3257506000836dffffffffffffffffffffffffffff1614155b15613014578063ffffffff16612f7785612f4b8661386d565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1661389890919063ffffffff16565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16026009600082825401925050819055508063ffffffff16612fe584612fb98761386d565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1661389890919063ffffffff16565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1602600a600082825401925050819055505b85600860006101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550846008600e6101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550816008601c6101000a81548163ffffffff021916908363ffffffff1602179055507f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1600860009054906101000a90046dffffffffffffffffffffffffffff166008600e9054906101000a90046dffffffffffffffffffffffffffff1660405180836dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168152602001826dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff1681526020019250505060405180910390a1505050505050565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b61329b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d5d90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061333081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138f890919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561344857600080fd5b505afa15801561345c573d6000803e3d6000fd5b505050506040513d602081101561347257600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141591506000600b54905082156135a4576000811461359f57600061350a613505866dffffffffffffffffffffffffffff16886dffffffffffffffffffffffffffff16612cc890919063ffffffff16565b6135be565b90506000613517836135be565b90508082111561359c57600061354a6135398385612d5d90919063ffffffff16565b600054612cc890919063ffffffff16565b9050600061357483613566600587612cc890919063ffffffff16565b6138f890919063ffffffff16565b9050600081838161358157fe5b0490506000811115613598576135978782613620565b5b5050505b50505b6135b6565b600081146135b5576000600b819055505b5b505092915050565b6000600382111561360d5781905060006001600284816135da57fe5b040190505b81811015613607578091506002818285816135f657fe5b0401816135ff57fe5b0490506135df565b5061361b565b6000821461361a57600190505b5b919050565b613635816000546138f890919063ffffffff16565b60008190555061368d81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138f890919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000818310613749578161374b565b825b905092915050565b6137a581600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d5d90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506137fd81600054612d5d90919063ffffffff16565b600081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60006e010000000000000000000000000000826dffffffffffffffffffffffffffff16029050919050565b6000816dffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16816138ef57fe5b04905092915050565b6000828284019150811015613975576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d6d6174682d6164642d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b9291505056fe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a72315820d73fdbcccccd43e1f8c235d4c31a0ea1f34258192718d2a0d44bf361e873c1b864736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429a265627a7a72315820d4a1f9eb6f94616adf2482bb5f0b190a86900cdb580d4b27a7940e754ea8d09064736f6c63430005100032"; + +type UniswapV2FactoryConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: UniswapV2FactoryConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class UniswapV2Factory__factory extends ContractFactory { + constructor(...args: UniswapV2FactoryConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + _feeToSetter: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(_feeToSetter, overrides || {}); + } + override deploy( + _feeToSetter: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy(_feeToSetter, overrides || {}) as Promise< + UniswapV2Factory & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): UniswapV2Factory__factory { + return super.connect(runner) as UniswapV2Factory__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): UniswapV2FactoryInterface { + return new Interface(_abi) as UniswapV2FactoryInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): UniswapV2Factory { + return new Contract(address, _abi, runner) as unknown as UniswapV2Factory; + } +} diff --git a/typechain-types/factories/@uniswap/v2-core/contracts/UniswapV2Pair__factory.ts b/typechain-types/factories/@uniswap/v2-core/contracts/UniswapV2Pair__factory.ts new file mode 100644 index 00000000..ff7a6021 --- /dev/null +++ b/typechain-types/factories/@uniswap/v2-core/contracts/UniswapV2Pair__factory.ts @@ -0,0 +1,778 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../../common"; +import type { + UniswapV2Pair, + UniswapV2PairInterface, +} from "../../../../@uniswap/v2-core/contracts/UniswapV2Pair"; + +const _abi = [ + { + inputs: [], + payable: false, + stateMutability: "nonpayable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + ], + name: "Burn", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + ], + name: "Mint", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount0In", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "amount1In", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "amount0Out", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "amount1Out", + type: "uint256", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + ], + name: "Swap", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint112", + name: "reserve0", + type: "uint112", + }, + { + indexed: false, + internalType: "uint112", + name: "reserve1", + type: "uint112", + }, + ], + name: "Sync", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + constant: true, + inputs: [], + name: "DOMAIN_SEPARATOR", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "MINIMUM_LIQUIDITY", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "PERMIT_TYPEHASH", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: true, + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + ], + name: "burn", + outputs: [ + { + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + ], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: true, + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "factory", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "getReserves", + outputs: [ + { + internalType: "uint112", + name: "_reserve0", + type: "uint112", + }, + { + internalType: "uint112", + name: "_reserve1", + type: "uint112", + }, + { + internalType: "uint32", + name: "_blockTimestampLast", + type: "uint32", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [ + { + internalType: "address", + name: "_token0", + type: "address", + }, + { + internalType: "address", + name: "_token1", + type: "address", + }, + ], + name: "initialize", + outputs: [], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: true, + inputs: [], + name: "kLast", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + ], + name: "mint", + outputs: [ + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + ], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: true, + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "nonces", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "permit", + outputs: [], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: true, + inputs: [], + name: "price0CumulativeLast", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "price1CumulativeLast", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + ], + name: "skim", + outputs: [], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: false, + inputs: [ + { + internalType: "uint256", + name: "amount0Out", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1Out", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "swap", + outputs: [], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: true, + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [], + name: "sync", + outputs: [], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: true, + inputs: [], + name: "token0", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "token1", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: false, + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +const _bytecode = + "0x60806040526001600c5534801561001557600080fd5b5060004690506040518080613bdf60529139605201905060405180910390206040518060400160405280600a81526020017f556e697377617020563200000000000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001208330604051602001808681526020018581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200195505050505050604051602081830303815290604052805190602001206003819055505033600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613a6a806101756000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146108c4578063d505accf1461090e578063dd62ed3e146109a7578063fff6cae914610a1f576101a9565b8063ba9a7a5614610818578063bc25cf7714610836578063c45a01551461087a576101a9565b80637ecebe00116100d35780637ecebe001461067857806389afcb44146106d057806395d89b411461072f578063a9059cbb146107b2576101a9565b80636a627842146105aa57806370a08231146106025780637464fc3d1461065a576101a9565b806323b872dd116101665780633644e515116101405780633644e515146104ec578063485cc9551461050a5780635909c0d51461056e5780635a3d54931461058c576101a9565b806323b872dd1461042457806330adf81f146104aa578063313ce567146104c8576101a9565b8063022c0d9f146101ae57806306fdde031461025b5780630902f1ac146102de578063095ea7b3146103565780630dfe1681146103bc57806318160ddd14610406575b600080fd5b610259600480360360808110156101c457600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561021557600080fd5b82018360208201111561022757600080fd5b8035906020019184600183028401116401000000008311171561024957600080fd5b9091929391929390505050610a29565b005b610263611216565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102a3578082015181840152602081019050610288565b50505050905090810190601f1680156102d05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102e661124f565b60405180846dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168152602001836dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff1681526020018263ffffffff1663ffffffff168152602001935050505060405180910390f35b6103a26004803603604081101561036c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112ac565b604051808215151515815260200191505060405180910390f35b6103c46112c3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61040e6112e9565b6040518082815260200191505060405180910390f35b6104906004803603606081101561043a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112ef565b604051808215151515815260200191505060405180910390f35b6104b26114ba565b6040518082815260200191505060405180910390f35b6104d06114e1565b604051808260ff1660ff16815260200191505060405180910390f35b6104f46114e6565b6040518082815260200191505060405180910390f35b61056c6004803603604081101561052057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114ec565b005b610576611635565b6040518082815260200191505060405180910390f35b61059461163b565b6040518082815260200191505060405180910390f35b6105ec600480360360208110156105c057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611641565b6040518082815260200191505060405180910390f35b6106446004803603602081101561061857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611af2565b6040518082815260200191505060405180910390f35b610662611b0a565b6040518082815260200191505060405180910390f35b6106ba6004803603602081101561068e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b10565b6040518082815260200191505060405180910390f35b610712600480360360208110156106e657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b28565b604051808381526020018281526020019250505060405180910390f35b610737612115565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561077757808201518184015260208101905061075c565b50505050905090810190601f1680156107a45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107fe600480360360408110156107c857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061214e565b604051808215151515815260200191505060405180910390f35b610820612165565b6040518082815260200191505060405180910390f35b6108786004803603602081101561084c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061216b565b005b610882612446565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108cc61246c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6109a5600480360360e081101561092457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803560ff1690602001909291908035906020019092919080359060200190929190505050612492565b005b610a09600480360360408110156109bd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506127d6565b6040518082815260200191505060405180910390f35b610a276127fb565b005b6001600c5414610aa1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f556e697377617056323a204c4f434b454400000000000000000000000000000081525060200191505060405180910390fd5b6000600c819055506000851180610ab85750600084115b610b0d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061397c6025913960400191505060405180910390fd5b600080610b1861124f565b5091509150816dffffffffffffffffffffffffffff1687108015610b4b5750806dffffffffffffffffffffffffffff1686105b610ba0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806139c56021913960400191505060405180910390fd5b6000806000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508173ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614158015610c5957508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b610ccb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f556e697377617056323a20494e56414c49445f544f000000000000000000000081525060200191505060405180910390fd5b60008b1115610ce057610cdf828a8d612a7b565b5b60008a1115610cf557610cf4818a8c612a7b565b5b6000888890501115610ddd578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b158015610dc457600080fd5b505af1158015610dd8573d6000803e3d6000fd5b505050505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610e5a57600080fd5b505afa158015610e6e573d6000803e3d6000fd5b505050506040513d6020811015610e8457600080fd5b810190808051906020019092919050505093508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610f1457600080fd5b505afa158015610f28573d6000803e3d6000fd5b505050506040513d6020811015610f3e57600080fd5b810190808051906020019092919050505092505050600089856dffffffffffffffffffffffffffff16038311610f75576000610f8b565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610faf576000610fc5565b89856dffffffffffffffffffffffffffff160383035b90506000821180610fd65750600081115b61102b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806139a16024913960400191505060405180910390fd5b6000611067611044600385612cc890919063ffffffff16565b6110596103e888612cc890919063ffffffff16565b612d5d90919063ffffffff16565b905060006110a5611082600385612cc890919063ffffffff16565b6110976103e888612cc890919063ffffffff16565b612d5d90919063ffffffff16565b90506110ef620f42406110e1896dffffffffffffffffffffffffffff168b6dffffffffffffffffffffffffffff16612cc890919063ffffffff16565b612cc890919063ffffffff16565b6111028284612cc890919063ffffffff16565b1015611176576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f556e697377617056323a204b000000000000000000000000000000000000000081525060200191505060405180910390fd5b505061118484848888612de0565b8873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d82284848f8f6040518085815260200184815260200183815260200182815260200194505050505060405180910390a35050505050506001600c819055505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6000806000600860009054906101000a90046dffffffffffffffffffffffffffff1692506008600e9054906101000a90046dffffffffffffffffffffffffffff1691506008601c9054906101000a900463ffffffff169050909192565b60006112b933848461315e565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146114a45761142382600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d5d90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6114af848484613249565b600190509392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b81565b601281565b60035481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f556e697377617056323a20464f5242494444454e00000000000000000000000081525060200191505060405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60095481565b600a5481565b60006001600c54146116bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f556e697377617056323a204c4f434b454400000000000000000000000000000081525060200191505060405180910390fd5b6000600c819055506000806116ce61124f565b50915091506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561177457600080fd5b505afa158015611788573d6000803e3d6000fd5b505050506040513d602081101561179e57600080fd5b810190808051906020019092919050505090506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561185257600080fd5b505afa158015611866573d6000803e3d6000fd5b505050506040513d602081101561187c57600080fd5b8101908080519060200190929190505050905060006118b4856dffffffffffffffffffffffffffff1684612d5d90919063ffffffff16565b905060006118db856dffffffffffffffffffffffffffff1684612d5d90919063ffffffff16565b905060006118e987876133dd565b9050600080549050600081141561193d576119296103e861191b6119168688612cc890919063ffffffff16565b6135be565b612d5d90919063ffffffff16565b985061193860006103e8613620565b6119a0565b61199d886dffffffffffffffffffffffffffff166119648387612cc890919063ffffffff16565b8161196b57fe5b04886dffffffffffffffffffffffffffff166119908487612cc890919063ffffffff16565b8161199757fe5b0461373a565b98505b600089116119f9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180613a0e6028913960400191505060405180910390fd5b611a038a8a613620565b611a0f86868a8a612de0565b8115611a8757611a806008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff16600860009054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff16612cc890919063ffffffff16565b600b819055505b3373ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f8585604051808381526020018281526020019250505060405180910390a250505050505050506001600c81905550919050565b60016020528060005260406000206000915090505481565b600b5481565b60046020528060005260406000206000915090505481565b6000806001600c5414611ba3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f556e697377617056323a204c4f434b454400000000000000000000000000000081525060200191505060405180910390fd5b6000600c81905550600080611bb661124f565b50915091506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611c8857600080fd5b505afa158015611c9c573d6000803e3d6000fd5b505050506040513d6020811015611cb257600080fd5b8101908080519060200190929190505050905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611d4457600080fd5b505afa158015611d58573d6000803e3d6000fd5b505050506040513d6020811015611d6e57600080fd5b810190808051906020019092919050505090506000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000611dd188886133dd565b905060008054905080611ded8685612cc890919063ffffffff16565b81611df457fe5b049a5080611e0b8585612cc890919063ffffffff16565b81611e1257fe5b04995060008b118015611e25575060008a115b611e7a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806139e66028913960400191505060405180910390fd5b611e843084613753565b611e8f878d8d612a7b565b611e9a868d8c612a7b565b8673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611f1757600080fd5b505afa158015611f2b573d6000803e3d6000fd5b505050506040513d6020811015611f4157600080fd5b810190808051906020019092919050505094508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611fd157600080fd5b505afa158015611fe5573d6000803e3d6000fd5b505050506040513d6020811015611ffb57600080fd5b8101908080519060200190929190505050935061201a85858b8b612de0565b81156120925761208b6008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff16600860009054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff16612cc890919063ffffffff16565b600b819055505b8b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d819364968d8d604051808381526020018281526020019250505060405180910390a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b600061215b338484613249565b6001905092915050565b6103e881565b6001600c54146121e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f556e697377617056323a204c4f434b454400000000000000000000000000000081525060200191505060405180910390fd5b6000600c819055506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506123398284612334600860009054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156122eb57600080fd5b505afa1580156122ff573d6000803e3d6000fd5b505050506040513d602081101561231557600080fd5b8101908080519060200190929190505050612d5d90919063ffffffff16565b612a7b565b61243981846124346008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156123eb57600080fd5b505afa1580156123ff573d6000803e3d6000fd5b505050506040513d602081101561241557600080fd5b8101908080519060200190929190505050612d5d90919063ffffffff16565b612a7b565b50506001600c8190555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b42841015612508576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f556e697377617056323a2045585049524544000000000000000000000000000081525060200191505060405180910390fd5b60006003547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b898989600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558a604051602001808781526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182815260200196505050505050506040516020818303038152906040528051906020012060405160200180807f190100000000000000000000000000000000000000000000000000000000000081525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600060018286868660405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156126da573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561274e57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6127c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f556e697377617056323a20494e56414c49445f5349474e41545552450000000081525060200191505060405180910390fd5b6127cb89898961315e565b505050505050505050565b6002602052816000526040600020602052806000526040600020600091509150505481565b6001600c5414612873576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f556e697377617056323a204c4f434b454400000000000000000000000000000081525060200191505060405180910390fd5b6000600c81905550612a71600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561291d57600080fd5b505afa158015612931573d6000803e3d6000fd5b505050506040513d602081101561294757600080fd5b8101908080519060200190929190505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156129f757600080fd5b505afa158015612a0b573d6000803e3d6000fd5b505050506040513d6020811015612a2157600080fd5b8101908080519060200190929190505050600860009054906101000a90046dffffffffffffffffffffffffffff166008600e9054906101000a90046dffffffffffffffffffffffffffff16612de0565b6001600c81905550565b600060608473ffffffffffffffffffffffffffffffffffffffff166040518060400160405280601981526020017f7472616e7366657228616464726573732c75696e743235362900000000000000815250805190602001208585604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b60208310612ba85780518252602082019150602081019050602083039250612b85565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612c0a576040519150601f19603f3d011682016040523d82523d6000602084013e612c0f565b606091505b5091509150818015612c4f5750600081511480612c4e5750808060200190516020811015612c3c57600080fd5b81019080805190602001909291905050505b5b612cc1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f556e697377617056323a205452414e534645525f4641494c454400000000000081525060200191505060405180910390fd5b5050505050565b600080821480612ce55750828283850292508281612ce257fe5b04145b612d57576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d6d6174682d6d756c2d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b92915050565b6000828284039150811115612dda576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f64732d6d6174682d7375622d756e646572666c6f77000000000000000000000081525060200191505060405180910390fd5b92915050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6dffffffffffffffffffffffffffff168411158015612e5057507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6dffffffffffffffffffffffffffff168311155b612ec2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f556e697377617056323a204f564552464c4f570000000000000000000000000081525060200191505060405180910390fd5b60006401000000004281612ed257fe5b06905060006008601c9054906101000a900463ffffffff168203905060008163ffffffff16118015612f1557506000846dffffffffffffffffffffffffffff1614155b8015612f3257506000836dffffffffffffffffffffffffffff1614155b15613014578063ffffffff16612f7785612f4b8661386d565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1661389890919063ffffffff16565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16026009600082825401925050819055508063ffffffff16612fe584612fb98761386d565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1661389890919063ffffffff16565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1602600a600082825401925050819055505b85600860006101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550846008600e6101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550816008601c6101000a81548163ffffffff021916908363ffffffff1602179055507f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1600860009054906101000a90046dffffffffffffffffffffffffffff166008600e9054906101000a90046dffffffffffffffffffffffffffff1660405180836dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168152602001826dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff1681526020019250505060405180910390a1505050505050565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b61329b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d5d90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061333081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138f890919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561344857600080fd5b505afa15801561345c573d6000803e3d6000fd5b505050506040513d602081101561347257600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141591506000600b54905082156135a4576000811461359f57600061350a613505866dffffffffffffffffffffffffffff16886dffffffffffffffffffffffffffff16612cc890919063ffffffff16565b6135be565b90506000613517836135be565b90508082111561359c57600061354a6135398385612d5d90919063ffffffff16565b600054612cc890919063ffffffff16565b9050600061357483613566600587612cc890919063ffffffff16565b6138f890919063ffffffff16565b9050600081838161358157fe5b0490506000811115613598576135978782613620565b5b5050505b50505b6135b6565b600081146135b5576000600b819055505b5b505092915050565b6000600382111561360d5781905060006001600284816135da57fe5b040190505b81811015613607578091506002818285816135f657fe5b0401816135ff57fe5b0490506135df565b5061361b565b6000821461361a57600190505b5b919050565b613635816000546138f890919063ffffffff16565b60008190555061368d81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138f890919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000818310613749578161374b565b825b905092915050565b6137a581600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d5d90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506137fd81600054612d5d90919063ffffffff16565b600081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60006e010000000000000000000000000000826dffffffffffffffffffffffffffff16029050919050565b6000816dffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16816138ef57fe5b04905092915050565b6000828284019150811015613975576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d6d6174682d6164642d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b9291505056fe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a72315820d73fdbcccccd43e1f8c235d4c31a0ea1f34258192718d2a0d44bf361e873c1b864736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429"; + +type UniswapV2PairConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: UniswapV2PairConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class UniswapV2Pair__factory extends ContractFactory { + constructor(...args: UniswapV2PairConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + UniswapV2Pair & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): UniswapV2Pair__factory { + return super.connect(runner) as UniswapV2Pair__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): UniswapV2PairInterface { + return new Interface(_abi) as UniswapV2PairInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): UniswapV2Pair { + return new Contract(address, _abi, runner) as unknown as UniswapV2Pair; + } +} diff --git a/typechain-types/factories/@uniswap/v2-core/contracts/index.ts b/typechain-types/factories/@uniswap/v2-core/contracts/index.ts new file mode 100644 index 00000000..9cb649b2 --- /dev/null +++ b/typechain-types/factories/@uniswap/v2-core/contracts/index.ts @@ -0,0 +1,7 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as interfaces from "./interfaces"; +export { UniswapV2ERC20__factory } from "./UniswapV2ERC20__factory"; +export { UniswapV2Factory__factory } from "./UniswapV2Factory__factory"; +export { UniswapV2Pair__factory } from "./UniswapV2Pair__factory"; diff --git a/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IERC20__factory.ts b/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IERC20__factory.ts new file mode 100644 index 00000000..a12c239c --- /dev/null +++ b/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IERC20__factory.ts @@ -0,0 +1,244 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IERC20, + IERC20Interface, +} from "../../../../../@uniswap/v2-core/contracts/interfaces/IERC20"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class IERC20__factory { + static readonly abi = _abi; + static createInterface(): IERC20Interface { + return new Interface(_abi) as IERC20Interface; + } + static connect(address: string, runner?: ContractRunner | null): IERC20 { + return new Contract(address, _abi, runner) as unknown as IERC20; + } +} diff --git a/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Callee__factory.ts b/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Callee__factory.ts new file mode 100644 index 00000000..ce1b23de --- /dev/null +++ b/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Callee__factory.ts @@ -0,0 +1,53 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IUniswapV2Callee, + IUniswapV2CalleeInterface, +} from "../../../../../@uniswap/v2-core/contracts/interfaces/IUniswapV2Callee"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "uniswapV2Call", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class IUniswapV2Callee__factory { + static readonly abi = _abi; + static createInterface(): IUniswapV2CalleeInterface { + return new Interface(_abi) as IUniswapV2CalleeInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IUniswapV2Callee { + return new Contract(address, _abi, runner) as unknown as IUniswapV2Callee; + } +} diff --git a/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2ERC20__factory.ts b/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2ERC20__factory.ts new file mode 100644 index 00000000..93a16b95 --- /dev/null +++ b/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2ERC20__factory.ts @@ -0,0 +1,335 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IUniswapV2ERC20, + IUniswapV2ERC20Interface, +} from "../../../../../@uniswap/v2-core/contracts/interfaces/IUniswapV2ERC20"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + inputs: [], + name: "DOMAIN_SEPARATOR", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "PERMIT_TYPEHASH", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + ], + name: "nonces", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "permit", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class IUniswapV2ERC20__factory { + static readonly abi = _abi; + static createInterface(): IUniswapV2ERC20Interface { + return new Interface(_abi) as IUniswapV2ERC20Interface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IUniswapV2ERC20 { + return new Contract(address, _abi, runner) as unknown as IUniswapV2ERC20; + } +} diff --git a/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory__factory.ts b/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory__factory.ts new file mode 100644 index 00000000..89a77ec9 --- /dev/null +++ b/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory__factory.ts @@ -0,0 +1,188 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IUniswapV2Factory, + IUniswapV2FactoryInterface, +} from "../../../../../@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "token0", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "token1", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "pair", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "PairCreated", + type: "event", + }, + { + inputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "allPairs", + outputs: [ + { + internalType: "address", + name: "pair", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "allPairsLength", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + ], + name: "createPair", + outputs: [ + { + internalType: "address", + name: "pair", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "feeTo", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "feeToSetter", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + ], + name: "getPair", + outputs: [ + { + internalType: "address", + name: "pair", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "setFeeTo", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "setFeeToSetter", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class IUniswapV2Factory__factory { + static readonly abi = _abi; + static createInterface(): IUniswapV2FactoryInterface { + return new Interface(_abi) as IUniswapV2FactoryInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IUniswapV2Factory { + return new Contract(address, _abi, runner) as unknown as IUniswapV2Factory; + } +} diff --git a/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair__factory.ts b/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair__factory.ts new file mode 100644 index 00000000..6756b697 --- /dev/null +++ b/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair__factory.ts @@ -0,0 +1,676 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IUniswapV2Pair, + IUniswapV2PairInterface, +} from "../../../../../@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + ], + name: "Burn", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + ], + name: "Mint", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount0In", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "amount1In", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "amount0Out", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "amount1Out", + type: "uint256", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + ], + name: "Swap", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint112", + name: "reserve0", + type: "uint112", + }, + { + indexed: false, + internalType: "uint112", + name: "reserve1", + type: "uint112", + }, + ], + name: "Sync", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + inputs: [], + name: "DOMAIN_SEPARATOR", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "MINIMUM_LIQUIDITY", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "PERMIT_TYPEHASH", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + ], + name: "burn", + outputs: [ + { + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "factory", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getReserves", + outputs: [ + { + internalType: "uint112", + name: "reserve0", + type: "uint112", + }, + { + internalType: "uint112", + name: "reserve1", + type: "uint112", + }, + { + internalType: "uint32", + name: "blockTimestampLast", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "kLast", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + ], + name: "mint", + outputs: [ + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + ], + name: "nonces", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "permit", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "price0CumulativeLast", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "price1CumulativeLast", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + ], + name: "skim", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amount0Out", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1Out", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "swap", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "sync", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "token0", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "token1", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class IUniswapV2Pair__factory { + static readonly abi = _abi; + static createInterface(): IUniswapV2PairInterface { + return new Interface(_abi) as IUniswapV2PairInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IUniswapV2Pair { + return new Contract(address, _abi, runner) as unknown as IUniswapV2Pair; + } +} diff --git a/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/index.ts b/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/index.ts new file mode 100644 index 00000000..88461340 --- /dev/null +++ b/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/index.ts @@ -0,0 +1,8 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IERC20__factory } from "./IERC20__factory"; +export { IUniswapV2Callee__factory } from "./IUniswapV2Callee__factory"; +export { IUniswapV2ERC20__factory } from "./IUniswapV2ERC20__factory"; +export { IUniswapV2Factory__factory } from "./IUniswapV2Factory__factory"; +export { IUniswapV2Pair__factory } from "./IUniswapV2Pair__factory"; diff --git a/typechain-types/factories/@uniswap/v2-core/index.ts b/typechain-types/factories/@uniswap/v2-core/index.ts new file mode 100644 index 00000000..6397da09 --- /dev/null +++ b/typechain-types/factories/@uniswap/v2-core/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as contracts from "./contracts"; diff --git a/typechain-types/factories/@uniswap/v2-periphery/contracts/UniswapV2Router02__factory.ts b/typechain-types/factories/@uniswap/v2-periphery/contracts/UniswapV2Router02__factory.ts new file mode 100644 index 00000000..ee6906fe --- /dev/null +++ b/typechain-types/factories/@uniswap/v2-periphery/contracts/UniswapV2Router02__factory.ts @@ -0,0 +1,1049 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + AddressLike, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { NonPayableOverrides } from "../../../../common"; +import type { + UniswapV2Router02, + UniswapV2Router02Interface, +} from "../../../../@uniswap/v2-periphery/contracts/UniswapV2Router02"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "_factory", + type: "address", + }, + { + internalType: "address", + name: "_WETH", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [], + name: "WETH", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + { + internalType: "uint256", + name: "amountADesired", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountBDesired", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountAMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountBMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "addLiquidity", + outputs: [ + { + internalType: "uint256", + name: "amountA", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountB", + type: "uint256", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amountTokenDesired", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountTokenMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETHMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "addLiquidityETH", + outputs: [ + { + internalType: "uint256", + name: "amountToken", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETH", + type: "uint256", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "factory", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveOut", + type: "uint256", + }, + ], + name: "getAmountIn", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveOut", + type: "uint256", + }, + ], + name: "getAmountOut", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + ], + name: "getAmountsIn", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + ], + name: "getAmountsOut", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountA", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveA", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveB", + type: "uint256", + }, + ], + name: "quote", + outputs: [ + { + internalType: "uint256", + name: "amountB", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountAMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountBMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "removeLiquidity", + outputs: [ + { + internalType: "uint256", + name: "amountA", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountB", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountTokenMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETHMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "removeLiquidityETH", + outputs: [ + { + internalType: "uint256", + name: "amountToken", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETH", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountTokenMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETHMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "removeLiquidityETHSupportingFeeOnTransferTokens", + outputs: [ + { + internalType: "uint256", + name: "amountETH", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountTokenMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETHMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "bool", + name: "approveMax", + type: "bool", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "removeLiquidityETHWithPermit", + outputs: [ + { + internalType: "uint256", + name: "amountToken", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETH", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountTokenMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETHMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "bool", + name: "approveMax", + type: "bool", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", + outputs: [ + { + internalType: "uint256", + name: "amountETH", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountAMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountBMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "bool", + name: "approveMax", + type: "bool", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "removeLiquidityWithPermit", + outputs: [ + { + internalType: "uint256", + name: "amountA", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountB", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapETHForExactTokens", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapExactETHForTokens", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapExactETHForTokensSupportingFeeOnTransferTokens", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapExactTokensForETH", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapExactTokensForETHSupportingFeeOnTransferTokens", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapExactTokensForTokens", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapExactTokensForTokensSupportingFeeOnTransferTokens", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountInMax", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapTokensForExactETH", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountInMax", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapTokensForExactTokens", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + stateMutability: "payable", + type: "receive", + }, +] as const; + +const _bytecode = + "0x60c06040523480156200001157600080fd5b5060405162006b1038038062006b10833981810160405260408110156200003757600080fd5b8101908080519060200190929190805190602001909291905050508173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b81525050505060805160601c60a05160601c6169076200020960003980610156528061157452806115b252806116e252806119c05280611f34528061220f528061230552806128a55280612a925280612bc55280612cdd5280612ea55280612f3a528061338e52806134455280613538528061364f528061373e52806137bf5280613fb6528061435452806143ad52806143e1528061446252806146a2528061486752806148fc5250806117d452806118e05280611a935280611acb5280611cc45280611dd05280612026528061212f52806122e3528061251f52806129c55280612dca5280612f79528061319a52806132a352806137fe5280613c315280613f335280613f5c5280613f9452806141c6528061438b528061478f528061493b528061553a528061557e52806158f35280615b5a528061614b5280616273528061638952506169076000f3fe60806040526004361061014f5760003560e01c80638803dbee116100b6578063c45a01551161006f578063c45a015514611001578063d06ca61f14611058578063ded9382a1461117c578063e8e337001461125e578063f305d71914611344578063fb3bdb41146113f2576101ab565b80638803dbee14610c00578063ad5c464814610d19578063ad615dec14610d70578063af2979eb14610dd3578063b6f9de9514610e80578063baa2abde14610f2d576101ab565b80634a25d94a116101085780634a25d94a1461071f5780635b0d5984146108385780635c11d79514610913578063791ac947146109d75780637ff36ab514610a9b57806385f8c25914610b9d576101ab565b806302751cec146101b0578063054d50d41461026457806318cbafe5146102c75780631f00ca74146103e05780632195995c1461050457806338ed173914610606576101ab565b366101ab577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101a957fe5b005b600080fd5b3480156101bc57600080fd5b50610247600480360360c08110156101d357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114f4565b604051808381526020018281526020019250505060405180910390f35b34801561027057600080fd5b506102b16004803603606081101561028757600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050611651565b6040518082815260200191505060405180910390f35b3480156102d357600080fd5b50610389600480360360a08110156102ea57600080fd5b8101908080359060200190929190803590602001909291908035906020019064010000000081111561031b57600080fd5b82018360208201111561032d57600080fd5b8035906020019184602083028401116401000000008311171561034f57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611667565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156103cc5780820151818401526020810190506103b1565b505050509050019250505060405180910390f35b3480156103ec57600080fd5b506104ad6004803603604081101561040357600080fd5b81019080803590602001909291908035906020019064010000000081111561042a57600080fd5b82018360208201111561043c57600080fd5b8035906020019184602083028401116401000000008311171561045e57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611a8c565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156104f05780820151818401526020810190506104d5565b505050509050019250505060405180910390f35b34801561051057600080fd5b506105e9600480360361016081101561052857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803515159060200190929190803560ff1690602001909291908035906020019092919080359060200190929190505050611ac1565b604051808381526020018281526020019250505060405180910390f35b34801561061257600080fd5b506106c8600480360360a081101561062957600080fd5b8101908080359060200190929190803590602001909291908035906020019064010000000081111561065a57600080fd5b82018360208201111561066c57600080fd5b8035906020019184602083028401116401000000008311171561068e57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c46565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561070b5780820151818401526020810190506106f0565b505050509050019250505060405180910390f35b34801561072b57600080fd5b506107e1600480360360a081101561074257600080fd5b8101908080359060200190929190803590602001909291908035906020019064010000000081111561077357600080fd5b82018360208201111561078557600080fd5b803590602001918460208302840111640100000000831117156107a757600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611eb9565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610824578082015181840152602081019050610809565b505050509050019250505060405180910390f35b34801561084457600080fd5b506108fd600480360361014081101561085c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803515159060200190929190803560ff16906020019092919080359060200190929190803590602001909291905050506122db565b6040518082815260200191505060405180910390f35b34801561091f57600080fd5b506109d5600480360360a081101561093657600080fd5b8101908080359060200190929190803590602001909291908035906020019064010000000081111561096757600080fd5b82018360208201111561097957600080fd5b8035906020019184602083028401116401000000008311171561099b57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612475565b005b3480156109e357600080fd5b50610a99600480360360a08110156109fa57600080fd5b81019080803590602001909291908035906020019092919080359060200190640100000000811115610a2b57600080fd5b820183602082011115610a3d57600080fd5b80359060200191846020830284011164010000000083111715610a5f57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061282c565b005b610b4660048036036080811015610ab157600080fd5b810190808035906020019092919080359060200190640100000000811115610ad857600080fd5b820183602082011115610aea57600080fd5b80359060200191846020830284011164010000000083111715610b0c57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612c62565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610b89578082015181840152602081019050610b6e565b505050509050019250505060405180910390f35b348015610ba957600080fd5b50610bea60048036036060811015610bc057600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050613106565b6040518082815260200191505060405180910390f35b348015610c0c57600080fd5b50610cc2600480360360a0811015610c2357600080fd5b81019080803590602001909291908035906020019092919080359060200190640100000000811115610c5457600080fd5b820183602082011115610c6657600080fd5b80359060200191846020830284011164010000000083111715610c8857600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061311c565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610d05578082015181840152602081019050610cea565b505050509050019250505060405180910390f35b348015610d2557600080fd5b50610d2e61338c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d7c57600080fd5b50610dbd60048036036060811015610d9357600080fd5b810190808035906020019092919080359060200190929190803590602001909291905050506133b0565b6040518082815260200191505060405180910390f35b348015610ddf57600080fd5b50610e6a600480360360c0811015610df657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506133c6565b6040518082815260200191505060405180910390f35b610f2b60048036036080811015610e9657600080fd5b810190808035906020019092919080359060200190640100000000811115610ebd57600080fd5b820183602082011115610ecf57600080fd5b80359060200191846020830284011164010000000083111715610ef157600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506135d6565b005b348015610f3957600080fd5b50610fe4600480360360e0811015610f5057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613bb0565b604051808381526020018281526020019250505060405180910390f35b34801561100d57600080fd5b50611016613f31565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561106457600080fd5b506111256004803603604081101561107b57600080fd5b8101908080359060200190929190803590602001906401000000008111156110a257600080fd5b8201836020820111156110b457600080fd5b803590602001918460208302840111640100000000831117156110d657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050613f55565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561116857808201518184015260208101905061114d565b505050509050019250505060405180910390f35b34801561118857600080fd5b5061124160048036036101408110156111a057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803515159060200190929190803560ff1690602001909291908035906020019092919080359060200190929190505050613f8a565b604051808381526020018281526020019250505060405180910390f35b34801561126a57600080fd5b50611320600480360361010081101561128257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061412d565b60405180848152602001838152602001828152602001935050505060405180910390f35b6113ce600480360360c081101561135a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506142d2565b60405180848152602001838152602001828152602001935050505060405180910390f35b61149d6004803603608081101561140857600080fd5b81019080803590602001909291908035906020019064010000000081111561142f57600080fd5b82018360208201111561144157600080fd5b8035906020019184602083028401116401000000008311171561146357600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050614627565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156114e05780820151818401526020810190506114c5565b505050509050019250505060405180910390f35b600080824281101561156e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f556e69737761705632526f757465723a2045585049524544000000000000000081525060200191505060405180910390fd5b61159d897f00000000000000000000000000000000000000000000000000000000000000008a8a8a308a613bb0565b80935081945050506115b0898685614b05565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561162357600080fd5b505af1158015611637573d6000803e3d6000fd5b505050506116458583614cfe565b50965096945050505050565b600061165e848484614e5d565b90509392505050565b606081428110156116e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f556e69737761705632526f757465723a2045585049524544000000000000000081525060200191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1686866001898990500381811061172957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f556e69737761705632526f757465723a20494e56414c49445f5041544800000081525060200191505060405180910390fd5b61183b7f000000000000000000000000000000000000000000000000000000000000000089888880806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050614f8d565b9150868260018451038151811061184e57fe5b602002602001015110156118ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180616858602b913960400191505060405180910390fd5b611972868660008181106118bd57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16336119587f00000000000000000000000000000000000000000000000000000000000000008a8a600081811061190c57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168b8b600181811061193657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16615105565b8560008151811061196557fe5b6020026020010151615260565b6119be82878780806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505030615471565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d83600185510381518110611a0a57fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611a4857600080fd5b505af1158015611a5c573d6000803e3d6000fd5b50505050611a818483600185510381518110611a7457fe5b6020026020010151614cfe565b509695505050505050565b6060611ab97f0000000000000000000000000000000000000000000000000000000000000000848461571c565b905092915050565b6000806000611af17f00000000000000000000000000000000000000000000000000000000000000008f8f615105565b9050600087611b00578c611b22565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b90508173ffffffffffffffffffffffffffffffffffffffff1663d505accf3330848d8c8c8c6040518863ffffffff1660e01b8152600401808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018460ff1660ff168152602001838152602001828152602001975050505050505050600060405180830381600087803b158015611c0557600080fd5b505af1158015611c19573d6000803e3d6000fd5b50505050611c2c8f8f8f8f8f8f8f613bb0565b809450819550505050509b509b9950505050505050505050565b60608142811015611cbf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f556e69737761705632526f757465723a2045585049524544000000000000000081525060200191505060405180910390fd5b611d2b7f000000000000000000000000000000000000000000000000000000000000000089888880806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050614f8d565b91508682600184510381518110611d3e57fe5b60200260200101511015611d9d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180616858602b913960400191505060405180910390fd5b611e6286866000818110611dad57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1633611e487f00000000000000000000000000000000000000000000000000000000000000008a8a6000818110611dfc57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168b8b6001818110611e2657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16615105565b85600081518110611e5557fe5b6020026020010151615260565b611eae82878780806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505086615471565b509695505050505050565b60608142811015611f32576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f556e69737761705632526f757465723a2045585049524544000000000000000081525060200191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16868660018989905003818110611f7b57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612021576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f556e69737761705632526f757465723a20494e56414c49445f5041544800000081525060200191505060405180910390fd5b61208d7f000000000000000000000000000000000000000000000000000000000000000089888880806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505061571c565b9150868260008151811061209d57fe5b602002602001015111156120fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806167e86027913960400191505060405180910390fd5b6121c18686600081811061210c57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16336121a77f00000000000000000000000000000000000000000000000000000000000000008a8a600081811061215b57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168b8b600181811061218557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16615105565b856000815181106121b457fe5b6020026020010151615260565b61220d82878780806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505030615471565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d8360018551038151811061225957fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561229757600080fd5b505af11580156122ab573d6000803e3d6000fd5b505050506122d084836001855103815181106122c357fe5b6020026020010151614cfe565b509695505050505050565b6000806123297f00000000000000000000000000000000000000000000000000000000000000008d7f0000000000000000000000000000000000000000000000000000000000000000615105565b9050600086612338578b61235a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b90508173ffffffffffffffffffffffffffffffffffffffff1663d505accf3330848c8b8b8b6040518863ffffffff1660e01b8152600401808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018460ff1660ff168152602001838152602001828152602001975050505050505050600060405180830381600087803b15801561243d57600080fd5b505af1158015612451573d6000803e3d6000fd5b505050506124638d8d8d8d8d8d6133c6565b925050509a9950505050505050505050565b80428110156124ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f556e69737761705632526f757465723a2045585049524544000000000000000081525060200191505060405180910390fd5b61259d858560008181106124fc57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16336125977f00000000000000000000000000000000000000000000000000000000000000008989600081811061254b57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168a8a600181811061257557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16615105565b8a615260565b60008585600188889050038181106125b157fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561264a57600080fd5b505afa15801561265e573d6000803e3d6000fd5b505050506040513d602081101561267457600080fd5b810190808051906020019092919050505090506126d2868680806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508561589c565b866127cb82888860018b8b9050038181106126e957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561278257600080fd5b505afa158015612796573d6000803e3d6000fd5b505050506040513d60208110156127ac57600080fd5b8101908080519060200190929190505050615d1390919063ffffffff16565b1015612822576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180616858602b913960400191505060405180910390fd5b5050505050505050565b80428110156128a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f556e69737761705632526f757465723a2045585049524544000000000000000081525060200191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168585600188889050038181106128ec57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612992576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f556e69737761705632526f757465723a20494e56414c49445f5041544800000081525060200191505060405180910390fd5b612a43858560008181106129a257fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1633612a3d7f0000000000000000000000000000000000000000000000000000000000000000898960008181106129f157fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168a8a6001818110612a1b57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16615105565b8a615260565b612a8e858580806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050503061589c565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612b2d57600080fd5b505afa158015612b41573d6000803e3d6000fd5b505050506040513d6020811015612b5757600080fd5b8101908080519060200190929190505050905086811015612bc3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180616858602b913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015612c3657600080fd5b505af1158015612c4a573d6000803e3d6000fd5b50505050612c588482614cfe565b5050505050505050565b60608142811015612cdb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f556e69737761705632526f757465723a2045585049524544000000000000000081525060200191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1686866000818110612d1f57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612dc5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f556e69737761705632526f757465723a20494e56414c49445f5041544800000081525060200191505060405180910390fd5b612e317f000000000000000000000000000000000000000000000000000000000000000034888880806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050614f8d565b91508682600184510381518110612e4457fe5b60200260200101511015612ea3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180616858602b913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db083600081518110612eec57fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b158015612f1f57600080fd5b505af1158015612f33573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb612ff17f000000000000000000000000000000000000000000000000000000000000000089896000818110612fa557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168a8a6001818110612fcf57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16615105565b84600081518110612ffe57fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561306f57600080fd5b505af1158015613083573d6000803e3d6000fd5b505050506040513d602081101561309957600080fd5b81019080805190602001909291905050506130b057fe5b6130fc82878780806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505086615471565b5095945050505050565b6000613113848484615d96565b90509392505050565b60608142811015613195576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f556e69737761705632526f757465723a2045585049524544000000000000000081525060200191505060405180910390fd5b6132017f000000000000000000000000000000000000000000000000000000000000000089888880806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505061571c565b9150868260008151811061321157fe5b60200260200101511115613270576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806167e86027913960400191505060405180910390fd5b6133358686600081811061328057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff163361331b7f00000000000000000000000000000000000000000000000000000000000000008a8a60008181106132cf57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168b8b60018181106132f957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16615105565b8560008151811061332857fe5b6020026020010151615260565b61338182878780806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505086615471565b509695505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006133bd848484615ed3565b90509392505050565b6000814281101561343f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f556e69737761705632526f757465723a2045585049524544000000000000000081525060200191505060405180910390fd5b61346e887f00000000000000000000000000000000000000000000000000000000000000008989893089613bb0565b90508092505061353688858a73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156134f657600080fd5b505afa15801561350a573d6000803e3d6000fd5b505050506040513d602081101561352057600080fd5b8101908080519060200190929190505050614b05565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156135a957600080fd5b505af11580156135bd573d6000803e3d6000fd5b505050506135cb8483614cfe565b509695505050505050565b804281101561364d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f556e69737761705632526f757465723a2045585049524544000000000000000081525060200191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168585600081811061369157fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613737576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f556e69737761705632526f757465723a20494e56414c49445f5041544800000081525060200191505060405180910390fd5b60003490507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156137a457600080fd5b505af11580156137b8573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6138767f00000000000000000000000000000000000000000000000000000000000000008989600081811061382a57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168a8a600181811061385457fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16615105565b836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156138e057600080fd5b505af11580156138f4573d6000803e3d6000fd5b505050506040513d602081101561390a57600080fd5b810190808051906020019092919050505061392157fe5b600086866001898990500381811061393557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156139ce57600080fd5b505afa1580156139e2573d6000803e3d6000fd5b505050506040513d60208110156139f857600080fd5b81019080805190602001909291905050509050613a56878780806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508661589c565b87613b4f82898960018c8c905003818110613a6d57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231896040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015613b0657600080fd5b505afa158015613b1a573d6000803e3d6000fd5b505050506040513d6020811015613b3057600080fd5b8101908080519060200190929190505050615d1390919063ffffffff16565b1015613ba6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180616858602b913960400191505060405180910390fd5b5050505050505050565b6000808242811015613c2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f556e69737761705632526f757465723a2045585049524544000000000000000081525060200191505060405180910390fd5b6000613c577f00000000000000000000000000000000000000000000000000000000000000008c8c615105565b90508073ffffffffffffffffffffffffffffffffffffffff166323b872dd33838c6040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015613d1457600080fd5b505af1158015613d28573d6000803e3d6000fd5b505050506040513d6020811015613d3e57600080fd5b8101908080519060200190929190505050506000808273ffffffffffffffffffffffffffffffffffffffff166389afcb44896040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506040805180830381600087803b158015613dd157600080fd5b505af1158015613de5573d6000803e3d6000fd5b505050506040513d6040811015613dfb57600080fd5b810190808051906020019092919080519060200190929190505050915091506000613e268e8e615fb7565b5090508073ffffffffffffffffffffffffffffffffffffffff168e73ffffffffffffffffffffffffffffffffffffffff1614613e63578183613e66565b82825b80975081985050508a871015613ec7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061680f6026913960400191505060405180910390fd5b89861015613f20576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806167756026913960400191505060405180910390fd5b505050505097509795505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6060613f827f00000000000000000000000000000000000000000000000000000000000000008484614f8d565b905092915050565b6000806000613fda7f00000000000000000000000000000000000000000000000000000000000000008e7f0000000000000000000000000000000000000000000000000000000000000000615105565b9050600087613fe9578c61400b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b90508173ffffffffffffffffffffffffffffffffffffffff1663d505accf3330848d8c8c8c6040518863ffffffff1660e01b8152600401808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018460ff1660ff168152602001838152602001828152602001975050505050505050600060405180830381600087803b1580156140ee57600080fd5b505af1158015614102573d6000803e3d6000fd5b505050506141148e8e8e8e8e8e6114f4565b809450819550505050509a509a98505050505050505050565b600080600083428110156141a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f556e69737761705632526f757465723a2045585049524544000000000000000081525060200191505060405180910390fd5b6141b78c8c8c8c8c8c61612e565b809450819550505060006141ec7f00000000000000000000000000000000000000000000000000000000000000008e8e615105565b90506141fa8d338388615260565b6142068c338387615260565b8073ffffffffffffffffffffffffffffffffffffffff16636a627842886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561428557600080fd5b505af1158015614299573d6000803e3d6000fd5b505050506040513d60208110156142af57600080fd5b810190808051906020019092919050505092505050985098509895505050505050565b6000806000834281101561434e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f556e69737761705632526f757465723a2045585049524544000000000000000081525060200191505060405180910390fd5b61437c8a7f00000000000000000000000000000000000000000000000000000000000000008b348c8c61612e565b809450819550505060006143d17f00000000000000000000000000000000000000000000000000000000000000008c7f0000000000000000000000000000000000000000000000000000000000000000615105565b90506143df8b338388615260565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b15801561444757600080fd5b505af115801561445b573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561450757600080fd5b505af115801561451b573d6000803e3d6000fd5b505050506040513d602081101561453157600080fd5b810190808051906020019092919050505061454857fe5b8073ffffffffffffffffffffffffffffffffffffffff16636a627842886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156145c757600080fd5b505af11580156145db573d6000803e3d6000fd5b505050506040513d60208110156145f157600080fd5b81019080805190602001909291905050509250833411156146195761461833853403614cfe565b5b505096509650969350505050565b606081428110156146a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f556e69737761705632526f757465723a2045585049524544000000000000000081525060200191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16868660008181106146e457fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461478a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f556e69737761705632526f757465723a20494e56414c49445f5041544800000081525060200191505060405180910390fd5b6147f67f000000000000000000000000000000000000000000000000000000000000000088888880806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505061571c565b9150348260008151811061480657fe5b60200260200101511115614865576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806167e86027913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0836000815181106148ae57fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b1580156148e157600080fd5b505af11580156148f5573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6149b37f00000000000000000000000000000000000000000000000000000000000000008989600081811061496757fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168a8a600181811061499157fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16615105565b846000815181106149c057fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015614a3157600080fd5b505af1158015614a45573d6000803e3d6000fd5b505050506040513d6020811015614a5b57600080fd5b8101908080519060200190929190505050614a7257fe5b614abe82878780806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505086615471565b81600081518110614acb57fe5b6020026020010151341115614afb57614afa3383600081518110614aeb57fe5b60200260200101513403614cfe565b5b5095945050505050565b600060608473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8585604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b60208310614bde5780518252602082019150602081019050602083039250614bbb565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114614c40576040519150601f19603f3d011682016040523d82523d6000602084013e614c45565b606091505b5091509150818015614c855750600081511480614c845750808060200190516020811015614c7257600080fd5b81019080805190602001909291905050505b5b614cf7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5472616e7366657248656c7065723a205452414e534645525f4641494c45440081525060200191505060405180910390fd5b5050505050565b60008273ffffffffffffffffffffffffffffffffffffffff1682600067ffffffffffffffff81118015614d3057600080fd5b506040519080825280601f01601f191660200182016040528015614d635781602001600182028036833780820191505090505b506040518082805190602001908083835b60208310614d975780518252602082019150602081019050602083039250614d74565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114614df9576040519150601f19603f3d011682016040523d82523d6000602084013e614dfe565b606091505b5050905080614e58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806168356023913960400191505060405180910390fd5b505050565b6000808411614eb7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806168a7602b913960400191505060405180910390fd5b600083118015614ec75750600082115b614f1c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061679b6028913960400191505060405180910390fd5b6000614f336103e5866164e290919063ffffffff16565b90506000614f4a84836164e290919063ffffffff16565b90506000614f7583614f676103e8896164e290919063ffffffff16565b61657790919063ffffffff16565b9050808281614f8057fe5b0493505050509392505050565b6060600282511015615007576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f556e697377617056324c6962726172793a20494e56414c49445f50415448000081525060200191505060405180910390fd5b815167ffffffffffffffff8111801561501f57600080fd5b5060405190808252806020026020018201604052801561504e5781602001602082028036833780820191505090505b509050828160008151811061505f57fe5b60200260200101818152505060005b60018351038110156150fd576000806150b18786858151811061508d57fe5b60200260200101518760018701815181106150a457fe5b60200260200101516165fa565b915091506150d38484815181106150c457fe5b60200260200101518383614e5d565b8460018501815181106150e257fe5b6020026020010181815250505050808060010191505061506e565b509392505050565b60008060006151148585615fb7565b91509150858282604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b8152601401925050506040516020818303038152906040528051906020012060405160200180807fff000000000000000000000000000000000000000000000000000000000000008152506001018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b8152601401828152602001807f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f815250602001925050506040516020818303038152906040528051906020012060001c925050509392505050565b600060608573ffffffffffffffffffffffffffffffffffffffff166323b872dd868686604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200193505050506040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b6020831061536d578051825260208201915060208101905060208303925061534a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146153cf576040519150601f19603f3d011682016040523d82523d6000602084013e6153d4565b606091505b50915091508180156154145750600081511480615413575080806020019051602081101561540157600080fd5b81019080805190602001909291905050505b5b615469576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806168836024913960400191505060405180910390fd5b505050505050565b60005b60018351038110156157165760008084838151811061548f57fe5b60200260200101518560018501815181106154a657fe5b60200260200101519150915060006154be8383615fb7565b50905060008760018601815181106154d257fe5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461551a5782600061551e565b6000835b91509150600060028a510388106155355788615577565b6155767f0000000000000000000000000000000000000000000000000000000000000000878c60028c018151811061556957fe5b6020026020010151615105565b5b90506155a47f00000000000000000000000000000000000000000000000000000000000000008888615105565b73ffffffffffffffffffffffffffffffffffffffff1663022c0d9f848484600067ffffffffffffffff811180156155da57600080fd5b506040519080825280601f01601f19166020018201604052801561560d5781602001600182028036833780820191505090505b506040518563ffffffff1660e01b8152600401808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561569b578082015181840152602081019050615680565b50505050905090810190601f1680156156c85780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156156ea57600080fd5b505af11580156156fe573d6000803e3d6000fd5b50505050505050505050508080600101915050615474565b50505050565b6060600282511015615796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f556e697377617056324c6962726172793a20494e56414c49445f50415448000081525060200191505060405180910390fd5b815167ffffffffffffffff811180156157ae57600080fd5b506040519080825280602002602001820160405280156157dd5781602001602082028036833780820191505090505b50905082816001835103815181106157f157fe5b6020026020010181815250506000600183510390505b6000811115615894576000806158478786600186038151811061582657fe5b602002602001015187868151811061583a57fe5b60200260200101516165fa565b9150915061586984848151811061585a57fe5b60200260200101518383615d96565b84600185038151811061587857fe5b6020026020010181815250505050808060019003915050615807565b509392505050565b60005b6001835103811015615d0e576000808483815181106158ba57fe5b60200260200101518560018501815181106158d157fe5b60200260200101519150915060006158e98383615fb7565b50905060006159197f00000000000000000000000000000000000000000000000000000000000000008585615105565b90506000806000808473ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561596757600080fd5b505afa15801561597b573d6000803e3d6000fd5b505050506040513d606081101561599157600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691506000808773ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1614615a18578284615a1b565b83835b91509150615ae9828b73ffffffffffffffffffffffffffffffffffffffff166370a082318a6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015615aa057600080fd5b505afa158015615ab4573d6000803e3d6000fd5b505050506040513d6020811015615aca57600080fd5b8101908080519060200190929190505050615d1390919063ffffffff16565b9550615af6868383614e5d565b9450505050506000808573ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614615b3a57826000615b3e565b6000835b91509150600060028c51038a10615b55578a615b97565b615b967f0000000000000000000000000000000000000000000000000000000000000000898e60028e0181518110615b8957fe5b6020026020010151615105565b5b90508573ffffffffffffffffffffffffffffffffffffffff1663022c0d9f848484600067ffffffffffffffff81118015615bd057600080fd5b506040519080825280601f01601f191660200182016040528015615c035781602001600182028036833780820191505090505b506040518563ffffffff1660e01b8152600401808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015615c91578082015181840152602081019050615c76565b50505050905090810190601f168015615cbe5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015615ce057600080fd5b505af1158015615cf4573d6000803e3d6000fd5b50505050505050505050505050808060010191505061589f565b505050565b6000828284039150811115615d90576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f64732d6d6174682d7375622d756e646572666c6f77000000000000000000000081525060200191505060405180910390fd5b92915050565b6000808411615df0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180616724602c913960400191505060405180910390fd5b600083118015615e005750600082115b615e55576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061679b6028913960400191505060405180910390fd5b6000615e7e6103e8615e7087876164e290919063ffffffff16565b6164e290919063ffffffff16565b90506000615ea96103e5615e9b8887615d1390919063ffffffff16565b6164e290919063ffffffff16565b9050615ec86001828481615eb957fe5b0461657790919063ffffffff16565b925050509392505050565b6000808411615f2d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806167c36025913960400191505060405180910390fd5b600083118015615f3d5750600082115b615f92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061679b6028913960400191505060405180910390fd5b82615fa683866164e290919063ffffffff16565b81615fad57fe5b0490509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561603f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806167506025913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161061607957828461607c565b83835b8092508193505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415616127576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f556e697377617056324c6962726172793a205a45524f5f41444452455353000081525060200191505060405180910390fd5b9250929050565b600080600073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e6a439058a8a6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801561621a57600080fd5b505afa15801561622e573d6000803e3d6000fd5b505050506040513d602081101561624457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff161415616381577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c9c6539689896040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b15801561634457600080fd5b505af1158015616358573d6000803e3d6000fd5b505050506040513d602081101561636e57600080fd5b8101908080519060200190929190505050505b6000806163af7f00000000000000000000000000000000000000000000000000000000000000008b8b6165fa565b915091506000821480156163c35750600081145b156163d757878780945081955050506164d5565b60006163e4898484615ed3565b90508781116164555785811015616446576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806167756026913960400191505060405180910390fd5b888180955081965050506164d3565b6000616462898486615ed3565b90508981111561646e57fe5b878110156164c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061680f6026913960400191505060405180910390fd5b80898096508197505050505b505b5050965096945050505050565b6000808214806164ff57508282838502925082816164fc57fe5b04145b616571576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d6d6174682d6d756c2d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b92915050565b60008282840191508110156165f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d6d6174682d6164642d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b92915050565b60008060006166098585615fb7565b50905060008061661a888888615105565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561665f57600080fd5b505afa158015616673573d6000803e3d6000fd5b505050506040513d606081101561668957600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691508273ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161461670d578082616710565b81815b809550819650505050505093509391505056fe556e697377617056324c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056324c6962726172793a204944454e544943414c5f414444524553534553556e69737761705632526f757465723a20494e53554646494349454e545f425f414d4f554e54556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459556e697377617056324c6962726172793a20494e53554646494349454e545f414d4f554e54556e69737761705632526f757465723a204558434553534956455f494e5055545f414d4f554e54556e69737761705632526f757465723a20494e53554646494349454e545f415f414d4f554e545472616e7366657248656c7065723a204554485f5452414e534645525f4641494c4544556e69737761705632526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544556e697377617056324c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54a26469706673582212208afdc4c37194d7ca1f4cc9961c6827f176017c92df2e6237e0366b088021437364736f6c63430006060033"; + +type UniswapV2Router02ConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: UniswapV2Router02ConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class UniswapV2Router02__factory extends ContractFactory { + constructor(...args: UniswapV2Router02ConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + _factory: AddressLike, + _WETH: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(_factory, _WETH, overrides || {}); + } + override deploy( + _factory: AddressLike, + _WETH: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy(_factory, _WETH, overrides || {}) as Promise< + UniswapV2Router02 & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): UniswapV2Router02__factory { + return super.connect(runner) as UniswapV2Router02__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): UniswapV2Router02Interface { + return new Interface(_abi) as UniswapV2Router02Interface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): UniswapV2Router02 { + return new Contract(address, _abi, runner) as unknown as UniswapV2Router02; + } +} diff --git a/typechain-types/factories/@uniswap/v2-periphery/contracts/index.ts b/typechain-types/factories/@uniswap/v2-periphery/contracts/index.ts new file mode 100644 index 00000000..1e34f5fd --- /dev/null +++ b/typechain-types/factories/@uniswap/v2-periphery/contracts/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as interfaces from "./interfaces"; +export { UniswapV2Router02__factory } from "./UniswapV2Router02__factory"; diff --git a/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IERC20__factory.ts b/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IERC20__factory.ts new file mode 100644 index 00000000..5c4a0d8a --- /dev/null +++ b/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IERC20__factory.ts @@ -0,0 +1,244 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IERC20, + IERC20Interface, +} from "../../../../../@uniswap/v2-periphery/contracts/interfaces/IERC20"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class IERC20__factory { + static readonly abi = _abi; + static createInterface(): IERC20Interface { + return new Interface(_abi) as IERC20Interface; + } + static connect(address: string, runner?: ContractRunner | null): IERC20 { + return new Contract(address, _abi, runner) as unknown as IERC20; + } +} diff --git a/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01__factory.ts b/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01__factory.ts new file mode 100644 index 00000000..e614d805 --- /dev/null +++ b/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01__factory.ts @@ -0,0 +1,774 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IUniswapV2Router01, + IUniswapV2Router01Interface, +} from "../../../../../@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01"; + +const _abi = [ + { + inputs: [], + name: "WETH", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + { + internalType: "uint256", + name: "amountADesired", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountBDesired", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountAMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountBMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "addLiquidity", + outputs: [ + { + internalType: "uint256", + name: "amountA", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountB", + type: "uint256", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amountTokenDesired", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountTokenMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETHMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "addLiquidityETH", + outputs: [ + { + internalType: "uint256", + name: "amountToken", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETH", + type: "uint256", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "factory", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveOut", + type: "uint256", + }, + ], + name: "getAmountIn", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveOut", + type: "uint256", + }, + ], + name: "getAmountOut", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + ], + name: "getAmountsIn", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + ], + name: "getAmountsOut", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountA", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveA", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveB", + type: "uint256", + }, + ], + name: "quote", + outputs: [ + { + internalType: "uint256", + name: "amountB", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountAMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountBMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "removeLiquidity", + outputs: [ + { + internalType: "uint256", + name: "amountA", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountB", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountTokenMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETHMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "removeLiquidityETH", + outputs: [ + { + internalType: "uint256", + name: "amountToken", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETH", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountTokenMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETHMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "bool", + name: "approveMax", + type: "bool", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "removeLiquidityETHWithPermit", + outputs: [ + { + internalType: "uint256", + name: "amountToken", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETH", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountAMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountBMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "bool", + name: "approveMax", + type: "bool", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "removeLiquidityWithPermit", + outputs: [ + { + internalType: "uint256", + name: "amountA", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountB", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapETHForExactTokens", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapExactETHForTokens", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapExactTokensForETH", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapExactTokensForTokens", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountInMax", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapTokensForExactETH", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountInMax", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapTokensForExactTokens", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class IUniswapV2Router01__factory { + static readonly abi = _abi; + static createInterface(): IUniswapV2Router01Interface { + return new Interface(_abi) as IUniswapV2Router01Interface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IUniswapV2Router01 { + return new Contract(address, _abi, runner) as unknown as IUniswapV2Router01; + } +} diff --git a/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02__factory.ts b/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02__factory.ts new file mode 100644 index 00000000..39012cd7 --- /dev/null +++ b/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02__factory.ts @@ -0,0 +1,976 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IUniswapV2Router02, + IUniswapV2Router02Interface, +} from "../../../../../@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02"; + +const _abi = [ + { + inputs: [], + name: "WETH", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + { + internalType: "uint256", + name: "amountADesired", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountBDesired", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountAMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountBMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "addLiquidity", + outputs: [ + { + internalType: "uint256", + name: "amountA", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountB", + type: "uint256", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amountTokenDesired", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountTokenMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETHMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "addLiquidityETH", + outputs: [ + { + internalType: "uint256", + name: "amountToken", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETH", + type: "uint256", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "factory", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveOut", + type: "uint256", + }, + ], + name: "getAmountIn", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveOut", + type: "uint256", + }, + ], + name: "getAmountOut", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + ], + name: "getAmountsIn", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + ], + name: "getAmountsOut", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountA", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveA", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveB", + type: "uint256", + }, + ], + name: "quote", + outputs: [ + { + internalType: "uint256", + name: "amountB", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountAMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountBMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "removeLiquidity", + outputs: [ + { + internalType: "uint256", + name: "amountA", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountB", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountTokenMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETHMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "removeLiquidityETH", + outputs: [ + { + internalType: "uint256", + name: "amountToken", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETH", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountTokenMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETHMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "removeLiquidityETHSupportingFeeOnTransferTokens", + outputs: [ + { + internalType: "uint256", + name: "amountETH", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountTokenMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETHMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "bool", + name: "approveMax", + type: "bool", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "removeLiquidityETHWithPermit", + outputs: [ + { + internalType: "uint256", + name: "amountToken", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETH", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountTokenMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETHMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "bool", + name: "approveMax", + type: "bool", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", + outputs: [ + { + internalType: "uint256", + name: "amountETH", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountAMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountBMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "bool", + name: "approveMax", + type: "bool", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "removeLiquidityWithPermit", + outputs: [ + { + internalType: "uint256", + name: "amountA", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountB", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapETHForExactTokens", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapExactETHForTokens", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapExactETHForTokensSupportingFeeOnTransferTokens", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapExactTokensForETH", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapExactTokensForETHSupportingFeeOnTransferTokens", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapExactTokensForTokens", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapExactTokensForTokensSupportingFeeOnTransferTokens", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountInMax", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapTokensForExactETH", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountInMax", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapTokensForExactTokens", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class IUniswapV2Router02__factory { + static readonly abi = _abi; + static createInterface(): IUniswapV2Router02Interface { + return new Interface(_abi) as IUniswapV2Router02Interface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IUniswapV2Router02 { + return new Contract(address, _abi, runner) as unknown as IUniswapV2Router02; + } +} diff --git a/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IWETH__factory.ts b/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IWETH__factory.ts new file mode 100644 index 00000000..0185f5be --- /dev/null +++ b/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IWETH__factory.ts @@ -0,0 +1,66 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IWETH, + IWETHInterface, +} from "../../../../../@uniswap/v2-periphery/contracts/interfaces/IWETH"; + +const _abi = [ + { + inputs: [], + name: "deposit", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "withdraw", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class IWETH__factory { + static readonly abi = _abi; + static createInterface(): IWETHInterface { + return new Interface(_abi) as IWETHInterface; + } + static connect(address: string, runner?: ContractRunner | null): IWETH { + return new Contract(address, _abi, runner) as unknown as IWETH; + } +} diff --git a/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/index.ts b/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/index.ts new file mode 100644 index 00000000..f8c8fbd3 --- /dev/null +++ b/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/index.ts @@ -0,0 +1,7 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IERC20__factory } from "./IERC20__factory"; +export { IUniswapV2Router01__factory } from "./IUniswapV2Router01__factory"; +export { IUniswapV2Router02__factory } from "./IUniswapV2Router02__factory"; +export { IWETH__factory } from "./IWETH__factory"; diff --git a/typechain-types/factories/@uniswap/v2-periphery/index.ts b/typechain-types/factories/@uniswap/v2-periphery/index.ts new file mode 100644 index 00000000..6397da09 --- /dev/null +++ b/typechain-types/factories/@uniswap/v2-periphery/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as contracts from "./contracts"; diff --git a/typechain-types/factories/@uniswap/v3-core/contracts/index.ts b/typechain-types/factories/@uniswap/v3-core/contracts/index.ts new file mode 100644 index 00000000..1d3444d5 --- /dev/null +++ b/typechain-types/factories/@uniswap/v3-core/contracts/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as interfaces from "./interfaces"; diff --git a/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback__factory.ts b/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback__factory.ts new file mode 100644 index 00000000..2213b0bc --- /dev/null +++ b/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback__factory.ts @@ -0,0 +1,52 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IUniswapV3SwapCallback, + IUniswapV3SwapCallbackInterface, +} from "../../../../../../@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback"; + +const _abi = [ + { + inputs: [ + { + internalType: "int256", + name: "amount0Delta", + type: "int256", + }, + { + internalType: "int256", + name: "amount1Delta", + type: "int256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "uniswapV3SwapCallback", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class IUniswapV3SwapCallback__factory { + static readonly abi = _abi; + static createInterface(): IUniswapV3SwapCallbackInterface { + return new Interface(_abi) as IUniswapV3SwapCallbackInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IUniswapV3SwapCallback { + return new Contract( + address, + _abi, + runner + ) as unknown as IUniswapV3SwapCallback; + } +} diff --git a/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/callback/index.ts b/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/callback/index.ts new file mode 100644 index 00000000..0c401bd0 --- /dev/null +++ b/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/callback/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IUniswapV3SwapCallback__factory } from "./IUniswapV3SwapCallback__factory"; diff --git a/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/index.ts b/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/index.ts new file mode 100644 index 00000000..01db08ef --- /dev/null +++ b/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as callback from "./callback"; diff --git a/typechain-types/factories/@uniswap/v3-core/index.ts b/typechain-types/factories/@uniswap/v3-core/index.ts new file mode 100644 index 00000000..6397da09 --- /dev/null +++ b/typechain-types/factories/@uniswap/v3-core/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as contracts from "./contracts"; diff --git a/typechain-types/factories/@uniswap/v3-periphery/contracts/index.ts b/typechain-types/factories/@uniswap/v3-periphery/contracts/index.ts new file mode 100644 index 00000000..1d3444d5 --- /dev/null +++ b/typechain-types/factories/@uniswap/v3-periphery/contracts/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as interfaces from "./interfaces"; diff --git a/typechain-types/factories/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter__factory.ts b/typechain-types/factories/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter__factory.ts new file mode 100644 index 00000000..d17d5d7f --- /dev/null +++ b/typechain-types/factories/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter__factory.ts @@ -0,0 +1,259 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + ISwapRouter, + ISwapRouterInterface, +} from "../../../../../@uniswap/v3-periphery/contracts/interfaces/ISwapRouter"; + +const _abi = [ + { + inputs: [ + { + components: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMinimum", + type: "uint256", + }, + ], + internalType: "struct ISwapRouter.ExactInputParams", + name: "params", + type: "tuple", + }, + ], + name: "exactInput", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMinimum", + type: "uint256", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + ], + internalType: "struct ISwapRouter.ExactInputSingleParams", + name: "params", + type: "tuple", + }, + ], + name: "exactInputSingle", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountInMaximum", + type: "uint256", + }, + ], + internalType: "struct ISwapRouter.ExactOutputParams", + name: "params", + type: "tuple", + }, + ], + name: "exactOutput", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountInMaximum", + type: "uint256", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + ], + internalType: "struct ISwapRouter.ExactOutputSingleParams", + name: "params", + type: "tuple", + }, + ], + name: "exactOutputSingle", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "amount0Delta", + type: "int256", + }, + { + internalType: "int256", + name: "amount1Delta", + type: "int256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "uniswapV3SwapCallback", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class ISwapRouter__factory { + static readonly abi = _abi; + static createInterface(): ISwapRouterInterface { + return new Interface(_abi) as ISwapRouterInterface; + } + static connect(address: string, runner?: ContractRunner | null): ISwapRouter { + return new Contract(address, _abi, runner) as unknown as ISwapRouter; + } +} diff --git a/typechain-types/factories/@uniswap/v3-periphery/contracts/interfaces/index.ts b/typechain-types/factories/@uniswap/v3-periphery/contracts/interfaces/index.ts new file mode 100644 index 00000000..786c846e --- /dev/null +++ b/typechain-types/factories/@uniswap/v3-periphery/contracts/interfaces/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { ISwapRouter__factory } from "./ISwapRouter__factory"; diff --git a/typechain-types/factories/@uniswap/v3-periphery/index.ts b/typechain-types/factories/@uniswap/v3-periphery/index.ts new file mode 100644 index 00000000..6397da09 --- /dev/null +++ b/typechain-types/factories/@uniswap/v3-periphery/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as contracts from "./contracts"; diff --git a/typechain-types/factories/@zetachain/index.ts b/typechain-types/factories/@zetachain/index.ts new file mode 100644 index 00000000..6257bef0 --- /dev/null +++ b/typechain-types/factories/@zetachain/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as protocolContracts from "./protocol-contracts"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/Errors.sol/INotSupportedMethods__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/Errors.sol/INotSupportedMethods__factory.ts new file mode 100644 index 00000000..ba0493ab --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/Errors.sol/INotSupportedMethods__factory.ts @@ -0,0 +1,39 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + INotSupportedMethods, + INotSupportedMethodsInterface, +} from "../../../../../@zetachain/protocol-contracts/contracts/Errors.sol/INotSupportedMethods"; + +const _abi = [ + { + inputs: [], + name: "CallOnRevertNotSupported", + type: "error", + }, + { + inputs: [], + name: "ZETANotSupported", + type: "error", + }, +] as const; + +export class INotSupportedMethods__factory { + static readonly abi = _abi; + static createInterface(): INotSupportedMethodsInterface { + return new Interface(_abi) as INotSupportedMethodsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): INotSupportedMethods { + return new Contract( + address, + _abi, + runner + ) as unknown as INotSupportedMethods; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/Errors.sol/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/Errors.sol/index.ts new file mode 100644 index 00000000..0ee1ffc8 --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/Errors.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { INotSupportedMethods__factory } from "./INotSupportedMethods__factory"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/Revert.sol/Abortable__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/Revert.sol/Abortable__factory.ts new file mode 100644 index 00000000..e1ea4dff --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/Revert.sol/Abortable__factory.ts @@ -0,0 +1,67 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + Abortable, + AbortableInterface, +} from "../../../../../@zetachain/protocol-contracts/contracts/Revert.sol/Abortable"; + +const _abi = [ + { + inputs: [ + { + components: [ + { + internalType: "bytes", + name: "sender", + type: "bytes", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bool", + name: "outgoing", + type: "bool", + }, + { + internalType: "uint256", + name: "chainID", + type: "uint256", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + ], + internalType: "struct AbortContext", + name: "abortContext", + type: "tuple", + }, + ], + name: "onAbort", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class Abortable__factory { + static readonly abi = _abi; + static createInterface(): AbortableInterface { + return new Interface(_abi) as AbortableInterface; + } + static connect(address: string, runner?: ContractRunner | null): Abortable { + return new Contract(address, _abi, runner) as unknown as Abortable; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/Revert.sol/Revertable__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/Revert.sol/Revertable__factory.ts new file mode 100644 index 00000000..fd3bcc5a --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/Revert.sol/Revertable__factory.ts @@ -0,0 +1,57 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + Revertable, + RevertableInterface, +} from "../../../../../@zetachain/protocol-contracts/contracts/Revert.sol/Revertable"; + +const _abi = [ + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + ], + internalType: "struct RevertContext", + name: "revertContext", + type: "tuple", + }, + ], + name: "onRevert", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class Revertable__factory { + static readonly abi = _abi; + static createInterface(): RevertableInterface { + return new Interface(_abi) as RevertableInterface; + } + static connect(address: string, runner?: ContractRunner | null): Revertable { + return new Contract(address, _abi, runner) as unknown as Revertable; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/Revert.sol/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/Revert.sol/index.ts new file mode 100644 index 00000000..5506ba2b --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/Revert.sol/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { Abortable__factory } from "./Abortable__factory"; +export { Revertable__factory } from "./Revertable__factory"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ERC20Custody__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ERC20Custody__factory.ts new file mode 100644 index 00000000..2cc910da --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ERC20Custody__factory.ts @@ -0,0 +1,1023 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../../../common"; +import type { + ERC20Custody, + ERC20CustodyInterface, +} from "../../../../../@zetachain/protocol-contracts/contracts/evm/ERC20Custody"; + +const _abi = [ + { + inputs: [], + name: "AccessControlBadConfirmation", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "bytes32", + name: "neededRole", + type: "bytes32", + }, + ], + name: "AccessControlUnauthorizedAccount", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + ], + name: "AddressEmptyCode", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "implementation", + type: "address", + }, + ], + name: "ERC1967InvalidImplementation", + type: "error", + }, + { + inputs: [], + name: "ERC1967NonPayable", + type: "error", + }, + { + inputs: [], + name: "EnforcedPause", + type: "error", + }, + { + inputs: [], + name: "ExpectedPause", + type: "error", + }, + { + inputs: [], + name: "FailedCall", + type: "error", + }, + { + inputs: [], + name: "InvalidInitialization", + type: "error", + }, + { + inputs: [], + name: "LegacyMethodsNotSupported", + type: "error", + }, + { + inputs: [], + name: "NotInitializing", + type: "error", + }, + { + inputs: [], + name: "NotWhitelisted", + type: "error", + }, + { + inputs: [], + name: "ReentrancyGuardReentrantCall", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "SafeERC20FailedOperation", + type: "error", + }, + { + inputs: [], + name: "UUPSUnauthorizedCallContext", + type: "error", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "slot", + type: "bytes32", + }, + ], + name: "UUPSUnsupportedProxiableUUID", + type: "error", + }, + { + inputs: [], + name: "ZeroAddress", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes", + name: "recipient", + type: "bytes", + }, + { + indexed: true, + internalType: "contract IERC20", + name: "asset", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "message", + type: "bytes", + }, + ], + name: "Deposited", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint64", + name: "version", + type: "uint64", + }, + ], + name: "Initialized", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "Paused", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + indexed: true, + internalType: "bytes32", + name: "previousAdminRole", + type: "bytes32", + }, + { + indexed: true, + internalType: "bytes32", + name: "newAdminRole", + type: "bytes32", + }, + ], + name: "RoleAdminChanged", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + indexed: true, + internalType: "address", + name: "account", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "RoleGranted", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + indexed: true, + internalType: "address", + name: "account", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "RoleRevoked", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "Unpaused", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "Unwhitelisted", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "oldTSSAddress", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "newTSSAddress", + type: "address", + }, + ], + name: "UpdatedCustodyTSSAddress", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "implementation", + type: "address", + }, + ], + name: "Upgraded", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "Whitelisted", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "token", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "Withdrawn", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "token", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "WithdrawnAndCalled", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "token", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + components: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + ], + indexed: false, + internalType: "struct RevertContext", + name: "revertContext", + type: "tuple", + }, + ], + name: "WithdrawnAndReverted", + type: "event", + }, + { + inputs: [], + name: "DEFAULT_ADMIN_ROLE", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "PAUSER_ROLE", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "UPGRADE_INTERFACE_VERSION", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "WHITELISTER_ROLE", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "WITHDRAWER_ROLE", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "recipient", + type: "bytes", + }, + { + internalType: "contract IERC20", + name: "asset", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "message", + type: "bytes", + }, + ], + name: "deposit", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "gateway", + outputs: [ + { + internalType: "contract IGatewayEVM", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + ], + name: "getRoleAdmin", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "grantRole", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "hasRole", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "gateway_", + type: "address", + }, + { + internalType: "address", + name: "tssAddress_", + type: "address", + }, + { + internalType: "address", + name: "admin_", + type: "address", + }, + ], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "pause", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "paused", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "proxiableUUID", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "callerConfirmation", + type: "address", + }, + ], + name: "renounceRole", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "revokeRole", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "_supportsLegacy", + type: "bool", + }, + ], + name: "setSupportsLegacy", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes4", + name: "interfaceId", + type: "bytes4", + }, + ], + name: "supportsInterface", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "supportsLegacy", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "tssAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "unpause", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "unwhitelist", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newTSSAddress", + type: "address", + }, + ], + name: "updateTSSAddress", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newImplementation", + type: "address", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "upgradeToAndCall", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "whitelist", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "whitelisted", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "withdraw", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + ], + internalType: "struct MessageContext", + name: "messageContext", + type: "tuple", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "withdrawAndCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + components: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + ], + internalType: "struct RevertContext", + name: "revertContext", + type: "tuple", + }, + ], + name: "withdrawAndRevert", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +const _bytecode = + "0x60a0806040523460295730608052611e8d908161002f8239608051818181610f090152610fda0152f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a71461131857508063116191b6146112f1578063248a9ca3146112ca578063252f07bf146112a45780632f2ff15d1461127257806336568abe1461122d5780633f4ba83a146111ab5780634f1ef28614610f5e57806352d1902d14610ef6578063570618e114610ecd5780635b11259114610ea45780635c975abb14610e745780638456cb5914610dff57806385f438c114610dd657806391d1485414610d80578063950837aa14610cb457806399a3c35614610ade5780639a59042714610a725780639b19251a146109f4578063a217fddf146109d8578063ad0818521461082d578063ad3cb1cc146107b3578063c0c53b8b1461057f578063d547741f14610544578063d936547e14610505578063d9caed1214610442578063e609055e146101e8578063e63ab1e9146101ad5763eab103df1461016057600080fd5b346101aa5760203660031901126101aa576004358015158091036101a65761018661157a565b6002805460ff60a01b191660a09290921b60ff60a01b1691909117905580f35b5080fd5b80fd5b50346101aa57806003193601126101aa5760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346101aa5760803660031901126101aa5760043567ffffffffffffffff81116101a65761021a903690600401611417565b6024356001600160a01b03811692919083810361043e5760643567ffffffffffffffff811161043a57610251903690600401611417565b9061025a611b7e565b610262611bba565b60ff60025460a01c161561042b57858752600160205260ff6040882054161561041c576040516370a0823160e01b8152306004820152926020846024818a5afa9384156103db5788946103e6575b506102ee90604051906323b872dd60e01b60208301523360248301523060448301526044356064830152606482526102e96084836113c3565b611c21565b6040516370a0823160e01b8152306004820152926020846024818a5afa9384156103db5788946103a2575b50830392831161038e5791610376917f1dafa057cc5c3bccb5ad974129a2bccd3c74002d9dfd7062404ba9523b18d6ae959493610363604051968796606088526060880191611466565b9260208601528483036040860152611466565b0390a26001600080516020611df88339815191525580f35b634e487b7160e01b87526011600452602487fd5b9093506020813d6020116103d3575b816103be602093836113c3565b810103126103ce57519238610319565b600080fd5b3d91506103b1565b6040513d8a823e3d90fd5b9093506020813d602011610414575b81610402602093836113c3565b810103126103ce5751926102ee6102b0565b3d91506103f5565b630b094f2760e31b8752600487fd5b6373cba66360e01b8752600487fd5b8580fd5b8480fd5b50346101aa5760603660031901126101aa5761045c611383565b61046461136d565b60443590610470611b7e565b6104786115cd565b610480611bba565b6001600160a01b03168084526001602052604084205490929060ff16156104f6576020816104d0847fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb9487611be4565b6040519384526001600160a01b031692a36001600080516020611df88339815191525580f35b630b094f2760e31b8452600484fd5b50346101aa5760203660031901126101aa5760209060ff906040906001600160a01b03610530611383565b168152600184522054166040519015158152f35b50346101aa5760403660031901126101aa5761057b60043561056461136d565b9061057661057182611445565b611669565b611ade565b5080f35b50346101aa5760603660031901126101aa57610599611383565b6105a161136d565b6105a9611399565b600080516020611e38833981519152549260ff8460401c16159367ffffffffffffffff8116801590816107ab575b60011490816107a1575b159081610798575b506107895767ffffffffffffffff198116600117600080516020611e38833981519152558461075c575b506001600160a01b03168015801561074b575b801561073a575b61072b576106c992916106c391610642611c88565b61064a611c88565b610652611c88565b6001600080516020611df88339815191525561066c611c88565b610674611c88565b86546001600160a01b0319908116919091178755600280549091166001600160a01b0385161790556106a5816117c5565b506106af8161185f565b506106b98361185f565b506106c3836116b3565b5061173f565b506106d15780f35b68ff000000000000000019600080516020611e388339815191525416600080516020611e38833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b63d92e233d60e01b8552600485fd5b506001600160a01b0382161561062d565b506001600160a01b03831615610626565b68ffffffffffffffffff19166801000000000000000117600080516020611e388339815191525538610613565b63f92ee8a960e01b8652600486fd5b905015386105e9565b303b1591506105e1565b8691506105d7565b50346101aa57806003193601126101aa5760408051916107d382846113c3565b60058352640352e302e360dc1b6020840152815192839160208352815191826020850152815b838110610816575050828201840152601f01601f19168101030190f35b6020828201810151888301880152879550016107f9565b50346101aa57366003190160a081126101a6576020136101aa5761084f61136d565b610857611399565b906064359160843567ffffffffffffffff811161043e5761087c903690600401611417565b9091610886611b7e565b61088e6115cd565b610896611bba565b6001600160a01b03168086526001602052604086205490949060ff16156109c95785546108ce9082906001600160a01b031687611be4565b85546001600160a01b0316938690853b156101a657604051633ddf4d7d60e11b815290829082906001600160a01b03610905611383565b166004830152602482018a90526001600160a01b0316604482018190526064820186905260a060848301529781838161094260a482018b8d611466565b03925af180156109be576109a9575b50506109917f6478cbb6e28c0823c691dfd74c01c985634faddd4c401b990fe4ec26277ea8d5936040519384938452604060208501526040840191611466565b0390a36001600080516020611df88339815191525580f35b816109b3916113c3565b61043a578538610951565b6040513d84823e3d90fd5b630b094f2760e31b8652600486fd5b50346101aa57806003193601126101aa57602090604051908152f35b50346101aa5760203660031901126101aa57610a0e611383565b610a1661161b565b6001600160a01b03168015610a6357808252600160205260408220600160ff198254161790557faab7954e9d246b167ef88aeddad35209ca2489d95a8aeb59e288d9b19fae5a548280a280f35b63d92e233d60e01b8252600482fd5b50346101aa5760203660031901126101aa57610a8c611383565b610a9461161b565b6001600160a01b03168015610a6357808252600160205260408220805460ff191690557f51085ddf9ebdded84b76e829eb58c4078e4b5bdf97d9a94723f336039da467918280a280f35b50346101aa5760a03660031901126101aa57610af8611383565b610b0061136d565b9060443560643567ffffffffffffffff811161043e57610b24903690600401611417565b9190936084359067ffffffffffffffff8211610cb057608082600401926003199036030112610cb057610b55611b7e565b610b5d6115cd565b610b65611bba565b6001600160a01b03168087526001602052604087205490959060ff161561041c578654610b9d9084906001600160a01b031688611be4565b86546001600160a01b031694853b15610cac5787604051809263aa0c0fc160e01b825289600483015260018060a01b03169788602483015286604483015260a06064830152818381610c08610bf660a483018d8b611466565b8281036003190160848401528a611487565b03925af180156103db57610c6a575b507f7b53ec10a80164e60591c43d9c222e9354886981b880a3fba19c9ceb77fb9721939291610c5c610991926040519586958652606060208701526060860191611466565b908382036040850152611487565b91610c5c88610ca0610991949a7f7b53ec10a80164e60591c43d9c222e9354886981b880a3fba19c9ceb77fb97219897966113c3565b98925050919293610c17565b8780fd5b8680fd5b50346101aa5760203660031901126101aa57610cce611383565b610cd661157a565b6001600160a01b038116908115610d7157600254610d219190610d01906001600160a01b03166119b2565b50600254610d17906001600160a01b0316611a48565b506106c3816116b3565b50600254604080516001600160a01b0383168152602081018490527f4d3470c839d3c4dd664eec934b920c12fe0966e3185103dd40149496815df2b69190a16001600160a01b0319161760025580f35b63d92e233d60e01b8352600483fd5b50346101aa5760403660031901126101aa5760ff6040602092610da161136d565b6004358252600080516020611d9883398151915285528282206001600160a01b03909116825284522054604051911615158152f35b50346101aa57806003193601126101aa576020604051600080516020611d788339815191528152f35b50346101aa57806003193601126101aa57610e18611508565b610e20611bba565b600160ff19600080516020611dd8833981519152541617600080516020611dd8833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101aa57806003193601126101aa57602060ff600080516020611dd883398151915254166040519015158152f35b50346101aa57806003193601126101aa576002546040516001600160a01b039091168152602090f35b50346101aa57806003193601126101aa576020604051600080516020611d588339815191528152f35b50346101aa57806003193601126101aa577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610f4f576020604051600080516020611d388339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101aa57610f73611383565b6024359067ffffffffffffffff82116111a757366023830112156111a75781600401359083610fa1836113fb565b93610faf60405195866113c3565b838552602085019336602482840101116111a757806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611184575b506111755761101261157a565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181611141575b5061105557634c9c8ce360e01b86526004859052602486fd5b9384600080516020611d3883398151915287960361112f5750823b1561111d57600080516020611d3883398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a28051156111025761057b9382915190845af43d156110fa573d916110de836113fb565b926110ec60405194856113c3565b83523d85602085013e611cb6565b606091611cb6565b505050503461110e5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d60201161116d575b8161115d602093836113c3565b81010312610cb05751903861103c565b3d9150611150565b63703e46dd60e11b8452600484fd5b600080516020611d38833981519152546001600160a01b03161415905038611005565b8280fd5b50346101aa57806003193601126101aa576111c4611508565b600080516020611dd88339815191525460ff81161561121e5760ff1916600080516020611dd8833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346101aa5760403660031901126101aa5761124761136d565b336001600160a01b038216036112635761057b90600435611ade565b63334bd91960e11b8252600482fd5b50346101aa5760403660031901126101aa5761057b60043561129261136d565b9061129f61057182611445565b61191b565b50346101aa57806003193601126101aa57602060ff60025460a01c166040519015158152f35b50346101aa5760203660031901126101aa5760206112e9600435611445565b604051908152f35b50346101aa57806003193601126101aa57546040516001600160a01b039091168152602090f35b9050346101a65760203660031901126101a65760043563ffffffff60e01b81168091036111a75760209250637965db0b60e01b811490811561135c575b5015158152f35b6301ffc9a760e01b14905038611355565b602435906001600160a01b03821682036103ce57565b600435906001600160a01b03821682036103ce57565b604435906001600160a01b03821682036103ce57565b35906001600160a01b03821682036103ce57565b90601f8019910116810190811067ffffffffffffffff8211176113e557604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116113e557601f01601f191660200190565b9181601f840112156103ce5782359167ffffffffffffffff83116103ce57602083818601950101116103ce57565b600052600080516020611d9883398151915260205260016040600020015490565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160a01b03611498826113af565b1682526001600160a01b036114af602083016113af565b166020830152604081013560408301526060810135601e19823603018112156103ce57016020813591019067ffffffffffffffff81116103ce5780360382136103ce576080838160606115059601520191611466565b90565b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561154157565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16156115b357565b63e2517d3f60e01b60005233600452600060245260446000fd5b336000908152600080516020611e18833981519152602052604090205460ff16156115f457565b63e2517d3f60e01b60005233600452600080516020611d7883398151915260245260446000fd5b336000908152600080516020611db8833981519152602052604090205460ff161561164257565b63e2517d3f60e01b60005233600452600080516020611d5883398151915260245260446000fd5b6000818152600080516020611d988339815191526020908152604080832033845290915290205460ff161561169b5750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b0381166000908152600080516020611e18833981519152602052604090205460ff16611739576001600160a01b03166000818152600080516020611e1883398151915260205260408120805460ff19166001179055339190600080516020611d7883398151915290600080516020611d188339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020611db8833981519152602052604090205460ff16611739576001600160a01b03166000818152600080516020611db883398151915260205260408120805460ff19166001179055339190600080516020611d5883398151915290600080516020611d188339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16611739576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff19166001179055339190600080516020611d188339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff16611739576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a90600080516020611d188339815191529080a4600190565b6000818152600080516020611d98833981519152602090815260408083206001600160a01b038616845290915290205460ff166119ab576000818152600080516020611d98833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff1916600117905533929190600080516020611d188339815191529080a4600190565b5050600090565b6001600160a01b0381166000908152600080516020611e18833981519152602052604090205460ff1615611739576001600160a01b03166000818152600080516020611e1883398151915260205260408120805460ff19169055339190600080516020611d78833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381166000908152600080516020611db8833981519152602052604090205460ff1615611739576001600160a01b03166000818152600080516020611db883398151915260205260408120805460ff19169055339190600080516020611d58833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020611d98833981519152602090815260408083206001600160a01b038616845290915290205460ff16156119ab576000818152600080516020611d98833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6002600080516020611df88339815191525414611ba9576002600080516020611df883398151915255565b633ee5aeb560e01b60005260046000fd5b60ff600080516020611dd88339815191525416611bd357565b63d93c066560e01b60005260046000fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152611c1f916102e96064836113c3565b565b906000602091828151910182855af115611c7c576000513d611c7357506001600160a01b0381163b155b611c525750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b60011415611c4b565b6040513d6000823e3d90fd5b60ff600080516020611e388339815191525460401c1615611ca557565b631afcd79f60e31b60005260046000fd5b90611cdc5750805115611ccb57805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611d0e575b611ced575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15611ce556fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8619cecd8b9e095ab43867f5b69d492180450fe862e6b50bfbfb24b75dd84c8a10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009e55e7b9c223644eee376bcbcf651816b24106427c658526e048949da61b2c08cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00395f4e35a18c2b5e556b3b2ff855307e76c0b3cc1ca71e19a70e83037e08e7b3f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212206353f97c2bca70990562e73c05a556d800ce6f131c5458a0f2aa0fe6f1af58ff64736f6c634300081a0033"; + +type ERC20CustodyConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: ERC20CustodyConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class ERC20Custody__factory extends ContractFactory { + constructor(...args: ERC20CustodyConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + ERC20Custody & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): ERC20Custody__factory { + return super.connect(runner) as ERC20Custody__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): ERC20CustodyInterface { + return new Interface(_abi) as ERC20CustodyInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): ERC20Custody { + return new Contract(address, _abi, runner) as unknown as ERC20Custody; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/GatewayEVM__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/GatewayEVM__factory.ts new file mode 100644 index 00000000..3d552cf9 --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/GatewayEVM__factory.ts @@ -0,0 +1,1533 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../../../common"; +import type { + GatewayEVM, + GatewayEVMInterface, +} from "../../../../../@zetachain/protocol-contracts/contracts/evm/GatewayEVM"; + +const _abi = [ + { + inputs: [], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [], + name: "AccessControlBadConfirmation", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "bytes32", + name: "neededRole", + type: "bytes32", + }, + ], + name: "AccessControlUnauthorizedAccount", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + ], + name: "AddressEmptyCode", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "ApprovalFailed", + type: "error", + }, + { + inputs: [], + name: "CallOnRevertNotSupported", + type: "error", + }, + { + inputs: [], + name: "ConnectorInitialized", + type: "error", + }, + { + inputs: [], + name: "CustodyInitialized", + type: "error", + }, + { + inputs: [], + name: "DepositFailed", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "implementation", + type: "address", + }, + ], + name: "ERC1967InvalidImplementation", + type: "error", + }, + { + inputs: [], + name: "ERC1967NonPayable", + type: "error", + }, + { + inputs: [], + name: "EnforcedPause", + type: "error", + }, + { + inputs: [], + name: "ExecutionFailed", + type: "error", + }, + { + inputs: [], + name: "ExpectedPause", + type: "error", + }, + { + inputs: [], + name: "FailedCall", + type: "error", + }, + { + inputs: [], + name: "InsufficientERC20Amount", + type: "error", + }, + { + inputs: [], + name: "InsufficientETHAmount", + type: "error", + }, + { + inputs: [], + name: "InvalidInitialization", + type: "error", + }, + { + inputs: [], + name: "NotAllowedToCallOnCall", + type: "error", + }, + { + inputs: [], + name: "NotAllowedToCallOnRevert", + type: "error", + }, + { + inputs: [], + name: "NotInitializing", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "NotWhitelistedInCustody", + type: "error", + }, + { + inputs: [ + { + internalType: "uint256", + name: "provided", + type: "uint256", + }, + { + internalType: "uint256", + name: "maximum", + type: "uint256", + }, + ], + name: "PayloadSizeExceeded", + type: "error", + }, + { + inputs: [], + name: "ReentrancyGuardReentrantCall", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "SafeERC20FailedOperation", + type: "error", + }, + { + inputs: [], + name: "UUPSUnauthorizedCallContext", + type: "error", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "slot", + type: "bytes32", + }, + ], + name: "UUPSUnsupportedProxiableUUID", + type: "error", + }, + { + inputs: [], + name: "ZETANotSupported", + type: "error", + }, + { + inputs: [], + name: "ZeroAddress", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "receiver", + type: "address", + }, + { + indexed: false, + internalType: "bytes", + name: "payload", + type: "bytes", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + indexed: false, + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "Called", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "receiver", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + indexed: false, + internalType: "address", + name: "asset", + type: "address", + }, + { + indexed: false, + internalType: "bytes", + name: "payload", + type: "bytes", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + indexed: false, + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "Deposited", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "receiver", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + indexed: false, + internalType: "address", + name: "asset", + type: "address", + }, + { + indexed: false, + internalType: "bytes", + name: "payload", + type: "bytes", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + indexed: false, + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "DepositedAndCalled", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "destination", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "Executed", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "token", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "ExecutedWithERC20", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint64", + name: "version", + type: "uint64", + }, + ], + name: "Initialized", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "Paused", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "token", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + components: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + ], + indexed: false, + internalType: "struct RevertContext", + name: "revertContext", + type: "tuple", + }, + ], + name: "Reverted", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + indexed: true, + internalType: "bytes32", + name: "previousAdminRole", + type: "bytes32", + }, + { + indexed: true, + internalType: "bytes32", + name: "newAdminRole", + type: "bytes32", + }, + ], + name: "RoleAdminChanged", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + indexed: true, + internalType: "address", + name: "account", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "RoleGranted", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + indexed: true, + internalType: "address", + name: "account", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "RoleRevoked", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "Unpaused", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "oldTSSAddress", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "newTSSAddress", + type: "address", + }, + ], + name: "UpdatedGatewayTSSAddress", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "implementation", + type: "address", + }, + ], + name: "Upgraded", + type: "event", + }, + { + inputs: [], + name: "ASSET_HANDLER_ROLE", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "DEFAULT_ADMIN_ROLE", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "MAX_PAYLOAD_SIZE", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "PAUSER_ROLE", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "TSS_ROLE", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "UPGRADE_INTERFACE_VERSION", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "receiver", + type: "address", + }, + { + internalType: "bytes", + name: "payload", + type: "bytes", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "call", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "custody", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "receiver", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "deposit", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "receiver", + type: "address", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "deposit", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "receiver", + type: "address", + }, + { + internalType: "bytes", + name: "payload", + type: "bytes", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "depositAndCall", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "receiver", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "bytes", + name: "payload", + type: "bytes", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "depositAndCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + ], + internalType: "struct MessageContext", + name: "messageContext", + type: "tuple", + }, + { + internalType: "address", + name: "destination", + type: "address", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "execute", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "destination", + type: "address", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + components: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + ], + internalType: "struct RevertContext", + name: "revertContext", + type: "tuple", + }, + ], + name: "executeRevert", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + ], + internalType: "struct MessageContext", + name: "messageContext", + type: "tuple", + }, + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "executeWithERC20", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + ], + name: "getRoleAdmin", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "grantRole", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "hasRole", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tssAddress_", + type: "address", + }, + { + internalType: "address", + name: "zetaToken_", + type: "address", + }, + { + internalType: "address", + name: "admin_", + type: "address", + }, + ], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "pause", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "paused", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "proxiableUUID", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "callerConfirmation", + type: "address", + }, + ], + name: "renounceRole", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + components: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + ], + internalType: "struct RevertContext", + name: "revertContext", + type: "tuple", + }, + ], + name: "revertWithERC20", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "revokeRole", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "zetaConnector_", + type: "address", + }, + ], + name: "setConnector", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "custody_", + type: "address", + }, + ], + name: "setCustody", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes4", + name: "interfaceId", + type: "bytes4", + }, + ], + name: "supportsInterface", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "tssAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "unpause", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newTSSAddress", + type: "address", + }, + ], + name: "updateTSSAddress", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newImplementation", + type: "address", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "upgradeToAndCall", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "zetaConnector", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "zetaToken", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +const _bytecode = + "0x60a080604052346100ea57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b6040516128fe90816100f0823960805181818161120b01526112db0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880610054565b63f92ee8a960e01b60005260046000fd5b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a7146119015750806310188aef1461188f578063102614b01461179f5780631becceb4146116c457806321e093b11461169b578063248a9ca3146116745780632f2ff15d1461164257806336568abe146115fd57806338e22527146115035780633f4ba83a146114815780634f1ef2861461126057806352d1902d146111f857806357bec62f146111cf5780635b112591146111a65780635c975abb146111765780635d62c8601461113b578063726ac97c1461100c578063744b9b8b14610f295780637bbe9afa14610b1c5780638456cb5914610aa757806391d1485414610a4e578063950837aa146109ab578063a217fddf1461098f578063a2ba193414610972578063a783c78914610949578063aa0c0fc1146107f8578063ad3cb1cc146107ab578063ae7a3a6f1461072f578063c0c53b8b14610519578063cb7ba8e5146103a9578063d09e3b7814610236578063d547741f146101fb578063dda79b75146101d45763e63ab1e91461019757600080fd5b346101d157806003193601126101d15760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b80fd5b50346101d157806003193601126101d157546040516001600160a01b039091168152602090f35b50346101d15760403660031901126101d15761023260043561021b611987565b9061022d61022882611bf9565b611ea1565b6123d1565b5080f35b50346101d15760a03660031901126101d157610250611956565b60243561025b611971565b916064356001600160401b0381116103a55761027b9036906004016119b1565b608435946001600160401b0386116103a157856004019360a0600319883603011261039d576102a8612220565b851561038e576001600160a01b031695861561037f576064016104006102d96102d18388611ae2565b905085611bd6565b116103515750610347927fa795d4377323e4c2d4c346b8050a7dd504c4043be8884c81b8d9690706c8388f94928261031588610339953361224a565b60405197885260018060a01b03166020880152608060408801526080870191611b45565b908482036060860152611b66565b918033930390a380f35b8761036a8461036260449489611ae2565b919050611bd6565b634fe7bc4760e11b8252600452610400602452fd5b63d92e233d60e01b8852600488fd5b63951e19ed60e01b8852600488fd5b8780fd5b8680fd5b8480fd5b5060603660031901126101d1576103be611956565b906024356001600160401b038111610515576103de9036906004016119b1565b604493919335906001600160401b038211610511576080826004019260031990360301126105115761040e612471565b610416611d6f565b61041e612220565b6001600160a01b03831692831561050257848080809334905af1610440611c4a565b50156104f3578394833b156103a557604051636481451b60e11b8152602060048201528581806104736024820188611c92565b038183895af19081156104e85786916104d3575b50506104bb7fde7603a6ed5d07c9f43597ccfe9043d15b66d3284f0de321f5cdf56329e6e035936040519384933485611cf0565b0390a360016000805160206128698339815191525580f35b816104dd91611a90565b6103a5578438610487565b6040513d88823e3d90fd5b632b3f6d1160e21b8452600484fd5b63d92e233d60e01b8552600485fd5b8380fd5b5080fd5b50346101d15760603660031901126101d157610533611956565b61053b611987565b610543611971565b916000805160206128a9833981519152549260ff8460401c1615936001600160401b03811680159081610727575b600114908161071d575b159081610714575b506107055767ffffffffffffffff1981166001176000805160206128a983398151915255846106d8575b506001600160a01b03821690811580156106c7575b6106b8579061061861063b93926105d7612719565b6105df612719565b6105e7612719565b600160008051602061286983398151915255610601612719565b610609612719565b61061281612033565b506120cd565b50610622826120cd565b506001600160601b0360a01b6001541617600155611fad565b5060018060a01b03166001600160601b0360a01b600354161760035561065e5780f35b68ff0000000000000000196000805160206128a983398151915254166000805160206128a9833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b63d92e233d60e01b8652600486fd5b506001600160a01b038416156105c2565b68ffffffffffffffffff191668010000000000000001176000805160206128a983398151915255386105ad565b63f92ee8a960e01b8652600486fd5b90501538610583565b303b15915061057b565b869150610571565b50346101d15760203660031901126101d157610749611956565b610751611d1c565b6001600160a01b03811690811561079c5782546001600160a01b031661078d5761077a90611eeb565b5081546001600160a01b03191617815580f35b631666fe6f60e31b8352600483fd5b63d92e233d60e01b8352600483fd5b50346101d157806003193601126101d157506107f46040516107ce604082611a90565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611a6b565b0390f35b50346101d15760a03660031901126101d157610812611956565b61081a611987565b906044356064356001600160401b0381116103a55761083d9036906004016119b1565b91608435926001600160401b0384116103a1576080846004019460031990360301126103a15761086b612471565b610873611e2f565b61087b612220565b811561093a576001600160a01b03861694851561037f576001600160a01b0316956108a890839088612682565b843b156103a157604051636481451b60e11b81526020600482015287908181806108d5602482018a611c92565b0381838b5af1801561092f5761091a575b50507fde7603a6ed5d07c9f43597ccfe9043d15b66d3284f0de321f5cdf56329e6e035936104bb9160405194859485611cf0565b8161092491611a90565b6103a15786386108e6565b6040513d84823e3d90fd5b63951e19ed60e01b8752600487fd5b50346101d157806003193601126101d15760206040516000805160206127a98339815191528152f35b50346101d157806003193601126101d15760206040516104008152f35b50346101d157806003193601126101d157602090604051908152f35b50346101d15760203660031901126101d1576109c5611956565b6109cd611d1c565b6001600160a01b03811690811561079c576001546109fe91906109f8906001600160a01b031661233b565b50611fad565b50600154604080516001600160a01b0383168152602081018490527f3a7b8d6372645f474fe60c115a2ef21421306a3ed4664fa0023c461413c085799190a16001600160a01b0319161760015580f35b50346101d15760403660031901126101d1576040610a6a611987565b916004358152600080516020612829833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346101d157806003193601126101d157610ac0611dbd565b610ac8612220565b600160ff19600080516020612849833981519152541617600080516020612849833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101d157366003190160a08112610515576020136101d157610b3e611987565b610b46611971565b906064356084356001600160401b0381116103a557610b699036906004016119b1565b610b74929192612471565b610b7c611e2f565b610b84612220565b8115610f1a576001600160a01b038516948515610f0b57610ba58186612622565b15610eea5760405163095ea7b360e01b81526001600160a01b03828116600483015260248201859052861695906020816044818c8b5af1908115610e55578991610ecb575b5015610eb457610c1b91906001600160a01b03610c05611c1a565b16610ea957610c1584878461258a565b50612622565b15610e92576040516370a0823160e01b8152306004820152602081602481885afa908115610d52578791610e60575b5080610c73575b50906104bb600080516020612809833981519152939260405193849384611c30565b6003546001600160a01b03168503610dbe5760025460405163095ea7b360e01b81526001600160a01b039091166004820152602481018290526020816044818b8a5af1908115610db3578891610d84575b5015610d61576002548791906001600160a01b0316803b15610d5d5760248392604051948593849263743e0c9b60e01b845260048401525af18015610d5257610d28575b50906104bb60008051602061280983398151915293925b91929350610c51565b86610d48600080516020612809833981519152959493986104bb93611a90565b9691929350610d08565b6040513d89823e3d90fd5b8280fd5b60025463482b72c160e11b885260048690526001600160a01b0316602452604487fd5b610da6915060203d602011610dac575b610d9e8183611a90565b810190611c7a565b38610cc4565b503d610d94565b6040513d8a823e3d90fd5b8654604051636c9b2a3f60e11b8152600481018790526001600160a01b0390911690602081602481855afa908115610e55578991610e36575b5015610e225791610e1d6104bb9260008051602061280983398151915296959488612682565b610d1f565b631387a34960e01b88526004869052602488fd5b610e4f915060203d602011610dac57610d9e8183611a90565b38610df7565b6040513d8b823e3d90fd5b90506020813d602011610e8a575b81610e7b60209383611a90565b810103126103a1575138610c4a565b3d9150610e6e565b604486868663482b72c160e11b8352600452602452fd5b610c158487846124ad565b604488888863482b72c160e11b8352600452602452fd5b610ee4915060203d602011610dac57610d9e8183611a90565b38610bea565b63482b72c160e11b87526001600160a01b0385166004526024869052604487fd5b63d92e233d60e01b8752600487fd5b63951e19ed60e01b8652600486fd5b50610f33366119de565b909192610f3e612220565b3415610ffd576001600160a01b03169283156105025760608201610400610f70610f688386611ae2565b905086611bd6565b11610fec5750848080803460018060a01b03600154165af1610f90611c4a565b5015610fdd577fa795d4377323e4c2d4c346b8050a7dd504c4043be8884c81b8d9690706c8388f916103396103479260405195348752886020880152608060408801526080870191611b45565b6379cacff160e01b8552600485fd5b8561036a8561036260449487611ae2565b633b38932f60e11b8552600485fd5b5060403660031901126101d157611021611956565b602435906001600160401b038211610d5d57816004019060a060031984360301126105115761104e612220565b341561112c576001600160a01b031691821561111d576064016104006110748284611ae2565b9050116110fa5750828080803460018060a01b03600154165af1611096611c4a565b50156110eb577fc6f891b65320c682b217616a62b51f218fee95d5f0ba83e758ef9ab4ee8e975c610347604051923484528560208501526080604085015285608085015260a0606085015260a0840190611b66565b6379cacff160e01b8352600483fd5b6111078491604493611ae2565b634fe7bc4760e11b835260045250610400602452fd5b63d92e233d60e01b8452600484fd5b633b38932f60e11b8452600484fd5b50346101d157806003193601126101d15760206040517f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b98152f35b50346101d157806003193601126101d157602060ff60008051602061284983398151915254166040519015158152f35b50346101d157806003193601126101d1576001546040516001600160a01b039091168152602090f35b50346101d157806003193601126101d1576002546040516001600160a01b039091168152602090f35b50346101d157806003193601126101d1577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036112515760206040516000805160206127e98339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101d157611275611956565b602435906001600160401b038211610d5d5736602383011215610d5d57816004013590836112a283611ac7565b936112b06040519586611a90565b83855260208501933660248284010111610d5d57806024602093018637850101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630811490811561145e575b5061144f57611313611d1c565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa86918161141b575b5061135657634c9c8ce360e01b86526004859052602486fd5b93846000805160206127e98339815191528796036114095750823b156113f7576000805160206127e983398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a28051156113dc576102329382915190845af46113d6611c4a565b91612747565b50505050346113e85780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011611447575b8161143760209383611a90565b810103126103a15751903861133d565b3d915061142a565b63703e46dd60e11b8452600484fd5b6000805160206127e9833981519152546001600160a01b03161415905038611306565b50346101d157806003193601126101d15761149a611dbd565b6000805160206128498339815191525460ff8116156114f45760ff1916600080516020612849833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50366003190160608112610515576020136101d157611520611987565b6044356001600160401b038111610d5d5761153f9036906004016119b1565b61154a929192612471565b611552611d6f565b61155a612220565b6001600160a01b038216918215610502576107f494507fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f919081856001600160a01b036115a5611c1a565b166115ee576115b39261258a565b935b6115c56040519283923484611c30565b0390a2600160008051602061286983398151915255604051918291602083526020830190611a6b565b6115f7926124ad565b936115b5565b50346101d15760403660031901126101d157611617611987565b336001600160a01b0382160361163357610232906004356123d1565b63334bd91960e11b8252600482fd5b50346101d15760403660031901126101d157610232600435611662611987565b9061166f61022882611bf9565b612189565b50346101d15760203660031901126101d1576020611693600435611bf9565b604051908152f35b50346101d157806003193601126101d1576003546040516001600160a01b039091168152602090f35b50346101d1576116d3366119de565b9190926116de612220565b6020830135801515810361179b5761178c576001600160a01b0316928315610502576117186117106060850185611ae2565b905082611bd6565b61040081116117745750907fd34634f30f94a646fdf4ce7078f38fc5fa0d3f0b193658facea4e3e43330d9749161176e61175f604051938493604085526040850191611b45565b82810360208401523395611b66565b0390a380f35b634fe7bc4760e11b8652600452610400602452604485fd5b630cda5ff960e11b8552600485fd5b8580fd5b50346101d15760803660031901126101d1576117b9611956565b6024356117c4611971565b91606435926001600160401b0384116103a557836004019160a0600319863603011261179b576117f2612220565b8315610f1a576001600160a01b03169384156106b8576064016104006118188285611ae2565b90501161188257507fc6f891b65320c682b217616a62b51f218fee95d5f0ba83e758ef9ab4ee8e975c918161185185610347943361224a565b60405194855260018060a01b031660208501526080604085015285608085015260a0606085015260a0840190611b66565b8561110760449285611ae2565b50346101d15760203660031901126101d1576118a9611956565b6118b1611d1c565b6001600160a01b03811690811561079c576002546001600160a01b03166118f2576118db90611eeb565b506001600160601b0360a01b600254161760025580f35b630646e00b60e11b8352600483fd5b9050346105155760203660031901126105155760043563ffffffff60e01b8116809103610d5d5760209250637965db0b60e01b8114908115611945575b5015158152f35b6301ffc9a760e01b1490503861193e565b600435906001600160a01b038216820361196c57565b600080fd5b604435906001600160a01b038216820361196c57565b602435906001600160a01b038216820361196c57565b35906001600160a01b038216820361196c57565b9181601f8401121561196c578235916001600160401b03831161196c576020838186019501011161196c57565b90606060031983011261196c576004356001600160a01b038116810361196c57916024356001600160401b03811161196c5781611a1d916004016119b1565b92909291604435906001600160401b03821161196c5760a090829003600319011261196c5760040190565b60005b838110611a5b5750506000910152565b8181015183820152602001611a4b565b90602091611a8481518092818552858086019101611a48565b601f01601f1916010190565b90601f801991011681019081106001600160401b03821117611ab157604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b038111611ab157601f01601f191660200190565b903590601e198136030182121561196c57018035906001600160401b03821161196c5760200191813603831361196c57565b9035601e198236030181121561196c5701602081359101916001600160401b03821161196c57813603831361196c57565b908060209392818452848401376000828201840152601f01601f1916010190565b906001600160a01b03611b788361199d565b168152602082013580151580910361196c5760208201526001600160a01b03611ba36040840161199d565b166040820152608080611bcd611bbc6060860186611b14565b60a0606087015260a0860191611b45565b93013591015290565b91908201809211611be357565b634e487b7160e01b600052601160045260246000fd5b60005260008051602061282983398151915260205260016040600020015490565b6004356001600160a01b038116810361196c5790565b604090611c47949281528160208201520191611b45565b90565b3d15611c75573d90611c5b82611ac7565b91611c696040519384611a90565b82523d6000602084013e565b606090565b9081602091031261196c5751801515810361196c5790565b611c479190608090611ce0906001600160a01b03611caf8261199d565b1684526001600160a01b03611cc66020830161199d565b166020850152604081013560408501526060810190611b14565b9190928160608201520191611b45565b9291611c479492611d0e928552606060208601526060850191611b45565b916040818403910152611c92565b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1615611d5557565b63e2517d3f60e01b60005233600452600060245260446000fd5b336000908152600080516020612889833981519152602052604090205460ff1615611d9657565b63e2517d3f60e01b600052336004526000805160206127a983398151915260245260446000fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1615611df657565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527f8e1abba0e730025cbab32adfc4f51c1ad3a74360c4b2cfb4780a6c5f316e0509602052604090205460ff1615611e6857565b63e2517d3f60e01b600052336004527f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b960245260446000fd5b60008181526000805160206128298339815191526020908152604080832033845290915290205460ff1615611ed35750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b03811660009081527f8e1abba0e730025cbab32adfc4f51c1ad3a74360c4b2cfb4780a6c5f316e0509602052604090205460ff16611fa7576001600160a01b031660008181527f8e1abba0e730025cbab32adfc4f51c1ad3a74360c4b2cfb4780a6c5f316e050960205260408120805460ff191660011790553391907f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b9906000805160206127c98339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020612889833981519152602052604090205460ff16611fa7576001600160a01b0316600081815260008051602061288983398151915260205260408120805460ff191660011790553391906000805160206127a9833981519152906000805160206127c98339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16611fa7576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391906000805160206127c98339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff16611fa7576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a906000805160206127c98339815191529080a4600190565b6000818152600080516020612829833981519152602090815260408083206001600160a01b038616845290915290205460ff16612219576000818152600080516020612829833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291906000805160206127c98339815191529080a4600190565b5050600090565b60ff600080516020612849833981519152541661223957565b63d93c066560e01b60005260046000fd5b60035492939290916001600160a01b03908116911681036122765763e4dd681d60e01b60005260046000fd5b600054604051636c9b2a3f60e11b8152600481018390526001600160a01b039091169490602081602481895afa90811561232f57600091612310575b50156122fb576122f99394604051936323b872dd60e01b602086015260018060a01b0316602485015260448401526064830152606482526122f4608483611a90565b6126be565b565b50631387a34960e01b60005260045260246000fd5b612329915060203d602011610dac57610d9e8183611a90565b386122b2565b6040513d6000823e3d90fd5b6001600160a01b0381166000908152600080516020612889833981519152602052604090205460ff1615611fa7576001600160a01b0316600081815260008051602061288983398151915260205260408120805460ff191690553391906000805160206127a9833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020612829833981519152602090815260408083206001600160a01b038616845290915290205460ff1615612219576000818152600080516020612829833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6002600080516020612869833981519152541461249c57600260008051602061286983398151915255565b633ee5aeb560e01b60005260046000fd5b6040516319db301560e21b815292916004356001600160a01b03811692919083900361196c57846124f581949260009683946004850152604060248501526044840191611b45565b039134906001600160a01b03165af190811561232f57600091612516575090565b903d8082843e6125268184611a90565b820191602081840312610515578051906001600160401b038211610d5d570182601f820112156105155780519161255c83611ac7565b9361256a6040519586611a90565b838552602084840101116101d1575090611c479160208085019101611a48565b9060048310156125d2575b908260009392849360405192839283378101848152039134905af16125b8611c4a565b90156125c15790565b632b3f6d1160e21b60005260046000fd5b9081356001600160e01b0319166319db301560e21b811461261157636481451b60e11b146126005790612595565b6379a2cd4b60e11b60005260046000fd5b63ed69977560e01b60005260046000fd5b60405163095ea7b360e01b81526001600160a01b039283166004820152600060248201819052909260209284926044928492165af190811561232f57600091612669575090565b611c47915060203d602011610dac57610d9e8183611a90565b60405163a9059cbb60e01b60208201526001600160a01b039290921660248301526044808301939093529181526122f9916122f4606483611a90565b906000602091828151910182855af11561232f576000513d61271057506001600160a01b0381163b155b6126ef5750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b600114156126e8565b60ff6000805160206128a98339815191525460401c161561273657565b631afcd79f60e31b60005260046000fd5b9061276d575080511561275c57805190602001fd5b63d6bda27560e01b60005260046000fd5b8151158061279f575b61277e575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b1561277656fe0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b738202dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f007bdc20c26beb8eedd348733c28a5c4c2f7f7f1183cba8898195258fcdca273bcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220e3ceedd3e1180302ea91f43717e98df4951453d3ade1c5982edc0e113031242064736f6c634300081a0033"; + +type GatewayEVMConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: GatewayEVMConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class GatewayEVM__factory extends ContractFactory { + constructor(...args: GatewayEVMConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + GatewayEVM & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): GatewayEVM__factory { + return super.connect(runner) as GatewayEVM__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): GatewayEVMInterface { + return new Interface(_abi) as GatewayEVMInterface; + } + static connect(address: string, runner?: ContractRunner | null): GatewayEVM { + return new Contract(address, _abi, runner) as unknown as GatewayEVM; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorBase__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorBase__factory.ts new file mode 100644 index 00000000..0e8110af --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorBase__factory.ts @@ -0,0 +1,817 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + ZetaConnectorBase, + ZetaConnectorBaseInterface, +} from "../../../../../@zetachain/protocol-contracts/contracts/evm/ZetaConnectorBase"; + +const _abi = [ + { + inputs: [], + name: "AccessControlBadConfirmation", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "bytes32", + name: "neededRole", + type: "bytes32", + }, + ], + name: "AccessControlUnauthorizedAccount", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + ], + name: "AddressEmptyCode", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "implementation", + type: "address", + }, + ], + name: "ERC1967InvalidImplementation", + type: "error", + }, + { + inputs: [], + name: "ERC1967NonPayable", + type: "error", + }, + { + inputs: [], + name: "EnforcedPause", + type: "error", + }, + { + inputs: [], + name: "ExpectedPause", + type: "error", + }, + { + inputs: [], + name: "FailedCall", + type: "error", + }, + { + inputs: [], + name: "InvalidInitialization", + type: "error", + }, + { + inputs: [], + name: "NotInitializing", + type: "error", + }, + { + inputs: [], + name: "ReentrancyGuardReentrantCall", + type: "error", + }, + { + inputs: [], + name: "UUPSUnauthorizedCallContext", + type: "error", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "slot", + type: "bytes32", + }, + ], + name: "UUPSUnsupportedProxiableUUID", + type: "error", + }, + { + inputs: [], + name: "ZeroAddress", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint64", + name: "version", + type: "uint64", + }, + ], + name: "Initialized", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "Paused", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + indexed: true, + internalType: "bytes32", + name: "previousAdminRole", + type: "bytes32", + }, + { + indexed: true, + internalType: "bytes32", + name: "newAdminRole", + type: "bytes32", + }, + ], + name: "RoleAdminChanged", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + indexed: true, + internalType: "address", + name: "account", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "RoleGranted", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + indexed: true, + internalType: "address", + name: "account", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "RoleRevoked", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "Unpaused", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "oldTSSAddress", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "newTSSAddress", + type: "address", + }, + ], + name: "UpdatedZetaConnectorTSSAddress", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "implementation", + type: "address", + }, + ], + name: "Upgraded", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "Withdrawn", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "WithdrawnAndCalled", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + components: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + ], + indexed: false, + internalType: "struct RevertContext", + name: "revertContext", + type: "tuple", + }, + ], + name: "WithdrawnAndReverted", + type: "event", + }, + { + inputs: [], + name: "DEFAULT_ADMIN_ROLE", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "PAUSER_ROLE", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "TSS_ROLE", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "UPGRADE_INTERFACE_VERSION", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "WITHDRAWER_ROLE", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "gateway", + outputs: [ + { + internalType: "contract IGatewayEVM", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + ], + name: "getRoleAdmin", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "grantRole", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "hasRole", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "gateway_", + type: "address", + }, + { + internalType: "address", + name: "zetaToken_", + type: "address", + }, + { + internalType: "address", + name: "tssAddress_", + type: "address", + }, + { + internalType: "address", + name: "admin_", + type: "address", + }, + ], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "pause", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "paused", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "proxiableUUID", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "receiveTokens", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "callerConfirmation", + type: "address", + }, + ], + name: "renounceRole", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "revokeRole", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes4", + name: "interfaceId", + type: "bytes4", + }, + ], + name: "supportsInterface", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "tssAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "unpause", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newTSSAddress", + type: "address", + }, + ], + name: "updateTSSAddress", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newImplementation", + type: "address", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "upgradeToAndCall", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes32", + name: "internalSendHash", + type: "bytes32", + }, + ], + name: "withdraw", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + ], + internalType: "struct MessageContext", + name: "messageContext", + type: "tuple", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "bytes32", + name: "internalSendHash", + type: "bytes32", + }, + ], + name: "withdrawAndCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "bytes32", + name: "internalSendHash", + type: "bytes32", + }, + { + components: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + ], + internalType: "struct RevertContext", + name: "revertContext", + type: "tuple", + }, + ], + name: "withdrawAndRevert", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "zetaToken", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +export class ZetaConnectorBase__factory { + static readonly abi = _abi; + static createInterface(): ZetaConnectorBaseInterface { + return new Interface(_abi) as ZetaConnectorBaseInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): ZetaConnectorBase { + return new Contract(address, _abi, runner) as unknown as ZetaConnectorBase; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNative__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNative__factory.ts new file mode 100644 index 00000000..0c19b8bc --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNative__factory.ts @@ -0,0 +1,876 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../../../common"; +import type { + ZetaConnectorNative, + ZetaConnectorNativeInterface, +} from "../../../../../@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNative"; + +const _abi = [ + { + inputs: [], + name: "AccessControlBadConfirmation", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "bytes32", + name: "neededRole", + type: "bytes32", + }, + ], + name: "AccessControlUnauthorizedAccount", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + ], + name: "AddressEmptyCode", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "implementation", + type: "address", + }, + ], + name: "ERC1967InvalidImplementation", + type: "error", + }, + { + inputs: [], + name: "ERC1967NonPayable", + type: "error", + }, + { + inputs: [], + name: "EnforcedPause", + type: "error", + }, + { + inputs: [], + name: "ExpectedPause", + type: "error", + }, + { + inputs: [], + name: "FailedCall", + type: "error", + }, + { + inputs: [], + name: "InvalidInitialization", + type: "error", + }, + { + inputs: [], + name: "NotInitializing", + type: "error", + }, + { + inputs: [], + name: "ReentrancyGuardReentrantCall", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "SafeERC20FailedOperation", + type: "error", + }, + { + inputs: [], + name: "UUPSUnauthorizedCallContext", + type: "error", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "slot", + type: "bytes32", + }, + ], + name: "UUPSUnsupportedProxiableUUID", + type: "error", + }, + { + inputs: [], + name: "ZeroAddress", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint64", + name: "version", + type: "uint64", + }, + ], + name: "Initialized", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "Paused", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + indexed: true, + internalType: "bytes32", + name: "previousAdminRole", + type: "bytes32", + }, + { + indexed: true, + internalType: "bytes32", + name: "newAdminRole", + type: "bytes32", + }, + ], + name: "RoleAdminChanged", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + indexed: true, + internalType: "address", + name: "account", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "RoleGranted", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + indexed: true, + internalType: "address", + name: "account", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "RoleRevoked", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "Unpaused", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "oldTSSAddress", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "newTSSAddress", + type: "address", + }, + ], + name: "UpdatedZetaConnectorTSSAddress", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "implementation", + type: "address", + }, + ], + name: "Upgraded", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "Withdrawn", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "WithdrawnAndCalled", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + components: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + ], + indexed: false, + internalType: "struct RevertContext", + name: "revertContext", + type: "tuple", + }, + ], + name: "WithdrawnAndReverted", + type: "event", + }, + { + inputs: [], + name: "DEFAULT_ADMIN_ROLE", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "PAUSER_ROLE", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "TSS_ROLE", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "UPGRADE_INTERFACE_VERSION", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "WITHDRAWER_ROLE", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "gateway", + outputs: [ + { + internalType: "contract IGatewayEVM", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + ], + name: "getRoleAdmin", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "grantRole", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "hasRole", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "gateway_", + type: "address", + }, + { + internalType: "address", + name: "zetaToken_", + type: "address", + }, + { + internalType: "address", + name: "tssAddress_", + type: "address", + }, + { + internalType: "address", + name: "admin_", + type: "address", + }, + ], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "pause", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "paused", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "proxiableUUID", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "receiveTokens", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "callerConfirmation", + type: "address", + }, + ], + name: "renounceRole", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "revokeRole", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes4", + name: "interfaceId", + type: "bytes4", + }, + ], + name: "supportsInterface", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "tssAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "unpause", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newTSSAddress", + type: "address", + }, + ], + name: "updateTSSAddress", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newImplementation", + type: "address", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "upgradeToAndCall", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + name: "withdraw", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + ], + internalType: "struct MessageContext", + name: "messageContext", + type: "tuple", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + name: "withdrawAndCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + { + components: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + ], + internalType: "struct RevertContext", + name: "revertContext", + type: "tuple", + }, + ], + name: "withdrawAndRevert", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "zetaToken", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +const _bytecode = + "0x60a0806040523460295730608052611bc4908161002f8239608051818181610bd40152610ca50152f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a71461107a57508063106e629014610fe2578063116191b614610fbb57806321e093b114610f92578063248a9ca314610f6b5780632f2ff15d14610f3957806336568abe14610ef45780633f4ba83a14610e725780634f1ef28614610c2957806352d1902d14610bc15780635b11259114610b985780635c975abb14610b685780636f8728ad146109a45780636fb9a7af1461081a578063743e0c9b146107b35780638456cb591461073e57806385f438c11461071557806391d14854146106bc578063950837aa146105ea578063a217fddf146105ce578063a783c78914610593578063ad3cb1cc14610519578063d547741f146104de578063e63ab1e9146104a35763f8c8765e1461013457600080fd5b346104a05760803660031901126104a05761014d6110cf565b6101556110ea565b906044356001600160a01b03811680820361049c576064356001600160a01b0381169490919085830361049857600080516020611b6f833981519152549567ffffffffffffffff60ff8860401c1615971680159081610490575b6001149081610486575b15908161047d575b5061046e57866101cf611259565b61043c575b600080516020611b6f833981519152549567ffffffffffffffff60ff8860401c1615971680159081610434575b600114908161042a575b159081610421575b506104125786610221611259565b6103e0575b6001600160a01b03169081159081156103ce575b81156103c5575b81156103bc575b506103ad57916102f49493916102ee936102606119df565b6102686119df565b6102706119df565b6001600080516020611b0f8339815191525561028a6119df565b6102926119df565b6001600160601b0360a01b8a541617895560018060a01b03166001600160601b0360a01b60015416176001556001600160601b0360a01b60025416176002556102da816115ad565b506102e483611489565b506102ee83611515565b50611647565b50610356575b6103015780f35b60ff60401b19600080516020611b6f8339815191525416600080516020611b6f833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b60ff60401b19600080516020611b6f8339815191525416600080516020611b6f833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a16102fa565b63d92e233d60e01b8852600488fd5b90501538610248565b84159150610241565b6001600160a01b03841615915061023a565b600160401b60ff60401b19600080516020611b6f833981519152541617600080516020611b6f83398151915255610226565b63f92ee8a960e01b8952600489fd5b90501538610213565b303b15915061020b565b889150610201565b600160401b60ff60401b19600080516020611b6f833981519152541617600080516020611b6f833981519152556101d4565b63f92ee8a960e01b8852600488fd5b905015386101c1565b303b1591506101b9565b8891506101af565b8680fd5b8480fd5b80fd5b50346104a057806003193601126104a05760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346104a05760403660031901126104a0576105156004356104fe6110ea565b9061051061050b82611196565b6113d8565b6118d8565b5080f35b50346104a057806003193601126104a05760408051916105398284611114565b60058352640352e302e360dc1b6020840152815192839160208352815191826020850152815b83811061057c575050828201840152601f01601f19168101030190f35b60208282018101518883018801528795500161055f565b50346104a057806003193601126104a05760206040517f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb8152f35b50346104a057806003193601126104a057602090604051908152f35b50346104a05760203660031901126104a0576106046110cf565b61060c611385565b6001600160a01b0381169081156106ad5760025461065d9190610637906001600160a01b031661179a565b5060025461064d906001600160a01b0316611830565b5061065781611489565b50611515565b50600254604080516001600160a01b0383168152602081018490527f33770ab682353c17917ad3e667f05905fc8dda00671ef1ed33bef9bc8db0323e9190a16001600160a01b0319161760025580f35b63d92e233d60e01b8352600483fd5b50346104a05760403660031901126104a05760406106d86110ea565b916004358152600080516020611acf833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346104a057806003193601126104a0576020604051600080516020611aaf8339815191528152f35b50346104a057806003193601126104a057610757611313565b61075f611422565b600160ff19600080516020611aef833981519152541617600080516020611aef833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346104a05760203660031901126104a0576107cd611422565b6001546040516323b872dd60e01b60208201523360248201523060448201526004356064808301919091528152610817916001600160a01b0316610812608483611114565b611978565b80f35b50346104a057366003190160a081126109a0576020136104a05761083c6110ea565b60443560643567ffffffffffffffff811161099c5761085f903690600401611168565b9091610869611289565b6108716112c5565b610879611422565b60015485546108969183916001600160a01b03908116911661144c565b84546001546001600160a01b03918216958792909116863b1561099857604051633ddf4d7d60e11b81529183918391906001600160a01b036108d66110cf565b16600484015260248301526001600160a01b0316604482018190526064820186905260a060848301529781838161091160a482018b8d6111b7565b03925af1801561098d57610978575b50506109607f23b9573b29ff81f01c7aa1968188e1cb7d5858b08582e111fdaf386d9ef9bd8d9360405193849384526040602085015260408401916111b7565b0390a26001600080516020611b0f8339815191525580f35b8161098291611114565b61049c578438610920565b6040513d84823e3d90fd5b8280fd5b8380fd5b5080fd5b50346104a05760a03660031901126104a0576109be6110cf565b906024359060443567ffffffffffffffff81116109a0576109e3903690600401611168565b909260843567ffffffffffffffff811161099c5760808160040191600319903603011261099c57610a12611289565b610a1a6112c5565b610a22611422565b6001548454610a3f9184916001600160a01b03908116911661144c565b83546001546001600160a01b03918216979116873b15610b645794610aa78798610ab99383809a996040519687958694859363aa0c0fc160e01b8552600485015260018060a01b03169c8d60248501528b604485015260a060648501528c60a48501916111b7565b828103600319016084840152896111d8565b03925af18015610b5957610b1b575b5061096090610b0d7f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff095969760405195869586526060602087015260608601916111b7565b9083820360408501526111d8565b90610b0d86610b4f7f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff0979861096095611114565b9695505090610ac8565b6040513d88823e3d90fd5b8580fd5b50346104a057806003193601126104a057602060ff600080516020611aef83398151915254166040519015158152f35b50346104a057806003193601126104a0576002546040516001600160a01b039091168152602090f35b50346104a057806003193601126104a0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610c1a576020604051600080516020611a8f8339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126104a057610c3e6110cf565b6024359067ffffffffffffffff821161099857366023830112156109985781600401359083610c6c8361114c565b93610c7a6040519586611114565b8385526020850193366024828401011161099857806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610e4f575b50610e4057610cdd611385565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181610e0c575b50610d2057634c9c8ce360e01b86526004859052602486fd5b9384600080516020611a8f833981519152879603610dfa5750823b15610de857600080516020611a8f83398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115610dcd576105159382915190845af43d15610dc5573d91610da98361114c565b92610db76040519485611114565b83523d85602085013e611a0d565b606091611a0d565b5050505034610dd95780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011610e38575b81610e2860209383611114565b8101031261049857519038610d07565b3d9150610e1b565b63703e46dd60e11b8452600484fd5b600080516020611a8f833981519152546001600160a01b03161415905038610cd0565b50346104a057806003193601126104a057610e8b611313565b600080516020611aef8339815191525460ff811615610ee55760ff1916600080516020611aef833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346104a05760403660031901126104a057610f0e6110ea565b336001600160a01b03821603610f2a57610515906004356118d8565b63334bd91960e11b8252600482fd5b50346104a05760403660031901126104a057610515600435610f596110ea565b90610f6661050b82611196565b611703565b50346104a05760203660031901126104a0576020610f8a600435611196565b604051908152f35b50346104a057806003193601126104a0576001546040516001600160a01b039091168152602090f35b50346104a057806003193601126104a057546040516001600160a01b039091168152602090f35b50346104a05760603660031901126104a057610ffc6110cf565b7f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d560206024359261102b611289565b6110336112c5565b61103b611422565b60015461105490859083906001600160a01b031661144c565b6040519384526001600160a01b031692a26001600080516020611b0f8339815191525580f35b9050346109a05760203660031901126109a05760043563ffffffff60e01b81168091036109985760209250637965db0b60e01b81149081156110be575b5015158152f35b6301ffc9a760e01b149050386110b7565b600435906001600160a01b03821682036110e557565b600080fd5b602435906001600160a01b03821682036110e557565b35906001600160a01b03821682036110e557565b90601f8019910116810190811067ffffffffffffffff82111761113657604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161113657601f01601f191660200190565b9181601f840112156110e55782359167ffffffffffffffff83116110e557602083818601950101116110e557565b600052600080516020611acf83398151915260205260016040600020015490565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160a01b036111e982611100565b1682526001600160a01b0361120060208301611100565b166020830152604081013560408301526060810135601e19823603018112156110e557016020813591019067ffffffffffffffff81116110e55780360382136110e55760808381606061125696015201916111b7565b90565b600167ffffffffffffffff19600080516020611b6f833981519152541617600080516020611b6f83398151915255565b6002600080516020611b0f83398151915254146112b4576002600080516020611b0f83398151915255565b633ee5aeb560e01b60005260046000fd5b336000908152600080516020611b2f833981519152602052604090205460ff16156112ec57565b63e2517d3f60e01b60005233600452600080516020611aaf83398151915260245260446000fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561134c57565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16156113be57565b63e2517d3f60e01b60005233600452600060245260446000fd5b6000818152600080516020611acf8339815191526020908152604080832033845290915290205460ff161561140a5750565b63e2517d3f60e01b6000523360045260245260446000fd5b60ff600080516020611aef833981519152541661143b57565b63d93c066560e01b60005260046000fd5b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815261148791610812606483611114565b565b6001600160a01b0381166000908152600080516020611b2f833981519152602052604090205460ff1661150f576001600160a01b03166000818152600080516020611b2f83398151915260205260408120805460ff19166001179055339190600080516020611aaf83398151915290600080516020611a6f8339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020611b4f833981519152602052604090205460ff1661150f576001600160a01b03166000818152600080516020611b4f83398151915260205260408120805460ff191660011790553391907f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb90600080516020611a6f8339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1661150f576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff19166001179055339190600080516020611a6f8339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1661150f576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a90600080516020611a6f8339815191529080a4600190565b6000818152600080516020611acf833981519152602090815260408083206001600160a01b038616845290915290205460ff16611793576000818152600080516020611acf833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff1916600117905533929190600080516020611a6f8339815191529080a4600190565b5050600090565b6001600160a01b0381166000908152600080516020611b2f833981519152602052604090205460ff161561150f576001600160a01b03166000818152600080516020611b2f83398151915260205260408120805460ff19169055339190600080516020611aaf833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381166000908152600080516020611b4f833981519152602052604090205460ff161561150f576001600160a01b03166000818152600080516020611b4f83398151915260205260408120805460ff191690553391907f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020611acf833981519152602090815260408083206001600160a01b038616845290915290205460ff1615611793576000818152600080516020611acf833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b906000602091828151910182855af1156119d3576000513d6119ca57506001600160a01b0381163b155b6119a95750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b600114156119a2565b6040513d6000823e3d90fd5b60ff600080516020611b6f8339815191525460401c16156119fc57565b631afcd79f60e31b60005260046000fd5b90611a335750805115611a2257805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611a65575b611a44575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15611a3c56fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00395f4e35a18c2b5e556b3b2ff855307e76c0b3cc1ca71e19a70e83037e08e7b37bdc20c26beb8eedd348733c28a5c4c2f7f7f1183cba8898195258fcdca273bcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212202bdad00032481621f5688942b2f2636896811e160d422fd2afd2200c14598d1164736f6c634300081a0033"; + +type ZetaConnectorNativeConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: ZetaConnectorNativeConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class ZetaConnectorNative__factory extends ContractFactory { + constructor(...args: ZetaConnectorNativeConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + ZetaConnectorNative & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect( + runner: ContractRunner | null + ): ZetaConnectorNative__factory { + return super.connect(runner) as ZetaConnectorNative__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): ZetaConnectorNativeInterface { + return new Interface(_abi) as ZetaConnectorNativeInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): ZetaConnectorNative { + return new Contract( + address, + _abi, + runner + ) as unknown as ZetaConnectorNative; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNonNative__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNonNative__factory.ts new file mode 100644 index 00000000..c96445ab --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNonNative__factory.ts @@ -0,0 +1,909 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../../../common"; +import type { + ZetaConnectorNonNative, + ZetaConnectorNonNativeInterface, +} from "../../../../../@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNonNative"; + +const _abi = [ + { + inputs: [], + name: "AccessControlBadConfirmation", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "bytes32", + name: "neededRole", + type: "bytes32", + }, + ], + name: "AccessControlUnauthorizedAccount", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + ], + name: "AddressEmptyCode", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "implementation", + type: "address", + }, + ], + name: "ERC1967InvalidImplementation", + type: "error", + }, + { + inputs: [], + name: "ERC1967NonPayable", + type: "error", + }, + { + inputs: [], + name: "EnforcedPause", + type: "error", + }, + { + inputs: [], + name: "ExceedsMaxSupply", + type: "error", + }, + { + inputs: [], + name: "ExpectedPause", + type: "error", + }, + { + inputs: [], + name: "FailedCall", + type: "error", + }, + { + inputs: [], + name: "InvalidInitialization", + type: "error", + }, + { + inputs: [], + name: "NotInitializing", + type: "error", + }, + { + inputs: [], + name: "ReentrancyGuardReentrantCall", + type: "error", + }, + { + inputs: [], + name: "UUPSUnauthorizedCallContext", + type: "error", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "slot", + type: "bytes32", + }, + ], + name: "UUPSUnsupportedProxiableUUID", + type: "error", + }, + { + inputs: [], + name: "ZeroAddress", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint64", + name: "version", + type: "uint64", + }, + ], + name: "Initialized", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "maxSupply", + type: "uint256", + }, + ], + name: "MaxSupplyUpdated", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "Paused", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + indexed: true, + internalType: "bytes32", + name: "previousAdminRole", + type: "bytes32", + }, + { + indexed: true, + internalType: "bytes32", + name: "newAdminRole", + type: "bytes32", + }, + ], + name: "RoleAdminChanged", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + indexed: true, + internalType: "address", + name: "account", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "RoleGranted", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + indexed: true, + internalType: "address", + name: "account", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "RoleRevoked", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "Unpaused", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "oldTSSAddress", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "newTSSAddress", + type: "address", + }, + ], + name: "UpdatedZetaConnectorTSSAddress", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "implementation", + type: "address", + }, + ], + name: "Upgraded", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "Withdrawn", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "WithdrawnAndCalled", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + components: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + ], + indexed: false, + internalType: "struct RevertContext", + name: "revertContext", + type: "tuple", + }, + ], + name: "WithdrawnAndReverted", + type: "event", + }, + { + inputs: [], + name: "DEFAULT_ADMIN_ROLE", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "PAUSER_ROLE", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "TSS_ROLE", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "UPGRADE_INTERFACE_VERSION", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "WITHDRAWER_ROLE", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "gateway", + outputs: [ + { + internalType: "contract IGatewayEVM", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + ], + name: "getRoleAdmin", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "grantRole", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "hasRole", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "gateway_", + type: "address", + }, + { + internalType: "address", + name: "zetaToken_", + type: "address", + }, + { + internalType: "address", + name: "tssAddress_", + type: "address", + }, + { + internalType: "address", + name: "admin_", + type: "address", + }, + ], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "maxSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "pause", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "paused", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "proxiableUUID", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "receiveTokens", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "callerConfirmation", + type: "address", + }, + ], + name: "renounceRole", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "revokeRole", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "maxSupply_", + type: "uint256", + }, + ], + name: "setMaxSupply", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes4", + name: "interfaceId", + type: "bytes4", + }, + ], + name: "supportsInterface", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "tssAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "unpause", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newTSSAddress", + type: "address", + }, + ], + name: "updateTSSAddress", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newImplementation", + type: "address", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "upgradeToAndCall", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes32", + name: "internalSendHash", + type: "bytes32", + }, + ], + name: "withdraw", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + ], + internalType: "struct MessageContext", + name: "messageContext", + type: "tuple", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "bytes32", + name: "internalSendHash", + type: "bytes32", + }, + ], + name: "withdrawAndCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "bytes32", + name: "internalSendHash", + type: "bytes32", + }, + { + components: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + ], + internalType: "struct RevertContext", + name: "revertContext", + type: "tuple", + }, + ], + name: "withdrawAndRevert", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "zetaToken", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +const _bytecode = + "0x60a0806040523460295730608052611ce5908161002f8239608051818181610cb70152610d880152f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a71461115157508063106e6290146110c5578063116191b61461109e57806321e093b114611075578063248a9ca31461104e5780632f2ff15d1461101c57806336568abe14610fd75780633f4ba83a14610f555780634f1ef28614610d0c57806352d1902d14610ca45780635b11259114610c7b5780635c975abb14610c4b5780636f8728ad14610a8a5780636f8b44b0146109d85780636fb9a7af1461085c578063743e0c9b146107db5780638456cb591461076657806385f438c11461073d57806391d14854146106e4578063950837aa14610612578063a217fddf146105f6578063a783c789146105cd578063ad3cb1cc14610553578063d547741f14610518578063d5abeb01146104fa578063e63ab1e9146104bf5763f8c8765e1461014a57600080fd5b346104bc5760803660031901126104bc576101636111a6565b61016b6111c1565b906044356001600160a01b0381168082036104b8576064356001600160a01b038116949091908583036104b457600080516020611c90833981519152549567ffffffffffffffff60ff8860401c16159716801590816104ac575b60011490816104a2575b159081610499575b5061048a57866101e5611330565b610458575b600080516020611c90833981519152549567ffffffffffffffff60ff8860401c1615971680159081610450575b6001149081610446575b15908161043d575b5061042e5786610237611330565b6103fc575b6001600160a01b03169081159081156103ea575b81156103e1575b81156103d8575b506103c9579161030a94939161030493610276611ae0565b61027e611ae0565b610286611ae0565b6001600080516020611c30833981519152556102a0611ae0565b6102a8611ae0565b6001600160601b0360a01b8a541617895560018060a01b03166001600160601b0360a01b60015416176001556001600160601b0360a01b60025416176002556102f081611727565b506102fa83611615565b50610304836116a1565b506117c1565b50610372575b60001960035561031d5780f35b60ff60401b19600080516020611c908339815191525416600080516020611c90833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b60ff60401b19600080516020611c908339815191525416600080516020611c90833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1610310565b63d92e233d60e01b8852600488fd5b9050153861025e565b84159150610257565b6001600160a01b038416159150610250565b600160401b60ff60401b19600080516020611c90833981519152541617600080516020611c908339815191525561023c565b63f92ee8a960e01b8952600489fd5b90501538610229565b303b159150610221565b889150610217565b600160401b60ff60401b19600080516020611c90833981519152541617600080516020611c90833981519152556101ea565b63f92ee8a960e01b8852600488fd5b905015386101d7565b303b1591506101cf565b8891506101c5565b8680fd5b8480fd5b80fd5b50346104bc57806003193601126104bc5760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346104bc57806003193601126104bc576020600354604051908152f35b50346104bc5760403660031901126104bc5761054f6004356105386111c1565b9061054a6105458261126d565b6114af565b611a40565b5080f35b50346104bc57806003193601126104bc57604080519161057382846111eb565b60058352640352e302e360dc1b6020840152815192839160208352815191826020850152815b8381106105b6575050828201840152601f01601f19168101030190f35b602082820181015188830188015287955001610599565b50346104bc57806003193601126104bc576020604051600080516020611b708339815191528152f35b50346104bc57806003193601126104bc57602090604051908152f35b50346104bc5760203660031901126104bc5761062c6111a6565b61063461145c565b6001600160a01b0381169081156106d557600254610685919061065f906001600160a01b0316611914565b50600254610675906001600160a01b03166119aa565b5061067f81611615565b506116a1565b50600254604080516001600160a01b0383168152602081018490527f33770ab682353c17917ad3e667f05905fc8dda00671ef1ed33bef9bc8db0323e9190a16001600160a01b0319161760025580f35b63d92e233d60e01b8352600483fd5b50346104bc5760403660031901126104bc5760406107006111c1565b916004358152600080516020611bf0833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346104bc57806003193601126104bc576020604051600080516020611bd08339815191528152f35b50346104bc57806003193601126104bc5761077f6113ea565b6107876114f9565b600160ff19600080516020611c10833981519152541617600080516020611c10833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346104bc5760203660031901126104bc576107f56114f9565b60015481906001600160a01b0316803b156108595781809160446040518094819363079cc67960e41b835233600484015260043560248401525af1801561084e5761083d5750f35b81610847916111eb565b6104bc5780f35b6040513d84823e3d90fd5b50fd5b50346104bc57366003190160a081126109d4576020136104bc5761087e6111c1565b60443560643567ffffffffffffffff81116109d0576108a190369060040161123f565b90916108ab611360565b6108b361139c565b6108bb6114f9565b84546108d5906084359083906001600160a01b0316611523565b84546001546001600160a01b03918216958792909116863b156109cc57604051633ddf4d7d60e11b81529183918391906001600160a01b036109156111a6565b16600484015260248301526001600160a01b0316604482018190526064820186905260a060848301529781838161095060a482018b8d61128e565b03925af1801561084e576109b7575b505061099f7f23b9573b29ff81f01c7aa1968188e1cb7d5858b08582e111fdaf386d9ef9bd8d93604051938493845260406020850152604084019161128e565b0390a26001600080516020611c308339815191525580f35b816109c1916111eb565b6104b857843861095f565b8280fd5b8380fd5b5080fd5b50346104bc5760203660031901126104bc57600080516020611b708339815191528152600080516020611bf08339815191526020908152604080832033600090815292529020546004359060ff1615610a655760207f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c91610a576114f9565b80600355604051908152a180f35b63e2517d3f60e01b825233600452600080516020611b70833981519152602452604482fd5b50346104bc5760a03660031901126104bc57610aa46111a6565b906024359060443567ffffffffffffffff81116109d457610ac990369060040161123f565b909260843567ffffffffffffffff81116109d0576080816004019160031990360301126109d057610af8611360565b610b0061139c565b610b086114f9565b8354610b22906064359084906001600160a01b0316611523565b83546001546001600160a01b03918216979116873b15610c475794610b8a8798610b9c9383809a996040519687958694859363aa0c0fc160e01b8552600485015260018060a01b03169c8d60248501528b604485015260a060648501528c60a485019161128e565b828103600319016084840152896112af565b03925af18015610c3c57610bfe575b5061099f90610bf07f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff0959697604051958695865260606020870152606086019161128e565b9083820360408501526112af565b90610bf086610c327f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff0979861099f956111eb565b9695505090610bab565b6040513d88823e3d90fd5b8580fd5b50346104bc57806003193601126104bc57602060ff600080516020611c1083398151915254166040519015158152f35b50346104bc57806003193601126104bc576002546040516001600160a01b039091168152602090f35b50346104bc57806003193601126104bc577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610cfd576020604051600080516020611bb08339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126104bc57610d216111a6565b6024359067ffffffffffffffff82116109cc57366023830112156109cc5781600401359083610d4f83611223565b93610d5d60405195866111eb565b838552602085019336602482840101116109cc57806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610f32575b50610f2357610dc061145c565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181610eef575b50610e0357634c9c8ce360e01b86526004859052602486fd5b9384600080516020611bb0833981519152879603610edd5750823b15610ecb57600080516020611bb083398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115610eb05761054f9382915190845af43d15610ea8573d91610e8c83611223565b92610e9a60405194856111eb565b83523d85602085013e611b0e565b606091611b0e565b5050505034610ebc5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011610f1b575b81610f0b602093836111eb565b810103126104b457519038610dea565b3d9150610efe565b63703e46dd60e11b8452600484fd5b600080516020611bb0833981519152546001600160a01b03161415905038610db3565b50346104bc57806003193601126104bc57610f6e6113ea565b600080516020611c108339815191525460ff811615610fc85760ff1916600080516020611c10833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346104bc5760403660031901126104bc57610ff16111c1565b336001600160a01b0382160361100d5761054f90600435611a40565b63334bd91960e11b8252600482fd5b50346104bc5760403660031901126104bc5761054f60043561103c6111c1565b906110496105458261126d565b61187d565b50346104bc5760203660031901126104bc57602061106d60043561126d565b604051908152f35b50346104bc57806003193601126104bc576001546040516001600160a01b039091168152602090f35b50346104bc57806003193601126104bc57546040516001600160a01b039091168152602090f35b50346104bc5760603660031901126104bc576110df6111a6565b7f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d560206024359261110e611360565b61111661139c565b61111e6114f9565b61112b6044358583611523565b6040519384526001600160a01b031692a26001600080516020611c308339815191525580f35b9050346109d45760203660031901126109d45760043563ffffffff60e01b81168091036109cc5760209250637965db0b60e01b8114908115611195575b5015158152f35b6301ffc9a760e01b1490503861118e565b600435906001600160a01b03821682036111bc57565b600080fd5b602435906001600160a01b03821682036111bc57565b35906001600160a01b03821682036111bc57565b90601f8019910116810190811067ffffffffffffffff82111761120d57604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161120d57601f01601f191660200190565b9181601f840112156111bc5782359167ffffffffffffffff83116111bc57602083818601950101116111bc57565b600052600080516020611bf083398151915260205260016040600020015490565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160a01b036112c0826111d7565b1682526001600160a01b036112d7602083016111d7565b166020830152604081013560408301526060810135601e19823603018112156111bc57016020813591019067ffffffffffffffff81116111bc5780360382136111bc5760808381606061132d960152019161128e565b90565b600167ffffffffffffffff19600080516020611c90833981519152541617600080516020611c9083398151915255565b6002600080516020611c30833981519152541461138b576002600080516020611c3083398151915255565b633ee5aeb560e01b60005260046000fd5b336000908152600080516020611c50833981519152602052604090205460ff16156113c357565b63e2517d3f60e01b60005233600452600080516020611bd083398151915260245260446000fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561142357565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff161561149557565b63e2517d3f60e01b60005233600452600060245260446000fd5b6000818152600080516020611bf08339815191526020908152604080832033845290915290205460ff16156114e15750565b63e2517d3f60e01b6000523360045260245260446000fd5b60ff600080516020611c10833981519152541661151257565b63d93c066560e01b60005260046000fd5b6001546040516318160ddd60e01b81526000949392916001600160a01b031690602081600481855afa908115610c3c5786916115e3575b5083018084116115cf57600354106115c057803b156104b857849291836064926040519687958694630f22c5f760e11b865260018060a01b03166004860152602485015260448401525af1801561084e576115b3575050565b816115bd916111eb565b50565b63c30436e960e01b8552600485fd5b634e487b7160e01b86526011600452602486fd5b90506020813d60201161160d575b816115fe602093836111eb565b81010312610c4757513861155a565b3d91506115f1565b6001600160a01b0381166000908152600080516020611c50833981519152602052604090205460ff1661169b576001600160a01b03166000818152600080516020611c5083398151915260205260408120805460ff19166001179055339190600080516020611bd083398151915290600080516020611b908339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020611c70833981519152602052604090205460ff1661169b576001600160a01b03166000818152600080516020611c7083398151915260205260408120805460ff19166001179055339190600080516020611b7083398151915290600080516020611b908339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1661169b576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff19166001179055339190600080516020611b908339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1661169b576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a90600080516020611b908339815191529080a4600190565b6000818152600080516020611bf0833981519152602090815260408083206001600160a01b038616845290915290205460ff1661190d576000818152600080516020611bf0833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff1916600117905533929190600080516020611b908339815191529080a4600190565b5050600090565b6001600160a01b0381166000908152600080516020611c50833981519152602052604090205460ff161561169b576001600160a01b03166000818152600080516020611c5083398151915260205260408120805460ff19169055339190600080516020611bd0833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381166000908152600080516020611c70833981519152602052604090205460ff161561169b576001600160a01b03166000818152600080516020611c7083398151915260205260408120805460ff19169055339190600080516020611b70833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020611bf0833981519152602090815260408083206001600160a01b038616845290915290205460ff161561190d576000818152600080516020611bf0833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b60ff600080516020611c908339815191525460401c1615611afd57565b631afcd79f60e31b60005260046000fd5b90611b345750805115611b2357805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611b66575b611b45575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15611b3d56fe0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00395f4e35a18c2b5e556b3b2ff855307e76c0b3cc1ca71e19a70e83037e08e7b37bdc20c26beb8eedd348733c28a5c4c2f7f7f1183cba8898195258fcdca273bcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212203f211d602b36c7fdf0f3b0fe8233e5a85a6bfca3cf4c804bfdd1d764320a84b564736f6c634300081a0033"; + +type ZetaConnectorNonNativeConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: ZetaConnectorNonNativeConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class ZetaConnectorNonNative__factory extends ContractFactory { + constructor(...args: ZetaConnectorNonNativeConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + ZetaConnectorNonNative & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect( + runner: ContractRunner | null + ): ZetaConnectorNonNative__factory { + return super.connect(runner) as ZetaConnectorNonNative__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): ZetaConnectorNonNativeInterface { + return new Interface(_abi) as ZetaConnectorNonNativeInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): ZetaConnectorNonNative { + return new Contract( + address, + _abi, + runner + ) as unknown as ZetaConnectorNonNative; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/index.ts new file mode 100644 index 00000000..3a4894de --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/index.ts @@ -0,0 +1,9 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as interfaces from "./interfaces"; +export { ERC20Custody__factory } from "./ERC20Custody__factory"; +export { GatewayEVM__factory } from "./GatewayEVM__factory"; +export { ZetaConnectorBase__factory } from "./ZetaConnectorBase__factory"; +export { ZetaConnectorNative__factory } from "./ZetaConnectorNative__factory"; +export { ZetaConnectorNonNative__factory } from "./ZetaConnectorNonNative__factory"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyErrors__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyErrors__factory.ts new file mode 100644 index 00000000..84410316 --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyErrors__factory.ts @@ -0,0 +1,44 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IERC20CustodyErrors, + IERC20CustodyErrorsInterface, +} from "../../../../../../../@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyErrors"; + +const _abi = [ + { + inputs: [], + name: "LegacyMethodsNotSupported", + type: "error", + }, + { + inputs: [], + name: "NotWhitelisted", + type: "error", + }, + { + inputs: [], + name: "ZeroAddress", + type: "error", + }, +] as const; + +export class IERC20CustodyErrors__factory { + static readonly abi = _abi; + static createInterface(): IERC20CustodyErrorsInterface { + return new Interface(_abi) as IERC20CustodyErrorsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IERC20CustodyErrors { + return new Contract( + address, + _abi, + runner + ) as unknown as IERC20CustodyErrors; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyEvents__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyEvents__factory.ts new file mode 100644 index 00000000..ae0c5439 --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyEvents__factory.ts @@ -0,0 +1,220 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IERC20CustodyEvents, + IERC20CustodyEventsInterface, +} from "../../../../../../../@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyEvents"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes", + name: "recipient", + type: "bytes", + }, + { + indexed: true, + internalType: "contract IERC20", + name: "asset", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "message", + type: "bytes", + }, + ], + name: "Deposited", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "Unwhitelisted", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "oldTSSAddress", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "newTSSAddress", + type: "address", + }, + ], + name: "UpdatedCustodyTSSAddress", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "Whitelisted", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "token", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "Withdrawn", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "token", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "WithdrawnAndCalled", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "token", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + components: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + ], + indexed: false, + internalType: "struct RevertContext", + name: "revertContext", + type: "tuple", + }, + ], + name: "WithdrawnAndReverted", + type: "event", + }, +] as const; + +export class IERC20CustodyEvents__factory { + static readonly abi = _abi; + static createInterface(): IERC20CustodyEventsInterface { + return new Interface(_abi) as IERC20CustodyEventsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IERC20CustodyEvents { + return new Contract( + address, + _abi, + runner + ) as unknown as IERC20CustodyEvents; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20Custody__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20Custody__factory.ts new file mode 100644 index 00000000..facecaba --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20Custody__factory.ts @@ -0,0 +1,368 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IERC20Custody, + IERC20CustodyInterface, +} from "../../../../../../../@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20Custody"; + +const _abi = [ + { + inputs: [], + name: "LegacyMethodsNotSupported", + type: "error", + }, + { + inputs: [], + name: "NotWhitelisted", + type: "error", + }, + { + inputs: [], + name: "ZeroAddress", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes", + name: "recipient", + type: "bytes", + }, + { + indexed: true, + internalType: "contract IERC20", + name: "asset", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "message", + type: "bytes", + }, + ], + name: "Deposited", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "Unwhitelisted", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "oldTSSAddress", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "newTSSAddress", + type: "address", + }, + ], + name: "UpdatedCustodyTSSAddress", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "Whitelisted", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "token", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "Withdrawn", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "token", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "WithdrawnAndCalled", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "token", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + components: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + ], + indexed: false, + internalType: "struct RevertContext", + name: "revertContext", + type: "tuple", + }, + ], + name: "WithdrawnAndReverted", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "whitelisted", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "withdraw", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + ], + internalType: "struct MessageContext", + name: "messageContext", + type: "tuple", + }, + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "withdrawAndCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + components: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + ], + internalType: "struct RevertContext", + name: "revertContext", + type: "tuple", + }, + ], + name: "withdrawAndRevert", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class IERC20Custody__factory { + static readonly abi = _abi; + static createInterface(): IERC20CustodyInterface { + return new Interface(_abi) as IERC20CustodyInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IERC20Custody { + return new Contract(address, _abi, runner) as unknown as IERC20Custody; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/index.ts new file mode 100644 index 00000000..93a54174 --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IERC20Custody__factory } from "./IERC20Custody__factory"; +export { IERC20CustodyErrors__factory } from "./IERC20CustodyErrors__factory"; +export { IERC20CustodyEvents__factory } from "./IERC20CustodyEvents__factory"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/Callable__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/Callable__factory.ts new file mode 100644 index 00000000..0d0132a7 --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/Callable__factory.ts @@ -0,0 +1,53 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + Callable, + CallableInterface, +} from "../../../../../../../@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/Callable"; + +const _abi = [ + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + ], + internalType: "struct MessageContext", + name: "context", + type: "tuple", + }, + { + internalType: "bytes", + name: "message", + type: "bytes", + }, + ], + name: "onCall", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "payable", + type: "function", + }, +] as const; + +export class Callable__factory { + static readonly abi = _abi; + static createInterface(): CallableInterface { + return new Interface(_abi) as CallableInterface; + } + static connect(address: string, runner?: ContractRunner | null): Callable { + return new Contract(address, _abi, runner) as unknown as Callable; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMErrors__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMErrors__factory.ts new file mode 100644 index 00000000..c44ecb60 --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMErrors__factory.ts @@ -0,0 +1,113 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IGatewayEVMErrors, + IGatewayEVMErrorsInterface, +} from "../../../../../../../@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMErrors"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "ApprovalFailed", + type: "error", + }, + { + inputs: [], + name: "ConnectorInitialized", + type: "error", + }, + { + inputs: [], + name: "CustodyInitialized", + type: "error", + }, + { + inputs: [], + name: "DepositFailed", + type: "error", + }, + { + inputs: [], + name: "ExecutionFailed", + type: "error", + }, + { + inputs: [], + name: "InsufficientERC20Amount", + type: "error", + }, + { + inputs: [], + name: "InsufficientETHAmount", + type: "error", + }, + { + inputs: [], + name: "NotAllowedToCallOnCall", + type: "error", + }, + { + inputs: [], + name: "NotAllowedToCallOnRevert", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "NotWhitelistedInCustody", + type: "error", + }, + { + inputs: [ + { + internalType: "uint256", + name: "provided", + type: "uint256", + }, + { + internalType: "uint256", + name: "maximum", + type: "uint256", + }, + ], + name: "PayloadSizeExceeded", + type: "error", + }, + { + inputs: [], + name: "ZeroAddress", + type: "error", + }, +] as const; + +export class IGatewayEVMErrors__factory { + static readonly abi = _abi; + static createInterface(): IGatewayEVMErrorsInterface { + return new Interface(_abi) as IGatewayEVMErrorsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IGatewayEVMErrors { + return new Contract(address, _abi, runner) as unknown as IGatewayEVMErrors; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMEvents__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMEvents__factory.ts new file mode 100644 index 00000000..d89656c2 --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMEvents__factory.ts @@ -0,0 +1,357 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IGatewayEVMEvents, + IGatewayEVMEventsInterface, +} from "../../../../../../../@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMEvents"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "receiver", + type: "address", + }, + { + indexed: false, + internalType: "bytes", + name: "payload", + type: "bytes", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + indexed: false, + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "Called", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "receiver", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + indexed: false, + internalType: "address", + name: "asset", + type: "address", + }, + { + indexed: false, + internalType: "bytes", + name: "payload", + type: "bytes", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + indexed: false, + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "Deposited", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "receiver", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + indexed: false, + internalType: "address", + name: "asset", + type: "address", + }, + { + indexed: false, + internalType: "bytes", + name: "payload", + type: "bytes", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + indexed: false, + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "DepositedAndCalled", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "destination", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "Executed", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "token", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "ExecutedWithERC20", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "token", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + components: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + ], + indexed: false, + internalType: "struct RevertContext", + name: "revertContext", + type: "tuple", + }, + ], + name: "Reverted", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "oldTSSAddress", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "newTSSAddress", + type: "address", + }, + ], + name: "UpdatedGatewayTSSAddress", + type: "event", + }, +] as const; + +export class IGatewayEVMEvents__factory { + static readonly abi = _abi; + static createInterface(): IGatewayEVMEventsInterface { + return new Interface(_abi) as IGatewayEVMEventsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IGatewayEVMEvents { + return new Contract(address, _abi, runner) as unknown as IGatewayEVMEvents; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVM__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVM__factory.ts new file mode 100644 index 00000000..8bbd5f0e --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVM__factory.ts @@ -0,0 +1,878 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IGatewayEVM, + IGatewayEVMInterface, +} from "../../../../../../../@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVM"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "ApprovalFailed", + type: "error", + }, + { + inputs: [], + name: "ConnectorInitialized", + type: "error", + }, + { + inputs: [], + name: "CustodyInitialized", + type: "error", + }, + { + inputs: [], + name: "DepositFailed", + type: "error", + }, + { + inputs: [], + name: "ExecutionFailed", + type: "error", + }, + { + inputs: [], + name: "InsufficientERC20Amount", + type: "error", + }, + { + inputs: [], + name: "InsufficientETHAmount", + type: "error", + }, + { + inputs: [], + name: "NotAllowedToCallOnCall", + type: "error", + }, + { + inputs: [], + name: "NotAllowedToCallOnRevert", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "NotWhitelistedInCustody", + type: "error", + }, + { + inputs: [ + { + internalType: "uint256", + name: "provided", + type: "uint256", + }, + { + internalType: "uint256", + name: "maximum", + type: "uint256", + }, + ], + name: "PayloadSizeExceeded", + type: "error", + }, + { + inputs: [], + name: "ZeroAddress", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "receiver", + type: "address", + }, + { + indexed: false, + internalType: "bytes", + name: "payload", + type: "bytes", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + indexed: false, + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "Called", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "receiver", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + indexed: false, + internalType: "address", + name: "asset", + type: "address", + }, + { + indexed: false, + internalType: "bytes", + name: "payload", + type: "bytes", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + indexed: false, + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "Deposited", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "receiver", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + indexed: false, + internalType: "address", + name: "asset", + type: "address", + }, + { + indexed: false, + internalType: "bytes", + name: "payload", + type: "bytes", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + indexed: false, + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "DepositedAndCalled", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "destination", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "Executed", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "token", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "ExecutedWithERC20", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "token", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + components: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + ], + indexed: false, + internalType: "struct RevertContext", + name: "revertContext", + type: "tuple", + }, + ], + name: "Reverted", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "oldTSSAddress", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "newTSSAddress", + type: "address", + }, + ], + name: "UpdatedGatewayTSSAddress", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "receiver", + type: "address", + }, + { + internalType: "bytes", + name: "payload", + type: "bytes", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "call", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "receiver", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "deposit", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "receiver", + type: "address", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "deposit", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "receiver", + type: "address", + }, + { + internalType: "bytes", + name: "payload", + type: "bytes", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "depositAndCall", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "receiver", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "bytes", + name: "payload", + type: "bytes", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "depositAndCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + ], + internalType: "struct MessageContext", + name: "messageContext", + type: "tuple", + }, + { + internalType: "address", + name: "destination", + type: "address", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "execute", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "destination", + type: "address", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + components: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + ], + internalType: "struct RevertContext", + name: "revertContext", + type: "tuple", + }, + ], + name: "executeRevert", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + ], + internalType: "struct MessageContext", + name: "messageContext", + type: "tuple", + }, + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "executeWithERC20", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + components: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + ], + internalType: "struct RevertContext", + name: "revertContext", + type: "tuple", + }, + ], + name: "revertWithERC20", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class IGatewayEVM__factory { + static readonly abi = _abi; + static createInterface(): IGatewayEVMInterface { + return new Interface(_abi) as IGatewayEVMInterface; + } + static connect(address: string, runner?: ContractRunner | null): IGatewayEVM { + return new Contract(address, _abi, runner) as unknown as IGatewayEVM; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/index.ts new file mode 100644 index 00000000..f257da52 --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/index.ts @@ -0,0 +1,7 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { Callable__factory } from "./Callable__factory"; +export { IGatewayEVM__factory } from "./IGatewayEVM__factory"; +export { IGatewayEVMErrors__factory } from "./IGatewayEVMErrors__factory"; +export { IGatewayEVMEvents__factory } from "./IGatewayEVMEvents__factory"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/IZetaConnectorEvents__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/IZetaConnectorEvents__factory.ts new file mode 100644 index 00000000..98208d2e --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/IZetaConnectorEvents__factory.ts @@ -0,0 +1,145 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IZetaConnectorEvents, + IZetaConnectorEventsInterface, +} from "../../../../../../../@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/IZetaConnectorEvents"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "oldTSSAddress", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "newTSSAddress", + type: "address", + }, + ], + name: "UpdatedZetaConnectorTSSAddress", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "Withdrawn", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "WithdrawnAndCalled", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + components: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + ], + indexed: false, + internalType: "struct RevertContext", + name: "revertContext", + type: "tuple", + }, + ], + name: "WithdrawnAndReverted", + type: "event", + }, +] as const; + +export class IZetaConnectorEvents__factory { + static readonly abi = _abi; + static createInterface(): IZetaConnectorEventsInterface { + return new Interface(_abi) as IZetaConnectorEventsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IZetaConnectorEvents { + return new Contract( + address, + _abi, + runner + ) as unknown as IZetaConnectorEvents; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/index.ts new file mode 100644 index 00000000..a60ddc89 --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IZetaConnectorEvents__factory } from "./IZetaConnectorEvents__factory"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaNonEthNew__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaNonEthNew__factory.ts new file mode 100644 index 00000000..d746c4da --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaNonEthNew__factory.ts @@ -0,0 +1,249 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IZetaNonEthNew, + IZetaNonEthNewInterface, +} from "../../../../../../@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaNonEthNew"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "burnFrom", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "mintee", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "bytes32", + name: "internalSendHash", + type: "bytes32", + }, + ], + name: "mint", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class IZetaNonEthNew__factory { + static readonly abi = _abi; + static createInterface(): IZetaNonEthNewInterface { + return new Interface(_abi) as IZetaNonEthNewInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IZetaNonEthNew { + return new Contract(address, _abi, runner) as unknown as IZetaNonEthNew; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/index.ts new file mode 100644 index 00000000..4d8e4cee --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/interfaces/index.ts @@ -0,0 +1,7 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as ierc20CustodySol from "./IERC20Custody.sol"; +export * as iGatewayEvmSol from "./IGatewayEVM.sol"; +export * as iZetaConnectorSol from "./IZetaConnector.sol"; +export { IZetaNonEthNew__factory } from "./IZetaNonEthNew__factory"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/index.ts new file mode 100644 index 00000000..7860e035 --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/index.ts @@ -0,0 +1,7 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as errorsSol from "./Errors.sol"; +export * as revertSol from "./Revert.sol"; +export * as evm from "./evm"; +export * as zevm from "./zevm"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/GatewayZEVM__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/GatewayZEVM__factory.ts new file mode 100644 index 00000000..3cec457b --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/GatewayZEVM__factory.ts @@ -0,0 +1,1684 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../../../common"; +import type { + GatewayZEVM, + GatewayZEVMInterface, +} from "../../../../../@zetachain/protocol-contracts/contracts/zevm/GatewayZEVM"; + +const _abi = [ + { + inputs: [], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [], + name: "AccessControlBadConfirmation", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "bytes32", + name: "neededRole", + type: "bytes32", + }, + ], + name: "AccessControlUnauthorizedAccount", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + ], + name: "AddressEmptyCode", + type: "error", + }, + { + inputs: [], + name: "CallOnRevertNotSupported", + type: "error", + }, + { + inputs: [], + name: "CallerIsNotProtocol", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "implementation", + type: "address", + }, + ], + name: "ERC1967InvalidImplementation", + type: "error", + }, + { + inputs: [], + name: "ERC1967NonPayable", + type: "error", + }, + { + inputs: [], + name: "EnforcedPause", + type: "error", + }, + { + inputs: [], + name: "ExpectedPause", + type: "error", + }, + { + inputs: [], + name: "FailedCall", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "FailedZetaSent", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "GasFeeTransferFailed", + type: "error", + }, + { + inputs: [], + name: "InsufficientGasLimit", + type: "error", + }, + { + inputs: [], + name: "InsufficientZRC20Amount", + type: "error", + }, + { + inputs: [], + name: "InsufficientZetaAmount", + type: "error", + }, + { + inputs: [], + name: "InvalidInitialization", + type: "error", + }, + { + inputs: [], + name: "InvalidTarget", + type: "error", + }, + { + inputs: [ + { + internalType: "uint256", + name: "provided", + type: "uint256", + }, + { + internalType: "uint256", + name: "maximum", + type: "uint256", + }, + ], + name: "MessageSizeExceeded", + type: "error", + }, + { + inputs: [], + name: "NotInitializing", + type: "error", + }, + { + inputs: [], + name: "OnlyWZETAOrProtocol", + type: "error", + }, + { + inputs: [], + name: "ReentrancyGuardReentrantCall", + type: "error", + }, + { + inputs: [], + name: "UUPSUnauthorizedCallContext", + type: "error", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "slot", + type: "bytes32", + }, + ], + name: "UUPSUnsupportedProxiableUUID", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "WithdrawalFailed", + type: "error", + }, + { + inputs: [], + name: "ZETANotSupported", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "ZRC20BurnFailed", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "ZRC20DepositFailed", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "ZRC20TransferFailed", + type: "error", + }, + { + inputs: [], + name: "ZeroAddress", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "zrc20", + type: "address", + }, + { + indexed: false, + internalType: "bytes", + name: "receiver", + type: "bytes", + }, + { + indexed: false, + internalType: "bytes", + name: "message", + type: "bytes", + }, + { + components: [ + { + internalType: "uint256", + name: "gasLimit", + type: "uint256", + }, + { + internalType: "bool", + name: "isArbitraryCall", + type: "bool", + }, + ], + indexed: false, + internalType: "struct CallOptions", + name: "callOptions", + type: "tuple", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + indexed: false, + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "Called", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint64", + name: "version", + type: "uint64", + }, + ], + name: "Initialized", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "Paused", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + indexed: true, + internalType: "bytes32", + name: "previousAdminRole", + type: "bytes32", + }, + { + indexed: true, + internalType: "bytes32", + name: "newAdminRole", + type: "bytes32", + }, + ], + name: "RoleAdminChanged", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + indexed: true, + internalType: "address", + name: "account", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "RoleGranted", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + indexed: true, + internalType: "address", + name: "account", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "RoleRevoked", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "Unpaused", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "implementation", + type: "address", + }, + ], + name: "Upgraded", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: true, + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "receiver", + type: "bytes", + }, + { + indexed: false, + internalType: "address", + name: "zrc20", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "gasfee", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "protocolFlatFee", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "message", + type: "bytes", + }, + { + components: [ + { + internalType: "uint256", + name: "gasLimit", + type: "uint256", + }, + { + internalType: "bool", + name: "isArbitraryCall", + type: "bool", + }, + ], + indexed: false, + internalType: "struct CallOptions", + name: "callOptions", + type: "tuple", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + indexed: false, + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "Withdrawn", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: true, + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "receiver", + type: "bytes", + }, + { + indexed: false, + internalType: "address", + name: "zrc20", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "gasfee", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "protocolFlatFee", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "message", + type: "bytes", + }, + { + components: [ + { + internalType: "uint256", + name: "gasLimit", + type: "uint256", + }, + { + internalType: "bool", + name: "isArbitraryCall", + type: "bool", + }, + ], + indexed: false, + internalType: "struct CallOptions", + name: "callOptions", + type: "tuple", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + indexed: false, + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "WithdrawnAndCalled", + type: "event", + }, + { + inputs: [], + name: "DEFAULT_ADMIN_ROLE", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "MAX_MESSAGE_SIZE", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "PAUSER_ROLE", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "PROTOCOL_ADDRESS", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "UPGRADE_INTERFACE_VERSION", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "receiver", + type: "bytes", + }, + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "bytes", + name: "message", + type: "bytes", + }, + { + components: [ + { + internalType: "uint256", + name: "gasLimit", + type: "uint256", + }, + { + internalType: "bool", + name: "isArbitraryCall", + type: "bool", + }, + ], + internalType: "struct CallOptions", + name: "callOptions", + type: "tuple", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "call", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "address", + name: "target", + type: "address", + }, + ], + name: "deposit", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "bytes", + name: "sender", + type: "bytes", + }, + { + internalType: "address", + name: "senderEVM", + type: "address", + }, + { + internalType: "uint256", + name: "chainID", + type: "uint256", + }, + ], + internalType: "struct MessageContext", + name: "context", + type: "tuple", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes", + name: "message", + type: "bytes", + }, + ], + name: "depositAndCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "bytes", + name: "sender", + type: "bytes", + }, + { + internalType: "address", + name: "senderEVM", + type: "address", + }, + { + internalType: "uint256", + name: "chainID", + type: "uint256", + }, + ], + internalType: "struct MessageContext", + name: "context", + type: "tuple", + }, + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes", + name: "message", + type: "bytes", + }, + ], + name: "depositAndCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "address", + name: "target", + type: "address", + }, + { + components: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + ], + internalType: "struct RevertContext", + name: "revertContext", + type: "tuple", + }, + ], + name: "depositAndRevert", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "bytes", + name: "sender", + type: "bytes", + }, + { + internalType: "address", + name: "senderEVM", + type: "address", + }, + { + internalType: "uint256", + name: "chainID", + type: "uint256", + }, + ], + internalType: "struct MessageContext", + name: "context", + type: "tuple", + }, + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes", + name: "message", + type: "bytes", + }, + ], + name: "execute", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + components: [ + { + internalType: "bytes", + name: "sender", + type: "bytes", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bool", + name: "outgoing", + type: "bool", + }, + { + internalType: "uint256", + name: "chainID", + type: "uint256", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + ], + internalType: "struct AbortContext", + name: "abortContext", + type: "tuple", + }, + ], + name: "executeAbort", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + components: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + ], + internalType: "struct RevertContext", + name: "revertContext", + type: "tuple", + }, + ], + name: "executeRevert", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + ], + name: "getRoleAdmin", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "grantRole", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "hasRole", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "zetaToken_", + type: "address", + }, + { + internalType: "address", + name: "admin_", + type: "address", + }, + ], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "pause", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "paused", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "proxiableUUID", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "callerConfirmation", + type: "address", + }, + ], + name: "renounceRole", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "revokeRole", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes4", + name: "interfaceId", + type: "bytes4", + }, + ], + name: "supportsInterface", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "unpause", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newImplementation", + type: "address", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "upgradeToAndCall", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "receiver", + type: "bytes", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "withdraw", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + { + internalType: "uint256", + name: "", + type: "uint256", + }, + { + internalType: "uint256", + name: "", + type: "uint256", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + internalType: "struct RevertOptions", + name: "", + type: "tuple", + }, + ], + name: "withdraw", + outputs: [], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + { + internalType: "uint256", + name: "", + type: "uint256", + }, + { + internalType: "uint256", + name: "", + type: "uint256", + }, + { + internalType: "bytes", + name: "", + type: "bytes", + }, + { + components: [ + { + internalType: "uint256", + name: "gasLimit", + type: "uint256", + }, + { + internalType: "bool", + name: "isArbitraryCall", + type: "bool", + }, + ], + internalType: "struct CallOptions", + name: "", + type: "tuple", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + internalType: "struct RevertOptions", + name: "", + type: "tuple", + }, + ], + name: "withdrawAndCall", + outputs: [], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "receiver", + type: "bytes", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "bytes", + name: "message", + type: "bytes", + }, + { + components: [ + { + internalType: "uint256", + name: "gasLimit", + type: "uint256", + }, + { + internalType: "bool", + name: "isArbitraryCall", + type: "bool", + }, + ], + internalType: "struct CallOptions", + name: "callOptions", + type: "tuple", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "withdrawAndCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "zetaToken", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + stateMutability: "payable", + type: "receive", + }, +] as const; + +const _bytecode = + "0x60a080604052346100ea57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b6040516127f090816100f08239608051818181610db80152610e4c0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880610054565b63f92ee8a960e01b60005260046000fd5b600080fdfe6080806040526004361015610067575b50361561001b57600080fd5b610023611f8e565b6000546001600160a01b03163314158061004f575b61003e57005b63b3af013760e01b60005260046000fd5b506000805160206126fb833981519152331415610038565b600090813560e01c90816301ffc9a714611b2b5750806306cb898314611818578063184b0793146117195780632095dedb146115e457806321501a95146113f757806321e093b1146113d0578063248a9ca3146113a95780632722feee146113805780632810ae63146112f65780632f2ff15d146112c457806336568abe1461127f5780633f4ba83a146111fd578063485cc955146110345780634f1ef28614610e0d57806352d1902d14610da55780635c975abb14610d755780637b15118b14610b445780637c0dcb5f146108885780638456cb591461081357806391d14854146107ba57806397a1cef11461074d57806397d340f5146107305780639d4ba465146105c4578063a217fddf146105a8578063ad3cb1cc1461055b578063bcf7f32b146104b4578063c39aca371461033d578063d547741f14610302578063e63ab1e9146102c75763f45346dc0361000f57346102c45760603660031901126102c4576101d3611c4a565b906024356101df611c60565b926000805160206126fb83398151915233036102b5576101fd611f8e565b6001600160a01b03811693841580156102a4575b610295578215610286576001600160a01b038116916000805160206126fb8339815191528314801561027d575b61026e5761024d918491612503565b15610256578280f35b606493632050a1dd60e11b8452600452602452604452fd5b63416aebb560e11b8552600485fd5b5030831461023e565b635d67094f60e01b8452600484fd5b63d92e233d60e01b8452600484fd5b506001600160a01b03811615610211565b632160203f60e11b8352600483fd5b80fd5b50346102c457806003193601126102c45760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346102c45760403660031901126102c457610339600435610322611c34565b9061033461032f82611efe565b6120bd565b612330565b5080f35b50346102c45761034c36611cf8565b95949291909361035a611fdf565b6000805160206126fb83398151915233036104a557610377611f8e565b6001600160a01b0381169687158015610494575b610485578315610476576001600160a01b038316926000805160206126fb8339815191528414801561046d575b61045e57846103c79184612503565b1561044357869750823b1561043f5786946103fa869260405198899788968795632de7eb0b60e11b875260048701611e8e565b03925af180156104345761041f575b50600160008051602061277b8339815191525580f35b8161042991611bb1565b6102c4578038610409565b6040513d84823e3d90fd5b8680fd5b60648785858b632050a1dd60e11b8452600452602452604452fd5b63416aebb560e11b8852600488fd5b503084146103b8565b635d67094f60e01b8752600487fd5b63d92e233d60e01b8752600487fd5b506001600160a01b0383161561038b565b632160203f60e11b8652600486fd5b50346102c4576104c336611cf8565b90936104d29695939296611fdf565b6000805160206126fb83398151915233036104a5576104ef611f8e565b6001600160a01b03811615801561054a575b61053b57859660018060a01b031691823b1561043f5786946103fa869260405198899788968795632de7eb0b60e11b875260048701611e8e565b63d92e233d60e01b8652600486fd5b506001600160a01b03871615610501565b50346102c457806003193601126102c457506105a460405161057e604082611bb1565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611cb7565b0390f35b50346102c457806003193601126102c457602090604051908152f35b50346102c45760803660031901126102c4576105de611c4a565b90602435916105eb611c60565b90606435916001600160401b03831161072c576080600319843603011261072c57610614611fdf565b6000805160206126fb833981519152330361071d57610631611f8e565b6001600160a01b038216908115801561070c575b6106fd5785156106ee576001600160a01b038116926000805160206126fb833981519152841480156106e5575b6106d657610681918791612503565b156106bc5750829350803b156106b8576103fa8392918392604051948580948193636481451b60e11b835260040160048301611e29565b5050fd5b6064949250632050a1dd60e11b8452600452602452604452fd5b63416aebb560e11b8652600486fd5b50308414610672565b635d67094f60e01b8552600485fd5b63d92e233d60e01b8552600485fd5b506001600160a01b03811615610645565b632160203f60e11b8452600484fd5b8380fd5b50346102c457806003193601126102c45760206040516108008152f35b50346102c45760803660031901126102c4576004356001600160401b0381116107b65761077e903690600401611bed565b506064356001600160401b0381116107b65760a09060031990360301126102c4576004906107aa611f8e565b63e4dd681d60e01b8152fd5b5080fd5b50346102c45760403660031901126102c45760406107d6611c34565b91600435815260008051602061273b833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346102c457806003193601126102c45761082c61204b565b610834611f8e565b600160ff1960008051602061275b83398151915254161760008051602061275b833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346102c45760803660031901126102c4576004356001600160401b0381116107b6576108b9903690600401611bed565b90602435916108c6611c60565b906064356001600160401b03811161072c57806004019060a06003198236030112610b40576108f3611f8e565b8251156106fd5785156106ee576064016108006109108284611d75565b905011610b1d5750604051630123a4f160e31b8152939485946001600160a01b03851694602082600481895afa918215610ada578792610ae5575b509061095791836123d0565b604051634d8943bb60e01b815290602082600481895afa918215610ada578792610aa3575b50604051630123a4f160e31b8152926020846004818a5afa938415610a98578894610a4f575b507f07bf64173efd8f3dfb9e4eb3834bab9d5b85a3d89a1c6425797329de0668502c9593610a49936109fd9693602093604051936109df85611b80565b84526001858501526040519889986101208a526101208a0190611cb7565b9a85890152604088015260608701526080860152610a37858903918260a08801528a8a5260c0870190602080918051845201511515910152565b01610100840152602033960190611f1f565b0390a380f35b975094925090926020873d602011610a90575b81610a6f60209383611bb1565b81010312610a8b579551879692949293909290919060206109a2565b600080fd5b3d9150610a62565b6040513d8a823e3d90fd5b965090506020863d602011610ad2575b81610ac060209383611bb1565b81010312610a8b57869551903861097c565b3d9150610ab3565b6040513d89823e3d90fd5b915095506020813d602011610b15575b81610b0260209383611bb1565b81010312610a8b5751869561095761094b565b3d9150610af5565b610b2a8591604493611d75565b63cd6f4e6d60e01b835260045250610800602452fd5b8480fd5b50346102c45760e03660031901126102c4576004356001600160401b0381116107b657610b75903690600401611bed565b9060243591610b82611c60565b906064356001600160401b03811161072c57610ba2903690600401611c8a565b9490916040366083190112610b405760c435916001600160401b038311610d7157826004019360a0600319853603011261043f57610bde611f8e565b82511561048557811561047657608435938415610d6257606401610800610c10610c088389611d75565b90508b611da7565b11610d345750968697610c278588859a999a6123d0565b604051634d8943bb60e01b815290986001600160a01b031693602082600481885afa918215610d29578992610cea575b5098610c9a9596979899610c78604051986101208a526101208a0190611cb7565b95602089015260408801526060870152608086015284830360a0860152611e08565b9160c082015260a43591821515809303610b4057610a4982917fd90f94752d2b12f364f4a2237ebe1aff24ba6127585376bf4935f6a7be17dd2a9460e08401528281036101008401523395611f1f565b959697985090506020853d602011610d21575b81610d0a60209383611bb1565b81010312610a8b5793518997969594610c9a610c57565b3d9150610cfd565b6040513d8b823e3d90fd5b87610d4d8a610d456044948a611d75565b919050611da7565b63cd6f4e6d60e01b8252600452610800602452fd5b6360ee124760e01b8852600488fd5b8580fd5b50346102c457806003193601126102c457602060ff60008051602061275b83398151915254166040519015158152f35b50346102c457806003193601126102c4577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610dfe57602060405160008051602061271b8339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126102c457610e22611c4a565b906024356001600160401b0381116107b657610e42903690600401611bed565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611011575b506110025781805260008051602061273b83398151915260209081526040808420336000908152925290205460ff1615610fea576040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa80958596610fb6575b50610ef057634c9c8ce360e01b84526004839052602484fd5b90918460008051602061271b8339815191528103610fa45750813b15610f925760008051602061271b83398151915280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a28151839015610f78578083602061033995519101845af4610f7261201b565b91612699565b50505034610f835780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011610fe2575b81610fd260209383611bb1565b81010312610b4057519438610ed7565b3d9150610fc5565b63e2517d3f60e01b8252336004526024829052604482fd5b63703e46dd60e11b8252600482fd5b60008051602061271b833981519152546001600160a01b03161415905038610e77565b50346102c45760403660031901126102c45761104e611c4a565b611056611c34565b60008051602061279b833981519152549160ff8360401c1615926001600160401b038116801590816111f5575b60011490816111eb575b1590816111e2575b506111d35767ffffffffffffffff19811660011760008051602061279b83398151915255836111a6575b506001600160a01b03169081158015611195575b61029557611124906110e361262b565b6110eb61262b565b6110f361262b565b6110fb61262b565b61110361262b565b600160008051602061277b8339815191525561111e81612107565b506121b9565b5082546001600160a01b03191617825561113b5780f35b68ff00000000000000001960008051602061279b833981519152541660008051602061279b833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b506001600160a01b038116156110d3565b68ffffffffffffffffff1916680100000000000000011760008051602061279b83398151915255386110bf565b63f92ee8a960e01b8552600485fd5b90501538611095565b303b15915061108d565b859150611083565b50346102c457806003193601126102c45761121661204b565b60008051602061275b8339815191525460ff8116156112705760ff191660008051602061275b833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346102c45760403660031901126102c457611299611c34565b336001600160a01b038216036112b55761033990600435612330565b63334bd91960e11b8252600482fd5b50346102c45760403660031901126102c4576103396004356112e4611c34565b906112f161032f82611efe565b612287565b50346102c45760e03660031901126102c4576004356001600160401b0381116107b657611327903690600401611bed565b506064356001600160401b0381116107b657611347903690600401611c8a565b505060403660831901126102c45760c4356001600160401b0381116107b65760a09060031990360301126102c4576004906107aa611f8e565b50346102c457806003193601126102c45760206040516000805160206126fb8339815191528152f35b50346102c45760203660031901126102c45760206113c8600435611efe565b604051908152f35b50346102c457806003193601126102c457546040516001600160a01b039091168152602090f35b50346102c45760803660031901126102c457600435906001600160401b0382116102c457606060031983360301126102c457602435611434611c60565b926064356001600160401b03811161072c57611454903690600401611c8a565b61145f929192611fdf565b6000805160206126fb83398151915233036115d55761147c611f8e565b6001600160a01b03861695861561053b5784156115c6576000805160206126fb833981519152871480156115bd575b6106d65785546114c9908690309033906001600160a01b03166125d9565b156115a55785546001600160a01b0316803b1561043f5786808092602460405180958193632e1a7d4d60e01b83528c60048401525af19182611590575b505061152357604486868963793cd7bf60e11b8352600452602452fd5b858080878194989697985af161153761201b565b50156115795794849560018060a01b0386541690823b1561043f5786946103fa869260405198899788968795632de7eb0b60e11b875260040160048701611e8e565b604485838863793cd7bf60e11b8352600452602452fd5b8161159a91611bb1565b61043f578638611506565b63793cd7bf60e11b8652306004526024859052604486fd5b503087146114ab565b6319c08f4960e01b8652600486fd5b632160203f60e11b8552600485fd5b50346102c45760403660031901126102c4576115fe611c4a565b90602435916001600160401b0383116107b657826004019060c060031985360301126117155761162c611fdf565b6000805160206126fb83398151915233036102b557611649611f8e565b6001600160a01b0316908115611706578293823b15611701576103fa926116ef858094604051968795869485936316a67dbf60e11b85526020600486015260a46116a76116968380611dd7565b60c060248a015260e4890191611e08565b936001600160a01b036116bc60248301611c76565b166044880152604481013560648801526116d860648201611dca565b151560848801526084810135828801520190611dd7565b8483036023190160c486015290611e08565b505050fd5b63d92e233d60e01b8352600483fd5b8280fd5b50346102c45760403660031901126102c457611733611c4a565b90602435916001600160401b0383116107b657608060031984360301126107b65761175c611fdf565b6000805160206126fb833981519152330361180957611779611f8e565b6001600160a01b03169182156117fa578282933b156106b8576117b98392918392604051958680948193636481451b60e11b835260040160048301611e29565b03925af180156117ed576117dd575b600160008051602061277b8339815191525580f35b6117e691611bb1565b38816117c8565b50604051903d90823e3d90fd5b63d92e233d60e01b8252600482fd5b632160203f60e11b8252600482fd5b50346102c45760c03660031901126102c4576004356001600160401b0381116107b657611849903690600401611bed565b611851611c34565b6044356001600160401b03811161072c57611870903690600401611c8a565b90916040366063190112610b405760a435926001600160401b038411610d7157836004019260a0600319863603011261043f576118ab611f8e565b606435938415610d625760648601926108006118d26118ca8685611d75565b905085611da7565b11611b1a57604051956118e487611b80565b86526084358015158103611b165760208701526040519160a083018381106001600160401b03821117611b025760405261191d90611c76565b825261192b60248801611dca565b926020830193845261193f60448901611c76565b9460408401958652356001600160401b038111611afe5761196690600436918b0101611bed565b95606084019687526084608085019901358952895115611aef5787516040805163fc5fecd560e01b815260048101929092526001600160a01b03929092169a91816024818e5afa908115611ae4578c908d92611ab2575b506119c982338361257d565b15611a8257505093611a7493611a3c611a2660a099957f306ee13f48319a123b222c69908e44dcf91abffc20cacc502e3cf5a4ff23e0e49b9995611a1860809a6040519d8e8181520190611cb7565b8c810360208e015291611e08565b885160408b0152602090980151151560608a0152565b87870386890152516001600160a01b03908116875290511515602087015290511660408501525160a060608501819052840190611cb7565b94519101528033930390a380f35b633338088960e11b8d526001600160a01b03166004526000805160206126fb83398151915260245260445260648bfd5b9050611ad6915060403d604011611add575b611ace8183611bb1565b810190611fb8565b90386119bd565b503d611ac4565b6040513d8e823e3d90fd5b63d92e233d60e01b8b5260048bfd5b8a80fd5b634e487b7160e01b8b52604160045260248bfd5b8980fd5b604489610d4d85610d458887611d75565b9050346107b65760203660031901126107b65760043563ffffffff60e01b81168091036117155760209250637965db0b60e01b8114908115611b6f575b5015158152f35b6301ffc9a760e01b14905038611b68565b604081019081106001600160401b03821117611b9b57604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b03821117611b9b57604052565b6001600160401b038111611b9b57601f01601f191660200190565b81601f82011215610a8b57803590611c0482611bd2565b92611c126040519485611bb1565b82845260208383010111610a8b57816000926020809301838601378301015290565b602435906001600160a01b0382168203610a8b57565b600435906001600160a01b0382168203610a8b57565b604435906001600160a01b0382168203610a8b57565b35906001600160a01b0382168203610a8b57565b9181601f84011215610a8b578235916001600160401b038311610a8b5760208381860195010111610a8b57565b919082519283825260005b848110611ce3575050826000602080949584010152601f8019910116010190565b80602080928401015182828601015201611cc2565b60a0600319820112610a8b576004356001600160401b038111610a8b5760608183036003190112610a8b57600401916024356001600160a01b0381168103610a8b5791604435916064356001600160a01b0381168103610a8b5791608435906001600160401b038211610a8b57611d7191600401611c8a565b9091565b903590601e1981360301821215610a8b57018035906001600160401b038211610a8b57602001918136038313610a8b57565b91908201809211611db457565b634e487b7160e01b600052601160045260246000fd5b35908115158203610a8b57565b9035601e1982360301811215610a8b5701602081359101916001600160401b038211610a8b578136038313610a8b57565b908060209392818452848401376000828201840152601f01601f1916010190565b60208152611e8b9160a090611e7b906001600160a01b03611e4982611c76565b166020850152600180841b03611e6160208301611c76565b166040850152604081013560608501526060810190611dd7565b9190926080808201520191611e08565b90565b90939192611e8b9593608083526040611ebb611eaa8880611dd7565b6060608088015260e0870191611e08565b966001600160a01b03611ed060208301611c76565b1660a0860152013560c08401526001600160a01b031660208301526040820152808403606090910152611e08565b60005260008051602061273b83398151915260205260016040600020015490565b906001600160a01b03611f3183611c76565b168152611f4060208301611dca565b151560208201526001600160a01b03611f5b60408401611c76565b166040820152608080611f85611f746060860186611dd7565b60a0606087015260a0860191611e08565b93013591015290565b60ff60008051602061275b8339815191525416611fa757565b63d93c066560e01b60005260046000fd5b9190826040910312610a8b5781516001600160a01b0381168103610a8b5760209092015190565b600260008051602061277b833981519152541461200a57600260008051602061277b83398151915255565b633ee5aeb560e01b60005260046000fd5b3d15612046573d9061202c82611bd2565b9161203a6040519384611bb1565b82523d6000602084013e565b606090565b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561208457565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b600081815260008051602061273b8339815191526020908152604080832033845290915290205460ff16156120ef5750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff166121b3576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50600090565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff166121b3576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b600081815260008051602061273b833981519152602090815260408083206001600160a01b038616845290915290205460ff1661232957600081815260008051602061273b833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b5050600090565b600081815260008051602061273b833981519152602090815260408083206001600160a01b038616845290915290205460ff161561232957600081815260008051602061273b833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6040805163fc5fecd560e01b8152600481019490945290916001600160a01b0381169184602481855afa9384156124df576000906000956124bb575b5061241885338361257d565b15612484575061242a833033846125d9565b1561245a578261243991612659565b1561244357505090565b637112ae7760e01b60005260045260245260446000fd5b506084916040519163489ca9b760e01b835260048301523360248301523060448301526064820152fd5b633338088960e11b60009081526001600160a01b039091166004526000805160206126fb8339815191526024526044859052606490fd5b90506124d791945060403d604011611add57611ace8183611bb1565b93903861240c565b6040513d6000823e3d90fd5b90816020910312610a8b57518015158103610a8b5790565b6040516311f9fbc960e21b81526001600160a01b039283166004820152602481019390935260209183916044918391600091165af16000918161254c575b50611e8b5750600090565b61256f91925060203d602011612576575b6125678183611bb1565b8101906124eb565b9038612541565b503d61255d565b6040516323b872dd60e01b81526001600160a01b0392831660048201526000805160206126fb8339815191526024820152604481019390935260209183916064918391600091165af16000918161254c5750611e8b5750600090565b6040516323b872dd60e01b81526001600160a01b03928316600482015292821660248401526044830193909352909160209183916064918391600091165af16000918161254c5750611e8b5750600090565b60ff60008051602061279b8339815191525460401c161561264857565b631afcd79f60e31b60005260046000fd5b604051630852cd8d60e31b81526004810192909252602090829060249082906000906001600160a01b03165af16000918161254c5750611e8b5750600090565b906126bf57508051156126ae57805190602001fd5b63d6bda27560e01b60005260046000fd5b815115806126f1575b6126d0575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b156126c856fe000000000000000000000000735b14bb79463307aacbed86daf3322b1e6226ab360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220542941658a96d6dd4010b90beba1b2fc5ed2076ef97c9889b30ab9ceda5036f064736f6c634300081a0033"; + +type GatewayZEVMConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: GatewayZEVMConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class GatewayZEVM__factory extends ContractFactory { + constructor(...args: GatewayZEVMConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + GatewayZEVM & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): GatewayZEVM__factory { + return super.connect(runner) as GatewayZEVM__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): GatewayZEVMInterface { + return new Interface(_abi) as GatewayZEVMInterface; + } + static connect(address: string, runner?: ContractRunner | null): GatewayZEVM { + return new Contract(address, _abi, runner) as unknown as GatewayZEVM; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContractErrors__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContractErrors__factory.ts new file mode 100644 index 00000000..e4fd6f1e --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContractErrors__factory.ts @@ -0,0 +1,54 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + SystemContractErrors, + SystemContractErrorsInterface, +} from "../../../../../../@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContractErrors"; + +const _abi = [ + { + inputs: [], + name: "CallerIsNotFungibleModule", + type: "error", + }, + { + inputs: [], + name: "CantBeIdenticalAddresses", + type: "error", + }, + { + inputs: [], + name: "CantBeZeroAddress", + type: "error", + }, + { + inputs: [], + name: "InvalidTarget", + type: "error", + }, + { + inputs: [], + name: "ZeroAddress", + type: "error", + }, +] as const; + +export class SystemContractErrors__factory { + static readonly abi = _abi; + static createInterface(): SystemContractErrorsInterface { + return new Interface(_abi) as SystemContractErrorsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): SystemContractErrors { + return new Contract( + address, + _abi, + runner + ) as unknown as SystemContractErrors; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContract__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContract__factory.ts new file mode 100644 index 00000000..fe445a6a --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContract__factory.ts @@ -0,0 +1,506 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + AddressLike, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { NonPayableOverrides } from "../../../../../../common"; +import type { + SystemContract, + SystemContractInterface, +} from "../../../../../../@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContract"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "wzeta_", + type: "address", + }, + { + internalType: "address", + name: "uniswapv2Factory_", + type: "address", + }, + { + internalType: "address", + name: "uniswapv2Router02_", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [], + name: "CallerIsNotFungibleModule", + type: "error", + }, + { + inputs: [], + name: "CantBeIdenticalAddresses", + type: "error", + }, + { + inputs: [], + name: "CantBeZeroAddress", + type: "error", + }, + { + inputs: [], + name: "InvalidTarget", + type: "error", + }, + { + inputs: [], + name: "ZeroAddress", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "", + type: "address", + }, + ], + name: "SetConnectorZEVM", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "", + type: "uint256", + }, + { + indexed: false, + internalType: "address", + name: "", + type: "address", + }, + ], + name: "SetGasCoin", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "SetGasPrice", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "", + type: "uint256", + }, + { + indexed: false, + internalType: "address", + name: "", + type: "address", + }, + ], + name: "SetGasZetaPool", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "", + type: "address", + }, + ], + name: "SetWZeta", + type: "event", + }, + { + anonymous: false, + inputs: [], + name: "SystemContractDeployed", + type: "event", + }, + { + inputs: [], + name: "FUNGIBLE_MODULE_ADDRESS", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "bytes", + name: "origin", + type: "bytes", + }, + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "uint256", + name: "chainID", + type: "uint256", + }, + ], + internalType: "struct zContext", + name: "context", + type: "tuple", + }, + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes", + name: "message", + type: "bytes", + }, + ], + name: "depositAndCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "gasCoinZRC20ByChainId", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "gasPriceByChainId", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "gasZetaPoolByChainId", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + ], + name: "setConnectorZEVMAddress", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainID", + type: "uint256", + }, + { + internalType: "address", + name: "zrc20", + type: "address", + }, + ], + name: "setGasCoinZRC20", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainID", + type: "uint256", + }, + { + internalType: "uint256", + name: "price", + type: "uint256", + }, + ], + name: "setGasPrice", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainID", + type: "uint256", + }, + { + internalType: "address", + name: "erc20", + type: "address", + }, + ], + name: "setGasZetaPool", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + ], + name: "setWZETAContractAddress", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "uniswapv2FactoryAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "factory", + type: "address", + }, + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + ], + name: "uniswapv2PairFor", + outputs: [ + { + internalType: "address", + name: "pair", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "uniswapv2Router02Address", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "wZetaContractAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "zetaConnectorZEVMAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +const _bytecode = + "0x60c03461010057601f610b3a38819003918201601f19168301916001600160401b0383118484101761010557808492606094604052833981010312610100576100478161011b565b9061006060406100596020840161011b565b920161011b565b9173735b14bb79463307aacbed86daf3322b1e6226ab33036100ef57600380546001600160a01b0319166001600160a01b039290921691909117905560805260a0526040517f80699e81136d69cb8367ad52a994e25c722a86da654b561d0c14b61a777e7ac5600080a1610a0a9081610130823960805181818161018a015261065d015260a051816106d70152f35b632b2add3d60e01b60005260046000fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036101005756fe608080604052600436101561001357600080fd5b600090813560e01c9081630be1554714610817575080631f0e251b146107915780633ce4a5bc14610762578063513a9c051461072f578063569541b914610706578063842da36d146106c157806391dd645f146105f057806397770dff1461054c578063a7cb0507146104da578063c39aca3714610263578063c62178ac1461023a578063c63585cc146101e2578063d7fd7afb146101b9578063d936a012146101745763ee2815ba146100c657600080fd5b34610171576040366003190112610171576004356100e2610864565b9073735b14bb79463307aacbed86daf3322b1e6226ab33036101625780835260016020908152604080852080546001600160a01b0319166001600160a01b0390951694851790558051928352908201929092527fd1b36d30f6248e97c473b4d1348ca164a4ef6759022f54a58ec200326c39c45d91819081015b0390a180f35b632b2add3d60e01b8352600483fd5b80fd5b50346101715780600319360112610171576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461017157602036600319011261017157604060209160043581528083522054604051908152f35b5034610171576060366003190112610171576101fc610849565b610204610864565b604435929091906001600160a01b03841684036101715760206102288585856108d3565b6040516001600160a01b039091168152f35b50346101715780600319360112610171576004546040516001600160a01b039091168152602090f35b50346101715760a0366003190112610171576004359067ffffffffffffffff82116101715781360360606003198201126104d65761029f610864565b92604435906064356001600160a01b038116908190036104d25760843567ffffffffffffffff81116104ce57366023820112156104ce5780600401359367ffffffffffffffff85116104615736602486840101116104615773735b14bb79463307aacbed86daf3322b1e6226ab33036104bf5773735b14bb79463307aacbed86daf3322b1e6226ab831480156104b6575b6104a7576040516311f9fbc960e21b815260048101849052602481018290529697959688966001600160a01b0316906020816044818b865af1801561049c57610465575b50833b156104615760405197636f218ab760e11b8952608060048a01528560040135906022190181121561045d57850160246004820135910167ffffffffffffffff8211610459578136038113610459576103da91606060848c015260e48b01916108b2565b60248601356001600160a01b038116919082900361045957889760248b98968a968a989660448a9861042d9860a48b0152013560c4890152838801526044870152600319868503016064870152016108b2565b03925af1801561044c5761043e5780f35b6104479161087a565b388180f35b50604051903d90823e3d90fd5b8880fd5b8780fd5b8680fd5b6020813d602011610494575b8161047e6020938361087a565b8101031261045d57518015158114610374578780fd5b3d9150610471565b6040513d8a823e3d90fd5b63416aebb560e11b8752600487fd5b50308314610330565b632b2add3d60e01b8752600487fd5b8580fd5b8480fd5b5080fd5b50346101715760403660031901126101715760043560243573735b14bb79463307aacbed86daf3322b1e6226ab330361016257816040917f49f492222906ac486c3c1401fa545626df1f0c0e5a77a05597ea2ed66af9850d93855284602052808386205582519182526020820152a180f35b503461017157602036600319011261017157610566610849565b73735b14bb79463307aacbed86daf3322b1e6226ab33036105e1576001600160a01b031680156105d2576020817fdba79d534382d1a8ae108e4c8ecb27c6ae42ab8b91d44eedf88bd329f3868d5e926001600160601b0360a01b6003541617600355604051908152a180f35b63d92e233d60e01b8252600482fd5b632b2add3d60e01b8252600482fd5b50346101715760403660031901126101715760043561060d610864565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610162576003547f0ecec485166da6139b13bb7e033e9446e2d35348e80ebf1180d4afe2dba1704e9291610681916001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006108d3565b81845260026020908152604080862080546001600160a01b0319166001600160a01b0390941693841790558051938452908301919091528190810161015c565b50346101715780600319360112610171576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101715780600319360112610171576003546040516001600160a01b039091168152602090f35b503461017157602036600319011261017157602090600435815260028252604060018060a01b0391205416604051908152f35b5034610171578060031936011261017157602060405173735b14bb79463307aacbed86daf3322b1e6226ab8152f35b5034610171576020366003190112610171576107ab610849565b73735b14bb79463307aacbed86daf3322b1e6226ab33036105e1576001600160a01b031680156105d2576020817f3ade88e3922d64780e1bf4460d364c2970b69da813f9c0c07a1c187b5647636c926001600160601b0360a01b6004541617600455604051908152a180f35b9050346104d65760203660031901126104d6576004358252600160209081526040909220546001600160a01b03168152f35b600435906001600160a01b038216820361085f57565b600080fd5b602435906001600160a01b038216820361085f57565b90601f8019910116810190811067ffffffffffffffff82111761089c57604052565b634e487b7160e01b600052604160045260246000fd5b908060209392818452848401376000828201840152601f01601f1916010190565b91906001600160a01b038083169082168082146109c35710156109be57905b6001600160a01b038216156109ad576040519060208201926001600160601b03199060601b1683526001600160601b03199060601b1660348201526028815261093c60488261087a565b5190209060405191602083019160ff60f81b83526001600160601b03199060601b16602184015260358301527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f60558301526055825261099d60758361087a565b905190206001600160a01b031690565b633c5a83ed60e11b60005260046000fd5b6108f2565b63658f3e7f60e11b60005260046000fdfea26469706673582212203d5f24fd62859186e7d8a9f41a0e370a08bd7cbc34344f0eb46593f3ba299ff564736f6c634300081a0033"; + +type SystemContractConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: SystemContractConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class SystemContract__factory extends ContractFactory { + constructor(...args: SystemContractConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + wzeta_: AddressLike, + uniswapv2Factory_: AddressLike, + uniswapv2Router02_: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction( + wzeta_, + uniswapv2Factory_, + uniswapv2Router02_, + overrides || {} + ); + } + override deploy( + wzeta_: AddressLike, + uniswapv2Factory_: AddressLike, + uniswapv2Router02_: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy( + wzeta_, + uniswapv2Factory_, + uniswapv2Router02_, + overrides || {} + ) as Promise< + SystemContract & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): SystemContract__factory { + return super.connect(runner) as SystemContract__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): SystemContractInterface { + return new Interface(_abi) as SystemContractInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): SystemContract { + return new Contract(address, _abi, runner) as unknown as SystemContract; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/index.ts new file mode 100644 index 00000000..32da62eb --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { SystemContract__factory } from "./SystemContract__factory"; +export { SystemContractErrors__factory } from "./SystemContractErrors__factory"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/WETH9__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/WETH9__factory.ts new file mode 100644 index 00000000..e0f2bea6 --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/WETH9__factory.ts @@ -0,0 +1,348 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../../../../common"; +import type { + WETH9, + WETH9Interface, +} from "../../../../../../@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/WETH9"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "src", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "guy", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "wad", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "dst", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "wad", + type: "uint256", + }, + ], + name: "Deposit", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "src", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "dst", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "wad", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "src", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "wad", + type: "uint256", + }, + ], + name: "Withdrawal", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "guy", + type: "address", + }, + { + internalType: "uint256", + name: "wad", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "deposit", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "dst", + type: "address", + }, + { + internalType: "uint256", + name: "wad", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "src", + type: "address", + }, + { + internalType: "address", + name: "dst", + type: "address", + }, + { + internalType: "uint256", + name: "wad", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "wad", + type: "uint256", + }, + ], + name: "withdraw", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + stateMutability: "payable", + type: "receive", + }, +] as const; + +const _bytecode = + "0x60806040523461011457610014600054610119565b601f81116100cb575b507f577261707065642045746865720000000000000000000000000000000000001a60005560015461004e90610119565b601f8111610081575b6008630ae8aa8960e31b016001556002805460ff1916601217905560405161073190816101548239f35b6001600052601f0160051c7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6908101905b8181106100bf5750610057565b600081556001016100b2565b60008052601f0160051c7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563908101905b818110610108575061001d565b600081556001016100fb565b600080fd5b90600182811c92168015610149575b602083101461013357565b634e487b7160e01b600052602260045260246000fd5b91607f169161012856fe60806040526004361015610023575b361561001957600080fd5b6100216106b2565b005b60003560e01c806306fdde0314610423578063095ea7b3146103a957806318160ddd1461038d57806323b872dd1461035e5780632e1a7d4d146102b9578063313ce5671461029857806370a082311461025e57806395d89b411461013d578063a9059cbb1461010b578063d0e30db0146100f75763dd62ed3e0361000e57346100f25760403660031901126100f2576100ba610526565b6100c261053c565b6001600160a01b039182166000908152600460209081526040808320949093168252928352819020549051908152f35b600080fd5b60003660031901126100f2576100216106b2565b346100f25760403660031901126100f2576020610133610129610526565b60243590336105a8565b6040519015158152f35b346100f25760003660031901126100f2576000604051816001548060011c90600181168015610254575b6020831081146102405782855290811561022457506001146101d0575b50819003601f01601f1916810167ffffffffffffffff8111828210176101bc576101b89250604052604051918291826104dd565b0390f35b634e487b7160e01b83526041600452602483fd5b600184529050827fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b82821061020e57506020915082010183610184565b60018160209254838588010152019101906101f9565b90506020925060ff191682840152151560051b82010183610184565b634e487b7160e01b86526022600452602486fd5b91607f1691610167565b346100f25760203660031901126100f2576001600160a01b0361027f610526565b1660005260036020526020604060002054604051908152f35b346100f25760003660031901126100f257602060ff60025416604051908152f35b346100f25760203660031901126100f2576004353360005260036020526102e7816040600020541015610552565b3360005260036020526040600020610300828254610578565b90558060008115610355575b600080809381933390f115610349576040519081527f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b6560203392a2005b6040513d6000823e3d90fd5b506108fc61030c565b346100f25760603660031901126100f257602061013361037c610526565b61038461053c565b604435916105a8565b346100f25760003660031901126100f257602047604051908152f35b346100f25760403660031901126100f2576103c2610526565b3360008181526004602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b346100f25760003660031901126100f25760006040518182548060011c906001811680156104d3575b60208310811461024057828552908115610224575060011461049c5750819003601f01601f1916810167ffffffffffffffff8111828210176101bc576101b89250604052604051918291826104dd565b90508280526020832083905b8282106104bd57506020915082010183610184565b60018160209254838588010152019101906104a8565b91607f169161044c565b91909160208152825180602083015260005b818110610510575060409293506000838284010152601f8019910116010190565b80602080928701015160408286010152016104ef565b600435906001600160a01b03821682036100f257565b602435906001600160a01b03821682036100f257565b1561055957565b60405162461bcd60e51b81526020600482015260006024820152604490fd5b9190820391821161058557565b634e487b7160e01b600052601160045260246000fd5b9190820180921161058557565b60207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9160018060a01b03169283600052600382526105ee856040600020541015610552565b3384141580610691575b610646575b83600052600382526040600020610615868254610578565b905560018060a01b0316938460005260038252604060002061063882825461059b565b9055604051908152a3600190565b6000848152600483526040808220338352845290205461066890861115610552565b600084815260048352604080822033835284529020805461068a908790610578565b90556105fd565b506000848152600483526040808220338352845290205460001914156105f8565b33600052600360205260406000206106cb34825461059b565b90556040513481527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a256fea26469706673582212209e220afc3d58f06e9fcfb74d0eadc71ef1ec14a29eb328f69f1935849690effe64736f6c634300081a0033"; + +type WETH9ConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: WETH9ConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class WETH9__factory extends ContractFactory { + constructor(...args: WETH9ConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + WETH9 & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): WETH9__factory { + return super.connect(runner) as WETH9__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): WETH9Interface { + return new Interface(_abi) as WETH9Interface; + } + static connect(address: string, runner?: ContractRunner | null): WETH9 { + return new Contract(address, _abi, runner) as unknown as WETH9; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/index.ts new file mode 100644 index 00000000..63c8f2fc --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { WETH9__factory } from "./WETH9__factory"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20Errors__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20Errors__factory.ts new file mode 100644 index 00000000..d889a300 --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20Errors__factory.ts @@ -0,0 +1,62 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + ZRC20Errors, + ZRC20ErrorsInterface, +} from "../../../../../../@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20Errors"; + +const _abi = [ + { + inputs: [], + name: "CallerIsNotFungibleModule", + type: "error", + }, + { + inputs: [], + name: "GasFeeTransferFailed", + type: "error", + }, + { + inputs: [], + name: "InvalidSender", + type: "error", + }, + { + inputs: [], + name: "LowAllowance", + type: "error", + }, + { + inputs: [], + name: "LowBalance", + type: "error", + }, + { + inputs: [], + name: "ZeroAddress", + type: "error", + }, + { + inputs: [], + name: "ZeroGasCoin", + type: "error", + }, + { + inputs: [], + name: "ZeroGasPrice", + type: "error", + }, +] as const; + +export class ZRC20Errors__factory { + static readonly abi = _abi; + static createInterface(): ZRC20ErrorsInterface { + return new Interface(_abi) as ZRC20ErrorsInterface; + } + static connect(address: string, runner?: ContractRunner | null): ZRC20Errors { + return new Contract(address, _abi, runner) as unknown as ZRC20Errors; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20__factory.ts new file mode 100644 index 00000000..183adb6f --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20__factory.ts @@ -0,0 +1,808 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + BigNumberish, + AddressLike, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { NonPayableOverrides } from "../../../../../../common"; +import type { + ZRC20, + ZRC20Interface, +} from "../../../../../../@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20"; + +const _abi = [ + { + inputs: [ + { + internalType: "string", + name: "name_", + type: "string", + }, + { + internalType: "string", + name: "symbol_", + type: "string", + }, + { + internalType: "uint8", + name: "decimals_", + type: "uint8", + }, + { + internalType: "uint256", + name: "chainid_", + type: "uint256", + }, + { + internalType: "enum CoinType", + name: "coinType_", + type: "uint8", + }, + { + internalType: "uint256", + name: "gasLimit_", + type: "uint256", + }, + { + internalType: "address", + name: "systemContractAddress_", + type: "address", + }, + { + internalType: "address", + name: "gatewayAddress_", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [], + name: "CallerIsNotFungibleModule", + type: "error", + }, + { + inputs: [], + name: "GasFeeTransferFailed", + type: "error", + }, + { + inputs: [], + name: "InvalidSender", + type: "error", + }, + { + inputs: [], + name: "LowAllowance", + type: "error", + }, + { + inputs: [], + name: "LowBalance", + type: "error", + }, + { + inputs: [], + name: "ZeroAddress", + type: "error", + }, + { + inputs: [], + name: "ZeroGasCoin", + type: "error", + }, + { + inputs: [], + name: "ZeroGasPrice", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes", + name: "from", + type: "bytes", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Deposit", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "gasLimit", + type: "uint256", + }, + ], + name: "UpdatedGasLimit", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "gateway", + type: "address", + }, + ], + name: "UpdatedGateway", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "protocolFlatFee", + type: "uint256", + }, + ], + name: "UpdatedProtocolFlatFee", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "systemContract", + type: "address", + }, + ], + name: "UpdatedSystemContract", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: false, + internalType: "bytes", + name: "to", + type: "bytes", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "gasFee", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "protocolFlatFee", + type: "uint256", + }, + ], + name: "Withdrawal", + type: "event", + }, + { + inputs: [], + name: "CHAIN_ID", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "COIN_TYPE", + outputs: [ + { + internalType: "enum CoinType", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "FUNGIBLE_MODULE_ADDRESS", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "GAS_LIMIT", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "PROTOCOL_FLAT_FEE", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "SYSTEM_CONTRACT_ADDRESS", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "burn", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "deposit", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "gatewayAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "newName", + type: "string", + }, + ], + name: "setName", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "newSymbol", + type: "string", + }, + ], + name: "setSymbol", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "gasLimit_", + type: "uint256", + }, + ], + name: "updateGasLimit", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + ], + name: "updateGatewayAddress", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "protocolFlatFee_", + type: "uint256", + }, + ], + name: "updateProtocolFlatFee", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + ], + name: "updateSystemContractAddress", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "to", + type: "bytes", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "withdraw", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "withdrawGasFee", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "gasLimit", + type: "uint256", + }, + ], + name: "withdrawGasFeeWithGasLimit", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +const _bytecode = + "0x60c06040523461041a57611879803803806100198161041f565b92833981016101008282031261041a5781516001600160401b03811161041a5781610045918401610444565b602083015190916001600160401b03821161041a57610065918401610444565b9160408101519160ff831680930361041a576060820151936080830151600381101561041a5760a0840151916100a960e06100a260c088016104af565b96016104af565b946001600160a01b03169384158015610409575b6103f8578051906001600160401b0382116102f55760065490600182811c921680156103ee575b60208310146102d55781601f84931161037e575b50602090601f83116001146103165760009261030b575b50508160011b916000199060031b1c1916176006555b8051906001600160401b0382116102f55760075490600182811c921680156102eb575b60208310146102d55781601f849311610265575b50602090601f83116001146101fd576000926101f2575b50508160011b916000199060031b1c1916176007555b6008549560805260a05260015560018060a01b03196000541617600055610100600160a81b039060081b169160018060a81b03191617176008556040516113b590816104c4823960805181818161016b01528181610b3e01526110c7015260a051816109e40152f35b015190503880610173565b600760009081528281209350601f198516905b81811061024d5750908460019594939210610234575b505050811b01600755610189565b015160001960f88460031b161c19169055388080610226565b92936020600181928786015181550195019301610210565b60076000529091507fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688601f840160051c810191602085106102cb575b90601f859493920160051c01905b8181106102bc575061015c565b600081558493506001016102af565b90915081906102a1565b634e487b7160e01b600052602260045260246000fd5b91607f1691610148565b634e487b7160e01b600052604160045260246000fd5b01519050388061010f565b600660009081528281209350601f198516905b818110610366575090846001959493921061034d575b505050811b01600655610125565b015160001960f88460031b161c1916905538808061033f565b92936020600181928786015181550195019301610329565b60066000529091507ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f601f840160051c810191602085106103e4575b90601f859493920160051c01905b8181106103d557506100f8565b600081558493506001016103c8565b90915081906103ba565b91607f16916100e4565b63d92e233d60e01b60005260046000fd5b506001600160a01b038616156100bd565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176102f557604052565b81601f8201121561041a578051906001600160401b0382116102f557610473601f8301601f191660200161041f565b928284526020838301011161041a5760005b82811061049a57505060206000918301015290565b80602080928401015182828701015201610485565b51906001600160a01b038216820361041a5756fe608080604052600436101561001357600080fd5b60003560e01c90816306fdde0314610e7057508063091d278814610e52578063095ea7b314610e2c57806318160ddd14610e0e57806323b872dd14610d8d578063313ce56714610d6c5780633ce4a5bc14610d3d57806342966c6814610d2057806347e7ef2414610bb95780634d8943bb14610b9b57806370a0823114610b6157806385e1f4d014610b265780638b851b9514610afc57806395d89b4114610a2c578063a3413d03146109d1578063a9059cbb146109a0578063b84c82461461083b578063c47f0027146106c0578063c70126261461055e578063c835d7cc146104d5578063ccc775991461042f578063d9eeebed14610416578063dd62ed3e146103c5578063eddeb12314610365578063f2441b321461033c578063f687d12a146102cb5763fc5fecd51461014857600080fd5b346102c65760203660031901126102c657600054604051630be1554760e01b81527f00000000000000000000000000000000000000000000000000000000000000006004820181905290916001600160a01b031690602083602481855afa92831561027857600093610295575b506001600160a01b038316156102845760209060246040518094819363d7fd7afb60e01b835260048301525afa90811561027857600091610243575b508015610232576102086102119160043590611095565b600254906110a8565b604080516001600160a01b03939093168352602083019190915290f35b0390f35b630e661aed60e41b60005260046000fd5b906020823d602011610270575b8161025d60209383610f71565b8101031261026d575051386101f1565b80fd5b3d9150610250565b6040513d6000823e3d90fd5b633c7ff9cb60e11b60005260046000fd5b6102b891935060203d6020116102bf575b6102b08183610f71565b810190611076565b91386101b5565b503d6102a6565b600080fd5b346102c65760203660031901126102c65760043573735b14bb79463307aacbed86daf3322b1e6226ab330361032b576020817fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a92600155604051908152a1005b632b2add3d60e01b60005260046000fd5b346102c65760003660031901126102c6576000546040516001600160a01b039091168152602090f35b346102c65760203660031901126102c65760043573735b14bb79463307aacbed86daf3322b1e6226ab330361032b576020817fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f92600255604051908152a1005b346102c65760403660031901126102c6576103de610f45565b6103e6610f5b565b6001600160a01b039182166000908152600460209081526040808320949093168252928352819020549051908152f35b346102c65760003660031901126102c6576102116110b5565b346102c65760203660031901126102c657610448610f45565b73735b14bb79463307aacbed86daf3322b1e6226ab330361032b576001600160a01b0381169081156104c45760088054610100600160a81b03191691811b610100600160a81b03169190911790556040519081527f88815d964e380677e86d817e7d65dea59cb7b4c3b5b7a0c8ec7ea4a74f90a38790602090a1005b63d92e233d60e01b60005260046000fd5b346102c65760203660031901126102c6576104ee610f45565b73735b14bb79463307aacbed86daf3322b1e6226ab330361032b576001600160a01b031680156104c4576020817fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae926bffffffffffffffffffffffff60a01b6000541617600055604051908152a1005b346102c65760403660031901126102c65760043567ffffffffffffffff81116102c657366023820112156102c6576105a0903690602481600401359101610f93565b60206024359160006105b06110b5565b93906064604051809481936323b872dd60e01b835233600484015273735b14bb79463307aacbed86daf3322b1e6226ab602484015288604484015260018060a01b03165af190811561027857600091610681575b5015610670577f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d9559161063684336112c5565b6002549061064f60405193608085526080850190610f04565b946020840152604083015260608201528033930390a2602060405160018152f35b63053e6b6b60e11b60005260046000fd5b6020813d6020116106b8575b8161069a60209383610f71565b810103126106b4575190811515820361026d575084610604565b5080fd5b3d915061068d565b346102c6576106ce36610fda565b73735b14bb79463307aacbed86daf3322b1e6226ab330361032b57805167ffffffffffffffff811161082557610705600654611019565b601f81116107b8575b50602091601f821160011461074c57918192600092610741575b5050600019600383901b1c191660019190911b17600655005b015190508280610728565b601f1982169260066000526000805160206113608339815191529160005b8581106107a057508360019510610787575b505050811b01600655005b015160001960f88460031b161c1916905582808061077c565b9192602060018192868501518155019401920161076a565b6006600052601f820160051c60008051602061136083398151915201906020831061080f575b601f0160051c60008051602061136083398151915201905b818110610803575061070e565b600081556001016107f6565b60008051602061136083398151915291506107de565b634e487b7160e01b600052604160045260246000fd5b346102c65761084936610fda565b73735b14bb79463307aacbed86daf3322b1e6226ab330361032b57805167ffffffffffffffff811161082557610880600754611019565b601f8111610933575b50602091601f82116001146108c7579181926000926108bc575b5050600019600383901b1c191660019190911b17600755005b0151905082806108a3565b601f1982169260076000526000805160206113408339815191529160005b85811061091b57508360019510610902575b505050811b01600755005b015160001960f88460031b161c191690558280806108f7565b919260206001819286850151815501940192016108e5565b6007600052601f820160051c60008051602061134083398151915201906020831061098a575b601f0160051c60008051602061134083398151915201905b81811061097e5750610889565b60008155600101610971565b6000805160206113408339815191529150610959565b346102c65760403660031901126102c6576109c66109bc610f45565b602435903361121f565b602060405160018152f35b346102c65760003660031901126102c6577f00000000000000000000000000000000000000000000000000000000000000006040516003821015610a16576020918152f35b634e487b7160e01b600052602160045260246000fd5b346102c65760003660031901126102c6576040516000600754610a4e81611019565b8084529060018116908115610ad85750600114610a8a575b61022e83610a7681850382610f71565b604051918291602083526020830190610f04565b9190506007600052600080516020611340833981519152916000905b808210610abe57509091508101602001610a76610a66565b919260018160209254838588010152019101909291610aa6565b60ff191660208086019190915291151560051b84019091019150610a769050610a66565b346102c65760003660031901126102c65760088054604051911c6001600160a01b03168152602090f35b346102c65760003660031901126102c65760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346102c65760203660031901126102c6576001600160a01b03610b82610f45565b1660005260036020526020604060002054604051908152f35b346102c65760003660031901126102c6576020600254604051908152f35b346102c65760403660031901126102c657610bd2610f45565b6024359073735b14bb79463307aacbed86daf3322b1e6226ab33141580610d0b575b80610cf3575b610ce2576001600160a01b03169081156104c457610cce81610c3f7f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab3936005546110a8565b6005558360005260036020526040600020610c5b8282546110a8565b90558360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020604051858152a360405173735b14bb79463307aacbed86daf3322b1e6226ab60601b60208201526014815290610cba603483610f71565b604051928392604084526040840190610f04565b9060208301520390a2602060405160018152f35b636edaef2f60e11b60005260046000fd5b506008805433911c6001600160a01b03161415610bfa565b506000546001600160a01b0316331415610bf4565b346102c65760203660031901126102c6576109c6600435336112c5565b346102c65760003660031901126102c657602060405173735b14bb79463307aacbed86daf3322b1e6226ab8152f35b346102c65760003660031901126102c657602060ff60085416604051908152f35b346102c65760603660031901126102c657610da6610f45565b610dae610f5b565b90610dbd60443580938361121f565b6001600160a01b0381166000908152600460209081526040808320338452909152902054828110610dfd576109c692610df591611053565b9033906111b8565b6310bad14760e01b60005260046000fd5b346102c65760003660031901126102c6576020600554604051908152f35b346102c65760403660031901126102c6576109c6610e48610f45565b60243590336111b8565b346102c65760003660031901126102c6576020600154604051908152f35b346102c65760003660031901126102c6576000600654610e8f81611019565b8084529060018116908115610ad85750600114610eb65761022e83610a7681850382610f71565b9190506006600052600080516020611360833981519152916000905b808210610eea57509091508101602001610a76610a66565b919260018160209254838588010152019101909291610ed2565b919082519283825260005b848110610f30575050826000602080949584010152601f8019910116010190565b80602080928401015182828601015201610f0f565b600435906001600160a01b03821682036102c657565b602435906001600160a01b03821682036102c657565b90601f8019910116810190811067ffffffffffffffff82111761082557604052565b92919267ffffffffffffffff82116108255760405191610fbd601f8201601f191660200184610f71565b8294818452818301116102c6578281602093846000960137010152565b60206003198201126102c6576004359067ffffffffffffffff82116102c657806023830112156102c65781602461101693600401359101610f93565b90565b90600182811c92168015611049575b602083101461103357565b634e487b7160e01b600052602260045260246000fd5b91607f1691611028565b9190820391821161106057565b634e487b7160e01b600052601160045260246000fd5b908160209103126102c657516001600160a01b03811681036102c65790565b8181029291811591840414171561106057565b9190820180921161106057565b600054604051630be1554760e01b81527f0000000000000000000000000000000000000000000000000000000000000000600482018190529092916001600160a01b031690602084602481855afa93841561027857600094611197575b506001600160a01b038416156102845760209060246040518094819363d7fd7afb60e01b835260048301525afa90811561027857600091611165575b508015610232576102086110169160015490611095565b906020823d60201161118f575b8161117f60209383610f71565b8101031261026d5750513861114e565b3d9150611172565b6111b191945060203d6020116102bf576102b08183610f71565b9238611112565b6001600160a01b03169081156104c4576001600160a01b03169182156104c45760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260048252604060002085600052825280604060002055604051908152a3565b6001600160a01b03169081156104c4576001600160a01b03169182156104c4578160005260036020526040600020548181106112b457816112837fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93602093611053565b8460005260038352604060002055846000526003825260406000206112a98282546110a8565b9055604051908152a3565b63fe382aa760e01b60005260046000fd5b6001600160a01b031680156104c457806000526003602052604060002054918083106112b45760208161131b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93600096611053565b84865260038352604086205561133381600554611053565b600555604051908152a356fea66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688f652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3fa26469706673582212204c90788866e311a7988ea7e33ebbb42bc4848ee95a9a8938bd2520623824a00064736f6c634300081a0033"; + +type ZRC20ConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: ZRC20ConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class ZRC20__factory extends ContractFactory { + constructor(...args: ZRC20ConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + name_: string, + symbol_: string, + decimals_: BigNumberish, + chainid_: BigNumberish, + coinType_: BigNumberish, + gasLimit_: BigNumberish, + systemContractAddress_: AddressLike, + gatewayAddress_: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction( + name_, + symbol_, + decimals_, + chainid_, + coinType_, + gasLimit_, + systemContractAddress_, + gatewayAddress_, + overrides || {} + ); + } + override deploy( + name_: string, + symbol_: string, + decimals_: BigNumberish, + chainid_: BigNumberish, + coinType_: BigNumberish, + gasLimit_: BigNumberish, + systemContractAddress_: AddressLike, + gatewayAddress_: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy( + name_, + symbol_, + decimals_, + chainid_, + coinType_, + gasLimit_, + systemContractAddress_, + gatewayAddress_, + overrides || {} + ) as Promise< + ZRC20 & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): ZRC20__factory { + return super.connect(runner) as ZRC20__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): ZRC20Interface { + return new Interface(_abi) as ZRC20Interface; + } + static connect(address: string, runner?: ContractRunner | null): ZRC20 { + return new Contract(address, _abi, runner) as unknown as ZRC20; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/index.ts new file mode 100644 index 00000000..7022ef80 --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { ZRC20__factory } from "./ZRC20__factory"; +export { ZRC20Errors__factory } from "./ZRC20Errors__factory"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/index.ts new file mode 100644 index 00000000..42574d2e --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/index.ts @@ -0,0 +1,8 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as systemContractSol from "./SystemContract.sol"; +export * as wzetaSol from "./WZETA.sol"; +export * as zrc20Sol from "./ZRC20.sol"; +export * as interfaces from "./interfaces"; +export { GatewayZEVM__factory } from "./GatewayZEVM__factory"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMErrors__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMErrors__factory.ts new file mode 100644 index 00000000..712a0ae3 --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMErrors__factory.ts @@ -0,0 +1,192 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IGatewayZEVMErrors, + IGatewayZEVMErrorsInterface, +} from "../../../../../../../@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMErrors"; + +const _abi = [ + { + inputs: [], + name: "CallerIsNotProtocol", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "FailedZetaSent", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "GasFeeTransferFailed", + type: "error", + }, + { + inputs: [], + name: "InsufficientGasLimit", + type: "error", + }, + { + inputs: [], + name: "InsufficientZRC20Amount", + type: "error", + }, + { + inputs: [], + name: "InsufficientZetaAmount", + type: "error", + }, + { + inputs: [], + name: "InvalidTarget", + type: "error", + }, + { + inputs: [ + { + internalType: "uint256", + name: "provided", + type: "uint256", + }, + { + internalType: "uint256", + name: "maximum", + type: "uint256", + }, + ], + name: "MessageSizeExceeded", + type: "error", + }, + { + inputs: [], + name: "OnlyWZETAOrProtocol", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "WithdrawalFailed", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "ZRC20BurnFailed", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "ZRC20DepositFailed", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "ZRC20TransferFailed", + type: "error", + }, +] as const; + +export class IGatewayZEVMErrors__factory { + static readonly abi = _abi; + static createInterface(): IGatewayZEVMErrorsInterface { + return new Interface(_abi) as IGatewayZEVMErrorsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IGatewayZEVMErrors { + return new Contract(address, _abi, runner) as unknown as IGatewayZEVMErrors; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMEvents__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMEvents__factory.ts new file mode 100644 index 00000000..29217bf3 --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMEvents__factory.ts @@ -0,0 +1,319 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IGatewayZEVMEvents, + IGatewayZEVMEventsInterface, +} from "../../../../../../../@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMEvents"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "zrc20", + type: "address", + }, + { + indexed: false, + internalType: "bytes", + name: "receiver", + type: "bytes", + }, + { + indexed: false, + internalType: "bytes", + name: "message", + type: "bytes", + }, + { + components: [ + { + internalType: "uint256", + name: "gasLimit", + type: "uint256", + }, + { + internalType: "bool", + name: "isArbitraryCall", + type: "bool", + }, + ], + indexed: false, + internalType: "struct CallOptions", + name: "callOptions", + type: "tuple", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + indexed: false, + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "Called", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: true, + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "receiver", + type: "bytes", + }, + { + indexed: false, + internalType: "address", + name: "zrc20", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "gasfee", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "protocolFlatFee", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "message", + type: "bytes", + }, + { + components: [ + { + internalType: "uint256", + name: "gasLimit", + type: "uint256", + }, + { + internalType: "bool", + name: "isArbitraryCall", + type: "bool", + }, + ], + indexed: false, + internalType: "struct CallOptions", + name: "callOptions", + type: "tuple", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + indexed: false, + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "Withdrawn", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: true, + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "receiver", + type: "bytes", + }, + { + indexed: false, + internalType: "address", + name: "zrc20", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "gasfee", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "protocolFlatFee", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "message", + type: "bytes", + }, + { + components: [ + { + internalType: "uint256", + name: "gasLimit", + type: "uint256", + }, + { + internalType: "bool", + name: "isArbitraryCall", + type: "bool", + }, + ], + indexed: false, + internalType: "struct CallOptions", + name: "callOptions", + type: "tuple", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + indexed: false, + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "WithdrawnAndCalled", + type: "event", + }, +] as const; + +export class IGatewayZEVMEvents__factory { + static readonly abi = _abi; + static createInterface(): IGatewayZEVMEventsInterface { + return new Interface(_abi) as IGatewayZEVMEventsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IGatewayZEVMEvents { + return new Contract(address, _abi, runner) as unknown as IGatewayZEVMEvents; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVM__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVM__factory.ts new file mode 100644 index 00000000..e96c8f2c --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVM__factory.ts @@ -0,0 +1,1080 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IGatewayZEVM, + IGatewayZEVMInterface, +} from "../../../../../../../@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVM"; + +const _abi = [ + { + inputs: [], + name: "CallerIsNotProtocol", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "FailedZetaSent", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "GasFeeTransferFailed", + type: "error", + }, + { + inputs: [], + name: "InsufficientGasLimit", + type: "error", + }, + { + inputs: [], + name: "InsufficientZRC20Amount", + type: "error", + }, + { + inputs: [], + name: "InsufficientZetaAmount", + type: "error", + }, + { + inputs: [], + name: "InvalidTarget", + type: "error", + }, + { + inputs: [ + { + internalType: "uint256", + name: "provided", + type: "uint256", + }, + { + internalType: "uint256", + name: "maximum", + type: "uint256", + }, + ], + name: "MessageSizeExceeded", + type: "error", + }, + { + inputs: [], + name: "OnlyWZETAOrProtocol", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "WithdrawalFailed", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "ZRC20BurnFailed", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "ZRC20DepositFailed", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "ZRC20TransferFailed", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "zrc20", + type: "address", + }, + { + indexed: false, + internalType: "bytes", + name: "receiver", + type: "bytes", + }, + { + indexed: false, + internalType: "bytes", + name: "message", + type: "bytes", + }, + { + components: [ + { + internalType: "uint256", + name: "gasLimit", + type: "uint256", + }, + { + internalType: "bool", + name: "isArbitraryCall", + type: "bool", + }, + ], + indexed: false, + internalType: "struct CallOptions", + name: "callOptions", + type: "tuple", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + indexed: false, + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "Called", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: true, + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "receiver", + type: "bytes", + }, + { + indexed: false, + internalType: "address", + name: "zrc20", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "gasfee", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "protocolFlatFee", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "message", + type: "bytes", + }, + { + components: [ + { + internalType: "uint256", + name: "gasLimit", + type: "uint256", + }, + { + internalType: "bool", + name: "isArbitraryCall", + type: "bool", + }, + ], + indexed: false, + internalType: "struct CallOptions", + name: "callOptions", + type: "tuple", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + indexed: false, + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "Withdrawn", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: true, + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "receiver", + type: "bytes", + }, + { + indexed: false, + internalType: "address", + name: "zrc20", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "gasfee", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "protocolFlatFee", + type: "uint256", + }, + { + indexed: false, + internalType: "bytes", + name: "message", + type: "bytes", + }, + { + components: [ + { + internalType: "uint256", + name: "gasLimit", + type: "uint256", + }, + { + internalType: "bool", + name: "isArbitraryCall", + type: "bool", + }, + ], + indexed: false, + internalType: "struct CallOptions", + name: "callOptions", + type: "tuple", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + indexed: false, + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "WithdrawnAndCalled", + type: "event", + }, + { + inputs: [ + { + internalType: "bytes", + name: "receiver", + type: "bytes", + }, + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "bytes", + name: "message", + type: "bytes", + }, + { + components: [ + { + internalType: "uint256", + name: "gasLimit", + type: "uint256", + }, + { + internalType: "bool", + name: "isArbitraryCall", + type: "bool", + }, + ], + internalType: "struct CallOptions", + name: "callOptions", + type: "tuple", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "call", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "address", + name: "target", + type: "address", + }, + ], + name: "deposit", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "bytes", + name: "sender", + type: "bytes", + }, + { + internalType: "address", + name: "senderEVM", + type: "address", + }, + { + internalType: "uint256", + name: "chainID", + type: "uint256", + }, + ], + internalType: "struct MessageContext", + name: "context", + type: "tuple", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes", + name: "message", + type: "bytes", + }, + ], + name: "depositAndCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "bytes", + name: "sender", + type: "bytes", + }, + { + internalType: "address", + name: "senderEVM", + type: "address", + }, + { + internalType: "uint256", + name: "chainID", + type: "uint256", + }, + ], + internalType: "struct MessageContext", + name: "context", + type: "tuple", + }, + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes", + name: "message", + type: "bytes", + }, + ], + name: "depositAndCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "address", + name: "target", + type: "address", + }, + { + components: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + ], + internalType: "struct RevertContext", + name: "revertContext", + type: "tuple", + }, + ], + name: "depositAndRevert", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "bytes", + name: "sender", + type: "bytes", + }, + { + internalType: "address", + name: "senderEVM", + type: "address", + }, + { + internalType: "uint256", + name: "chainID", + type: "uint256", + }, + ], + internalType: "struct MessageContext", + name: "context", + type: "tuple", + }, + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes", + name: "message", + type: "bytes", + }, + ], + name: "execute", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + components: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + ], + internalType: "struct RevertContext", + name: "revertContext", + type: "tuple", + }, + ], + name: "executeRevert", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "receiver", + type: "bytes", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "withdraw", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "receiver", + type: "bytes", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "withdraw", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "receiver", + type: "bytes", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "bytes", + name: "message", + type: "bytes", + }, + { + components: [ + { + internalType: "uint256", + name: "gasLimit", + type: "uint256", + }, + { + internalType: "bool", + name: "isArbitraryCall", + type: "bool", + }, + ], + internalType: "struct CallOptions", + name: "callOptions", + type: "tuple", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "withdrawAndCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "receiver", + type: "bytes", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "bytes", + name: "message", + type: "bytes", + }, + { + components: [ + { + internalType: "uint256", + name: "gasLimit", + type: "uint256", + }, + { + internalType: "bool", + name: "isArbitraryCall", + type: "bool", + }, + ], + internalType: "struct CallOptions", + name: "callOptions", + type: "tuple", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "withdrawAndCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class IGatewayZEVM__factory { + static readonly abi = _abi; + static createInterface(): IGatewayZEVMInterface { + return new Interface(_abi) as IGatewayZEVMInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IGatewayZEVM { + return new Contract(address, _abi, runner) as unknown as IGatewayZEVM; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/index.ts new file mode 100644 index 00000000..0b6212ee --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IGatewayZEVM__factory } from "./IGatewayZEVM__factory"; +export { IGatewayZEVMErrors__factory } from "./IGatewayZEVMErrors__factory"; +export { IGatewayZEVMEvents__factory } from "./IGatewayZEVMEvents__factory"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/ISystem__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/ISystem__factory.ts new file mode 100644 index 00000000..36f4732d --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/ISystem__factory.ts @@ -0,0 +1,118 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + ISystem, + ISystemInterface, +} from "../../../../../../@zetachain/protocol-contracts/contracts/zevm/interfaces/ISystem"; + +const _abi = [ + { + inputs: [], + name: "FUNGIBLE_MODULE_ADDRESS", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainID", + type: "uint256", + }, + ], + name: "gasCoinZRC20ByChainId", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainID", + type: "uint256", + }, + ], + name: "gasPriceByChainId", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainID", + type: "uint256", + }, + ], + name: "gasZetaPoolByChainId", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "uniswapv2FactoryAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "wZetaContractAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +export class ISystem__factory { + static readonly abi = _abi; + static createInterface(): ISystemInterface { + return new Interface(_abi) as ISystemInterface; + } + static connect(address: string, runner?: ContractRunner | null): ISystem { + return new Contract(address, _abi, runner) as unknown as ISystem; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/IWETH9__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/IWETH9__factory.ts new file mode 100644 index 00000000..ff6ed568 --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/IWETH9__factory.ts @@ -0,0 +1,263 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IWETH9, + IWETH9Interface, +} from "../../../../../../../@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/IWETH9"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "dst", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "wad", + type: "uint256", + }, + ], + name: "Deposit", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "src", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "wad", + type: "uint256", + }, + ], + name: "Withdrawal", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "wad", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "deposit", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "wad", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "wad", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "wad", + type: "uint256", + }, + ], + name: "withdraw", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class IWETH9__factory { + static readonly abi = _abi; + static createInterface(): IWETH9Interface { + return new Interface(_abi) as IWETH9Interface; + } + static connect(address: string, runner?: ContractRunner | null): IWETH9 { + return new Contract(address, _abi, runner) as unknown as IWETH9; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/index.ts new file mode 100644 index 00000000..d3b0ed8d --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IWETH9__factory } from "./IWETH9__factory"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata__factory.ts new file mode 100644 index 00000000..2f0e34f1 --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata__factory.ts @@ -0,0 +1,358 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IZRC20Metadata, + IZRC20MetadataInterface, +} from "../../../../../../../@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata"; + +const _abi = [ + { + inputs: [], + name: "GAS_LIMIT", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "PROTOCOL_FLAT_FEE", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "burn", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "deposit", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "newName", + type: "string", + }, + ], + name: "setName", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "newSymbol", + type: "string", + }, + ], + name: "setSymbol", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "to", + type: "bytes", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "withdraw", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "withdrawGasFee", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "gasLimit", + type: "uint256", + }, + ], + name: "withdrawGasFeeWithGasLimit", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +export class IZRC20Metadata__factory { + static readonly abi = _abi; + static createInterface(): IZRC20MetadataInterface { + return new Interface(_abi) as IZRC20MetadataInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IZRC20Metadata { + return new Contract(address, _abi, runner) as unknown as IZRC20Metadata; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20__factory.ts new file mode 100644 index 00000000..a00ffa3b --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20__factory.ts @@ -0,0 +1,316 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IZRC20, + IZRC20Interface, +} from "../../../../../../../@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20"; + +const _abi = [ + { + inputs: [], + name: "GAS_LIMIT", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "PROTOCOL_FLAT_FEE", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "burn", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "deposit", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "newName", + type: "string", + }, + ], + name: "setName", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "newSymbol", + type: "string", + }, + ], + name: "setSymbol", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "to", + type: "bytes", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "withdraw", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "withdrawGasFee", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "gasLimit", + type: "uint256", + }, + ], + name: "withdrawGasFeeWithGasLimit", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +export class IZRC20__factory { + static readonly abi = _abi; + static createInterface(): IZRC20Interface { + return new Interface(_abi) as IZRC20Interface; + } + static connect(address: string, runner?: ContractRunner | null): IZRC20 { + return new Contract(address, _abi, runner) as unknown as IZRC20; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/ZRC20Events__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/ZRC20Events__factory.ts new file mode 100644 index 00000000..445a180b --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/ZRC20Events__factory.ts @@ -0,0 +1,186 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + ZRC20Events, + ZRC20EventsInterface, +} from "../../../../../../../@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/ZRC20Events"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes", + name: "from", + type: "bytes", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Deposit", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "gasLimit", + type: "uint256", + }, + ], + name: "UpdatedGasLimit", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "gateway", + type: "address", + }, + ], + name: "UpdatedGateway", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "protocolFlatFee", + type: "uint256", + }, + ], + name: "UpdatedProtocolFlatFee", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "systemContract", + type: "address", + }, + ], + name: "UpdatedSystemContract", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: false, + internalType: "bytes", + name: "to", + type: "bytes", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "gasFee", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "protocolFlatFee", + type: "uint256", + }, + ], + name: "Withdrawal", + type: "event", + }, +] as const; + +export class ZRC20Events__factory { + static readonly abi = _abi; + static createInterface(): ZRC20EventsInterface { + return new Interface(_abi) as ZRC20EventsInterface; + } + static connect(address: string, runner?: ContractRunner | null): ZRC20Events { + return new Contract(address, _abi, runner) as unknown as ZRC20Events; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/index.ts new file mode 100644 index 00000000..98e010d3 --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IZRC20__factory } from "./IZRC20__factory"; +export { IZRC20Metadata__factory } from "./IZRC20Metadata__factory"; +export { ZRC20Events__factory } from "./ZRC20Events__factory"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/UniversalContract__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/UniversalContract__factory.ts new file mode 100644 index 00000000..885b10bb --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/UniversalContract__factory.ts @@ -0,0 +1,70 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + UniversalContract, + UniversalContractInterface, +} from "../../../../../../../@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/UniversalContract"; + +const _abi = [ + { + inputs: [ + { + components: [ + { + internalType: "bytes", + name: "sender", + type: "bytes", + }, + { + internalType: "address", + name: "senderEVM", + type: "address", + }, + { + internalType: "uint256", + name: "chainID", + type: "uint256", + }, + ], + internalType: "struct MessageContext", + name: "context", + type: "tuple", + }, + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "message", + type: "bytes", + }, + ], + name: "onCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class UniversalContract__factory { + static readonly abi = _abi; + static createInterface(): UniversalContractInterface { + return new Interface(_abi) as UniversalContractInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): UniversalContract { + return new Contract(address, _abi, runner) as unknown as UniversalContract; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/ZContract__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/ZContract__factory.ts new file mode 100644 index 00000000..85ad324a --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/ZContract__factory.ts @@ -0,0 +1,67 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + ZContract, + ZContractInterface, +} from "../../../../../../../@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/ZContract"; + +const _abi = [ + { + inputs: [ + { + components: [ + { + internalType: "bytes", + name: "origin", + type: "bytes", + }, + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "uint256", + name: "chainID", + type: "uint256", + }, + ], + internalType: "struct zContext", + name: "context", + type: "tuple", + }, + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "message", + type: "bytes", + }, + ], + name: "onCrossChainCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class ZContract__factory { + static readonly abi = _abi; + static createInterface(): ZContractInterface { + return new Interface(_abi) as ZContractInterface; + } + static connect(address: string, runner?: ContractRunner | null): ZContract { + return new Contract(address, _abi, runner) as unknown as ZContract; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/index.ts new file mode 100644 index 00000000..c297a535 --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { UniversalContract__factory } from "./UniversalContract__factory"; +export { ZContract__factory } from "./ZContract__factory"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/index.ts new file mode 100644 index 00000000..b114f19e --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/index.ts @@ -0,0 +1,8 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as iGatewayZevmSol from "./IGatewayZEVM.sol"; +export * as iwzetaSol from "./IWZETA.sol"; +export * as izrc20Sol from "./IZRC20.sol"; +export * as universalContractSol from "./UniversalContract.sol"; +export { ISystem__factory } from "./ISystem__factory"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/index.ts new file mode 100644 index 00000000..6397da09 --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as contracts from "./contracts"; diff --git a/typechain-types/factories/contracts/BytesHelperLib__factory.ts b/typechain-types/factories/contracts/BytesHelperLib__factory.ts new file mode 100644 index 00000000..4db4c7ae --- /dev/null +++ b/typechain-types/factories/contracts/BytesHelperLib__factory.ts @@ -0,0 +1,72 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../common"; +import type { + BytesHelperLib, + BytesHelperLibInterface, +} from "../../contracts/BytesHelperLib"; + +const _abi = [ + { + inputs: [], + name: "OffsetOutOfBounds", + type: "error", + }, +] as const; + +const _bytecode = + "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220b28aa8cd642e8b46a35176c39ed29664d1248d00dd06a6bc3f538c8f0d7d5c9a64736f6c634300081a0033"; + +type BytesHelperLibConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: BytesHelperLibConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class BytesHelperLib__factory extends ContractFactory { + constructor(...args: BytesHelperLibConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + BytesHelperLib & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): BytesHelperLib__factory { + return super.connect(runner) as BytesHelperLib__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): BytesHelperLibInterface { + return new Interface(_abi) as BytesHelperLibInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): BytesHelperLib { + return new Contract(address, _abi, runner) as unknown as BytesHelperLib; + } +} diff --git a/typechain-types/factories/contracts/EthZetaMock.sol/ZetaEthMock__factory.ts b/typechain-types/factories/contracts/EthZetaMock.sol/ZetaEthMock__factory.ts new file mode 100644 index 00000000..02536f7a --- /dev/null +++ b/typechain-types/factories/contracts/EthZetaMock.sol/ZetaEthMock__factory.ts @@ -0,0 +1,400 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + BigNumberish, + AddressLike, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { NonPayableOverrides } from "../../../common"; +import type { + ZetaEthMock, + ZetaEthMockInterface, +} from "../../../contracts/EthZetaMock.sol/ZetaEthMock"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "creator", + type: "address", + }, + { + internalType: "uint256", + name: "initialSupply", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "allowance", + type: "uint256", + }, + { + internalType: "uint256", + name: "needed", + type: "uint256", + }, + ], + name: "ERC20InsufficientAllowance", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "uint256", + name: "balance", + type: "uint256", + }, + { + internalType: "uint256", + name: "needed", + type: "uint256", + }, + ], + name: "ERC20InsufficientBalance", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "approver", + type: "address", + }, + ], + name: "ERC20InvalidApprover", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "receiver", + type: "address", + }, + ], + name: "ERC20InvalidReceiver", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "ERC20InvalidSender", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "ERC20InvalidSpender", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +const _bytecode = + "0x6080604052346103e257610a616040813803918261001c816103e7565b9384928339810103126103e25780516001600160a01b03811691908290036103e2576020015161004c60406103e7565b9160048352635a65746160e01b602084015261006860406103e7565b60048152635a45544160e01b602082015283519092906001600160401b0381116102eb57600354600181811c911680156103d8575b60208210146102cb57601f8111610373575b50602094601f821160011461030c57948192939495600092610301575b50508160011b916000199060031b1c1916176003555b82516001600160401b0381116102eb57600454600181811c911680156102e1575b60208210146102cb57601f8111610266575b506020601f82116001146101ff57819293946000926101f4575b50508160011b916000199060031b1c1916176004555b670de0b6b3a7640000810290808204670de0b6b3a764000014901517156101c85781156101de576002548181018091116101c8576002557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602060009284845283825260408420818154019055604051908152a3604051610654908161040d8239f35b634e487b7160e01b600052601160045260246000fd5b63ec442f0560e01b600052600060045260246000fd5b01519050388061012f565b601f198216906004600052806000209160005b81811061024e57509583600195969710610235575b505050811b01600455610145565b015160001960f88460031b161c19169055388080610227565b9192602060018192868b015181550194019201610212565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c810191602084106102c1575b601f0160051c01905b8181106102b55750610115565b600081556001016102a8565b909150819061029f565b634e487b7160e01b600052602260045260246000fd5b90607f1690610103565b634e487b7160e01b600052604160045260246000fd5b0151905038806100cc565b601f198216956003600052806000209160005b88811061035b57508360019596979810610342575b505050811b016003556100e2565b015160001960f88460031b161c19169055388080610334565b9192602060018192868501518155019401920161031f565b60036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c810191602084106103ce575b601f0160051c01905b8181106103c257506100af565b600081556001016103b5565b90915081906103ac565b90607f169061009d565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176102eb5760405256fe608080604052600436101561001357600080fd5b60003560e01c90816306fdde031461041157508063095ea7b31461038b57806318160ddd1461036d57806323b872dd14610280578063313ce5671461026457806370a082311461022a57806395d89b4114610109578063a9059cbb146100d85763dd62ed3e1461008257600080fd5b346100d35760403660031901126100d35761009b61052d565b6100a3610543565b6001600160a01b039182166000908152600160209081526040808320949093168252928352819020549051908152f35b600080fd5b346100d35760403660031901126100d3576100fe6100f461052d565b6024359033610559565b602060405160018152f35b346100d35760003660031901126100d35760405160006004548060011c90600181168015610220575b60208310811461020c578285529081156101f05750600114610199575b50819003601f01601f191681019067ffffffffffffffff8211818310176101835761017f829182604052826104e4565b0390f35b634e487b7160e01b600052604160045260246000fd5b905060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b6000905b8282106101da5750602091508201018261014f565b60018160209254838588010152019101906101c5565b90506020925060ff191682840152151560051b8201018261014f565b634e487b7160e01b84526022600452602484fd5b91607f1691610132565b346100d35760203660031901126100d3576001600160a01b0361024b61052d565b1660005260006020526020604060002054604051908152f35b346100d35760003660031901126100d357602060405160128152f35b346100d35760603660031901126100d35761029961052d565b6102a1610543565b6001600160a01b03821660008181526001602090815260408083203384529091529020549092604435929160001981106102e1575b506100fe9350610559565b83811061035057841561033a573315610324576100fe946000526001602052604060002060018060a01b03331660005260205283604060002091039055846102d6565b634a1406b160e11b600052600060045260246000fd5b63e602df0560e01b600052600060045260246000fd5b8390637dc7a0d960e11b6000523360045260245260445260646000fd5b346100d35760003660031901126100d3576020600254604051908152f35b346100d35760403660031901126100d3576103a461052d565b60243590331561033a576001600160a01b031690811561032457336000526001602052604060002082600052602052806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346100d35760003660031901126100d35760006003548060011c906001811680156104da575b60208310811461020c578285529081156101f057506001146104835750819003601f01601f191681019067ffffffffffffffff8211818310176101835761017f829182604052826104e4565b905060036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b6000905b8282106104c45750602091508201018261014f565b60018160209254838588010152019101906104af565b91607f1691610437565b91909160208152825180602083015260005b818110610517575060409293506000838284010152601f8019910116010190565b80602080928701015160408286010152016104f6565b600435906001600160a01b03821682036100d357565b602435906001600160a01b03821682036100d357565b6001600160a01b0316908115610608576001600160a01b03169182156105f25760008281528060205260408120548281106105d85791604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815280845220818154019055604051908152a3565b916064928463391434e360e21b8452600452602452604452fd5b63ec442f0560e01b600052600060045260246000fd5b634b637e8f60e11b600052600060045260246000fdfea2646970667358221220aefcdd77b898c83c92220d43b3c783a7de1cc61d4d84f1806732afac4c5815a864736f6c634300081a0033"; + +type ZetaEthMockConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: ZetaEthMockConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class ZetaEthMock__factory extends ContractFactory { + constructor(...args: ZetaEthMockConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + creator: AddressLike, + initialSupply: BigNumberish, + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(creator, initialSupply, overrides || {}); + } + override deploy( + creator: AddressLike, + initialSupply: BigNumberish, + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy(creator, initialSupply, overrides || {}) as Promise< + ZetaEthMock & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): ZetaEthMock__factory { + return super.connect(runner) as ZetaEthMock__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): ZetaEthMockInterface { + return new Interface(_abi) as ZetaEthMockInterface; + } + static connect(address: string, runner?: ContractRunner | null): ZetaEthMock { + return new Contract(address, _abi, runner) as unknown as ZetaEthMock; + } +} diff --git a/typechain-types/factories/contracts/EthZetaMock.sol/index.ts b/typechain-types/factories/contracts/EthZetaMock.sol/index.ts new file mode 100644 index 00000000..d3eb18fd --- /dev/null +++ b/typechain-types/factories/contracts/EthZetaMock.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { ZetaEthMock__factory } from "./ZetaEthMock__factory"; diff --git a/typechain-types/factories/contracts/OnlySystem__factory.ts b/typechain-types/factories/contracts/OnlySystem__factory.ts new file mode 100644 index 00000000..5392a346 --- /dev/null +++ b/typechain-types/factories/contracts/OnlySystem__factory.ts @@ -0,0 +1,75 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../common"; +import type { + OnlySystem, + OnlySystemInterface, +} from "../../contracts/OnlySystem"; + +const _abi = [ + { + inputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + name: "OnlySystemContract", + type: "error", + }, +] as const; + +const _bytecode = + "0x60808060405234601357603a908160198239f35b600080fdfe600080fdfea2646970667358221220925e47bcf7488256883aaad419709174945c910212ddca190c45335344b1674c64736f6c634300081a0033"; + +type OnlySystemConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: OnlySystemConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class OnlySystem__factory extends ContractFactory { + constructor(...args: OnlySystemConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + OnlySystem & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): OnlySystem__factory { + return super.connect(runner) as OnlySystem__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): OnlySystemInterface { + return new Interface(_abi) as OnlySystemInterface; + } + static connect(address: string, runner?: ContractRunner | null): OnlySystem { + return new Contract(address, _abi, runner) as unknown as OnlySystem; + } +} diff --git a/typechain-types/factories/contracts/Revert.sol/Revertable__factory.ts b/typechain-types/factories/contracts/Revert.sol/Revertable__factory.ts new file mode 100644 index 00000000..4c20ebf3 --- /dev/null +++ b/typechain-types/factories/contracts/Revert.sol/Revertable__factory.ts @@ -0,0 +1,52 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + Revertable, + RevertableInterface, +} from "../../../contracts/Revert.sol/Revertable"; + +const _abi = [ + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "uint64", + name: "amount", + type: "uint64", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + ], + internalType: "struct RevertContext", + name: "revertContext", + type: "tuple", + }, + ], + name: "onRevert", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class Revertable__factory { + static readonly abi = _abi; + static createInterface(): RevertableInterface { + return new Interface(_abi) as RevertableInterface; + } + static connect(address: string, runner?: ContractRunner | null): Revertable { + return new Contract(address, _abi, runner) as unknown as Revertable; + } +} diff --git a/typechain-types/factories/contracts/Revert.sol/index.ts b/typechain-types/factories/contracts/Revert.sol/index.ts new file mode 100644 index 00000000..eefdeed8 --- /dev/null +++ b/typechain-types/factories/contracts/Revert.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { Revertable__factory } from "./Revertable__factory"; diff --git a/typechain-types/factories/contracts/SwapHelperLib__factory.ts b/typechain-types/factories/contracts/SwapHelperLib__factory.ts new file mode 100644 index 00000000..eab4aa5e --- /dev/null +++ b/typechain-types/factories/contracts/SwapHelperLib__factory.ts @@ -0,0 +1,190 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../common"; +import type { + SwapHelperLib, + SwapHelperLibInterface, +} from "../../contracts/SwapHelperLib"; + +const _abi = [ + { + inputs: [], + name: "AdditionsOverflow", + type: "error", + }, + { + inputs: [], + name: "CantBeIdenticalAddresses", + type: "error", + }, + { + inputs: [], + name: "CantBeZeroAddress", + type: "error", + }, + { + inputs: [], + name: "IdenticalAddresses", + type: "error", + }, + { + inputs: [], + name: "InsufficientInputAmount", + type: "error", + }, + { + inputs: [], + name: "InsufficientLiquidity", + type: "error", + }, + { + inputs: [], + name: "InvalidPath", + type: "error", + }, + { + inputs: [], + name: "InvalidPathLength", + type: "error", + }, + { + inputs: [], + name: "MultiplicationsOverflow", + type: "error", + }, + { + inputs: [], + name: "NotEnoughToPayGasFee", + type: "error", + }, + { + inputs: [], + name: "WrongGasContract", + type: "error", + }, + { + inputs: [], + name: "ZeroAddress", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "router", + type: "address", + }, + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + name: "getMinOutAmount", + outputs: [ + { + internalType: "uint256", + name: "minOutAmount", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "factory", + type: "address", + }, + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + ], + name: "uniswapv2PairFor", + outputs: [ + { + internalType: "address", + name: "pair", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, +] as const; + +const _bytecode = + "0x6080806040523460195761081f908161001f823930815050f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c90816354ce67ae14610167575063c63585cc1461003557600080fd5b60603660031901126101625761004961039a565b6100516103b0565b9061005a6103c6565b916001600160a01b0380841690821680821461015157101561014b575b6001600160a01b0381161561013a576040516bffffffffffffffffffffffff19606092831b811660208084019182529590931b166034820152602881526100bf6048826103dc565b51902090604051918383019160ff60f81b83526bffffffffffffffffffffffff199060601b16602184015260358301527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f6055830152605582526101246075836103dc565b905190206040516001600160a01b039091168152f35b633c5a83ed60e11b60005260046000fd5b91610077565b63658f3e7f60e11b60005260046000fd5b600080fd5b60803660031901126101625761017b61039a565b6101836103b0565b61018b6103c6565b63c45a015560e01b845291606435906001600160a01b0316602085600481845afa90811561036c57600495600092610378575b50602090604051968780926315ab88c960e31b82525afa94851561036c5760009561033b575b5060609361023e6040516101f887826103dc565b60028152601f1987013660208301376102108161044b565b6001600160a01b039096169586905261022881610458565b6001600160a01b0390931692839052848461047c565b956040519461024e6080876103dc565b6003865260603660208801376102638661044b565b5261026d85610458565b6001600160a01b039091169052835160021015610325576102909484015261047c565b815160001981019081116102ee576102a89083610468565b51815160001981019081116102ee576102c19083610468565b511015610304575080516000198101919082116102ee576020916102e491610468565b515b604051908152f35b634e487b7160e01b600052601160045260246000fd5b80516000198101925082116102ee5760209161031f91610468565b516102e6565b634e487b7160e01b600052603260045260246000fd5b61035e91955060203d602011610365575b61035681836103dc565b810190610414565b93856101e4565b503d61034c565b6040513d6000823e3d90fd5b602091925061039390823d84116103655761035681836103dc565b91906101be565b600435906001600160a01b038216820361016257565b602435906001600160a01b038216820361016257565b604435906001600160a01b038216820361016257565b90601f8019910116810190811067ffffffffffffffff8211176103fe57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261016257516001600160a01b03811681036101625790565b67ffffffffffffffff81116103fe5760051b60200190565b8051156103255760200190565b8051600110156103255760400190565b80518210156103255760209160051b010190565b9291600281511061070a5780519161049383610433565b926104a160405194856103dc565b8084526104b0601f1991610433565b0136602085013782906104c28461044b565b5260005b825160001981019081116102ee57811015610703576001600160a01b036104ed8285610468565b511690600181018082116102ee576001600160a01b0361050d8287610468565b51168084146106f257808410156106ec57835b6001600160a01b031680156106db5760405163e6a4390560e01b81526004810186905260248101929092526020826044816001600160a01b038e165afa91821561036c576004926060916000916106bd575b50604051630240bc6b60e21b815293849182906001600160a01b03165afa91821561036c57600090819361065b575b506001600160701b038091169216941460001461065657925b6105c48388610468565b518015610645578415801561063d575b61062c576105ee6105e76105f49261074f565b92836107b8565b94610790565b90810190811061061b5761060d6106149160019561072f565b9187610468565b52016104c6565b63a259879560e01b60005260046000fd5b63bb55fd2760e01b60005260046000fd5b5081156105d4565b63098fb56160e01b60005260046000fd5b6105ba565b92506060833d82116106b5575b81610675606093836103dc565b810103126106b2576106868361071b565b9060406106956020860161071b565b94015163ffffffff8116036106b257506001600160701b036105a1565b80fd5b3d9150610668565b6106d5915060203d81116103655761035681836103dc565b38610572565b63d92e233d60e01b60005260046000fd5b80610520565b630bd969eb60e41b60005260046000fd5b5093505050565b6320db826760e01b60005260046000fd5b51906001600160701b038216820361016257565b8115610739570490565b634e487b7160e01b600052601260045260246000fd5b6000908015908115610776575b50156107655790565b632bcb93b560e11b60005260046000fd5b9150506103e5610789818302928361072f565b143861075c565b60009080159081156107a55750156107655790565b9150506103e8610789818302928361072f565b9060009180159182156107d0575b5050156107655790565b808202935091506107e1908361072f565b1438806107c656fea264697066735822122070a6351669c1b21d268fb94ff8237dbe817be27204fac89d4dde0a6ccfcdbef464736f6c634300081a0033"; + +type SwapHelperLibConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: SwapHelperLibConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class SwapHelperLib__factory extends ContractFactory { + constructor(...args: SwapHelperLibConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + SwapHelperLib & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): SwapHelperLib__factory { + return super.connect(runner) as SwapHelperLib__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): SwapHelperLibInterface { + return new Interface(_abi) as SwapHelperLibInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): SwapHelperLib { + return new Contract(address, _abi, runner) as unknown as SwapHelperLib; + } +} diff --git a/typechain-types/factories/contracts/SwapHelpers.sol/SwapLibrary__factory.ts b/typechain-types/factories/contracts/SwapHelpers.sol/SwapLibrary__factory.ts new file mode 100644 index 00000000..c6e66292 --- /dev/null +++ b/typechain-types/factories/contracts/SwapHelpers.sol/SwapLibrary__factory.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../common"; +import type { + SwapLibrary, + SwapLibraryInterface, +} from "../../../contracts/SwapHelpers.sol/SwapLibrary"; + +const _abi = [ + { + inputs: [], + name: "SwapFailed", + type: "error", + }, +] as const; + +const _bytecode = + "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220c7e0188eb4e121ddc2dd94813331a7503ea248a34544a957154ce245307535a964736f6c634300081a0033"; + +type SwapLibraryConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: SwapLibraryConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class SwapLibrary__factory extends ContractFactory { + constructor(...args: SwapLibraryConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + SwapLibrary & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): SwapLibrary__factory { + return super.connect(runner) as SwapLibrary__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): SwapLibraryInterface { + return new Interface(_abi) as SwapLibraryInterface; + } + static connect(address: string, runner?: ContractRunner | null): SwapLibrary { + return new Contract(address, _abi, runner) as unknown as SwapLibrary; + } +} diff --git a/typechain-types/factories/contracts/SwapHelpers.sol/index.ts b/typechain-types/factories/contracts/SwapHelpers.sol/index.ts new file mode 100644 index 00000000..60e7a35b --- /dev/null +++ b/typechain-types/factories/contracts/SwapHelpers.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { SwapLibrary__factory } from "./SwapLibrary__factory"; diff --git a/typechain-types/factories/contracts/SystemContract.sol/SystemContractErrors__factory.ts b/typechain-types/factories/contracts/SystemContract.sol/SystemContractErrors__factory.ts new file mode 100644 index 00000000..fd64cab7 --- /dev/null +++ b/typechain-types/factories/contracts/SystemContract.sol/SystemContractErrors__factory.ts @@ -0,0 +1,54 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + SystemContractErrors, + SystemContractErrorsInterface, +} from "../../../contracts/SystemContract.sol/SystemContractErrors"; + +const _abi = [ + { + inputs: [], + name: "CallerIsNotFungibleModule", + type: "error", + }, + { + inputs: [], + name: "CantBeIdenticalAddresses", + type: "error", + }, + { + inputs: [], + name: "CantBeZeroAddress", + type: "error", + }, + { + inputs: [], + name: "InvalidTarget", + type: "error", + }, + { + inputs: [], + name: "ZeroAddress", + type: "error", + }, +] as const; + +export class SystemContractErrors__factory { + static readonly abi = _abi; + static createInterface(): SystemContractErrorsInterface { + return new Interface(_abi) as SystemContractErrorsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): SystemContractErrors { + return new Contract( + address, + _abi, + runner + ) as unknown as SystemContractErrors; + } +} diff --git a/typechain-types/factories/contracts/SystemContract.sol/SystemContract__factory.ts b/typechain-types/factories/contracts/SystemContract.sol/SystemContract__factory.ts new file mode 100644 index 00000000..77d603c8 --- /dev/null +++ b/typechain-types/factories/contracts/SystemContract.sol/SystemContract__factory.ts @@ -0,0 +1,506 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + AddressLike, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { NonPayableOverrides } from "../../../common"; +import type { + SystemContract, + SystemContractInterface, +} from "../../../contracts/SystemContract.sol/SystemContract"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "wzeta_", + type: "address", + }, + { + internalType: "address", + name: "uniswapv2Factory_", + type: "address", + }, + { + internalType: "address", + name: "uniswapv2Router02_", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [], + name: "CallerIsNotFungibleModule", + type: "error", + }, + { + inputs: [], + name: "CantBeIdenticalAddresses", + type: "error", + }, + { + inputs: [], + name: "CantBeZeroAddress", + type: "error", + }, + { + inputs: [], + name: "InvalidTarget", + type: "error", + }, + { + inputs: [], + name: "ZeroAddress", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "", + type: "address", + }, + ], + name: "SetConnectorZEVM", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "", + type: "uint256", + }, + { + indexed: false, + internalType: "address", + name: "", + type: "address", + }, + ], + name: "SetGasCoin", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "SetGasPrice", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "", + type: "uint256", + }, + { + indexed: false, + internalType: "address", + name: "", + type: "address", + }, + ], + name: "SetGasZetaPool", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "", + type: "address", + }, + ], + name: "SetWZeta", + type: "event", + }, + { + anonymous: false, + inputs: [], + name: "SystemContractDeployed", + type: "event", + }, + { + inputs: [], + name: "FUNGIBLE_MODULE_ADDRESS", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "bytes", + name: "origin", + type: "bytes", + }, + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "uint256", + name: "chainID", + type: "uint256", + }, + ], + internalType: "struct zContext", + name: "context", + type: "tuple", + }, + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes", + name: "message", + type: "bytes", + }, + ], + name: "depositAndCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "gasCoinZRC20ByChainId", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "gasPriceByChainId", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "gasZetaPoolByChainId", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + ], + name: "setConnectorZEVMAddress", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainID", + type: "uint256", + }, + { + internalType: "address", + name: "zrc20", + type: "address", + }, + ], + name: "setGasCoinZRC20", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainID", + type: "uint256", + }, + { + internalType: "uint256", + name: "price", + type: "uint256", + }, + ], + name: "setGasPrice", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainID", + type: "uint256", + }, + { + internalType: "address", + name: "erc20", + type: "address", + }, + ], + name: "setGasZetaPool", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + ], + name: "setWZETAContractAddress", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "uniswapv2FactoryAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "factory", + type: "address", + }, + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + ], + name: "uniswapv2PairFor", + outputs: [ + { + internalType: "address", + name: "pair", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "uniswapv2Router02Address", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "wZetaContractAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "zetaConnectorZEVMAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +const _bytecode = + "0x60c03461010057601f610b3a38819003918201601f19168301916001600160401b0383118484101761010557808492606094604052833981010312610100576100478161011b565b9061006060406100596020840161011b565b920161011b565b9173735b14bb79463307aacbed86daf3322b1e6226ab33036100ef57600380546001600160a01b0319166001600160a01b039290921691909117905560805260a0526040517f80699e81136d69cb8367ad52a994e25c722a86da654b561d0c14b61a777e7ac5600080a1610a0a9081610130823960805181818161018a015261065d015260a051816106d70152f35b632b2add3d60e01b60005260046000fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036101005756fe608080604052600436101561001357600080fd5b600090813560e01c9081630be1554714610817575080631f0e251b146107915780633ce4a5bc14610762578063513a9c051461072f578063569541b914610706578063842da36d146106c157806391dd645f146105f057806397770dff1461054c578063a7cb0507146104da578063c39aca3714610263578063c62178ac1461023a578063c63585cc146101e2578063d7fd7afb146101b9578063d936a012146101745763ee2815ba146100c657600080fd5b34610171576040366003190112610171576004356100e2610864565b9073735b14bb79463307aacbed86daf3322b1e6226ab33036101625780835260016020908152604080852080546001600160a01b0319166001600160a01b0390951694851790558051928352908201929092527fd1b36d30f6248e97c473b4d1348ca164a4ef6759022f54a58ec200326c39c45d91819081015b0390a180f35b632b2add3d60e01b8352600483fd5b80fd5b50346101715780600319360112610171576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461017157602036600319011261017157604060209160043581528083522054604051908152f35b5034610171576060366003190112610171576101fc610849565b610204610864565b604435929091906001600160a01b03841684036101715760206102288585856108d3565b6040516001600160a01b039091168152f35b50346101715780600319360112610171576004546040516001600160a01b039091168152602090f35b50346101715760a0366003190112610171576004359067ffffffffffffffff82116101715781360360606003198201126104d65761029f610864565b92604435906064356001600160a01b038116908190036104d25760843567ffffffffffffffff81116104ce57366023820112156104ce5780600401359367ffffffffffffffff85116104615736602486840101116104615773735b14bb79463307aacbed86daf3322b1e6226ab33036104bf5773735b14bb79463307aacbed86daf3322b1e6226ab831480156104b6575b6104a7576040516311f9fbc960e21b815260048101849052602481018290529697959688966001600160a01b0316906020816044818b865af1801561049c57610465575b50833b156104615760405197636f218ab760e11b8952608060048a01528560040135906022190181121561045d57850160246004820135910167ffffffffffffffff8211610459578136038113610459576103da91606060848c015260e48b01916108b2565b60248601356001600160a01b038116919082900361045957889760248b98968a968a989660448a9861042d9860a48b0152013560c4890152838801526044870152600319868503016064870152016108b2565b03925af1801561044c5761043e5780f35b6104479161087a565b388180f35b50604051903d90823e3d90fd5b8880fd5b8780fd5b8680fd5b6020813d602011610494575b8161047e6020938361087a565b8101031261045d57518015158114610374578780fd5b3d9150610471565b6040513d8a823e3d90fd5b63416aebb560e11b8752600487fd5b50308314610330565b632b2add3d60e01b8752600487fd5b8580fd5b8480fd5b5080fd5b50346101715760403660031901126101715760043560243573735b14bb79463307aacbed86daf3322b1e6226ab330361016257816040917f49f492222906ac486c3c1401fa545626df1f0c0e5a77a05597ea2ed66af9850d93855284602052808386205582519182526020820152a180f35b503461017157602036600319011261017157610566610849565b73735b14bb79463307aacbed86daf3322b1e6226ab33036105e1576001600160a01b031680156105d2576020817fdba79d534382d1a8ae108e4c8ecb27c6ae42ab8b91d44eedf88bd329f3868d5e926001600160601b0360a01b6003541617600355604051908152a180f35b63d92e233d60e01b8252600482fd5b632b2add3d60e01b8252600482fd5b50346101715760403660031901126101715760043561060d610864565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610162576003547f0ecec485166da6139b13bb7e033e9446e2d35348e80ebf1180d4afe2dba1704e9291610681916001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006108d3565b81845260026020908152604080862080546001600160a01b0319166001600160a01b0390941693841790558051938452908301919091528190810161015c565b50346101715780600319360112610171576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101715780600319360112610171576003546040516001600160a01b039091168152602090f35b503461017157602036600319011261017157602090600435815260028252604060018060a01b0391205416604051908152f35b5034610171578060031936011261017157602060405173735b14bb79463307aacbed86daf3322b1e6226ab8152f35b5034610171576020366003190112610171576107ab610849565b73735b14bb79463307aacbed86daf3322b1e6226ab33036105e1576001600160a01b031680156105d2576020817f3ade88e3922d64780e1bf4460d364c2970b69da813f9c0c07a1c187b5647636c926001600160601b0360a01b6004541617600455604051908152a180f35b9050346104d65760203660031901126104d6576004358252600160209081526040909220546001600160a01b03168152f35b600435906001600160a01b038216820361085f57565b600080fd5b602435906001600160a01b038216820361085f57565b90601f8019910116810190811067ffffffffffffffff82111761089c57604052565b634e487b7160e01b600052604160045260246000fd5b908060209392818452848401376000828201840152601f01601f1916010190565b91906001600160a01b038083169082168082146109c35710156109be57905b6001600160a01b038216156109ad576040519060208201926001600160601b03199060601b1683526001600160601b03199060601b1660348201526028815261093c60488261087a565b5190209060405191602083019160ff60f81b83526001600160601b03199060601b16602184015260358301527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f60558301526055825261099d60758361087a565b905190206001600160a01b031690565b633c5a83ed60e11b60005260046000fd5b6108f2565b63658f3e7f60e11b60005260046000fdfea26469706673582212201293d4dc116be41fa957e54d5d4f7a35b05a4e1403d3a1240ee720753de296d664736f6c634300081a0033"; + +type SystemContractConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: SystemContractConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class SystemContract__factory extends ContractFactory { + constructor(...args: SystemContractConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + wzeta_: AddressLike, + uniswapv2Factory_: AddressLike, + uniswapv2Router02_: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction( + wzeta_, + uniswapv2Factory_, + uniswapv2Router02_, + overrides || {} + ); + } + override deploy( + wzeta_: AddressLike, + uniswapv2Factory_: AddressLike, + uniswapv2Router02_: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy( + wzeta_, + uniswapv2Factory_, + uniswapv2Router02_, + overrides || {} + ) as Promise< + SystemContract & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): SystemContract__factory { + return super.connect(runner) as SystemContract__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): SystemContractInterface { + return new Interface(_abi) as SystemContractInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): SystemContract { + return new Contract(address, _abi, runner) as unknown as SystemContract; + } +} diff --git a/typechain-types/factories/contracts/SystemContract.sol/index.ts b/typechain-types/factories/contracts/SystemContract.sol/index.ts new file mode 100644 index 00000000..32da62eb --- /dev/null +++ b/typechain-types/factories/contracts/SystemContract.sol/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { SystemContract__factory } from "./SystemContract__factory"; +export { SystemContractErrors__factory } from "./SystemContractErrors__factory"; diff --git a/typechain-types/factories/contracts/TestZRC20__factory.ts b/typechain-types/factories/contracts/TestZRC20__factory.ts new file mode 100644 index 00000000..a46dc762 --- /dev/null +++ b/typechain-types/factories/contracts/TestZRC20__factory.ts @@ -0,0 +1,508 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + BigNumberish, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { NonPayableOverrides } from "../../common"; +import type { TestZRC20, TestZRC20Interface } from "../../contracts/TestZRC20"; + +const _abi = [ + { + inputs: [ + { + internalType: "uint256", + name: "initialSupply", + type: "uint256", + }, + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "allowance", + type: "uint256", + }, + { + internalType: "uint256", + name: "needed", + type: "uint256", + }, + ], + name: "ERC20InsufficientAllowance", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "uint256", + name: "balance", + type: "uint256", + }, + { + internalType: "uint256", + name: "needed", + type: "uint256", + }, + ], + name: "ERC20InsufficientBalance", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "approver", + type: "address", + }, + ], + name: "ERC20InvalidApprover", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "receiver", + type: "address", + }, + ], + name: "ERC20InvalidReceiver", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "ERC20InvalidSender", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "ERC20InvalidSpender", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "uint256", + name: "offset", + type: "uint256", + }, + { + internalType: "uint256", + name: "size", + type: "uint256", + }, + ], + name: "bytesToAddress", + outputs: [ + { + internalType: "address", + name: "output", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "deposit", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "to", + type: "bytes", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "withdraw", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "withdrawGasFee", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +const _bytecode = + "0x6080604052346103d457610d6580380380610019816103d9565b9283398101906060818303126103d457805160208201519091906001600160401b0381116103d4578361004d9183016103fe565b60408201519093906001600160401b0381116103d45761006d92016103fe565b82519091906001600160401b0381116102dd57600354600181811c911680156103ca575b60208210146102bd57601f8111610365575b506020601f82116001146102fe57819293946000926102f3575b50508160011b916000199060031b1c1916176003555b81516001600160401b0381116102dd57600454600181811c911680156102d3575b60208210146102bd57601f8111610258575b50602092601f82116001146101f357928192936000926101e8575b50508160011b916000199060031b1c1916176004555b670de0b6b3a7640000810290808204670de0b6b3a764000014901517156101bc5733156101d2576002548181018091116101bc57600255600033815280602052604081208281540190556040519182527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203393a36040516108fb908161046a8239f35b634e487b7160e01b600052601160045260246000fd5b63ec442f0560e01b600052600060045260246000fd5b015190503880610121565b601f198216936004600052806000209160005b8681106102405750836001959610610227575b505050811b01600455610137565b015160001960f88460031b161c19169055388080610219565b91926020600181928685015181550194019201610206565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c810191602084106102b3575b601f0160051c01905b8181106102a75750610106565b6000815560010161029a565b9091508190610291565b634e487b7160e01b600052602260045260246000fd5b90607f16906100f4565b634e487b7160e01b600052604160045260246000fd5b0151905038806100bd565b601f198216906003600052806000209160005b81811061034d57509583600195969710610334575b505050811b016003556100d3565b015160001960f88460031b161c19169055388080610326565b9192602060018192868b015181550194019201610311565b60036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c810191602084106103c0575b601f0160051c01905b8181106103b457506100a3565b600081556001016103a7565b909150819061039e565b90607f1690610091565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176102dd57604052565b81601f820112156103d4578051906001600160401b0382116102dd5761042d601f8301601f19166020016103d9565b92828452602083830101116103d45760005b82811061045457505060206000918301015290565b8060208092840101518282870101520161043f56fe6080604052600436101561001257600080fd5b60003560e01c806306fdde03146100e7578063095ea7b3146100e257806318160ddd146100dd57806323b872dd146100d85780632c27d3ab146100d3578063313ce567146100ce57806347e7ef24146100c957806370a08231146100c457806395d89b41146100bf578063a9059cbb146100ba578063c7012626146100b5578063d9eeebed146100b05763dd62ed3e146100ab57600080fd5b610678565b610657565b6105f8565b6105c7565b61050f565b6104d5565b6104b0565b610494565b61040f565b61033d565b61031f565b61025c565b610135565b91909160208152825180602083015260005b81811061011f575060409293506000838284010152601f8019910116010190565b80602080928701015160408286010152016100fe565b3461022b57600036600319011261022b5760405160006003548060011c9060018116908115610221575b60208310821461020d5782855260208501919081156101f457506001146101a1575b61019d84610191818603826106e6565b604051918291826100ec565b0390f35b600360009081529250907fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8184106101e05750500161019182610181565b8054848401526020909301926001016101cd565b60ff191682525090151560051b01905061019182610181565b634e487b7160e01b84526022600452602484fd5b91607f169161015f565b600080fd5b600435906001600160a01b038216820361022b57565b602435906001600160a01b038216820361022b57565b3461022b57604036600319011261022b57610275610230565b6024353315610309576001600160a01b0382169182156102f3576102b9829133600052600160205260406000209060018060a01b0316600052602052604060002090565b5560405190815233907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590602090a3602060405160018152f35b634a1406b160e11b600052600060045260246000fd5b63e602df0560e01b600052600060045260246000fd5b3461022b57600036600319011261022b576020600254604051908152f35b3461022b57606036600319011261022b57610356610230565b61035e610246565b6001600160a01b038216600090815260016020908152604080832033845290915290205491604435919060001984106103a8575b61039c935061076c565b60405160018152602090f35b8284106103c4576103bf8361039c9503338361087b565b610392565b8284637dc7a0d960e11b6000523360045260245260445260646000fd5b9181601f8401121561022b5782359167ffffffffffffffff831161022b576020838186019501011161022b57565b3461022b57606036600319011261022b5760043567ffffffffffffffff811161022b576104409036906004016103e1565b90602435916044359182840180851161047e5760209461046a936104639361070d565b3691610725565b01516040516001600160a01b039091168152f35b634e487b7160e01b600052601160045260246000fd5b3461022b57600036600319011261022b57602060405160128152f35b3461022b57604036600319011261022b576104c9610230565b50602060405160018152f35b3461022b57602036600319011261022b576001600160a01b036104f6610230565b1660005260006020526020604060002054604051908152f35b3461022b57600036600319011261022b5760405160006004548060011c90600181169081156105bd575b60208310821461020d5782855260208501919081156101f4575060011461056a5761019d84610191818603826106e6565b600460009081529250907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8184106105a95750500161019182610181565b805484840152602090930192600101610596565b91607f1691610539565b3461022b57604036600319011261022b576105ed6105e3610230565b602435903361076c565b602060405160018152f35b3461022b57604036600319011261022b5760043567ffffffffffffffff811161022b576106299036906004016103e1565b602435906000906020116106545750601461064c600c61039c9401823691610725565b01513361076c565b80fd5b3461022b57600036600319011261022b576040805130815260006020820152f35b3461022b57604036600319011261022b5760206106c7610696610230565b61069e610246565b6001600160a01b0391821660009081526001855260408082209290931681526020919091522090565b54604051908152f35b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761070857604052565b6106d0565b9093929384831161022b57841161022b578101920390565b92919267ffffffffffffffff8211610708576040519161074f601f8201601f1916602001846106e6565b82948184528183011161022b578281602093846000960137010152565b916001600160a01b038316918215610865576001600160a01b03811693841561084f576001600160a01b03811660009081526020819052604081209091905484811061083357928492610818926107fc7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9761082e97039160018060a01b03166000526000602052604060002090565b55506001600160a01b0316600090815260208190526040902090565b8054820190556040519081529081906020820190565b0390a3565b63391434e360e21b835260048690526024526044849052606482fd5b63ec442f0560e01b600052600060045260246000fd5b634b637e8f60e11b600052600060045260246000fd5b6001600160a01b0316908115610309576001600160a01b038116156102f3576108c291600052600160205260406000209060018060a01b0316600052602052604060002090565b5556fea26469706673582212206eca1443d163d19cbafd73294d08ac479559ec3c8e8000295636d0f82e00871a64736f6c634300081a0033"; + +type TestZRC20ConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: TestZRC20ConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class TestZRC20__factory extends ContractFactory { + constructor(...args: TestZRC20ConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + initialSupply: BigNumberish, + name: string, + symbol: string, + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction( + initialSupply, + name, + symbol, + overrides || {} + ); + } + override deploy( + initialSupply: BigNumberish, + name: string, + symbol: string, + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy( + initialSupply, + name, + symbol, + overrides || {} + ) as Promise< + TestZRC20 & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): TestZRC20__factory { + return super.connect(runner) as TestZRC20__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): TestZRC20Interface { + return new Interface(_abi) as TestZRC20Interface; + } + static connect(address: string, runner?: ContractRunner | null): TestZRC20 { + return new Contract(address, _abi, runner) as unknown as TestZRC20; + } +} diff --git a/typechain-types/factories/contracts/UniversalContract.sol/UniversalContract__factory.ts b/typechain-types/factories/contracts/UniversalContract.sol/UniversalContract__factory.ts new file mode 100644 index 00000000..a88ba4dd --- /dev/null +++ b/typechain-types/factories/contracts/UniversalContract.sol/UniversalContract__factory.ts @@ -0,0 +1,100 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + UniversalContract, + UniversalContractInterface, +} from "../../../contracts/UniversalContract.sol/UniversalContract"; + +const _abi = [ + { + inputs: [ + { + components: [ + { + internalType: "bytes", + name: "origin", + type: "bytes", + }, + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "uint256", + name: "chainID", + type: "uint256", + }, + ], + internalType: "struct zContext", + name: "context", + type: "tuple", + }, + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "message", + type: "bytes", + }, + ], + name: "onCrossChainCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "uint64", + name: "amount", + type: "uint64", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + ], + internalType: "struct RevertContext", + name: "revertContext", + type: "tuple", + }, + ], + name: "onRevert", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class UniversalContract__factory { + static readonly abi = _abi; + static createInterface(): UniversalContractInterface { + return new Interface(_abi) as UniversalContractInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): UniversalContract { + return new Contract(address, _abi, runner) as unknown as UniversalContract; + } +} diff --git a/typechain-types/factories/contracts/UniversalContract.sol/ZContract__factory.ts b/typechain-types/factories/contracts/UniversalContract.sol/ZContract__factory.ts new file mode 100644 index 00000000..cd0793f9 --- /dev/null +++ b/typechain-types/factories/contracts/UniversalContract.sol/ZContract__factory.ts @@ -0,0 +1,67 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + ZContract, + ZContractInterface, +} from "../../../contracts/UniversalContract.sol/ZContract"; + +const _abi = [ + { + inputs: [ + { + components: [ + { + internalType: "bytes", + name: "origin", + type: "bytes", + }, + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "uint256", + name: "chainID", + type: "uint256", + }, + ], + internalType: "struct zContext", + name: "context", + type: "tuple", + }, + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "message", + type: "bytes", + }, + ], + name: "onCrossChainCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class ZContract__factory { + static readonly abi = _abi; + static createInterface(): ZContractInterface { + return new Interface(_abi) as ZContractInterface; + } + static connect(address: string, runner?: ContractRunner | null): ZContract { + return new Contract(address, _abi, runner) as unknown as ZContract; + } +} diff --git a/typechain-types/factories/contracts/UniversalContract.sol/index.ts b/typechain-types/factories/contracts/UniversalContract.sol/index.ts new file mode 100644 index 00000000..c297a535 --- /dev/null +++ b/typechain-types/factories/contracts/UniversalContract.sol/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { UniversalContract__factory } from "./UniversalContract__factory"; +export { ZContract__factory } from "./ZContract__factory"; diff --git a/typechain-types/factories/contracts/index.ts b/typechain-types/factories/contracts/index.ts new file mode 100644 index 00000000..04d4ea01 --- /dev/null +++ b/typechain-types/factories/contracts/index.ts @@ -0,0 +1,14 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as ethZetaMockSol from "./EthZetaMock.sol"; +export * as revertSol from "./Revert.sol"; +export * as swapHelpersSol from "./SwapHelpers.sol"; +export * as systemContractSol from "./SystemContract.sol"; +export * as universalContractSol from "./UniversalContract.sol"; +export * as shared from "./shared"; +export * as testing from "./testing"; +export { BytesHelperLib__factory } from "./BytesHelperLib__factory"; +export { OnlySystem__factory } from "./OnlySystem__factory"; +export { SwapHelperLib__factory } from "./SwapHelperLib__factory"; +export { TestZRC20__factory } from "./TestZRC20__factory"; diff --git a/typechain-types/factories/contracts/shared/MockZRC20__factory.ts b/typechain-types/factories/contracts/shared/MockZRC20__factory.ts new file mode 100644 index 00000000..59c9ea33 --- /dev/null +++ b/typechain-types/factories/contracts/shared/MockZRC20__factory.ts @@ -0,0 +1,600 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + BigNumberish, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { NonPayableOverrides } from "../../../common"; +import type { + MockZRC20, + MockZRC20Interface, +} from "../../../contracts/shared/MockZRC20"; + +const _abi = [ + { + inputs: [ + { + internalType: "uint256", + name: "initialSupply", + type: "uint256", + }, + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "allowance", + type: "uint256", + }, + { + internalType: "uint256", + name: "needed", + type: "uint256", + }, + ], + name: "ERC20InsufficientAllowance", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "uint256", + name: "balance", + type: "uint256", + }, + { + internalType: "uint256", + name: "needed", + type: "uint256", + }, + ], + name: "ERC20InsufficientBalance", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "approver", + type: "address", + }, + ], + name: "ERC20InvalidApprover", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "receiver", + type: "address", + }, + ], + name: "ERC20InvalidReceiver", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "ERC20InvalidSender", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "ERC20InvalidSpender", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: false, + internalType: "bytes", + name: "to", + type: "bytes", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "gasfee", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "protocolFlatFee", + type: "uint256", + }, + ], + name: "Withdrawal", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "uint256", + name: "offset", + type: "uint256", + }, + { + internalType: "uint256", + name: "size", + type: "uint256", + }, + ], + name: "bytesToAddress", + outputs: [ + { + internalType: "address", + name: "output", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "deposit", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "gasFee", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "gasFeeAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "gasFee_", + type: "uint256", + }, + ], + name: "setGasFee", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "gasFeeAddress_", + type: "address", + }, + ], + name: "setGasFeeAddress", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "to", + type: "bytes", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "withdraw", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "withdrawGasFee", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +const _bytecode = + "0x6080604052346103e657610f4780380380610019816103eb565b9283398101906060818303126103e657805160208201519091906001600160401b0381116103e6578361004d918301610410565b60408201519093906001600160401b0381116103e65761006d9201610410565b82519091906001600160401b0381116102ef57600354600181811c911680156103dc575b60208210146102cf57601f8111610377575b506020601f82116001146103105781929394600092610305575b50508160011b916000199060031b1c1916176003555b81516001600160401b0381116102ef57600454600181811c911680156102e5575b60208210146102cf57601f811161026a575b50602092601f821160011461020557928192936000926101fa575b50508160011b916000199060031b1c1916176004555b670de0b6b3a7640000810290808204670de0b6b3a764000014901517156101ce5733156101e4576002548181018091116101ce57600255600033815280602052604081208281540190556040519182527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203393a3600580546001600160a01b03191630179055604051610acb908161047c8239f35b634e487b7160e01b600052601160045260246000fd5b63ec442f0560e01b600052600060045260246000fd5b015190503880610121565b601f198216936004600052806000209160005b8681106102525750836001959610610239575b505050811b01600455610137565b015160001960f88460031b161c1916905538808061022b565b91926020600181928685015181550194019201610218565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c810191602084106102c5575b601f0160051c01905b8181106102b95750610106565b600081556001016102ac565b90915081906102a3565b634e487b7160e01b600052602260045260246000fd5b90607f16906100f4565b634e487b7160e01b600052604160045260246000fd5b0151905038806100bd565b601f198216906003600052806000209160005b81811061035f57509583600195969710610346575b505050811b016003556100d3565b015160001960f88460031b161c19169055388080610338565b9192602060018192868b015181550194019201610323565b60036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c810191602084106103d2575b601f0160051c01905b8181106103c657506100a3565b600081556001016103b9565b90915081906103b0565b90607f1690610091565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176102ef57604052565b81601f820112156103e6578051906001600160401b0382116102ef5761043f601f8301601f19166020016103eb565b92828452602083830101116103e65760005b82811061046657505060206000918301015290565b8060208092840101518282870101520161045156fe6080604052600436101561001257600080fd5b60003560e01c806306fdde0314610127578063095ea7b31461012257806318160ddd1461011d57806323b872dd146101185780632c27d3ab14610113578063313ce5671461010e5780633e8a4ee11461010957806347e7ef2414610104578063658612e9146100ff578063678edca3146100fa57806370a08231146100f557806395d89b41146100f0578063a9059cbb146100eb578063c7012626146100e6578063d9eeebed146100e1578063dd62ed3e146100dc5763f7d8f616146100d757600080fd5b610831565b6107d9565b6107ac565b6106ae565b61067d565b6105c5565b61058b565b610572565b610554565b61052f565b6104f0565b6104d4565b61044f565b61037d565b61035f565b61029c565b610175565b91909160208152825180602083015260005b81811061015f575060409293506000838284010152601f8019910116010190565b806020809287010151604082860101520161013e565b3461026b57600036600319011261026b5760405160006003548060011c9060018116908115610261575b60208310821461024d57828552602085019190811561023457506001146101e1575b6101dd846101d181860382610870565b6040519182918261012c565b0390f35b600360009081529250907fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b818410610220575050016101d1826101c1565b80548484015260209093019260010161020d565b60ff191682525090151560051b0190506101d1826101c1565b634e487b7160e01b84526022600452602484fd5b91607f169161019f565b600080fd5b600435906001600160a01b038216820361026b57565b602435906001600160a01b038216820361026b57565b3461026b57604036600319011261026b576102b5610270565b6024353315610349576001600160a01b038216918215610333576102f9829133600052600160205260406000209060018060a01b0316600052602052604060002090565b5560405190815233907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590602090a3602060405160018152f35b634a1406b160e11b600052600060045260246000fd5b63e602df0560e01b600052600060045260246000fd5b3461026b57600036600319011261026b576020600254604051908152f35b3461026b57606036600319011261026b57610396610270565b61039e610286565b6001600160a01b038216600090815260016020908152604080832033845290915290205491604435919060001984106103e8575b6103dc9350610906565b60405160018152602090f35b828410610404576103ff836103dc95033383610a4b565b6103d2565b8284637dc7a0d960e11b6000523360045260245260445260646000fd5b9181601f8401121561026b5782359167ffffffffffffffff831161026b576020838186019501011161026b57565b3461026b57606036600319011261026b5760043567ffffffffffffffff811161026b57610480903690600401610421565b9060243591604435918284018085116104be576020946104aa936104a393610897565b36916108af565b01516040516001600160a01b039091168152f35b634e487b7160e01b600052601160045260246000fd5b3461026b57600036600319011261026b57602060405160128152f35b3461026b57602036600319011261026b576001600160a01b03610511610270565b166bffffffffffffffffffffffff60a01b6005541617600555600080f35b3461026b57604036600319011261026b57610548610270565b50602060405160018152f35b3461026b57600036600319011261026b576020600654604051908152f35b3461026b57602036600319011261026b57600435600655005b3461026b57602036600319011261026b576001600160a01b036105ac610270565b1660005260006020526020604060002054604051908152f35b3461026b57600036600319011261026b5760405160006004548060011c9060018116908115610673575b60208310821461024d5782855260208501919081156102345750600114610620576101dd846101d181860382610870565b600460009081529250907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b81841061065f575050016101d1826101c1565b80548484015260209093019260010161064c565b91607f16916105ef565b3461026b57604036600319011261026b576106a3610699610270565b6024359033610906565b602060405160018152f35b3461026b57604036600319011261026b5760043567ffffffffffffffff811161026b576107696106e56101dd923690600401610421565b9060243591602081101561077b577f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d95561071e8284610a33565b925b60065483604051926080845281608085015260a0840137600060a0858401015285602083015260408201526000606082015260a0813394601f80199101168101030190a26108f6565b60405190151581529081906020820190565b7f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d9556107a68284610a15565b92610720565b3461026b57600036600319011261026b57604060018060a01b036005541660065482519182526020820152f35b3461026b57604036600319011261026b5760206108286107f7610270565b6107ff610286565b6001600160a01b0391821660009081526001855260408082209290931681526020919091522090565b54604051908152f35b3461026b57600036600319011261026b576005546040516001600160a01b039091168152602090f35b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761089257604052565b61085a565b9093929384831161026b57841161026b578101920390565b92919267ffffffffffffffff821161089257604051916108d9601f8201601f191660200184610870565b82948184528183011161026b578281602093846000960137010152565b906109019133610906565b600190565b916001600160a01b0383169182156109ff576001600160a01b0381169384156109e9576001600160a01b0381166000908152602081905260408120909190548481106109cd579284926109b2926109967fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef976109c897039160018060a01b03166000526000602052604060002090565b55506001600160a01b0316600090815260208190526040902090565b8054820190556040519081529081906020820190565b0390a3565b63391434e360e21b835260048690526024526044849052606482fd5b63ec442f0560e01b600052600060045260246000fd5b634b637e8f60e11b600052600060045260246000fd5b9060201161026b57610a2e600c601492018236916108af565b015190565b9060141161026b57610a2e81601492508236916108af565b6001600160a01b0316908115610349576001600160a01b0381161561033357610a9291600052600160205260406000209060018060a01b0316600052602052604060002090565b5556fea2646970667358221220477e1e9f73c860ed10c7bda1f9f4af9df34a1271ce5520fe53fe1ebb73297e0564736f6c634300081a0033"; + +type MockZRC20ConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: MockZRC20ConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class MockZRC20__factory extends ContractFactory { + constructor(...args: MockZRC20ConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + initialSupply: BigNumberish, + name: string, + symbol: string, + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction( + initialSupply, + name, + symbol, + overrides || {} + ); + } + override deploy( + initialSupply: BigNumberish, + name: string, + symbol: string, + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy( + initialSupply, + name, + symbol, + overrides || {} + ) as Promise< + MockZRC20 & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): MockZRC20__factory { + return super.connect(runner) as MockZRC20__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): MockZRC20Interface { + return new Interface(_abi) as MockZRC20Interface; + } + static connect(address: string, runner?: ContractRunner | null): MockZRC20 { + return new Contract(address, _abi, runner) as unknown as MockZRC20; + } +} diff --git a/typechain-types/factories/contracts/shared/TestUniswapRouter__factory.ts b/typechain-types/factories/contracts/shared/TestUniswapRouter__factory.ts new file mode 100644 index 00000000..ef58b5c0 --- /dev/null +++ b/typechain-types/factories/contracts/shared/TestUniswapRouter__factory.ts @@ -0,0 +1,623 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + AddressLike, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { NonPayableOverrides } from "../../../common"; +import type { + TestUniswapRouter, + TestUniswapRouterInterface, +} from "../../../contracts/shared/TestUniswapRouter"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "_factory", + type: "address", + }, + { + internalType: "address", + name: "_WETH", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [], + name: "AdditionsOverflow", + type: "error", + }, + { + inputs: [], + name: "Expired", + type: "error", + }, + { + inputs: [], + name: "IdenticalAddresses", + type: "error", + }, + { + inputs: [], + name: "InsufficientAAmount", + type: "error", + }, + { + inputs: [], + name: "InsufficientAmount", + type: "error", + }, + { + inputs: [], + name: "InsufficientBAmount", + type: "error", + }, + { + inputs: [], + name: "InsufficientInputAmount", + type: "error", + }, + { + inputs: [], + name: "InsufficientLiquidity", + type: "error", + }, + { + inputs: [], + name: "InsufficientOutputAmount", + type: "error", + }, + { + inputs: [], + name: "InvalidPath", + type: "error", + }, + { + inputs: [], + name: "MultiplicationsOverflow", + type: "error", + }, + { + inputs: [], + name: "SubtractionsUnderflow", + type: "error", + }, + { + inputs: [], + name: "ZeroAddress", + type: "error", + }, + { + inputs: [], + name: "WETH", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + { + internalType: "uint256", + name: "amountADesired", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountBDesired", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountAMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountBMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "addLiquidity", + outputs: [ + { + internalType: "uint256", + name: "amountA", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountB", + type: "uint256", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amountTokenDesired", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountTokenMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETHMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "addLiquidityETH", + outputs: [ + { + internalType: "uint256", + name: "amountToken", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETH", + type: "uint256", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "factory", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveOut", + type: "uint256", + }, + ], + name: "getAmountIn", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveOut", + type: "uint256", + }, + ], + name: "getAmountOut", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + ], + name: "getAmountsIn", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + ], + name: "getAmountsOut", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountA", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveA", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveB", + type: "uint256", + }, + ], + name: "quote", + outputs: [ + { + internalType: "uint256", + name: "amountB", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountAMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountBMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "removeLiquidity", + outputs: [ + { + internalType: "uint256", + name: "amountA", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountB", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountTokenMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETHMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "removeLiquidityETH", + outputs: [ + { + internalType: "uint256", + name: "amountToken", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETH", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapExactTokensForTokens", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountInMax", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapTokensForExactTokens", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + stateMutability: "payable", + type: "receive", + }, +] as const; + +const _bytecode = + "0x60c03460cd57601f611adc38819003918201601f19168301916001600160401b0383118484101760d257808492604094855283398101031260cd57604b602060458360e8565b920160e8565b9060805260a0526040516119e090816100fc823960805181818161013d015281816103ac015281816104a5015281816104eb0152818161056801528181610755015281816108820152818161091d015281816109a70152818161139701526116bf015260a051818181601f0152818161010601528181610705015261097e0152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820360cd5756fe6080604052600436101561004f575b361561001957600080fd5b61004d337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614610ee0565b005b6000803560e01c806302751cec1461095b578063054d50d4146109415780631f00ca741461090557806338ed17391461086157806385f8c259146108475780638803dbee14610734578063ad5c4648146106ef578063ad615dec146106cd578063baa2abde1461051a578063c45a0155146104d5578063d06ca61f1461048d578063e8e33700146103395763f305d719146100ea575061000e565b6100f336610c80565b959394929095421161032a579061012f917f00000000000000000000000000000000000000000000000000000000000000009534908786611692565b94909361016a8561016183867f0000000000000000000000000000000000000000000000000000000000000000611233565b809533906112ac565b6001600160a01b0316803b1561031b57604051630d0e30db60e41b815284816004818a865af1801561031f57908591610306575b505060405163a9059cbb60e01b81526001600160a01b038416600482015260248101879052906020908290604490829088905af19081156102fb576020926101f286959360249387916102ce575b50610ee0565b6040516335313c2160e11b81526001600160a01b0391821660048201529586938492165af19182156102c1578192610288575b50833411610254575b5061025090604051938493846040919493926060820195825260208201520152565b0390f35b8334039034821161027457509061026e6102509233610f3d565b9061022e565b634e487b7160e01b81526011600452602490fd5b9091506020813d6020116102b9575b816102a460209383610ce0565b810103126102b457519038610225565b600080fd5b3d9150610297565b50604051903d90823e3d90fd5b6102ee9150863d88116102f4575b6102e68183610ce0565b810190610ec8565b386101ec565b503d6102dc565b6040513d86823e3d90fd5b8161031091610ce0565b61031b57833861019e565b8380fd5b6040513d87823e3d90fd5b630407b05b60e31b8452600484fd5b503461048a5761010036600319011261048a57610354610c54565b9061035d610c6a565b60c4356001600160a01b03811690819003610486574260e4351061047757916020819260246103e29561039c60a435608435606435604435878d611692565b89856103db6103d0859c9598859e7f0000000000000000000000000000000000000000000000000000000000000000611233565b9788809433906112ac565b33906112ac565b6040516335313c2160e11b815260048101919091529485928391906001600160a01b03165af190811561046b5790610437575b6102509150604051938493846040919493926060820195825260208201520152565b506020813d602011610463575b8161045160209383610ce0565b810103126102b4576102509051610415565b3d9150610444565b604051903d90823e3d90fd5b630407b05b60e31b8352600483fd5b8280fd5b80fd5b503461048a576102506104c96104a236610d8b565b907f0000000000000000000000000000000000000000000000000000000000000000611175565b60405191829182610dcf565b503461048a578060031936011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461048a5760e036600319011261048a57610534610c54565b61053c610c6a565b9060a4356001600160a01b0381169081900361031b574260c4351061032a57906105cc849261058c85847f0000000000000000000000000000000000000000000000000000000000000000611233565b6040516323b872dd60e01b81523360048201526001600160a01b039091166024820181905260448035908301529092909190602090849081906064820190565b038188865af190811561031f576040936024926106b0575b508351958693849263226bf2d160e21b845260048401525af19283156102fb5784928594610672575b506106189082611639565b506001600160a01b0391821691160361066d57905b606435821061065e57608435811061064f576040809350519182526020820152f35b63ef71d09160e01b8352600483fd5b638dc525d160e01b8352600483fd5b61062d565b925092506040823d6040116106a8575b8161068f60409383610ce0565b8101031261031b5761061860208351930151939061060d565b3d9150610682565b6106c89060203d6020116102f4576102e68183610ce0565b6105e4565b503461048a5760206106e76106e136610cc6565b916115fb565b604051908152f35b503461048a578060031936011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461048a5761074336610e09565b959192939490954211610838576107877f000000000000000000000000000000000000000000000000000000000000000091610780368688610d30565b9083611098565b9461079186610e7d565b5111610829578215610815576107a684610eb4565b916107b085610eb4565b9084600110156108015750926107f46107fb936107e287946102509a976107dc60206104c99b01610eb4565b91611233565b6107eb89610e7d565b519133906112ac565b3691610d30565b8361138f565b634e487b7160e01b81526032600452602490fd5b634e487b7160e01b82526032600452602482fd5b63098fb56160e01b8252600482fd5b630407b05b60e31b8252600482fd5b503461048a5760206106e761085b36610cc6565b91611580565b503461048a5761087036610e09565b959192939490954211610838576108b47f0000000000000000000000000000000000000000000000000000000000000000916108ad368688610d30565b9083611175565b94855160001981019081116108f1576108cd9087610ea0565b51106108e2578215610815576107a684610eb4565b6342301c2360e01b8252600482fd5b634e487b7160e01b84526011600452602484fd5b503461048a576102506104c961091a36610d8b565b907f0000000000000000000000000000000000000000000000000000000000000000611098565b503461048a5760206106e761095536610cc6565b91610fe6565b503461048a5761096a36610c80565b959490929391954211610c45578495610a047f00000000000000000000000000000000000000000000000000000000000000009360206109cb86867f0000000000000000000000000000000000000000000000000000000000000000611233565b6040516323b872dd60e01b81523360048201526001600160a01b0390911660248201819052604482019390935292839081906064820190565b03818b855af1918215610c3a57604092610c1d575b50602482518099819363226bf2d160e21b83523060048401525af1958615610c125787908897610bd4575b50610a4f8484611639565b506001600160a01b03848116911603610bce5795945b8610610bbf578410610bb05760405163a9059cbb60e01b602082019081526001600160a01b038516602483015260448201879052879283929091908390610ab981606481015b03601f198101835282610ce0565b51925af1610ac5610efd565b81610b81575b5015610b3c5784906001600160a01b0316803b15610b38578190602460405180948193632e1a7d4d60e01b83528860048401525af1801561031f57916040958492610b1c94610b28575b5050610f3d565b82519182526020820152f35b81610b3291610ce0565b38610b15565b5080fd5b60405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c4544006044820152606490fd5b8051801592508215610b96575b505038610acb565b610ba99250602080918301019101610ec8565b3880610b8e565b63ef71d09160e01b8652600486fd5b638dc525d160e01b8752600487fd5b94610a65565b9650506040863d604011610c0a575b81610bf060409383610ce0565b81010312610c0657602086519601519538610a44565b8680fd5b3d9150610be3565b6040513d89823e3d90fd5b610c359060203d6020116102f4576102e68183610ce0565b610a19565b6040513d8a823e3d90fd5b630407b05b60e31b8552600485fd5b600435906001600160a01b03821682036102b457565b602435906001600160a01b03821682036102b457565b60c09060031901126102b4576004356001600160a01b03811681036102b457906024359060443590606435906084356001600160a01b03811681036102b4579060a43590565b60609060031901126102b457600435906024359060443590565b90601f8019910116810190811067ffffffffffffffff821117610d0257604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610d025760051b60200190565b9291610d3b82610d18565b93610d496040519586610ce0565b602085848152019260051b81019182116102b457915b818310610d6b57505050565b82356001600160a01b03811681036102b457815260209283019201610d5f565b9060406003198301126102b457600435916024359067ffffffffffffffff82116102b457806023830112156102b457816024610dcc93600401359101610d30565b90565b602060408183019282815284518094520192019060005b818110610df35750505090565b8251845260209384019390920191600101610de6565b9060a06003198301126102b457600435916024359160443567ffffffffffffffff81116102b457826023820112156102b45780600401359267ffffffffffffffff84116102b45760248460051b830101116102b45760240191906064356001600160a01b03811681036102b4579060843590565b805115610e8a5760200190565b634e487b7160e01b600052603260045260246000fd5b8051821015610e8a5760209160051b010190565b356001600160a01b03811681036102b45790565b908160209103126102b4575180151581036102b45790565b15610ee757565b634e487b7160e01b600052600160045260246000fd5b3d15610f38573d9067ffffffffffffffff8211610d025760405191610f2c601f8201601f191660200184610ce0565b82523d6000602084013e565b606090565b6000809160209360405190610f528683610ce0565b83825285820191601f19870136843751925af1610f6d610efd565b5015610f765750565b6084906040519062461bcd60e51b82526004820152602360248201527f5472616e7366657248656c7065723a204554485f5452414e534645525f46414960448201526213115160ea1b6064820152fd5b8115610fd0570490565b634e487b7160e01b600052601260045260246000fd5b9190918015611055578215801561104d575b61103c5761101261100b61101892611829565b9283611892565b9261186a565b90810190811061102b57610dcc91610fc6565b63a259879560e01b60005260046000fd5b63bb55fd2760e01b60005260046000fd5b508115610ff8565b63098fb56160e01b60005260046000fd5b9061107082610d18565b61107d6040519182610ce0565b828152809261108e601f1991610d18565b0190602036910137565b9092916002815110611164576110ae8151611066565b938451600019810190811161114e576110c79086610ea0565b528051600019810190811161114e57805b6110e157505050565b600019810181811161114e5761113d6111366111256001600160a01b036111088588610ea0565b51166001600160a01b0361111c8789610ea0565b511690886118d7565b90611130868b610ea0565b51611580565b9187610ea0565b52801561114e5760001901806110d8565b634e487b7160e01b600052601160045260246000fd5b6320db826760e01b60005260046000fd5b92919260028451106111645761118b8451611066565b9161119583610e7d565b5260005b8451600019810190811161114e5781101561120e576001600160a01b036111c08287610ea0565b5116906001810180821161114e5760019261120790611200906111ef906001600160a01b0361111c868d610ea0565b906111fa868a610ea0565b51610fe6565b9186610ea0565b5201611199565b50509150565b908160209103126102b457516001600160a01b03811681036102b45790565b60405163e6a4390560e01b81526001600160a01b039283166004820152928216602484015260209183916044918391165afa9081156112a057600091611277575090565b610dcc915060203d602011611299575b6112918183610ce0565b810190611214565b503d611287565b6040513d6000823e3d90fd5b6040516323b872dd60e01b602082019081526001600160a01b03938416602483015293909216604483015260648201939093526000928392909183906112f58160848101610aab565b51925af1611301610efd565b81611360575b501561130f57565b60405162461bcd60e51b8152602060048201526024808201527f5472616e7366657248656c7065723a205452414e534645525f46524f4d5f46416044820152631253115160e21b6064820152608490fd5b8051801592508215611375575b505038611307565b6113889250602080918301019101610ec8565b388061136d565b9291600060207f0000000000000000000000000000000000000000000000000000000000000000825b8551600019810190811161114e57811015611576576001600160a01b036113df8288610ea0565b51166001820180831161114e576001600160a01b036113fe828a610ea0565b511661140a8184611639565b50926114186000938d610ea0565b51936001600160a01b0316810361156f578293905b8a5160011981019081116115515786101561156557600286018087116115515761148290611471906001600160a01b0390611468908f610ea0565b5116858a611233565b935b6001600160a01b039289611233565b1691604051916114928984610ce0565b84835289368a850137833b1561154d5760405163022c0d9f60e01b8152600481019690965260248601526001600160a01b03166044850152608060648501528051608485018190528392859290919089855b838110611532575050508360a484838383839684010152601f801991011681010301925af180156102c157906001939291611522575b5050016113b8565b61152b91610ce0565b388061151a565b80830182015189820160a401528796508895508b91016114e4565b8480fd5b634e487b7160e01b85526011600452602485fd5b6114828a93611473565b829061142d565b5050505050509050565b919082156115ea57801580156115e2575b61103c576115a2836115a792611892565b61186a565b908083116115d1576115c3926115bd9103611829565b90610fc6565b6001810190811061102b5790565b631a0b9f1f60e21b60005260046000fd5b508115611591565b6342301c2360e01b60005260046000fd5b80156116285781158015611620575b61103c57610dcc9261161b91611892565b610fc6565b50821561160a565b632ca2f52b60e11b60005260046000fd5b9091906001600160a01b0380841690821680821461168157101561167c57915b906001600160a01b0383161561166b57565b63d92e233d60e01b60005260046000fd5b611659565b630bd969eb60e41b60005260046000fd5b60405163e6a4390560e01b81526001600160a01b03828116600483015283811660248301529396949594937f0000000000000000000000000000000000000000000000000000000000000000908116939291602081604481885afa9081156112a05760009161180a575b506001600160a01b0316156117a1575b61171693506118d7565b9290801580611799575b1561172d57505050509091565b61173c848288979596976115fb565b9483861161176357505050508110611752579091565b63ef71d09160e01b60005260046000fd5b8361177e9496506117759395506115fb565b93841115610ee0565b8210611788579091565b638dc525d160e01b60005260046000fd5b508315611720565b6040516364e329cb60e11b81526001600160a01b0383811660048301528416602482015293602090859060449082906000905af19384156112a057611716946117eb575b5061170c565b6118039060203d602011611299576112918183610ce0565b50386117e5565b611823915060203d602011611299576112918183610ce0565b386116fc565b6000908015908115611850575b501561183f5790565b632bcb93b560e11b60005260046000fd5b9150506103e56118638183029283610fc6565b1438611836565b600090801590811561187f57501561183f5790565b9150506103e86118638183029283610fc6565b9060009180159182156118aa575b50501561183f5790565b808202935091506118bb9083610fc6565b1438806118a0565b51906001600160701b03821682036102b457565b9060606004926118fc6118ea8685611639565b50956001600160a01b03928590611233565b1660405193848092630240bc6b60e21b82525afa9182156112a057600090819361194a575b506001600160701b03928316939216916001600160a01b039182169116036119465791565b9091565b92506060833d6060116119a2575b8161196560609383610ce0565b8101031261048a57611976836118c3565b906040611985602086016118c3565b94015163ffffffff81160361048a57506001600160701b03611921565b3d915061195856fea26469706673582212206700b602d379deb2e7682bb41e3d93df2ecdf1594eeaba1a8b04a7d2398e71cc64736f6c634300081a0033"; + +type TestUniswapRouterConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: TestUniswapRouterConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class TestUniswapRouter__factory extends ContractFactory { + constructor(...args: TestUniswapRouterConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + _factory: AddressLike, + _WETH: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(_factory, _WETH, overrides || {}); + } + override deploy( + _factory: AddressLike, + _WETH: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy(_factory, _WETH, overrides || {}) as Promise< + TestUniswapRouter & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): TestUniswapRouter__factory { + return super.connect(runner) as TestUniswapRouter__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): TestUniswapRouterInterface { + return new Interface(_abi) as TestUniswapRouterInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): TestUniswapRouter { + return new Contract(address, _abi, runner) as unknown as TestUniswapRouter; + } +} diff --git a/typechain-types/factories/contracts/shared/WZETA__factory.ts b/typechain-types/factories/contracts/shared/WZETA__factory.ts new file mode 100644 index 00000000..3feef4cd --- /dev/null +++ b/typechain-types/factories/contracts/shared/WZETA__factory.ts @@ -0,0 +1,345 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../common"; +import type { WZETA, WZETAInterface } from "../../../contracts/shared/WZETA"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "src", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "guy", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "wad", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "dst", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "wad", + type: "uint256", + }, + ], + name: "Deposit", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "src", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "dst", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "wad", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "src", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "wad", + type: "uint256", + }, + ], + name: "Withdrawal", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "guy", + type: "address", + }, + { + internalType: "uint256", + name: "wad", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "deposit", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "dst", + type: "address", + }, + { + internalType: "uint256", + name: "wad", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "src", + type: "address", + }, + { + internalType: "address", + name: "dst", + type: "address", + }, + { + internalType: "uint256", + name: "wad", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "wad", + type: "uint256", + }, + ], + name: "withdraw", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + stateMutability: "payable", + type: "receive", + }, +] as const; + +const _bytecode = + "0x60806040526040518060400160405280600c81526020017f57726170706564205a65746100000000000000000000000000000000000000008152506000908051906020019062000051929190620000d0565b506040518060400160405280600581526020017f575a455441000000000000000000000000000000000000000000000000000000815250600190805190602001906200009f929190620000d0565b506012600260006101000a81548160ff021916908360ff160217905550348015620000c957600080fd5b50620001e5565b828054620000de9062000180565b90600052602060002090601f0160209004810192826200010257600085556200014e565b82601f106200011d57805160ff19168380011785556200014e565b828001600101855582156200014e579182015b828111156200014d57825182559160200191906001019062000130565b5b5090506200015d919062000161565b5090565b5b808211156200017c57600081600090555060010162000162565b5090565b600060028204905060018216806200019957607f821691505b60208210811415620001b057620001af620001b6565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b610eeb80620001f56000396000f3fe6080604052600436106100a05760003560e01c8063313ce56711610064578063313ce567146101ad57806370a08231146101d857806395d89b4114610215578063a9059cbb14610240578063d0e30db01461027d578063dd62ed3e14610287576100af565b806306fdde03146100b4578063095ea7b3146100df57806318160ddd1461011c57806323b872dd146101475780632e1a7d4d14610184576100af565b366100af576100ad6102c4565b005b600080fd5b3480156100c057600080fd5b506100c961036a565b6040516100d69190610c5b565b60405180910390f35b3480156100eb57600080fd5b5061010660048036038101906101019190610b6d565b6103f8565b6040516101139190610c40565b60405180910390f35b34801561012857600080fd5b506101316104ea565b60405161013e9190610c7d565b60405180910390f35b34801561015357600080fd5b5061016e60048036038101906101699190610b1a565b6104f2565b60405161017b9190610c40565b60405180910390f35b34801561019057600080fd5b506101ab60048036038101906101a69190610bad565b610856565b005b3480156101b957600080fd5b506101c2610990565b6040516101cf9190610c98565b60405180910390f35b3480156101e457600080fd5b506101ff60048036038101906101fa9190610aad565b6109a3565b60405161020c9190610c7d565b60405180910390f35b34801561022157600080fd5b5061022a6109bb565b6040516102379190610c5b565b60405180910390f35b34801561024c57600080fd5b5061026760048036038101906102629190610b6d565b610a49565b6040516102749190610c40565b60405180910390f35b6102856102c4565b005b34801561029357600080fd5b506102ae60048036038101906102a99190610ada565b610a5e565b6040516102bb9190610c7d565b60405180910390f35b34600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546103139190610ccf565b925050819055503373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040516103609190610c7d565b60405180910390a2565b6000805461037790610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103a390610de1565b80156103f05780601f106103c5576101008083540402835291602001916103f0565b820191906000526020600020905b8154815290600101906020018083116103d357829003601f168201915b505050505081565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104d89190610c7d565b60405180910390a36001905092915050565b600047905090565b600081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561054057600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561061857507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b1561073a5781600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156106a657600080fd5b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107329190610d25565b925050819055505b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107899190610d25565b9250508190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107df9190610ccf565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516108439190610c7d565b60405180910390a3600190509392505050565b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156108a257600080fd5b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546108f19190610d25565b925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561093e573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65826040516109859190610c7d565b60405180910390a250565b600260009054906101000a900460ff1681565b60036020528060005260406000206000915090505481565b600180546109c890610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546109f490610de1565b8015610a415780601f10610a1657610100808354040283529160200191610a41565b820191906000526020600020905b815481529060010190602001808311610a2457829003601f168201915b505050505081565b6000610a563384846104f2565b905092915050565b6004602052816000526040600020602052806000526040600020600091509150505481565b600081359050610a9281610e87565b92915050565b600081359050610aa781610e9e565b92915050565b600060208284031215610ac357610ac2610e71565b5b6000610ad184828501610a83565b91505092915050565b60008060408385031215610af157610af0610e71565b5b6000610aff85828601610a83565b9250506020610b1085828601610a83565b9150509250929050565b600080600060608486031215610b3357610b32610e71565b5b6000610b4186828701610a83565b9350506020610b5286828701610a83565b9250506040610b6386828701610a98565b9150509250925092565b60008060408385031215610b8457610b83610e71565b5b6000610b9285828601610a83565b9250506020610ba385828601610a98565b9150509250929050565b600060208284031215610bc357610bc2610e71565b5b6000610bd184828501610a98565b91505092915050565b610be381610d6b565b82525050565b6000610bf482610cb3565b610bfe8185610cbe565b9350610c0e818560208601610dae565b610c1781610e76565b840191505092915050565b610c2b81610d97565b82525050565b610c3a81610da1565b82525050565b6000602082019050610c556000830184610bda565b92915050565b60006020820190508181036000830152610c758184610be9565b905092915050565b6000602082019050610c926000830184610c22565b92915050565b6000602082019050610cad6000830184610c31565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610cda82610d97565b9150610ce583610d97565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610d1a57610d19610e13565b5b828201905092915050565b6000610d3082610d97565b9150610d3b83610d97565b925082821015610d4e57610d4d610e13565b5b828203905092915050565b6000610d6482610d77565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015610dcc578082015181840152602081019050610db1565b83811115610ddb576000848401525b50505050565b60006002820490506001821680610df957607f821691505b60208210811415610e0d57610e0c610e42565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b610e9081610d59565b8114610e9b57600080fd5b50565b610ea781610d97565b8114610eb257600080fd5b5056fea26469706673582212205e81d9c0c47aaf640f04def7376d1342406c24d638e336622e05ff606c53be6164736f6c63430008070033"; + +type WZETAConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: WZETAConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class WZETA__factory extends ContractFactory { + constructor(...args: WZETAConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + WZETA & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): WZETA__factory { + return super.connect(runner) as WZETA__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): WZETAInterface { + return new Interface(_abi) as WZETAInterface; + } + static connect(address: string, runner?: ContractRunner | null): WZETA { + return new Contract(address, _abi, runner) as unknown as WZETA; + } +} diff --git a/typechain-types/factories/contracts/shared/index.ts b/typechain-types/factories/contracts/shared/index.ts new file mode 100644 index 00000000..4fb59882 --- /dev/null +++ b/typechain-types/factories/contracts/shared/index.ts @@ -0,0 +1,8 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as interfaces from "./interfaces"; +export * as libraries from "./libraries"; +export { MockZRC20__factory } from "./MockZRC20__factory"; +export { TestUniswapRouter__factory } from "./TestUniswapRouter__factory"; +export { WZETA__factory } from "./WZETA__factory"; diff --git a/typechain-types/factories/contracts/shared/interfaces/IERC20__factory.ts b/typechain-types/factories/contracts/shared/interfaces/IERC20__factory.ts new file mode 100644 index 00000000..ca549c2e --- /dev/null +++ b/typechain-types/factories/contracts/shared/interfaces/IERC20__factory.ts @@ -0,0 +1,244 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IERC20, + IERC20Interface, +} from "../../../../contracts/shared/interfaces/IERC20"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class IERC20__factory { + static readonly abi = _abi; + static createInterface(): IERC20Interface { + return new Interface(_abi) as IERC20Interface; + } + static connect(address: string, runner?: ContractRunner | null): IERC20 { + return new Contract(address, _abi, runner) as unknown as IERC20; + } +} diff --git a/typechain-types/factories/contracts/shared/interfaces/IWETH__factory.ts b/typechain-types/factories/contracts/shared/interfaces/IWETH__factory.ts new file mode 100644 index 00000000..6d7343aa --- /dev/null +++ b/typechain-types/factories/contracts/shared/interfaces/IWETH__factory.ts @@ -0,0 +1,66 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IWETH, + IWETHInterface, +} from "../../../../contracts/shared/interfaces/IWETH"; + +const _abi = [ + { + inputs: [], + name: "deposit", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "withdraw", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class IWETH__factory { + static readonly abi = _abi; + static createInterface(): IWETHInterface { + return new Interface(_abi) as IWETHInterface; + } + static connect(address: string, runner?: ContractRunner | null): IWETH { + return new Contract(address, _abi, runner) as unknown as IWETH; + } +} diff --git a/typechain-types/factories/contracts/shared/interfaces/IZRC20.sol/IZRC20Metadata__factory.ts b/typechain-types/factories/contracts/shared/interfaces/IZRC20.sol/IZRC20Metadata__factory.ts new file mode 100644 index 00000000..5fcb52ff --- /dev/null +++ b/typechain-types/factories/contracts/shared/interfaces/IZRC20.sol/IZRC20Metadata__factory.ts @@ -0,0 +1,358 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IZRC20Metadata, + IZRC20MetadataInterface, +} from "../../../../../contracts/shared/interfaces/IZRC20.sol/IZRC20Metadata"; + +const _abi = [ + { + inputs: [], + name: "GAS_LIMIT", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "PROTOCOL_FLAT_FEE", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "burn", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "deposit", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "newName", + type: "string", + }, + ], + name: "setName", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "newSymbol", + type: "string", + }, + ], + name: "setSymbol", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "to", + type: "bytes", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "withdraw", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "withdrawGasFee", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "gasLimit", + type: "uint256", + }, + ], + name: "withdrawGasFeeWithGasLimit", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +export class IZRC20Metadata__factory { + static readonly abi = _abi; + static createInterface(): IZRC20MetadataInterface { + return new Interface(_abi) as IZRC20MetadataInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IZRC20Metadata { + return new Contract(address, _abi, runner) as unknown as IZRC20Metadata; + } +} diff --git a/typechain-types/factories/contracts/shared/interfaces/IZRC20.sol/IZRC20__factory.ts b/typechain-types/factories/contracts/shared/interfaces/IZRC20.sol/IZRC20__factory.ts new file mode 100644 index 00000000..d3e47731 --- /dev/null +++ b/typechain-types/factories/contracts/shared/interfaces/IZRC20.sol/IZRC20__factory.ts @@ -0,0 +1,316 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IZRC20, + IZRC20Interface, +} from "../../../../../contracts/shared/interfaces/IZRC20.sol/IZRC20"; + +const _abi = [ + { + inputs: [], + name: "GAS_LIMIT", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "PROTOCOL_FLAT_FEE", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "burn", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "deposit", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "newName", + type: "string", + }, + ], + name: "setName", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "newSymbol", + type: "string", + }, + ], + name: "setSymbol", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "to", + type: "bytes", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "withdraw", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "withdrawGasFee", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "gasLimit", + type: "uint256", + }, + ], + name: "withdrawGasFeeWithGasLimit", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +export class IZRC20__factory { + static readonly abi = _abi; + static createInterface(): IZRC20Interface { + return new Interface(_abi) as IZRC20Interface; + } + static connect(address: string, runner?: ContractRunner | null): IZRC20 { + return new Contract(address, _abi, runner) as unknown as IZRC20; + } +} diff --git a/typechain-types/factories/contracts/shared/interfaces/IZRC20.sol/ZRC20Events__factory.ts b/typechain-types/factories/contracts/shared/interfaces/IZRC20.sol/ZRC20Events__factory.ts new file mode 100644 index 00000000..b2eaccbb --- /dev/null +++ b/typechain-types/factories/contracts/shared/interfaces/IZRC20.sol/ZRC20Events__factory.ts @@ -0,0 +1,186 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + ZRC20Events, + ZRC20EventsInterface, +} from "../../../../../contracts/shared/interfaces/IZRC20.sol/ZRC20Events"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes", + name: "from", + type: "bytes", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Deposit", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "gasLimit", + type: "uint256", + }, + ], + name: "UpdatedGasLimit", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "gateway", + type: "address", + }, + ], + name: "UpdatedGateway", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "protocolFlatFee", + type: "uint256", + }, + ], + name: "UpdatedProtocolFlatFee", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "systemContract", + type: "address", + }, + ], + name: "UpdatedSystemContract", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: false, + internalType: "bytes", + name: "to", + type: "bytes", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "gasFee", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "protocolFlatFee", + type: "uint256", + }, + ], + name: "Withdrawal", + type: "event", + }, +] as const; + +export class ZRC20Events__factory { + static readonly abi = _abi; + static createInterface(): ZRC20EventsInterface { + return new Interface(_abi) as ZRC20EventsInterface; + } + static connect(address: string, runner?: ContractRunner | null): ZRC20Events { + return new Contract(address, _abi, runner) as unknown as ZRC20Events; + } +} diff --git a/typechain-types/factories/contracts/shared/interfaces/IZRC20.sol/index.ts b/typechain-types/factories/contracts/shared/interfaces/IZRC20.sol/index.ts new file mode 100644 index 00000000..98e010d3 --- /dev/null +++ b/typechain-types/factories/contracts/shared/interfaces/IZRC20.sol/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IZRC20__factory } from "./IZRC20__factory"; +export { IZRC20Metadata__factory } from "./IZRC20Metadata__factory"; +export { ZRC20Events__factory } from "./ZRC20Events__factory"; diff --git a/typechain-types/factories/contracts/shared/interfaces/index.ts b/typechain-types/factories/contracts/shared/interfaces/index.ts new file mode 100644 index 00000000..7bc279e5 --- /dev/null +++ b/typechain-types/factories/contracts/shared/interfaces/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as izrc20Sol from "./IZRC20.sol"; +export { IERC20__factory } from "./IERC20__factory"; +export { IWETH__factory } from "./IWETH__factory"; diff --git a/typechain-types/factories/contracts/shared/libraries/SafeMath.sol/Math__factory.ts b/typechain-types/factories/contracts/shared/libraries/SafeMath.sol/Math__factory.ts new file mode 100644 index 00000000..0920a070 --- /dev/null +++ b/typechain-types/factories/contracts/shared/libraries/SafeMath.sol/Math__factory.ts @@ -0,0 +1,79 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../../../common"; +import type { + Math, + MathInterface, +} from "../../../../../contracts/shared/libraries/SafeMath.sol/Math"; + +const _abi = [ + { + inputs: [], + name: "AdditionsOverflow", + type: "error", + }, + { + inputs: [], + name: "MultiplicationsOverflow", + type: "error", + }, + { + inputs: [], + name: "SubtractionsUnderflow", + type: "error", + }, +] as const; + +const _bytecode = + "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea264697066735822122020081ae02c128e41244d5ac258288e5e7860648140063c588acc5334b6d7f6fd64736f6c634300081a0033"; + +type MathConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: MathConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class Math__factory extends ContractFactory { + constructor(...args: MathConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + Math & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): Math__factory { + return super.connect(runner) as Math__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): MathInterface { + return new Interface(_abi) as MathInterface; + } + static connect(address: string, runner?: ContractRunner | null): Math { + return new Contract(address, _abi, runner) as unknown as Math; + } +} diff --git a/typechain-types/factories/contracts/shared/libraries/SafeMath.sol/index.ts b/typechain-types/factories/contracts/shared/libraries/SafeMath.sol/index.ts new file mode 100644 index 00000000..a249c748 --- /dev/null +++ b/typechain-types/factories/contracts/shared/libraries/SafeMath.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { Math__factory } from "./Math__factory"; diff --git a/typechain-types/factories/contracts/shared/libraries/UniswapV2Library__factory.ts b/typechain-types/factories/contracts/shared/libraries/UniswapV2Library__factory.ts new file mode 100644 index 00000000..cd0add9c --- /dev/null +++ b/typechain-types/factories/contracts/shared/libraries/UniswapV2Library__factory.ts @@ -0,0 +1,102 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../../common"; +import type { + UniswapV2Library, + UniswapV2LibraryInterface, +} from "../../../../contracts/shared/libraries/UniswapV2Library"; + +const _abi = [ + { + inputs: [], + name: "IdenticalAddresses", + type: "error", + }, + { + inputs: [], + name: "InsufficientAmount", + type: "error", + }, + { + inputs: [], + name: "InsufficientInputAmount", + type: "error", + }, + { + inputs: [], + name: "InsufficientLiquidity", + type: "error", + }, + { + inputs: [], + name: "InsufficientOutputAmount", + type: "error", + }, + { + inputs: [], + name: "InvalidPath", + type: "error", + }, + { + inputs: [], + name: "ZeroAddress", + type: "error", + }, +] as const; + +const _bytecode = + "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea264697066735822122070e323217c7c31ba4306140b5901f664059af9e4e7e4f2d52b7e37e76a4b7cc264736f6c634300081a0033"; + +type UniswapV2LibraryConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: UniswapV2LibraryConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class UniswapV2Library__factory extends ContractFactory { + constructor(...args: UniswapV2LibraryConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + UniswapV2Library & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): UniswapV2Library__factory { + return super.connect(runner) as UniswapV2Library__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): UniswapV2LibraryInterface { + return new Interface(_abi) as UniswapV2LibraryInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): UniswapV2Library { + return new Contract(address, _abi, runner) as unknown as UniswapV2Library; + } +} diff --git a/typechain-types/factories/contracts/shared/libraries/index.ts b/typechain-types/factories/contracts/shared/libraries/index.ts new file mode 100644 index 00000000..4fe77c91 --- /dev/null +++ b/typechain-types/factories/contracts/shared/libraries/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as safeMathSol from "./SafeMath.sol"; +export { UniswapV2Library__factory } from "./UniswapV2Library__factory"; diff --git a/typechain-types/factories/contracts/testing/EVMSetup.t.sol/EVMSetup__factory.ts b/typechain-types/factories/contracts/testing/EVMSetup.t.sol/EVMSetup__factory.ts new file mode 100644 index 00000000..b73bab93 --- /dev/null +++ b/typechain-types/factories/contracts/testing/EVMSetup.t.sol/EVMSetup__factory.ts @@ -0,0 +1,883 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + AddressLike, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { NonPayableOverrides } from "../../../../common"; +import type { + EVMSetup, + EVMSetupInterface, +} from "../../../../contracts/testing/EVMSetup.t.sol/EVMSetup"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "_deployer", + type: "address", + }, + { + internalType: "address", + name: "_tss", + type: "address", + }, + { + internalType: "address", + name: "_wzeta", + type: "address", + }, + { + internalType: "address", + name: "_systemContract", + type: "address", + }, + { + internalType: "address", + name: "_nodeLogicMock", + type: "address", + }, + { + internalType: "address", + name: "_uniswapV2Router", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "", + type: "string", + }, + ], + name: "log", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "", + type: "address", + }, + ], + name: "log_address", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256[]", + name: "val", + type: "uint256[]", + }, + ], + name: "log_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "int256[]", + name: "val", + type: "int256[]", + }, + ], + name: "log_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address[]", + name: "val", + type: "address[]", + }, + ], + name: "log_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + name: "log_bytes", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + name: "log_bytes32", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "int256", + name: "", + type: "int256", + }, + ], + name: "log_int", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "address", + name: "val", + type: "address", + }, + ], + name: "log_named_address", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "uint256[]", + name: "val", + type: "uint256[]", + }, + ], + name: "log_named_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "int256[]", + name: "val", + type: "int256[]", + }, + ], + name: "log_named_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "address[]", + name: "val", + type: "address[]", + }, + ], + name: "log_named_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "bytes", + name: "val", + type: "bytes", + }, + ], + name: "log_named_bytes", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "bytes32", + name: "val", + type: "bytes32", + }, + ], + name: "log_named_bytes32", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "int256", + name: "val", + type: "int256", + }, + { + indexed: false, + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "log_named_decimal_int", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "uint256", + name: "val", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "log_named_decimal_uint", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "int256", + name: "val", + type: "int256", + }, + ], + name: "log_named_int", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "string", + name: "val", + type: "string", + }, + ], + name: "log_named_string", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "uint256", + name: "val", + type: "uint256", + }, + ], + name: "log_named_uint", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "", + type: "string", + }, + ], + name: "log_string", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "log_uint", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + name: "logs", + type: "event", + }, + { + inputs: [], + name: "IS_TEST", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "chainIdETH", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "custody", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "deployer", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "excludeArtifacts", + outputs: [ + { + internalType: "string[]", + name: "excludedArtifacts_", + type: "string[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "excludeContracts", + outputs: [ + { + internalType: "address[]", + name: "excludedContracts_", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "excludeSelectors", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "bytes4[]", + name: "selectors", + type: "bytes4[]", + }, + ], + internalType: "struct StdInvariant.FuzzSelector[]", + name: "excludedSelectors_", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "excludeSenders", + outputs: [ + { + internalType: "address[]", + name: "excludedSenders_", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "failed", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "nodeLogicMockAddr", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + ], + name: "setupEVMChain", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "systemContract", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetArtifactSelectors", + outputs: [ + { + components: [ + { + internalType: "string", + name: "artifact", + type: "string", + }, + { + internalType: "bytes4[]", + name: "selectors", + type: "bytes4[]", + }, + ], + internalType: "struct StdInvariant.FuzzArtifactSelector[]", + name: "targetedArtifactSelectors_", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetArtifacts", + outputs: [ + { + internalType: "string[]", + name: "targetedArtifacts_", + type: "string[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetContracts", + outputs: [ + { + internalType: "address[]", + name: "targetedContracts_", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetInterfaces", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "string[]", + name: "artifacts", + type: "string[]", + }, + ], + internalType: "struct StdInvariant.FuzzInterface[]", + name: "targetedInterfaces_", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetSelectors", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "bytes4[]", + name: "selectors", + type: "bytes4[]", + }, + ], + internalType: "struct StdInvariant.FuzzSelector[]", + name: "targetedSelectors_", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetSenders", + outputs: [ + { + internalType: "address[]", + name: "targetedSenders_", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "tss", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "uniswapV2Router", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "wrapGatewayEVM", + outputs: [ + { + internalType: "contract GatewayEVM", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "wzeta", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "zetaConnector", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "zetaToken", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +const _bytecode = + "0x60803461012957601f61ae8f38819003918201601f19168301916001600160401b0383118484101761012e5780849260c0946040528339810103126101295761004781610144565b9061005460208201610144565b61006060408301610144565b61006c60608401610144565b91600161008760a061008060808801610144565b9601610144565b600c805460ff199081168417909155601f805460a885901b8581031990911660089a909a1b92019190911697909717909117909555602080546001600160a01b03199081166001600160a01b039384161790915560218054821693831693909317909255602280548316938216939093179092556023805482169383169390931790925560248054909216921691909117905560405161ad3690816101598239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036101295756fe6080604052600436101561001257600080fd5b60003560e01c8062173d4614610195578062d62498146101905780631694505e1461018b5780631ed7831c146101865780632ade3880146101815780633e5e3c231461017c5780633f7286f41461017757806362f1b0021461017257806366d9a9a01461016d5780636a26fefe146101685780636ce89fe2146101635780636e6dbb511461015e5780637bf221811461015957806385226c8114610154578063916a17c61461014f578063ad8414bf1461014a578063b0464fdc14610145578063b5508aa914610140578063ba414fa61461013b578063bb88b76914610136578063d05adf6a14610131578063d5f394881461012c578063e20c9f71146101275763fa7626d41461012257600080fd5b611708565b611688565b61165b565b61162d565b611604565b6115df565b611552565b6114a6565b611478565b6113cc565b6112c7565b6107d8565b6107b1565b610788565b61076c565b6106c0565b6105d4565b610554565b6104d4565b610428565b61027f565b610213565b6101e5565b6101aa565b60009103126101a557565b600080fd5b346101a55760003660031901126101a5576021546040516001600160a01b039091168152602090f35b60209060031901126101a55760043590565b346101a5576101f3366101d3565b6000526027602052602060018060a01b0360406000205416604051908152f35b346101a55760003660031901126101a5576024546040516001600160a01b039091168152602090f35b602060408183019282815284518094520192019060005b8181106102605750505090565b82516001600160a01b0316845260209384019390920191600101610253565b346101a55760003660031901126101a55760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b8181106102f0576102ec856102e08187038261175d565b6040519182918261023c565b0390f35b82546001600160a01b03168452602090930192600192830192016102c9565b60005b8381106103225750506000910152565b8181015183820152602001610312565b9060209161034b8151809281855285808601910161030f565b601f01601f1916010190565b9080602083519182815201916020808360051b8301019401926000915b83831061038357505050505090565b90919293946020806103a1600193601f198682030187528951610332565b97019301930191939290610374565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106103e357505050505090565b9091929394602080610419600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610357565b970193019301919392906103d4565b346101a55760003660031901126101a557601e546104458161177f565b90610453604051928361175d565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061049957604051806102ec87826103b0565b600260206001926040516104ac81611741565b848060a01b0386541681526104c2858701611863565b83820152815201920192019190610484565b346101a55760003660031901126101a55760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b818110610535576102ec856102e08187038261175d565b82546001600160a01b031684526020909301926001928301920161051e565b346101a55760003660031901126101a55760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b8181106105b5576102ec856102e08187038261175d565b82546001600160a01b031684526020909301926001928301920161059e565b346101a5576105e2366101d3565b6000526028602052602060018060a01b0360406000205416604051908152f35b906020808351928381520192019060005b8181106106205750505090565b82516001600160e01b031916845260209384019390920191600101610613565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061067357505050505090565b90919293946020806106b1600193603f19868203018752895190836106a18351604084526040840190610332565b9201519084818403910152610602565b97019301930191939290610664565b346101a55760003660031901126101a557601b546106dd8161177f565b906106eb604051928361175d565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b83831061073157604051806102ec8782610640565b6002602060019260405161074481611741565b61074d86611797565b815261075a8587016118bb565b8382015281520192019201919061071c565b346101a55760003660031901126101a557602060405160058152f35b346101a55760003660031901126101a5576023546040516001600160a01b039091168152602090f35b346101a55760003660031901126101a557602080546040516001600160a01b039091168152f35b346101a5576107e6366101d3565b601f5460081c6001600160a01b0316737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156101a5576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610f355761129e575b506040516129ee80820182811067ffffffffffffffff821117611012578291613e36833903906000f08015610f35576023546001600160a01b031660405191610bd68084019284841067ffffffffffffffff8511176110125784936108e193879361a12b87396001600160a01b039081168252919091166020820152604081019190915260600190565b03906000f08015610f35576000828152602760205260409020610928916001600160a01b0316905b80546001600160a01b0319166001600160a01b03909216919091179055565b604051611ebc80820182811067ffffffffffffffff821117611012578291611f7a833903906000f08015610f35576000828152602560205260409020610977916001600160a01b031690610909565b60058114801561114a576040516360f9bb1160e01b815260206004820152604b60248201527f6e6f64655f6d6f64756c65732f407a657461636861696e2f70726f746f636f6c60448201527f2d636f6e7472616374732f6162692f5465737445524332302e736f6c2f54657360648201526a3a22a9219918173539b7b760a91b608482015260008160a481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610f3557610a49916000918291611130575b5060405180938192631fb2437d60e31b835260048301611b5b565b0381737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610f3557610aea91610ad69160009161110d575b5060405190610ad182610ac36020820160c0906040815260046040820152635a65746160e01b60608201526080602082015260046080820152635a45544160e01b60a08201520190565b03601f19810184528361175d565b611c60565b610909846000526028602052604060002090565b610b1d610b11610b04846000526027602052604060002090565b546001600160a01b031690565b6001600160a01b031690565b6020546001600160a01b0316610b40610b04856000526028602052604060002090565b601f5490929060081c6001600160a01b031690803b156101a55760405163c0c53b8b60e01b81526001600160a01b0393841660048201529383166024850152911660448301526000908290606490829084905af18015610f35576110f8575b50610bbd610b11610b11610b04856000526025602052604060002090565b610bd7610b11610b04856000526027602052604060002090565b6020546001600160a01b0316601f5490929060081c6001600160a01b031690803b156101a55760405163c0c53b8b60e01b81526001600160a01b0393841660048201529383166024850152911660448301526000908290606490829084905af18015610f35576110e3575b50801561101757604051611bf380820182811067ffffffffffffffff821117611012578291616824833903906000f08015610f3557610c91610b11610b04856000526027602052604060002090565b90610cfc610cac610b04866000526028602052604060002090565b60208054601f54604051637c643b2f60e11b938101939093526001600160a01b03968716602484015292861660448301528516606482015260089190911c90931660848401528260a48101610ac3565b604051916102c69081840184811067ffffffffffffffff821117611012578493610d3493611cb486396001600160a01b031690611b97565b03906000f08015610f35576000838152602660205260409020610d60916001600160a01b031690610909565b610d7a610b11610b04846000526027602052604060002090565b610d91610b04846000526025602052604060002090565b90803b156101a55760405163ae7a3a6f60e01b81526001600160a01b039290921660048301526000908290602490829084905af18015610f3557610ffd575b50610deb610b11610b04846000526027602052604060002090565b610e02610b04846000526026602052604060002090565b90803b156101a5576040516310188aef60e01b81526001600160a01b039290921660048301526000908290602490829084905af18015610f3557610fe8575b5015610f4f57610e7b610b04610e6a610b11610b11610b04866000526028602052604060002090565b926000526026602052604060002090565b90803b156101a5576040516340c10f1960e01b81526001600160a01b0392909216600483015269d3c21bcecceda100000060248301526000908290604490829084905af18015610f3557610f3a575b505b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156101a5576040516390c5013b60e01b815260008160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610f3557610f1e57005b80610f2d6000610f339361175d565b8061019a565b005b611ae0565b80610f2d6000610f499361175d565b38610eca565b610f6c610b11610b11610b04846000526028602052604060002090565b602054909190610f8890610b04906001600160a01b0316610e6a565b823b156101a5576040516305755ff560e21b81526001600160a01b03928316600482015291166024820152906000908290604490829084905af18015610f3557610fd3575b50610ecc565b80610f2d6000610fe29361175d565b38610fcd565b80610f2d6000610ff79361175d565b38610e41565b80610f2d600061100c9361175d565b38610dd0565b61172b565b604051611d1480820182811067ffffffffffffffff821117611012578291618417833903906000f08015610f355761105f610b11610b04856000526027602052604060002090565b9061107a610cac610b04866000526028602052604060002090565b604051916102c69081840184811067ffffffffffffffff8211176110125784936110b293611cb486396001600160a01b031690611b97565b03906000f08015610f355760008381526026602052604090206110de916001600160a01b031690610909565b610d60565b80610f2d60006110f29361175d565b38610c42565b80610f2d60006111079361175d565b38610b9f565b61112a91503d806000833e611122818361175d565b810190611aec565b38610a79565b61114491503d8084833e611122818361175d565b38610a2e565b6040516360f9bb1160e01b815260206004820152604f60248201527f6e6f64655f6d6f64756c65732f407a657461636861696e2f70726f746f636f6c60448201527f2d636f6e7472616374732f6162692f5a6574612e6e6f6e2d6574682e736f6c2f60648201526e2d32ba30a737b722ba34173539b7b760891b608482015260008160a481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610f3557611215916000918291611130575060405180938192631fb2437d60e31b835260048301611b5b565b0381737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610f355761127e91610ad691600091611283575b5060208054601f54604080516001600160a01b039384169481019490945260089190911c9091169082015290610ad18260608101610ac3565b610aea565b61129891503d806000833e611122818361175d565b38611245565b80610f2d60006112ad9361175d565b38610857565b9060206112c4928181520190610357565b90565b346101a55760003660031901126101a557601a546112e48161177f565b906112f2604051928361175d565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b83831061133757604051806102ec87826112b3565b60016020819261134685611797565b815201920192019190611322565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061138757505050505090565b90919293946020806113bd600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610602565b97019301930191939290611378565b346101a55760003660031901126101a557601d546113e98161177f565b906113f7604051928361175d565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b83831061143d57604051806102ec8782611354565b6002602060019260405161145081611741565b848060a01b0386541681526114668587016118bb565b83820152815201920192019190611428565b346101a557611486366101d3565b6000526025602052602060018060a01b0360406000205416604051908152f35b346101a55760003660031901126101a557601c546114c38161177f565b906114d1604051928361175d565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b83831061151757604051806102ec8782611354565b6002602060019260405161152a81611741565b848060a01b0386541681526115408587016118bb565b83820152815201920192019190611502565b346101a55760003660031901126101a55760195461156f8161177f565b9061157d604051928361175d565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b8383106115c257604051806102ec87826112b3565b6001602081926115d185611797565b8152019201920191906115ad565b346101a55760003660031901126101a55760206115fa611bc8565b6040519015158152f35b346101a55760003660031901126101a5576022546040516001600160a01b039091168152602090f35b346101a55761163b366101d3565b6000526026602052602060018060a01b0360406000205416604051908152f35b346101a55760003660031901126101a557601f5460405160089190911c6001600160a01b03168152602090f35b346101a55760003660031901126101a55760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b8181106116e9576102ec856102e08187038261175d565b82546001600160a01b03168452602090930192600192830192016116d2565b346101a55760003660031901126101a557602060ff601f54166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff82111761101257604052565b90601f8019910116810190811067ffffffffffffffff82111761101257604052565b67ffffffffffffffff81116110125760051b60200190565b9060405191600081548060011c9260018216918215611859575b60208510831461184557848752869392602085019291811561182857506001146117e6575b50506117e49250038361175d565b565b6117f7919250600052602060002090565b906000915b84831061181157506117e493500138806117d6565b8054828401528693506020909201916001016117fc565b9150506117e49491925060ff19168252151560051b0138806117d6565b634e487b7160e01b84526022600452602484fd5b93607f16936117b1565b90815461186f8161177f565b9261187d604051948561175d565b818452602084019060005260206000206000915b83831061189e5750505050565b6001602081926118ad85611797565b815201920192019190611891565b604051815480825290929183906118db6020830191600052602060002090565b926000905b806007830110611a23576117e4945491818110611a04575b8181106119e5575b8181106119c6575b8181106119a7575b818110611988575b818110611969575b81811061194b575b10611936575b50038361175d565b6001600160e01b03191681526020013861192e565b602083811b6001600160e01b03191685529093600191019301611928565b604083901b6001600160e01b0319168452926001906020019301611920565b606083901b6001600160e01b0319168452926001906020019301611918565b608083901b6001600160e01b0319168452926001906020019301611910565b60a083901b6001600160e01b0319168452926001906020019301611908565b60c083901b6001600160e01b0319168452926001906020019301611900565b6001600160e01b031960e084901b1684529260019060200193016118f8565b916008919350610100600191611ad28754611a49838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b0194019201859293916118e0565b6040513d6000823e3d90fd5b6020818303126101a55780519067ffffffffffffffff82116101a5570181601f820112156101a5576020815191019067ffffffffffffffff81116110125760405192611b42601f8301601f19166020018561175d565b818452818301116101a5576112c491602084019061030f565b611b6d60409283835283830190610332565b906020818303910152601081526f0b989e5d1958dbd9194b9bd89a9958dd60821b60208201520190565b6001600160a01b0390911681526040602082018190526112c492910190610332565b908160209103126101a5575190565b60085460ff168015611bd75790565b50604051630667f9d760e41b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190526519985a5b195960d21b6024830152602090829060449082905afa908115610f3557600091611c31575b50151590565b611c53915060203d602011611c59575b611c4b818361175d565b810190611bb9565b38611c2b565b503d611c41565b90611ca560209160405192839181611c81818501978881519384920161030f565b8301611c958251809385808501910161030f565b010103601f19810183528261175d565b51906000f09081156101a55756fe60806040526102c68038038061001481610188565b928339810190604081830312610183578051906001600160a01b03821690818303610183576020810151906001600160401b038211610183570183601f820112156101835780519061006d610068836101c3565b610188565b94828652602083830101116101835760005b82811061016e575050602060009185010152813b1561015a577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a28151156101415760008083602061012995519101845af43d15610139573d91610119610068846101c3565b9283523d6000602085013e6101de565b505b604051608690816102408239f35b6060916101de565b5050341561012b5763b398979f60e01b60005260046000fd5b634c9c8ce360e01b60005260045260246000fd5b8060208092840101518282890101520161007f565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176101ad57604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b0381116101ad57601f01601f191660200190565b9061020457508051156101f357805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580610236575b610215575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b1561020d56fe60806040527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5460009081906001600160a01b0316368280378136915af43d6000803e15604b573d6000f35b3d6000fdfea264697066735822122050f22a01d073962c556a114f7af7ed5d52928a56307a2cc1329dcdbb635986ec64736f6c634300081a003360a0806040523460295730608052611e8d908161002f8239608051818181610f090152610fda0152f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a71461131857508063116191b6146112f1578063248a9ca3146112ca578063252f07bf146112a45780632f2ff15d1461127257806336568abe1461122d5780633f4ba83a146111ab5780634f1ef28614610f5e57806352d1902d14610ef6578063570618e114610ecd5780635b11259114610ea45780635c975abb14610e745780638456cb5914610dff57806385f438c114610dd657806391d1485414610d80578063950837aa14610cb457806399a3c35614610ade5780639a59042714610a725780639b19251a146109f4578063a217fddf146109d8578063ad0818521461082d578063ad3cb1cc146107b3578063c0c53b8b1461057f578063d547741f14610544578063d936547e14610505578063d9caed1214610442578063e609055e146101e8578063e63ab1e9146101ad5763eab103df1461016057600080fd5b346101aa5760203660031901126101aa576004358015158091036101a65761018661157a565b6002805460ff60a01b191660a09290921b60ff60a01b1691909117905580f35b5080fd5b80fd5b50346101aa57806003193601126101aa5760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346101aa5760803660031901126101aa5760043567ffffffffffffffff81116101a65761021a903690600401611417565b6024356001600160a01b03811692919083810361043e5760643567ffffffffffffffff811161043a57610251903690600401611417565b9061025a611b7e565b610262611bba565b60ff60025460a01c161561042b57858752600160205260ff6040882054161561041c576040516370a0823160e01b8152306004820152926020846024818a5afa9384156103db5788946103e6575b506102ee90604051906323b872dd60e01b60208301523360248301523060448301526044356064830152606482526102e96084836113c3565b611c21565b6040516370a0823160e01b8152306004820152926020846024818a5afa9384156103db5788946103a2575b50830392831161038e5791610376917f1dafa057cc5c3bccb5ad974129a2bccd3c74002d9dfd7062404ba9523b18d6ae959493610363604051968796606088526060880191611466565b9260208601528483036040860152611466565b0390a26001600080516020611df88339815191525580f35b634e487b7160e01b87526011600452602487fd5b9093506020813d6020116103d3575b816103be602093836113c3565b810103126103ce57519238610319565b600080fd5b3d91506103b1565b6040513d8a823e3d90fd5b9093506020813d602011610414575b81610402602093836113c3565b810103126103ce5751926102ee6102b0565b3d91506103f5565b630b094f2760e31b8752600487fd5b6373cba66360e01b8752600487fd5b8580fd5b8480fd5b50346101aa5760603660031901126101aa5761045c611383565b61046461136d565b60443590610470611b7e565b6104786115cd565b610480611bba565b6001600160a01b03168084526001602052604084205490929060ff16156104f6576020816104d0847fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb9487611be4565b6040519384526001600160a01b031692a36001600080516020611df88339815191525580f35b630b094f2760e31b8452600484fd5b50346101aa5760203660031901126101aa5760209060ff906040906001600160a01b03610530611383565b168152600184522054166040519015158152f35b50346101aa5760403660031901126101aa5761057b60043561056461136d565b9061057661057182611445565b611669565b611ade565b5080f35b50346101aa5760603660031901126101aa57610599611383565b6105a161136d565b6105a9611399565b600080516020611e38833981519152549260ff8460401c16159367ffffffffffffffff8116801590816107ab575b60011490816107a1575b159081610798575b506107895767ffffffffffffffff198116600117600080516020611e38833981519152558461075c575b506001600160a01b03168015801561074b575b801561073a575b61072b576106c992916106c391610642611c88565b61064a611c88565b610652611c88565b6001600080516020611df88339815191525561066c611c88565b610674611c88565b86546001600160a01b0319908116919091178755600280549091166001600160a01b0385161790556106a5816117c5565b506106af8161185f565b506106b98361185f565b506106c3836116b3565b5061173f565b506106d15780f35b68ff000000000000000019600080516020611e388339815191525416600080516020611e38833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b63d92e233d60e01b8552600485fd5b506001600160a01b0382161561062d565b506001600160a01b03831615610626565b68ffffffffffffffffff19166801000000000000000117600080516020611e388339815191525538610613565b63f92ee8a960e01b8652600486fd5b905015386105e9565b303b1591506105e1565b8691506105d7565b50346101aa57806003193601126101aa5760408051916107d382846113c3565b60058352640352e302e360dc1b6020840152815192839160208352815191826020850152815b838110610816575050828201840152601f01601f19168101030190f35b6020828201810151888301880152879550016107f9565b50346101aa57366003190160a081126101a6576020136101aa5761084f61136d565b610857611399565b906064359160843567ffffffffffffffff811161043e5761087c903690600401611417565b9091610886611b7e565b61088e6115cd565b610896611bba565b6001600160a01b03168086526001602052604086205490949060ff16156109c95785546108ce9082906001600160a01b031687611be4565b85546001600160a01b0316938690853b156101a657604051633ddf4d7d60e11b815290829082906001600160a01b03610905611383565b166004830152602482018a90526001600160a01b0316604482018190526064820186905260a060848301529781838161094260a482018b8d611466565b03925af180156109be576109a9575b50506109917f6478cbb6e28c0823c691dfd74c01c985634faddd4c401b990fe4ec26277ea8d5936040519384938452604060208501526040840191611466565b0390a36001600080516020611df88339815191525580f35b816109b3916113c3565b61043a578538610951565b6040513d84823e3d90fd5b630b094f2760e31b8652600486fd5b50346101aa57806003193601126101aa57602090604051908152f35b50346101aa5760203660031901126101aa57610a0e611383565b610a1661161b565b6001600160a01b03168015610a6357808252600160205260408220600160ff198254161790557faab7954e9d246b167ef88aeddad35209ca2489d95a8aeb59e288d9b19fae5a548280a280f35b63d92e233d60e01b8252600482fd5b50346101aa5760203660031901126101aa57610a8c611383565b610a9461161b565b6001600160a01b03168015610a6357808252600160205260408220805460ff191690557f51085ddf9ebdded84b76e829eb58c4078e4b5bdf97d9a94723f336039da467918280a280f35b50346101aa5760a03660031901126101aa57610af8611383565b610b0061136d565b9060443560643567ffffffffffffffff811161043e57610b24903690600401611417565b9190936084359067ffffffffffffffff8211610cb057608082600401926003199036030112610cb057610b55611b7e565b610b5d6115cd565b610b65611bba565b6001600160a01b03168087526001602052604087205490959060ff161561041c578654610b9d9084906001600160a01b031688611be4565b86546001600160a01b031694853b15610cac5787604051809263aa0c0fc160e01b825289600483015260018060a01b03169788602483015286604483015260a06064830152818381610c08610bf660a483018d8b611466565b8281036003190160848401528a611487565b03925af180156103db57610c6a575b507f7b53ec10a80164e60591c43d9c222e9354886981b880a3fba19c9ceb77fb9721939291610c5c610991926040519586958652606060208701526060860191611466565b908382036040850152611487565b91610c5c88610ca0610991949a7f7b53ec10a80164e60591c43d9c222e9354886981b880a3fba19c9ceb77fb97219897966113c3565b98925050919293610c17565b8780fd5b8680fd5b50346101aa5760203660031901126101aa57610cce611383565b610cd661157a565b6001600160a01b038116908115610d7157600254610d219190610d01906001600160a01b03166119b2565b50600254610d17906001600160a01b0316611a48565b506106c3816116b3565b50600254604080516001600160a01b0383168152602081018490527f4d3470c839d3c4dd664eec934b920c12fe0966e3185103dd40149496815df2b69190a16001600160a01b0319161760025580f35b63d92e233d60e01b8352600483fd5b50346101aa5760403660031901126101aa5760ff6040602092610da161136d565b6004358252600080516020611d9883398151915285528282206001600160a01b03909116825284522054604051911615158152f35b50346101aa57806003193601126101aa576020604051600080516020611d788339815191528152f35b50346101aa57806003193601126101aa57610e18611508565b610e20611bba565b600160ff19600080516020611dd8833981519152541617600080516020611dd8833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101aa57806003193601126101aa57602060ff600080516020611dd883398151915254166040519015158152f35b50346101aa57806003193601126101aa576002546040516001600160a01b039091168152602090f35b50346101aa57806003193601126101aa576020604051600080516020611d588339815191528152f35b50346101aa57806003193601126101aa577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610f4f576020604051600080516020611d388339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101aa57610f73611383565b6024359067ffffffffffffffff82116111a757366023830112156111a75781600401359083610fa1836113fb565b93610faf60405195866113c3565b838552602085019336602482840101116111a757806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611184575b506111755761101261157a565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181611141575b5061105557634c9c8ce360e01b86526004859052602486fd5b9384600080516020611d3883398151915287960361112f5750823b1561111d57600080516020611d3883398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a28051156111025761057b9382915190845af43d156110fa573d916110de836113fb565b926110ec60405194856113c3565b83523d85602085013e611cb6565b606091611cb6565b505050503461110e5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d60201161116d575b8161115d602093836113c3565b81010312610cb05751903861103c565b3d9150611150565b63703e46dd60e11b8452600484fd5b600080516020611d38833981519152546001600160a01b03161415905038611005565b8280fd5b50346101aa57806003193601126101aa576111c4611508565b600080516020611dd88339815191525460ff81161561121e5760ff1916600080516020611dd8833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346101aa5760403660031901126101aa5761124761136d565b336001600160a01b038216036112635761057b90600435611ade565b63334bd91960e11b8252600482fd5b50346101aa5760403660031901126101aa5761057b60043561129261136d565b9061129f61057182611445565b61191b565b50346101aa57806003193601126101aa57602060ff60025460a01c166040519015158152f35b50346101aa5760203660031901126101aa5760206112e9600435611445565b604051908152f35b50346101aa57806003193601126101aa57546040516001600160a01b039091168152602090f35b9050346101a65760203660031901126101a65760043563ffffffff60e01b81168091036111a75760209250637965db0b60e01b811490811561135c575b5015158152f35b6301ffc9a760e01b14905038611355565b602435906001600160a01b03821682036103ce57565b600435906001600160a01b03821682036103ce57565b604435906001600160a01b03821682036103ce57565b35906001600160a01b03821682036103ce57565b90601f8019910116810190811067ffffffffffffffff8211176113e557604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116113e557601f01601f191660200190565b9181601f840112156103ce5782359167ffffffffffffffff83116103ce57602083818601950101116103ce57565b600052600080516020611d9883398151915260205260016040600020015490565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160a01b03611498826113af565b1682526001600160a01b036114af602083016113af565b166020830152604081013560408301526060810135601e19823603018112156103ce57016020813591019067ffffffffffffffff81116103ce5780360382136103ce576080838160606115059601520191611466565b90565b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561154157565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16156115b357565b63e2517d3f60e01b60005233600452600060245260446000fd5b336000908152600080516020611e18833981519152602052604090205460ff16156115f457565b63e2517d3f60e01b60005233600452600080516020611d7883398151915260245260446000fd5b336000908152600080516020611db8833981519152602052604090205460ff161561164257565b63e2517d3f60e01b60005233600452600080516020611d5883398151915260245260446000fd5b6000818152600080516020611d988339815191526020908152604080832033845290915290205460ff161561169b5750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b0381166000908152600080516020611e18833981519152602052604090205460ff16611739576001600160a01b03166000818152600080516020611e1883398151915260205260408120805460ff19166001179055339190600080516020611d7883398151915290600080516020611d188339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020611db8833981519152602052604090205460ff16611739576001600160a01b03166000818152600080516020611db883398151915260205260408120805460ff19166001179055339190600080516020611d5883398151915290600080516020611d188339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16611739576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff19166001179055339190600080516020611d188339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff16611739576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a90600080516020611d188339815191529080a4600190565b6000818152600080516020611d98833981519152602090815260408083206001600160a01b038616845290915290205460ff166119ab576000818152600080516020611d98833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff1916600117905533929190600080516020611d188339815191529080a4600190565b5050600090565b6001600160a01b0381166000908152600080516020611e18833981519152602052604090205460ff1615611739576001600160a01b03166000818152600080516020611e1883398151915260205260408120805460ff19169055339190600080516020611d78833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381166000908152600080516020611db8833981519152602052604090205460ff1615611739576001600160a01b03166000818152600080516020611db883398151915260205260408120805460ff19169055339190600080516020611d58833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020611d98833981519152602090815260408083206001600160a01b038616845290915290205460ff16156119ab576000818152600080516020611d98833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6002600080516020611df88339815191525414611ba9576002600080516020611df883398151915255565b633ee5aeb560e01b60005260046000fd5b60ff600080516020611dd88339815191525416611bd357565b63d93c066560e01b60005260046000fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152611c1f916102e96064836113c3565b565b906000602091828151910182855af115611c7c576000513d611c7357506001600160a01b0381163b155b611c525750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b60011415611c4b565b6040513d6000823e3d90fd5b60ff600080516020611e388339815191525460401c1615611ca557565b631afcd79f60e31b60005260046000fd5b90611cdc5750805115611ccb57805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611d0e575b611ced575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15611ce556fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8619cecd8b9e095ab43867f5b69d492180450fe862e6b50bfbfb24b75dd84c8a10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009e55e7b9c223644eee376bcbcf651816b24106427c658526e048949da61b2c08cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00395f4e35a18c2b5e556b3b2ff855307e76c0b3cc1ca71e19a70e83037e08e7b3f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212206353f97c2bca70990562e73c05a556d800ce6f131c5458a0f2aa0fe6f1af58ff64736f6c634300081a003360a080604052346100ea57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b6040516128fe90816100f0823960805181818161120b01526112db0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880610054565b63f92ee8a960e01b60005260046000fd5b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a7146119015750806310188aef1461188f578063102614b01461179f5780631becceb4146116c457806321e093b11461169b578063248a9ca3146116745780632f2ff15d1461164257806336568abe146115fd57806338e22527146115035780633f4ba83a146114815780634f1ef2861461126057806352d1902d146111f857806357bec62f146111cf5780635b112591146111a65780635c975abb146111765780635d62c8601461113b578063726ac97c1461100c578063744b9b8b14610f295780637bbe9afa14610b1c5780638456cb5914610aa757806391d1485414610a4e578063950837aa146109ab578063a217fddf1461098f578063a2ba193414610972578063a783c78914610949578063aa0c0fc1146107f8578063ad3cb1cc146107ab578063ae7a3a6f1461072f578063c0c53b8b14610519578063cb7ba8e5146103a9578063d09e3b7814610236578063d547741f146101fb578063dda79b75146101d45763e63ab1e91461019757600080fd5b346101d157806003193601126101d15760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b80fd5b50346101d157806003193601126101d157546040516001600160a01b039091168152602090f35b50346101d15760403660031901126101d15761023260043561021b611987565b9061022d61022882611bf9565b611ea1565b6123d1565b5080f35b50346101d15760a03660031901126101d157610250611956565b60243561025b611971565b916064356001600160401b0381116103a55761027b9036906004016119b1565b608435946001600160401b0386116103a157856004019360a0600319883603011261039d576102a8612220565b851561038e576001600160a01b031695861561037f576064016104006102d96102d18388611ae2565b905085611bd6565b116103515750610347927fa795d4377323e4c2d4c346b8050a7dd504c4043be8884c81b8d9690706c8388f94928261031588610339953361224a565b60405197885260018060a01b03166020880152608060408801526080870191611b45565b908482036060860152611b66565b918033930390a380f35b8761036a8461036260449489611ae2565b919050611bd6565b634fe7bc4760e11b8252600452610400602452fd5b63d92e233d60e01b8852600488fd5b63951e19ed60e01b8852600488fd5b8780fd5b8680fd5b8480fd5b5060603660031901126101d1576103be611956565b906024356001600160401b038111610515576103de9036906004016119b1565b604493919335906001600160401b038211610511576080826004019260031990360301126105115761040e612471565b610416611d6f565b61041e612220565b6001600160a01b03831692831561050257848080809334905af1610440611c4a565b50156104f3578394833b156103a557604051636481451b60e11b8152602060048201528581806104736024820188611c92565b038183895af19081156104e85786916104d3575b50506104bb7fde7603a6ed5d07c9f43597ccfe9043d15b66d3284f0de321f5cdf56329e6e035936040519384933485611cf0565b0390a360016000805160206128698339815191525580f35b816104dd91611a90565b6103a5578438610487565b6040513d88823e3d90fd5b632b3f6d1160e21b8452600484fd5b63d92e233d60e01b8552600485fd5b8380fd5b5080fd5b50346101d15760603660031901126101d157610533611956565b61053b611987565b610543611971565b916000805160206128a9833981519152549260ff8460401c1615936001600160401b03811680159081610727575b600114908161071d575b159081610714575b506107055767ffffffffffffffff1981166001176000805160206128a983398151915255846106d8575b506001600160a01b03821690811580156106c7575b6106b8579061061861063b93926105d7612719565b6105df612719565b6105e7612719565b600160008051602061286983398151915255610601612719565b610609612719565b61061281612033565b506120cd565b50610622826120cd565b506001600160601b0360a01b6001541617600155611fad565b5060018060a01b03166001600160601b0360a01b600354161760035561065e5780f35b68ff0000000000000000196000805160206128a983398151915254166000805160206128a9833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b63d92e233d60e01b8652600486fd5b506001600160a01b038416156105c2565b68ffffffffffffffffff191668010000000000000001176000805160206128a983398151915255386105ad565b63f92ee8a960e01b8652600486fd5b90501538610583565b303b15915061057b565b869150610571565b50346101d15760203660031901126101d157610749611956565b610751611d1c565b6001600160a01b03811690811561079c5782546001600160a01b031661078d5761077a90611eeb565b5081546001600160a01b03191617815580f35b631666fe6f60e31b8352600483fd5b63d92e233d60e01b8352600483fd5b50346101d157806003193601126101d157506107f46040516107ce604082611a90565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611a6b565b0390f35b50346101d15760a03660031901126101d157610812611956565b61081a611987565b906044356064356001600160401b0381116103a55761083d9036906004016119b1565b91608435926001600160401b0384116103a1576080846004019460031990360301126103a15761086b612471565b610873611e2f565b61087b612220565b811561093a576001600160a01b03861694851561037f576001600160a01b0316956108a890839088612682565b843b156103a157604051636481451b60e11b81526020600482015287908181806108d5602482018a611c92565b0381838b5af1801561092f5761091a575b50507fde7603a6ed5d07c9f43597ccfe9043d15b66d3284f0de321f5cdf56329e6e035936104bb9160405194859485611cf0565b8161092491611a90565b6103a15786386108e6565b6040513d84823e3d90fd5b63951e19ed60e01b8752600487fd5b50346101d157806003193601126101d15760206040516000805160206127a98339815191528152f35b50346101d157806003193601126101d15760206040516104008152f35b50346101d157806003193601126101d157602090604051908152f35b50346101d15760203660031901126101d1576109c5611956565b6109cd611d1c565b6001600160a01b03811690811561079c576001546109fe91906109f8906001600160a01b031661233b565b50611fad565b50600154604080516001600160a01b0383168152602081018490527f3a7b8d6372645f474fe60c115a2ef21421306a3ed4664fa0023c461413c085799190a16001600160a01b0319161760015580f35b50346101d15760403660031901126101d1576040610a6a611987565b916004358152600080516020612829833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346101d157806003193601126101d157610ac0611dbd565b610ac8612220565b600160ff19600080516020612849833981519152541617600080516020612849833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101d157366003190160a08112610515576020136101d157610b3e611987565b610b46611971565b906064356084356001600160401b0381116103a557610b699036906004016119b1565b610b74929192612471565b610b7c611e2f565b610b84612220565b8115610f1a576001600160a01b038516948515610f0b57610ba58186612622565b15610eea5760405163095ea7b360e01b81526001600160a01b03828116600483015260248201859052861695906020816044818c8b5af1908115610e55578991610ecb575b5015610eb457610c1b91906001600160a01b03610c05611c1a565b16610ea957610c1584878461258a565b50612622565b15610e92576040516370a0823160e01b8152306004820152602081602481885afa908115610d52578791610e60575b5080610c73575b50906104bb600080516020612809833981519152939260405193849384611c30565b6003546001600160a01b03168503610dbe5760025460405163095ea7b360e01b81526001600160a01b039091166004820152602481018290526020816044818b8a5af1908115610db3578891610d84575b5015610d61576002548791906001600160a01b0316803b15610d5d5760248392604051948593849263743e0c9b60e01b845260048401525af18015610d5257610d28575b50906104bb60008051602061280983398151915293925b91929350610c51565b86610d48600080516020612809833981519152959493986104bb93611a90565b9691929350610d08565b6040513d89823e3d90fd5b8280fd5b60025463482b72c160e11b885260048690526001600160a01b0316602452604487fd5b610da6915060203d602011610dac575b610d9e8183611a90565b810190611c7a565b38610cc4565b503d610d94565b6040513d8a823e3d90fd5b8654604051636c9b2a3f60e11b8152600481018790526001600160a01b0390911690602081602481855afa908115610e55578991610e36575b5015610e225791610e1d6104bb9260008051602061280983398151915296959488612682565b610d1f565b631387a34960e01b88526004869052602488fd5b610e4f915060203d602011610dac57610d9e8183611a90565b38610df7565b6040513d8b823e3d90fd5b90506020813d602011610e8a575b81610e7b60209383611a90565b810103126103a1575138610c4a565b3d9150610e6e565b604486868663482b72c160e11b8352600452602452fd5b610c158487846124ad565b604488888863482b72c160e11b8352600452602452fd5b610ee4915060203d602011610dac57610d9e8183611a90565b38610bea565b63482b72c160e11b87526001600160a01b0385166004526024869052604487fd5b63d92e233d60e01b8752600487fd5b63951e19ed60e01b8652600486fd5b50610f33366119de565b909192610f3e612220565b3415610ffd576001600160a01b03169283156105025760608201610400610f70610f688386611ae2565b905086611bd6565b11610fec5750848080803460018060a01b03600154165af1610f90611c4a565b5015610fdd577fa795d4377323e4c2d4c346b8050a7dd504c4043be8884c81b8d9690706c8388f916103396103479260405195348752886020880152608060408801526080870191611b45565b6379cacff160e01b8552600485fd5b8561036a8561036260449487611ae2565b633b38932f60e11b8552600485fd5b5060403660031901126101d157611021611956565b602435906001600160401b038211610d5d57816004019060a060031984360301126105115761104e612220565b341561112c576001600160a01b031691821561111d576064016104006110748284611ae2565b9050116110fa5750828080803460018060a01b03600154165af1611096611c4a565b50156110eb577fc6f891b65320c682b217616a62b51f218fee95d5f0ba83e758ef9ab4ee8e975c610347604051923484528560208501526080604085015285608085015260a0606085015260a0840190611b66565b6379cacff160e01b8352600483fd5b6111078491604493611ae2565b634fe7bc4760e11b835260045250610400602452fd5b63d92e233d60e01b8452600484fd5b633b38932f60e11b8452600484fd5b50346101d157806003193601126101d15760206040517f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b98152f35b50346101d157806003193601126101d157602060ff60008051602061284983398151915254166040519015158152f35b50346101d157806003193601126101d1576001546040516001600160a01b039091168152602090f35b50346101d157806003193601126101d1576002546040516001600160a01b039091168152602090f35b50346101d157806003193601126101d1577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036112515760206040516000805160206127e98339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101d157611275611956565b602435906001600160401b038211610d5d5736602383011215610d5d57816004013590836112a283611ac7565b936112b06040519586611a90565b83855260208501933660248284010111610d5d57806024602093018637850101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630811490811561145e575b5061144f57611313611d1c565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa86918161141b575b5061135657634c9c8ce360e01b86526004859052602486fd5b93846000805160206127e98339815191528796036114095750823b156113f7576000805160206127e983398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a28051156113dc576102329382915190845af46113d6611c4a565b91612747565b50505050346113e85780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011611447575b8161143760209383611a90565b810103126103a15751903861133d565b3d915061142a565b63703e46dd60e11b8452600484fd5b6000805160206127e9833981519152546001600160a01b03161415905038611306565b50346101d157806003193601126101d15761149a611dbd565b6000805160206128498339815191525460ff8116156114f45760ff1916600080516020612849833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50366003190160608112610515576020136101d157611520611987565b6044356001600160401b038111610d5d5761153f9036906004016119b1565b61154a929192612471565b611552611d6f565b61155a612220565b6001600160a01b038216918215610502576107f494507fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f919081856001600160a01b036115a5611c1a565b166115ee576115b39261258a565b935b6115c56040519283923484611c30565b0390a2600160008051602061286983398151915255604051918291602083526020830190611a6b565b6115f7926124ad565b936115b5565b50346101d15760403660031901126101d157611617611987565b336001600160a01b0382160361163357610232906004356123d1565b63334bd91960e11b8252600482fd5b50346101d15760403660031901126101d157610232600435611662611987565b9061166f61022882611bf9565b612189565b50346101d15760203660031901126101d1576020611693600435611bf9565b604051908152f35b50346101d157806003193601126101d1576003546040516001600160a01b039091168152602090f35b50346101d1576116d3366119de565b9190926116de612220565b6020830135801515810361179b5761178c576001600160a01b0316928315610502576117186117106060850185611ae2565b905082611bd6565b61040081116117745750907fd34634f30f94a646fdf4ce7078f38fc5fa0d3f0b193658facea4e3e43330d9749161176e61175f604051938493604085526040850191611b45565b82810360208401523395611b66565b0390a380f35b634fe7bc4760e11b8652600452610400602452604485fd5b630cda5ff960e11b8552600485fd5b8580fd5b50346101d15760803660031901126101d1576117b9611956565b6024356117c4611971565b91606435926001600160401b0384116103a557836004019160a0600319863603011261179b576117f2612220565b8315610f1a576001600160a01b03169384156106b8576064016104006118188285611ae2565b90501161188257507fc6f891b65320c682b217616a62b51f218fee95d5f0ba83e758ef9ab4ee8e975c918161185185610347943361224a565b60405194855260018060a01b031660208501526080604085015285608085015260a0606085015260a0840190611b66565b8561110760449285611ae2565b50346101d15760203660031901126101d1576118a9611956565b6118b1611d1c565b6001600160a01b03811690811561079c576002546001600160a01b03166118f2576118db90611eeb565b506001600160601b0360a01b600254161760025580f35b630646e00b60e11b8352600483fd5b9050346105155760203660031901126105155760043563ffffffff60e01b8116809103610d5d5760209250637965db0b60e01b8114908115611945575b5015158152f35b6301ffc9a760e01b1490503861193e565b600435906001600160a01b038216820361196c57565b600080fd5b604435906001600160a01b038216820361196c57565b602435906001600160a01b038216820361196c57565b35906001600160a01b038216820361196c57565b9181601f8401121561196c578235916001600160401b03831161196c576020838186019501011161196c57565b90606060031983011261196c576004356001600160a01b038116810361196c57916024356001600160401b03811161196c5781611a1d916004016119b1565b92909291604435906001600160401b03821161196c5760a090829003600319011261196c5760040190565b60005b838110611a5b5750506000910152565b8181015183820152602001611a4b565b90602091611a8481518092818552858086019101611a48565b601f01601f1916010190565b90601f801991011681019081106001600160401b03821117611ab157604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b038111611ab157601f01601f191660200190565b903590601e198136030182121561196c57018035906001600160401b03821161196c5760200191813603831361196c57565b9035601e198236030181121561196c5701602081359101916001600160401b03821161196c57813603831361196c57565b908060209392818452848401376000828201840152601f01601f1916010190565b906001600160a01b03611b788361199d565b168152602082013580151580910361196c5760208201526001600160a01b03611ba36040840161199d565b166040820152608080611bcd611bbc6060860186611b14565b60a0606087015260a0860191611b45565b93013591015290565b91908201809211611be357565b634e487b7160e01b600052601160045260246000fd5b60005260008051602061282983398151915260205260016040600020015490565b6004356001600160a01b038116810361196c5790565b604090611c47949281528160208201520191611b45565b90565b3d15611c75573d90611c5b82611ac7565b91611c696040519384611a90565b82523d6000602084013e565b606090565b9081602091031261196c5751801515810361196c5790565b611c479190608090611ce0906001600160a01b03611caf8261199d565b1684526001600160a01b03611cc66020830161199d565b166020850152604081013560408501526060810190611b14565b9190928160608201520191611b45565b9291611c479492611d0e928552606060208601526060850191611b45565b916040818403910152611c92565b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1615611d5557565b63e2517d3f60e01b60005233600452600060245260446000fd5b336000908152600080516020612889833981519152602052604090205460ff1615611d9657565b63e2517d3f60e01b600052336004526000805160206127a983398151915260245260446000fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1615611df657565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527f8e1abba0e730025cbab32adfc4f51c1ad3a74360c4b2cfb4780a6c5f316e0509602052604090205460ff1615611e6857565b63e2517d3f60e01b600052336004527f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b960245260446000fd5b60008181526000805160206128298339815191526020908152604080832033845290915290205460ff1615611ed35750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b03811660009081527f8e1abba0e730025cbab32adfc4f51c1ad3a74360c4b2cfb4780a6c5f316e0509602052604090205460ff16611fa7576001600160a01b031660008181527f8e1abba0e730025cbab32adfc4f51c1ad3a74360c4b2cfb4780a6c5f316e050960205260408120805460ff191660011790553391907f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b9906000805160206127c98339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020612889833981519152602052604090205460ff16611fa7576001600160a01b0316600081815260008051602061288983398151915260205260408120805460ff191660011790553391906000805160206127a9833981519152906000805160206127c98339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16611fa7576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391906000805160206127c98339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff16611fa7576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a906000805160206127c98339815191529080a4600190565b6000818152600080516020612829833981519152602090815260408083206001600160a01b038616845290915290205460ff16612219576000818152600080516020612829833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291906000805160206127c98339815191529080a4600190565b5050600090565b60ff600080516020612849833981519152541661223957565b63d93c066560e01b60005260046000fd5b60035492939290916001600160a01b03908116911681036122765763e4dd681d60e01b60005260046000fd5b600054604051636c9b2a3f60e11b8152600481018390526001600160a01b039091169490602081602481895afa90811561232f57600091612310575b50156122fb576122f99394604051936323b872dd60e01b602086015260018060a01b0316602485015260448401526064830152606482526122f4608483611a90565b6126be565b565b50631387a34960e01b60005260045260246000fd5b612329915060203d602011610dac57610d9e8183611a90565b386122b2565b6040513d6000823e3d90fd5b6001600160a01b0381166000908152600080516020612889833981519152602052604090205460ff1615611fa7576001600160a01b0316600081815260008051602061288983398151915260205260408120805460ff191690553391906000805160206127a9833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020612829833981519152602090815260408083206001600160a01b038616845290915290205460ff1615612219576000818152600080516020612829833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6002600080516020612869833981519152541461249c57600260008051602061286983398151915255565b633ee5aeb560e01b60005260046000fd5b6040516319db301560e21b815292916004356001600160a01b03811692919083900361196c57846124f581949260009683946004850152604060248501526044840191611b45565b039134906001600160a01b03165af190811561232f57600091612516575090565b903d8082843e6125268184611a90565b820191602081840312610515578051906001600160401b038211610d5d570182601f820112156105155780519161255c83611ac7565b9361256a6040519586611a90565b838552602084840101116101d1575090611c479160208085019101611a48565b9060048310156125d2575b908260009392849360405192839283378101848152039134905af16125b8611c4a565b90156125c15790565b632b3f6d1160e21b60005260046000fd5b9081356001600160e01b0319166319db301560e21b811461261157636481451b60e11b146126005790612595565b6379a2cd4b60e11b60005260046000fd5b63ed69977560e01b60005260046000fd5b60405163095ea7b360e01b81526001600160a01b039283166004820152600060248201819052909260209284926044928492165af190811561232f57600091612669575090565b611c47915060203d602011610dac57610d9e8183611a90565b60405163a9059cbb60e01b60208201526001600160a01b039290921660248301526044808301939093529181526122f9916122f4606483611a90565b906000602091828151910182855af11561232f576000513d61271057506001600160a01b0381163b155b6126ef5750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b600114156126e8565b60ff6000805160206128a98339815191525460401c161561273657565b631afcd79f60e31b60005260046000fd5b9061276d575080511561275c57805190602001fd5b63d6bda27560e01b60005260046000fd5b8151158061279f575b61277e575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b1561277656fe0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b738202dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f007bdc20c26beb8eedd348733c28a5c4c2f7f7f1183cba8898195258fcdca273bcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220e3ceedd3e1180302ea91f43717e98df4951453d3ade1c5982edc0e113031242064736f6c634300081a003360a0806040523460295730608052611bc4908161002f8239608051818181610bd40152610ca50152f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a71461107a57508063106e629014610fe2578063116191b614610fbb57806321e093b114610f92578063248a9ca314610f6b5780632f2ff15d14610f3957806336568abe14610ef45780633f4ba83a14610e725780634f1ef28614610c2957806352d1902d14610bc15780635b11259114610b985780635c975abb14610b685780636f8728ad146109a45780636fb9a7af1461081a578063743e0c9b146107b35780638456cb591461073e57806385f438c11461071557806391d14854146106bc578063950837aa146105ea578063a217fddf146105ce578063a783c78914610593578063ad3cb1cc14610519578063d547741f146104de578063e63ab1e9146104a35763f8c8765e1461013457600080fd5b346104a05760803660031901126104a05761014d6110cf565b6101556110ea565b906044356001600160a01b03811680820361049c576064356001600160a01b0381169490919085830361049857600080516020611b6f833981519152549567ffffffffffffffff60ff8860401c1615971680159081610490575b6001149081610486575b15908161047d575b5061046e57866101cf611259565b61043c575b600080516020611b6f833981519152549567ffffffffffffffff60ff8860401c1615971680159081610434575b600114908161042a575b159081610421575b506104125786610221611259565b6103e0575b6001600160a01b03169081159081156103ce575b81156103c5575b81156103bc575b506103ad57916102f49493916102ee936102606119df565b6102686119df565b6102706119df565b6001600080516020611b0f8339815191525561028a6119df565b6102926119df565b6001600160601b0360a01b8a541617895560018060a01b03166001600160601b0360a01b60015416176001556001600160601b0360a01b60025416176002556102da816115ad565b506102e483611489565b506102ee83611515565b50611647565b50610356575b6103015780f35b60ff60401b19600080516020611b6f8339815191525416600080516020611b6f833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b60ff60401b19600080516020611b6f8339815191525416600080516020611b6f833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a16102fa565b63d92e233d60e01b8852600488fd5b90501538610248565b84159150610241565b6001600160a01b03841615915061023a565b600160401b60ff60401b19600080516020611b6f833981519152541617600080516020611b6f83398151915255610226565b63f92ee8a960e01b8952600489fd5b90501538610213565b303b15915061020b565b889150610201565b600160401b60ff60401b19600080516020611b6f833981519152541617600080516020611b6f833981519152556101d4565b63f92ee8a960e01b8852600488fd5b905015386101c1565b303b1591506101b9565b8891506101af565b8680fd5b8480fd5b80fd5b50346104a057806003193601126104a05760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346104a05760403660031901126104a0576105156004356104fe6110ea565b9061051061050b82611196565b6113d8565b6118d8565b5080f35b50346104a057806003193601126104a05760408051916105398284611114565b60058352640352e302e360dc1b6020840152815192839160208352815191826020850152815b83811061057c575050828201840152601f01601f19168101030190f35b60208282018101518883018801528795500161055f565b50346104a057806003193601126104a05760206040517f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb8152f35b50346104a057806003193601126104a057602090604051908152f35b50346104a05760203660031901126104a0576106046110cf565b61060c611385565b6001600160a01b0381169081156106ad5760025461065d9190610637906001600160a01b031661179a565b5060025461064d906001600160a01b0316611830565b5061065781611489565b50611515565b50600254604080516001600160a01b0383168152602081018490527f33770ab682353c17917ad3e667f05905fc8dda00671ef1ed33bef9bc8db0323e9190a16001600160a01b0319161760025580f35b63d92e233d60e01b8352600483fd5b50346104a05760403660031901126104a05760406106d86110ea565b916004358152600080516020611acf833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346104a057806003193601126104a0576020604051600080516020611aaf8339815191528152f35b50346104a057806003193601126104a057610757611313565b61075f611422565b600160ff19600080516020611aef833981519152541617600080516020611aef833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346104a05760203660031901126104a0576107cd611422565b6001546040516323b872dd60e01b60208201523360248201523060448201526004356064808301919091528152610817916001600160a01b0316610812608483611114565b611978565b80f35b50346104a057366003190160a081126109a0576020136104a05761083c6110ea565b60443560643567ffffffffffffffff811161099c5761085f903690600401611168565b9091610869611289565b6108716112c5565b610879611422565b60015485546108969183916001600160a01b03908116911661144c565b84546001546001600160a01b03918216958792909116863b1561099857604051633ddf4d7d60e11b81529183918391906001600160a01b036108d66110cf565b16600484015260248301526001600160a01b0316604482018190526064820186905260a060848301529781838161091160a482018b8d6111b7565b03925af1801561098d57610978575b50506109607f23b9573b29ff81f01c7aa1968188e1cb7d5858b08582e111fdaf386d9ef9bd8d9360405193849384526040602085015260408401916111b7565b0390a26001600080516020611b0f8339815191525580f35b8161098291611114565b61049c578438610920565b6040513d84823e3d90fd5b8280fd5b8380fd5b5080fd5b50346104a05760a03660031901126104a0576109be6110cf565b906024359060443567ffffffffffffffff81116109a0576109e3903690600401611168565b909260843567ffffffffffffffff811161099c5760808160040191600319903603011261099c57610a12611289565b610a1a6112c5565b610a22611422565b6001548454610a3f9184916001600160a01b03908116911661144c565b83546001546001600160a01b03918216979116873b15610b645794610aa78798610ab99383809a996040519687958694859363aa0c0fc160e01b8552600485015260018060a01b03169c8d60248501528b604485015260a060648501528c60a48501916111b7565b828103600319016084840152896111d8565b03925af18015610b5957610b1b575b5061096090610b0d7f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff095969760405195869586526060602087015260608601916111b7565b9083820360408501526111d8565b90610b0d86610b4f7f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff0979861096095611114565b9695505090610ac8565b6040513d88823e3d90fd5b8580fd5b50346104a057806003193601126104a057602060ff600080516020611aef83398151915254166040519015158152f35b50346104a057806003193601126104a0576002546040516001600160a01b039091168152602090f35b50346104a057806003193601126104a0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610c1a576020604051600080516020611a8f8339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126104a057610c3e6110cf565b6024359067ffffffffffffffff821161099857366023830112156109985781600401359083610c6c8361114c565b93610c7a6040519586611114565b8385526020850193366024828401011161099857806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610e4f575b50610e4057610cdd611385565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181610e0c575b50610d2057634c9c8ce360e01b86526004859052602486fd5b9384600080516020611a8f833981519152879603610dfa5750823b15610de857600080516020611a8f83398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115610dcd576105159382915190845af43d15610dc5573d91610da98361114c565b92610db76040519485611114565b83523d85602085013e611a0d565b606091611a0d565b5050505034610dd95780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011610e38575b81610e2860209383611114565b8101031261049857519038610d07565b3d9150610e1b565b63703e46dd60e11b8452600484fd5b600080516020611a8f833981519152546001600160a01b03161415905038610cd0565b50346104a057806003193601126104a057610e8b611313565b600080516020611aef8339815191525460ff811615610ee55760ff1916600080516020611aef833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346104a05760403660031901126104a057610f0e6110ea565b336001600160a01b03821603610f2a57610515906004356118d8565b63334bd91960e11b8252600482fd5b50346104a05760403660031901126104a057610515600435610f596110ea565b90610f6661050b82611196565b611703565b50346104a05760203660031901126104a0576020610f8a600435611196565b604051908152f35b50346104a057806003193601126104a0576001546040516001600160a01b039091168152602090f35b50346104a057806003193601126104a057546040516001600160a01b039091168152602090f35b50346104a05760603660031901126104a057610ffc6110cf565b7f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d560206024359261102b611289565b6110336112c5565b61103b611422565b60015461105490859083906001600160a01b031661144c565b6040519384526001600160a01b031692a26001600080516020611b0f8339815191525580f35b9050346109a05760203660031901126109a05760043563ffffffff60e01b81168091036109985760209250637965db0b60e01b81149081156110be575b5015158152f35b6301ffc9a760e01b149050386110b7565b600435906001600160a01b03821682036110e557565b600080fd5b602435906001600160a01b03821682036110e557565b35906001600160a01b03821682036110e557565b90601f8019910116810190811067ffffffffffffffff82111761113657604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161113657601f01601f191660200190565b9181601f840112156110e55782359167ffffffffffffffff83116110e557602083818601950101116110e557565b600052600080516020611acf83398151915260205260016040600020015490565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160a01b036111e982611100565b1682526001600160a01b0361120060208301611100565b166020830152604081013560408301526060810135601e19823603018112156110e557016020813591019067ffffffffffffffff81116110e55780360382136110e55760808381606061125696015201916111b7565b90565b600167ffffffffffffffff19600080516020611b6f833981519152541617600080516020611b6f83398151915255565b6002600080516020611b0f83398151915254146112b4576002600080516020611b0f83398151915255565b633ee5aeb560e01b60005260046000fd5b336000908152600080516020611b2f833981519152602052604090205460ff16156112ec57565b63e2517d3f60e01b60005233600452600080516020611aaf83398151915260245260446000fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561134c57565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16156113be57565b63e2517d3f60e01b60005233600452600060245260446000fd5b6000818152600080516020611acf8339815191526020908152604080832033845290915290205460ff161561140a5750565b63e2517d3f60e01b6000523360045260245260446000fd5b60ff600080516020611aef833981519152541661143b57565b63d93c066560e01b60005260046000fd5b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815261148791610812606483611114565b565b6001600160a01b0381166000908152600080516020611b2f833981519152602052604090205460ff1661150f576001600160a01b03166000818152600080516020611b2f83398151915260205260408120805460ff19166001179055339190600080516020611aaf83398151915290600080516020611a6f8339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020611b4f833981519152602052604090205460ff1661150f576001600160a01b03166000818152600080516020611b4f83398151915260205260408120805460ff191660011790553391907f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb90600080516020611a6f8339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1661150f576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff19166001179055339190600080516020611a6f8339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1661150f576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a90600080516020611a6f8339815191529080a4600190565b6000818152600080516020611acf833981519152602090815260408083206001600160a01b038616845290915290205460ff16611793576000818152600080516020611acf833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff1916600117905533929190600080516020611a6f8339815191529080a4600190565b5050600090565b6001600160a01b0381166000908152600080516020611b2f833981519152602052604090205460ff161561150f576001600160a01b03166000818152600080516020611b2f83398151915260205260408120805460ff19169055339190600080516020611aaf833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381166000908152600080516020611b4f833981519152602052604090205460ff161561150f576001600160a01b03166000818152600080516020611b4f83398151915260205260408120805460ff191690553391907f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020611acf833981519152602090815260408083206001600160a01b038616845290915290205460ff1615611793576000818152600080516020611acf833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b906000602091828151910182855af1156119d3576000513d6119ca57506001600160a01b0381163b155b6119a95750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b600114156119a2565b6040513d6000823e3d90fd5b60ff600080516020611b6f8339815191525460401c16156119fc57565b631afcd79f60e31b60005260046000fd5b90611a335750805115611a2257805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611a65575b611a44575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15611a3c56fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00395f4e35a18c2b5e556b3b2ff855307e76c0b3cc1ca71e19a70e83037e08e7b37bdc20c26beb8eedd348733c28a5c4c2f7f7f1183cba8898195258fcdca273bcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212202bdad00032481621f5688942b2f2636896811e160d422fd2afd2200c14598d1164736f6c634300081a003360a0806040523460295730608052611ce5908161002f8239608051818181610cb70152610d880152f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a71461115157508063106e6290146110c5578063116191b61461109e57806321e093b114611075578063248a9ca31461104e5780632f2ff15d1461101c57806336568abe14610fd75780633f4ba83a14610f555780634f1ef28614610d0c57806352d1902d14610ca45780635b11259114610c7b5780635c975abb14610c4b5780636f8728ad14610a8a5780636f8b44b0146109d85780636fb9a7af1461085c578063743e0c9b146107db5780638456cb591461076657806385f438c11461073d57806391d14854146106e4578063950837aa14610612578063a217fddf146105f6578063a783c789146105cd578063ad3cb1cc14610553578063d547741f14610518578063d5abeb01146104fa578063e63ab1e9146104bf5763f8c8765e1461014a57600080fd5b346104bc5760803660031901126104bc576101636111a6565b61016b6111c1565b906044356001600160a01b0381168082036104b8576064356001600160a01b038116949091908583036104b457600080516020611c90833981519152549567ffffffffffffffff60ff8860401c16159716801590816104ac575b60011490816104a2575b159081610499575b5061048a57866101e5611330565b610458575b600080516020611c90833981519152549567ffffffffffffffff60ff8860401c1615971680159081610450575b6001149081610446575b15908161043d575b5061042e5786610237611330565b6103fc575b6001600160a01b03169081159081156103ea575b81156103e1575b81156103d8575b506103c9579161030a94939161030493610276611ae0565b61027e611ae0565b610286611ae0565b6001600080516020611c30833981519152556102a0611ae0565b6102a8611ae0565b6001600160601b0360a01b8a541617895560018060a01b03166001600160601b0360a01b60015416176001556001600160601b0360a01b60025416176002556102f081611727565b506102fa83611615565b50610304836116a1565b506117c1565b50610372575b60001960035561031d5780f35b60ff60401b19600080516020611c908339815191525416600080516020611c90833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b60ff60401b19600080516020611c908339815191525416600080516020611c90833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1610310565b63d92e233d60e01b8852600488fd5b9050153861025e565b84159150610257565b6001600160a01b038416159150610250565b600160401b60ff60401b19600080516020611c90833981519152541617600080516020611c908339815191525561023c565b63f92ee8a960e01b8952600489fd5b90501538610229565b303b159150610221565b889150610217565b600160401b60ff60401b19600080516020611c90833981519152541617600080516020611c90833981519152556101ea565b63f92ee8a960e01b8852600488fd5b905015386101d7565b303b1591506101cf565b8891506101c5565b8680fd5b8480fd5b80fd5b50346104bc57806003193601126104bc5760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346104bc57806003193601126104bc576020600354604051908152f35b50346104bc5760403660031901126104bc5761054f6004356105386111c1565b9061054a6105458261126d565b6114af565b611a40565b5080f35b50346104bc57806003193601126104bc57604080519161057382846111eb565b60058352640352e302e360dc1b6020840152815192839160208352815191826020850152815b8381106105b6575050828201840152601f01601f19168101030190f35b602082820181015188830188015287955001610599565b50346104bc57806003193601126104bc576020604051600080516020611b708339815191528152f35b50346104bc57806003193601126104bc57602090604051908152f35b50346104bc5760203660031901126104bc5761062c6111a6565b61063461145c565b6001600160a01b0381169081156106d557600254610685919061065f906001600160a01b0316611914565b50600254610675906001600160a01b03166119aa565b5061067f81611615565b506116a1565b50600254604080516001600160a01b0383168152602081018490527f33770ab682353c17917ad3e667f05905fc8dda00671ef1ed33bef9bc8db0323e9190a16001600160a01b0319161760025580f35b63d92e233d60e01b8352600483fd5b50346104bc5760403660031901126104bc5760406107006111c1565b916004358152600080516020611bf0833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346104bc57806003193601126104bc576020604051600080516020611bd08339815191528152f35b50346104bc57806003193601126104bc5761077f6113ea565b6107876114f9565b600160ff19600080516020611c10833981519152541617600080516020611c10833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346104bc5760203660031901126104bc576107f56114f9565b60015481906001600160a01b0316803b156108595781809160446040518094819363079cc67960e41b835233600484015260043560248401525af1801561084e5761083d5750f35b81610847916111eb565b6104bc5780f35b6040513d84823e3d90fd5b50fd5b50346104bc57366003190160a081126109d4576020136104bc5761087e6111c1565b60443560643567ffffffffffffffff81116109d0576108a190369060040161123f565b90916108ab611360565b6108b361139c565b6108bb6114f9565b84546108d5906084359083906001600160a01b0316611523565b84546001546001600160a01b03918216958792909116863b156109cc57604051633ddf4d7d60e11b81529183918391906001600160a01b036109156111a6565b16600484015260248301526001600160a01b0316604482018190526064820186905260a060848301529781838161095060a482018b8d61128e565b03925af1801561084e576109b7575b505061099f7f23b9573b29ff81f01c7aa1968188e1cb7d5858b08582e111fdaf386d9ef9bd8d93604051938493845260406020850152604084019161128e565b0390a26001600080516020611c308339815191525580f35b816109c1916111eb565b6104b857843861095f565b8280fd5b8380fd5b5080fd5b50346104bc5760203660031901126104bc57600080516020611b708339815191528152600080516020611bf08339815191526020908152604080832033600090815292529020546004359060ff1615610a655760207f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c91610a576114f9565b80600355604051908152a180f35b63e2517d3f60e01b825233600452600080516020611b70833981519152602452604482fd5b50346104bc5760a03660031901126104bc57610aa46111a6565b906024359060443567ffffffffffffffff81116109d457610ac990369060040161123f565b909260843567ffffffffffffffff81116109d0576080816004019160031990360301126109d057610af8611360565b610b0061139c565b610b086114f9565b8354610b22906064359084906001600160a01b0316611523565b83546001546001600160a01b03918216979116873b15610c475794610b8a8798610b9c9383809a996040519687958694859363aa0c0fc160e01b8552600485015260018060a01b03169c8d60248501528b604485015260a060648501528c60a485019161128e565b828103600319016084840152896112af565b03925af18015610c3c57610bfe575b5061099f90610bf07f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff0959697604051958695865260606020870152606086019161128e565b9083820360408501526112af565b90610bf086610c327f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff0979861099f956111eb565b9695505090610bab565b6040513d88823e3d90fd5b8580fd5b50346104bc57806003193601126104bc57602060ff600080516020611c1083398151915254166040519015158152f35b50346104bc57806003193601126104bc576002546040516001600160a01b039091168152602090f35b50346104bc57806003193601126104bc577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610cfd576020604051600080516020611bb08339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126104bc57610d216111a6565b6024359067ffffffffffffffff82116109cc57366023830112156109cc5781600401359083610d4f83611223565b93610d5d60405195866111eb565b838552602085019336602482840101116109cc57806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610f32575b50610f2357610dc061145c565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181610eef575b50610e0357634c9c8ce360e01b86526004859052602486fd5b9384600080516020611bb0833981519152879603610edd5750823b15610ecb57600080516020611bb083398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115610eb05761054f9382915190845af43d15610ea8573d91610e8c83611223565b92610e9a60405194856111eb565b83523d85602085013e611b0e565b606091611b0e565b5050505034610ebc5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011610f1b575b81610f0b602093836111eb565b810103126104b457519038610dea565b3d9150610efe565b63703e46dd60e11b8452600484fd5b600080516020611bb0833981519152546001600160a01b03161415905038610db3565b50346104bc57806003193601126104bc57610f6e6113ea565b600080516020611c108339815191525460ff811615610fc85760ff1916600080516020611c10833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346104bc5760403660031901126104bc57610ff16111c1565b336001600160a01b0382160361100d5761054f90600435611a40565b63334bd91960e11b8252600482fd5b50346104bc5760403660031901126104bc5761054f60043561103c6111c1565b906110496105458261126d565b61187d565b50346104bc5760203660031901126104bc57602061106d60043561126d565b604051908152f35b50346104bc57806003193601126104bc576001546040516001600160a01b039091168152602090f35b50346104bc57806003193601126104bc57546040516001600160a01b039091168152602090f35b50346104bc5760603660031901126104bc576110df6111a6565b7f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d560206024359261110e611360565b61111661139c565b61111e6114f9565b61112b6044358583611523565b6040519384526001600160a01b031692a26001600080516020611c308339815191525580f35b9050346109d45760203660031901126109d45760043563ffffffff60e01b81168091036109cc5760209250637965db0b60e01b8114908115611195575b5015158152f35b6301ffc9a760e01b1490503861118e565b600435906001600160a01b03821682036111bc57565b600080fd5b602435906001600160a01b03821682036111bc57565b35906001600160a01b03821682036111bc57565b90601f8019910116810190811067ffffffffffffffff82111761120d57604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161120d57601f01601f191660200190565b9181601f840112156111bc5782359167ffffffffffffffff83116111bc57602083818601950101116111bc57565b600052600080516020611bf083398151915260205260016040600020015490565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160a01b036112c0826111d7565b1682526001600160a01b036112d7602083016111d7565b166020830152604081013560408301526060810135601e19823603018112156111bc57016020813591019067ffffffffffffffff81116111bc5780360382136111bc5760808381606061132d960152019161128e565b90565b600167ffffffffffffffff19600080516020611c90833981519152541617600080516020611c9083398151915255565b6002600080516020611c30833981519152541461138b576002600080516020611c3083398151915255565b633ee5aeb560e01b60005260046000fd5b336000908152600080516020611c50833981519152602052604090205460ff16156113c357565b63e2517d3f60e01b60005233600452600080516020611bd083398151915260245260446000fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561142357565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff161561149557565b63e2517d3f60e01b60005233600452600060245260446000fd5b6000818152600080516020611bf08339815191526020908152604080832033845290915290205460ff16156114e15750565b63e2517d3f60e01b6000523360045260245260446000fd5b60ff600080516020611c10833981519152541661151257565b63d93c066560e01b60005260046000fd5b6001546040516318160ddd60e01b81526000949392916001600160a01b031690602081600481855afa908115610c3c5786916115e3575b5083018084116115cf57600354106115c057803b156104b857849291836064926040519687958694630f22c5f760e11b865260018060a01b03166004860152602485015260448401525af1801561084e576115b3575050565b816115bd916111eb565b50565b63c30436e960e01b8552600485fd5b634e487b7160e01b86526011600452602486fd5b90506020813d60201161160d575b816115fe602093836111eb565b81010312610c4757513861155a565b3d91506115f1565b6001600160a01b0381166000908152600080516020611c50833981519152602052604090205460ff1661169b576001600160a01b03166000818152600080516020611c5083398151915260205260408120805460ff19166001179055339190600080516020611bd083398151915290600080516020611b908339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020611c70833981519152602052604090205460ff1661169b576001600160a01b03166000818152600080516020611c7083398151915260205260408120805460ff19166001179055339190600080516020611b7083398151915290600080516020611b908339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1661169b576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff19166001179055339190600080516020611b908339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1661169b576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a90600080516020611b908339815191529080a4600190565b6000818152600080516020611bf0833981519152602090815260408083206001600160a01b038616845290915290205460ff1661190d576000818152600080516020611bf0833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff1916600117905533929190600080516020611b908339815191529080a4600190565b5050600090565b6001600160a01b0381166000908152600080516020611c50833981519152602052604090205460ff161561169b576001600160a01b03166000818152600080516020611c5083398151915260205260408120805460ff19169055339190600080516020611bd0833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381166000908152600080516020611c70833981519152602052604090205460ff161561169b576001600160a01b03166000818152600080516020611c7083398151915260205260408120805460ff19169055339190600080516020611b70833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020611bf0833981519152602090815260408083206001600160a01b038616845290915290205460ff161561190d576000818152600080516020611bf0833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b60ff600080516020611c908339815191525460401c1615611afd57565b631afcd79f60e31b60005260046000fd5b90611b345750805115611b2357805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611b66575b611b45575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15611b3d56fe0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00395f4e35a18c2b5e556b3b2ff855307e76c0b3cc1ca71e19a70e83037e08e7b37bdc20c26beb8eedd348733c28a5c4c2f7f7f1183cba8898195258fcdca273bcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212203f211d602b36c7fdf0f3b0fe8233e5a85a6bfca3cf4c804bfdd1d764320a84b564736f6c634300081a003360e0346100d757601f610bd638819003918201601f19168301916001600160401b038311848410176100dc578084926060946040528339810103126100d757610047816100f2565b906040610056602083016100f2565b9101519160805260a05260c052604051610acf90816101078239608051818181608a0152610196015260a05181818160dd0152818161070a015281816107e5015281816108990152818161094901526109f9015260c051818181604f0152818161076701528181610846015281816108f5015281816109ac0152610a530152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036100d75756fe6080604052600436106101815760003560e01c8063589dd5da1461007757806385e1f4d0146100375763ced52b4003610181576100c7565b346100725760003660031901126100725760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b600080fd5b34610072576000366003190112610072577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b600091031261007257565b34610072576000366003190112610072576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761013e57604052565b61010c565b90601f8019910116810190811067ffffffffffffffff82111761013e57604052565b67ffffffffffffffff811161013e57601f01601f191660200190565b600080604051368282378036810183815203907f00000000000000000000000000000000000000000000000000000000000000005af43d1561023c573d906101c882610165565b916101d66040519384610143565b82523d6000602084013e5b156101f7576101ef366106c3565b602081519101f35b60405162461bcd60e51b815260206004820152601b60248201527f476174657761792064656c656761746563616c6c206661696c656400000000006044820152606490fd5b6060906101e1565b906004116100725790600490565b909291928360041161007257831161007257600401916003190190565b356001600160e01b031981169291906004821061028a575050565b6001600160e01b031960049290920360031b82901b16169150565b6001600160a01b0381160361007257565b81601f82011215610072578035906102cd82610165565b926102db6040519485610143565b8284526020838301011161007257816000926020809301838601378301015290565b3590610308826102a5565b565b91909160a081840312610072576040519061032482610122565b81938135610331816102a5565b835260208201358015158103610072576020840152610352604083016102fd565b604084015260608201359167ffffffffffffffff83116100725761037c60809392849383016102b6565b60608501520135910152565b9160608383031261007257823561039e816102a5565b92602081013567ffffffffffffffff811161007257836103bf9183016102b6565b92604082013567ffffffffffffffff8111610072576103de920161030a565b90565b919082519283825260005b84811061040d575050826000602080949584010152601f8019910116010190565b806020809284010151828286010152016103ec565b9060018060a01b03825116815260208201511515602082015260018060a01b036040830151166040820152608080610469606085015160a0606086015260a08501906103e1565b93015191015290565b9081526001600160a01b0391821660208201529116604082015260a0606082018190526103de9391926104a7918401906103e1565b916080818403910152610422565b6040513d6000823e3d90fd5b91909160a0818403126100725780356104d9816102a5565b9260208201359260408301356104ee816102a5565b92606081013567ffffffffffffffff8111610072578361050f9183016102b6565b92608082013567ffffffffffffffff8111610072576103de920161030a565b9081526001600160a01b0391821660208201529116604082015260608101919091526000608082015260e060a082018190526103de939192610572918401906103e1565b9160c0818403910152610422565b9081526001600160a01b039182166020820152918116604083015260608201929092529116608082015260e060a082018190526103de939192610572918401906103e1565b906080828203126100725781356105db816102a5565b9260208301359260408101356105f0816102a5565b92606082013567ffffffffffffffff8111610072576103de920161030a565b9081526001600160a01b0391821660208201529116604082015260608101919091526000608082015260c060a082018190526103de92910190610422565b9081526001600160a01b039182166020820152918116604083015260608201929092529116608082015260c060a082018190526103de92910190610422565b9190916040818403126100725780356106a4816102a5565b92602082013567ffffffffffffffff8111610072576103de920161030a565b6106e16106d1826000610244565b6001600160e01b0319929161026f565b16631c9ab25f60e21b81036107ba575061070081610708926000610252565b81019061068c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169190823b156100725760405163ced6e79360e01b815292600092849283918591839161078f919034906001600160a01b0316337f00000000000000000000000000000000000000000000000000000000000000006004870161060f565b03925af180156107b5576107a05750565b806107af600061030893610143565b806100bc565b6104b5565b630102614b60e41b810361086e57506107d8816107e0926000610252565b8101906105c5565b9290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b156100725760405163ced6e79360e01b815294600094869485938793859361078f9391926001600160a01b0391821692909116337f00000000000000000000000000000000000000000000000000000000000000006004880161064d565b63744b9b8b60e01b810361091d575061088c81610894926000610252565b810190610388565b9091907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156100725760405163ad82a62760e01b815293600093859384928692849261078f92909134906001600160a01b0316337f00000000000000000000000000000000000000000000000000000000000000006004880161052e565b631a13c76f60e31b81036109d4575061093b81610943926000610252565b8101906104c1565b909391927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b156100725760405163ad82a62760e01b815295600095879586948894869461078f94919390926001600160a01b0392831692909116337f000000000000000000000000000000000000000000000000000000000000000060048901610580565b6306fb33ad60e21b146109e5575b50565b61088c816109f4926000610252565b9091907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b15610072576040516375e7f8e360e11b8152936000938593849286928492610a7b9290916001600160a01b0316337f000000000000000000000000000000000000000000000000000000000000000060048701610472565b03925af180156107b557156109e257806107af60006103089361014356fea2646970667358221220a71cbde33d0601ceacd47bd11f54cc311e513e7ffbb3ec6ec289e9912d3be94b64736f6c634300081a0033a2646970667358221220928d1f0cf196771916c55c50b6eab6883a793637fb05e7baf38f61f26998f5b164736f6c634300081a0033"; + +type EVMSetupConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: EVMSetupConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class EVMSetup__factory extends ContractFactory { + constructor(...args: EVMSetupConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + _deployer: AddressLike, + _tss: AddressLike, + _wzeta: AddressLike, + _systemContract: AddressLike, + _nodeLogicMock: AddressLike, + _uniswapV2Router: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction( + _deployer, + _tss, + _wzeta, + _systemContract, + _nodeLogicMock, + _uniswapV2Router, + overrides || {} + ); + } + override deploy( + _deployer: AddressLike, + _tss: AddressLike, + _wzeta: AddressLike, + _systemContract: AddressLike, + _nodeLogicMock: AddressLike, + _uniswapV2Router: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy( + _deployer, + _tss, + _wzeta, + _systemContract, + _nodeLogicMock, + _uniswapV2Router, + overrides || {} + ) as Promise< + EVMSetup & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): EVMSetup__factory { + return super.connect(runner) as EVMSetup__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): EVMSetupInterface { + return new Interface(_abi) as EVMSetupInterface; + } + static connect(address: string, runner?: ContractRunner | null): EVMSetup { + return new Contract(address, _abi, runner) as unknown as EVMSetup; + } +} diff --git a/typechain-types/factories/contracts/testing/EVMSetup.t.sol/ITestERC20__factory.ts b/typechain-types/factories/contracts/testing/EVMSetup.t.sol/ITestERC20__factory.ts new file mode 100644 index 00000000..6263b2c5 --- /dev/null +++ b/typechain-types/factories/contracts/testing/EVMSetup.t.sol/ITestERC20__factory.ts @@ -0,0 +1,40 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + ITestERC20, + ITestERC20Interface, +} from "../../../../contracts/testing/EVMSetup.t.sol/ITestERC20"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "mint", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class ITestERC20__factory { + static readonly abi = _abi; + static createInterface(): ITestERC20Interface { + return new Interface(_abi) as ITestERC20Interface; + } + static connect(address: string, runner?: ContractRunner | null): ITestERC20 { + return new Contract(address, _abi, runner) as unknown as ITestERC20; + } +} diff --git a/typechain-types/factories/contracts/testing/EVMSetup.t.sol/IZetaNonEth__factory.ts b/typechain-types/factories/contracts/testing/EVMSetup.t.sol/IZetaNonEth__factory.ts new file mode 100644 index 00000000..7d3f4969 --- /dev/null +++ b/typechain-types/factories/contracts/testing/EVMSetup.t.sol/IZetaNonEth__factory.ts @@ -0,0 +1,40 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IZetaNonEth, + IZetaNonEthInterface, +} from "../../../../contracts/testing/EVMSetup.t.sol/IZetaNonEth"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "tssAddress_", + type: "address", + }, + { + internalType: "address", + name: "connectorAddress_", + type: "address", + }, + ], + name: "updateTssAndConnectorAddresses", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class IZetaNonEth__factory { + static readonly abi = _abi; + static createInterface(): IZetaNonEthInterface { + return new Interface(_abi) as IZetaNonEthInterface; + } + static connect(address: string, runner?: ContractRunner | null): IZetaNonEth { + return new Contract(address, _abi, runner) as unknown as IZetaNonEth; + } +} diff --git a/typechain-types/factories/contracts/testing/EVMSetup.t.sol/index.ts b/typechain-types/factories/contracts/testing/EVMSetup.t.sol/index.ts new file mode 100644 index 00000000..c430174b --- /dev/null +++ b/typechain-types/factories/contracts/testing/EVMSetup.t.sol/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { EVMSetup__factory } from "./EVMSetup__factory"; +export { ITestERC20__factory } from "./ITestERC20__factory"; +export { IZetaNonEth__factory } from "./IZetaNonEth__factory"; diff --git a/typechain-types/factories/contracts/testing/FoundrySetup.t.sol/FoundrySetup__factory.ts b/typechain-types/factories/contracts/testing/FoundrySetup.t.sol/FoundrySetup__factory.ts new file mode 100644 index 00000000..0adef753 --- /dev/null +++ b/typechain-types/factories/contracts/testing/FoundrySetup.t.sol/FoundrySetup__factory.ts @@ -0,0 +1,944 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../../common"; +import type { + FoundrySetup, + FoundrySetupInterface, +} from "../../../../contracts/testing/FoundrySetup.t.sol/FoundrySetup"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "", + type: "string", + }, + ], + name: "log", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "", + type: "address", + }, + ], + name: "log_address", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256[]", + name: "val", + type: "uint256[]", + }, + ], + name: "log_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "int256[]", + name: "val", + type: "int256[]", + }, + ], + name: "log_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address[]", + name: "val", + type: "address[]", + }, + ], + name: "log_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + name: "log_bytes", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + name: "log_bytes32", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "int256", + name: "", + type: "int256", + }, + ], + name: "log_int", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "address", + name: "val", + type: "address", + }, + ], + name: "log_named_address", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "uint256[]", + name: "val", + type: "uint256[]", + }, + ], + name: "log_named_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "int256[]", + name: "val", + type: "int256[]", + }, + ], + name: "log_named_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "address[]", + name: "val", + type: "address[]", + }, + ], + name: "log_named_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "bytes", + name: "val", + type: "bytes", + }, + ], + name: "log_named_bytes", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "bytes32", + name: "val", + type: "bytes32", + }, + ], + name: "log_named_bytes32", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "int256", + name: "val", + type: "int256", + }, + { + indexed: false, + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "log_named_decimal_int", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "uint256", + name: "val", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "log_named_decimal_uint", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "int256", + name: "val", + type: "int256", + }, + ], + name: "log_named_int", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "string", + name: "val", + type: "string", + }, + ], + name: "log_named_string", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "uint256", + name: "val", + type: "uint256", + }, + ], + name: "log_named_uint", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "", + type: "string", + }, + ], + name: "log_string", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "log_uint", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + name: "logs", + type: "event", + }, + { + inputs: [], + name: "FUNGIBLE_MODULE_ADDRESS", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "IS_TEST", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "bnb_bnb", + outputs: [ + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "bool", + name: "isGasToken", + type: "bool", + }, + { + internalType: "uint8", + name: "decimals", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "chainIdBNB", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "chainIdETH", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "chainIdZeta", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "deployer", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "eth_eth", + outputs: [ + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "bool", + name: "isGasToken", + type: "bool", + }, + { + internalType: "uint8", + name: "decimals", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "evmSetup", + outputs: [ + { + internalType: "contract EVMSetup", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "excludeArtifacts", + outputs: [ + { + internalType: "string[]", + name: "excludedArtifacts_", + type: "string[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "excludeContracts", + outputs: [ + { + internalType: "address[]", + name: "excludedContracts_", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "excludeSelectors", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "bytes4[]", + name: "selectors", + type: "bytes4[]", + }, + ], + internalType: "struct StdInvariant.FuzzSelector[]", + name: "excludedSelectors_", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "excludeSenders", + outputs: [ + { + internalType: "address[]", + name: "excludedSenders_", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "failed", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "nodeLogicMock", + outputs: [ + { + internalType: "contract NodeLogicMock", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "setUp", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "targetArtifactSelectors", + outputs: [ + { + components: [ + { + internalType: "string", + name: "artifact", + type: "string", + }, + { + internalType: "bytes4[]", + name: "selectors", + type: "bytes4[]", + }, + ], + internalType: "struct StdInvariant.FuzzArtifactSelector[]", + name: "targetedArtifactSelectors_", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetArtifacts", + outputs: [ + { + internalType: "string[]", + name: "targetedArtifacts_", + type: "string[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetContracts", + outputs: [ + { + internalType: "address[]", + name: "targetedContracts_", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetInterfaces", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "string[]", + name: "artifacts", + type: "string[]", + }, + ], + internalType: "struct StdInvariant.FuzzInterface[]", + name: "targetedInterfaces_", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetSelectors", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "bytes4[]", + name: "selectors", + type: "bytes4[]", + }, + ], + internalType: "struct StdInvariant.FuzzSelector[]", + name: "targetedSelectors_", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetSenders", + outputs: [ + { + internalType: "address[]", + name: "targetedSenders_", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "tokenSetup", + outputs: [ + { + internalType: "contract TokenSetup", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "tss", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "usdc_bnb", + outputs: [ + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "bool", + name: "isGasToken", + type: "bool", + }, + { + internalType: "uint8", + name: "decimals", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "usdc_eth", + outputs: [ + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "bool", + name: "isGasToken", + type: "bool", + }, + { + internalType: "uint8", + name: "decimals", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "zetaSetup", + outputs: [ + { + internalType: "contract ZetaSetup", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +const _bytecode = + "0x60808060405234607d57600c805460ff19166001179055601f80546001600160a81b031916610101179055602080546001600160a01b031990811673735b14bb79463307aacbed86daf3322b1e6226ab17909155602180549091166002179055611b5860225560056023556061602455620254219081620000838239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c9081630a9254e41461114b575080631ed7831c146110cd5780632ade388014610f1657806336e543ae14610eed5780633ce4a5bc14610ec65780633e5e3c2314610e485780633f7286f414610dca5780633fe46ed114610da157806349f8cb0914610be35780634dff22af14610bc557806366141ce214610b9c57806366d9a9a014610a7b5780636a26fefe14610a5d5780636e6dbb5114610a3457806374c2ad231461087657806385226c81146107ec578063916a17c614610744578063b0464fdc1461069c578063b1c388b81461067e578063b50f3138146104c0578063b5508aa914610436578063ba414fa614610411578063bc03090d146103e8578063d5f39488146103bb578063e20c9f7114610331578063ebb2b7e41461016f5763fa7626d41461014a57600080fd5b3461016c578060031936011261016c57602060ff601f54166040519015158152f35b80fd5b503461016c578060031936011261016c5760355460365460405160375490936001600160a01b03928316939092169084836101a9836133e7565b808352926001811690811561031257506001146102b4575b6101cd9250038561346d565b6040519180603854906101df826133e7565b808652916001811690811561028d575060011461022c575b50509061020a836102289493038361346d565b603954603a549260405196879660ff808760081c1696169488613532565b0390f35b603881527f38395c5dceade9603479b177b68959049485df8aa97b39f3533039af5f45619994939250905b808210610271575091925090820160200161020a836101f7565b9192936001816020925483858901015201910190939291610257565b60ff191660208088019190915292151560051b8601909201925061020a91508490506101f7565b50603784529083907f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae5b8183106102f65750509060206101cd928201016101c1565b6020919350806001915483858b010152019101909186926102de565b602092506101cd94915060ff191682840152151560051b8201016101c1565b503461016c578060031936011261016c5760405180916020601554928381520191601582527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475915b81811061039c57610228856103908187038261346d565b6040519182918261335c565b82546001600160a01b0316845260209093019260019283019201610379565b503461016c578060031936011261016c57601f5460405160089190911c6001600160a01b03168152602090f35b503461016c578060031936011261016c576025546040516001600160a01b039091168152602090f35b503461016c578060031936011261016c57602061042c613ace565b6040519015158152f35b503461016c578060031936011261016c57601954610453816138b2565b91610461604051938461346d565b818352601981527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b8383106104a3576040518061022887826135cc565b6001602081926104b28561348e565b81520192019201919061048e565b503461016c578060031936011261016c57603b54603c54604051603d5490936001600160a01b03928316939092169084836104fa836133e7565b808352926001811690811561065f5750600114610601575b61051e9250038561346d565b6040519180603e5490610530826133e7565b80865291600181169081156105da5750600114610579575b50509061055b836102289493038361346d565b603f546040549260405196879660ff808760081c1696169488613532565b603e81527f8d800d6614d35eed73733ee453164a3b48076eb3138f466adeeb9dec7bb31f7094939250905b8082106105be575091925090820160200161055b83610548565b91929360018160209254838589010152019101909392916105a4565b60ff191660208088019190915292151560051b8601909201925061055b9150849050610548565b50603d84529083907fece66cfdbd22e3f37d348a3d8e19074452862cd65fd4b9a11f0336d1ac6d1dc35b81831061064357505090602061051e92820101610512565b6020919350806001915483858b0101520191019091869261062b565b6020925061051e94915060ff191682840152151560051b820101610512565b503461016c578060031936011261016c576020602254604051908152f35b503461016c578060031936011261016c57601c546106b9816138b2565b916106c7604051938461346d565b818352601c81527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211602084015b8383106107095760405180610228878261362c565b6002602060019260405161071c81613452565b848060a01b0386541681526107328587016138c9565b838201528152019201920191906106f4565b503461016c578060031936011261016c57601d54610761816138b2565b9161076f604051938461346d565b818352601d81527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f602084015b8383106107b15760405180610228878261362c565b600260206001926040516107c481613452565b848060a01b0386541681526107da8587016138c9565b8382015281520192019201919061079c565b503461016c578060031936011261016c57601a54610809816138b2565b91610817604051938461346d565b818352601a81527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310610859576040518061022887826135cc565b6001602081926108688561348e565b815201920192019190610844565b503461016c578060031936011261016c57602954602a54604051602b5490936001600160a01b03928316939092169084836108b0836133e7565b8083529260018116908115610a1557506001146109b7575b6108d49250038561346d565b6040519180602c54906108e6826133e7565b8086529160018116908115610990575060011461092f575b505090610911836102289493038361346d565b602d54602e549260405196879660ff808760081c1696169488613532565b602c81527f7416c943b4a09859521022fd2e90eac0dd9026dad28fa317782a135f28a8609194939250905b8082106109745750919250908201602001610911836108fe565b919293600181602092548385890101520191019093929161095a565b60ff191660208088019190915292151560051b8601909201925061091191508490506108fe565b50602b84529083907f11c44e4875b74d31ff9fd779bf2566af7bd15b87fc985d01f5094b89e3669e4f5b8183106109f95750509060206108d4928201016108c8565b6020919350806001915483858b010152019101909186926109e1565b602092506108d494915060ff191682840152151560051b8201016108c8565b503461016c578060031936011261016c576021546040516001600160a01b039091168152602090f35b503461016c578060031936011261016c576020602354604051908152f35b503461016c578060031936011261016c57601b54610a98816138b2565b610aa5604051918261346d565b818152601b83526020810191837f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1845b838310610b6157868587604051928392602084019060208552518091526040840160408260051b8601019392905b828210610b1257505050500390f35b91936001919395506020610b518192603f198a820301865288519083610b4183516040845260408401906133c2565b920151908481840391015261358e565b9601920192018594939192610b03565b60026020600192604051610b7481613452565b610b7d8661348e565b8152610b8a8587016138c9565b83820152815201920192019190610ad5565b503461016c578060031936011261016c576028546040516001600160a01b039091168152602090f35b503461016c578060031936011261016c576020602454604051908152f35b503461016c578060031936011261016c57602f5460305460405160315490936001600160a01b0392831693909216908483610c1d836133e7565b8083529260018116908115610d825750600114610d24575b610c419250038561346d565b604051918060325490610c53826133e7565b8086529160018116908115610cfd5750600114610c9c575b505090610c7e836102289493038361346d565b6033546034549260405196879660ff808760081c1696169488613532565b603281527f11df491316f14931039edfd4f8964c9a443b862f02d4c7611d18c2bc4e6ff69794939250905b808210610ce15750919250908201602001610c7e83610c6b565b9192936001816020925483858901015201910190939291610cc7565b60ff191660208088019190915292151560051b86019092019250610c7e9150849050610c6b565b50603184529083907fc54045fa7c6ec765e825df7f9e9bf9dec12c5cef146f93a5eee56772ee647fbc5b818310610d66575050906020610c4192820101610c35565b6020919350806001915483858b01015201910190918692610d4e565b60209250610c4194915060ff191682840152151560051b820101610c35565b503461016c578060031936011261016c576027546040516001600160a01b039091168152602090f35b503461016c578060031936011261016c5760405180916020601754928381520191601782527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15915b818110610e2957610228856103908187038261346d565b82546001600160a01b0316845260209093019260019283019201610e12565b503461016c578060031936011261016c5760405180916020601854928381520191601882527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e915b818110610ea757610228856103908187038261346d565b82546001600160a01b0316845260209093019260019283019201610e90565b503461016c578060031936011261016c57602080546040516001600160a01b039091168152f35b503461016c578060031936011261016c576026546040516001600160a01b039091168152602090f35b503461016c578060031936011261016c57601e54610f33816138b2565b610f40604051918261346d565b818152601e83526020810191837f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350845b8383106110445786858760405192839260208401906020855251809152604084019160408260051b8601019392815b838310610fac5786860387f35b919395509193603f198782030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b850101940192855b82811061101957505050505060208060019297019301930190928695949293610f9f565b9091929394602080611037600193605f1987820301895289516133c2565b9701950193929101610ff5565b60405161105081613452565b82546001600160a01b0316815260018301805461106c816138b2565b9161107a604051938461346d565b8183528a526020808b20908b9084015b8382106110b0575050505060019282602092836002950152815201920192019190610f70565b6001602081926110bf8661348e565b81520193019101909161108a565b503461016c578060031936011261016c5760405180916020601654928381520191601682527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289915b81811061112c57610228856103908187038261346d565b82546001600160a01b0316845260209093019260019283019201611115565b9050346133585781600319360112613358576021546001600160a01b0316737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156133545763c88a5e6d60e01b8252600482015269d3c21bcecceda1000000602482015281808260448183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561320c57613344575b5050601f54602054604051620103f8808201949391926001600160a01b039081169260081c16906001600160401b0386118487101761333057946040928492869762014ff485398252602082015203019082f0801561320c57602580546001600160a01b0319166001600160a01b03929092169182179055803b1561332d57818091600460405180948193630a5b8ad760e31b83525af180156124a257613318575b5050601f54602154602554604051620b9ea360e11b81526001600160a01b039283169360081c831692909116602082600481845afa9182156124ed5785926132f7575b5060405163bb88b76960e01b8152602081600481855afa9081156132ec5786916132ae575b5060405163330a0e7160e11b815292602084600481865afa92831561328157600494889461328c575b5060209060405195868092630b4a282f60e11b82525afa938415613281578794613241575b506040519561ae8f95868801968888106001600160401b0389111761322d579160c0979593918997959362003b858939865260208601526001600160a01b039081166040860152908116606085015290811660808401521660a082015203019082f0801561320c5760018060a01b03166001600160601b0360a01b60265416176026556040516165e0808201908282106001600160401b03831117613219579082916200ea148339039082f0801561320c57602780546001600160a01b0319166001600160a01b0392831617905560265460235483929190911690813b156128d4578291602483926040519485938492637bf2218160e01b845260048401525af180156124a2576131f7575b505060275460255460265460405163330a0e7160e11b81526001600160a01b039384169385939281169216602082600481845afa92831561252c576114e2936101649386916131d8575b5060018060a01b03601f5460081c169060018060a01b036021541692604051946114a386613421565b8552602085015260018060a01b03166040840152606083015260808201528360235495604051968795869463389893e960e21b8652600486019061380c565b61012060a485015260036101248501526208aa8960eb1b610144850152600160c485015260e484015260126101048401525af19081156124a25782916131be575b5060018060a01b038151166001600160601b0360a01b602954161760295560018060a01b036020820151166001600160601b0360a01b602a541617602a5560408101519182516001600160401b038111612bfc57611582602b546133e7565b601f811161315b575b506020601f82116001146130f8578293948293926130ed575b50508160011b916000199060031b1c191617602b555b60608201519182516001600160401b038111612b17576115db602c546133e7565b601f811161308a575b506020601f82116001146130275783948293949261301c575b50508160011b916000199060031b1c191617602c555b6080810151602d5560a081015115159060ff61ff0060c0602e5493015160081b1692169061ffff19161717602e5560018060a01b03602754168160018060a01b036025541660018060a01b0360265416926040519363330a0e7160e11b8552602085600481865afa801561252c576116f4958591612ffd575b5060018060a01b03601f5460081c169060018060a01b036021541692604051956116b587613421565b8652602086015260018060a01b0316604085015260608401526080830152602354918360405180968195829463389893e960e21b84526004840161384b565b03925af19081156124a2578291612fe3575b5060018060a01b038151166001600160601b0360a01b602f541617602f5560018060a01b036020820151166001600160601b0360a01b603054161760305560408101519182516001600160401b038111612bfc576117656031546133e7565b601f8111612f80575b506020601f8211600114612f1d57829394829392612f12575b50508160011b916000199060031b1c1916176031555b60608201519182516001600160401b038111612b17576117be6032546133e7565b601f8111612eaf575b506020601f8211600114612e4c57839482939492612e41575b50508160011b916000199060031b1c1916176032555b608081015160335560a081015115159060ff61ff0060c060345493015160081b1692169061ffff191617176034558060018060a01b0360265416602454813b156128d4578291602483926040519485938492637bf2218160e01b845260048401525af180156124a257612e2c575b505060275460255460265460405163330a0e7160e11b81526001600160a01b039384169385939281169216602082600481845afa92831561252c5761191693610164938691612e0d575b5060018060a01b03601f5460081c169060018060a01b036021541692604051946118d786613421565b8552602085015260018060a01b03166040840152606083015260808201528360245495604051968795869463389893e960e21b8652600486019061380c565b61012060a485015260036101248501526221272160e91b610144850152600160c485015260e484015260126101048401525af19081156124a2578291612df3575b5060018060a01b038151166001600160601b0360a01b603554161760355560018060a01b036020820151166001600160601b0360a01b603654161760365560408101519182516001600160401b038111612bfc576119b66037546133e7565b601f8111612d90575b506020601f8211600114612d2d57829394829392612d22575b50508160011b916000199060031b1c1916176037555b60608201519182516001600160401b038111612b1757611a0f6038546133e7565b601f8111612cbf575b506020601f8211600114612c5c57839482939492612c51575b50508160011b916000199060031b1c1916176038555b608081015160395560a081015115159060ff61ff0060c0603a5493015160081b1692169061ffff19161717603a5560018060a01b03602754168160018060a01b036025541660018060a01b0360265416926040519363330a0e7160e11b8552602085600481865afa801561252c57611b28958591612c32575b5060018060a01b03601f5460081c169060018060a01b03602154169260405195611ae987613421565b8652602086015260018060a01b0316604085015260608401526080830152602454918360405180968195829463389893e960e21b84526004840161384b565b03925af19081156124a2578291612c10575b5060018060a01b038151166001600160601b0360a01b603b541617603b5560018060a01b036020820151166001600160601b0360a01b603c541617603c5560408101519182516001600160401b038111612bfc57611b99603d546133e7565b601f8111612b99575b506020601f8211600114612b3657829394829392612b2b575b50508160011b916000199060031b1c191617603d555b60608201519182516001600160401b038111612b1757611bf2603e546133e7565b601f8111612ab4575b506020601f8211600114612a5157839482939492612a46575b50508160011b916000199060031b1c191617603e555b6080810151603f5560a081015115159060ff61ff0060c060405493015160081b1692169061ffff191617176040558060018060a01b036025541660405163330a0e7160e11b8152602081600481855afa9081156128f7576004916020918591612a29575b5060018060a01b031692836001600160601b0360a01b602854161760285560405192838092633c12ad4d60e21b82525afa9081156128f75783916129e7575b50813b156128d4576040516325128ee960e21b81526001600160a01b0390911660048201529082908290602490829084905af180156124a2576129d2575b5060018060a01b0360285416602254813b156128d457829160248392604051948593849263d7b3eeaf60e01b845260048401525af180156124a2576129bd575b50602854602354602654604051621ac49360e31b8152600481018390526001600160a01b039384169390929160209184916024918391165afa91821561252c57849261299c575b50823b156125a357604051638016f22b60e01b815260048101919091526001600160a01b039190911660248201529082908290604490829084905af180156124a257612987575b5060285460248054602654604051621ac49360e31b8152600481018390526001600160a01b0394851694909360209285928391165afa91821561252c578492612966575b50823b156125a357604051638016f22b60e01b815260048101919091526001600160a01b039190911660248201529082908290604490829084905af180156124a257612951575b50602854602554604051630b4a282f60e11b81526001600160a01b0392831692909160209183916004918391165afa9081156128f7578391612917575b50813b156128d457604051635f54c24f60e11b81526001600160a01b0390911660048201529082908290602490829084905af180156124a257612902575b50602854602554604051620b9ea360e11b81526001600160a01b0392831692909160209183916004918391165afa9081156128f75783916128d8575b50813b156128d45760405162b8969960e81b81526001600160a01b0390911660048201529082908290602490829084905af180156124a2576128bf575b506028546023546029546001600160a01b039283169216823b156125a357604051630d1fce9f60e21b815260048101929092526001600160a01b031660248201529082908290604490829084905af180156124a2576128aa575b506028546023546029546001600160a01b039283169216823b156125a35760405163f59e8a6760e01b81526004810192909252600060248301526001600160a01b031660448201529082908290606490829084905af180156124a257612895575b506028546023546029546001600160a01b039283169216823b156125a35760405163f9a4169760e01b815260048101929092526001600160a01b03166024820152600060448201529082908290606490829084905af180156124a257612880575b506030546001600160a01b0316806127ac575b50602854602354602654604051633178d80160e11b815260048101839052926001600160a01b039081169160209185916024918391165afa92831561252c57849361276e575b50602554604051620b9ea360e11b81529190602090839060049082906001600160a01b03165afa9182156124ed57859261274d575b50803b156124ad5761212e938580946040519687958694859363f59e8a6760e01b855260048501613892565b03925af180156124a257612738575b50602854602354602554604051620b9ea360e11b8152926001600160a01b039081169160209185916004918391165afa92831561252c578493612714575b50602654604051633178d80160e11b8152600481018490529190602090839060249082906001600160a01b03165afa9182156124ed5785926126d8575b50803b156124ad576121e4938580946040519687958694859363f9a4169760e01b855260048501613892565b03925af180156124a2576126c3575b506028546024546035546001600160a01b039283169216823b156125a357604051630d1fce9f60e21b815260048101929092526001600160a01b031660248201529082908290604490829084905af180156124a2576126ae575b506028546024546035546001600160a01b039283169216823b156125a35760405163f59e8a6760e01b81526004810192909252600060248301526001600160a01b031660448201529082908290606490829084905af180156124a257612699575b506028546024546035546001600160a01b039283169216823b156125a35760405163f9a4169760e01b815260048101929092526001600160a01b03166024820152600060448201529082908290606490829084905af180156124a257612684575b50603c546001600160a01b0316806125b0575b5060285460248054602654604051633178d80160e11b8152600481018390529391926001600160a01b03928316926020928692918391165afa92831561252c57849361256d575b50602554604051620b9ea360e11b81529190602090839060049082906001600160a01b03165afa9182156124ed57859261254c575b50803b156124ad576123ca938580946040519687958694859363f59e8a6760e01b855260048501613892565b03925af180156124a257612537575b50602854602454602554604051620b9ea360e11b8152926001600160a01b039081169160209185916004918391165afa92831561252c5784936124f8575b50602654604051633178d80160e11b8152600481018490529190602090839060249082906001600160a01b03165afa9182156124ed5785926124b1575b50803b156124ad57612480938580946040519687958694859363f9a4169760e01b855260048501613892565b03925af180156124a2576124915750f35b8161249b9161346d565b61016c5780f35b6040513d84823e3d90fd5b8480fd5b9091506020813d6020116124e5575b816124cd6020938361346d565b810103126124ad576124de906136c8565b9038612454565b3d91506124c0565b6040513d87823e3d90fd5b602491935061251e9060203d602011612525575b612516818361346d565b8101906136a4565b9290612417565b503d61250c565b6040513d86823e3d90fd5b816125419161346d565b61016c5780386123d9565b61256691925060203d60201161252557612516818361346d565b903861239e565b9092506020813d6020116125a8575b816125896020938361346d565b810103126125a35761259c6004916136c8565b9290612369565b505050fd5b3d915061257c565b602854602454603b5490916001600160a01b039182169116803b156124ad576125f3938580946040519687958694859363f59e8a6760e01b855260048501613892565b03925af180156124a25761266f575b50602854602454603b54603c546001600160a01b03918216939082169116803b156124ad5761264b938580946040519687958694859363f9a4169760e01b855260048501613892565b03925af180156124a2571561232257816126649161346d565b61016c578038612322565b816126799161346d565b61016c578038612602565b8161268e9161346d565b61016c57803861230f565b816126a39161346d565b61016c5780386122ae565b816126b89161346d565b61016c57803861224d565b816126cd9161346d565b61016c5780386121f3565b9091506020813d60201161270c575b816126f46020938361346d565b810103126124ad57612705906136c8565b90386121b8565b3d91506126e7565b60249193506127319060203d60201161252557612516818361346d565b929061217b565b816127429161346d565b61016c57803861213d565b61276791925060203d60201161252557612516818361346d565b9038612102565b9092506020813d6020116127a4575b8161278a6020938361346d565b810103126125a35761279d6004916136c8565b92906120cd565b3d915061277d565b602854602354602f5490916001600160a01b039182169116803b156124ad576127ef938580946040519687958694859363f59e8a6760e01b855260048501613892565b03925af180156124a25761286b575b50602854602354602f546030546001600160a01b03918216939082169116803b156124ad57612847938580946040519687958694859363f9a4169760e01b855260048501613892565b03925af180156124a2571561208757816128609161346d565b61016c578038612087565b816128759161346d565b61016c5780386127fe565b8161288a9161346d565b61016c578038612074565b8161289f9161346d565b61016c578038612013565b816128b49161346d565b61016c578038611fb2565b816128c99161346d565b61016c578038611f58565b5050fd5b6128f1915060203d60201161252557612516818361346d565b38611f1b565b6040513d85823e3d90fd5b8161290c9161346d565b61016c578038611edf565b90506020813d602011612949575b816129326020938361346d565b810103126128d457612943906136c8565b38611ea1565b3d9150612925565b8161295b9161346d565b61016c578038611e64565b61298091925060203d60201161252557612516818361346d565b9038611e1d565b816129919161346d565b61016c578038611dd9565b6129b691925060203d60201161252557612516818361346d565b9038611d92565b816129c79161346d565b61016c578038611d4b565b816129dc9161346d565b61016c578038611d0b565b90506020813d602011612a21575b81612a026020938361346d565b810103126128d457516001600160a01b03811681036128d45738611ccd565b3d91506129f5565b612a409150823d841161252557612516818361346d565b38611c8e565b015190503880611c14565b603e845280842090601f198316855b818110612a9c57509583600195969710612a83575b505050811b01603e55611c2a565b015160001960f88460031b161c19169055388080612a75565b9192602060018192868b015181550194019201612a60565b603e84527f8d800d6614d35eed73733ee453164a3b48076eb3138f466adeeb9dec7bb31f70601f830160051c81019160208410612b0d575b601f0160051c01905b818110612b025750611bfb565b848155600101612af5565b9091508190612aec565b634e487b7160e01b83526041600452602483fd5b015190503880611bbb565b603d835280832090601f198316845b818110612b8157509583600195969710612b68575b505050811b01603d55611bd1565b015160001960f88460031b161c19169055388080612b5a565b9192602060018192868b015181550194019201612b45565b603d83527fece66cfdbd22e3f37d348a3d8e19074452862cd65fd4b9a11f0336d1ac6d1dc3601f830160051c81019160208410612bf2575b601f0160051c01905b818110612be75750611ba2565b838155600101612bda565b9091508190612bd1565b634e487b7160e01b82526041600452602482fd5b612c2c91503d8084833e612c24818361346d565b810190613730565b38611b3a565b612c4b915060203d60201161252557612516818361346d565b38611ac0565b015190503880611a31565b6038845280842090601f198316855b818110612ca757509583600195969710612c8e575b505050811b01603855611a47565b015160001960f88460031b161c19169055388080612c80565b9192602060018192868b015181550194019201612c6b565b603884527f38395c5dceade9603479b177b68959049485df8aa97b39f3533039af5f456199601f830160051c81019160208410612d18575b601f0160051c01905b818110612d0d5750611a18565b848155600101612d00565b9091508190612cf7565b0151905038806119d8565b6037835280832090601f198316845b818110612d7857509583600195969710612d5f575b505050811b016037556119ee565b015160001960f88460031b161c19169055388080612d51565b9192602060018192868b015181550194019201612d3c565b603783527f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae601f830160051c81019160208410612de9575b601f0160051c01905b818110612dde57506119bf565b838155600101612dd1565b9091508190612dc8565b612e0791503d8084833e612c24818361346d565b38611957565b612e26915060203d60201161252557612516818361346d565b386118ae565b81612e369161346d565b61016c578038611864565b0151905038806117e0565b6032845280842090601f198316855b818110612e9757509583600195969710612e7e575b505050811b016032556117f6565b015160001960f88460031b161c19169055388080612e70565b9192602060018192868b015181550194019201612e5b565b603284527f11df491316f14931039edfd4f8964c9a443b862f02d4c7611d18c2bc4e6ff697601f830160051c81019160208410612f08575b601f0160051c01905b818110612efd57506117c7565b848155600101612ef0565b9091508190612ee7565b015190503880611787565b6031835280832090601f198316845b818110612f6857509583600195969710612f4f575b505050811b0160315561179d565b015160001960f88460031b161c19169055388080612f41565b9192602060018192868b015181550194019201612f2c565b603183527fc54045fa7c6ec765e825df7f9e9bf9dec12c5cef146f93a5eee56772ee647fbc601f830160051c81019160208410612fd9575b601f0160051c01905b818110612fce575061176e565b838155600101612fc1565b9091508190612fb8565b612ff791503d8084833e612c24818361346d565b38611706565b613016915060203d60201161252557612516818361346d565b3861168c565b0151905038806115fd565b602c845280842090601f198316855b81811061307257509583600195969710613059575b505050811b01602c55611613565b015160001960f88460031b161c1916905538808061304b565b9192602060018192868b015181550194019201613036565b602c84527f7416c943b4a09859521022fd2e90eac0dd9026dad28fa317782a135f28a86091601f830160051c810191602084106130e3575b601f0160051c01905b8181106130d857506115e4565b8481556001016130cb565b90915081906130c2565b0151905038806115a4565b602b835280832090601f198316845b8181106131435750958360019596971061312a575b505050811b01602b556115ba565b015160001960f88460031b161c1916905538808061311c565b9192602060018192868b015181550194019201613107565b602b83527f11c44e4875b74d31ff9fd779bf2566af7bd15b87fc985d01f5094b89e3669e4f601f830160051c810191602084106131b4575b601f0160051c01905b8181106131a9575061158b565b83815560010161319c565b9091508190613193565b6131d291503d8084833e612c24818361346d565b38611523565b6131f1915060203d60201161252557612516818361346d565b3861147a565b816132019161346d565b61016c578038611430565b50604051903d90823e3d90fd5b634e487b7160e01b84526041600452602484fd5b634e487b7160e01b8a52604160045260248afd5b9093506020813d602011613279575b8161325d6020938361346d565b810103126132755761326e906136c8565b9238611324565b8680fd5b3d9150613250565b6040513d89823e3d90fd5b60209194506132a790823d841161252557612516818361346d565b93906112ff565b90506020813d6020116132e4575b816132c96020938361346d565b810103126132e0576132da906136c8565b386112d6565b8580fd5b3d91506132bc565b6040513d88823e3d90fd5b61331191925060203d60201161252557612516818361346d565b90386112b1565b816133229161346d565b61016c57803861126e565b50fd5b634e487b7160e01b85526041600452602485fd5b61334d9161346d565b38816111cc565b8280fd5b5080fd5b602060408183019282815284518094520192019060005b8181106133805750505090565b82516001600160a01b0316845260209384019390920191600101613373565b60005b8381106133b25750506000910152565b81810151838201526020016133a2565b906020916133db8151809281855285808601910161339f565b601f01601f1916010190565b90600182811c92168015613417575b602083101461340157565b634e487b7160e01b600052602260045260246000fd5b91607f16916133f6565b60a081019081106001600160401b0382111761343c57604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761343c57604052565b90601f801991011681019081106001600160401b0382111761343c57604052565b90604051918260008254926134a2846133e7565b808452936001811690811561351057506001146134c9575b506134c79250038361346d565b565b90506000929192526020600020906000915b8183106134f45750509060206134c792820101386134ba565b60209193508060019154838589010152019101909184926134db565b9050602092506134c794915060ff191682840152151560051b820101386134ba565b95919361356d60c09699989460ff9661357b9460018060a01b03168a5260018060a01b031660208a015260e060408a015260e08901906133c2565b9087820360608901526133c2565b966080860152151560a085015216910152565b906020808351928381520192019060005b8181106135ac5750505090565b82516001600160e01b03191684526020938401939092019160010161359f565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106135ff57505050505090565b909192939460208061361d600193603f1986820301875289516133c2565b970193019301919392906135f0565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061365f57505050505090565b9091929394602080613695600193603f198682030187526040838b51878060a01b0381511684520151918185820152019061358e565b97019301930191939290613650565b908160209103126136c357516001600160a01b03811681036136c35790565b600080fd5b51906001600160a01b03821682036136c357565b81601f820112156136c35780516001600160401b03811161343c576040519261370f601f8301601f19166020018561346d565b818452602082840101116136c35761372d916020808501910161339f565b90565b6020818303126136c3578051906001600160401b0382116136c3570160e0818303126136c3576040519160e083018381106001600160401b0382111761343c5760405261377c826136c8565b835261378a602083016136c8565b602084015260408201516001600160401b0381116136c357816137ae9184016136dc565b60408401526060820151906001600160401b0382116136c3576137d29183016136dc565b60608301526080810151608083015260a08101519081151582036136c35760c09160a0840152015160ff811681036136c35760c082015290565b80516001600160a01b03908116835260208083015182169084015260408083015182169084015260608083015182169084015260809182015116910152565b8061385e6101009260069496959661380c565b61012060a08201526004610120820152635553444360e01b610140820152610160810194600060c083015260e08201520152565b9081526001600160a01b0391821660208201529116604082015260600190565b6001600160401b03811161343c5760051b60200190565b90604051918281549182825260208201906000526020600020926000905b806007830110613a29576134c7945491818110613a0a575b8181106139eb575b8181106139cc575b8181106139ad575b81811061398e575b81811061396f575b818110613952575b1061393d575b50038361346d565b6001600160e01b031916815260200138613935565b602083811b6001600160e01b03191685529093019260010161392f565b604083901b6001600160e01b0319168452602090930192600101613927565b606083901b6001600160e01b031916845260209093019260010161391f565b608083901b6001600160e01b0319168452602090930192600101613917565b60a083901b6001600160e01b031916845260209093019260010161390f565b60c083901b6001600160e01b0319168452602090930192600101613907565b60e083901b6001600160e01b03191684526020909301926001016138ff565b916008919350610100600191865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e08201520194019201859293916138e7565b60085460ff168015613add5790565b50604051630667f9d760e41b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d60048201526519985a5b195960d21b6024820152602081604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115613b7857600091613b46575b50151590565b90506020813d602011613b70575b81613b616020938361346d565b810103126136c3575138613b40565b3d9150613b54565b6040513d6000823e3d90fdfe60803461012957601f61ae8f38819003918201601f19168301916001600160401b0383118484101761012e5780849260c0946040528339810103126101295761004781610144565b9061005460208201610144565b61006060408301610144565b61006c60608401610144565b91600161008760a061008060808801610144565b9601610144565b600c805460ff199081168417909155601f805460a885901b8581031990911660089a909a1b92019190911697909717909117909555602080546001600160a01b03199081166001600160a01b039384161790915560218054821693831693909317909255602280548316938216939093179092556023805482169383169390931790925560248054909216921691909117905560405161ad3690816101598239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036101295756fe6080604052600436101561001257600080fd5b60003560e01c8062173d4614610195578062d62498146101905780631694505e1461018b5780631ed7831c146101865780632ade3880146101815780633e5e3c231461017c5780633f7286f41461017757806362f1b0021461017257806366d9a9a01461016d5780636a26fefe146101685780636ce89fe2146101635780636e6dbb511461015e5780637bf221811461015957806385226c8114610154578063916a17c61461014f578063ad8414bf1461014a578063b0464fdc14610145578063b5508aa914610140578063ba414fa61461013b578063bb88b76914610136578063d05adf6a14610131578063d5f394881461012c578063e20c9f71146101275763fa7626d41461012257600080fd5b611708565b611688565b61165b565b61162d565b611604565b6115df565b611552565b6114a6565b611478565b6113cc565b6112c7565b6107d8565b6107b1565b610788565b61076c565b6106c0565b6105d4565b610554565b6104d4565b610428565b61027f565b610213565b6101e5565b6101aa565b60009103126101a557565b600080fd5b346101a55760003660031901126101a5576021546040516001600160a01b039091168152602090f35b60209060031901126101a55760043590565b346101a5576101f3366101d3565b6000526027602052602060018060a01b0360406000205416604051908152f35b346101a55760003660031901126101a5576024546040516001600160a01b039091168152602090f35b602060408183019282815284518094520192019060005b8181106102605750505090565b82516001600160a01b0316845260209384019390920191600101610253565b346101a55760003660031901126101a55760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b8181106102f0576102ec856102e08187038261175d565b6040519182918261023c565b0390f35b82546001600160a01b03168452602090930192600192830192016102c9565b60005b8381106103225750506000910152565b8181015183820152602001610312565b9060209161034b8151809281855285808601910161030f565b601f01601f1916010190565b9080602083519182815201916020808360051b8301019401926000915b83831061038357505050505090565b90919293946020806103a1600193601f198682030187528951610332565b97019301930191939290610374565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106103e357505050505090565b9091929394602080610419600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610357565b970193019301919392906103d4565b346101a55760003660031901126101a557601e546104458161177f565b90610453604051928361175d565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061049957604051806102ec87826103b0565b600260206001926040516104ac81611741565b848060a01b0386541681526104c2858701611863565b83820152815201920192019190610484565b346101a55760003660031901126101a55760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b818110610535576102ec856102e08187038261175d565b82546001600160a01b031684526020909301926001928301920161051e565b346101a55760003660031901126101a55760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b8181106105b5576102ec856102e08187038261175d565b82546001600160a01b031684526020909301926001928301920161059e565b346101a5576105e2366101d3565b6000526028602052602060018060a01b0360406000205416604051908152f35b906020808351928381520192019060005b8181106106205750505090565b82516001600160e01b031916845260209384019390920191600101610613565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061067357505050505090565b90919293946020806106b1600193603f19868203018752895190836106a18351604084526040840190610332565b9201519084818403910152610602565b97019301930191939290610664565b346101a55760003660031901126101a557601b546106dd8161177f565b906106eb604051928361175d565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b83831061073157604051806102ec8782610640565b6002602060019260405161074481611741565b61074d86611797565b815261075a8587016118bb565b8382015281520192019201919061071c565b346101a55760003660031901126101a557602060405160058152f35b346101a55760003660031901126101a5576023546040516001600160a01b039091168152602090f35b346101a55760003660031901126101a557602080546040516001600160a01b039091168152f35b346101a5576107e6366101d3565b601f5460081c6001600160a01b0316737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156101a5576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610f355761129e575b506040516129ee80820182811067ffffffffffffffff821117611012578291613e36833903906000f08015610f35576023546001600160a01b031660405191610bd68084019284841067ffffffffffffffff8511176110125784936108e193879361a12b87396001600160a01b039081168252919091166020820152604081019190915260600190565b03906000f08015610f35576000828152602760205260409020610928916001600160a01b0316905b80546001600160a01b0319166001600160a01b03909216919091179055565b604051611ebc80820182811067ffffffffffffffff821117611012578291611f7a833903906000f08015610f35576000828152602560205260409020610977916001600160a01b031690610909565b60058114801561114a576040516360f9bb1160e01b815260206004820152604b60248201527f6e6f64655f6d6f64756c65732f407a657461636861696e2f70726f746f636f6c60448201527f2d636f6e7472616374732f6162692f5465737445524332302e736f6c2f54657360648201526a3a22a9219918173539b7b760a91b608482015260008160a481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610f3557610a49916000918291611130575b5060405180938192631fb2437d60e31b835260048301611b5b565b0381737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610f3557610aea91610ad69160009161110d575b5060405190610ad182610ac36020820160c0906040815260046040820152635a65746160e01b60608201526080602082015260046080820152635a45544160e01b60a08201520190565b03601f19810184528361175d565b611c60565b610909846000526028602052604060002090565b610b1d610b11610b04846000526027602052604060002090565b546001600160a01b031690565b6001600160a01b031690565b6020546001600160a01b0316610b40610b04856000526028602052604060002090565b601f5490929060081c6001600160a01b031690803b156101a55760405163c0c53b8b60e01b81526001600160a01b0393841660048201529383166024850152911660448301526000908290606490829084905af18015610f35576110f8575b50610bbd610b11610b11610b04856000526025602052604060002090565b610bd7610b11610b04856000526027602052604060002090565b6020546001600160a01b0316601f5490929060081c6001600160a01b031690803b156101a55760405163c0c53b8b60e01b81526001600160a01b0393841660048201529383166024850152911660448301526000908290606490829084905af18015610f35576110e3575b50801561101757604051611bf380820182811067ffffffffffffffff821117611012578291616824833903906000f08015610f3557610c91610b11610b04856000526027602052604060002090565b90610cfc610cac610b04866000526028602052604060002090565b60208054601f54604051637c643b2f60e11b938101939093526001600160a01b03968716602484015292861660448301528516606482015260089190911c90931660848401528260a48101610ac3565b604051916102c69081840184811067ffffffffffffffff821117611012578493610d3493611cb486396001600160a01b031690611b97565b03906000f08015610f35576000838152602660205260409020610d60916001600160a01b031690610909565b610d7a610b11610b04846000526027602052604060002090565b610d91610b04846000526025602052604060002090565b90803b156101a55760405163ae7a3a6f60e01b81526001600160a01b039290921660048301526000908290602490829084905af18015610f3557610ffd575b50610deb610b11610b04846000526027602052604060002090565b610e02610b04846000526026602052604060002090565b90803b156101a5576040516310188aef60e01b81526001600160a01b039290921660048301526000908290602490829084905af18015610f3557610fe8575b5015610f4f57610e7b610b04610e6a610b11610b11610b04866000526028602052604060002090565b926000526026602052604060002090565b90803b156101a5576040516340c10f1960e01b81526001600160a01b0392909216600483015269d3c21bcecceda100000060248301526000908290604490829084905af18015610f3557610f3a575b505b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156101a5576040516390c5013b60e01b815260008160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610f3557610f1e57005b80610f2d6000610f339361175d565b8061019a565b005b611ae0565b80610f2d6000610f499361175d565b38610eca565b610f6c610b11610b11610b04846000526028602052604060002090565b602054909190610f8890610b04906001600160a01b0316610e6a565b823b156101a5576040516305755ff560e21b81526001600160a01b03928316600482015291166024820152906000908290604490829084905af18015610f3557610fd3575b50610ecc565b80610f2d6000610fe29361175d565b38610fcd565b80610f2d6000610ff79361175d565b38610e41565b80610f2d600061100c9361175d565b38610dd0565b61172b565b604051611d1480820182811067ffffffffffffffff821117611012578291618417833903906000f08015610f355761105f610b11610b04856000526027602052604060002090565b9061107a610cac610b04866000526028602052604060002090565b604051916102c69081840184811067ffffffffffffffff8211176110125784936110b293611cb486396001600160a01b031690611b97565b03906000f08015610f355760008381526026602052604090206110de916001600160a01b031690610909565b610d60565b80610f2d60006110f29361175d565b38610c42565b80610f2d60006111079361175d565b38610b9f565b61112a91503d806000833e611122818361175d565b810190611aec565b38610a79565b61114491503d8084833e611122818361175d565b38610a2e565b6040516360f9bb1160e01b815260206004820152604f60248201527f6e6f64655f6d6f64756c65732f407a657461636861696e2f70726f746f636f6c60448201527f2d636f6e7472616374732f6162692f5a6574612e6e6f6e2d6574682e736f6c2f60648201526e2d32ba30a737b722ba34173539b7b760891b608482015260008160a481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610f3557611215916000918291611130575060405180938192631fb2437d60e31b835260048301611b5b565b0381737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610f355761127e91610ad691600091611283575b5060208054601f54604080516001600160a01b039384169481019490945260089190911c9091169082015290610ad18260608101610ac3565b610aea565b61129891503d806000833e611122818361175d565b38611245565b80610f2d60006112ad9361175d565b38610857565b9060206112c4928181520190610357565b90565b346101a55760003660031901126101a557601a546112e48161177f565b906112f2604051928361175d565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b83831061133757604051806102ec87826112b3565b60016020819261134685611797565b815201920192019190611322565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061138757505050505090565b90919293946020806113bd600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610602565b97019301930191939290611378565b346101a55760003660031901126101a557601d546113e98161177f565b906113f7604051928361175d565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b83831061143d57604051806102ec8782611354565b6002602060019260405161145081611741565b848060a01b0386541681526114668587016118bb565b83820152815201920192019190611428565b346101a557611486366101d3565b6000526025602052602060018060a01b0360406000205416604051908152f35b346101a55760003660031901126101a557601c546114c38161177f565b906114d1604051928361175d565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b83831061151757604051806102ec8782611354565b6002602060019260405161152a81611741565b848060a01b0386541681526115408587016118bb565b83820152815201920192019190611502565b346101a55760003660031901126101a55760195461156f8161177f565b9061157d604051928361175d565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b8383106115c257604051806102ec87826112b3565b6001602081926115d185611797565b8152019201920191906115ad565b346101a55760003660031901126101a55760206115fa611bc8565b6040519015158152f35b346101a55760003660031901126101a5576022546040516001600160a01b039091168152602090f35b346101a55761163b366101d3565b6000526026602052602060018060a01b0360406000205416604051908152f35b346101a55760003660031901126101a557601f5460405160089190911c6001600160a01b03168152602090f35b346101a55760003660031901126101a55760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b8181106116e9576102ec856102e08187038261175d565b82546001600160a01b03168452602090930192600192830192016116d2565b346101a55760003660031901126101a557602060ff601f54166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff82111761101257604052565b90601f8019910116810190811067ffffffffffffffff82111761101257604052565b67ffffffffffffffff81116110125760051b60200190565b9060405191600081548060011c9260018216918215611859575b60208510831461184557848752869392602085019291811561182857506001146117e6575b50506117e49250038361175d565b565b6117f7919250600052602060002090565b906000915b84831061181157506117e493500138806117d6565b8054828401528693506020909201916001016117fc565b9150506117e49491925060ff19168252151560051b0138806117d6565b634e487b7160e01b84526022600452602484fd5b93607f16936117b1565b90815461186f8161177f565b9261187d604051948561175d565b818452602084019060005260206000206000915b83831061189e5750505050565b6001602081926118ad85611797565b815201920192019190611891565b604051815480825290929183906118db6020830191600052602060002090565b926000905b806007830110611a23576117e4945491818110611a04575b8181106119e5575b8181106119c6575b8181106119a7575b818110611988575b818110611969575b81811061194b575b10611936575b50038361175d565b6001600160e01b03191681526020013861192e565b602083811b6001600160e01b03191685529093600191019301611928565b604083901b6001600160e01b0319168452926001906020019301611920565b606083901b6001600160e01b0319168452926001906020019301611918565b608083901b6001600160e01b0319168452926001906020019301611910565b60a083901b6001600160e01b0319168452926001906020019301611908565b60c083901b6001600160e01b0319168452926001906020019301611900565b6001600160e01b031960e084901b1684529260019060200193016118f8565b916008919350610100600191611ad28754611a49838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b0194019201859293916118e0565b6040513d6000823e3d90fd5b6020818303126101a55780519067ffffffffffffffff82116101a5570181601f820112156101a5576020815191019067ffffffffffffffff81116110125760405192611b42601f8301601f19166020018561175d565b818452818301116101a5576112c491602084019061030f565b611b6d60409283835283830190610332565b906020818303910152601081526f0b989e5d1958dbd9194b9bd89a9958dd60821b60208201520190565b6001600160a01b0390911681526040602082018190526112c492910190610332565b908160209103126101a5575190565b60085460ff168015611bd75790565b50604051630667f9d760e41b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190526519985a5b195960d21b6024830152602090829060449082905afa908115610f3557600091611c31575b50151590565b611c53915060203d602011611c59575b611c4b818361175d565b810190611bb9565b38611c2b565b503d611c41565b90611ca560209160405192839181611c81818501978881519384920161030f565b8301611c958251809385808501910161030f565b010103601f19810183528261175d565b51906000f09081156101a55756fe60806040526102c68038038061001481610188565b928339810190604081830312610183578051906001600160a01b03821690818303610183576020810151906001600160401b038211610183570183601f820112156101835780519061006d610068836101c3565b610188565b94828652602083830101116101835760005b82811061016e575050602060009185010152813b1561015a577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a28151156101415760008083602061012995519101845af43d15610139573d91610119610068846101c3565b9283523d6000602085013e6101de565b505b604051608690816102408239f35b6060916101de565b5050341561012b5763b398979f60e01b60005260046000fd5b634c9c8ce360e01b60005260045260246000fd5b8060208092840101518282890101520161007f565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176101ad57604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b0381116101ad57601f01601f191660200190565b9061020457508051156101f357805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580610236575b610215575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b1561020d56fe60806040527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5460009081906001600160a01b0316368280378136915af43d6000803e15604b573d6000f35b3d6000fdfea264697066735822122050f22a01d073962c556a114f7af7ed5d52928a56307a2cc1329dcdbb635986ec64736f6c634300081a003360a0806040523460295730608052611e8d908161002f8239608051818181610f090152610fda0152f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a71461131857508063116191b6146112f1578063248a9ca3146112ca578063252f07bf146112a45780632f2ff15d1461127257806336568abe1461122d5780633f4ba83a146111ab5780634f1ef28614610f5e57806352d1902d14610ef6578063570618e114610ecd5780635b11259114610ea45780635c975abb14610e745780638456cb5914610dff57806385f438c114610dd657806391d1485414610d80578063950837aa14610cb457806399a3c35614610ade5780639a59042714610a725780639b19251a146109f4578063a217fddf146109d8578063ad0818521461082d578063ad3cb1cc146107b3578063c0c53b8b1461057f578063d547741f14610544578063d936547e14610505578063d9caed1214610442578063e609055e146101e8578063e63ab1e9146101ad5763eab103df1461016057600080fd5b346101aa5760203660031901126101aa576004358015158091036101a65761018661157a565b6002805460ff60a01b191660a09290921b60ff60a01b1691909117905580f35b5080fd5b80fd5b50346101aa57806003193601126101aa5760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346101aa5760803660031901126101aa5760043567ffffffffffffffff81116101a65761021a903690600401611417565b6024356001600160a01b03811692919083810361043e5760643567ffffffffffffffff811161043a57610251903690600401611417565b9061025a611b7e565b610262611bba565b60ff60025460a01c161561042b57858752600160205260ff6040882054161561041c576040516370a0823160e01b8152306004820152926020846024818a5afa9384156103db5788946103e6575b506102ee90604051906323b872dd60e01b60208301523360248301523060448301526044356064830152606482526102e96084836113c3565b611c21565b6040516370a0823160e01b8152306004820152926020846024818a5afa9384156103db5788946103a2575b50830392831161038e5791610376917f1dafa057cc5c3bccb5ad974129a2bccd3c74002d9dfd7062404ba9523b18d6ae959493610363604051968796606088526060880191611466565b9260208601528483036040860152611466565b0390a26001600080516020611df88339815191525580f35b634e487b7160e01b87526011600452602487fd5b9093506020813d6020116103d3575b816103be602093836113c3565b810103126103ce57519238610319565b600080fd5b3d91506103b1565b6040513d8a823e3d90fd5b9093506020813d602011610414575b81610402602093836113c3565b810103126103ce5751926102ee6102b0565b3d91506103f5565b630b094f2760e31b8752600487fd5b6373cba66360e01b8752600487fd5b8580fd5b8480fd5b50346101aa5760603660031901126101aa5761045c611383565b61046461136d565b60443590610470611b7e565b6104786115cd565b610480611bba565b6001600160a01b03168084526001602052604084205490929060ff16156104f6576020816104d0847fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb9487611be4565b6040519384526001600160a01b031692a36001600080516020611df88339815191525580f35b630b094f2760e31b8452600484fd5b50346101aa5760203660031901126101aa5760209060ff906040906001600160a01b03610530611383565b168152600184522054166040519015158152f35b50346101aa5760403660031901126101aa5761057b60043561056461136d565b9061057661057182611445565b611669565b611ade565b5080f35b50346101aa5760603660031901126101aa57610599611383565b6105a161136d565b6105a9611399565b600080516020611e38833981519152549260ff8460401c16159367ffffffffffffffff8116801590816107ab575b60011490816107a1575b159081610798575b506107895767ffffffffffffffff198116600117600080516020611e38833981519152558461075c575b506001600160a01b03168015801561074b575b801561073a575b61072b576106c992916106c391610642611c88565b61064a611c88565b610652611c88565b6001600080516020611df88339815191525561066c611c88565b610674611c88565b86546001600160a01b0319908116919091178755600280549091166001600160a01b0385161790556106a5816117c5565b506106af8161185f565b506106b98361185f565b506106c3836116b3565b5061173f565b506106d15780f35b68ff000000000000000019600080516020611e388339815191525416600080516020611e38833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b63d92e233d60e01b8552600485fd5b506001600160a01b0382161561062d565b506001600160a01b03831615610626565b68ffffffffffffffffff19166801000000000000000117600080516020611e388339815191525538610613565b63f92ee8a960e01b8652600486fd5b905015386105e9565b303b1591506105e1565b8691506105d7565b50346101aa57806003193601126101aa5760408051916107d382846113c3565b60058352640352e302e360dc1b6020840152815192839160208352815191826020850152815b838110610816575050828201840152601f01601f19168101030190f35b6020828201810151888301880152879550016107f9565b50346101aa57366003190160a081126101a6576020136101aa5761084f61136d565b610857611399565b906064359160843567ffffffffffffffff811161043e5761087c903690600401611417565b9091610886611b7e565b61088e6115cd565b610896611bba565b6001600160a01b03168086526001602052604086205490949060ff16156109c95785546108ce9082906001600160a01b031687611be4565b85546001600160a01b0316938690853b156101a657604051633ddf4d7d60e11b815290829082906001600160a01b03610905611383565b166004830152602482018a90526001600160a01b0316604482018190526064820186905260a060848301529781838161094260a482018b8d611466565b03925af180156109be576109a9575b50506109917f6478cbb6e28c0823c691dfd74c01c985634faddd4c401b990fe4ec26277ea8d5936040519384938452604060208501526040840191611466565b0390a36001600080516020611df88339815191525580f35b816109b3916113c3565b61043a578538610951565b6040513d84823e3d90fd5b630b094f2760e31b8652600486fd5b50346101aa57806003193601126101aa57602090604051908152f35b50346101aa5760203660031901126101aa57610a0e611383565b610a1661161b565b6001600160a01b03168015610a6357808252600160205260408220600160ff198254161790557faab7954e9d246b167ef88aeddad35209ca2489d95a8aeb59e288d9b19fae5a548280a280f35b63d92e233d60e01b8252600482fd5b50346101aa5760203660031901126101aa57610a8c611383565b610a9461161b565b6001600160a01b03168015610a6357808252600160205260408220805460ff191690557f51085ddf9ebdded84b76e829eb58c4078e4b5bdf97d9a94723f336039da467918280a280f35b50346101aa5760a03660031901126101aa57610af8611383565b610b0061136d565b9060443560643567ffffffffffffffff811161043e57610b24903690600401611417565b9190936084359067ffffffffffffffff8211610cb057608082600401926003199036030112610cb057610b55611b7e565b610b5d6115cd565b610b65611bba565b6001600160a01b03168087526001602052604087205490959060ff161561041c578654610b9d9084906001600160a01b031688611be4565b86546001600160a01b031694853b15610cac5787604051809263aa0c0fc160e01b825289600483015260018060a01b03169788602483015286604483015260a06064830152818381610c08610bf660a483018d8b611466565b8281036003190160848401528a611487565b03925af180156103db57610c6a575b507f7b53ec10a80164e60591c43d9c222e9354886981b880a3fba19c9ceb77fb9721939291610c5c610991926040519586958652606060208701526060860191611466565b908382036040850152611487565b91610c5c88610ca0610991949a7f7b53ec10a80164e60591c43d9c222e9354886981b880a3fba19c9ceb77fb97219897966113c3565b98925050919293610c17565b8780fd5b8680fd5b50346101aa5760203660031901126101aa57610cce611383565b610cd661157a565b6001600160a01b038116908115610d7157600254610d219190610d01906001600160a01b03166119b2565b50600254610d17906001600160a01b0316611a48565b506106c3816116b3565b50600254604080516001600160a01b0383168152602081018490527f4d3470c839d3c4dd664eec934b920c12fe0966e3185103dd40149496815df2b69190a16001600160a01b0319161760025580f35b63d92e233d60e01b8352600483fd5b50346101aa5760403660031901126101aa5760ff6040602092610da161136d565b6004358252600080516020611d9883398151915285528282206001600160a01b03909116825284522054604051911615158152f35b50346101aa57806003193601126101aa576020604051600080516020611d788339815191528152f35b50346101aa57806003193601126101aa57610e18611508565b610e20611bba565b600160ff19600080516020611dd8833981519152541617600080516020611dd8833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101aa57806003193601126101aa57602060ff600080516020611dd883398151915254166040519015158152f35b50346101aa57806003193601126101aa576002546040516001600160a01b039091168152602090f35b50346101aa57806003193601126101aa576020604051600080516020611d588339815191528152f35b50346101aa57806003193601126101aa577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610f4f576020604051600080516020611d388339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101aa57610f73611383565b6024359067ffffffffffffffff82116111a757366023830112156111a75781600401359083610fa1836113fb565b93610faf60405195866113c3565b838552602085019336602482840101116111a757806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611184575b506111755761101261157a565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181611141575b5061105557634c9c8ce360e01b86526004859052602486fd5b9384600080516020611d3883398151915287960361112f5750823b1561111d57600080516020611d3883398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a28051156111025761057b9382915190845af43d156110fa573d916110de836113fb565b926110ec60405194856113c3565b83523d85602085013e611cb6565b606091611cb6565b505050503461110e5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d60201161116d575b8161115d602093836113c3565b81010312610cb05751903861103c565b3d9150611150565b63703e46dd60e11b8452600484fd5b600080516020611d38833981519152546001600160a01b03161415905038611005565b8280fd5b50346101aa57806003193601126101aa576111c4611508565b600080516020611dd88339815191525460ff81161561121e5760ff1916600080516020611dd8833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346101aa5760403660031901126101aa5761124761136d565b336001600160a01b038216036112635761057b90600435611ade565b63334bd91960e11b8252600482fd5b50346101aa5760403660031901126101aa5761057b60043561129261136d565b9061129f61057182611445565b61191b565b50346101aa57806003193601126101aa57602060ff60025460a01c166040519015158152f35b50346101aa5760203660031901126101aa5760206112e9600435611445565b604051908152f35b50346101aa57806003193601126101aa57546040516001600160a01b039091168152602090f35b9050346101a65760203660031901126101a65760043563ffffffff60e01b81168091036111a75760209250637965db0b60e01b811490811561135c575b5015158152f35b6301ffc9a760e01b14905038611355565b602435906001600160a01b03821682036103ce57565b600435906001600160a01b03821682036103ce57565b604435906001600160a01b03821682036103ce57565b35906001600160a01b03821682036103ce57565b90601f8019910116810190811067ffffffffffffffff8211176113e557604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116113e557601f01601f191660200190565b9181601f840112156103ce5782359167ffffffffffffffff83116103ce57602083818601950101116103ce57565b600052600080516020611d9883398151915260205260016040600020015490565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160a01b03611498826113af565b1682526001600160a01b036114af602083016113af565b166020830152604081013560408301526060810135601e19823603018112156103ce57016020813591019067ffffffffffffffff81116103ce5780360382136103ce576080838160606115059601520191611466565b90565b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561154157565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16156115b357565b63e2517d3f60e01b60005233600452600060245260446000fd5b336000908152600080516020611e18833981519152602052604090205460ff16156115f457565b63e2517d3f60e01b60005233600452600080516020611d7883398151915260245260446000fd5b336000908152600080516020611db8833981519152602052604090205460ff161561164257565b63e2517d3f60e01b60005233600452600080516020611d5883398151915260245260446000fd5b6000818152600080516020611d988339815191526020908152604080832033845290915290205460ff161561169b5750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b0381166000908152600080516020611e18833981519152602052604090205460ff16611739576001600160a01b03166000818152600080516020611e1883398151915260205260408120805460ff19166001179055339190600080516020611d7883398151915290600080516020611d188339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020611db8833981519152602052604090205460ff16611739576001600160a01b03166000818152600080516020611db883398151915260205260408120805460ff19166001179055339190600080516020611d5883398151915290600080516020611d188339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16611739576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff19166001179055339190600080516020611d188339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff16611739576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a90600080516020611d188339815191529080a4600190565b6000818152600080516020611d98833981519152602090815260408083206001600160a01b038616845290915290205460ff166119ab576000818152600080516020611d98833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff1916600117905533929190600080516020611d188339815191529080a4600190565b5050600090565b6001600160a01b0381166000908152600080516020611e18833981519152602052604090205460ff1615611739576001600160a01b03166000818152600080516020611e1883398151915260205260408120805460ff19169055339190600080516020611d78833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381166000908152600080516020611db8833981519152602052604090205460ff1615611739576001600160a01b03166000818152600080516020611db883398151915260205260408120805460ff19169055339190600080516020611d58833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020611d98833981519152602090815260408083206001600160a01b038616845290915290205460ff16156119ab576000818152600080516020611d98833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6002600080516020611df88339815191525414611ba9576002600080516020611df883398151915255565b633ee5aeb560e01b60005260046000fd5b60ff600080516020611dd88339815191525416611bd357565b63d93c066560e01b60005260046000fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152611c1f916102e96064836113c3565b565b906000602091828151910182855af115611c7c576000513d611c7357506001600160a01b0381163b155b611c525750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b60011415611c4b565b6040513d6000823e3d90fd5b60ff600080516020611e388339815191525460401c1615611ca557565b631afcd79f60e31b60005260046000fd5b90611cdc5750805115611ccb57805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611d0e575b611ced575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15611ce556fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8619cecd8b9e095ab43867f5b69d492180450fe862e6b50bfbfb24b75dd84c8a10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009e55e7b9c223644eee376bcbcf651816b24106427c658526e048949da61b2c08cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00395f4e35a18c2b5e556b3b2ff855307e76c0b3cc1ca71e19a70e83037e08e7b3f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212206353f97c2bca70990562e73c05a556d800ce6f131c5458a0f2aa0fe6f1af58ff64736f6c634300081a003360a080604052346100ea57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b6040516128fe90816100f0823960805181818161120b01526112db0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880610054565b63f92ee8a960e01b60005260046000fd5b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a7146119015750806310188aef1461188f578063102614b01461179f5780631becceb4146116c457806321e093b11461169b578063248a9ca3146116745780632f2ff15d1461164257806336568abe146115fd57806338e22527146115035780633f4ba83a146114815780634f1ef2861461126057806352d1902d146111f857806357bec62f146111cf5780635b112591146111a65780635c975abb146111765780635d62c8601461113b578063726ac97c1461100c578063744b9b8b14610f295780637bbe9afa14610b1c5780638456cb5914610aa757806391d1485414610a4e578063950837aa146109ab578063a217fddf1461098f578063a2ba193414610972578063a783c78914610949578063aa0c0fc1146107f8578063ad3cb1cc146107ab578063ae7a3a6f1461072f578063c0c53b8b14610519578063cb7ba8e5146103a9578063d09e3b7814610236578063d547741f146101fb578063dda79b75146101d45763e63ab1e91461019757600080fd5b346101d157806003193601126101d15760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b80fd5b50346101d157806003193601126101d157546040516001600160a01b039091168152602090f35b50346101d15760403660031901126101d15761023260043561021b611987565b9061022d61022882611bf9565b611ea1565b6123d1565b5080f35b50346101d15760a03660031901126101d157610250611956565b60243561025b611971565b916064356001600160401b0381116103a55761027b9036906004016119b1565b608435946001600160401b0386116103a157856004019360a0600319883603011261039d576102a8612220565b851561038e576001600160a01b031695861561037f576064016104006102d96102d18388611ae2565b905085611bd6565b116103515750610347927fa795d4377323e4c2d4c346b8050a7dd504c4043be8884c81b8d9690706c8388f94928261031588610339953361224a565b60405197885260018060a01b03166020880152608060408801526080870191611b45565b908482036060860152611b66565b918033930390a380f35b8761036a8461036260449489611ae2565b919050611bd6565b634fe7bc4760e11b8252600452610400602452fd5b63d92e233d60e01b8852600488fd5b63951e19ed60e01b8852600488fd5b8780fd5b8680fd5b8480fd5b5060603660031901126101d1576103be611956565b906024356001600160401b038111610515576103de9036906004016119b1565b604493919335906001600160401b038211610511576080826004019260031990360301126105115761040e612471565b610416611d6f565b61041e612220565b6001600160a01b03831692831561050257848080809334905af1610440611c4a565b50156104f3578394833b156103a557604051636481451b60e11b8152602060048201528581806104736024820188611c92565b038183895af19081156104e85786916104d3575b50506104bb7fde7603a6ed5d07c9f43597ccfe9043d15b66d3284f0de321f5cdf56329e6e035936040519384933485611cf0565b0390a360016000805160206128698339815191525580f35b816104dd91611a90565b6103a5578438610487565b6040513d88823e3d90fd5b632b3f6d1160e21b8452600484fd5b63d92e233d60e01b8552600485fd5b8380fd5b5080fd5b50346101d15760603660031901126101d157610533611956565b61053b611987565b610543611971565b916000805160206128a9833981519152549260ff8460401c1615936001600160401b03811680159081610727575b600114908161071d575b159081610714575b506107055767ffffffffffffffff1981166001176000805160206128a983398151915255846106d8575b506001600160a01b03821690811580156106c7575b6106b8579061061861063b93926105d7612719565b6105df612719565b6105e7612719565b600160008051602061286983398151915255610601612719565b610609612719565b61061281612033565b506120cd565b50610622826120cd565b506001600160601b0360a01b6001541617600155611fad565b5060018060a01b03166001600160601b0360a01b600354161760035561065e5780f35b68ff0000000000000000196000805160206128a983398151915254166000805160206128a9833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b63d92e233d60e01b8652600486fd5b506001600160a01b038416156105c2565b68ffffffffffffffffff191668010000000000000001176000805160206128a983398151915255386105ad565b63f92ee8a960e01b8652600486fd5b90501538610583565b303b15915061057b565b869150610571565b50346101d15760203660031901126101d157610749611956565b610751611d1c565b6001600160a01b03811690811561079c5782546001600160a01b031661078d5761077a90611eeb565b5081546001600160a01b03191617815580f35b631666fe6f60e31b8352600483fd5b63d92e233d60e01b8352600483fd5b50346101d157806003193601126101d157506107f46040516107ce604082611a90565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611a6b565b0390f35b50346101d15760a03660031901126101d157610812611956565b61081a611987565b906044356064356001600160401b0381116103a55761083d9036906004016119b1565b91608435926001600160401b0384116103a1576080846004019460031990360301126103a15761086b612471565b610873611e2f565b61087b612220565b811561093a576001600160a01b03861694851561037f576001600160a01b0316956108a890839088612682565b843b156103a157604051636481451b60e11b81526020600482015287908181806108d5602482018a611c92565b0381838b5af1801561092f5761091a575b50507fde7603a6ed5d07c9f43597ccfe9043d15b66d3284f0de321f5cdf56329e6e035936104bb9160405194859485611cf0565b8161092491611a90565b6103a15786386108e6565b6040513d84823e3d90fd5b63951e19ed60e01b8752600487fd5b50346101d157806003193601126101d15760206040516000805160206127a98339815191528152f35b50346101d157806003193601126101d15760206040516104008152f35b50346101d157806003193601126101d157602090604051908152f35b50346101d15760203660031901126101d1576109c5611956565b6109cd611d1c565b6001600160a01b03811690811561079c576001546109fe91906109f8906001600160a01b031661233b565b50611fad565b50600154604080516001600160a01b0383168152602081018490527f3a7b8d6372645f474fe60c115a2ef21421306a3ed4664fa0023c461413c085799190a16001600160a01b0319161760015580f35b50346101d15760403660031901126101d1576040610a6a611987565b916004358152600080516020612829833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346101d157806003193601126101d157610ac0611dbd565b610ac8612220565b600160ff19600080516020612849833981519152541617600080516020612849833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101d157366003190160a08112610515576020136101d157610b3e611987565b610b46611971565b906064356084356001600160401b0381116103a557610b699036906004016119b1565b610b74929192612471565b610b7c611e2f565b610b84612220565b8115610f1a576001600160a01b038516948515610f0b57610ba58186612622565b15610eea5760405163095ea7b360e01b81526001600160a01b03828116600483015260248201859052861695906020816044818c8b5af1908115610e55578991610ecb575b5015610eb457610c1b91906001600160a01b03610c05611c1a565b16610ea957610c1584878461258a565b50612622565b15610e92576040516370a0823160e01b8152306004820152602081602481885afa908115610d52578791610e60575b5080610c73575b50906104bb600080516020612809833981519152939260405193849384611c30565b6003546001600160a01b03168503610dbe5760025460405163095ea7b360e01b81526001600160a01b039091166004820152602481018290526020816044818b8a5af1908115610db3578891610d84575b5015610d61576002548791906001600160a01b0316803b15610d5d5760248392604051948593849263743e0c9b60e01b845260048401525af18015610d5257610d28575b50906104bb60008051602061280983398151915293925b91929350610c51565b86610d48600080516020612809833981519152959493986104bb93611a90565b9691929350610d08565b6040513d89823e3d90fd5b8280fd5b60025463482b72c160e11b885260048690526001600160a01b0316602452604487fd5b610da6915060203d602011610dac575b610d9e8183611a90565b810190611c7a565b38610cc4565b503d610d94565b6040513d8a823e3d90fd5b8654604051636c9b2a3f60e11b8152600481018790526001600160a01b0390911690602081602481855afa908115610e55578991610e36575b5015610e225791610e1d6104bb9260008051602061280983398151915296959488612682565b610d1f565b631387a34960e01b88526004869052602488fd5b610e4f915060203d602011610dac57610d9e8183611a90565b38610df7565b6040513d8b823e3d90fd5b90506020813d602011610e8a575b81610e7b60209383611a90565b810103126103a1575138610c4a565b3d9150610e6e565b604486868663482b72c160e11b8352600452602452fd5b610c158487846124ad565b604488888863482b72c160e11b8352600452602452fd5b610ee4915060203d602011610dac57610d9e8183611a90565b38610bea565b63482b72c160e11b87526001600160a01b0385166004526024869052604487fd5b63d92e233d60e01b8752600487fd5b63951e19ed60e01b8652600486fd5b50610f33366119de565b909192610f3e612220565b3415610ffd576001600160a01b03169283156105025760608201610400610f70610f688386611ae2565b905086611bd6565b11610fec5750848080803460018060a01b03600154165af1610f90611c4a565b5015610fdd577fa795d4377323e4c2d4c346b8050a7dd504c4043be8884c81b8d9690706c8388f916103396103479260405195348752886020880152608060408801526080870191611b45565b6379cacff160e01b8552600485fd5b8561036a8561036260449487611ae2565b633b38932f60e11b8552600485fd5b5060403660031901126101d157611021611956565b602435906001600160401b038211610d5d57816004019060a060031984360301126105115761104e612220565b341561112c576001600160a01b031691821561111d576064016104006110748284611ae2565b9050116110fa5750828080803460018060a01b03600154165af1611096611c4a565b50156110eb577fc6f891b65320c682b217616a62b51f218fee95d5f0ba83e758ef9ab4ee8e975c610347604051923484528560208501526080604085015285608085015260a0606085015260a0840190611b66565b6379cacff160e01b8352600483fd5b6111078491604493611ae2565b634fe7bc4760e11b835260045250610400602452fd5b63d92e233d60e01b8452600484fd5b633b38932f60e11b8452600484fd5b50346101d157806003193601126101d15760206040517f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b98152f35b50346101d157806003193601126101d157602060ff60008051602061284983398151915254166040519015158152f35b50346101d157806003193601126101d1576001546040516001600160a01b039091168152602090f35b50346101d157806003193601126101d1576002546040516001600160a01b039091168152602090f35b50346101d157806003193601126101d1577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036112515760206040516000805160206127e98339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101d157611275611956565b602435906001600160401b038211610d5d5736602383011215610d5d57816004013590836112a283611ac7565b936112b06040519586611a90565b83855260208501933660248284010111610d5d57806024602093018637850101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630811490811561145e575b5061144f57611313611d1c565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa86918161141b575b5061135657634c9c8ce360e01b86526004859052602486fd5b93846000805160206127e98339815191528796036114095750823b156113f7576000805160206127e983398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a28051156113dc576102329382915190845af46113d6611c4a565b91612747565b50505050346113e85780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011611447575b8161143760209383611a90565b810103126103a15751903861133d565b3d915061142a565b63703e46dd60e11b8452600484fd5b6000805160206127e9833981519152546001600160a01b03161415905038611306565b50346101d157806003193601126101d15761149a611dbd565b6000805160206128498339815191525460ff8116156114f45760ff1916600080516020612849833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50366003190160608112610515576020136101d157611520611987565b6044356001600160401b038111610d5d5761153f9036906004016119b1565b61154a929192612471565b611552611d6f565b61155a612220565b6001600160a01b038216918215610502576107f494507fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f919081856001600160a01b036115a5611c1a565b166115ee576115b39261258a565b935b6115c56040519283923484611c30565b0390a2600160008051602061286983398151915255604051918291602083526020830190611a6b565b6115f7926124ad565b936115b5565b50346101d15760403660031901126101d157611617611987565b336001600160a01b0382160361163357610232906004356123d1565b63334bd91960e11b8252600482fd5b50346101d15760403660031901126101d157610232600435611662611987565b9061166f61022882611bf9565b612189565b50346101d15760203660031901126101d1576020611693600435611bf9565b604051908152f35b50346101d157806003193601126101d1576003546040516001600160a01b039091168152602090f35b50346101d1576116d3366119de565b9190926116de612220565b6020830135801515810361179b5761178c576001600160a01b0316928315610502576117186117106060850185611ae2565b905082611bd6565b61040081116117745750907fd34634f30f94a646fdf4ce7078f38fc5fa0d3f0b193658facea4e3e43330d9749161176e61175f604051938493604085526040850191611b45565b82810360208401523395611b66565b0390a380f35b634fe7bc4760e11b8652600452610400602452604485fd5b630cda5ff960e11b8552600485fd5b8580fd5b50346101d15760803660031901126101d1576117b9611956565b6024356117c4611971565b91606435926001600160401b0384116103a557836004019160a0600319863603011261179b576117f2612220565b8315610f1a576001600160a01b03169384156106b8576064016104006118188285611ae2565b90501161188257507fc6f891b65320c682b217616a62b51f218fee95d5f0ba83e758ef9ab4ee8e975c918161185185610347943361224a565b60405194855260018060a01b031660208501526080604085015285608085015260a0606085015260a0840190611b66565b8561110760449285611ae2565b50346101d15760203660031901126101d1576118a9611956565b6118b1611d1c565b6001600160a01b03811690811561079c576002546001600160a01b03166118f2576118db90611eeb565b506001600160601b0360a01b600254161760025580f35b630646e00b60e11b8352600483fd5b9050346105155760203660031901126105155760043563ffffffff60e01b8116809103610d5d5760209250637965db0b60e01b8114908115611945575b5015158152f35b6301ffc9a760e01b1490503861193e565b600435906001600160a01b038216820361196c57565b600080fd5b604435906001600160a01b038216820361196c57565b602435906001600160a01b038216820361196c57565b35906001600160a01b038216820361196c57565b9181601f8401121561196c578235916001600160401b03831161196c576020838186019501011161196c57565b90606060031983011261196c576004356001600160a01b038116810361196c57916024356001600160401b03811161196c5781611a1d916004016119b1565b92909291604435906001600160401b03821161196c5760a090829003600319011261196c5760040190565b60005b838110611a5b5750506000910152565b8181015183820152602001611a4b565b90602091611a8481518092818552858086019101611a48565b601f01601f1916010190565b90601f801991011681019081106001600160401b03821117611ab157604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b038111611ab157601f01601f191660200190565b903590601e198136030182121561196c57018035906001600160401b03821161196c5760200191813603831361196c57565b9035601e198236030181121561196c5701602081359101916001600160401b03821161196c57813603831361196c57565b908060209392818452848401376000828201840152601f01601f1916010190565b906001600160a01b03611b788361199d565b168152602082013580151580910361196c5760208201526001600160a01b03611ba36040840161199d565b166040820152608080611bcd611bbc6060860186611b14565b60a0606087015260a0860191611b45565b93013591015290565b91908201809211611be357565b634e487b7160e01b600052601160045260246000fd5b60005260008051602061282983398151915260205260016040600020015490565b6004356001600160a01b038116810361196c5790565b604090611c47949281528160208201520191611b45565b90565b3d15611c75573d90611c5b82611ac7565b91611c696040519384611a90565b82523d6000602084013e565b606090565b9081602091031261196c5751801515810361196c5790565b611c479190608090611ce0906001600160a01b03611caf8261199d565b1684526001600160a01b03611cc66020830161199d565b166020850152604081013560408501526060810190611b14565b9190928160608201520191611b45565b9291611c479492611d0e928552606060208601526060850191611b45565b916040818403910152611c92565b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1615611d5557565b63e2517d3f60e01b60005233600452600060245260446000fd5b336000908152600080516020612889833981519152602052604090205460ff1615611d9657565b63e2517d3f60e01b600052336004526000805160206127a983398151915260245260446000fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1615611df657565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527f8e1abba0e730025cbab32adfc4f51c1ad3a74360c4b2cfb4780a6c5f316e0509602052604090205460ff1615611e6857565b63e2517d3f60e01b600052336004527f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b960245260446000fd5b60008181526000805160206128298339815191526020908152604080832033845290915290205460ff1615611ed35750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b03811660009081527f8e1abba0e730025cbab32adfc4f51c1ad3a74360c4b2cfb4780a6c5f316e0509602052604090205460ff16611fa7576001600160a01b031660008181527f8e1abba0e730025cbab32adfc4f51c1ad3a74360c4b2cfb4780a6c5f316e050960205260408120805460ff191660011790553391907f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b9906000805160206127c98339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020612889833981519152602052604090205460ff16611fa7576001600160a01b0316600081815260008051602061288983398151915260205260408120805460ff191660011790553391906000805160206127a9833981519152906000805160206127c98339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16611fa7576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391906000805160206127c98339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff16611fa7576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a906000805160206127c98339815191529080a4600190565b6000818152600080516020612829833981519152602090815260408083206001600160a01b038616845290915290205460ff16612219576000818152600080516020612829833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291906000805160206127c98339815191529080a4600190565b5050600090565b60ff600080516020612849833981519152541661223957565b63d93c066560e01b60005260046000fd5b60035492939290916001600160a01b03908116911681036122765763e4dd681d60e01b60005260046000fd5b600054604051636c9b2a3f60e11b8152600481018390526001600160a01b039091169490602081602481895afa90811561232f57600091612310575b50156122fb576122f99394604051936323b872dd60e01b602086015260018060a01b0316602485015260448401526064830152606482526122f4608483611a90565b6126be565b565b50631387a34960e01b60005260045260246000fd5b612329915060203d602011610dac57610d9e8183611a90565b386122b2565b6040513d6000823e3d90fd5b6001600160a01b0381166000908152600080516020612889833981519152602052604090205460ff1615611fa7576001600160a01b0316600081815260008051602061288983398151915260205260408120805460ff191690553391906000805160206127a9833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020612829833981519152602090815260408083206001600160a01b038616845290915290205460ff1615612219576000818152600080516020612829833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6002600080516020612869833981519152541461249c57600260008051602061286983398151915255565b633ee5aeb560e01b60005260046000fd5b6040516319db301560e21b815292916004356001600160a01b03811692919083900361196c57846124f581949260009683946004850152604060248501526044840191611b45565b039134906001600160a01b03165af190811561232f57600091612516575090565b903d8082843e6125268184611a90565b820191602081840312610515578051906001600160401b038211610d5d570182601f820112156105155780519161255c83611ac7565b9361256a6040519586611a90565b838552602084840101116101d1575090611c479160208085019101611a48565b9060048310156125d2575b908260009392849360405192839283378101848152039134905af16125b8611c4a565b90156125c15790565b632b3f6d1160e21b60005260046000fd5b9081356001600160e01b0319166319db301560e21b811461261157636481451b60e11b146126005790612595565b6379a2cd4b60e11b60005260046000fd5b63ed69977560e01b60005260046000fd5b60405163095ea7b360e01b81526001600160a01b039283166004820152600060248201819052909260209284926044928492165af190811561232f57600091612669575090565b611c47915060203d602011610dac57610d9e8183611a90565b60405163a9059cbb60e01b60208201526001600160a01b039290921660248301526044808301939093529181526122f9916122f4606483611a90565b906000602091828151910182855af11561232f576000513d61271057506001600160a01b0381163b155b6126ef5750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b600114156126e8565b60ff6000805160206128a98339815191525460401c161561273657565b631afcd79f60e31b60005260046000fd5b9061276d575080511561275c57805190602001fd5b63d6bda27560e01b60005260046000fd5b8151158061279f575b61277e575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b1561277656fe0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b738202dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f007bdc20c26beb8eedd348733c28a5c4c2f7f7f1183cba8898195258fcdca273bcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220e3ceedd3e1180302ea91f43717e98df4951453d3ade1c5982edc0e113031242064736f6c634300081a003360a0806040523460295730608052611bc4908161002f8239608051818181610bd40152610ca50152f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a71461107a57508063106e629014610fe2578063116191b614610fbb57806321e093b114610f92578063248a9ca314610f6b5780632f2ff15d14610f3957806336568abe14610ef45780633f4ba83a14610e725780634f1ef28614610c2957806352d1902d14610bc15780635b11259114610b985780635c975abb14610b685780636f8728ad146109a45780636fb9a7af1461081a578063743e0c9b146107b35780638456cb591461073e57806385f438c11461071557806391d14854146106bc578063950837aa146105ea578063a217fddf146105ce578063a783c78914610593578063ad3cb1cc14610519578063d547741f146104de578063e63ab1e9146104a35763f8c8765e1461013457600080fd5b346104a05760803660031901126104a05761014d6110cf565b6101556110ea565b906044356001600160a01b03811680820361049c576064356001600160a01b0381169490919085830361049857600080516020611b6f833981519152549567ffffffffffffffff60ff8860401c1615971680159081610490575b6001149081610486575b15908161047d575b5061046e57866101cf611259565b61043c575b600080516020611b6f833981519152549567ffffffffffffffff60ff8860401c1615971680159081610434575b600114908161042a575b159081610421575b506104125786610221611259565b6103e0575b6001600160a01b03169081159081156103ce575b81156103c5575b81156103bc575b506103ad57916102f49493916102ee936102606119df565b6102686119df565b6102706119df565b6001600080516020611b0f8339815191525561028a6119df565b6102926119df565b6001600160601b0360a01b8a541617895560018060a01b03166001600160601b0360a01b60015416176001556001600160601b0360a01b60025416176002556102da816115ad565b506102e483611489565b506102ee83611515565b50611647565b50610356575b6103015780f35b60ff60401b19600080516020611b6f8339815191525416600080516020611b6f833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b60ff60401b19600080516020611b6f8339815191525416600080516020611b6f833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a16102fa565b63d92e233d60e01b8852600488fd5b90501538610248565b84159150610241565b6001600160a01b03841615915061023a565b600160401b60ff60401b19600080516020611b6f833981519152541617600080516020611b6f83398151915255610226565b63f92ee8a960e01b8952600489fd5b90501538610213565b303b15915061020b565b889150610201565b600160401b60ff60401b19600080516020611b6f833981519152541617600080516020611b6f833981519152556101d4565b63f92ee8a960e01b8852600488fd5b905015386101c1565b303b1591506101b9565b8891506101af565b8680fd5b8480fd5b80fd5b50346104a057806003193601126104a05760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346104a05760403660031901126104a0576105156004356104fe6110ea565b9061051061050b82611196565b6113d8565b6118d8565b5080f35b50346104a057806003193601126104a05760408051916105398284611114565b60058352640352e302e360dc1b6020840152815192839160208352815191826020850152815b83811061057c575050828201840152601f01601f19168101030190f35b60208282018101518883018801528795500161055f565b50346104a057806003193601126104a05760206040517f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb8152f35b50346104a057806003193601126104a057602090604051908152f35b50346104a05760203660031901126104a0576106046110cf565b61060c611385565b6001600160a01b0381169081156106ad5760025461065d9190610637906001600160a01b031661179a565b5060025461064d906001600160a01b0316611830565b5061065781611489565b50611515565b50600254604080516001600160a01b0383168152602081018490527f33770ab682353c17917ad3e667f05905fc8dda00671ef1ed33bef9bc8db0323e9190a16001600160a01b0319161760025580f35b63d92e233d60e01b8352600483fd5b50346104a05760403660031901126104a05760406106d86110ea565b916004358152600080516020611acf833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346104a057806003193601126104a0576020604051600080516020611aaf8339815191528152f35b50346104a057806003193601126104a057610757611313565b61075f611422565b600160ff19600080516020611aef833981519152541617600080516020611aef833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346104a05760203660031901126104a0576107cd611422565b6001546040516323b872dd60e01b60208201523360248201523060448201526004356064808301919091528152610817916001600160a01b0316610812608483611114565b611978565b80f35b50346104a057366003190160a081126109a0576020136104a05761083c6110ea565b60443560643567ffffffffffffffff811161099c5761085f903690600401611168565b9091610869611289565b6108716112c5565b610879611422565b60015485546108969183916001600160a01b03908116911661144c565b84546001546001600160a01b03918216958792909116863b1561099857604051633ddf4d7d60e11b81529183918391906001600160a01b036108d66110cf565b16600484015260248301526001600160a01b0316604482018190526064820186905260a060848301529781838161091160a482018b8d6111b7565b03925af1801561098d57610978575b50506109607f23b9573b29ff81f01c7aa1968188e1cb7d5858b08582e111fdaf386d9ef9bd8d9360405193849384526040602085015260408401916111b7565b0390a26001600080516020611b0f8339815191525580f35b8161098291611114565b61049c578438610920565b6040513d84823e3d90fd5b8280fd5b8380fd5b5080fd5b50346104a05760a03660031901126104a0576109be6110cf565b906024359060443567ffffffffffffffff81116109a0576109e3903690600401611168565b909260843567ffffffffffffffff811161099c5760808160040191600319903603011261099c57610a12611289565b610a1a6112c5565b610a22611422565b6001548454610a3f9184916001600160a01b03908116911661144c565b83546001546001600160a01b03918216979116873b15610b645794610aa78798610ab99383809a996040519687958694859363aa0c0fc160e01b8552600485015260018060a01b03169c8d60248501528b604485015260a060648501528c60a48501916111b7565b828103600319016084840152896111d8565b03925af18015610b5957610b1b575b5061096090610b0d7f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff095969760405195869586526060602087015260608601916111b7565b9083820360408501526111d8565b90610b0d86610b4f7f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff0979861096095611114565b9695505090610ac8565b6040513d88823e3d90fd5b8580fd5b50346104a057806003193601126104a057602060ff600080516020611aef83398151915254166040519015158152f35b50346104a057806003193601126104a0576002546040516001600160a01b039091168152602090f35b50346104a057806003193601126104a0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610c1a576020604051600080516020611a8f8339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126104a057610c3e6110cf565b6024359067ffffffffffffffff821161099857366023830112156109985781600401359083610c6c8361114c565b93610c7a6040519586611114565b8385526020850193366024828401011161099857806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610e4f575b50610e4057610cdd611385565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181610e0c575b50610d2057634c9c8ce360e01b86526004859052602486fd5b9384600080516020611a8f833981519152879603610dfa5750823b15610de857600080516020611a8f83398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115610dcd576105159382915190845af43d15610dc5573d91610da98361114c565b92610db76040519485611114565b83523d85602085013e611a0d565b606091611a0d565b5050505034610dd95780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011610e38575b81610e2860209383611114565b8101031261049857519038610d07565b3d9150610e1b565b63703e46dd60e11b8452600484fd5b600080516020611a8f833981519152546001600160a01b03161415905038610cd0565b50346104a057806003193601126104a057610e8b611313565b600080516020611aef8339815191525460ff811615610ee55760ff1916600080516020611aef833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346104a05760403660031901126104a057610f0e6110ea565b336001600160a01b03821603610f2a57610515906004356118d8565b63334bd91960e11b8252600482fd5b50346104a05760403660031901126104a057610515600435610f596110ea565b90610f6661050b82611196565b611703565b50346104a05760203660031901126104a0576020610f8a600435611196565b604051908152f35b50346104a057806003193601126104a0576001546040516001600160a01b039091168152602090f35b50346104a057806003193601126104a057546040516001600160a01b039091168152602090f35b50346104a05760603660031901126104a057610ffc6110cf565b7f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d560206024359261102b611289565b6110336112c5565b61103b611422565b60015461105490859083906001600160a01b031661144c565b6040519384526001600160a01b031692a26001600080516020611b0f8339815191525580f35b9050346109a05760203660031901126109a05760043563ffffffff60e01b81168091036109985760209250637965db0b60e01b81149081156110be575b5015158152f35b6301ffc9a760e01b149050386110b7565b600435906001600160a01b03821682036110e557565b600080fd5b602435906001600160a01b03821682036110e557565b35906001600160a01b03821682036110e557565b90601f8019910116810190811067ffffffffffffffff82111761113657604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161113657601f01601f191660200190565b9181601f840112156110e55782359167ffffffffffffffff83116110e557602083818601950101116110e557565b600052600080516020611acf83398151915260205260016040600020015490565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160a01b036111e982611100565b1682526001600160a01b0361120060208301611100565b166020830152604081013560408301526060810135601e19823603018112156110e557016020813591019067ffffffffffffffff81116110e55780360382136110e55760808381606061125696015201916111b7565b90565b600167ffffffffffffffff19600080516020611b6f833981519152541617600080516020611b6f83398151915255565b6002600080516020611b0f83398151915254146112b4576002600080516020611b0f83398151915255565b633ee5aeb560e01b60005260046000fd5b336000908152600080516020611b2f833981519152602052604090205460ff16156112ec57565b63e2517d3f60e01b60005233600452600080516020611aaf83398151915260245260446000fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561134c57565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16156113be57565b63e2517d3f60e01b60005233600452600060245260446000fd5b6000818152600080516020611acf8339815191526020908152604080832033845290915290205460ff161561140a5750565b63e2517d3f60e01b6000523360045260245260446000fd5b60ff600080516020611aef833981519152541661143b57565b63d93c066560e01b60005260046000fd5b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815261148791610812606483611114565b565b6001600160a01b0381166000908152600080516020611b2f833981519152602052604090205460ff1661150f576001600160a01b03166000818152600080516020611b2f83398151915260205260408120805460ff19166001179055339190600080516020611aaf83398151915290600080516020611a6f8339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020611b4f833981519152602052604090205460ff1661150f576001600160a01b03166000818152600080516020611b4f83398151915260205260408120805460ff191660011790553391907f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb90600080516020611a6f8339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1661150f576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff19166001179055339190600080516020611a6f8339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1661150f576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a90600080516020611a6f8339815191529080a4600190565b6000818152600080516020611acf833981519152602090815260408083206001600160a01b038616845290915290205460ff16611793576000818152600080516020611acf833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff1916600117905533929190600080516020611a6f8339815191529080a4600190565b5050600090565b6001600160a01b0381166000908152600080516020611b2f833981519152602052604090205460ff161561150f576001600160a01b03166000818152600080516020611b2f83398151915260205260408120805460ff19169055339190600080516020611aaf833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381166000908152600080516020611b4f833981519152602052604090205460ff161561150f576001600160a01b03166000818152600080516020611b4f83398151915260205260408120805460ff191690553391907f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020611acf833981519152602090815260408083206001600160a01b038616845290915290205460ff1615611793576000818152600080516020611acf833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b906000602091828151910182855af1156119d3576000513d6119ca57506001600160a01b0381163b155b6119a95750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b600114156119a2565b6040513d6000823e3d90fd5b60ff600080516020611b6f8339815191525460401c16156119fc57565b631afcd79f60e31b60005260046000fd5b90611a335750805115611a2257805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611a65575b611a44575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15611a3c56fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00395f4e35a18c2b5e556b3b2ff855307e76c0b3cc1ca71e19a70e83037e08e7b37bdc20c26beb8eedd348733c28a5c4c2f7f7f1183cba8898195258fcdca273bcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212202bdad00032481621f5688942b2f2636896811e160d422fd2afd2200c14598d1164736f6c634300081a003360a0806040523460295730608052611ce5908161002f8239608051818181610cb70152610d880152f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a71461115157508063106e6290146110c5578063116191b61461109e57806321e093b114611075578063248a9ca31461104e5780632f2ff15d1461101c57806336568abe14610fd75780633f4ba83a14610f555780634f1ef28614610d0c57806352d1902d14610ca45780635b11259114610c7b5780635c975abb14610c4b5780636f8728ad14610a8a5780636f8b44b0146109d85780636fb9a7af1461085c578063743e0c9b146107db5780638456cb591461076657806385f438c11461073d57806391d14854146106e4578063950837aa14610612578063a217fddf146105f6578063a783c789146105cd578063ad3cb1cc14610553578063d547741f14610518578063d5abeb01146104fa578063e63ab1e9146104bf5763f8c8765e1461014a57600080fd5b346104bc5760803660031901126104bc576101636111a6565b61016b6111c1565b906044356001600160a01b0381168082036104b8576064356001600160a01b038116949091908583036104b457600080516020611c90833981519152549567ffffffffffffffff60ff8860401c16159716801590816104ac575b60011490816104a2575b159081610499575b5061048a57866101e5611330565b610458575b600080516020611c90833981519152549567ffffffffffffffff60ff8860401c1615971680159081610450575b6001149081610446575b15908161043d575b5061042e5786610237611330565b6103fc575b6001600160a01b03169081159081156103ea575b81156103e1575b81156103d8575b506103c9579161030a94939161030493610276611ae0565b61027e611ae0565b610286611ae0565b6001600080516020611c30833981519152556102a0611ae0565b6102a8611ae0565b6001600160601b0360a01b8a541617895560018060a01b03166001600160601b0360a01b60015416176001556001600160601b0360a01b60025416176002556102f081611727565b506102fa83611615565b50610304836116a1565b506117c1565b50610372575b60001960035561031d5780f35b60ff60401b19600080516020611c908339815191525416600080516020611c90833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b60ff60401b19600080516020611c908339815191525416600080516020611c90833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1610310565b63d92e233d60e01b8852600488fd5b9050153861025e565b84159150610257565b6001600160a01b038416159150610250565b600160401b60ff60401b19600080516020611c90833981519152541617600080516020611c908339815191525561023c565b63f92ee8a960e01b8952600489fd5b90501538610229565b303b159150610221565b889150610217565b600160401b60ff60401b19600080516020611c90833981519152541617600080516020611c90833981519152556101ea565b63f92ee8a960e01b8852600488fd5b905015386101d7565b303b1591506101cf565b8891506101c5565b8680fd5b8480fd5b80fd5b50346104bc57806003193601126104bc5760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346104bc57806003193601126104bc576020600354604051908152f35b50346104bc5760403660031901126104bc5761054f6004356105386111c1565b9061054a6105458261126d565b6114af565b611a40565b5080f35b50346104bc57806003193601126104bc57604080519161057382846111eb565b60058352640352e302e360dc1b6020840152815192839160208352815191826020850152815b8381106105b6575050828201840152601f01601f19168101030190f35b602082820181015188830188015287955001610599565b50346104bc57806003193601126104bc576020604051600080516020611b708339815191528152f35b50346104bc57806003193601126104bc57602090604051908152f35b50346104bc5760203660031901126104bc5761062c6111a6565b61063461145c565b6001600160a01b0381169081156106d557600254610685919061065f906001600160a01b0316611914565b50600254610675906001600160a01b03166119aa565b5061067f81611615565b506116a1565b50600254604080516001600160a01b0383168152602081018490527f33770ab682353c17917ad3e667f05905fc8dda00671ef1ed33bef9bc8db0323e9190a16001600160a01b0319161760025580f35b63d92e233d60e01b8352600483fd5b50346104bc5760403660031901126104bc5760406107006111c1565b916004358152600080516020611bf0833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346104bc57806003193601126104bc576020604051600080516020611bd08339815191528152f35b50346104bc57806003193601126104bc5761077f6113ea565b6107876114f9565b600160ff19600080516020611c10833981519152541617600080516020611c10833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346104bc5760203660031901126104bc576107f56114f9565b60015481906001600160a01b0316803b156108595781809160446040518094819363079cc67960e41b835233600484015260043560248401525af1801561084e5761083d5750f35b81610847916111eb565b6104bc5780f35b6040513d84823e3d90fd5b50fd5b50346104bc57366003190160a081126109d4576020136104bc5761087e6111c1565b60443560643567ffffffffffffffff81116109d0576108a190369060040161123f565b90916108ab611360565b6108b361139c565b6108bb6114f9565b84546108d5906084359083906001600160a01b0316611523565b84546001546001600160a01b03918216958792909116863b156109cc57604051633ddf4d7d60e11b81529183918391906001600160a01b036109156111a6565b16600484015260248301526001600160a01b0316604482018190526064820186905260a060848301529781838161095060a482018b8d61128e565b03925af1801561084e576109b7575b505061099f7f23b9573b29ff81f01c7aa1968188e1cb7d5858b08582e111fdaf386d9ef9bd8d93604051938493845260406020850152604084019161128e565b0390a26001600080516020611c308339815191525580f35b816109c1916111eb565b6104b857843861095f565b8280fd5b8380fd5b5080fd5b50346104bc5760203660031901126104bc57600080516020611b708339815191528152600080516020611bf08339815191526020908152604080832033600090815292529020546004359060ff1615610a655760207f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c91610a576114f9565b80600355604051908152a180f35b63e2517d3f60e01b825233600452600080516020611b70833981519152602452604482fd5b50346104bc5760a03660031901126104bc57610aa46111a6565b906024359060443567ffffffffffffffff81116109d457610ac990369060040161123f565b909260843567ffffffffffffffff81116109d0576080816004019160031990360301126109d057610af8611360565b610b0061139c565b610b086114f9565b8354610b22906064359084906001600160a01b0316611523565b83546001546001600160a01b03918216979116873b15610c475794610b8a8798610b9c9383809a996040519687958694859363aa0c0fc160e01b8552600485015260018060a01b03169c8d60248501528b604485015260a060648501528c60a485019161128e565b828103600319016084840152896112af565b03925af18015610c3c57610bfe575b5061099f90610bf07f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff0959697604051958695865260606020870152606086019161128e565b9083820360408501526112af565b90610bf086610c327f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff0979861099f956111eb565b9695505090610bab565b6040513d88823e3d90fd5b8580fd5b50346104bc57806003193601126104bc57602060ff600080516020611c1083398151915254166040519015158152f35b50346104bc57806003193601126104bc576002546040516001600160a01b039091168152602090f35b50346104bc57806003193601126104bc577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610cfd576020604051600080516020611bb08339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126104bc57610d216111a6565b6024359067ffffffffffffffff82116109cc57366023830112156109cc5781600401359083610d4f83611223565b93610d5d60405195866111eb565b838552602085019336602482840101116109cc57806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610f32575b50610f2357610dc061145c565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181610eef575b50610e0357634c9c8ce360e01b86526004859052602486fd5b9384600080516020611bb0833981519152879603610edd5750823b15610ecb57600080516020611bb083398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115610eb05761054f9382915190845af43d15610ea8573d91610e8c83611223565b92610e9a60405194856111eb565b83523d85602085013e611b0e565b606091611b0e565b5050505034610ebc5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011610f1b575b81610f0b602093836111eb565b810103126104b457519038610dea565b3d9150610efe565b63703e46dd60e11b8452600484fd5b600080516020611bb0833981519152546001600160a01b03161415905038610db3565b50346104bc57806003193601126104bc57610f6e6113ea565b600080516020611c108339815191525460ff811615610fc85760ff1916600080516020611c10833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346104bc5760403660031901126104bc57610ff16111c1565b336001600160a01b0382160361100d5761054f90600435611a40565b63334bd91960e11b8252600482fd5b50346104bc5760403660031901126104bc5761054f60043561103c6111c1565b906110496105458261126d565b61187d565b50346104bc5760203660031901126104bc57602061106d60043561126d565b604051908152f35b50346104bc57806003193601126104bc576001546040516001600160a01b039091168152602090f35b50346104bc57806003193601126104bc57546040516001600160a01b039091168152602090f35b50346104bc5760603660031901126104bc576110df6111a6565b7f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d560206024359261110e611360565b61111661139c565b61111e6114f9565b61112b6044358583611523565b6040519384526001600160a01b031692a26001600080516020611c308339815191525580f35b9050346109d45760203660031901126109d45760043563ffffffff60e01b81168091036109cc5760209250637965db0b60e01b8114908115611195575b5015158152f35b6301ffc9a760e01b1490503861118e565b600435906001600160a01b03821682036111bc57565b600080fd5b602435906001600160a01b03821682036111bc57565b35906001600160a01b03821682036111bc57565b90601f8019910116810190811067ffffffffffffffff82111761120d57604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161120d57601f01601f191660200190565b9181601f840112156111bc5782359167ffffffffffffffff83116111bc57602083818601950101116111bc57565b600052600080516020611bf083398151915260205260016040600020015490565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160a01b036112c0826111d7565b1682526001600160a01b036112d7602083016111d7565b166020830152604081013560408301526060810135601e19823603018112156111bc57016020813591019067ffffffffffffffff81116111bc5780360382136111bc5760808381606061132d960152019161128e565b90565b600167ffffffffffffffff19600080516020611c90833981519152541617600080516020611c9083398151915255565b6002600080516020611c30833981519152541461138b576002600080516020611c3083398151915255565b633ee5aeb560e01b60005260046000fd5b336000908152600080516020611c50833981519152602052604090205460ff16156113c357565b63e2517d3f60e01b60005233600452600080516020611bd083398151915260245260446000fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561142357565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff161561149557565b63e2517d3f60e01b60005233600452600060245260446000fd5b6000818152600080516020611bf08339815191526020908152604080832033845290915290205460ff16156114e15750565b63e2517d3f60e01b6000523360045260245260446000fd5b60ff600080516020611c10833981519152541661151257565b63d93c066560e01b60005260046000fd5b6001546040516318160ddd60e01b81526000949392916001600160a01b031690602081600481855afa908115610c3c5786916115e3575b5083018084116115cf57600354106115c057803b156104b857849291836064926040519687958694630f22c5f760e11b865260018060a01b03166004860152602485015260448401525af1801561084e576115b3575050565b816115bd916111eb565b50565b63c30436e960e01b8552600485fd5b634e487b7160e01b86526011600452602486fd5b90506020813d60201161160d575b816115fe602093836111eb565b81010312610c4757513861155a565b3d91506115f1565b6001600160a01b0381166000908152600080516020611c50833981519152602052604090205460ff1661169b576001600160a01b03166000818152600080516020611c5083398151915260205260408120805460ff19166001179055339190600080516020611bd083398151915290600080516020611b908339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020611c70833981519152602052604090205460ff1661169b576001600160a01b03166000818152600080516020611c7083398151915260205260408120805460ff19166001179055339190600080516020611b7083398151915290600080516020611b908339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1661169b576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff19166001179055339190600080516020611b908339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1661169b576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a90600080516020611b908339815191529080a4600190565b6000818152600080516020611bf0833981519152602090815260408083206001600160a01b038616845290915290205460ff1661190d576000818152600080516020611bf0833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff1916600117905533929190600080516020611b908339815191529080a4600190565b5050600090565b6001600160a01b0381166000908152600080516020611c50833981519152602052604090205460ff161561169b576001600160a01b03166000818152600080516020611c5083398151915260205260408120805460ff19169055339190600080516020611bd0833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381166000908152600080516020611c70833981519152602052604090205460ff161561169b576001600160a01b03166000818152600080516020611c7083398151915260205260408120805460ff19169055339190600080516020611b70833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020611bf0833981519152602090815260408083206001600160a01b038616845290915290205460ff161561190d576000818152600080516020611bf0833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b60ff600080516020611c908339815191525460401c1615611afd57565b631afcd79f60e31b60005260046000fd5b90611b345750805115611b2357805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611b66575b611b45575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15611b3d56fe0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00395f4e35a18c2b5e556b3b2ff855307e76c0b3cc1ca71e19a70e83037e08e7b37bdc20c26beb8eedd348733c28a5c4c2f7f7f1183cba8898195258fcdca273bcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212203f211d602b36c7fdf0f3b0fe8233e5a85a6bfca3cf4c804bfdd1d764320a84b564736f6c634300081a003360e0346100d757601f610bd638819003918201601f19168301916001600160401b038311848410176100dc578084926060946040528339810103126100d757610047816100f2565b906040610056602083016100f2565b9101519160805260a05260c052604051610acf90816101078239608051818181608a0152610196015260a05181818160dd0152818161070a015281816107e5015281816108990152818161094901526109f9015260c051818181604f0152818161076701528181610846015281816108f5015281816109ac0152610a530152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036100d75756fe6080604052600436106101815760003560e01c8063589dd5da1461007757806385e1f4d0146100375763ced52b4003610181576100c7565b346100725760003660031901126100725760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b600080fd5b34610072576000366003190112610072577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b600091031261007257565b34610072576000366003190112610072576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761013e57604052565b61010c565b90601f8019910116810190811067ffffffffffffffff82111761013e57604052565b67ffffffffffffffff811161013e57601f01601f191660200190565b600080604051368282378036810183815203907f00000000000000000000000000000000000000000000000000000000000000005af43d1561023c573d906101c882610165565b916101d66040519384610143565b82523d6000602084013e5b156101f7576101ef366106c3565b602081519101f35b60405162461bcd60e51b815260206004820152601b60248201527f476174657761792064656c656761746563616c6c206661696c656400000000006044820152606490fd5b6060906101e1565b906004116100725790600490565b909291928360041161007257831161007257600401916003190190565b356001600160e01b031981169291906004821061028a575050565b6001600160e01b031960049290920360031b82901b16169150565b6001600160a01b0381160361007257565b81601f82011215610072578035906102cd82610165565b926102db6040519485610143565b8284526020838301011161007257816000926020809301838601378301015290565b3590610308826102a5565b565b91909160a081840312610072576040519061032482610122565b81938135610331816102a5565b835260208201358015158103610072576020840152610352604083016102fd565b604084015260608201359167ffffffffffffffff83116100725761037c60809392849383016102b6565b60608501520135910152565b9160608383031261007257823561039e816102a5565b92602081013567ffffffffffffffff811161007257836103bf9183016102b6565b92604082013567ffffffffffffffff8111610072576103de920161030a565b90565b919082519283825260005b84811061040d575050826000602080949584010152601f8019910116010190565b806020809284010151828286010152016103ec565b9060018060a01b03825116815260208201511515602082015260018060a01b036040830151166040820152608080610469606085015160a0606086015260a08501906103e1565b93015191015290565b9081526001600160a01b0391821660208201529116604082015260a0606082018190526103de9391926104a7918401906103e1565b916080818403910152610422565b6040513d6000823e3d90fd5b91909160a0818403126100725780356104d9816102a5565b9260208201359260408301356104ee816102a5565b92606081013567ffffffffffffffff8111610072578361050f9183016102b6565b92608082013567ffffffffffffffff8111610072576103de920161030a565b9081526001600160a01b0391821660208201529116604082015260608101919091526000608082015260e060a082018190526103de939192610572918401906103e1565b9160c0818403910152610422565b9081526001600160a01b039182166020820152918116604083015260608201929092529116608082015260e060a082018190526103de939192610572918401906103e1565b906080828203126100725781356105db816102a5565b9260208301359260408101356105f0816102a5565b92606082013567ffffffffffffffff8111610072576103de920161030a565b9081526001600160a01b0391821660208201529116604082015260608101919091526000608082015260c060a082018190526103de92910190610422565b9081526001600160a01b039182166020820152918116604083015260608201929092529116608082015260c060a082018190526103de92910190610422565b9190916040818403126100725780356106a4816102a5565b92602082013567ffffffffffffffff8111610072576103de920161030a565b6106e16106d1826000610244565b6001600160e01b0319929161026f565b16631c9ab25f60e21b81036107ba575061070081610708926000610252565b81019061068c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169190823b156100725760405163ced6e79360e01b815292600092849283918591839161078f919034906001600160a01b0316337f00000000000000000000000000000000000000000000000000000000000000006004870161060f565b03925af180156107b5576107a05750565b806107af600061030893610143565b806100bc565b6104b5565b630102614b60e41b810361086e57506107d8816107e0926000610252565b8101906105c5565b9290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b156100725760405163ced6e79360e01b815294600094869485938793859361078f9391926001600160a01b0391821692909116337f00000000000000000000000000000000000000000000000000000000000000006004880161064d565b63744b9b8b60e01b810361091d575061088c81610894926000610252565b810190610388565b9091907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156100725760405163ad82a62760e01b815293600093859384928692849261078f92909134906001600160a01b0316337f00000000000000000000000000000000000000000000000000000000000000006004880161052e565b631a13c76f60e31b81036109d4575061093b81610943926000610252565b8101906104c1565b909391927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b156100725760405163ad82a62760e01b815295600095879586948894869461078f94919390926001600160a01b0392831692909116337f000000000000000000000000000000000000000000000000000000000000000060048901610580565b6306fb33ad60e21b146109e5575b50565b61088c816109f4926000610252565b9091907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b15610072576040516375e7f8e360e11b8152936000938593849286928492610a7b9290916001600160a01b0316337f000000000000000000000000000000000000000000000000000000000000000060048701610472565b03925af180156107b557156109e257806107af60006103089361014356fea2646970667358221220a71cbde33d0601ceacd47bd11f54cc311e513e7ffbb3ec6ec289e9912d3be94b64736f6c634300081a0033a2646970667358221220928d1f0cf196771916c55c50b6eab6883a793637fb05e7baf38f61f26998f5b164736f6c634300081a003360808060405234602f57600160ff19600c541617600c55600160ff19601f541617601f556165ab90816100358239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80631ed7831c146101275780632ade3880146101225780633693a15a1461011d5780633e5e3c23146101185780633f7286f41461011357806351976f441461010e57806366d9a9a01461010957806385226c8114610104578063916a17c6146100ff578063a0d788b7146100fa578063b0464fdc146100f5578063b5508aa9146100f0578063ba414fa6146100eb578063c986b404146100e6578063e20c9f71146100e1578063e2624fa4146100dc5763fa7626d4146100d757600080fd5b61142f565b61136b565b611229565b611116565b611017565b610f8a565b610ede565b610e7e565b610dd2565b610ccd565b610bc1565b610777565b6106e6565b610666565b6105e8565b61031f565b61017f565b600091031261013757565b600080fd5b602060408183019282815284518094520192019060005b8181106101605750505090565b82516001600160a01b0316845260209384019390920191600101610153565b346101375760003660031901126101375760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b8181106101f0576101ec856101e0818703826104c7565b6040519182918261013c565b0390f35b82546001600160a01b03168452602090930192600192830192016101c9565b60005b8381106102225750506000910152565b8181015183820152602001610212565b9060209161024b8151809281855285808601910161020f565b601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061028a57505050505090565b9091929394603f198282030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b85010194019260005b8281106102f45750505050506020806001929701930193019193929061027b565b9091929394602080610312600193605f198782030189528951610232565b97019501939291016102d3565b3461013757600036600319011261013757601e5461033c81611452565b9061034a60405192836104c7565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061039057604051806101ec8782610257565b600260206001926040516103a381610471565b848060a01b0386541681526103b9858701611469565b8382015281520192019201919061037b565b634e487b7160e01b600052603260045260246000fd5b6020548110156104005760206000526006602060002091020190600090565b6103cb565b8054821015610400576000526006602060002091020190600090565b90600182811c92168015610451575b602083101461043b57565b634e487b7160e01b600052602260045260246000fd5b91607f1691610430565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761048c57604052565b61045b565b60e081019081106001600160401b0382111761048c57604052565b60a081019081106001600160401b0382111761048c57604052565b90601f801991011681019081106001600160401b0382111761048c57604052565b90604051918260008254926104fc84610421565b808452936001811690811561056a5750600114610523575b50610521925003836104c7565b565b90506000929192526020600020906000915b81831061054e5750509060206105219282010138610514565b6020919350806001915483858901015201910190918492610535565b90506020925061052194915060ff191682840152151560051b82010138610514565b9591936105c760c09699989460ff966105d59460018060a01b03168a5260018060a01b031660208a015260e060408a015260e0890190610232565b908782036060890152610232565b966080860152151560a085015216910152565b34610137576020366003190112610137576004356020548110156101375761060f906103e1565b50805460018201546001600160a01b03918216929116906101ec90610636600282016104e8565b93610643600383016104e8565b91600560048201549101549260405196879660ff808760081c169616948861058c565b346101375760003660031901126101375760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b8181106106c7576101ec856101e0818703826104c7565b82546001600160a01b03168452602090930192600192830192016106b0565b346101375760003660031901126101375760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b818110610747576101ec856101e0818703826104c7565b82546001600160a01b0316845260209093019260019283019201610730565b6001600160a01b0381160361013757565b346101375760403660031901126101375760043561079481610766565b602435906107a182610766565b6000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b0382166004820152600081602481836000805160206165568339815191525af18015610a8557610aee575b506040516360f9bb1160e01b815260206004820152603960248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76322d636f72652f627560448201527f696c642f556e69737761705632466163746f72792e6a736f6e0000000000000060648201526000816084816000805160206165568339815191525afa908115610a85576108a4916000918291610ab3575b5060405180938192631fb2437d60e31b83526004830161152b565b03816000805160206165568339815191525afa8015610a8557610903926108f092600092610acd575b50604080516001600160a01b03909216602083015290926108fe91849190820190565b03601f1981018452836104c7565b612d93565b6040516360f9bb1160e01b815260206004820152603f60248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76322d7065726970686560448201527f72792f6275696c642f556e69737761705632526f7574657230322e6a736f6e0060648201529091906000816084816000805160206165568339815191525afa908115610a85576109b3916000918291610ab3575060405180938192631fb2437d60e31b83526004830161152b565b03816000805160206165568339815191525afa8015610a8557610a06926108f092600092610a8a575b50604080516001600160a01b03808816602083015290921690820152916108fe9083906060820190565b906000805160206165568339815191523b15610137576040516390c5013b60e01b8152600081600481836000805160206165568339815191525af18015610a8557610a6a575b50604080516001600160a01b03928316815292909116602083015290f35b80610a796000610a7f936104c7565b8061012c565b38610a4c565b6114c1565b6108fe919250610aac903d806000833e610aa481836104c7565b8101906114cd565b91906109dc565b610ac791503d8084833e610aa481836104c7565b38610889565b6108fe919250610ae7903d806000833e610aa481836104c7565b91906108cd565b80610a796000610afd936104c7565b386107f5565b906020808351928381520192019060005b818110610b215750505090565b82516001600160e01b031916845260209384019390920191600101610b14565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610b7457505050505090565b9091929394602080610bb2600193603f1986820301875289519083610ba28351604084526040840190610232565b9201519084818403910152610b03565b97019301930191939290610b65565b3461013757600036600319011261013757601b54610bde81611452565b90610bec60405192836104c7565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b838310610c3257604051806101ec8782610b41565b60026020600192604051610c4581610471565b610c4e866104e8565b8152610c5b85870161156b565b83820152815201920192019190610c1d565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610ca057505050505090565b9091929394602080610cbe600193603f198682030187528951610232565b97019301930191939290610c91565b3461013757600036600319011261013757601a54610cea81611452565b90610cf860405192836104c7565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310610d3d57604051806101ec8782610c6d565b600160208192610d4c856104e8565b815201920192019190610d28565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610d8d57505050505090565b9091929394602080610dc3600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610b03565b97019301930191939290610d7e565b3461013757600036600319011261013757601d54610def81611452565b90610dfd60405192836104c7565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b838310610e4357604051806101ec8782610d5a565b60026020600192604051610e5681610471565b848060a01b038654168152610e6c85870161156b565b83820152815201920192019190610e2e565b346101375760e036600319011261013757610edc600435610e9e81610766565b602435610eaa81610766565b604435610eb681610766565b606435610ec281610766565b60843591610ecf83610766565b60a4359360c4359561180a565b005b3461013757600036600319011261013757601c54610efb81611452565b90610f0960405192836104c7565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b838310610f4f57604051806101ec8782610d5a565b60026020600192604051610f6281610471565b848060a01b038654168152610f7885870161156b565b83820152815201920192019190610f3a565b3461013757600036600319011261013757601954610fa781611452565b90610fb560405192836104c7565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b838310610ffa57604051806101ec8782610c6d565b600160208192611009856104e8565b815201920192019190610fe5565b34610137576000366003190112610137576020611032611ae3565b6040519015158152f35b906110b39060018060a01b03835116815260018060a01b03602084015116602082015260c08061109061107e604087015160e0604087015260e0860190610232565b60608701518582036060870152610232565b946080810151608085015260a0810151151560a0850152015191019060ff169052565b90565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106110e957505050505090565b9091929394602080611107600193603f19868203018752895161103c565b970193019301919392906110da565b346101375760003660031901126101375760205461113381611452565b9061114160405192836104c7565b8082526020820160206000527fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb6000915b83831061118757604051806101ec87826110b6565b6006602060019260405161119a81610491565b855460a086901b869003166001600160a01b0390811682528587015416838201526111c7600287016104e8565b60408201526111d8600387016104e8565b60608201526004860154608082015261121b61121160058801546112086111ff8260ff1690565b151560a0860152565b60081c60ff1690565b60ff1660c0830152565b815201920192019190611172565b346101375760003660031901126101375760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b81811061128a576101ec856101e0818703826104c7565b82546001600160a01b0316845260209093019260019283019201611273565b6040519061052160e0836104c7565b60405190610521610160836104c7565b6001600160401b03811161048c57601f01601f191660200190565b81601f82011215610137578035906112fa826112c8565b9261130860405194856104c7565b8284526020838301011161013757816000926020809301838601378301015290565b8015150361013757565b60c435906105218261132a565b60ff81160361013757565b610104359061052182611341565b9060206110b392818152019061103c565b3461013757366003190161012081126101375760a01361013757604051611391816104ac565b60043561139d81610766565b81526024356113ab81610766565b60208201526044356113bc81610766565b60408201526064356113cd81610766565b60608201526084356113de81610766565b608082015260a4356001600160401b038111610137576101ec916114096114239236906004016112e3565b611411611334565b60e4359161141d61134c565b9361202b565b6040519182918261135a565b3461013757600036600319011261013757602060ff601f54166040519015158152f35b6001600160401b03811161048c5760051b60200190565b90815461147581611452565b9261148360405194856104c7565b818452602084019060005260206000206000915b8383106114a45750505050565b6001602081926114b3856104e8565b815201920192019190611497565b6040513d6000823e3d90fd5b602081830312610137578051906001600160401b038211610137570181601f820112156101375760208151910190611504816112c8565b9261151260405194856104c7565b81845281830111610137576110b391602084019061020f565b61153d60409283835283830190610232565b90602081830391015260148152730b995d9b4b989e5d1958dbd9194b9bd89a9958dd60621b60208201520190565b6040518154808252909291839061158b6020830191600052602060002090565b926000905b8060078301106116d3576105219454918181106116b4575b818110611695575b818110611676575b818110611657575b818110611638575b818110611619575b8181106115fb575b106115e6575b5003836104c7565b6001600160e01b0319168152602001386115de565b602083811b6001600160e01b031916855290936001910193016115d8565b604083901b6001600160e01b03191684529260019060200193016115d0565b606083901b6001600160e01b03191684529260019060200193016115c8565b608083901b6001600160e01b03191684529260019060200193016115c0565b60a083901b6001600160e01b03191684529260019060200193016115b8565b60c083901b6001600160e01b03191684529260019060200193016115b0565b6001600160e01b031960e084901b1684529260019060200193016115a8565b91600891935061010060019161178287546116f9838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b019401920185929391611590565b519061052182610766565b9081602091031261013757516110b381610766565b9081602091031261013757516110b38161132a565b634e487b7160e01b600052601160045260246000fd5b9061038482018092116117ea57565b6117c5565b90816060910312610137578051916040602083015192015190565b9291909493946000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b0387166004820152600081602481836000805160206165568339815191525af18015610a8557611abf575b506040516364e329cb60e11b81526001600160a01b0383811660048301528481166024830152909160209183916044918391600091165af18015610a8557611a92575b5060405163095ea7b360e01b81526001600160a01b0384166004820152602481018590526020818060448101038160006001600160a01b0387165af18015610a8557611a75575b5060405163095ea7b360e01b81526001600160a01b038416600482015260248101879052906020828060448101038160006001600160a01b0388165af18015610a85576060966000936119aa92611a48575b5061194a426117db565b60405162e8e33760e81b81526001600160a01b03948516600482015295841660248701526044860197909752606485019890985260006084850181905260a4850152961660c483015260e482019390935293849283918290610104820190565b03926001600160a01b03165af18015610a8557611a19575b506000805160206165568339815191523b15610137576040516390c5013b60e01b8152600081600481836000805160206165568339815191525af18015610a8557611a0a5750565b80610a796000610521936104c7565b611a3a9060603d606011611a41575b611a3281836104c7565b8101906117ef565b50506119c2565b503d611a28565b611a699060203d602011611a6e575b611a6181836104c7565b8101906117b0565b611940565b503d611a57565b611a8d9060203d602011611a6e57611a6181836104c7565b6118ee565b611ab39060203d602011611ab8575b611aab81836104c7565b81019061179b565b6118a7565b503d611aa1565b80610a796000611ace936104c7565b38611864565b90816020910312610137575190565b60085460ff168015611af25790565b50604051630667f9d760e41b8152600080516020616556833981519152600482018190526519985a5b195960d21b6024830152602090829060449082905afa908115610a8557600091611b46575b50151590565b611b68915060203d602011611b6e575b611b6081836104c7565b810190611ad4565b38611b40565b503d611b56565b60405190611b8282610491565b600060c083828152826020820152606060408201526060808201528260808201528260a08201520152565b60405190611bba82610491565b600060c08360608152606060208201528260408201528260608201528260808201528260a08201520152565b90611bf96020928281519485920161020f565b0190565b60031115611c0757565b634e487b7160e01b600052602160045260246000fd5b6003821015611c075752565b959297969391611c5790611c4960ff936101008a526101008a0190610232565b9088820360208a0152610232565b9716604086015260608501526003831015611c07576080840192909252600160a08401526001600160a01b0391821660c08401521660e090910152565b15611c9b57565b60405162461bcd60e51b815260206004820152602260248201527f476174657761792045564d206e6f742073657420666f7220746869732063686160448201526134b760f11b6064820152608490fd5b9081602091031261013757516110b381611341565b60ff16604d81116117ea57600a0a90565b90816402540be40002916402540be4008304036117ea57565b90816064029160648304036117ea57565b9081620f42400291620f42408304036117ea57565b601f8211611d5d57505050565b6000526020600020906020601f840160051c83019310611d98575b601f0160051c01905b818110611d8c575050565b60008155600101611d81565b9091508190611d78565b91909182516001600160401b03811161048c57611dc981611dc38454610421565b84611d50565b6020601f8211600114611e0a578190611dfb939495600092611dff575b50508160011b916000199060031b1c19161790565b9055565b015190503880611de6565b601f19821690611e1f84600052602060002090565b9160005b818110611e5b57509583600195969710611e42575b505050811b019055565b015160001960f88460031b161c19169055388080611e38565b9192602060018192868b015181550194019201611e23565b6020546801000000000000000081101561048c57806001611e9992016020556020610405565b61201557815181546001600160a01b039182166001600160a01b031991821617835560208401516001840180549190931691161790556040820151805160028301916001600160401b03821161048c57611efd82611ef78554610421565b85611d50565b602090601f8311600114611f9a5793611f8593611f3b8460c0956005956105219a99600092611dff5750508160011b916000199060031b1c19161790565b90555b611f4f606086015160038301611da2565b608085015160048201550192611f7d611f6b60a0830151151590565b859060ff801983541691151516179055565b015160ff1690565b61ff0082549160081b169061ff001916179055565b90601f19831691611fb085600052602060002090565b9260005b818110611ffd575084600594610521999894611f85989460c09860019510611fe4575b505050811b019055611f3e565b015160001960f88460031b161c19169055388080611fd7565b92936020600181928786015181550195019301611fb4565b634e487b7160e01b600052600060045260246000fd5b9391929092612038611b75565b50612041611bad565b60405163348051d760e11b8152600481018490529092906000816024816000805160206165568339815191525afa908115610a85576120c3916120d191600091612d78575b506040516602d2921969918160cd1b60208201529283916120bd6120ad602785018c611be6565b6301037b7160e51b815260040190565b90611be6565b03601f1981018352826104c7565b83526040516405a524332360dc1b60208201526120f5816120c36025820189611be6565b602084019081528215612d715760015b612113604086019182611c1d565b8451915190519161212383611bfd565b8851600490602090612145906001600160a01b03165b6001600160a01b031690565b60405163bb88b76960e01b815292839182905afa8015610a8557600491600091612d52575b508a51602090612182906001600160a01b0316612139565b604051633c12ad4d60e21b815293849182905afa918215610a8557600092612d31575b50604051946118e592838701938785106001600160401b0386111761048c5787966121e2968a938e93614c718b396001600160a01b031696611c29565b03906000f0948515610a85576001600160a01b03909516606084019081529460808401966000885283600014612c9857805160049060209061222c906001600160a01b0316612139565b604051630f39296f60e21b815292839182905afa908115610a8557600091612c79575b506000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03919091166004820152600081602481836000805160206165568339815191525af18015610a8557612c64575b5080516004906020906122c1906001600160a01b0316612139565b60405163bb88b76960e01b815292839182905afa908115610a8557600091612c45575b5087516001600160a01b03918216916122fd9116612139565b90803b15610137576040516377140add60e11b8152600481018690526001600160a01b039290921660248301526000908290604490829084905af18015610a8557612c30575b50805160049060209061235e906001600160a01b0316612139565b60405163bb88b76960e01b815292839182905afa908115610a8557600091612c11575b506001600160a01b0316803b156101375760405163a7cb050760e01b815260048101859052633b9aca006024820152906000908290604490829084905af18015610a8557612bfc575b506000805160206165568339815191523b15610137576040516390c5013b60e01b8152600081600481836000805160206165568339815191525af18015610a8557612be7575b505b8651612426906001600160a01b0316612139565b6060820180519091906001600160a01b031660405163313ce56760e01b8152602081600481865afa908115610a85576124709161246b91600091612b84575b50611d00565b611d11565b823b15610137576040516340c10f1960e01b81526001600160a01b039290921660048301526024820152906000908290604490829084905af18015610a8557612bd2575b5087516124c9906001600160a01b0316612139565b82516004906020906124e3906001600160a01b0316612139565b604051630f39296f60e21b815292839182905afa908115610a8557600091612bb3575b508951600490602090612521906001600160a01b0316612139565b60405163313ce56760e01b815292839182905afa908115610a85576125519161246b91600091612b845750611d00565b823b15610137576040516340c10f1960e01b81526001600160a01b039290921660048301526024820152906000908290604490829084905af18015610a8557612b6f575b5080516001600160a01b03166000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03919091166004820152600081602481836000805160206165568339815191525af18015610a8557612b5a575b5080516001600160a01b03166000805160206165568339815191523b156101375760405163c88a5e6d60e01b81526001600160a01b0391909116600482015269d3c21bcecceda10000006024820152600081604481836000805160206165568339815191525af18015610a8557612b45575b508151600490602090612684906001600160a01b0316612139565b604051620b9ea360e11b815292839182905afa908115610a8557600091612b26575b506001600160a01b0316803b15610137576000683635c9adc5dea0000091600460405180948193630d0e30db60e41b83525af18015610a8557612b11575b506126f66126f188611d00565b611d2a565b60a0870190815260c087019068056bc75e2d63100000825260046020612725612139875160018060a01b031690565b604051630b4a282f60e11b815292839182905afa8015610a8557600491600091612af2575b508551602090612762906001600160a01b0316612139565b6040516359d0f71360e01b815293849182905afa8015610a85578c600493600092612ac9575b505161279c906001600160a01b0316612139565b87516020906127b3906001600160a01b0316612139565b604051620b9ea360e11b815295869182905afa928315610a85576127fa94600094612aa8575b5087516001600160a01b03169186519388519560018060a01b03169261180a565b8951600490612811906001600160a01b0316612139565b855190949060209061282b906001600160a01b0316612139565b604051620b9ea360e11b815293849182905afa908115610a8557600492600092612a83575b50516001600160a01b03165b92519351865190969060209061287a906001600160a01b0316612139565b604051632daa48c160e11b815294859182905afa908115610a8557600493600092612a59575b50516020906128b7906001600160a01b0316612139565b60405163342a30c360e01b815294859182905afa908115610a8557612958976129539661294395600094612a32575b5061291961293394956129096128fa6112a9565b6001600160a01b03909c168c52565b6001600160a01b031660208b0152565b604089015260608801526001600160a01b03166080870152565b6001600160a01b031660a0850152565b6001600160a01b031660c0830152565b613394565b6000805160206165568339815191523b15610137576040516390c5013b60e01b815293600085600481836000805160206165568339815191525af18015610a85576129cf6129c1612139612a149a611211996129fc95612a1d575b50516001600160a01b031690565b99516001600160a01b031690565b9151916129ec6129dd6112a9565b6001600160a01b03909b168b52565b6001600160a01b031660208a0152565b604088015260608701526080860152151560a0850152565b6110b381611e73565b80610a796000612a2c936104c7565b386129b3565b6129339450612a526129199160203d602011611ab857611aab81836104c7565b94506128e6565b6020919250612139612a7a6128b792843d8611611ab857611aab81836104c7565b939250506128a0565b61285c919250612aa19060203d602011611ab857611aab81836104c7565b9190612850565b612ac291945060203d602011611ab857611aab81836104c7565b92386127d9565b61279c919250612aea6121399160203d602011611ab857611aab81836104c7565b929150612788565b612b0b915060203d602011611ab857611aab81836104c7565b3861274a565b80610a796000612b20936104c7565b386126e4565b612b3f915060203d602011611ab857611aab81836104c7565b386126a6565b80610a796000612b54936104c7565b38612669565b80610a796000612b69936104c7565b386125f7565b80610a796000612b7e936104c7565b38612595565b612ba6915060203d602011612bac575b612b9e81836104c7565b810190611ceb565b38612465565b503d612b94565b612bcc915060203d602011611ab857611aab81836104c7565b38612506565b80610a796000612be1936104c7565b386124b4565b80610a796000612bf6936104c7565b38612410565b80610a796000612c0b936104c7565b386123ca565b612c2a915060203d602011611ab857611aab81836104c7565b38612381565b80610a796000612c3f936104c7565b38612343565b612c5e915060203d602011611ab857611aab81836104c7565b386122e4565b80610a796000612c73936104c7565b386122a6565b612c92915060203d602011611ab857611aab81836104c7565b3861224f565b6020810151612caf906001600160a01b0316612139565b604051621ac49360e31b81526004810185905290602090829060249082905afa8015610a8557612cf291600091612d12575b506001600160a01b03161515611c94565b612d0d612d00838584612e19565b6001600160a01b03168952565b612412565b612d2b915060203d602011611ab857611aab81836104c7565b38612ce1565b612d4b91925060203d602011611ab857611aab81836104c7565b90386121a5565b612d6b915060203d602011611ab857611aab81836104c7565b3861216a565b6002612105565b612d8d91503d806000833e610aa481836104c7565b38612086565b90612dd860209160405192839181612db4818501978881519384920161020f565b8301612dc88251809385808501910161020f565b010103601f1981018352826104c7565b51906000f090811561013757565b9091612dfd6110b393604084526040840190610232565b916020818403910152610232565b604d81116117ea57600a0a90565b9160405190610b5990818301908382106001600160401b0383111761048c5780612e499285946141188639612de6565b03906000f08015610a855760405163313ce56760e01b81526001600160a01b03919091169290602081600481875afa8015610a855760ff91600091613358575b506060830180519092909116906001600160a01b03166000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03919091166004820152600081602481836000805160206165568339815191525af18015610a8557613343575b50602083018051909390612f11906001600160a01b0316612139565b60405163ad8414bf60e01b81526004810187905290602090829060249082905afa908115610a8557612f7a91602091600091613326575b5060405163095ea7b360e01b81526001600160a01b039091166004820152600019602482015291829081906044820190565b038160008b5af18015610a8557613309575b508351612fa1906001600160a01b0316612139565b60405163ad8414bf60e01b8152600481018790529190602090839060249082905afa918215610a85576000926132e8575b50612fe4612fdf84612e0b565b611d3b565b91873b15610137576040516340c10f1960e01b81526001600160a01b039190911660048201526024810192909252600082604481838b5af1918215610a85576080926132d3575b500180519092906001600160a01b0316613047612fdf84612e0b565b90873b15610137576040516340c10f1960e01b81526001600160a01b039190911660048201526024810191909152600081604481838b5af18015610a85576130a992612fdf926130a392612a1d5750516001600160a01b031690565b92612e0b565b90853b15610137576040516340c10f1960e01b81526001600160a01b03919091166004820152602481019190915260008160448183895af18015610a85576132be575b506000805160206165568339815191523b15610137576040516390c5013b60e01b815290600082600481836000805160206165568339815191525af1918215610a855761314592612a1d5750516001600160a01b031690565b916000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03939093166004840152600083602481836000805160206165568339815191525af1928315610a85576121396020936131b8926131d896612a1d5750516001600160a01b031690565b604051808095819463ad8414bf60e01b8352600483019190602083019252565b03915afa908115610a855760009161329f575b506001600160a01b0316803b1561013757604051634d8c928d60e11b81526001600160a01b0383166004820152906000908290602490829084905af18015610a855761328a575b506000805160206165568339815191523b15610137576040516390c5013b60e01b8152600081600481836000805160206165568339815191525af18015610a855761327b575090565b80610a7960006110b3936104c7565b80610a796000613299936104c7565b38613232565b6132b8915060203d602011611ab857611aab81836104c7565b386131eb565b80610a7960006132cd936104c7565b386130ec565b80610a7960006132e2936104c7565b3861302b565b61330291925060203d602011611ab857611aab81836104c7565b9038612fd2565b6133219060203d602011611a6e57611a6181836104c7565b612f8c565b61333d9150823d8411611ab857611aab81836104c7565b38612f48565b80610a796000613352936104c7565b38612ef5565b613371915060203d602011612bac57612b9e81836104c7565b38612e89565b1561337e57565b634e487b7160e01b600052600160045260246000fd5b60c0810180519091906001600160a01b03166000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03919091166004820152600081602481836000805160206165568339815191525af18015610a855761365e575b50805161341390612139906001600160a01b031681565b60a08201805160408085018051915163095ea7b360e01b81526001600160a01b0390931660048401526024830191909152949192602090829060449082906000905af18015610a8557613641575b5060208301805190929061347f90612139906001600160a01b031681565b815160608601805160405163095ea7b360e01b81526001600160a01b03909316600484015260248301529691602090829060449082906000905af18015610a8557613624575b50845184516001600160a01b0391821691168082116135f6575b505060808501516001600160a01b031685516001600160a01b031685516001600160a01b03169061350f926136cb565b956135246001600160a01b0388161515613377565b82516001600160a01b031686519092906001600160a01b031686519092906001600160a01b03169151905186519092906001600160a01b03169361356795613834565b93516001600160a01b031692516001600160a01b031690516001600160a01b031691516001600160a01b03169261359c6112a9565b6001600160a01b0390961686526001600160a01b031660208601526001600160a01b031660408501526001600160a01b031660608401526001600160a01b0316608083015260a0820152600060c08201526119c290613c54565b6001600160a01b039091168552613615905b6001600160a01b03168652565b855181518752815238806134df565b61363c9060203d602011611a6e57611a6181836104c7565b6134c5565b6136599060203d602011611a6e57611a6181836104c7565b613461565b80610a79600061366d936104c7565b386133fc565b1561367a57565b60405162461bcd60e51b815260206004820152602360248201527f556e6973776170563353657475704c69623a20506f6f6c206e6f7420637265616044820152621d195960ea1b6064820152608490fd5b60405163a167129560e01b81526001600160a01b0383811660048301528481166024830152610bb8604483015290949391166020856064816000855af1928315610a8557613758956020946137dc575b50604051630b4c774160e11b81526001600160a01b03918216600482015292166024830152610bb860448301529093849190829081906064820190565b03915afa918215610a85576000926137bb575b506001600160a01b038216613781811515613673565b803b156101375760405163f637731d60e01b8152600160601b6004820152906000908290602490829084905af18015610a8557611a0a5750565b6137d591925060203d602011611ab857611aab81836104c7565b903861376b565b6137f290853d8711611ab857611aab81836104c7565b61371b565b51906001600160801b038216820361013757565b919082608091031261013757815191613826602082016137f7565b916060604083015192015190565b916138bd6000966080966139699661387961384e426117db565b9561386961385a6112b8565b6001600160a01b039099168952565b6001600160a01b03166020880152565b610bb86040870152620d89b3196060870152620d89b4868a015260a086015260c085015260e0840188905261010084018890526001600160a01b0316610120840152565b610140820190815260408051634418b22b60e11b815283516001600160a01b0390811660048301526020850151811660248301529184015162ffffff1660448201526060840151600290810b60648301526080850151900b608482015260a084015160a482015260c084015160c482015260e084015160e48201526101008401516101048201526101209093015116610124830152516101448201529384928391908290610164820190565b03926001600160a01b03165af1908115610a8557600091613988575090565b6139aa915060803d6080116139b0575b6139a281836104c7565b81019061380b565b50505090565b503d613998565b6040519061018082018281106001600160401b0382111761048c576040526000610160838281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015282610120820152826101408201520152565b90816020910312610137576110b3906137f7565b15613a3c57565b60405162461bcd60e51b8152602060048201526015602482015274506f6f6c20686173206e6f206c697175696469747960581b6044820152606490fd5b51908160020b820361013757565b519061ffff8216820361013757565b908160e0910312610137578051613aac81610766565b91613ab960208301613a79565b91613ac660408201613a87565b91613ad360608301613a87565b91613ae060808201613a87565b9160c060a0830151613af181611341565b9201516110b38161132a565b15613b0457565b60405162461bcd60e51b81526020600482015260116024820152700556e657870656374656420746f6b656e3607c1b6044820152606490fd5b15613b4457565b60405162461bcd60e51b8152602060048201526011602482015270556e657870656374656420746f6b656e3160781b6044820152606490fd5b15613b8457565b60405162461bcd60e51b815260206004820152601960248201527f506f736974696f6e20686173206e6f206c6971756964697479000000000000006044820152606490fd5b15613bd057565b60405162461bcd60e51b815260206004820152601860248201527f506f736974696f6e20746f6b656e73206d69736d6174636800000000000000006044820152606490fd5b15613c1c57565b60405162461bcd60e51b815260206004820152601060248201526f2ab732bc3832b1ba32b21037bbb732b960811b6044820152606490fd5b90613c5d6139b7565b8251909290613c74906001600160a01b0316612139565b6060820151909190613c8e906001600160a01b0316612139565b604051630d34328160e11b815290926001600160a01b03169190602081600481865afa8015610a8557613ce36001600160801b0391613ceb93600091613fc4575b506001600160801b03166060890181905290565b161515613a35565b604051633850c7bd60e01b815260e081600481865afa908115610a8557613d2591600091600091613f88575b5060020b6020880152613608565b604051630dfe168160e01b815291602083600481845afa908115610a8557600493600092613f66575b506001600160a01b03909116608087019081529060209060405163d21220a760e01b815294859182905afa928315610a8557600093613f45575b506001600160a01b0392831660a08701908152815160208401519194613db2928116911614613afd565b82516040830151613dd0916001600160a01b03918216911614613b3d565b60a08201938451613de19082614003565b6001600160801b031660c08c019081526101008c01969460e08d0194919390928d6101400190613e13919060020b9052565b60020b6101208d01526001600160a01b03908116875216825251613e41906001600160801b03161515613b7d565b519051613e9195602094613e6e936001600160a01b039384169316929092149182613f18575b5050613bc9565b84519060405180809681946331a9108f60e11b8352600483019190602083019252565b03916001600160a01b03165afa8015610a85576121396080613ed0613edf93613ef096600091613ef9575b506001600160a01b031660408a0181905290565b9301516001600160a01b031690565b6001600160a01b0390911614613c15565b51610160830152565b613f12915060203d602011611ab857611aab81836104c7565b38613ebc565b5190516001600160a01b039182169250613f329116612139565b6001600160a01b03909116143880613e67565b613f5f91935060203d602011611ab857611aab81836104c7565b9138613d88565b6020919250613f8190823d8411611ab857611aab81836104c7565b9190613d4e565b6136089250613faf915060e03d60e011613fbd575b613fa781836104c7565b810190613a96565b505050505091909190613d17565b503d613f9d565b613fe6915060203d602011613fec575b613fde81836104c7565b810190613a21565b38613ccf565b503d613fd4565b519062ffffff8216820361013757565b60405163133f757160e31b8152600481019290925261018090829060249082906001600160a01b03165afa908115610a8557600091829183918491859161404d575b509091929394565b949350505050610180823d821161410f575b8161406d61018093836104c7565b8101031261410c5781516bffffffffffffffffffffffff81160361410c575061409860208201611790565b506140a560408201611790565b906140b260608201611790565b916140bf60808301613ff3565b506140cc60a08301613a79565b916140d960c08201613a79565b916141016101606140ec60e085016137f7565b936140fa61014082016137f7565b50016137f7565b509392919038614045565b80fd5b3d915061405f56fe60806040523461032457610b598038038061001981610329565b9283398101906040818303126103245780516001600160401b038111610324578261004591830161034e565b60208201519092906001600160401b03811161032457610065920161034e565b81516001600160401b03811161022f57600354600181811c9116801561031a575b602082101461020f57601f81116102b5575b50602092601f82116001146102505792819293600092610245575b50508160011b916000199060031b1c1916176003555b80516001600160401b03811161022f57600454600181811c91168015610225575b602082101461020f57601f81116101aa575b50602091601f82116001146101465791819260009261013b575b50508160011b916000199060031b1c1916176004555b60405161079f90816103ba8239f35b015190503880610116565b601f198216926004600052806000209160005b85811061019257508360019510610179575b505050811b0160045561012c565b015160001960f88460031b161c1916905538808061016b565b91926020600181928685015181550194019201610159565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c81019160208410610205575b601f0160051c01905b8181106101f957506100fc565b600081556001016101ec565b90915081906101e3565b634e487b7160e01b600052602260045260246000fd5b90607f16906100ea565b634e487b7160e01b600052604160045260246000fd5b0151905038806100b3565b601f198216936003600052806000209160005b86811061029d5750836001959610610284575b505050811b016003556100c9565b015160001960f88460031b161c19169055388080610276565b91926020600181928685015181550194019201610263565b60036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c81019160208410610310575b601f0160051c01905b8181106103045750610098565b600081556001016102f7565b90915081906102ee565b90607f1690610086565b600080fd5b6040519190601f01601f191682016001600160401b0381118382101761022f57604052565b81601f82011215610324578051906001600160401b03821161022f5761037d601f8301601f1916602001610329565b92828452602083830101116103245760005b8281106103a457505060206000918301015290565b8060208092840101518282870101520161038f56fe608080604052600436101561001357600080fd5b60003560e01c90816306fdde031461058857508063095ea7b31461050257806318160ddd146104e457806323b872dd146103f7578063313ce567146103db57806340c10f191461032f57806370a08231146102f557806395d89b41146101d45780639dc29fac1461011f578063a9059cbb146100ee5763dd62ed3e1461009857600080fd5b346100e95760403660031901126100e9576100b16106a4565b6100b96106ba565b6001600160a01b039182166000908152600160209081526040808320949093168252928352819020549051908152f35b600080fd5b346100e95760403660031901126100e95761011461010a6106a4565b60243590336106d0565b602060405160018152f35b346100e95760403660031901126100e9576101386106a4565b6001600160a01b031660243581156101be576000908282528160205260408220548181106101a65760208285937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93869787528684520360408620558060025403600255604051908152a380f35b60649363391434e360e21b8452600452602452604452fd5b634b637e8f60e11b600052600060045260246000fd5b346100e95760003660031901126100e95760405160006004548060011c906001811680156102eb575b6020831081146102d7578285529081156102bb5750600114610264575b50819003601f01601f191681019067ffffffffffffffff82118183101761024e5761024a8291826040528261065b565b0390f35b634e487b7160e01b600052604160045260246000fd5b905060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b6000905b8282106102a55750602091508201018261021a565b6001816020925483858801015201910190610290565b90506020925060ff191682840152151560051b8201018261021a565b634e487b7160e01b84526022600452602484fd5b91607f16916101fd565b346100e95760203660031901126100e9576001600160a01b036103166106a4565b1660005260006020526020604060002054604051908152f35b346100e95760403660031901126100e9576103486106a4565b602435906001600160a01b031680156103c557600254918083018093116103af576020926002557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600093849284845283825260408420818154019055604051908152a380f35b634e487b7160e01b600052601160045260246000fd5b63ec442f0560e01b600052600060045260246000fd5b346100e95760003660031901126100e957602060405160128152f35b346100e95760603660031901126100e9576104106106a4565b6104186106ba565b6001600160a01b0382166000818152600160209081526040808320338452909152902054909260443592916000198110610458575b5061011493506106d0565b8381106104c75784156104b157331561049b57610114946000526001602052604060002060018060a01b033316600052602052836040600020910390558461044d565b634a1406b160e11b600052600060045260246000fd5b63e602df0560e01b600052600060045260246000fd5b8390637dc7a0d960e11b6000523360045260245260445260646000fd5b346100e95760003660031901126100e9576020600254604051908152f35b346100e95760403660031901126100e95761051b6106a4565b6024359033156104b1576001600160a01b031690811561049b57336000526001602052604060002082600052602052806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346100e95760003660031901126100e95760006003548060011c90600181168015610651575b6020831081146102d7578285529081156102bb57506001146105fa5750819003601f01601f191681019067ffffffffffffffff82118183101761024e5761024a8291826040528261065b565b905060036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b6000905b82821061063b5750602091508201018261021a565b6001816020925483858801015201910190610626565b91607f16916105ae565b91909160208152825180602083015260005b81811061068e575060409293506000838284010152601f8019910116010190565b806020809287010151604082860101520161066d565b600435906001600160a01b03821682036100e957565b602435906001600160a01b03821682036100e957565b6001600160a01b03169081156101be576001600160a01b03169182156103c557600082815280602052604081205482811061074f5791604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815280845220818154019055604051908152a3565b916064928463391434e360e21b8452600452602452604452fdfea2646970667358221220244a0a20c657fff7862703acb5cfe7ea7d2b0fc51d1a41b0a338be948dd8f1cf64736f6c634300081a003360c06040523461041a576118e5803803806100198161041f565b92833981016101008282031261041a5781516001600160401b03811161041a5781610045918401610444565b602083015190916001600160401b03821161041a57610065918401610444565b9160408101519160ff831680930361041a576060820151936080830151600381101561041a5760a0840151916100a960e06100a260c088016104af565b96016104af565b946001600160a01b03169384158015610409575b6103f8578051906001600160401b0382116102f55760065490600182811c921680156103ee575b60208310146102d55781601f84931161037e575b50602090601f83116001146103165760009261030b575b50508160011b916000199060031b1c1916176006555b8051906001600160401b0382116102f55760075490600182811c921680156102eb575b60208310146102d55781601f849311610265575b50602090601f83116001146101fd576000926101f2575b50508160011b916000199060031b1c1916176007555b6008549560805260a05260015560018060a01b03196000541617600055610100600160a81b039060081b169160018060a81b031916171760085560405161142190816104c4823960805181818161018101528181610b7b01526110d8015260a051816109fa0152f35b015190503880610173565b600760009081528281209350601f198516905b81811061024d5750908460019594939210610234575b505050811b01600755610189565b015160001960f88460031b161c19169055388080610226565b92936020600181928786015181550195019301610210565b60076000529091507fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688601f840160051c810191602085106102cb575b90601f859493920160051c01905b8181106102bc575061015c565b600081558493506001016102af565b90915081906102a1565b634e487b7160e01b600052602260045260246000fd5b91607f1691610148565b634e487b7160e01b600052604160045260246000fd5b01519050388061010f565b600660009081528281209350601f198516905b818110610366575090846001959493921061034d575b505050811b01600655610125565b015160001960f88460031b161c1916905538808061033f565b92936020600181928786015181550195019301610329565b60066000529091507ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f601f840160051c810191602085106103e4575b90601f859493920160051c01905b8181106103d557506100f8565b600081558493506001016103c8565b90915081906103ba565b91607f16916100e4565b63d92e233d60e01b60005260046000fd5b506001600160a01b038616156100bd565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176102f557604052565b81601f8201121561041a578051906001600160401b0382116102f557610473601f8301601f191660200161041f565b928284526020838301011161041a5760005b82811061049a57505060206000918301015290565b80602080928401015182828701015201610485565b51906001600160a01b038216820361041a5756fe608080604052600436101561001357600080fd5b60003560e01c90816306fdde0314610e8157508063091d278814610e63578063095ea7b314610e3d57806318160ddd14610e1f57806323b872dd14610d9e578063313ce56714610d7d5780633ce4a5bc14610d4e57806340c10f1914610d2957806342966c6814610d0c57806347e7ef2414610bf65780634d8943bb14610bd857806370a0823114610b9e57806385e1f4d014610b635780638b851b9514610b3957806395d89b4114610a695780639dc29fac14610a42578063a3413d03146109e7578063a9059cbb146109b6578063b84c824614610851578063c47f0027146106d6578063c701262614610574578063c835d7cc146104eb578063ccc7759914610445578063d9eeebed1461042c578063dd62ed3e146103db578063eddeb1231461037b578063f2441b3214610352578063f687d12a146102e15763fc5fecd51461015e57600080fd5b346102dc5760203660031901126102dc57600054604051630be1554760e01b81527f00000000000000000000000000000000000000000000000000000000000000006004820181905290916001600160a01b031690602083602481855afa92831561028e576000936102ab575b506001600160a01b0383161561029a5760209060246040518094819363d7fd7afb60e01b835260048301525afa90811561028e57600091610259575b5080156102485761021e61022791600435906110a6565b600254906110b9565b604080516001600160a01b03939093168352602083019190915290f35b0390f35b630e661aed60e41b60005260046000fd5b906020823d602011610286575b8161027360209383610f82565b8101031261028357505138610207565b80fd5b3d9150610266565b6040513d6000823e3d90fd5b633c7ff9cb60e11b60005260046000fd5b6102ce91935060203d6020116102d5575b6102c68183610f82565b810190611087565b91386101cb565b503d6102bc565b600080fd5b346102dc5760203660031901126102dc5760043573735b14bb79463307aacbed86daf3322b1e6226ab3303610341576020817fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a92600155604051908152a1005b632b2add3d60e01b60005260046000fd5b346102dc5760003660031901126102dc576000546040516001600160a01b039091168152602090f35b346102dc5760203660031901126102dc5760043573735b14bb79463307aacbed86daf3322b1e6226ab3303610341576020817fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f92600255604051908152a1005b346102dc5760403660031901126102dc576103f4610f56565b6103fc610f6c565b6001600160a01b039182166000908152600460209081526040808320949093168252928352819020549051908152f35b346102dc5760003660031901126102dc576102276110c6565b346102dc5760203660031901126102dc5761045e610f56565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610341576001600160a01b0381169081156104da5760088054610100600160a81b03191691811b610100600160a81b03169190911790556040519081527f88815d964e380677e86d817e7d65dea59cb7b4c3b5b7a0c8ec7ea4a74f90a38790602090a1005b63d92e233d60e01b60005260046000fd5b346102dc5760203660031901126102dc57610504610f56565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610341576001600160a01b031680156104da576020817fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae926bffffffffffffffffffffffff60a01b6000541617600055604051908152a1005b346102dc5760403660031901126102dc5760043567ffffffffffffffff81116102dc57366023820112156102dc576105b6903690602481600401359101610fa4565b60206024359160006105c66110c6565b93906064604051809481936323b872dd60e01b835233600484015273735b14bb79463307aacbed86daf3322b1e6226ab602484015288604484015260018060a01b03165af190811561028e57600091610697575b5015610686577f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d9559161064c8433611331565b6002549061066560405193608085526080850190610f15565b946020840152604083015260608201528033930390a2602060405160018152f35b63053e6b6b60e11b60005260046000fd5b6020813d6020116106ce575b816106b060209383610f82565b810103126106ca575190811515820361028357508461061a565b5080fd5b3d91506106a3565b346102dc576106e436610feb565b73735b14bb79463307aacbed86daf3322b1e6226ab330361034157805167ffffffffffffffff811161083b5761071b60065461102a565b601f81116107ce575b50602091601f821160011461076257918192600092610757575b5050600019600383901b1c191660019190911b17600655005b01519050828061073e565b601f1982169260066000526000805160206113cc8339815191529160005b8581106107b65750836001951061079d575b505050811b01600655005b015160001960f88460031b161c19169055828080610792565b91926020600181928685015181550194019201610780565b6006600052601f820160051c6000805160206113cc833981519152019060208310610825575b601f0160051c6000805160206113cc83398151915201905b8181106108195750610724565b6000815560010161080c565b6000805160206113cc83398151915291506107f4565b634e487b7160e01b600052604160045260246000fd5b346102dc5761085f36610feb565b73735b14bb79463307aacbed86daf3322b1e6226ab330361034157805167ffffffffffffffff811161083b5761089660075461102a565b601f8111610949575b50602091601f82116001146108dd579181926000926108d2575b5050600019600383901b1c191660019190911b17600755005b0151905082806108b9565b601f1982169260076000526000805160206113ac8339815191529160005b85811061093157508360019510610918575b505050811b01600755005b015160001960f88460031b161c1916905582808061090d565b919260206001819286850151815501940192016108fb565b6007600052601f820160051c6000805160206113ac8339815191520190602083106109a0575b601f0160051c6000805160206113ac83398151915201905b818110610994575061089f565b60008155600101610987565b6000805160206113ac833981519152915061096f565b346102dc5760403660031901126102dc576109dc6109d2610f56565b6024359033611230565b602060405160018152f35b346102dc5760003660031901126102dc577f00000000000000000000000000000000000000000000000000000000000000006040516003821015610a2c576020918152f35b634e487b7160e01b600052602160045260246000fd5b346102dc5760403660031901126102dc57610a67610a5e610f56565b60243590611331565b005b346102dc5760003660031901126102dc576040516000600754610a8b8161102a565b8084529060018116908115610b155750600114610ac7575b61024483610ab381850382610f82565b604051918291602083526020830190610f15565b91905060076000526000805160206113ac833981519152916000905b808210610afb57509091508101602001610ab3610aa3565b919260018160209254838588010152019101909291610ae3565b60ff191660208086019190915291151560051b84019091019150610ab39050610aa3565b346102dc5760003660031901126102dc5760088054604051911c6001600160a01b03168152602090f35b346102dc5760003660031901126102dc5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346102dc5760203660031901126102dc576001600160a01b03610bbf610f56565b1660005260036020526020604060002054604051908152f35b346102dc5760003660031901126102dc576020600254604051908152f35b346102dc5760403660031901126102dc57610c0f610f56565b6024359073735b14bb79463307aacbed86daf3322b1e6226ab33141580610cf7575b80610cdf575b610cce57610cae81610c6a847f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab3946112d6565b60405173735b14bb79463307aacbed86daf3322b1e6226ab60601b60208201526014815290610c9a603483610f82565b604051928392604084526040840190610f15565b60208301959095526001600160a01b0316930390a2602060405160018152f35b636edaef2f60e11b60005260046000fd5b506008805433911c6001600160a01b03161415610c37565b506000546001600160a01b0316331415610c31565b346102dc5760203660031901126102dc576109dc60043533611331565b346102dc5760403660031901126102dc57610a67610d45610f56565b602435906112d6565b346102dc5760003660031901126102dc57602060405173735b14bb79463307aacbed86daf3322b1e6226ab8152f35b346102dc5760003660031901126102dc57602060ff60085416604051908152f35b346102dc5760603660031901126102dc57610db7610f56565b610dbf610f6c565b90610dce604435809383611230565b6001600160a01b0381166000908152600460209081526040808320338452909152902054828110610e0e576109dc92610e0691611064565b9033906111c9565b6310bad14760e01b60005260046000fd5b346102dc5760003660031901126102dc576020600554604051908152f35b346102dc5760403660031901126102dc576109dc610e59610f56565b60243590336111c9565b346102dc5760003660031901126102dc576020600154604051908152f35b346102dc5760003660031901126102dc576000600654610ea08161102a565b8084529060018116908115610b155750600114610ec75761024483610ab381850382610f82565b91905060066000526000805160206113cc833981519152916000905b808210610efb57509091508101602001610ab3610aa3565b919260018160209254838588010152019101909291610ee3565b919082519283825260005b848110610f41575050826000602080949584010152601f8019910116010190565b80602080928401015182828601015201610f20565b600435906001600160a01b03821682036102dc57565b602435906001600160a01b03821682036102dc57565b90601f8019910116810190811067ffffffffffffffff82111761083b57604052565b92919267ffffffffffffffff821161083b5760405191610fce601f8201601f191660200184610f82565b8294818452818301116102dc578281602093846000960137010152565b60206003198201126102dc576004359067ffffffffffffffff82116102dc57806023830112156102dc5781602461102793600401359101610fa4565b90565b90600182811c9216801561105a575b602083101461104457565b634e487b7160e01b600052602260045260246000fd5b91607f1691611039565b9190820391821161107157565b634e487b7160e01b600052601160045260246000fd5b908160209103126102dc57516001600160a01b03811681036102dc5790565b8181029291811591840414171561107157565b9190820180921161107157565b600054604051630be1554760e01b81527f0000000000000000000000000000000000000000000000000000000000000000600482018190529092916001600160a01b031690602084602481855afa93841561028e576000946111a8575b506001600160a01b0384161561029a5760209060246040518094819363d7fd7afb60e01b835260048301525afa90811561028e57600091611176575b5080156102485761021e61102791600154906110a6565b906020823d6020116111a0575b8161119060209383610f82565b810103126102835750513861115f565b3d9150611183565b6111c291945060203d6020116102d5576102c68183610f82565b9238611123565b6001600160a01b03169081156104da576001600160a01b03169182156104da5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260048252604060002085600052825280604060002055604051908152a3565b6001600160a01b03169081156104da576001600160a01b03169182156104da578160005260036020526040600020548181106112c557816112947fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93602093611064565b8460005260038352604060002055846000526003825260406000206112ba8282546110b9565b9055604051908152a3565b63fe382aa760e01b60005260046000fd5b6001600160a01b03169081156104da577fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020826113186000946005546110b9565b60055584845260038252604084206112ba8282546110b9565b6001600160a01b031680156104da57806000526003602052604060002054918083106112c5576020816113877fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93600096611064565b84865260038352604086205561139f81600554611064565b600555604051908152a356fea66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688f652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3fa2646970667358221220143426ebea1dd98ec97cac7a50bf56d05abc5cfb38e424354c050953db17fb6764736f6c634300081a00330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da26469706673582212206717e45fdf103a1ef42406c04560a62655c0f1b8dc7c77591c01b71b30c96d8e64736f6c634300081a003360803460a357601f620103f838819003918201601f19168301916001600160401b0383118484101760a857808492604094855283398101031260a3576001604e602060488460be565b930160be565b918160ff19600c541617600c55601f54906101008360a81b039060081b1690828060a81b0319161717601f5560018060a01b031660018060a01b03196020541617602055604051620103269081620000d28239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820360a35756fe6080604052600436101561001257600080fd5b60003560e01c8062173d46146101b65780631694505e146101b15780631ed7831c146101ac5780632ade3880146101a75780632c76d7a6146101a2578063342a30c31461019d5780633ce4a5bc146101985780633e5e3c23146101935780633f7286f41461018e57806351976f441461018957806352dc56b81461018457806359d0f7131461017f5780635b5491821461017a57806366141ce21461017557806366d9a9a01461017057806385226c811461016b578063916a17c614610166578063a0d788b714610161578063b0464fdc1461015c578063b5508aa914610157578063ba414fa614610152578063bb88b7691461014d578063d5f3948814610148578063e20c9f7114610143578063f04ab5341461013e5763fa7626d41461013957600080fd5b611c24565b611bfb565b611b7b565b611b4e565b611b25565b611b00565b611a73565b6119c7565b6116c8565b61161c565b611517565b61140b565b611324565b6112fb565b6112d2565b610684565b610636565b6105a5565b610525565b6104fe565b6104d5565b6104ac565b610400565b610260565b6101f4565b6101cb565b60009103126101c657565b600080fd5b346101c65760003660031901126101c6576021546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c6576024546040516001600160a01b039091168152602090f35b602060408183019282815284518094520192019060005b8181106102415750505090565b82516001600160a01b0316845260209384019390920191600101610234565b346101c65760003660031901126101c65760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b8181106102d1576102cd856102c181870382611c79565b6040519182918261021d565b0390f35b82546001600160a01b03168452602090930192600192830192016102aa565b60005b8381106103035750506000910152565b81810151838201526020016102f3565b9060209161032c815180928185528580860191016102f0565b601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061036b57505050505090565b9091929394603f198282030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b85010194019260005b8281106103d55750505050506020806001929701930193019193929061035c565b90919293946020806103f3600193605f198782030189528951610313565b97019501939291016103b4565b346101c65760003660031901126101c657601e5461041d81611c9b565b9061042b6040519283611c79565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061047157604051806102cd8782610338565b6002602060019260405161048481611c5d565b848060a01b03865416815261049a858701611d7f565b8382015281520192019201919061045c565b346101c65760003660031901126101c6576026546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c6576027546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c657602080546040516001600160a01b039091168152f35b346101c65760003660031901126101c65760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b818110610586576102cd856102c181870382611c79565b82546001600160a01b031684526020909301926001928301920161056f565b346101c65760003660031901126101c65760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b818110610606576102cd856102c181870382611c79565b82546001600160a01b03168452602090930192600192830192016105ef565b6001600160a01b038116036101c657565b346101c65760403660031901126101c65761066860043561065681610625565b6024359061066382610625565b611ea1565b604080516001600160a01b039384168152919092166020820152f35b346101c65760003660031901126101c657601f5460081c6001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af18015611104576112bd575b5060405161088580820182811067ffffffffffffffff8211176111bc57829162005e27833903906000f0801561110457602180546001600160a01b0319166001600160a01b03909216919091179055600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af18015611104576112a8575b506020546001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af1801561110457611293575b506020546001600160a01b0316600080516020620102d18339815191523b156101c65760405163c88a5e6d60e01b81526001600160a01b03919091166004820152678ac7230489e80000602482015260008160448183600080516020620102d18339815191525af180156111045761127e575b5060215461088e90610882906001600160a01b031681565b6001600160a01b031690565b803b156101c6576000678ac7230489e8000091600460405180948193630d0e30db60e41b83525af1801561110457611269575b50600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af1801561110457611254575b50601f5460081c6001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af180156111045761123f575b50601f5460081c6001600160a01b0316600080516020620102d18339815191523b156101c65760405163c88a5e6d60e01b81526001600160a01b03919091166004820152678ac7230489e80000602482015260008160448183600080516020620102d18339815191525af180156111045761122a575b506021546109ff90610882906001600160a01b031681565b803b156101c6576000678ac7230489e8000091600460405180948193630d0e30db60e41b83525af1801561110457611215575b50600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af1801561110457611200575b50601f54610af090610ad390610ab19060081c6001600160a01b0316602154610aab906001600160a01b0316610882565b90611ea1565b602480546001600160a01b0319166001600160a01b0390921691909117905590565b60018060a01b03166001600160601b0360a01b6023541617602355565b601f54610b8790610b4d90610b6a90610b2a9060081c6001600160a01b0316602154610b24906001600160a01b0316610882565b906125b2565b602780546001600160a01b0319166001600160a01b039092169190911790559092565b60018060a01b03166001600160601b0360a01b6026541617602655565b60018060a01b03166001600160601b0360a01b6025541617602555565b6020546001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af18015611104576111eb575b506021546001600160a01b03166023546001600160a01b03166024549091906001600160a01b03169160405192610b3a918285019385851067ffffffffffffffff8611176111bc578594610c6294620052ed87396001600160a01b0391821681529181166020830152909116604082015260600190565b03906000f0801561110457602280546001600160a01b0319166001600160a01b039092169190911790556040516128e080820182811067ffffffffffffffff8211176111bc57829162002a0d833903906000f0801561110457600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af18015611104576111d6575b50601f5460081c6001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af18015611104576111c1575b506040516192d980820182811067ffffffffffffffff8211176111bc578291620066ac833903906000f0801561110457602880546001600160a01b0319166001600160a01b03929092169182179055610dc290610882565b906040519161094c9081840184811067ffffffffffffffff8211176111bc578493610e09936200f98586396001600160a01b03908116825291909116602082015260400190565b03906000f0801561110457602980546001600160a01b0319166001600160a01b03929092169182179055610e3c90610882565b6021546001600160a01b0316601f5460081c6001600160a01b0316823b156101c65760405163485cc95560e01b81526001600160a01b03928316600482015291166024820152906000908290604490829084905af18015611104576111a7575b50600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af1801561110457611192575b506020546001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af180156111045761117d575b5060006020610fb7610f6861088261088260215460018060a01b031690565b602954610f7d906001600160a01b0316610882565b60405163095ea7b360e01b81526001600160a01b039091166004820152678ac7230489e80000602482015293849283919082906044820190565b03925af1801561110457611160575b50600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af180156111045761114b575b50601f5460081c6001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af1801561110457611136575b5060006020611095610f6861088261088260215460018060a01b031690565b03925af1801561110457611109575b50600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af18015611104576110ed57005b806110fc600061110293611c79565b806101bb565b005b611dd7565b61112a9060203d60201161112f575b6111228183611c79565b8101906121e1565b6110a4565b503d611118565b806110fc600061114593611c79565b38611076565b806110fc600061115a93611c79565b3861100e565b6111789060203d60201161112f576111228183611c79565b610fc6565b806110fc600061118c93611c79565b38610f49565b806110fc60006111a193611c79565b38610ee4565b806110fc60006111b693611c79565b38610e9c565b611c47565b806110fc60006111d093611c79565b38610d6a565b806110fc60006111e593611c79565b38610d02565b806110fc60006111fa93611c79565b38610beb565b806110fc600061120f93611c79565b38610a7a565b806110fc600061122493611c79565b38610a32565b806110fc600061123993611c79565b386109e7565b806110fc600061124e93611c79565b38610971565b806110fc600061126393611c79565b38610909565b806110fc600061127893611c79565b386108c1565b806110fc600061128d93611c79565b3861086a565b806110fc60006112a293611c79565b386107f7565b806110fc60006112b793611c79565b38610792565b806110fc60006112cc93611c79565b386106fc565b346101c65760003660031901126101c6576023546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c6576025546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c6576028546040516001600160a01b039091168152602090f35b906020808351928381520192019060005b81811061136b5750505090565b82516001600160e01b03191684526020938401939092019160010161135e565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106113be57505050505090565b90919293946020806113fc600193603f19868203018752895190836113ec8351604084526040840190610313565b920151908481840391015261134d565b970193019301919392906113af565b346101c65760003660031901126101c657601b5461142881611c9b565b906114366040519283611c79565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b83831061147c57604051806102cd878261138b565b6002602060019260405161148f81611c5d565b61149886611cb3565b81526114a58587016121f9565b83820152815201920192019190611467565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106114ea57505050505090565b9091929394602080611508600193603f198682030187528951610313565b970193019301919392906114db565b346101c65760003660031901126101c657601a5461153481611c9b565b906115426040519283611c79565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b83831061158757604051806102cd87826114b7565b60016020819261159685611cb3565b815201920192019190611572565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106115d757505050505090565b909192939460208061160d600193603f198682030187526040838b51878060a01b0381511684520151918185820152019061134d565b970193019301919392906115c8565b346101c65760003660031901126101c657601d5461163981611c9b565b906116476040519283611c79565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b83831061168d57604051806102cd87826115a4565b600260206001926040516116a081611c5d565b848060a01b0386541681526116b68587016121f9565b83820152815201920192019190611678565b346101c65760e03660031901126101c6576004356116e581610625565b602435906116f282610625565b6044356116fe81610625565b6064359161170b83610625565b6084359261171884610625565b60a4359260c43595600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b038716600482015260008160248183600080516020620102d18339815191525af18015611104576119b2575b506040516364e329cb60e11b81526001600160a01b0383811660048301528481166024830152909160209183916044918391600091165af1801561110457611985575b5060405163095ea7b360e01b81526001600160a01b0384166004820152602481018590526020818060448101038160006001600160a01b0387165af1801561110457611968575b5060405163095ea7b360e01b81526001600160a01b038416600482015260248101879052906020828060448101038160006001600160a01b0388165af18015611104576060966000936118bc9261194b575b5061185c42612433565b60405162e8e33760e81b81526001600160a01b03948516600482015295841660248701526044860197909752606485019890985260006084850181905260a4850152961660c483015260e482019390935293849283918290610104820190565b03926001600160a01b03165af180156111045761191c5750600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af18015611104576110ed57005b61193d9060603d606011611944575b6119358183611c79565b810190612458565b50506110a4565b503d61192b565b6119639060203d60201161112f576111228183611c79565b611852565b6119809060203d60201161112f576111228183611c79565b611800565b6119a69060203d6020116119ab575b61199e8183611c79565b81019061241e565b6117b9565b503d611994565b806110fc60006119c193611c79565b38611776565b346101c65760003660031901126101c657601c546119e481611c9b565b906119f26040519283611c79565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b838310611a3857604051806102cd87826115a4565b60026020600192604051611a4b81611c5d565b848060a01b038654168152611a618587016121f9565b83820152815201920192019190611a23565b346101c65760003660031901126101c657601954611a9081611c9b565b90611a9e6040519283611c79565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b838310611ae357604051806102cd87826114b7565b600160208192611af285611cb3565b815201920192019190611ace565b346101c65760003660031901126101c6576020611b1b612482565b6040519015158152f35b346101c65760003660031901126101c6576022546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c657601f5460405160089190911c6001600160a01b03168152602090f35b346101c65760003660031901126101c65760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b818110611bdc576102cd856102c181870382611c79565b82546001600160a01b0316845260209093019260019283019201611bc5565b346101c65760003660031901126101c6576029546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c657602060ff601f54166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176111bc57604052565b90601f8019910116810190811067ffffffffffffffff8211176111bc57604052565b67ffffffffffffffff81116111bc5760051b60200190565b9060405191600081548060011c9260018216918215611d75575b602085108314611d61578487528693926020850192918115611d445750600114611d02575b5050611d0092500383611c79565b565b611d13919250600052602060002090565b906000915b848310611d2d5750611d009350013880611cf2565b805482840152869350602090920191600101611d18565b915050611d009491925060ff19168252151560051b013880611cf2565b634e487b7160e01b84526022600452602484fd5b93607f1693611ccd565b908154611d8b81611c9b565b92611d996040519485611c79565b818452602084019060005260206000206000915b838310611dba5750505050565b600160208192611dc985611cb3565b815201920192019190611dad565b6040513d6000823e3d90fd5b67ffffffffffffffff81116111bc57601f01601f191660200190565b6020818303126101c65780519067ffffffffffffffff82116101c6570181601f820112156101c65760208151910190611e3781611de3565b92611e456040519485611c79565b818452818301116101c657611e5e9160208401906102f0565b90565b611e7360409283835283830190610313565b90602081830391015260148152730b995d9b4b989e5d1958dbd9194b9bd89a9958dd60621b60208201520190565b919091600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b038216600482015260008160248183600080516020620102d18339815191525af18015611104576121cc575b506040516360f9bb1160e01b815260206004820152603960248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76322d636f72652f627560448201527f696c642f556e69737761705632466163746f72792e6a736f6e000000000000006064820152600081608481600080516020620102d18339815191525afa90811561110457611faa916000918291612191575b5060405180938192631fb2437d60e31b835260048301611e61565b0381600080516020620102d18339815191525afa80156111045761200a92611ff7926000926121ab575b50604080516001600160a01b039092166020830152909261200591849190820190565b03601f198101845283611c79565b612515565b6040516360f9bb1160e01b815260206004820152603f60248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76322d7065726970686560448201527f72792f6275696c642f556e69737761705632526f7574657230322e6a736f6e006064820152909290600081608481600080516020620102d18339815191525afa908115611104576120bb916000918291612191575060405180938192631fb2437d60e31b835260048301611e61565b0381600080516020620102d18339815191525afa80156111045761210f92611ff792600092612168575b50604080516001600160a01b03808916602083015290921690820152916120059083906060820190565b90600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af18015611104576121595750565b806110fc6000611d0093611c79565b61200591925061218a903d806000833e6121828183611c79565b810190611dff565b91906120e5565b6121a591503d8084833e6121828183611c79565b38611f8f565b6120059192506121c5903d806000833e6121828183611c79565b9190611fd4565b806110fc60006121db93611c79565b38611efa565b908160209103126101c6575180151581036101c65790565b604051815480825290929183906122196020830191600052602060002090565b926000905b80600783011061236157611d00945491818110612342575b818110612323575b818110612304575b8181106122e5575b8181106122c6575b8181106122a7575b818110612289575b10612274575b500383611c79565b6001600160e01b03191681526020013861226c565b602083811b6001600160e01b03191685529093600191019301612266565b604083901b6001600160e01b031916845292600190602001930161225e565b606083901b6001600160e01b0319168452926001906020019301612256565b608083901b6001600160e01b031916845292600190602001930161224e565b60a083901b6001600160e01b0319168452926001906020019301612246565b60c083901b6001600160e01b031916845292600190602001930161223e565b6001600160e01b031960e084901b168452926001906020019301612236565b9160089193506101006001916124108754612387838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b01940192018592939161221e565b908160209103126101c65751611e5e81610625565b90610384820180921161244257565b634e487b7160e01b600052601160045260246000fd5b908160609103126101c6578051916040602083015192015190565b908160209103126101c6575190565b60085460ff1680156124915790565b50604051630667f9d760e41b8152600080516020620102d1833981519152600482018190526519985a5b195960d21b6024830152602090829060449082905afa908115611104576000916124e6575b50151590565b612508915060203d60201161250e575b6125008183611c79565b810190612473565b386124e0565b503d6124f6565b9061255a6020916040519283918161253681850197888151938492016102f0565b830161254a825180938580850191016102f0565b010103601f198101835282611c79565b51906000f09081156101c657565b61257a60409283835283830190610313565b90602081830391015260098152682e62797465636f646560b81b60208201520190565b604051906125ac602083611c79565b60008252565b600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af18015611104576129f7575b506040516360f9bb1160e01b815260206004820152605c60248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76332d636f72652f617260448201527f746966616374732f636f6e7472616374732f556e69737761705633466163746f60648201527f72792e736f6c2f556e69737761705633466163746f72792e6a736f6e00000000608482015260008160a481600080516020620102d18339815191525afa908115611104576126e09160009182916129a7575b5060405180938192631fb2437d60e31b835260048301612568565b0381600080516020620102d18339815191525afa801561110457612715916000916129dc575b5061270f61259d565b90612515565b6040516360f9bb1160e01b815260206004820152605560248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76332d7065726970686560448201527f72792f6172746966616374732f636f6e7472616374732f53776170526f757465606482015274391739b7b617a9bbb0b82937baba32b9173539b7b760591b608482015290929060008160a481600080516020620102d18339815191525afa908115611104576127e49160009182916129a7575060405180938192631fb2437d60e31b835260048301612568565b0381600080516020620102d18339815191525afa801561110457612836916000916129c1575b50604080516001600160a01b038088166020830152861691810191909152906120058260608101611ff7565b6040516360f9bb1160e01b815260206004820152607560248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76332d7065726970686560448201527f72792f6172746966616374732f636f6e7472616374732f4e6f6e66756e67696260648201527f6c65506f736974696f6e4d616e616765722e736f6c2f4e6f6e66756e6769626c60848201527432a837b9b4ba34b7b726b0b730b3b2b9173539b7b760591b60a482015290929060008160c481600080516020620102d18339815191525afa9081156111045761292b9160009182916129a7575060405180938192631fb2437d60e31b835260048301612568565b0381600080516020620102d18339815191525afa80156111045761210f928592600092612986575b50604080516001600160a01b03808a16602083015292831691810191909152921660608301526120058260808101611ff7565b6120059192506129a0903d806000833e6121828183611c79565b9190612953565b6129bb91503d8084833e6121828183611c79565b386126c5565b6129d691503d806000833e6121828183611c79565b3861280a565b6129f191503d806000833e6121828183611c79565b38612706565b806110fc6000612a0693611c79565b3861260a56fe60a080604052346100ea57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b6040516127f090816100f08239608051818181610db80152610e4c0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880610054565b63f92ee8a960e01b60005260046000fd5b600080fdfe6080806040526004361015610067575b50361561001b57600080fd5b610023611f8e565b6000546001600160a01b03163314158061004f575b61003e57005b63b3af013760e01b60005260046000fd5b506000805160206126fb833981519152331415610038565b600090813560e01c90816301ffc9a714611b2b5750806306cb898314611818578063184b0793146117195780632095dedb146115e457806321501a95146113f757806321e093b1146113d0578063248a9ca3146113a95780632722feee146113805780632810ae63146112f65780632f2ff15d146112c457806336568abe1461127f5780633f4ba83a146111fd578063485cc955146110345780634f1ef28614610e0d57806352d1902d14610da55780635c975abb14610d755780637b15118b14610b445780637c0dcb5f146108885780638456cb591461081357806391d14854146107ba57806397a1cef11461074d57806397d340f5146107305780639d4ba465146105c4578063a217fddf146105a8578063ad3cb1cc1461055b578063bcf7f32b146104b4578063c39aca371461033d578063d547741f14610302578063e63ab1e9146102c75763f45346dc0361000f57346102c45760603660031901126102c4576101d3611c4a565b906024356101df611c60565b926000805160206126fb83398151915233036102b5576101fd611f8e565b6001600160a01b03811693841580156102a4575b610295578215610286576001600160a01b038116916000805160206126fb8339815191528314801561027d575b61026e5761024d918491612503565b15610256578280f35b606493632050a1dd60e11b8452600452602452604452fd5b63416aebb560e11b8552600485fd5b5030831461023e565b635d67094f60e01b8452600484fd5b63d92e233d60e01b8452600484fd5b506001600160a01b03811615610211565b632160203f60e11b8352600483fd5b80fd5b50346102c457806003193601126102c45760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346102c45760403660031901126102c457610339600435610322611c34565b9061033461032f82611efe565b6120bd565b612330565b5080f35b50346102c45761034c36611cf8565b95949291909361035a611fdf565b6000805160206126fb83398151915233036104a557610377611f8e565b6001600160a01b0381169687158015610494575b610485578315610476576001600160a01b038316926000805160206126fb8339815191528414801561046d575b61045e57846103c79184612503565b1561044357869750823b1561043f5786946103fa869260405198899788968795632de7eb0b60e11b875260048701611e8e565b03925af180156104345761041f575b50600160008051602061277b8339815191525580f35b8161042991611bb1565b6102c4578038610409565b6040513d84823e3d90fd5b8680fd5b60648785858b632050a1dd60e11b8452600452602452604452fd5b63416aebb560e11b8852600488fd5b503084146103b8565b635d67094f60e01b8752600487fd5b63d92e233d60e01b8752600487fd5b506001600160a01b0383161561038b565b632160203f60e11b8652600486fd5b50346102c4576104c336611cf8565b90936104d29695939296611fdf565b6000805160206126fb83398151915233036104a5576104ef611f8e565b6001600160a01b03811615801561054a575b61053b57859660018060a01b031691823b1561043f5786946103fa869260405198899788968795632de7eb0b60e11b875260048701611e8e565b63d92e233d60e01b8652600486fd5b506001600160a01b03871615610501565b50346102c457806003193601126102c457506105a460405161057e604082611bb1565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611cb7565b0390f35b50346102c457806003193601126102c457602090604051908152f35b50346102c45760803660031901126102c4576105de611c4a565b90602435916105eb611c60565b90606435916001600160401b03831161072c576080600319843603011261072c57610614611fdf565b6000805160206126fb833981519152330361071d57610631611f8e565b6001600160a01b038216908115801561070c575b6106fd5785156106ee576001600160a01b038116926000805160206126fb833981519152841480156106e5575b6106d657610681918791612503565b156106bc5750829350803b156106b8576103fa8392918392604051948580948193636481451b60e11b835260040160048301611e29565b5050fd5b6064949250632050a1dd60e11b8452600452602452604452fd5b63416aebb560e11b8652600486fd5b50308414610672565b635d67094f60e01b8552600485fd5b63d92e233d60e01b8552600485fd5b506001600160a01b03811615610645565b632160203f60e11b8452600484fd5b8380fd5b50346102c457806003193601126102c45760206040516108008152f35b50346102c45760803660031901126102c4576004356001600160401b0381116107b65761077e903690600401611bed565b506064356001600160401b0381116107b65760a09060031990360301126102c4576004906107aa611f8e565b63e4dd681d60e01b8152fd5b5080fd5b50346102c45760403660031901126102c45760406107d6611c34565b91600435815260008051602061273b833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346102c457806003193601126102c45761082c61204b565b610834611f8e565b600160ff1960008051602061275b83398151915254161760008051602061275b833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346102c45760803660031901126102c4576004356001600160401b0381116107b6576108b9903690600401611bed565b90602435916108c6611c60565b906064356001600160401b03811161072c57806004019060a06003198236030112610b40576108f3611f8e565b8251156106fd5785156106ee576064016108006109108284611d75565b905011610b1d5750604051630123a4f160e31b8152939485946001600160a01b03851694602082600481895afa918215610ada578792610ae5575b509061095791836123d0565b604051634d8943bb60e01b815290602082600481895afa918215610ada578792610aa3575b50604051630123a4f160e31b8152926020846004818a5afa938415610a98578894610a4f575b507f07bf64173efd8f3dfb9e4eb3834bab9d5b85a3d89a1c6425797329de0668502c9593610a49936109fd9693602093604051936109df85611b80565b84526001858501526040519889986101208a526101208a0190611cb7565b9a85890152604088015260608701526080860152610a37858903918260a08801528a8a5260c0870190602080918051845201511515910152565b01610100840152602033960190611f1f565b0390a380f35b975094925090926020873d602011610a90575b81610a6f60209383611bb1565b81010312610a8b579551879692949293909290919060206109a2565b600080fd5b3d9150610a62565b6040513d8a823e3d90fd5b965090506020863d602011610ad2575b81610ac060209383611bb1565b81010312610a8b57869551903861097c565b3d9150610ab3565b6040513d89823e3d90fd5b915095506020813d602011610b15575b81610b0260209383611bb1565b81010312610a8b5751869561095761094b565b3d9150610af5565b610b2a8591604493611d75565b63cd6f4e6d60e01b835260045250610800602452fd5b8480fd5b50346102c45760e03660031901126102c4576004356001600160401b0381116107b657610b75903690600401611bed565b9060243591610b82611c60565b906064356001600160401b03811161072c57610ba2903690600401611c8a565b9490916040366083190112610b405760c435916001600160401b038311610d7157826004019360a0600319853603011261043f57610bde611f8e565b82511561048557811561047657608435938415610d6257606401610800610c10610c088389611d75565b90508b611da7565b11610d345750968697610c278588859a999a6123d0565b604051634d8943bb60e01b815290986001600160a01b031693602082600481885afa918215610d29578992610cea575b5098610c9a9596979899610c78604051986101208a526101208a0190611cb7565b95602089015260408801526060870152608086015284830360a0860152611e08565b9160c082015260a43591821515809303610b4057610a4982917fd90f94752d2b12f364f4a2237ebe1aff24ba6127585376bf4935f6a7be17dd2a9460e08401528281036101008401523395611f1f565b959697985090506020853d602011610d21575b81610d0a60209383611bb1565b81010312610a8b5793518997969594610c9a610c57565b3d9150610cfd565b6040513d8b823e3d90fd5b87610d4d8a610d456044948a611d75565b919050611da7565b63cd6f4e6d60e01b8252600452610800602452fd5b6360ee124760e01b8852600488fd5b8580fd5b50346102c457806003193601126102c457602060ff60008051602061275b83398151915254166040519015158152f35b50346102c457806003193601126102c4577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610dfe57602060405160008051602061271b8339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126102c457610e22611c4a565b906024356001600160401b0381116107b657610e42903690600401611bed565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611011575b506110025781805260008051602061273b83398151915260209081526040808420336000908152925290205460ff1615610fea576040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa80958596610fb6575b50610ef057634c9c8ce360e01b84526004839052602484fd5b90918460008051602061271b8339815191528103610fa45750813b15610f925760008051602061271b83398151915280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a28151839015610f78578083602061033995519101845af4610f7261201b565b91612699565b50505034610f835780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011610fe2575b81610fd260209383611bb1565b81010312610b4057519438610ed7565b3d9150610fc5565b63e2517d3f60e01b8252336004526024829052604482fd5b63703e46dd60e11b8252600482fd5b60008051602061271b833981519152546001600160a01b03161415905038610e77565b50346102c45760403660031901126102c45761104e611c4a565b611056611c34565b60008051602061279b833981519152549160ff8360401c1615926001600160401b038116801590816111f5575b60011490816111eb575b1590816111e2575b506111d35767ffffffffffffffff19811660011760008051602061279b83398151915255836111a6575b506001600160a01b03169081158015611195575b61029557611124906110e361262b565b6110eb61262b565b6110f361262b565b6110fb61262b565b61110361262b565b600160008051602061277b8339815191525561111e81612107565b506121b9565b5082546001600160a01b03191617825561113b5780f35b68ff00000000000000001960008051602061279b833981519152541660008051602061279b833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b506001600160a01b038116156110d3565b68ffffffffffffffffff1916680100000000000000011760008051602061279b83398151915255386110bf565b63f92ee8a960e01b8552600485fd5b90501538611095565b303b15915061108d565b859150611083565b50346102c457806003193601126102c45761121661204b565b60008051602061275b8339815191525460ff8116156112705760ff191660008051602061275b833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346102c45760403660031901126102c457611299611c34565b336001600160a01b038216036112b55761033990600435612330565b63334bd91960e11b8252600482fd5b50346102c45760403660031901126102c4576103396004356112e4611c34565b906112f161032f82611efe565b612287565b50346102c45760e03660031901126102c4576004356001600160401b0381116107b657611327903690600401611bed565b506064356001600160401b0381116107b657611347903690600401611c8a565b505060403660831901126102c45760c4356001600160401b0381116107b65760a09060031990360301126102c4576004906107aa611f8e565b50346102c457806003193601126102c45760206040516000805160206126fb8339815191528152f35b50346102c45760203660031901126102c45760206113c8600435611efe565b604051908152f35b50346102c457806003193601126102c457546040516001600160a01b039091168152602090f35b50346102c45760803660031901126102c457600435906001600160401b0382116102c457606060031983360301126102c457602435611434611c60565b926064356001600160401b03811161072c57611454903690600401611c8a565b61145f929192611fdf565b6000805160206126fb83398151915233036115d55761147c611f8e565b6001600160a01b03861695861561053b5784156115c6576000805160206126fb833981519152871480156115bd575b6106d65785546114c9908690309033906001600160a01b03166125d9565b156115a55785546001600160a01b0316803b1561043f5786808092602460405180958193632e1a7d4d60e01b83528c60048401525af19182611590575b505061152357604486868963793cd7bf60e11b8352600452602452fd5b858080878194989697985af161153761201b565b50156115795794849560018060a01b0386541690823b1561043f5786946103fa869260405198899788968795632de7eb0b60e11b875260040160048701611e8e565b604485838863793cd7bf60e11b8352600452602452fd5b8161159a91611bb1565b61043f578638611506565b63793cd7bf60e11b8652306004526024859052604486fd5b503087146114ab565b6319c08f4960e01b8652600486fd5b632160203f60e11b8552600485fd5b50346102c45760403660031901126102c4576115fe611c4a565b90602435916001600160401b0383116107b657826004019060c060031985360301126117155761162c611fdf565b6000805160206126fb83398151915233036102b557611649611f8e565b6001600160a01b0316908115611706578293823b15611701576103fa926116ef858094604051968795869485936316a67dbf60e11b85526020600486015260a46116a76116968380611dd7565b60c060248a015260e4890191611e08565b936001600160a01b036116bc60248301611c76565b166044880152604481013560648801526116d860648201611dca565b151560848801526084810135828801520190611dd7565b8483036023190160c486015290611e08565b505050fd5b63d92e233d60e01b8352600483fd5b8280fd5b50346102c45760403660031901126102c457611733611c4a565b90602435916001600160401b0383116107b657608060031984360301126107b65761175c611fdf565b6000805160206126fb833981519152330361180957611779611f8e565b6001600160a01b03169182156117fa578282933b156106b8576117b98392918392604051958680948193636481451b60e11b835260040160048301611e29565b03925af180156117ed576117dd575b600160008051602061277b8339815191525580f35b6117e691611bb1565b38816117c8565b50604051903d90823e3d90fd5b63d92e233d60e01b8252600482fd5b632160203f60e11b8252600482fd5b50346102c45760c03660031901126102c4576004356001600160401b0381116107b657611849903690600401611bed565b611851611c34565b6044356001600160401b03811161072c57611870903690600401611c8a565b90916040366063190112610b405760a435926001600160401b038411610d7157836004019260a0600319863603011261043f576118ab611f8e565b606435938415610d625760648601926108006118d26118ca8685611d75565b905085611da7565b11611b1a57604051956118e487611b80565b86526084358015158103611b165760208701526040519160a083018381106001600160401b03821117611b025760405261191d90611c76565b825261192b60248801611dca565b926020830193845261193f60448901611c76565b9460408401958652356001600160401b038111611afe5761196690600436918b0101611bed565b95606084019687526084608085019901358952895115611aef5787516040805163fc5fecd560e01b815260048101929092526001600160a01b03929092169a91816024818e5afa908115611ae4578c908d92611ab2575b506119c982338361257d565b15611a8257505093611a7493611a3c611a2660a099957f306ee13f48319a123b222c69908e44dcf91abffc20cacc502e3cf5a4ff23e0e49b9995611a1860809a6040519d8e8181520190611cb7565b8c810360208e015291611e08565b885160408b0152602090980151151560608a0152565b87870386890152516001600160a01b03908116875290511515602087015290511660408501525160a060608501819052840190611cb7565b94519101528033930390a380f35b633338088960e11b8d526001600160a01b03166004526000805160206126fb83398151915260245260445260648bfd5b9050611ad6915060403d604011611add575b611ace8183611bb1565b810190611fb8565b90386119bd565b503d611ac4565b6040513d8e823e3d90fd5b63d92e233d60e01b8b5260048bfd5b8a80fd5b634e487b7160e01b8b52604160045260248bfd5b8980fd5b604489610d4d85610d458887611d75565b9050346107b65760203660031901126107b65760043563ffffffff60e01b81168091036117155760209250637965db0b60e01b8114908115611b6f575b5015158152f35b6301ffc9a760e01b14905038611b68565b604081019081106001600160401b03821117611b9b57604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b03821117611b9b57604052565b6001600160401b038111611b9b57601f01601f191660200190565b81601f82011215610a8b57803590611c0482611bd2565b92611c126040519485611bb1565b82845260208383010111610a8b57816000926020809301838601378301015290565b602435906001600160a01b0382168203610a8b57565b600435906001600160a01b0382168203610a8b57565b604435906001600160a01b0382168203610a8b57565b35906001600160a01b0382168203610a8b57565b9181601f84011215610a8b578235916001600160401b038311610a8b5760208381860195010111610a8b57565b919082519283825260005b848110611ce3575050826000602080949584010152601f8019910116010190565b80602080928401015182828601015201611cc2565b60a0600319820112610a8b576004356001600160401b038111610a8b5760608183036003190112610a8b57600401916024356001600160a01b0381168103610a8b5791604435916064356001600160a01b0381168103610a8b5791608435906001600160401b038211610a8b57611d7191600401611c8a565b9091565b903590601e1981360301821215610a8b57018035906001600160401b038211610a8b57602001918136038313610a8b57565b91908201809211611db457565b634e487b7160e01b600052601160045260246000fd5b35908115158203610a8b57565b9035601e1982360301811215610a8b5701602081359101916001600160401b038211610a8b578136038313610a8b57565b908060209392818452848401376000828201840152601f01601f1916010190565b60208152611e8b9160a090611e7b906001600160a01b03611e4982611c76565b166020850152600180841b03611e6160208301611c76565b166040850152604081013560608501526060810190611dd7565b9190926080808201520191611e08565b90565b90939192611e8b9593608083526040611ebb611eaa8880611dd7565b6060608088015260e0870191611e08565b966001600160a01b03611ed060208301611c76565b1660a0860152013560c08401526001600160a01b031660208301526040820152808403606090910152611e08565b60005260008051602061273b83398151915260205260016040600020015490565b906001600160a01b03611f3183611c76565b168152611f4060208301611dca565b151560208201526001600160a01b03611f5b60408401611c76565b166040820152608080611f85611f746060860186611dd7565b60a0606087015260a0860191611e08565b93013591015290565b60ff60008051602061275b8339815191525416611fa757565b63d93c066560e01b60005260046000fd5b9190826040910312610a8b5781516001600160a01b0381168103610a8b5760209092015190565b600260008051602061277b833981519152541461200a57600260008051602061277b83398151915255565b633ee5aeb560e01b60005260046000fd5b3d15612046573d9061202c82611bd2565b9161203a6040519384611bb1565b82523d6000602084013e565b606090565b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561208457565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b600081815260008051602061273b8339815191526020908152604080832033845290915290205460ff16156120ef5750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff166121b3576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50600090565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff166121b3576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b600081815260008051602061273b833981519152602090815260408083206001600160a01b038616845290915290205460ff1661232957600081815260008051602061273b833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b5050600090565b600081815260008051602061273b833981519152602090815260408083206001600160a01b038616845290915290205460ff161561232957600081815260008051602061273b833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6040805163fc5fecd560e01b8152600481019490945290916001600160a01b0381169184602481855afa9384156124df576000906000956124bb575b5061241885338361257d565b15612484575061242a833033846125d9565b1561245a578261243991612659565b1561244357505090565b637112ae7760e01b60005260045260245260446000fd5b506084916040519163489ca9b760e01b835260048301523360248301523060448301526064820152fd5b633338088960e11b60009081526001600160a01b039091166004526000805160206126fb8339815191526024526044859052606490fd5b90506124d791945060403d604011611add57611ace8183611bb1565b93903861240c565b6040513d6000823e3d90fd5b90816020910312610a8b57518015158103610a8b5790565b6040516311f9fbc960e21b81526001600160a01b039283166004820152602481019390935260209183916044918391600091165af16000918161254c575b50611e8b5750600090565b61256f91925060203d602011612576575b6125678183611bb1565b8101906124eb565b9038612541565b503d61255d565b6040516323b872dd60e01b81526001600160a01b0392831660048201526000805160206126fb8339815191526024820152604481019390935260209183916064918391600091165af16000918161254c5750611e8b5750600090565b6040516323b872dd60e01b81526001600160a01b03928316600482015292821660248401526044830193909352909160209183916064918391600091165af16000918161254c5750611e8b5750600090565b60ff60008051602061279b8339815191525460401c161561264857565b631afcd79f60e31b60005260046000fd5b604051630852cd8d60e31b81526004810192909252602090829060249082906000906001600160a01b03165af16000918161254c5750611e8b5750600090565b906126bf57508051156126ae57805190602001fd5b63d6bda27560e01b60005260046000fd5b815115806126f1575b6126d0575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b156126c856fe000000000000000000000000735b14bb79463307aacbed86daf3322b1e6226ab360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220542941658a96d6dd4010b90beba1b2fc5ed2076ef97c9889b30ab9ceda5036f064736f6c634300081a003360c03461010057601f610b3a38819003918201601f19168301916001600160401b0383118484101761010557808492606094604052833981010312610100576100478161011b565b9061006060406100596020840161011b565b920161011b565b9173735b14bb79463307aacbed86daf3322b1e6226ab33036100ef57600380546001600160a01b0319166001600160a01b039290921691909117905560805260a0526040517f80699e81136d69cb8367ad52a994e25c722a86da654b561d0c14b61a777e7ac5600080a1610a0a9081610130823960805181818161018a015261065d015260a051816106d70152f35b632b2add3d60e01b60005260046000fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036101005756fe608080604052600436101561001357600080fd5b600090813560e01c9081630be1554714610817575080631f0e251b146107915780633ce4a5bc14610762578063513a9c051461072f578063569541b914610706578063842da36d146106c157806391dd645f146105f057806397770dff1461054c578063a7cb0507146104da578063c39aca3714610263578063c62178ac1461023a578063c63585cc146101e2578063d7fd7afb146101b9578063d936a012146101745763ee2815ba146100c657600080fd5b34610171576040366003190112610171576004356100e2610864565b9073735b14bb79463307aacbed86daf3322b1e6226ab33036101625780835260016020908152604080852080546001600160a01b0319166001600160a01b0390951694851790558051928352908201929092527fd1b36d30f6248e97c473b4d1348ca164a4ef6759022f54a58ec200326c39c45d91819081015b0390a180f35b632b2add3d60e01b8352600483fd5b80fd5b50346101715780600319360112610171576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461017157602036600319011261017157604060209160043581528083522054604051908152f35b5034610171576060366003190112610171576101fc610849565b610204610864565b604435929091906001600160a01b03841684036101715760206102288585856108d3565b6040516001600160a01b039091168152f35b50346101715780600319360112610171576004546040516001600160a01b039091168152602090f35b50346101715760a0366003190112610171576004359067ffffffffffffffff82116101715781360360606003198201126104d65761029f610864565b92604435906064356001600160a01b038116908190036104d25760843567ffffffffffffffff81116104ce57366023820112156104ce5780600401359367ffffffffffffffff85116104615736602486840101116104615773735b14bb79463307aacbed86daf3322b1e6226ab33036104bf5773735b14bb79463307aacbed86daf3322b1e6226ab831480156104b6575b6104a7576040516311f9fbc960e21b815260048101849052602481018290529697959688966001600160a01b0316906020816044818b865af1801561049c57610465575b50833b156104615760405197636f218ab760e11b8952608060048a01528560040135906022190181121561045d57850160246004820135910167ffffffffffffffff8211610459578136038113610459576103da91606060848c015260e48b01916108b2565b60248601356001600160a01b038116919082900361045957889760248b98968a968a989660448a9861042d9860a48b0152013560c4890152838801526044870152600319868503016064870152016108b2565b03925af1801561044c5761043e5780f35b6104479161087a565b388180f35b50604051903d90823e3d90fd5b8880fd5b8780fd5b8680fd5b6020813d602011610494575b8161047e6020938361087a565b8101031261045d57518015158114610374578780fd5b3d9150610471565b6040513d8a823e3d90fd5b63416aebb560e11b8752600487fd5b50308314610330565b632b2add3d60e01b8752600487fd5b8580fd5b8480fd5b5080fd5b50346101715760403660031901126101715760043560243573735b14bb79463307aacbed86daf3322b1e6226ab330361016257816040917f49f492222906ac486c3c1401fa545626df1f0c0e5a77a05597ea2ed66af9850d93855284602052808386205582519182526020820152a180f35b503461017157602036600319011261017157610566610849565b73735b14bb79463307aacbed86daf3322b1e6226ab33036105e1576001600160a01b031680156105d2576020817fdba79d534382d1a8ae108e4c8ecb27c6ae42ab8b91d44eedf88bd329f3868d5e926001600160601b0360a01b6003541617600355604051908152a180f35b63d92e233d60e01b8252600482fd5b632b2add3d60e01b8252600482fd5b50346101715760403660031901126101715760043561060d610864565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610162576003547f0ecec485166da6139b13bb7e033e9446e2d35348e80ebf1180d4afe2dba1704e9291610681916001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006108d3565b81845260026020908152604080862080546001600160a01b0319166001600160a01b0390941693841790558051938452908301919091528190810161015c565b50346101715780600319360112610171576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101715780600319360112610171576003546040516001600160a01b039091168152602090f35b503461017157602036600319011261017157602090600435815260028252604060018060a01b0391205416604051908152f35b5034610171578060031936011261017157602060405173735b14bb79463307aacbed86daf3322b1e6226ab8152f35b5034610171576020366003190112610171576107ab610849565b73735b14bb79463307aacbed86daf3322b1e6226ab33036105e1576001600160a01b031680156105d2576020817f3ade88e3922d64780e1bf4460d364c2970b69da813f9c0c07a1c187b5647636c926001600160601b0360a01b6004541617600455604051908152a180f35b9050346104d65760203660031901126104d6576004358252600160209081526040909220546001600160a01b03168152f35b600435906001600160a01b038216820361085f57565b600080fd5b602435906001600160a01b038216820361085f57565b90601f8019910116810190811067ffffffffffffffff82111761089c57604052565b634e487b7160e01b600052604160045260246000fd5b908060209392818452848401376000828201840152601f01601f1916010190565b91906001600160a01b038083169082168082146109c35710156109be57905b6001600160a01b038216156109ad576040519060208201926001600160601b03199060601b1683526001600160601b03199060601b1660348201526028815261093c60488261087a565b5190209060405191602083019160ff60f81b83526001600160601b03199060601b16602184015260358301527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f60558301526055825261099d60758361087a565b905190206001600160a01b031690565b633c5a83ed60e11b60005260046000fd5b6108f2565b63658f3e7f60e11b60005260046000fdfea26469706673582212203d5f24fd62859186e7d8a9f41a0e370a08bd7cbc34344f0eb46593f3ba299ff564736f6c634300081a003360806040523461011457610014600054610119565b601f81116100cb575b507f577261707065642045746865720000000000000000000000000000000000001a60005560015461004e90610119565b601f8111610081575b6008630ae8aa8960e31b016001556002805460ff1916601217905560405161073190816101548239f35b6001600052601f0160051c7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6908101905b8181106100bf5750610057565b600081556001016100b2565b60008052601f0160051c7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563908101905b818110610108575061001d565b600081556001016100fb565b600080fd5b90600182811c92168015610149575b602083101461013357565b634e487b7160e01b600052602260045260246000fd5b91607f169161012856fe60806040526004361015610023575b361561001957600080fd5b6100216106b2565b005b60003560e01c806306fdde0314610423578063095ea7b3146103a957806318160ddd1461038d57806323b872dd1461035e5780632e1a7d4d146102b9578063313ce5671461029857806370a082311461025e57806395d89b411461013d578063a9059cbb1461010b578063d0e30db0146100f75763dd62ed3e0361000e57346100f25760403660031901126100f2576100ba610526565b6100c261053c565b6001600160a01b039182166000908152600460209081526040808320949093168252928352819020549051908152f35b600080fd5b60003660031901126100f2576100216106b2565b346100f25760403660031901126100f2576020610133610129610526565b60243590336105a8565b6040519015158152f35b346100f25760003660031901126100f2576000604051816001548060011c90600181168015610254575b6020831081146102405782855290811561022457506001146101d0575b50819003601f01601f1916810167ffffffffffffffff8111828210176101bc576101b89250604052604051918291826104dd565b0390f35b634e487b7160e01b83526041600452602483fd5b600184529050827fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b82821061020e57506020915082010183610184565b60018160209254838588010152019101906101f9565b90506020925060ff191682840152151560051b82010183610184565b634e487b7160e01b86526022600452602486fd5b91607f1691610167565b346100f25760203660031901126100f2576001600160a01b0361027f610526565b1660005260036020526020604060002054604051908152f35b346100f25760003660031901126100f257602060ff60025416604051908152f35b346100f25760203660031901126100f2576004353360005260036020526102e7816040600020541015610552565b3360005260036020526040600020610300828254610578565b90558060008115610355575b600080809381933390f115610349576040519081527f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b6560203392a2005b6040513d6000823e3d90fd5b506108fc61030c565b346100f25760603660031901126100f257602061013361037c610526565b61038461053c565b604435916105a8565b346100f25760003660031901126100f257602047604051908152f35b346100f25760403660031901126100f2576103c2610526565b3360008181526004602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b346100f25760003660031901126100f25760006040518182548060011c906001811680156104d3575b60208310811461024057828552908115610224575060011461049c5750819003601f01601f1916810167ffffffffffffffff8111828210176101bc576101b89250604052604051918291826104dd565b90508280526020832083905b8282106104bd57506020915082010183610184565b60018160209254838588010152019101906104a8565b91607f169161044c565b91909160208152825180602083015260005b818110610510575060409293506000838284010152601f8019910116010190565b80602080928701015160408286010152016104ef565b600435906001600160a01b03821682036100f257565b602435906001600160a01b03821682036100f257565b1561055957565b60405162461bcd60e51b81526020600482015260006024820152604490fd5b9190820391821161058557565b634e487b7160e01b600052601160045260246000fd5b9190820180921161058557565b60207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9160018060a01b03169283600052600382526105ee856040600020541015610552565b3384141580610691575b610646575b83600052600382526040600020610615868254610578565b905560018060a01b0316938460005260038252604060002061063882825461059b565b9055604051908152a3600190565b6000848152600483526040808220338352845290205461066890861115610552565b600084815260048352604080822033835284529020805461068a908790610578565b90556105fd565b506000848152600483526040808220338352845290205460001914156105f8565b33600052600360205260406000206106cb34825461059b565b90556040513481527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a256fea26469706673582212209e220afc3d58f06e9fcfb74d0eadc71ef1ec14a29eb328f69f1935849690effe64736f6c634300081a003360808060405234602f57600160ff19600c541617600c55600160ff19601f541617601f556192a490816100358239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c8062173d46146102465780631ed7831c146102415780632558fcec1461023c5780632ade38801461023757806332030cef14610232578063347f3a7c1461022d5780633e5e3c23146102285780633f7286f41461022357806366d9a9a01461021e578063735de9f7146102195780638016f22b146102145780638327f7901461020f57806385226c811461020a5780638c52853c14610205578063916a17c614610200578063944a3ba4146101fb578063acfdc212146101f6578063ad82a627146101f1578063b0464fdc146101ec578063b184b87c146101e7578063b1c388b8146101e2578063b5508aa9146101dd578063b8969900146101d8578063ba414fa6146101d3578063bea9849e146101ce578063cc5ad8b6146101c9578063ced6e793146101c4578063d333abf6146101bf578063d7b3eeaf146101ba578063e20c9f71146101b5578063ebcff1c6146101b0578063f51a071d146101ab578063f59e8a67146101a6578063f9a41697146101a15763fa7626d41461019c57600080fd5b6116ef565b6116b5565b61165c565b6115ec565b6112b0565b611230565b611217565b6111e3565b61117e565b611151565b611112565b6110ed565b6110ae565b611021565b611004565b610f68565b610ebc565b610e35565b610d99565b610d06565b610c5a565b610b95565b610b08565b610a33565b6108a8565b61087f565b6107d3565b610695565b610615565b6105c2565b610586565b6104a9565b610365565b6102d5565b61025b565b600091031261025657565b600080fd5b34610256576000366003190112610256576026546040516001600160a01b039091168152602090f35b906020808351928381520192019060005b8181106102a25750505090565b82516001600160a01b0316845260209384019390920191600101610295565b9060206102d2928181520190610284565b90565b346102565760003660031901126102565760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b818110610346576103428561033681870382610966565b604051918291826102c1565b0390f35b82546001600160a01b031684526020909301926001928301920161031f565b34610256576020366003190112610256576004356000526022602052602060018060a01b0360406000205416604051908152f35b60005b8381106103ac5750506000910152565b818101518382015260200161039c565b906020916103d581518092818552858086019101610399565b601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061041457505050505090565b9091929394603f198282030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b85010194019260005b82811061047e57505050505060208060019297019301930191939290610405565b909192939460208061049c600193605f1987820301895289516103bc565b970195019392910161045d565b3461025657600036600319011261025657601e546104c681611712565b906104d46040519283610966565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061051a576040518061034287826103e1565b6002602060019260405161052d8161090f565b848060a01b0386541681526105438587016117f3565b83820152815201920192019190610505565b6001600160a01b0381160361025657565b6064359061057382610555565b565b9060206102d29281815201906103bc565b34610256576020366003190112610256576103426105ae6004356105a981610555565b61184b565b6040519182916020835260208301906103bc565b34610256576040366003190112610256576106136024356004356105e582610555565b600052602260205260406000209060018060a01b03166bffffffffffffffffffffffff60a01b825416179055565b005b346102565760003660031901126102565760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b818110610676576103428561033681870382610966565b82546001600160a01b031684526020909301926001928301920161065f565b346102565760003660031901126102565760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b8181106106f6576103428561033681870382610966565b82546001600160a01b03168452602090930192600192830192016106df565b906020808351928381520192019060005b8181106107335750505090565b82516001600160e01b031916845260209384019390920191600101610726565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061078657505050505090565b90919293946020806107c4600193603f19868203018752895190836107b483516040845260408401906103bc565b9201519084818403910152610715565b97019301930191939290610777565b3461025657600036600319011261025657601b546107f081611712565b906107fe6040519283610966565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b83831061084457604051806103428782610753565b600260206001926040516108578161090f565b61086086611729565b815261086d858701611883565b8382015281520192019201919061082f565b34610256576000366003190112610256576025546040516001600160a01b039091168152602090f35b34610256576040366003190112610256576106136024356004356108cb82610555565b600090815260216020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761092a57604052565b6108f9565b61010081019081106001600160401b0382111761092a57604052565b606081019081106001600160401b0382111761092a57604052565b90601f801991011681019081106001600160401b0382111761092a57604052565b60405190610573602083610966565b60405190610573606083610966565b60405190610573608083610966565b6040519061057360c083610966565b6001600160401b03811161092a57601f01601f191660200190565b81601f82011215610256578035906109f5826109c3565b92610a036040519485610966565b8284526020838301011161025657816000926020809301838601378301015290565b908160a09103126102565790565b346102565760a036600319011261025657600435610a5081610555565b6024356001600160401b03811161025657610a6f9036906004016109de565b90606435604435610a7f82610555565b608435936001600160401b03851161025657610aa2610613953690600401610a25565b93611f79565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610adb57505050505090565b9091929394602080610af9600193603f1986820301875289516103bc565b97019301930191939290610acc565b3461025657600036600319011261025657601a54610b2581611712565b90610b336040519283610966565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310610b7857604051806103428782610aa8565b600160208192610b8785611729565b815201920192019190610b63565b34610256576040366003190112610256576020602435600435610bb782610555565b60009081526023835260408082206001600160a01b03938416835260205290205b5416604051908152f35b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610c1557505050505090565b9091929394602080610c4b600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610715565b97019301930191939290610c06565b3461025657600036600319011261025657601d54610c7781611712565b90610c856040519283610966565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b838310610ccb57604051806103428782610be2565b60026020600192604051610cde8161090f565b848060a01b038654168152610cf4858701611883565b83820152815201920192019190610cb6565b3461025657602036600319011261025657600435610d2381610555565b601f8054610100600160a81b03191660089290921b610100600160a81b0316919091179055005b9181601f84011215610256578235916001600160401b038311610256576020838186019501011161025657565b60409060a31901126102565760a490565b604090608319011261025657608490565b346102565761010036600319011261025657600435610db781610555565b6024356001600160401b03811161025657610dd69036906004016109de565b90604435610de2610566565b6084356001600160401b03811161025657610e01903690600401610d4a565b91610e0b36610d77565b9360e435966001600160401b03881161025657610e2f610613983690600401610a25565b96612b04565b346102565760e036600319011261025657602435600435610e5582610555565b604435610e6181610555565b60643590608435610e7181610555565b60a4356001600160401b03811161025657610e90903690600401610d4a565b93909260c435966001600160401b03881161025657610eb6610613983690600401610a25565b96613476565b3461025657600036600319011261025657601c54610ed981611712565b90610ee76040519283610966565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b838310610f2d57604051806103428782610be2565b60026020600192604051610f408161090f565b848060a01b038654168152610f56858701611883565b83820152815201920192019190610f18565b346102565760e036600319011261025657600435610f8581610555565b6024356001600160401b03811161025657610fa49036906004016109de565b90604435610fb181610555565b6064356001600160401b03811161025657610fd0903690600401610d4a565b90610fda36610d88565b9260c435956001600160401b03871161025657610ffe610613973690600401610a25565b956138d4565b346102565760003660031901126102565760208054604051908152f35b346102565760003660031901126102565760195461103e81611712565b9061104c6040519283610966565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b83831061109157604051806103428782610aa8565b6001602081926110a085611729565b81520192019201919061107c565b34610256576020366003190112610256576004356110cb81610555565b602680546001600160a01b0319166001600160a01b0392909216919091179055005b34610256576000366003190112610256576020611108613d3b565b6040519015158152f35b346102565760203660031901126102565760043561112f81610555565b602580546001600160a01b0319166001600160a01b0392909216919091179055005b3461025657600036600319011261025657601f5460405160089190911c6001600160a01b03168152602090f35b346102565760c03660031901126102565760243560043561119e82610555565b6044356111aa81610555565b606435608435916111ba83610555565b60a435946001600160401b038611610256576111dd610613963690600401610a25565b94613e3f565b34610256576020366003190112610256576004356000526021602052602060018060a01b0360406000205416604051908152f35b3461025657602036600319011261025657600435602055005b346102565760003660031901126102565760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b818110611291576103428561033681870382610966565b82546001600160a01b031684526020909301926001928301920161127a565b346102565760a0366003190112610256576004356024356112d081610555565b604435916112dd83610555565b6064356001600160401b038111610256576112fc903690600401610d4a565b6084356001600160401b0381116102565761131b903690600401610a25565b601f549095906004906020906113449060081c6001600160a01b03165b6001600160a01b031690565b6040516313917f7760e11b815292839182905afa90811561151d576000916115bd575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d576115a8575b50601f546113d79060081c6001600160a01b0316611338565b604051606087901b6001600160601b03191660208201529261140684603481015b03601f198101865285610966565b61140e610996565b9384526001600160a01b038716602085015285604085015261144a61143d876000526022602052604060002090565b546001600160a01b031690565b90823b156102565760009461147786926040519889978896879563bcf7f32b60e01b875260048701614072565b03926216e360f1908161158d575b5061152257611492611d28565b60205460405163348051d760e11b8152600481019190915290919060008160248160008051602061924f8339815191525afa801561151d57610613956114ef6114ea866040946114f5966000916114fa575b5061413d565b6141c7565b016141bd565b616213565b61151791503d806000833e61150f8183610966565b810190611b3b565b386114e4565b611afa565b505060205460405163348051d760e11b81526004810191909152905060008160248160008051602061924f8339815191525afa90811561151d57610613916114ea91600091611572575b506140b9565b61158791503d806000833e61150f8183610966565b3861156c565b8061159c60006115a293610966565b8061024b565b38611485565b8061159c60006115b793610966565b386113be565b6115df915060203d6020116115e5575b6115d78183610966565b810190611c26565b38611367565b503d6115cd565b3461025657604036600319011261025657602060243560043561160e82610555565b60009081526024835260408082206001600160a01b0393841683526020529020610bd8565b6060906003190112610256576004359060243561164f81610555565b906044356102d281610555565b346102565761061361169661167036611633565b9291600052602360205260406000209060018060a01b0316600052602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b34610256576106136116966116c936611633565b9291600052602460205260406000209060018060a01b0316600052602052604060002090565b3461025657600036600319011261025657602060ff601f54166040519015158152f35b6001600160401b03811161092a5760051b60200190565b9060405191600081548060011c92600182169182156117e9575b6020851083146117d55784875286939260208501929181156117b85750600114611776575b505061057392500383610966565b611787919250600052602060002090565b906000915b8483106117a157506105739350013880611768565b80548284015286935060209092019160010161178c565b9150506105739491925060ff19168252151560051b013880611768565b634e487b7160e01b84526022600452602484fd5b93607f1693611743565b9081546117ff81611712565b9261180d6040519485610966565b818452602084019060005260206000206000915b83831061182e5750505050565b60016020819261183d85611729565b815201920192019190611821565b90813b6000611859826109c3565b6118666040519182610966565b828152611872836109c3565b602082019190601f1901368337943c565b604051815480825290929183906118a36020830191600052602060002090565b926000905b8060078301106119eb576105739454918181106119cc575b8181106119ad575b81811061198e575b81811061196f575b818110611950575b818110611931575b818110611913575b106118fe575b500383610966565b6001600160e01b0319168152602001386118f6565b602083811b6001600160e01b031916855290936001910193016118f0565b604083901b6001600160e01b03191684529260019060200193016118e8565b606083901b6001600160e01b03191684529260019060200193016118e0565b608083901b6001600160e01b03191684529260019060200193016118d8565b60a083901b6001600160e01b03191684529260019060200193016118d0565b60c083901b6001600160e01b03191684529260019060200193016118c8565b6001600160e01b031960e084901b1684529260019060200193016118c0565b916008919350610100600191611a9a8754611a11838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b0194019201859293916118a8565b60405190611ab58261092f565b606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b90816020910312610256575190565b6040513d6000823e3d90fd5b90929192611b13816109c3565b91611b216040519384610966565b829482845282820111610256576020610573930190610399565b602081830312610256578051906001600160401b03821161025657019080601f830112156102565781516102d292602001611b06565b90610573601b602960405180956802db1b430b4b724b2160bd1b6020830152611ba38151809260208686019101610399565b81017f5d205b4552524f525d2047617465776179206e6f7420666f756e640000000000838201520301600419810185520183610966565b9060208251920151916bffffffffffffffffffffffff1983169260148210611c00575050565b6001600160601b031960149290920360031b82901b16169150565b519061057382610555565b9081602091031261025657516102d281610555565b90610573601b602960405180956802db1b430b4b724b2160bd1b6020830152611c6d8151809260208686019101610399565b81017f5d205b4552524f525d20437573746f6479206e6f7420666f756e640000000000838201520301600419810185520183610966565b906105736033602960405180956802db1b430b4b724b2160bd1b6020830152611cd68151809260208686019101610399565b81017f5d205b494e464f5d2045524332302f5a45544120776974686472617720636f6d8382015272706c65746564207375636365737366756c6c7960681b604982015203016013810185520183610966565b3d15611d53573d90611d39826109c3565b91611d476040519384610966565b82523d6000602084013e565b606090565b60266105739193929360296040519586926802db1b430b4b724b2160bd1b6020850152611d8e8151809260208688019101610399565b83017f5d205b4552524f525d2045524332302f5a4554412077697468647261772066618382015265034b632b21d160d51b6049820152611dd8825180936020604f85019101610399565b01010301601f198101845283610966565b8015150361025657565b91909160a081840312610256576040519060a082018281106001600160401b0382111761092a5760405281938135611e2a81610555565b83526020820135611e3a81611de9565b60208401526040820135611e4d81610555565b60408401526060820135916001600160401b03831161025657611e7660809392849383016109de565b60608501520135910152565b906105736023602960405180956802db1b430b4b724b2160bd1b6020830152611eb48151809260208686019101610399565b81017f5d205b4552524f525d2047617320746f6b656e207472616e736665722066616983820152621b195960ea1b604982015203016003810185520183610966565b906105736032602960405180956802db1b430b4b724b2160bd1b6020830152611f288151809260208686019101610399565b81017f5d205b494e464f5d2047617320746f6b656e207472616e7366657220636f6d7083820152716c65746564207375636365737366756c6c7960701b604982015203016012810185520183610966565b9293919093611f86611aa8565b60405163085e1f4d60e41b81529095906001600160a01b03831690602081600481855afa90811561151d57611fd59161143d91600091612657575b50808a526000526021602052604060002090565b6001600160a01b0390811660208901818152929190611ff390611338565b16156125df5761203761203161204f9261201e61133861143d8d516000526022602052604060002090565b1460408b0190815294611bda565b611bda565b60601c90565b6001600160a01b031660608901908152925b51151590565b1561223f57516004919060209061206e906001600160a01b0316611338565b604051635b11259160e01b815293849182905afa91821561151d5760009261221e575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af191821561151d57600080866121068295839561211f9861220a575b50516001600160a01b031690565b5af1612110611d28565b50151560c08701908152612049565b15612190575050915160405163348051d760e11b815260048101919091529150600090508160248160008051602061924f8339815191525afa90811561151d57610573916114ea91600091612175575b50611ef6565b61218a91503d806000833e61150f8183610966565b3861216f565b845160405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa95861561151d576121e16114ea610573986121ea946000916121ef575b50611e82565b51933690611df3565b614ddf565b61220491503d806000833e61150f8183610966565b386121db565b8061159c8661221893610966565b386120f8565b61223891925060203d6020116115e5576115d78183610966565b9038612091565b80516004919060209061225a906001600160a01b0316611338565b60405163dda79b7560e01b815293849182905afa91821561151d576000926125be575b506001600160a01b03919091166080880181815291906122ad906122a090611338565b1560a08a01908152612049565b6125465751600491906020906122cb906001600160a01b0316611338565b604051635b11259160e01b815293849182905afa91821561151d57600092612525575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af191821561151d576113386123629261133892612370956125165750516001600160a01b031690565b91516001600160a01b031690565b6123a361143d8461238c8a516000526024602052604060002090565b9060018060a01b0316600052602052604060002090565b90823b1561025657604051636ce5768960e11b81526001600160a01b0391821660048201529116602482015260448101849052906000908290606490829084905af19081612501575b5061247f5761242e946123fd611d28565b90600060c08201528160e0820152600081516040518099819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d576114ea6121ea936121e1926105739a600091612464575b50611d58565b61247991503d806000833e61150f8183610966565b3861245e565b5050505060008161249660c06124b6940160019052565b516040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea916000916124e6575b50611ca4565b6124fb91503d806000833e61150f8183610966565b386124e0565b8061159c600061251093610966565b386123ec565b8061159c600061221893610966565b61253f91925060203d6020116115e5576115d78183610966565b90386122ee565b50505050505050600061257391516040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea916000916125a3575b50611c3b565b6125b891503d806000833e61150f8183610966565b3861259d565b6125d891925060203d6020116115e5576115d78183610966565b903861227d565b50505050505050600061260c91516040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea9160009161263c575b50611b71565b61265191503d806000833e61150f8183610966565b38612636565b612679915060203d60201161267f575b6126718183610966565b810190611aeb565b38611fc1565b503d612667565b6040519061014082018281106001600160401b0382111761092a5760405260606101208360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201528260e082015260006101008201520152565b356102d281611de9565b908060209392818452848401376000828201840152601f01601f1916010190565b90516001600160a01b039081168252918216602082015291166040820152606081019190915260a0608082018190526102d2939101916126f3565b90610573603c602960405180956802db1b430b4b724b2160bd1b60208301526127818151809260208686019101610399565b81017f5d205b494e464f5d2045524332302f5a45544120776974686472617720616e64838201527f2063616c6c20636f6d706c65746564207375636365737366756c6c790000000060498201520301601c810185520183610966565b602f6105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526128138151809260208688019101610399565b83017f5d205b4552524f525d2045524332302f5a45544120776974686472617720616e838201526e0321031b0b636103330b4b632b21d1608d1b6049820152611dd8825180936020605885019101610399565b906004116102565790600490565b356001600160e01b031981169291906004821061288f575050565b6001600160e01b031960049290920360031b82901b16169150565b90610573605a60405180947f526563656976657220636f6e747261637420646f6573206e6f7420636f6e746160208301527f696e2066756e6374696f6e20776974682073656c6563746f722000000000000060408301526129148151809260208686019101610399565b81010301601f198101845283610966565b600a6105739193929360296040519586926802db1b430b4b724b2160bd1b602085015261295b8151809260208688019101610399565b83016902e902da2a92927a92e960b51b83820152611dd8825180936020603385019101610399565b9080601f830112156102565781516102d292602001611b06565b906020828203126102565781516001600160401b038111610256576102d29201612983565b90516001600160a01b03908116825290911660208201526060604082018190526102d2939101916126f3565b90610573603b602960405180956802db1b430b4b724b2160bd1b6020830152612a208151809260208686019101610399565b81017f5d205b494e464f5d2047617320746f6b656e207472616e7366657220616e6420838201527f63616c6c20636f6d706c65746564207375636365737366756c6c79000000000060498201520301601b810185520183610966565b602e6105739193929360296040519586926802db1b430b4b724b2160bd1b6020850152612ab28151809260208688019101610399565b83017f5d205b4552524f525d2047617320746f6b656e207472616e7366657220616e64838201526d01031b0b636103330b4b632b21d160951b6049820152611dd8825180936020605785019101610399565b95969491939096612b13612686565b60405163085e1f4d60e41b815290986001600160a01b03861691602081600481865afa90811561151d57612b619161143d916000916132d0575b50808d526000526021602052604060002090565b6001600160a01b0390811660208c01818152939190612b7f90611338565b16156132a057612bba6120318c949361202c6040612bd095612bb261133861143d8b516000526022602052604060002090565b149701968752565b6001600160a01b031660608c0190815292612049565b15612f8957612be1602084016126e9565b612e34575b805160049493929190602090612c04906001600160a01b0316611338565b604051635b11259160e01b815296879182905afa94851561151d57600095612e13575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039590951660048601526000856024818360008051602061924f8339815191525af194851561151d576113388992612c9892600098612e055750516001600160a01b031690565b923592612cc1612ca6610987565b6001600160a01b038d168152935b516001600160a01b031690565b92612ce2604051988997889687946338e2252760e01b8652600486016129c2565b0393f19081612de4575b50612d8157612d3094612cfd611d28565b90600061010082015281610120820152600081516040518099819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d576114ea6121ea936121e1926105739a600091612d66575b50612a7c565b612d7b91503d806000833e61150f8183610966565b38612d60565b50505050600081612496610100612d99940160019052565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091612dc9575b506129ee565b612dde91503d806000833e61150f8183610966565b38612dc3565b612e00903d806000833e612df88183610966565b81019061299d565b612cec565b8061159c8a61221893610966565b612e2d91955060203d6020116115e5576115d78183610966565b9338612c27565b612e47612e418686612866565b90612874565b8251612e6e90612e6a908390612e65906001600160a01b031661184b565b61544d565b1590565b612e785750612be6565b9250505087925060009150612e9360c0612ebd990160019052565b604051631623433d60e31b81526001600160e01b0319909116600482015296879081906024820190565b038160008051602061924f8339815191525afa95861561151d57612f1896612eed91600091612f6e575b506128aa565b9060e08101918252600081516040518099819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d576114ea6121ea936121e1926105739a600092612f51575b505190612925565b612f679192503d806000833e61150f8183610966565b9038612f49565b612f8391503d806000833e61150f8183610966565b38612ee7565b80519194929160049190602090612fa8906001600160a01b0316611338565b60405163dda79b7560e01b815293849182905afa91821561151d5760009261327f575b506001600160a01b039190911660808b018181529190612fff908c906120499060a090612ff790611338565b159201918252565b61324f57516004919060209061301d906001600160a01b0316611338565b604051635b11259160e01b815293849182905afa91821561151d5760009261322e575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af191821561151d576113386130b292611338928e956125165750516001600160a01b031690565b92868a6130c36020863596016126e9565b1561321a575061143d6131069161238c6130f460009a5b612cb46130e5610987565b6001600160a01b03909d168d52565b95516000526024602052604060002090565b93803b156102565788966131366000979388946040519a8b998a9889966356840c2960e11b885260048801612714565b0393f19081613205575b506131a25761315194612cfd611d28565b038160008051602061924f8339815191525afa801561151d576114ea6121ea936121e1926105739a600091613187575b506127dd565b61319c91503d806000833e61150f8183610966565b38613181565b505050506000816124966101006131ba940160019052565b038160008051602061924f8339815191525afa90811561151d57610573916114ea916000916131ea575b5061274f565b6131ff91503d806000833e61150f8183610966565b386131e4565b8061159c600061321493610966565b38613140565b6131069161238c6130f461143d939a6130da565b61324891925060203d6020116115e5576115d78183610966565b9038613040565b50505050505050505050600061257391516040518093819263348051d760e11b8352600483019190602083019252565b61329991925060203d6020116115e5576115d78183610966565b9038612fcb565b50505050505050505050600061260c91516040518093819263348051d760e11b8352600483019190602083019252565b6132e9915060203d60201161267f576126718183610966565b38612b4d565b60256105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526133258151809260208688019101610399565b83017f5d205b4552524f525d205a52433230206e6f7420666f756e6420666f722061738382015264039b2ba1d160dd1b6049820152611dd8825180936020604e85019101610399565b9060408061338584516060855260608501906103bc565b6020808601516001600160a01b03169085015293015191015290565b9194926133bb6102d297959260a0855260a085019061336e565b6001600160a01b0396871660208501526040840191909152941660608201528084036080909101526126f3565b90610573603a602960405180956802db1b430b4b724b2160bd1b602083015261341a8151809260208686019101610399565b81017f5d205b494e464f5d205a657461436861696e206465706f73697420616e642063838201527f616c6c20636f6d706c65746564207375636365737366756c6c7900000000000060498201520301601a810185520183610966565b95969491909661349761143d8661238c8a6000526023602052604060002090565b926001600160a01b038416156136b457601f546004906020906134c59060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091613695575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57613680575b50601f546135589060081c6001600160a01b0316611338565b6040516001600160601b031960608c901b166020820152601481529161357f603484610966565b613587610996565b9283526001600160a01b038b166020840152896040840152813b1561025657600087936135ce82968994604051998a988997889663c39aca3760e01b8852600488016133a1565b03926216e360f1908161366b575b506135f357610573956135ed611d28565b95615710565b50505050505061362060006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091613650575b506133e8565b61366591503d806000833e61150f8183610966565b3861364a565b8061159c600061367a93610966565b386135dc565b8061159c600061368f93610966565b3861353f565b6136ae915060203d6020116115e5576115d78183610966565b386134e8565b50505050509150506136e5915060006020546040518094819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d5760009261377a575b50604051632b65311f60e11b81526001600160a01b03909116600482015260008180602481015b038160008051602061924f8339815191525afa801561151d57610573926114ea9260009261375d575b506132ef565b6137739192503d806000833e61150f8183610966565b9038613757565b61372e9192506137956000913d8084833e61150f8183610966565b929150613707565b6040519060e082018281106001600160401b0382111761092a57604052606060c083600081526000602082015260006040820152600083820152826080820152600060a08201520152565b90610573602d602960405180956802db1b430b4b724b2160bd1b602083015261381a8151809260208686019101610399565b81017f5d205b494e464f5d2045564d20657865637574696f6e20636f6d706c65746564838201526c207375636365737366756c6c7960981b60498201520301600d810185520183610966565b60206105739193929360296040519586926802db1b430b4b724b2160bd1b8585015261389a81518092878688019101610399565b83017f5d205b4552524f525d2045564d20657865637574696f6e206661696c65643a2083820152611dd88251809387604985019101610399565b939194959290600460206138e661379d565b60405163085e1f4d60e41b815290989092839182906001600160a01b03165afa90811561151d576139319161143d91600091613d1c575b508089526000526021602052604060002090565b6001600160a01b039081166020880181815292919061394f90611338565b1615613ced5761203161396191611bda565b6001600160a01b031660408701908152602088019161397f836126e9565b613be3575b6004949596979860206139a0611338845160018060a01b031690565b604051635b11259160e01b815297889182905afa95861561151d57600096613bc2575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039690961660048701526000866024818360008051602061924f8339815191525af191821561151d57613a37611338613a3f926000998a96613bb45750516001600160a01b031690565b9135946126e9565b8214613baa57613a6582935b612cb4613a56610987565b6001600160a01b039096168652565b92613a86604051988997889687946338e2252760e01b8652600486016129c2565b0393f19081613b91575b50613b3157613ad292613aa1611d28565b90600060a08201528160c0820152600081516040518097819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d576114ea613b1193613b089261057398600091613b16575b50613866565b51913690611df3565b6146df565b613b2b91503d806000833e61150f8183610966565b38613b02565b505060008161249660a0613b46940160019052565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091613b76575b506137e8565b613b8b91503d806000833e61150f8183610966565b38613b70565b613ba5903d806000833e612df88183610966565b613a90565b613a658993613a4b565b8061159c8861221893610966565b613bdc91965060203d6020116115e5576115d78183610966565b94386139c3565b613bf0612e418686612866565b98613c0b612e6a8b612e656105a9875160018060a01b031690565b613c16579850613984565b50505050505090916000613c5b94613c316060840160019052565b604051631623433d60e31b81526001600160e01b0319909116600482015294859081906024820190565b038160008051602061924f8339815191525afa93841561151d57613cb594613c8a91600091612f6e57506128aa565b9060808101918252600081516040518097819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d576114ea613b1193613b089261057398600092612f5157505190612925565b5050935160405163348051d760e11b81526004810191909152945060009350849250829150506024810161260c565b613d35915060203d60201161267f576126718183610966565b3861391d565b60085460ff168015613d4a5790565b50604051630667f9d760e41b815260008051602061924f833981519152600482018190526519985a5b195960d21b6024830152602090829060449082905afa90811561151d57600091613d9e575b50151590565b613db7915060203d60201161267f576126718183610966565b38613d98565b906105736031602960405180956802db1b430b4b724b2160bd1b6020830152613def8151809260208686019101610399565b81017f5d205b494e464f5d205a657461436861696e206465706f73697420636f6d706c838201527065746564207375636365737366756c6c7960781b604982015203016011810185520183610966565b939194929094613e6061143d8461238c886000526023602052604060002090565b906001600160a01b0382161561404257601f54600490602090613e8e9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091614023575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d5761400e575b50601f54613f219060081c6001600160a01b0316611338565b803b1561025657604051633d14d1b760e21b81526001600160a01b038481166004830152602482018690529290921660448301526000908290606490829084905af19081613ff9575b50613f815761057395613f7b611d28565b95615db5565b505050505050613fae60006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091613fde575b50613dbd565b613ff391503d806000833e61150f8183610966565b38613fd8565b8061159c600061400893610966565b38613f6a565b8061159c600061401d93610966565b38613f08565b61403c915060203d6020116115e5576115d78183610966565b38613eb1565b505060205460405163348051d760e11b8152600481019190915294509092506000915083905080602481016136e5565b909261408d6102d2969495939560a0845260a084019061336e565b6001600160a01b03958616602084015260006040840152941660608201528084036080909101526126f3565b906105736033602960405180956802db1b430b4b724b2160bd1b60208301526140eb8151809260208686019101610399565b81017f5d205b494e464f5d205a657461436861696e20657865637574696f6e20636f6d8382015272706c65746564207375636365737366756c6c7960681b604982015203016013810185520183610966565b60266105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526141738151809260208688019101610399565b83017f5d205b4552524f525d205a657461436861696e20657865637574696f6e2066618382015265034b632b21d160d51b6049820152611dd8825180936020604f85019101610399565b356102d281610555565b6141f46142026105739260405192839163104c13eb60e21b602084015260206024840181815201906103bc565b03601f198101835282610966565b617fe7565b90610573601e602960405180956802db1b430b4b724b2160bd1b60208301526142398151809260208686019101610399565b81017f5d205b494e464f5d2063616c6c4f6e5265766572742069732066616c73650000838201520301600119810185520183610966565b90610573601f602960405180956802db1b430b4b724b2160bd1b60208301526142a28151809260208686019101610399565b81017f5d205b4552524f525d2072657665727441646472657373206973207a65726f00838201520301600019810185520183610966565b90608060606102d29360018060a01b03815116845260018060a01b0360208201511660208501526040810151604085015201519181606082015201906103bc565b9060206102d29281815201906142d9565b600b90602d61057393959460296040519788946802db1b430b4b724b2160bd1b6020870152614363815180926020868a019101610399565b85017f5d205b494e464f5d20457865637574696e67206f6e526576657274206f6e2072838201526c032bb32b93a20b2323932b9b99609d1b60498201526143b4825180936020605685019101610399565b01016a0161031b7b73a32bc3a1d160ad1b83820152611dd8825180936020603885019101610399565b6001600160a01b039182168152602081019290925290911660408201526080606082018190526102d2929101906142d9565b6001600160a01b0390911681526040602082018190526102d2929101906142d9565b602081830312610256578051906001600160401b03821161025657019080601f830112156102565781519161446583611712565b926144736040519485610966565b80845260208085019160051b830101918383116102565760208101915b83831061449f57505050505090565b82516001600160401b038111610256578201906060828703601f19011261025657604051906144cd8261094b565b60208301516001600160401b0381116102565760209084010187601f82011215610256578051906144fd82611712565b9161450b6040519384610966565b80835260208084019160051b830101918a831161025657602001905b8282106145795750505082526040830151916001600160401b0383116102565761456960608561455f8b602080999881990101612983565b8685015201611c1b565b6040820152815201920191614490565b8151815260209182019101614527565b634e487b7160e01b600052603260045260246000fd5b8051156145ac5760200190565b614589565b8051600110156145ac5760400190565b8051600210156145ac5760600190565b80518210156145ac5760209160051b010190565b90610573601d602960405180956802db1b430b4b724b2160bd1b60208301526146178151809260208686019101610399565b81017f5d205b494e464f5d204576656e742066726f6d206f6e5265766572743a000000838201520301600219810185520183610966565b6040519061465d604083610966565b600a825269101032b6b4ba3a32b91d60b11b6020830152565b60405190614685604083610966565b600782526610103230ba309d60c91b6020830152565b604051906146aa604083610966565b60078252662020746f70696360c81b6020830152565b604051906146cf604083610966565b60018252601d60f91b6020830152565b9190606083019081516146f06109a5565b6001600160a01b03851681529060006020830152600060408301526060820152602085015115614d705760008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57614d5b575b5084516001600160a01b031615614cda5760405163348051d760e11b81526004810183905260008160248160008051602061924f8339815191525afa90811561151d57600091614cbf575b5085516147e7906000906001600160a01b03165b604051632b65311f60e11b81526001600160a01b03909116600482015291829081906024820190565b038160008051602061924f8339815191525afa801561151d5761483d91600091614ca4575b506000604051614823816141f4886020830161431a565b604051809481926371aad10d60e01b835260048301610575565b038160008051602061924f8339815191525afa90811561151d5761486d936114ea93600093614c87575b5061432b565b601f5460049060209061488b9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091614c68575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57614c53575b50601f5461491e9060081c6001600160a01b0316611338565b85519091906001600160a01b031690823b1561025657614958926000928360405180968195829463184b079360e01b84526004840161440f565b03926216e360f19081614c3e575b5061498c57600080614984604061057397015160018060a01b031690565b935193616ba4565b9150506040519163064554e960e21b83526000836004818360008051602061924f8339815191525af192831561151d57600093614c1b575b5060005b8351811015614c15576149ef60406149e083876145d1565b5101516001600160a01b031690565b6040830151614a06906001600160a01b0316611338565b6001600160a01b0390911614614a1f575b6001016149c8565b60405163348051d760e11b815260048101849052909491929060008160248160008051602061924f8339815191525afa90811561151d57614a6c916114ea91600091614bfc575b506145e5565b614a8060006147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d57614ab391600091614be3575b50614aae61464e565b618002565b614ae160006020614ac488886145d1565b510151604051809381926371aad10d60e01b835260048301610575565b038160008051602061924f8339815191525afa801561151d57614b0f91600091614bca575b50614aae614676565b60005b614b1c86866145d1565b515151811015614bc157806000614b41614b6193614b3a8a8a6145d1565b51516145d1565b5160405180948192631623433d60e31b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d57600192614ba291600091614ba8575b50614b9361469b565b83614b9c6146c0565b91618046565b01614b12565b614bbb913d8091833e61150f8183610966565b38614b8a565b50919093614a17565b614bdd913d8091833e61150f8183610966565b38614b06565b614bf6913d8091833e61150f8183610966565b38614aa5565b614c0f913d8091833e61150f8183610966565b38614a66565b50505050565b614c3791933d8091833e614c2f8183610966565b810190614431565b91386149c4565b8061159c6000614c4d93610966565b38614966565b8061159c6000614c6293610966565b38614905565b614c81915060203d6020116115e5576115d78183610966565b386148ae565b614c9d9193503d806000833e61150f8183610966565b9138614867565b614cb991503d806000833e61150f8183610966565b3861480c565b614cd491503d806000833e61150f8183610966565b386147aa565b5060205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa94851561151d57614984604060009392614d336114ea6105739a87968791614d41575b50614270565b01516001600160a01b031690565b614d5591503d8089833e61150f8183610966565b38614d2d565b8061159c6000614d6a93610966565b3861475f565b5060405163348051d760e11b81526004810182905260008160248160008051602061924f8339815191525afa94851561151d57614984604060009392614d336114ea6105739a87968791614dc5575b50614207565b614dd991503d8089833e61150f8183610966565b38614dbf565b93929060608501928351614df16109a5565b6001600160a01b0387168152906001600160a01b03841660208301528260408301526060820152614e256020880151151590565b156153bd5760008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d576153a8575b5086516001600160a01b03161561533e5760405163348051d760e11b81526004810185905260008160248160008051602061924f8339815191525afa90811561151d57600091615323575b508751614ed2906000906001600160a01b03166147be565b038160008051602061924f8339815191525afa801561151d57614f0d91600091614ca457506000604051614823816141f4886020830161431a565b038160008051602061924f8339815191525afa90811561151d57614f3c936114ea93600093614c87575061432b565b601f54600490602090614f5a9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091615304575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d576152ef575b506001600160a01b03831661524f57601f54614ffb9060081c6001600160a01b0316611338565b87519091906001600160a01b031690823b1561025657615035926000928360405180968195829463184b079360e01b84526004840161440f565b03926216e360f1908161523a575b50615062576040959095015161057395906001600160a01b0316614984565b50509150505b60405163064554e960e21b8152916000836004818360008051602061924f8339815191525af192831561151d5760009361521f575b5060005b8351811015614c15576150b960406149e083876145d1565b60408301516150d0906001600160a01b0316611338565b6001600160a01b03909116146150e9575b6001016150a1565b60405163348051d760e11b815260048101849052909491929060008160248160008051602061924f8339815191525afa90811561151d57615135916114ea91600091614bfc57506145e5565b61514960006147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d5761517691600091614be35750614aae61464e565b61518760006020614ac488886145d1565b038160008051602061924f8339815191525afa801561151d576151b491600091614bca5750614aae614676565b60005b6151c186866145d1565b51515181101561521657806000614b416151df93614b3a8a8a6145d1565b038160008051602061924f8339815191525afa91821561151d5760019261521091600091614ba85750614b9361469b565b016151b7565b509190936150e1565b61523391933d8091833e614c2f8183610966565b913861509d565b8061159c600061524993610966565b38615043565b601f546152679060081c6001600160a01b0316611338565b87519091906001600160a01b031690823b15610256576152a39260009283604051809681958294639d4ba46560e01b84528a8c600486016143dd565b03926216e360f190816152da575b506152d0576040959095015161057395906001600160a01b0316614984565b5050915050615068565b8061159c60006152e993610966565b386152b1565b8061159c60006152fe93610966565b38614fd4565b61531d915060203d6020116115e5576115d78183610966565b38614f7d565b61533891503d806000833e61150f8183610966565b38614eba565b5060205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d5761057397614d336114ea614984946040946000916153935750614270565b614d5591503d806000833e61150f8183610966565b8061159c60006153b793610966565b38614e6f565b5060405163348051d760e11b81526004810184905260008160248160008051602061924f8339815191525afa90811561151d5761057397614d336114ea6149849460409460009161540e5750614207565b614dd991503d806000833e61150f8183610966565b634e487b7160e01b600052601160045260246000fd5b906104b0820180921161544857565b615423565b919060005b600481018082116154485784511061549757602081850101516001600160e01b031983811691161461548f57600019811461544857600101615452565b506001925050565b506000925050565b604051906154ac8261092f565b600060e083606081528260208201528260408201528260608201528260808201528260a08201528260c08201520152565b604051906154ec604083610966565b600782526619195c1bdcda5d60ca1b6020830152565b60405190615511604083610966565b601082526f19195c1bdcda5d08185b990818d85b1b60821b6020830152565b600990601461057393959460296040519788946802db1b430b4b724b2160bd1b6020870152615568815180926020868a019101610399565b85017302e902da2a92927a92e902d32ba30a1b430b4b7160651b8382015261559a825180936020603d85019101610399565b0101680103330b4b632b21d160bd1b83820152611dd8825180936020601d85019101610399565b919082604091031261025657602082516155da81610555565b92015190565b9081602091031261025657516102d281611de9565b90610573603a602960405180956802db1b430b4b724b2160bd1b60208301526156278151809260208686019101610399565b81017f5d205b4552524f525d204661696c656420746f206d696e74205a524332302074838201527f6f6b656e7320666f722070726f746f636f6c206164647265737300000000000060498201520301601a810185520183610966565b9190820391821161544857565b90610573602f602960405180956802db1b430b4b724b2160bd1b60208301526156c28151809260208686019101610399565b81017f5d205b4552524f525d204661696c656420746f206275726e2072656d61696e69838201526e6e67205a5243323020746f6b656e7360881b60498201520301600f810185520183610966565b9094939195615751939661572261549f565b9161572b615502565b835260006020546040518098819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa95861561151d576114ea826157b99861578893600091615d9a575b50865190615530565b6040805163fc5fecd560e01b815260808901356004820152966001600160a01b038416939190889081906024820190565b0381865afa801561151d57600097600091615d65575b50604085019081526001600160a01b039097166020850190815296601f546004906020906158089060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091615d46575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03821660048201526000816024818360008051602061924f8339815191525af1801561151d57615d31575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018d905260208160448160008a5af190811561151d57600091615d12575b5015156060870190815260008051602061924f8339815191523b15610256576040516303223eab60e11b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af190811561151d5761592e92612e6a92615cfd575b5051151590565b615c805780519060a0860191825260c086019861594b8a60019052565b805161595f906001600160a01b0316611338565b8603615bf8575b505060008051602061924f8339815191523b15610256576040516390c5013b60e01b8152906000826004818360008051602061924f8339815191525af191821561151d576159bb92615be3575b50518b615683565b608085018181529a9015615bc4575050601f54600491506020906159ea9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091615ba5575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57600092602092615a9292615b91575b508a51604051948580948193630852cd8d60e31b8352600483019190602083019252565b03925af1801561151d57615abd92612e6a92600092615b59575b5060e0612049910191829015159052565b615ae157615adb615ad361057397519451151590565b943690611df3565b90618832565b505050505050615b0e60006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091615b3e575b50615690565b615b5391503d806000833e61150f8183610966565b38615b38565b612049919250615b8260e09160203d602011615b8a575b615b7a8183610966565b8101906155e0565b929150615aac565b503d615b70565b8061159c86615b9f93610966565b38615a6e565b615bbe915060203d6020116115e5576115d78183610966565b38615a0d565b9496509450956105739850615bde925060409150016141bd565b61788e565b8061159c6000615bf293610966565b386159b3565b60008a52516001600160a01b03169051601f54600490602090615c269060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa91821561151d57615c56938f92600094615c5f575b5086618362565b81523880615966565b615c7991945060203d6020116115e5576115d78183610966565b9238615c4f565b5050505050505050505050615cb260006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091615ce2575b506155f5565b615cf791503d806000833e61150f8183610966565b38615cdc565b8061159c6000615d0c93610966565b38615927565b615d2b915060203d602011615b8a57615b7a8183610966565b386158be565b8061159c6000615d4093610966565b38615880565b615d5f915060203d6020116115e5576115d78183610966565b3861582b565b9050615d8a91975060403d604011615d93575b615d828183610966565b8101906155c1565b969096386157cf565b503d615d78565b615daf91503d806000833e61150f8183610966565b3861577f565b90949391956157519396615dc761549f565b9161572b6154dd565b90610573601e602960405180956802db1b430b4b724b2160bd1b6020830152615e028151809260208686019101610399565b81017f5d205b4552524f525d2061626f727441646472657373206973207a65726f0000838201520301600119810185520183610966565b6007600461057392949394602f6040519687926e021b0b713ba103a3930b739b332b91608d1b6020850152615e778151809260208688019101610399565b83016301037b3160e51b83820152615e99825180936020603385019101610399565b01016620746f6b656e7360c81b838201520301601819810185520183610966565b600460129295946017610573956029604051998a966802db1b430b4b724b2160bd1b6020890152615ef4815180926020868c019101610399565b87017f5d205b4552524f525d205472616e7366657272696e672000000000000000000083820152615f2f825180936020604085019101610399565b01016301037b3160e51b83820152615f51825180936020601b85019101610399565b0101710103a37b5b2b739903a379039b2b73232b9160751b83820152611dd8825180936020601685019101610399565b602d6105739193929360296040519586926802db1b430b4b724b2160bd1b6020850152615fb78151809260208688019101610399565b83017f5d205b494e464f5d205472616e7366657272696e6720746f6b656e7320746f20838201526c030b137b93a20b2323932b9b99609d1b6049820152611dd8825180936020605685019101610399565b6102d29160a0616021835160c0845260c08401906103bc565b92600180831b036020820151166020840152604081015160408401526060810151151560608401526080810151608084015201519060a08184039101526103bc565b9060206102d2928181520190616008565b601d90601261057393959460296040519788946802db1b430b4b724b2160bd1b60208701526160ac815180926020868a019101610399565b85017102e902da4a72327ae9021b7b73a3930b1ba160751b838201526160dc825180936020603b85019101610399565b01017f20657865637574696e67206f6e41626f72742c20636f6e746578743a2000000083820152611dd8825180936020602f85019101610399565b6001600160a01b0390911681526040602082018190526102d292910190616008565b90610573601c602960405180956802db1b430b4b724b2160bd1b602083015261616b8151809260208686019101610399565b81017f5d205b494e464f5d204576656e742066726f6d206f6e41626f72743a00000000838201520301600319810185520183610966565b601a6105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526161d88151809260208688019101610399565b83017f5d205b4552524f525d206f6e41626f7274206661696c65643a2000000000000083820152611dd8825180936020604385019101610399565b6001600160a01b0381169360009390928515616a625760205460405163348051d760e11b81526004810191909152858160248160008051602061924f8339815191525afa90811561151d578691616a48575b50604051632b65311f60e11b81526001600160a01b038516600482015290868260248160008051602061924f8339815191525afa91821561151d5787926162b7926114ea928592616a2c575b50615f81565b616836575b604080516001600160a01b0390951660208601526162dd90859081016113f8565b6162e56109b4565b9384526001600160a01b0385166020850152604084018590528415156060850152608084015260a083015260205460405163348051d760e11b8152600481019190915283818060248101038160008051602061924f8339815191525afa90811561151d57849161681c575b50604051632b65311f60e11b81526001600160a01b0383166004820152848160248160008051602061924f8339815191525afa801561151d576163aa918691616802575b5085604051614823816141f48960208301616063565b038160008051602061924f8339815191525afa90811561151d576163d9936114ea9388936167e6575b50616074565b601f546004906020906163f79060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d5784916167c7575b5060008051602061924f8339815191523b156167975760405163ca669fa760e01b81526001600160a01b0391909116600482015283816024818360008051602061924f8339815191525af1801561151d576167b3575b5060008051602061924f8339815191523b156167af576040516320d797a960e11b815283816004818360008051602061924f8339815191525af1801561151d5761679b575b50601f546164cd9060081c6001600160a01b0316611338565b90813b15616797579183916164f99383604051809681958294632095dedb60e01b845260048401616117565b03925af19081616783575b50616583576165399150616516611d28565b816020546040518095819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d5761057393836114ea9492616568575b50506161a2565b61657c92503d8091833e61150f8183610966565b3880616561565b60405163064554e960e21b81529181836004818360008051602061924f8339815191525af192831561151d578293616767575b50815b8351811015614c1557816165d561133860406149e085896145d1565b146165e3575b6001016165b9565b60205460405163348051d760e11b81526004810191909152909490838160248160008051602061924f8339815191525afa90811561151d57616630916114ea91869161674d575b50616139565b616643836147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d5761666f9185916167395750614aae61464e565b61667f836020614ac488886145d1565b038160008051602061924f8339815191525afa801561151d576166ab9185916167255750614aae614676565b825b6166b786866145d1565b51515181101561671e578084614b416166d493614b3a8a8a6145d1565b038160008051602061924f8339815191525afa91821561151d5760019261670491879161670a5750614b9361469b565b016166ad565b614bbb91503d8089833e61150f8183610966565b50936165db565b614bdd91503d8087833e61150f8183610966565b614bf691503d8087833e61150f8183610966565b61676191503d8088833e61150f8183610966565b3861662a565b61677c9193503d8084833e614c2f8183610966565b91386165b6565b8061159c8461679193610966565b38616504565b8380fd5b8061159c856167a993610966565b386164b4565b8280fd5b8061159c856167c193610966565b3861646f565b6167e0915060203d6020116115e5576115d78183610966565b38616419565b6167fb9193503d808a833e61150f8183610966565b91386163d3565b61681691503d8088833e61150f8183610966565b38616394565b61683091503d8086833e61150f8183610966565b38616350565b601f546004906020906168549060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d578691616a0d575b5060008051602061924f8339815191523b156169d85760405163ca669fa760e01b81526001600160a01b038216600482015286816024818360008051602061924f8339815191525af1801561151d576169f9575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018790526020816044818a805af1801561151d576169dc575b5060008051602061924f8339815191523b156169d85760405163ca669fa760e01b81526001600160a01b0391909116600482015285816024818360008051602061924f8339815191525af1801561151d576169c4575b5060405163a9059cbb60e01b81526001600160a01b0384166004820152602481018690529360208560448189805af190811561151d576113f8956162dd926169a5575b509450506162bc565b6169bd9060203d602011615b8a57615b7a8183610966565b503861699c565b8061159c876169d293610966565b38616959565b8580fd5b6169f49060203d602011615b8a57615b7a8183610966565b616903565b8061159c88616a0793610966565b386168ca565b616a26915060203d6020116115e5576115d78183610966565b38616876565b616a419192503d8087833e61150f8183610966565b90386162b1565b616a5c91503d8088833e61150f8183610966565b38616265565b60205460405163348051d760e11b815260048101919091528590818160248160008051602061924f8339815191525afa90811561151d57616aae916114ea918491616b8a575b50615dd0565b5060405163348051d760e11b81526000600482018190528160248160008051602061924f8339815191525afa90811561151d57600091616b6f575b50604051632b65311f60e11b81526000600482018190528180602481015b038160008051602061924f8339815191525afa801561151d57616b4e92616b3692600092616b52575b50615e39565b60405162461bcd60e51b815291829160048301610575565b0390fd5b616b689192503d806000833e61150f8183610966565b9084616b30565b616b8491503d806000833e61150f8183610966565b81616ae9565b616b9e91503d8086833e61150f8183610966565b84616aa8565b6001600160a01b03811695949093909290919086156173e95760205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d576000916173ce575b50604051632b65311f60e11b81526001600160a01b038716600482015260008160248160008051602061924f8339815191525afa801561151d57616c4a926114ea926000926173b85750615f81565b6001600160a01b038116801515806173af575b6171ab575b50604080516001600160a01b039097166020880152616cae9190616c9390889081015b03601f198101895288610966565b616c9b6109b4565b9687526001600160a01b03166020870152565b604085015260016060850152608084015260a083015260205460405163348051d760e11b815260048101919091526000818060248101038160008051602061924f8339815191525afa90811561151d57600091617190575b50604051632b65311f60e11b81526001600160a01b038316600482015260008160248160008051602061924f8339815191525afa801561151d57616d6391600091617175575b506000604051614823816141f48960208301616063565b038160008051602061924f8339815191525afa90811561151d57616d92936114ea9360009361715f5750616074565b601f54600490602090616db09060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617140575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d5761712b575b5060008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57617116575b50601f54616e899060081c6001600160a01b0316611338565b91823b1561025657616eb59260009283604051809681958294632095dedb60e01b845260048401616117565b03925af19081617101575b50616f355750616ece611d28565b60205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa91821561151d57610573926114ea92600091616f1a575b506161a2565b616f2f91503d806000833e61150f8183610966565b38616f14565b60405163064554e960e21b8152906000826004818360008051602061924f8339815191525af191821561151d576000926170e6575b5060005b82518110156170e15781616f8a61133860406149e085886145d1565b14616f98575b600101616f6e565b60205460405163348051d760e11b8152600481019190915290939060008160248160008051602061924f8339815191525afa90811561151d57616fe6916114ea916000916170ce5750616139565b616ffa60006147be60406149e088886145d1565b038160008051602061924f8339815191525afa801561151d5761702791600091614be35750614aae61464e565b61703860006020614ac487876145d1565b038160008051602061924f8339815191525afa801561151d5761706591600091614bca5750614aae614676565b60005b61707285856145d1565b5151518110156170c757806000614b4161709093614b3a89896145d1565b038160008051602061924f8339815191525afa91821561151d576001926170c191600091614ba85750614b9361469b565b01617068565b5092616f90565b616761913d8091833e61150f8183610966565b505050565b6170fa91923d8091833e614c2f8183610966565b9038616f6a565b8061159c600061711093610966565b38616ec0565b8061159c600061712593610966565b38616e70565b8061159c600061713a93610966565b38616e2a565b617159915060203d6020116115e5576115d78183610966565b38616dd3565b6167fb9193503d806000833e61150f8183610966565b61718a91503d806000833e61150f8183610966565b38616d4c565b6171a591503d806000833e61150f8183610966565b38616d06565b601f549091906004906020906171cc9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617390575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03821660048201526000816024818360008051602061924f8339815191525af1801561151d5761737b575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018590526020816044816000885af1801561151d5761735e575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57617349575b5060405163a9059cbb60e01b81526001600160a01b03871660048201526024810184905291602090839060449082906000905af1801561151d57616c8597616cae93616c939261732a575b5097505090616c62565b6173429060203d602011615b8a57615b7a8183610966565b5038617320565b8061159c600061735893610966565b386172d5565b6173769060203d602011615b8a57615b7a8183610966565b61727e565b8061159c600061738a93610966565b38617244565b6173a9915060203d6020116115e5576115d78183610966565b386171ef565b50821515616c5d565b616a419192503d806000833e61150f8183610966565b6173e391503d806000833e61150f8183610966565b38616bfb565b95509250505060205460405163348051d760e11b81526000818061741585600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57617444916114ea916000916178735750615dd0565b6001600160a01b038416908115158061786a575b156177e15760405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d576000916177c6575b5060405163348051d760e11b8152600481018490529460008660248160008051602061924f8339815191525afa95861561151d576000966177a3575b50604051632b65311f60e11b81526001600160a01b03909116600482015260008180602481015b038160008051602061924f8339815191525afa90811561151d57600091617788575b50604051632b65311f60e11b81526001600160a01b03861660048201529060008260248160008051602061924f8339815191525afa90811561151d57600497617572946114ea9460009461776b575b50615eba565b601f5460209061758d9060081c6001600160a01b0316611338565b6040516313917f7760e11b815295869182905afa93841561151d5760009461774a575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03851660048201526000816024818360008051602061924f8339815191525af1801561151d57617735575b506040516311f9fbc960e21b81526001600160a01b0385166004820152602481018390526020816044816000865af1801561151d57617718575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039490941660048501526000846024818360008051602061924f8339815191525af192831561151d576176d794602094617703575b5060405163a9059cbb60e01b81526001600160a01b03909116600482015260248101929092529092839190829060009082906044820190565b03925af1801561151d576176e85750565b6177009060203d602011615b8a57615b7a8183610966565b50565b8061159c600061771293610966565b3861769e565b6177309060203d602011615b8a57615b7a8183610966565b61763f565b8061159c600061774493610966565b38617605565b61776491945060203d6020116115e5576115d78183610966565b92386175b0565b6177819194503d806000833e61150f8183610966565b923861756c565b61779d91503d806000833e61150f8183610966565b3861751d565b6174fb9196506177be6000913d8084833e61150f8183610966565b9691506174d4565b6177db91503d806000833e61150f8183610966565b38617498565b60405163348051d760e11b8152600481018490528560008260248160008051602061924f8339815191525afa91821561151d57600092617847575b50604051632b65311f60e11b81526001600160a01b0390911660048201526000818060248101616b07565b616b079192506178626000913d8084833e61150f8183610966565b92915061781c565b50821515617458565b61788891503d806000833e61150f8183610966565b38616aa8565b6001600160a01b03811695949093909290919086156173e95760205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d57600091617fcc575b50604051632b65311f60e11b81526001600160a01b038716600482015260008160248160008051602061924f8339815191525afa801561151d57617934926114ea926000926173b85750615f81565b6001600160a01b03811680151580617fc3575b617dbf575b50604080516001600160a01b0390971660208801526179739190616c939088908101616c85565b604085015260006060850152608084015260a083015260205460405163348051d760e11b815260048101919091526000818060248101038160008051602061924f8339815191525afa90811561151d57600091617da4575b50604051632b65311f60e11b81526001600160a01b038316600482015260008160248160008051602061924f8339815191525afa801561151d57617a279160009161717557506000604051614823816141f48960208301616063565b038160008051602061924f8339815191525afa90811561151d57617a56936114ea9360009361715f5750616074565b601f54600490602090617a749060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617d85575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57617d70575b5060008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57617d5b575b50601f54617b4d9060081c6001600160a01b0316611338565b91823b1561025657617b799260009283604051809681958294632095dedb60e01b845260048401616117565b03925af19081617d46575b50617b925750616ece611d28565b60405163064554e960e21b8152906000826004818360008051602061924f8339815191525af191821561151d57600092617d2b575b5060005b82518110156170e15781617be761133860406149e085886145d1565b14617bf5575b600101617bcb565b60205460405163348051d760e11b8152600481019190915290939060008160248160008051602061924f8339815191525afa90811561151d57617c43916114ea916000916170ce5750616139565b617c5760006147be60406149e088886145d1565b038160008051602061924f8339815191525afa801561151d57617c8491600091614be35750614aae61464e565b617c9560006020614ac487876145d1565b038160008051602061924f8339815191525afa801561151d57617cc291600091614bca5750614aae614676565b60005b617ccf85856145d1565b515151811015617d2457806000614b41617ced93614b3a89896145d1565b038160008051602061924f8339815191525afa91821561151d57600192617d1e91600091614ba85750614b9361469b565b01617cc5565b5092617bed565b617d3f91923d8091833e614c2f8183610966565b9038617bc7565b8061159c6000617d5593610966565b38617b84565b8061159c6000617d6a93610966565b38617b34565b8061159c6000617d7f93610966565b38617aee565b617d9e915060203d6020116115e5576115d78183610966565b38617a97565b617db991503d806000833e61150f8183610966565b386179cb565b601f54909190600490602090617de09060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617fa4575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03821660048201526000816024818360008051602061924f8339815191525af1801561151d57617f8f575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018590526020816044816000885af1801561151d57617f72575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57617f5d575b5060405163a9059cbb60e01b81526001600160a01b03871660048201526024810184905291602090839060449082906000905af1801561151d57616c859761797393616c9392617f3e575b509750509061794c565b617f569060203d602011615b8a57615b7a8183610966565b5038617f34565b8061159c6000617f6c93610966565b38617ee9565b617f8a9060203d602011615b8a57615b7a8183610966565b617e92565b8061159c6000617f9e93610966565b38617e58565b617fbd915060203d6020116115e5576115d78183610966565b38617e03565b50821515617947565b617fe191503d806000833e61150f8183610966565b386178e5565b600080916020815191016a636f6e736f6c652e6c6f675afa50565b614202618034916141f461057394604051948593634b5c427760e01b60208601526040602486015260648501906103bc565b838103602319016044850152906103bc565b6141f4610573946180936142029461807c96604051978896635ab84e1f60e01b60208901526080602489015260a48801906103bc565b9160448701526023198683030160648701526103bc565b838103602319016084850152906103bc565b156180ac57565b60405162461bcd60e51b8152602060048201526016602482015275155b9a5cddd85c081c9bdd5d195c881b9bdd081cd95d60521b6044820152606490fd5b156180f157565b60405162461bcd60e51b815260206004820152600d60248201526c15d6915510481b9bdd081cd95d609a1b6044820152606490fd5b604051608091906181378382610966565b6003815291601f1901366020840137565b604051606091906181598382610966565b6002815291601f1901366020840137565b602081830312610256578051906001600160401b03821161025657019080601f8301121561025657815161819d81611712565b926181ab6040519485610966565b81845260208085019260051b82010192831161025657602001905b8282106181d35750505090565b81518152602091820191016181c6565b919260809361820892979695978452602084015260a0604084015260a0830190610284565b6001600160a01b0390951660608201520152565b6040519061822b604083610966565b600282526134b760f11b6020830152565b6001600791601a61057394969560296040519889946802db1b430b4b724b2160bd1b6020870152618276815180926020868a019101610399565b85017f5d205b494e464f5d2053776170207375636365737366756c3a20000000000000838201526182b1825180936020604385019101610399565b0101600160fd1b838201526182d0825180936020601b85019101610399565b010166081b995959195960ca1b838201520301601819810185520183610966565b601f6105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526183278151809260208688019101610399565b83017f5d205b4552524f525d20556e69737761702073776170206661696c65643a200083820152611dd8825180936020604885019101610399565b60255493946001600160a01b0390941693909291906183828515156180a5565b6026546183a29061839b906001600160a01b0316611338565b15156180ea565b60405163095ea7b360e01b81526001600160a01b039586166004820152602481018790529484169460208160448160008a5af1801561151d5761869b575b5060006183eb618126565b91618408866183f98561459f565b6001600160a01b039091169052565b602654618422906001600160a01b03165b6183f9856145b1565b61842f846183f9856145c1565b61843842615439565b60255490939061845290611338906001600160a01b031681565b90838a61847660405197889687958694634401edf760e11b86528d600487016181e3565b03925af1908161867a575b506184f95750505050618492611d28565b60205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa91821561151d576102d2926114ea926000916184de575b506182f1565b6184f391503d806000833e61150f8183610966565b386184d8565b60265461851991906001600160a01b0316809361851461821c565b61916f565b918251156186735761852d6185369361459f565b5161851461821c565b9081511561866e5760205460405163348051d760e11b81526004810191909152925060008360248160008051602061924f8339815191525afa90811561151d576185ae93600092618651575b50600061858e8461459f565b516040518096819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa93841561151d5760009461862f575b506000600491604051928380926306fdde0360e01b82525afa801561151d5761860e94618609936114ea93600093618612575b5061823c565b61459f565b5190565b6186289193503d806000833e61150f8183610966565b9138618603565b60049194506186496000913d8084833e61150f8183610966565b9491506185d0565b6186679192503d806000833e61150f8183610966565b9038618582565b505090565b5050505090565b618696903d806000833e61868e8183610966565b81019061816a565b618481565b6186b39060203d602011615b8a57615b7a8183610966565b6183e0565b604051906186c7604083610966565b600382526267617360e81b6020830152565b60046012929594602e610573956029604051998a966802db1b430b4b724b2160bd1b6020890152618713815180926020868c019101610399565b87017f5d205b4552524f525d2072657665727441646472657373206973207a65726f2c838201526d0103a3930b739b332b93934b733960951b6049820152618765825180936020605785019101610399565b01016301037b3160e51b83820152615f51825180936020603285019101610399565b1561878e57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b6001600160a01b03918216815291166020820152604081019190915260a06060820181905260009082015260c0608082018190526102d2929101906142d9565b6080906102d2939260018060a01b03168152606060208201526000606082015281604082015201906142d9565b93949190946060860151926188456109a5565b6001600160a01b0382168152936001600160a01b038416602086015285604086015260608501526188796020880151151590565b15618e15575060008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57618e00575b5060405163348051d760e11b81526004810186905260008160248160008051602061924f8339815191525afa90811561151d57600091618de5575b508651618917906000906001600160a01b03166147be565b038160008051602061924f8339815191525afa801561151d5761895391600091618dca575b506000604051614823816141f48a6020830161431a565b038160008051602061924f8339815191525afa90811561151d57618982936114ea93600093614c87575061432b565b600460206189a061133861143d896000526021602052604060002090565b604051635b11259160e01b815292839182905afa90811561151d57600091618dab575b5060008051602061924f8339815191523b15610256576040516303223eab60e11b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57618d96575b5015618cc85750618a3b61133861143d856000526021602052604060002090565b608085015185519192916001600160a01b0316833b156102565760405163cb7ba8e560e01b815294600094869485938491618a799160048401618805565b0393f1801561151d57618cb3575b505b60008051602061924f8339815191523b15610256576040516390c5013b60e01b81526000816004818360008051602061924f8339815191525af1801561151d57618c9e575b5060405163064554e960e21b8152916000836004818360008051602061924f8339815191525af192831561151d57600093618c83575b5060005b8351811015614c1557618b2060406149e083876145d1565b8251618b34906001600160a01b0316611338565b6001600160a01b0390911614618b4d575b600101618b08565b60405163348051d760e11b815260048101849052909491929060008160248160008051602061924f8339815191525afa90811561151d57618b99916114ea91600091614bfc57506145e5565b618bad60006147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d57618bda91600091614be35750614aae61464e565b618beb60006020614ac488886145d1565b038160008051602061924f8339815191525afa801561151d57618c1891600091614bca5750614aae614676565b60005b618c2586866145d1565b515151811015618c7a57806000614b41618c4393614b3a8a8a6145d1565b038160008051602061924f8339815191525afa91821561151d57600192618c7491600091614ba85750614b9361469b565b01618c1b565b50919093618b45565b618c9791933d8091833e614c2f8183610966565b9138618b04565b8061159c6000618cad93610966565b38618ace565b8061159c6000618cc293610966565b38618a87565b909160046020618ce861133861143d886000526021602052604060002090565b60405163dda79b7560e01b815292839182905afa90811561151d57600091618d77575b50608086015186516001600160a01b0392831694919216843b15610256576000948591618d4e60405198899788968794634cd1e1ab60e11b8652600486016187c5565b0393f1801561151d57618d62575b50618a89565b8061159c6000618d7193610966565b38618d5c565b618d90915060203d6020116115e5576115d78183610966565b38618d0b565b8061159c6000618da593610966565b38618a1a565b618dc4915060203d6020116115e5576115d78183610966565b386189c3565b618ddf91503d806000833e61150f8183610966565b3861893c565b618dfa91503d806000833e61150f8183610966565b386188ff565b8061159c6000618e0f93610966565b386188c4565b60405163348051d760e11b81526004810187905294969095929491935060008260248160008051602061924f8339815191525afa801561151d576114ea612cb491618e679460009161540e5750614207565b936001600160a01b03851615618fa8575b506020618e9761133861143d6004946000526021602052604060002090565b604051635b11259160e01b815292839182905afa90811561151d57600091618f89575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57618f74575b5015618f325750600080806105739481945af1618f2c611d28565b50618787565b60405163a9059cbb60e01b81526001600160a01b039283166004820152602481019390935260209183916044918391600091165af1801561151d576176e85750565b8061159c6000618f8393610966565b38618f11565b618fa2915060203d6020116115e5576115d78183610966565b38618eba565b60405163348051d760e11b81526004810183905291945060008260248160008051602061924f8339815191525afa91821561151d5760009261913b575b5060405163348051d760e11b8152600481018790529060008260248160008051602061924f8339815191525afa91821561151d5760009261911e575b50600084156190bc57506190336186b8565b604051632b65311f60e11b81526001600160a01b03831660048201529260008460248160008051602061924f8339815191525afa92831561151d576190946114ea618e97956113389561143d9560049a60209a60009461909f575b506186d9565b979450505050618e78565b6190b59194503d806000833e61150f8183610966565b923861908e565b604051632b65311f60e11b81526001600160a01b0387166004820152818160248160008051602061924f8339815191525afa91821561151d578092619103575b5050619033565b61911792503d8091833e61150f8183610966565b38806190fc565b6191349192503d806000833e61150f8183610966565b9038619021565b6191519192503d806000833e61150f8183610966565b9038618fe5565b6040906102d2939281528160208201520190610284565b90919261918b90618419619181618148565b956183f98761459f565b6020815191012061919a61821c565b6020815191012014600014619211576025546191e69260009290916191c990611338906001600160a01b031681565b906040518095819482936307c0329d60e21b845260048401619158565b03915afa90811561151d576000916191fc575090565b6102d291503d806000833e61868e8183610966565b6025546191e692600092909161923190611338906001600160a01b031681565b9060405180958194829363d06ca61f60e01b84526004840161915856fe0000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da26469706673582212201fce51ed1ff9d0f5f4ea6ac5dba002558bc8864b5d87779ba4c2fa367c0a470364736f6c634300081a003360c034608d57601f61094c38819003918201601f19168301916001600160401b038311848410176092578084926040948552833981010312608d57604b602060458360a8565b920160a8565b9060805260a05260405161089090816100bc8239608051818181603d015261012d015260a0518181816084015281816106960152818161074e01526107db0152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203608d5756fe6080604052600436106101185760003560e01c8063ced52b40146100715763d9d2f07403610118573461006c57600036600319011261006c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b600080fd5b3461006c57600036600319011261006c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b600091031261006c57565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b038211176100f857604052565b6100c1565b6001600160401b0381116100f857601f01601f191660200190565b600080604051368282378036810183815203907f00000000000000000000000000000000000000000000000000000000000000005af43d156101d3573d9061015f826100fd565b9161016d60405193846100d7565b82523d6000602084013e5b1561018e576101863661065f565b602081519101f35b60405162461bcd60e51b815260206004820152601f60248201527f476174657761795a45564d2064656c656761746563616c6c206661696c6564006044820152606490fd5b606090610178565b909291928360041161006c57831161006c57600401916003190190565b81601f8201121561006c5780359061020f826100fd565b9261021d60405194856100d7565b8284526020838301011161006c57816000926020809301838601378301015290565b6001600160a01b0381160361006c57565b3590811515820361006c57565b919082604091031261006c57604051604081018181106001600160401b038211176100f85760405260206102978183958035855201610250565b910152565b91909160a08184031261006c576040519060a082018281106001600160401b038211176100f857604052819381356102d38161023f565b83526102e160208301610250565b602084015260408201356102f48161023f565b60408401526060820135916001600160401b03831161006c5761031d60809392849383016101f8565b60608501520135910152565b9160e08383031261006c5782356001600160401b03811161006c57826103509185016101f8565b9260208101359260408201356103658161023f565b9260608301356001600160401b03811161006c57826103859185016101f8565b92610393836080830161025d565b9260c08201356001600160401b03811161006c576103b1920161029c565b90565b919082519283825260005b8481106103e0575050826000602080949584010152601f8019910116010190565b806020809284010151828286010152016103bf565b9060018060a01b03825116815260208201511515602082015260018060a01b03604083015116604082015260808061043c606085015160a0606086015260a08501906103b4565b93015191015290565b93946103b19795610475610498946104ae969460018060a01b0316885261010060208901526101008801906103b4565b60408701939093526001600160a01b0316606086015284820360808601526103b4565b845160a0840152602090940151151560c0830152565b60e08184039101526103f5565b6040513d6000823e3d90fd5b9060808282031261006c5781356001600160401b03811161006c57816104ee9184016101f8565b9260208301359260408101356105038161023f565b9260608201356001600160401b03811161006c576103b1920161029c565b6001600160a01b03909116815260a0602082018190526103b1959394919261054b918401906103b4565b60408301949094526001600160a01b031660608201528083036080909101526103f5565b91909160c08184031261006c5780356001600160401b03811161006c57836105989183016101f8565b9260208201356105a78161023f565b9260408301356001600160401b03811161006c57826105c79185016101f8565b926105d5836060830161025d565b9260a08201356001600160401b03811161006c576103b1920161029c565b926103b1969461061f6106529461063c9460018060a01b0316875260e0602088015260e08701906103b4565b6001600160a01b03909216604086015284820360608601526103b4565b84516080840152602090940151151560a0830152565b60c08184039101526103f5565b6000356001600160e01b0319166306cb898360e01b8103610723575061068a816106929260006101db565b81019061056f565b90937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561006c576000946106f5869260405198899788968795632c612e1f60e21b875260018060a01b03169033600488016105f3565b03925af1801561071e57610707575b50565b80610716600061071c936100d7565b806100b6565b565b6104bb565b637c0dcb5f60e01b81036107ac5750610741816107499260006101db565b8101906104c7565b9290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b1561006c57600080946106f5604051978896879586946308327f7960e41b865260018060a01b0316913360048701610521565b637b15118b60e01b146107bc5750565b6107cb816107d39260006101db565b810190610329565b9194909390927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169290833b1561006c5761083c600096928793604051998a988997889663567ee10960e11b885260018060a01b0316913360048901610445565b03925af1801561071e57156107045780610716600061071c936100d756fea2646970667358221220c3b911f522f83c8ee9102b4245bed2a13c90092e91b0140cf5e5b3a0b9aa0c6f64736f6c634300081a00330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da26469706673582212203f694ab51e5f913424b6717e51b1a640475332aae62978b7605f0d4ee97dccf764736f6c634300081a0033a2646970667358221220be0a7c814d079da2a24e01b5c1502c7933b2d2be63ee891808548d4407206d1864736f6c634300081a0033"; + +type FoundrySetupConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: FoundrySetupConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class FoundrySetup__factory extends ContractFactory { + constructor(...args: FoundrySetupConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + FoundrySetup & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): FoundrySetup__factory { + return super.connect(runner) as FoundrySetup__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): FoundrySetupInterface { + return new Interface(_abi) as FoundrySetupInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): FoundrySetup { + return new Contract(address, _abi, runner) as unknown as FoundrySetup; + } +} diff --git a/typechain-types/factories/contracts/testing/FoundrySetup.t.sol/index.ts b/typechain-types/factories/contracts/testing/FoundrySetup.t.sol/index.ts new file mode 100644 index 00000000..9928f380 --- /dev/null +++ b/typechain-types/factories/contracts/testing/FoundrySetup.t.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { FoundrySetup__factory } from "./FoundrySetup__factory"; diff --git a/typechain-types/factories/contracts/testing/TokenSetup.t.sol/TokenSetup__factory.ts b/typechain-types/factories/contracts/testing/TokenSetup.t.sol/TokenSetup__factory.ts new file mode 100644 index 00000000..8e39fcc9 --- /dev/null +++ b/typechain-types/factories/contracts/testing/TokenSetup.t.sol/TokenSetup__factory.ts @@ -0,0 +1,906 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../../common"; +import type { + TokenSetup, + TokenSetupInterface, +} from "../../../../contracts/testing/TokenSetup.t.sol/TokenSetup"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "", + type: "string", + }, + ], + name: "log", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "", + type: "address", + }, + ], + name: "log_address", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256[]", + name: "val", + type: "uint256[]", + }, + ], + name: "log_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "int256[]", + name: "val", + type: "int256[]", + }, + ], + name: "log_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address[]", + name: "val", + type: "address[]", + }, + ], + name: "log_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + name: "log_bytes", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + name: "log_bytes32", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "int256", + name: "", + type: "int256", + }, + ], + name: "log_int", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "address", + name: "val", + type: "address", + }, + ], + name: "log_named_address", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "uint256[]", + name: "val", + type: "uint256[]", + }, + ], + name: "log_named_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "int256[]", + name: "val", + type: "int256[]", + }, + ], + name: "log_named_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "address[]", + name: "val", + type: "address[]", + }, + ], + name: "log_named_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "bytes", + name: "val", + type: "bytes", + }, + ], + name: "log_named_bytes", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "bytes32", + name: "val", + type: "bytes32", + }, + ], + name: "log_named_bytes32", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "int256", + name: "val", + type: "int256", + }, + { + indexed: false, + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "log_named_decimal_int", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "uint256", + name: "val", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "log_named_decimal_uint", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "int256", + name: "val", + type: "int256", + }, + ], + name: "log_named_int", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "string", + name: "val", + type: "string", + }, + ], + name: "log_named_string", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "uint256", + name: "val", + type: "uint256", + }, + ], + name: "log_named_uint", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "", + type: "string", + }, + ], + name: "log_string", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "log_uint", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + name: "logs", + type: "event", + }, + { + inputs: [], + name: "IS_TEST", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "contract ZetaSetup", + name: "zetaSetup", + type: "address", + }, + { + internalType: "contract EVMSetup", + name: "evmSetup", + type: "address", + }, + { + internalType: "contract NodeLogicMock", + name: "nodeLogicMock", + type: "address", + }, + { + internalType: "address", + name: "deployer", + type: "address", + }, + { + internalType: "address", + name: "tss", + type: "address", + }, + ], + internalType: "struct TokenSetup.Contracts", + name: "contracts", + type: "tuple", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "bool", + name: "isGasToken", + type: "bool", + }, + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "uint8", + name: "decimals", + type: "uint8", + }, + ], + name: "createToken", + outputs: [ + { + components: [ + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "bool", + name: "isGasToken", + type: "bool", + }, + { + internalType: "uint8", + name: "decimals", + type: "uint8", + }, + ], + internalType: "struct TokenSetup.TokenInfo", + name: "", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "excludeArtifacts", + outputs: [ + { + internalType: "string[]", + name: "excludedArtifacts_", + type: "string[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "excludeContracts", + outputs: [ + { + internalType: "address[]", + name: "excludedContracts_", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "excludeSelectors", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "bytes4[]", + name: "selectors", + type: "bytes4[]", + }, + ], + internalType: "struct StdInvariant.FuzzSelector[]", + name: "excludedSelectors_", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "excludeSenders", + outputs: [ + { + internalType: "address[]", + name: "excludedSenders_", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "failed", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "foreignCoins", + outputs: [ + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "bool", + name: "isGasToken", + type: "bool", + }, + { + internalType: "uint8", + name: "decimals", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getForeignCoins", + outputs: [ + { + components: [ + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "bool", + name: "isGasToken", + type: "bool", + }, + { + internalType: "uint8", + name: "decimals", + type: "uint8", + }, + ], + internalType: "struct TokenSetup.TokenInfo[]", + name: "", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "deployer", + type: "address", + }, + { + internalType: "address", + name: "wzeta", + type: "address", + }, + ], + name: "prepareUniswapV2", + outputs: [ + { + internalType: "address", + name: "factory", + type: "address", + }, + { + internalType: "address", + name: "router", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "targetArtifactSelectors", + outputs: [ + { + components: [ + { + internalType: "string", + name: "artifact", + type: "string", + }, + { + internalType: "bytes4[]", + name: "selectors", + type: "bytes4[]", + }, + ], + internalType: "struct StdInvariant.FuzzArtifactSelector[]", + name: "targetedArtifactSelectors_", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetArtifacts", + outputs: [ + { + internalType: "string[]", + name: "targetedArtifacts_", + type: "string[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetContracts", + outputs: [ + { + internalType: "address[]", + name: "targetedContracts_", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetInterfaces", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "string[]", + name: "artifacts", + type: "string[]", + }, + ], + internalType: "struct StdInvariant.FuzzInterface[]", + name: "targetedInterfaces_", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetSelectors", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "bytes4[]", + name: "selectors", + type: "bytes4[]", + }, + ], + internalType: "struct StdInvariant.FuzzSelector[]", + name: "targetedSelectors_", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetSenders", + outputs: [ + { + internalType: "address[]", + name: "targetedSenders_", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "uniswapV2Router", + type: "address", + }, + { + internalType: "address", + name: "uniswapV2Factory", + type: "address", + }, + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "address", + name: "wzeta", + type: "address", + }, + { + internalType: "address", + name: "deployer", + type: "address", + }, + { + internalType: "uint256", + name: "zrc20Amount", + type: "uint256", + }, + { + internalType: "uint256", + name: "wzetaAmount", + type: "uint256", + }, + ], + name: "uniswapV2AddLiquidity", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +const _bytecode = + "0x60808060405234602f57600160ff19600c541617600c55600160ff19601f541617601f556165ab90816100358239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80631ed7831c146101275780632ade3880146101225780633693a15a1461011d5780633e5e3c23146101185780633f7286f41461011357806351976f441461010e57806366d9a9a01461010957806385226c8114610104578063916a17c6146100ff578063a0d788b7146100fa578063b0464fdc146100f5578063b5508aa9146100f0578063ba414fa6146100eb578063c986b404146100e6578063e20c9f71146100e1578063e2624fa4146100dc5763fa7626d4146100d757600080fd5b61142f565b61136b565b611229565b611116565b611017565b610f8a565b610ede565b610e7e565b610dd2565b610ccd565b610bc1565b610777565b6106e6565b610666565b6105e8565b61031f565b61017f565b600091031261013757565b600080fd5b602060408183019282815284518094520192019060005b8181106101605750505090565b82516001600160a01b0316845260209384019390920191600101610153565b346101375760003660031901126101375760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b8181106101f0576101ec856101e0818703826104c7565b6040519182918261013c565b0390f35b82546001600160a01b03168452602090930192600192830192016101c9565b60005b8381106102225750506000910152565b8181015183820152602001610212565b9060209161024b8151809281855285808601910161020f565b601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061028a57505050505090565b9091929394603f198282030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b85010194019260005b8281106102f45750505050506020806001929701930193019193929061027b565b9091929394602080610312600193605f198782030189528951610232565b97019501939291016102d3565b3461013757600036600319011261013757601e5461033c81611452565b9061034a60405192836104c7565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061039057604051806101ec8782610257565b600260206001926040516103a381610471565b848060a01b0386541681526103b9858701611469565b8382015281520192019201919061037b565b634e487b7160e01b600052603260045260246000fd5b6020548110156104005760206000526006602060002091020190600090565b6103cb565b8054821015610400576000526006602060002091020190600090565b90600182811c92168015610451575b602083101461043b57565b634e487b7160e01b600052602260045260246000fd5b91607f1691610430565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761048c57604052565b61045b565b60e081019081106001600160401b0382111761048c57604052565b60a081019081106001600160401b0382111761048c57604052565b90601f801991011681019081106001600160401b0382111761048c57604052565b90604051918260008254926104fc84610421565b808452936001811690811561056a5750600114610523575b50610521925003836104c7565b565b90506000929192526020600020906000915b81831061054e5750509060206105219282010138610514565b6020919350806001915483858901015201910190918492610535565b90506020925061052194915060ff191682840152151560051b82010138610514565b9591936105c760c09699989460ff966105d59460018060a01b03168a5260018060a01b031660208a015260e060408a015260e0890190610232565b908782036060890152610232565b966080860152151560a085015216910152565b34610137576020366003190112610137576004356020548110156101375761060f906103e1565b50805460018201546001600160a01b03918216929116906101ec90610636600282016104e8565b93610643600383016104e8565b91600560048201549101549260405196879660ff808760081c169616948861058c565b346101375760003660031901126101375760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b8181106106c7576101ec856101e0818703826104c7565b82546001600160a01b03168452602090930192600192830192016106b0565b346101375760003660031901126101375760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b818110610747576101ec856101e0818703826104c7565b82546001600160a01b0316845260209093019260019283019201610730565b6001600160a01b0381160361013757565b346101375760403660031901126101375760043561079481610766565b602435906107a182610766565b6000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b0382166004820152600081602481836000805160206165568339815191525af18015610a8557610aee575b506040516360f9bb1160e01b815260206004820152603960248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76322d636f72652f627560448201527f696c642f556e69737761705632466163746f72792e6a736f6e0000000000000060648201526000816084816000805160206165568339815191525afa908115610a85576108a4916000918291610ab3575b5060405180938192631fb2437d60e31b83526004830161152b565b03816000805160206165568339815191525afa8015610a8557610903926108f092600092610acd575b50604080516001600160a01b03909216602083015290926108fe91849190820190565b03601f1981018452836104c7565b612d93565b6040516360f9bb1160e01b815260206004820152603f60248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76322d7065726970686560448201527f72792f6275696c642f556e69737761705632526f7574657230322e6a736f6e0060648201529091906000816084816000805160206165568339815191525afa908115610a85576109b3916000918291610ab3575060405180938192631fb2437d60e31b83526004830161152b565b03816000805160206165568339815191525afa8015610a8557610a06926108f092600092610a8a575b50604080516001600160a01b03808816602083015290921690820152916108fe9083906060820190565b906000805160206165568339815191523b15610137576040516390c5013b60e01b8152600081600481836000805160206165568339815191525af18015610a8557610a6a575b50604080516001600160a01b03928316815292909116602083015290f35b80610a796000610a7f936104c7565b8061012c565b38610a4c565b6114c1565b6108fe919250610aac903d806000833e610aa481836104c7565b8101906114cd565b91906109dc565b610ac791503d8084833e610aa481836104c7565b38610889565b6108fe919250610ae7903d806000833e610aa481836104c7565b91906108cd565b80610a796000610afd936104c7565b386107f5565b906020808351928381520192019060005b818110610b215750505090565b82516001600160e01b031916845260209384019390920191600101610b14565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610b7457505050505090565b9091929394602080610bb2600193603f1986820301875289519083610ba28351604084526040840190610232565b9201519084818403910152610b03565b97019301930191939290610b65565b3461013757600036600319011261013757601b54610bde81611452565b90610bec60405192836104c7565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b838310610c3257604051806101ec8782610b41565b60026020600192604051610c4581610471565b610c4e866104e8565b8152610c5b85870161156b565b83820152815201920192019190610c1d565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610ca057505050505090565b9091929394602080610cbe600193603f198682030187528951610232565b97019301930191939290610c91565b3461013757600036600319011261013757601a54610cea81611452565b90610cf860405192836104c7565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310610d3d57604051806101ec8782610c6d565b600160208192610d4c856104e8565b815201920192019190610d28565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610d8d57505050505090565b9091929394602080610dc3600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610b03565b97019301930191939290610d7e565b3461013757600036600319011261013757601d54610def81611452565b90610dfd60405192836104c7565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b838310610e4357604051806101ec8782610d5a565b60026020600192604051610e5681610471565b848060a01b038654168152610e6c85870161156b565b83820152815201920192019190610e2e565b346101375760e036600319011261013757610edc600435610e9e81610766565b602435610eaa81610766565b604435610eb681610766565b606435610ec281610766565b60843591610ecf83610766565b60a4359360c4359561180a565b005b3461013757600036600319011261013757601c54610efb81611452565b90610f0960405192836104c7565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b838310610f4f57604051806101ec8782610d5a565b60026020600192604051610f6281610471565b848060a01b038654168152610f7885870161156b565b83820152815201920192019190610f3a565b3461013757600036600319011261013757601954610fa781611452565b90610fb560405192836104c7565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b838310610ffa57604051806101ec8782610c6d565b600160208192611009856104e8565b815201920192019190610fe5565b34610137576000366003190112610137576020611032611ae3565b6040519015158152f35b906110b39060018060a01b03835116815260018060a01b03602084015116602082015260c08061109061107e604087015160e0604087015260e0860190610232565b60608701518582036060870152610232565b946080810151608085015260a0810151151560a0850152015191019060ff169052565b90565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106110e957505050505090565b9091929394602080611107600193603f19868203018752895161103c565b970193019301919392906110da565b346101375760003660031901126101375760205461113381611452565b9061114160405192836104c7565b8082526020820160206000527fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb6000915b83831061118757604051806101ec87826110b6565b6006602060019260405161119a81610491565b855460a086901b869003166001600160a01b0390811682528587015416838201526111c7600287016104e8565b60408201526111d8600387016104e8565b60608201526004860154608082015261121b61121160058801546112086111ff8260ff1690565b151560a0860152565b60081c60ff1690565b60ff1660c0830152565b815201920192019190611172565b346101375760003660031901126101375760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b81811061128a576101ec856101e0818703826104c7565b82546001600160a01b0316845260209093019260019283019201611273565b6040519061052160e0836104c7565b60405190610521610160836104c7565b6001600160401b03811161048c57601f01601f191660200190565b81601f82011215610137578035906112fa826112c8565b9261130860405194856104c7565b8284526020838301011161013757816000926020809301838601378301015290565b8015150361013757565b60c435906105218261132a565b60ff81160361013757565b610104359061052182611341565b9060206110b392818152019061103c565b3461013757366003190161012081126101375760a01361013757604051611391816104ac565b60043561139d81610766565b81526024356113ab81610766565b60208201526044356113bc81610766565b60408201526064356113cd81610766565b60608201526084356113de81610766565b608082015260a4356001600160401b038111610137576101ec916114096114239236906004016112e3565b611411611334565b60e4359161141d61134c565b9361202b565b6040519182918261135a565b3461013757600036600319011261013757602060ff601f54166040519015158152f35b6001600160401b03811161048c5760051b60200190565b90815461147581611452565b9261148360405194856104c7565b818452602084019060005260206000206000915b8383106114a45750505050565b6001602081926114b3856104e8565b815201920192019190611497565b6040513d6000823e3d90fd5b602081830312610137578051906001600160401b038211610137570181601f820112156101375760208151910190611504816112c8565b9261151260405194856104c7565b81845281830111610137576110b391602084019061020f565b61153d60409283835283830190610232565b90602081830391015260148152730b995d9b4b989e5d1958dbd9194b9bd89a9958dd60621b60208201520190565b6040518154808252909291839061158b6020830191600052602060002090565b926000905b8060078301106116d3576105219454918181106116b4575b818110611695575b818110611676575b818110611657575b818110611638575b818110611619575b8181106115fb575b106115e6575b5003836104c7565b6001600160e01b0319168152602001386115de565b602083811b6001600160e01b031916855290936001910193016115d8565b604083901b6001600160e01b03191684529260019060200193016115d0565b606083901b6001600160e01b03191684529260019060200193016115c8565b608083901b6001600160e01b03191684529260019060200193016115c0565b60a083901b6001600160e01b03191684529260019060200193016115b8565b60c083901b6001600160e01b03191684529260019060200193016115b0565b6001600160e01b031960e084901b1684529260019060200193016115a8565b91600891935061010060019161178287546116f9838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b019401920185929391611590565b519061052182610766565b9081602091031261013757516110b381610766565b9081602091031261013757516110b38161132a565b634e487b7160e01b600052601160045260246000fd5b9061038482018092116117ea57565b6117c5565b90816060910312610137578051916040602083015192015190565b9291909493946000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b0387166004820152600081602481836000805160206165568339815191525af18015610a8557611abf575b506040516364e329cb60e11b81526001600160a01b0383811660048301528481166024830152909160209183916044918391600091165af18015610a8557611a92575b5060405163095ea7b360e01b81526001600160a01b0384166004820152602481018590526020818060448101038160006001600160a01b0387165af18015610a8557611a75575b5060405163095ea7b360e01b81526001600160a01b038416600482015260248101879052906020828060448101038160006001600160a01b0388165af18015610a85576060966000936119aa92611a48575b5061194a426117db565b60405162e8e33760e81b81526001600160a01b03948516600482015295841660248701526044860197909752606485019890985260006084850181905260a4850152961660c483015260e482019390935293849283918290610104820190565b03926001600160a01b03165af18015610a8557611a19575b506000805160206165568339815191523b15610137576040516390c5013b60e01b8152600081600481836000805160206165568339815191525af18015610a8557611a0a5750565b80610a796000610521936104c7565b611a3a9060603d606011611a41575b611a3281836104c7565b8101906117ef565b50506119c2565b503d611a28565b611a699060203d602011611a6e575b611a6181836104c7565b8101906117b0565b611940565b503d611a57565b611a8d9060203d602011611a6e57611a6181836104c7565b6118ee565b611ab39060203d602011611ab8575b611aab81836104c7565b81019061179b565b6118a7565b503d611aa1565b80610a796000611ace936104c7565b38611864565b90816020910312610137575190565b60085460ff168015611af25790565b50604051630667f9d760e41b8152600080516020616556833981519152600482018190526519985a5b195960d21b6024830152602090829060449082905afa908115610a8557600091611b46575b50151590565b611b68915060203d602011611b6e575b611b6081836104c7565b810190611ad4565b38611b40565b503d611b56565b60405190611b8282610491565b600060c083828152826020820152606060408201526060808201528260808201528260a08201520152565b60405190611bba82610491565b600060c08360608152606060208201528260408201528260608201528260808201528260a08201520152565b90611bf96020928281519485920161020f565b0190565b60031115611c0757565b634e487b7160e01b600052602160045260246000fd5b6003821015611c075752565b959297969391611c5790611c4960ff936101008a526101008a0190610232565b9088820360208a0152610232565b9716604086015260608501526003831015611c07576080840192909252600160a08401526001600160a01b0391821660c08401521660e090910152565b15611c9b57565b60405162461bcd60e51b815260206004820152602260248201527f476174657761792045564d206e6f742073657420666f7220746869732063686160448201526134b760f11b6064820152608490fd5b9081602091031261013757516110b381611341565b60ff16604d81116117ea57600a0a90565b90816402540be40002916402540be4008304036117ea57565b90816064029160648304036117ea57565b9081620f42400291620f42408304036117ea57565b601f8211611d5d57505050565b6000526020600020906020601f840160051c83019310611d98575b601f0160051c01905b818110611d8c575050565b60008155600101611d81565b9091508190611d78565b91909182516001600160401b03811161048c57611dc981611dc38454610421565b84611d50565b6020601f8211600114611e0a578190611dfb939495600092611dff575b50508160011b916000199060031b1c19161790565b9055565b015190503880611de6565b601f19821690611e1f84600052602060002090565b9160005b818110611e5b57509583600195969710611e42575b505050811b019055565b015160001960f88460031b161c19169055388080611e38565b9192602060018192868b015181550194019201611e23565b6020546801000000000000000081101561048c57806001611e9992016020556020610405565b61201557815181546001600160a01b039182166001600160a01b031991821617835560208401516001840180549190931691161790556040820151805160028301916001600160401b03821161048c57611efd82611ef78554610421565b85611d50565b602090601f8311600114611f9a5793611f8593611f3b8460c0956005956105219a99600092611dff5750508160011b916000199060031b1c19161790565b90555b611f4f606086015160038301611da2565b608085015160048201550192611f7d611f6b60a0830151151590565b859060ff801983541691151516179055565b015160ff1690565b61ff0082549160081b169061ff001916179055565b90601f19831691611fb085600052602060002090565b9260005b818110611ffd575084600594610521999894611f85989460c09860019510611fe4575b505050811b019055611f3e565b015160001960f88460031b161c19169055388080611fd7565b92936020600181928786015181550195019301611fb4565b634e487b7160e01b600052600060045260246000fd5b9391929092612038611b75565b50612041611bad565b60405163348051d760e11b8152600481018490529092906000816024816000805160206165568339815191525afa908115610a85576120c3916120d191600091612d78575b506040516602d2921969918160cd1b60208201529283916120bd6120ad602785018c611be6565b6301037b7160e51b815260040190565b90611be6565b03601f1981018352826104c7565b83526040516405a524332360dc1b60208201526120f5816120c36025820189611be6565b602084019081528215612d715760015b612113604086019182611c1d565b8451915190519161212383611bfd565b8851600490602090612145906001600160a01b03165b6001600160a01b031690565b60405163bb88b76960e01b815292839182905afa8015610a8557600491600091612d52575b508a51602090612182906001600160a01b0316612139565b604051633c12ad4d60e21b815293849182905afa918215610a8557600092612d31575b50604051946118e592838701938785106001600160401b0386111761048c5787966121e2968a938e93614c718b396001600160a01b031696611c29565b03906000f0948515610a85576001600160a01b03909516606084019081529460808401966000885283600014612c9857805160049060209061222c906001600160a01b0316612139565b604051630f39296f60e21b815292839182905afa908115610a8557600091612c79575b506000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03919091166004820152600081602481836000805160206165568339815191525af18015610a8557612c64575b5080516004906020906122c1906001600160a01b0316612139565b60405163bb88b76960e01b815292839182905afa908115610a8557600091612c45575b5087516001600160a01b03918216916122fd9116612139565b90803b15610137576040516377140add60e11b8152600481018690526001600160a01b039290921660248301526000908290604490829084905af18015610a8557612c30575b50805160049060209061235e906001600160a01b0316612139565b60405163bb88b76960e01b815292839182905afa908115610a8557600091612c11575b506001600160a01b0316803b156101375760405163a7cb050760e01b815260048101859052633b9aca006024820152906000908290604490829084905af18015610a8557612bfc575b506000805160206165568339815191523b15610137576040516390c5013b60e01b8152600081600481836000805160206165568339815191525af18015610a8557612be7575b505b8651612426906001600160a01b0316612139565b6060820180519091906001600160a01b031660405163313ce56760e01b8152602081600481865afa908115610a85576124709161246b91600091612b84575b50611d00565b611d11565b823b15610137576040516340c10f1960e01b81526001600160a01b039290921660048301526024820152906000908290604490829084905af18015610a8557612bd2575b5087516124c9906001600160a01b0316612139565b82516004906020906124e3906001600160a01b0316612139565b604051630f39296f60e21b815292839182905afa908115610a8557600091612bb3575b508951600490602090612521906001600160a01b0316612139565b60405163313ce56760e01b815292839182905afa908115610a85576125519161246b91600091612b845750611d00565b823b15610137576040516340c10f1960e01b81526001600160a01b039290921660048301526024820152906000908290604490829084905af18015610a8557612b6f575b5080516001600160a01b03166000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03919091166004820152600081602481836000805160206165568339815191525af18015610a8557612b5a575b5080516001600160a01b03166000805160206165568339815191523b156101375760405163c88a5e6d60e01b81526001600160a01b0391909116600482015269d3c21bcecceda10000006024820152600081604481836000805160206165568339815191525af18015610a8557612b45575b508151600490602090612684906001600160a01b0316612139565b604051620b9ea360e11b815292839182905afa908115610a8557600091612b26575b506001600160a01b0316803b15610137576000683635c9adc5dea0000091600460405180948193630d0e30db60e41b83525af18015610a8557612b11575b506126f66126f188611d00565b611d2a565b60a0870190815260c087019068056bc75e2d63100000825260046020612725612139875160018060a01b031690565b604051630b4a282f60e11b815292839182905afa8015610a8557600491600091612af2575b508551602090612762906001600160a01b0316612139565b6040516359d0f71360e01b815293849182905afa8015610a85578c600493600092612ac9575b505161279c906001600160a01b0316612139565b87516020906127b3906001600160a01b0316612139565b604051620b9ea360e11b815295869182905afa928315610a85576127fa94600094612aa8575b5087516001600160a01b03169186519388519560018060a01b03169261180a565b8951600490612811906001600160a01b0316612139565b855190949060209061282b906001600160a01b0316612139565b604051620b9ea360e11b815293849182905afa908115610a8557600492600092612a83575b50516001600160a01b03165b92519351865190969060209061287a906001600160a01b0316612139565b604051632daa48c160e11b815294859182905afa908115610a8557600493600092612a59575b50516020906128b7906001600160a01b0316612139565b60405163342a30c360e01b815294859182905afa908115610a8557612958976129539661294395600094612a32575b5061291961293394956129096128fa6112a9565b6001600160a01b03909c168c52565b6001600160a01b031660208b0152565b604089015260608801526001600160a01b03166080870152565b6001600160a01b031660a0850152565b6001600160a01b031660c0830152565b613394565b6000805160206165568339815191523b15610137576040516390c5013b60e01b815293600085600481836000805160206165568339815191525af18015610a85576129cf6129c1612139612a149a611211996129fc95612a1d575b50516001600160a01b031690565b99516001600160a01b031690565b9151916129ec6129dd6112a9565b6001600160a01b03909b168b52565b6001600160a01b031660208a0152565b604088015260608701526080860152151560a0850152565b6110b381611e73565b80610a796000612a2c936104c7565b386129b3565b6129339450612a526129199160203d602011611ab857611aab81836104c7565b94506128e6565b6020919250612139612a7a6128b792843d8611611ab857611aab81836104c7565b939250506128a0565b61285c919250612aa19060203d602011611ab857611aab81836104c7565b9190612850565b612ac291945060203d602011611ab857611aab81836104c7565b92386127d9565b61279c919250612aea6121399160203d602011611ab857611aab81836104c7565b929150612788565b612b0b915060203d602011611ab857611aab81836104c7565b3861274a565b80610a796000612b20936104c7565b386126e4565b612b3f915060203d602011611ab857611aab81836104c7565b386126a6565b80610a796000612b54936104c7565b38612669565b80610a796000612b69936104c7565b386125f7565b80610a796000612b7e936104c7565b38612595565b612ba6915060203d602011612bac575b612b9e81836104c7565b810190611ceb565b38612465565b503d612b94565b612bcc915060203d602011611ab857611aab81836104c7565b38612506565b80610a796000612be1936104c7565b386124b4565b80610a796000612bf6936104c7565b38612410565b80610a796000612c0b936104c7565b386123ca565b612c2a915060203d602011611ab857611aab81836104c7565b38612381565b80610a796000612c3f936104c7565b38612343565b612c5e915060203d602011611ab857611aab81836104c7565b386122e4565b80610a796000612c73936104c7565b386122a6565b612c92915060203d602011611ab857611aab81836104c7565b3861224f565b6020810151612caf906001600160a01b0316612139565b604051621ac49360e31b81526004810185905290602090829060249082905afa8015610a8557612cf291600091612d12575b506001600160a01b03161515611c94565b612d0d612d00838584612e19565b6001600160a01b03168952565b612412565b612d2b915060203d602011611ab857611aab81836104c7565b38612ce1565b612d4b91925060203d602011611ab857611aab81836104c7565b90386121a5565b612d6b915060203d602011611ab857611aab81836104c7565b3861216a565b6002612105565b612d8d91503d806000833e610aa481836104c7565b38612086565b90612dd860209160405192839181612db4818501978881519384920161020f565b8301612dc88251809385808501910161020f565b010103601f1981018352826104c7565b51906000f090811561013757565b9091612dfd6110b393604084526040840190610232565b916020818403910152610232565b604d81116117ea57600a0a90565b9160405190610b5990818301908382106001600160401b0383111761048c5780612e499285946141188639612de6565b03906000f08015610a855760405163313ce56760e01b81526001600160a01b03919091169290602081600481875afa8015610a855760ff91600091613358575b506060830180519092909116906001600160a01b03166000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03919091166004820152600081602481836000805160206165568339815191525af18015610a8557613343575b50602083018051909390612f11906001600160a01b0316612139565b60405163ad8414bf60e01b81526004810187905290602090829060249082905afa908115610a8557612f7a91602091600091613326575b5060405163095ea7b360e01b81526001600160a01b039091166004820152600019602482015291829081906044820190565b038160008b5af18015610a8557613309575b508351612fa1906001600160a01b0316612139565b60405163ad8414bf60e01b8152600481018790529190602090839060249082905afa918215610a85576000926132e8575b50612fe4612fdf84612e0b565b611d3b565b91873b15610137576040516340c10f1960e01b81526001600160a01b039190911660048201526024810192909252600082604481838b5af1918215610a85576080926132d3575b500180519092906001600160a01b0316613047612fdf84612e0b565b90873b15610137576040516340c10f1960e01b81526001600160a01b039190911660048201526024810191909152600081604481838b5af18015610a85576130a992612fdf926130a392612a1d5750516001600160a01b031690565b92612e0b565b90853b15610137576040516340c10f1960e01b81526001600160a01b03919091166004820152602481019190915260008160448183895af18015610a85576132be575b506000805160206165568339815191523b15610137576040516390c5013b60e01b815290600082600481836000805160206165568339815191525af1918215610a855761314592612a1d5750516001600160a01b031690565b916000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03939093166004840152600083602481836000805160206165568339815191525af1928315610a85576121396020936131b8926131d896612a1d5750516001600160a01b031690565b604051808095819463ad8414bf60e01b8352600483019190602083019252565b03915afa908115610a855760009161329f575b506001600160a01b0316803b1561013757604051634d8c928d60e11b81526001600160a01b0383166004820152906000908290602490829084905af18015610a855761328a575b506000805160206165568339815191523b15610137576040516390c5013b60e01b8152600081600481836000805160206165568339815191525af18015610a855761327b575090565b80610a7960006110b3936104c7565b80610a796000613299936104c7565b38613232565b6132b8915060203d602011611ab857611aab81836104c7565b386131eb565b80610a7960006132cd936104c7565b386130ec565b80610a7960006132e2936104c7565b3861302b565b61330291925060203d602011611ab857611aab81836104c7565b9038612fd2565b6133219060203d602011611a6e57611a6181836104c7565b612f8c565b61333d9150823d8411611ab857611aab81836104c7565b38612f48565b80610a796000613352936104c7565b38612ef5565b613371915060203d602011612bac57612b9e81836104c7565b38612e89565b1561337e57565b634e487b7160e01b600052600160045260246000fd5b60c0810180519091906001600160a01b03166000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03919091166004820152600081602481836000805160206165568339815191525af18015610a855761365e575b50805161341390612139906001600160a01b031681565b60a08201805160408085018051915163095ea7b360e01b81526001600160a01b0390931660048401526024830191909152949192602090829060449082906000905af18015610a8557613641575b5060208301805190929061347f90612139906001600160a01b031681565b815160608601805160405163095ea7b360e01b81526001600160a01b03909316600484015260248301529691602090829060449082906000905af18015610a8557613624575b50845184516001600160a01b0391821691168082116135f6575b505060808501516001600160a01b031685516001600160a01b031685516001600160a01b03169061350f926136cb565b956135246001600160a01b0388161515613377565b82516001600160a01b031686519092906001600160a01b031686519092906001600160a01b03169151905186519092906001600160a01b03169361356795613834565b93516001600160a01b031692516001600160a01b031690516001600160a01b031691516001600160a01b03169261359c6112a9565b6001600160a01b0390961686526001600160a01b031660208601526001600160a01b031660408501526001600160a01b031660608401526001600160a01b0316608083015260a0820152600060c08201526119c290613c54565b6001600160a01b039091168552613615905b6001600160a01b03168652565b855181518752815238806134df565b61363c9060203d602011611a6e57611a6181836104c7565b6134c5565b6136599060203d602011611a6e57611a6181836104c7565b613461565b80610a79600061366d936104c7565b386133fc565b1561367a57565b60405162461bcd60e51b815260206004820152602360248201527f556e6973776170563353657475704c69623a20506f6f6c206e6f7420637265616044820152621d195960ea1b6064820152608490fd5b60405163a167129560e01b81526001600160a01b0383811660048301528481166024830152610bb8604483015290949391166020856064816000855af1928315610a8557613758956020946137dc575b50604051630b4c774160e11b81526001600160a01b03918216600482015292166024830152610bb860448301529093849190829081906064820190565b03915afa918215610a85576000926137bb575b506001600160a01b038216613781811515613673565b803b156101375760405163f637731d60e01b8152600160601b6004820152906000908290602490829084905af18015610a8557611a0a5750565b6137d591925060203d602011611ab857611aab81836104c7565b903861376b565b6137f290853d8711611ab857611aab81836104c7565b61371b565b51906001600160801b038216820361013757565b919082608091031261013757815191613826602082016137f7565b916060604083015192015190565b916138bd6000966080966139699661387961384e426117db565b9561386961385a6112b8565b6001600160a01b039099168952565b6001600160a01b03166020880152565b610bb86040870152620d89b3196060870152620d89b4868a015260a086015260c085015260e0840188905261010084018890526001600160a01b0316610120840152565b610140820190815260408051634418b22b60e11b815283516001600160a01b0390811660048301526020850151811660248301529184015162ffffff1660448201526060840151600290810b60648301526080850151900b608482015260a084015160a482015260c084015160c482015260e084015160e48201526101008401516101048201526101209093015116610124830152516101448201529384928391908290610164820190565b03926001600160a01b03165af1908115610a8557600091613988575090565b6139aa915060803d6080116139b0575b6139a281836104c7565b81019061380b565b50505090565b503d613998565b6040519061018082018281106001600160401b0382111761048c576040526000610160838281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015282610120820152826101408201520152565b90816020910312610137576110b3906137f7565b15613a3c57565b60405162461bcd60e51b8152602060048201526015602482015274506f6f6c20686173206e6f206c697175696469747960581b6044820152606490fd5b51908160020b820361013757565b519061ffff8216820361013757565b908160e0910312610137578051613aac81610766565b91613ab960208301613a79565b91613ac660408201613a87565b91613ad360608301613a87565b91613ae060808201613a87565b9160c060a0830151613af181611341565b9201516110b38161132a565b15613b0457565b60405162461bcd60e51b81526020600482015260116024820152700556e657870656374656420746f6b656e3607c1b6044820152606490fd5b15613b4457565b60405162461bcd60e51b8152602060048201526011602482015270556e657870656374656420746f6b656e3160781b6044820152606490fd5b15613b8457565b60405162461bcd60e51b815260206004820152601960248201527f506f736974696f6e20686173206e6f206c6971756964697479000000000000006044820152606490fd5b15613bd057565b60405162461bcd60e51b815260206004820152601860248201527f506f736974696f6e20746f6b656e73206d69736d6174636800000000000000006044820152606490fd5b15613c1c57565b60405162461bcd60e51b815260206004820152601060248201526f2ab732bc3832b1ba32b21037bbb732b960811b6044820152606490fd5b90613c5d6139b7565b8251909290613c74906001600160a01b0316612139565b6060820151909190613c8e906001600160a01b0316612139565b604051630d34328160e11b815290926001600160a01b03169190602081600481865afa8015610a8557613ce36001600160801b0391613ceb93600091613fc4575b506001600160801b03166060890181905290565b161515613a35565b604051633850c7bd60e01b815260e081600481865afa908115610a8557613d2591600091600091613f88575b5060020b6020880152613608565b604051630dfe168160e01b815291602083600481845afa908115610a8557600493600092613f66575b506001600160a01b03909116608087019081529060209060405163d21220a760e01b815294859182905afa928315610a8557600093613f45575b506001600160a01b0392831660a08701908152815160208401519194613db2928116911614613afd565b82516040830151613dd0916001600160a01b03918216911614613b3d565b60a08201938451613de19082614003565b6001600160801b031660c08c019081526101008c01969460e08d0194919390928d6101400190613e13919060020b9052565b60020b6101208d01526001600160a01b03908116875216825251613e41906001600160801b03161515613b7d565b519051613e9195602094613e6e936001600160a01b039384169316929092149182613f18575b5050613bc9565b84519060405180809681946331a9108f60e11b8352600483019190602083019252565b03916001600160a01b03165afa8015610a85576121396080613ed0613edf93613ef096600091613ef9575b506001600160a01b031660408a0181905290565b9301516001600160a01b031690565b6001600160a01b0390911614613c15565b51610160830152565b613f12915060203d602011611ab857611aab81836104c7565b38613ebc565b5190516001600160a01b039182169250613f329116612139565b6001600160a01b03909116143880613e67565b613f5f91935060203d602011611ab857611aab81836104c7565b9138613d88565b6020919250613f8190823d8411611ab857611aab81836104c7565b9190613d4e565b6136089250613faf915060e03d60e011613fbd575b613fa781836104c7565b810190613a96565b505050505091909190613d17565b503d613f9d565b613fe6915060203d602011613fec575b613fde81836104c7565b810190613a21565b38613ccf565b503d613fd4565b519062ffffff8216820361013757565b60405163133f757160e31b8152600481019290925261018090829060249082906001600160a01b03165afa908115610a8557600091829183918491859161404d575b509091929394565b949350505050610180823d821161410f575b8161406d61018093836104c7565b8101031261410c5781516bffffffffffffffffffffffff81160361410c575061409860208201611790565b506140a560408201611790565b906140b260608201611790565b916140bf60808301613ff3565b506140cc60a08301613a79565b916140d960c08201613a79565b916141016101606140ec60e085016137f7565b936140fa61014082016137f7565b50016137f7565b509392919038614045565b80fd5b3d915061405f56fe60806040523461032457610b598038038061001981610329565b9283398101906040818303126103245780516001600160401b038111610324578261004591830161034e565b60208201519092906001600160401b03811161032457610065920161034e565b81516001600160401b03811161022f57600354600181811c9116801561031a575b602082101461020f57601f81116102b5575b50602092601f82116001146102505792819293600092610245575b50508160011b916000199060031b1c1916176003555b80516001600160401b03811161022f57600454600181811c91168015610225575b602082101461020f57601f81116101aa575b50602091601f82116001146101465791819260009261013b575b50508160011b916000199060031b1c1916176004555b60405161079f90816103ba8239f35b015190503880610116565b601f198216926004600052806000209160005b85811061019257508360019510610179575b505050811b0160045561012c565b015160001960f88460031b161c1916905538808061016b565b91926020600181928685015181550194019201610159565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c81019160208410610205575b601f0160051c01905b8181106101f957506100fc565b600081556001016101ec565b90915081906101e3565b634e487b7160e01b600052602260045260246000fd5b90607f16906100ea565b634e487b7160e01b600052604160045260246000fd5b0151905038806100b3565b601f198216936003600052806000209160005b86811061029d5750836001959610610284575b505050811b016003556100c9565b015160001960f88460031b161c19169055388080610276565b91926020600181928685015181550194019201610263565b60036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c81019160208410610310575b601f0160051c01905b8181106103045750610098565b600081556001016102f7565b90915081906102ee565b90607f1690610086565b600080fd5b6040519190601f01601f191682016001600160401b0381118382101761022f57604052565b81601f82011215610324578051906001600160401b03821161022f5761037d601f8301601f1916602001610329565b92828452602083830101116103245760005b8281106103a457505060206000918301015290565b8060208092840101518282870101520161038f56fe608080604052600436101561001357600080fd5b60003560e01c90816306fdde031461058857508063095ea7b31461050257806318160ddd146104e457806323b872dd146103f7578063313ce567146103db57806340c10f191461032f57806370a08231146102f557806395d89b41146101d45780639dc29fac1461011f578063a9059cbb146100ee5763dd62ed3e1461009857600080fd5b346100e95760403660031901126100e9576100b16106a4565b6100b96106ba565b6001600160a01b039182166000908152600160209081526040808320949093168252928352819020549051908152f35b600080fd5b346100e95760403660031901126100e95761011461010a6106a4565b60243590336106d0565b602060405160018152f35b346100e95760403660031901126100e9576101386106a4565b6001600160a01b031660243581156101be576000908282528160205260408220548181106101a65760208285937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93869787528684520360408620558060025403600255604051908152a380f35b60649363391434e360e21b8452600452602452604452fd5b634b637e8f60e11b600052600060045260246000fd5b346100e95760003660031901126100e95760405160006004548060011c906001811680156102eb575b6020831081146102d7578285529081156102bb5750600114610264575b50819003601f01601f191681019067ffffffffffffffff82118183101761024e5761024a8291826040528261065b565b0390f35b634e487b7160e01b600052604160045260246000fd5b905060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b6000905b8282106102a55750602091508201018261021a565b6001816020925483858801015201910190610290565b90506020925060ff191682840152151560051b8201018261021a565b634e487b7160e01b84526022600452602484fd5b91607f16916101fd565b346100e95760203660031901126100e9576001600160a01b036103166106a4565b1660005260006020526020604060002054604051908152f35b346100e95760403660031901126100e9576103486106a4565b602435906001600160a01b031680156103c557600254918083018093116103af576020926002557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600093849284845283825260408420818154019055604051908152a380f35b634e487b7160e01b600052601160045260246000fd5b63ec442f0560e01b600052600060045260246000fd5b346100e95760003660031901126100e957602060405160128152f35b346100e95760603660031901126100e9576104106106a4565b6104186106ba565b6001600160a01b0382166000818152600160209081526040808320338452909152902054909260443592916000198110610458575b5061011493506106d0565b8381106104c75784156104b157331561049b57610114946000526001602052604060002060018060a01b033316600052602052836040600020910390558461044d565b634a1406b160e11b600052600060045260246000fd5b63e602df0560e01b600052600060045260246000fd5b8390637dc7a0d960e11b6000523360045260245260445260646000fd5b346100e95760003660031901126100e9576020600254604051908152f35b346100e95760403660031901126100e95761051b6106a4565b6024359033156104b1576001600160a01b031690811561049b57336000526001602052604060002082600052602052806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346100e95760003660031901126100e95760006003548060011c90600181168015610651575b6020831081146102d7578285529081156102bb57506001146105fa5750819003601f01601f191681019067ffffffffffffffff82118183101761024e5761024a8291826040528261065b565b905060036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b6000905b82821061063b5750602091508201018261021a565b6001816020925483858801015201910190610626565b91607f16916105ae565b91909160208152825180602083015260005b81811061068e575060409293506000838284010152601f8019910116010190565b806020809287010151604082860101520161066d565b600435906001600160a01b03821682036100e957565b602435906001600160a01b03821682036100e957565b6001600160a01b03169081156101be576001600160a01b03169182156103c557600082815280602052604081205482811061074f5791604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815280845220818154019055604051908152a3565b916064928463391434e360e21b8452600452602452604452fdfea2646970667358221220244a0a20c657fff7862703acb5cfe7ea7d2b0fc51d1a41b0a338be948dd8f1cf64736f6c634300081a003360c06040523461041a576118e5803803806100198161041f565b92833981016101008282031261041a5781516001600160401b03811161041a5781610045918401610444565b602083015190916001600160401b03821161041a57610065918401610444565b9160408101519160ff831680930361041a576060820151936080830151600381101561041a5760a0840151916100a960e06100a260c088016104af565b96016104af565b946001600160a01b03169384158015610409575b6103f8578051906001600160401b0382116102f55760065490600182811c921680156103ee575b60208310146102d55781601f84931161037e575b50602090601f83116001146103165760009261030b575b50508160011b916000199060031b1c1916176006555b8051906001600160401b0382116102f55760075490600182811c921680156102eb575b60208310146102d55781601f849311610265575b50602090601f83116001146101fd576000926101f2575b50508160011b916000199060031b1c1916176007555b6008549560805260a05260015560018060a01b03196000541617600055610100600160a81b039060081b169160018060a81b031916171760085560405161142190816104c4823960805181818161018101528181610b7b01526110d8015260a051816109fa0152f35b015190503880610173565b600760009081528281209350601f198516905b81811061024d5750908460019594939210610234575b505050811b01600755610189565b015160001960f88460031b161c19169055388080610226565b92936020600181928786015181550195019301610210565b60076000529091507fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688601f840160051c810191602085106102cb575b90601f859493920160051c01905b8181106102bc575061015c565b600081558493506001016102af565b90915081906102a1565b634e487b7160e01b600052602260045260246000fd5b91607f1691610148565b634e487b7160e01b600052604160045260246000fd5b01519050388061010f565b600660009081528281209350601f198516905b818110610366575090846001959493921061034d575b505050811b01600655610125565b015160001960f88460031b161c1916905538808061033f565b92936020600181928786015181550195019301610329565b60066000529091507ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f601f840160051c810191602085106103e4575b90601f859493920160051c01905b8181106103d557506100f8565b600081558493506001016103c8565b90915081906103ba565b91607f16916100e4565b63d92e233d60e01b60005260046000fd5b506001600160a01b038616156100bd565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176102f557604052565b81601f8201121561041a578051906001600160401b0382116102f557610473601f8301601f191660200161041f565b928284526020838301011161041a5760005b82811061049a57505060206000918301015290565b80602080928401015182828701015201610485565b51906001600160a01b038216820361041a5756fe608080604052600436101561001357600080fd5b60003560e01c90816306fdde0314610e8157508063091d278814610e63578063095ea7b314610e3d57806318160ddd14610e1f57806323b872dd14610d9e578063313ce56714610d7d5780633ce4a5bc14610d4e57806340c10f1914610d2957806342966c6814610d0c57806347e7ef2414610bf65780634d8943bb14610bd857806370a0823114610b9e57806385e1f4d014610b635780638b851b9514610b3957806395d89b4114610a695780639dc29fac14610a42578063a3413d03146109e7578063a9059cbb146109b6578063b84c824614610851578063c47f0027146106d6578063c701262614610574578063c835d7cc146104eb578063ccc7759914610445578063d9eeebed1461042c578063dd62ed3e146103db578063eddeb1231461037b578063f2441b3214610352578063f687d12a146102e15763fc5fecd51461015e57600080fd5b346102dc5760203660031901126102dc57600054604051630be1554760e01b81527f00000000000000000000000000000000000000000000000000000000000000006004820181905290916001600160a01b031690602083602481855afa92831561028e576000936102ab575b506001600160a01b0383161561029a5760209060246040518094819363d7fd7afb60e01b835260048301525afa90811561028e57600091610259575b5080156102485761021e61022791600435906110a6565b600254906110b9565b604080516001600160a01b03939093168352602083019190915290f35b0390f35b630e661aed60e41b60005260046000fd5b906020823d602011610286575b8161027360209383610f82565b8101031261028357505138610207565b80fd5b3d9150610266565b6040513d6000823e3d90fd5b633c7ff9cb60e11b60005260046000fd5b6102ce91935060203d6020116102d5575b6102c68183610f82565b810190611087565b91386101cb565b503d6102bc565b600080fd5b346102dc5760203660031901126102dc5760043573735b14bb79463307aacbed86daf3322b1e6226ab3303610341576020817fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a92600155604051908152a1005b632b2add3d60e01b60005260046000fd5b346102dc5760003660031901126102dc576000546040516001600160a01b039091168152602090f35b346102dc5760203660031901126102dc5760043573735b14bb79463307aacbed86daf3322b1e6226ab3303610341576020817fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f92600255604051908152a1005b346102dc5760403660031901126102dc576103f4610f56565b6103fc610f6c565b6001600160a01b039182166000908152600460209081526040808320949093168252928352819020549051908152f35b346102dc5760003660031901126102dc576102276110c6565b346102dc5760203660031901126102dc5761045e610f56565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610341576001600160a01b0381169081156104da5760088054610100600160a81b03191691811b610100600160a81b03169190911790556040519081527f88815d964e380677e86d817e7d65dea59cb7b4c3b5b7a0c8ec7ea4a74f90a38790602090a1005b63d92e233d60e01b60005260046000fd5b346102dc5760203660031901126102dc57610504610f56565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610341576001600160a01b031680156104da576020817fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae926bffffffffffffffffffffffff60a01b6000541617600055604051908152a1005b346102dc5760403660031901126102dc5760043567ffffffffffffffff81116102dc57366023820112156102dc576105b6903690602481600401359101610fa4565b60206024359160006105c66110c6565b93906064604051809481936323b872dd60e01b835233600484015273735b14bb79463307aacbed86daf3322b1e6226ab602484015288604484015260018060a01b03165af190811561028e57600091610697575b5015610686577f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d9559161064c8433611331565b6002549061066560405193608085526080850190610f15565b946020840152604083015260608201528033930390a2602060405160018152f35b63053e6b6b60e11b60005260046000fd5b6020813d6020116106ce575b816106b060209383610f82565b810103126106ca575190811515820361028357508461061a565b5080fd5b3d91506106a3565b346102dc576106e436610feb565b73735b14bb79463307aacbed86daf3322b1e6226ab330361034157805167ffffffffffffffff811161083b5761071b60065461102a565b601f81116107ce575b50602091601f821160011461076257918192600092610757575b5050600019600383901b1c191660019190911b17600655005b01519050828061073e565b601f1982169260066000526000805160206113cc8339815191529160005b8581106107b65750836001951061079d575b505050811b01600655005b015160001960f88460031b161c19169055828080610792565b91926020600181928685015181550194019201610780565b6006600052601f820160051c6000805160206113cc833981519152019060208310610825575b601f0160051c6000805160206113cc83398151915201905b8181106108195750610724565b6000815560010161080c565b6000805160206113cc83398151915291506107f4565b634e487b7160e01b600052604160045260246000fd5b346102dc5761085f36610feb565b73735b14bb79463307aacbed86daf3322b1e6226ab330361034157805167ffffffffffffffff811161083b5761089660075461102a565b601f8111610949575b50602091601f82116001146108dd579181926000926108d2575b5050600019600383901b1c191660019190911b17600755005b0151905082806108b9565b601f1982169260076000526000805160206113ac8339815191529160005b85811061093157508360019510610918575b505050811b01600755005b015160001960f88460031b161c1916905582808061090d565b919260206001819286850151815501940192016108fb565b6007600052601f820160051c6000805160206113ac8339815191520190602083106109a0575b601f0160051c6000805160206113ac83398151915201905b818110610994575061089f565b60008155600101610987565b6000805160206113ac833981519152915061096f565b346102dc5760403660031901126102dc576109dc6109d2610f56565b6024359033611230565b602060405160018152f35b346102dc5760003660031901126102dc577f00000000000000000000000000000000000000000000000000000000000000006040516003821015610a2c576020918152f35b634e487b7160e01b600052602160045260246000fd5b346102dc5760403660031901126102dc57610a67610a5e610f56565b60243590611331565b005b346102dc5760003660031901126102dc576040516000600754610a8b8161102a565b8084529060018116908115610b155750600114610ac7575b61024483610ab381850382610f82565b604051918291602083526020830190610f15565b91905060076000526000805160206113ac833981519152916000905b808210610afb57509091508101602001610ab3610aa3565b919260018160209254838588010152019101909291610ae3565b60ff191660208086019190915291151560051b84019091019150610ab39050610aa3565b346102dc5760003660031901126102dc5760088054604051911c6001600160a01b03168152602090f35b346102dc5760003660031901126102dc5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346102dc5760203660031901126102dc576001600160a01b03610bbf610f56565b1660005260036020526020604060002054604051908152f35b346102dc5760003660031901126102dc576020600254604051908152f35b346102dc5760403660031901126102dc57610c0f610f56565b6024359073735b14bb79463307aacbed86daf3322b1e6226ab33141580610cf7575b80610cdf575b610cce57610cae81610c6a847f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab3946112d6565b60405173735b14bb79463307aacbed86daf3322b1e6226ab60601b60208201526014815290610c9a603483610f82565b604051928392604084526040840190610f15565b60208301959095526001600160a01b0316930390a2602060405160018152f35b636edaef2f60e11b60005260046000fd5b506008805433911c6001600160a01b03161415610c37565b506000546001600160a01b0316331415610c31565b346102dc5760203660031901126102dc576109dc60043533611331565b346102dc5760403660031901126102dc57610a67610d45610f56565b602435906112d6565b346102dc5760003660031901126102dc57602060405173735b14bb79463307aacbed86daf3322b1e6226ab8152f35b346102dc5760003660031901126102dc57602060ff60085416604051908152f35b346102dc5760603660031901126102dc57610db7610f56565b610dbf610f6c565b90610dce604435809383611230565b6001600160a01b0381166000908152600460209081526040808320338452909152902054828110610e0e576109dc92610e0691611064565b9033906111c9565b6310bad14760e01b60005260046000fd5b346102dc5760003660031901126102dc576020600554604051908152f35b346102dc5760403660031901126102dc576109dc610e59610f56565b60243590336111c9565b346102dc5760003660031901126102dc576020600154604051908152f35b346102dc5760003660031901126102dc576000600654610ea08161102a565b8084529060018116908115610b155750600114610ec75761024483610ab381850382610f82565b91905060066000526000805160206113cc833981519152916000905b808210610efb57509091508101602001610ab3610aa3565b919260018160209254838588010152019101909291610ee3565b919082519283825260005b848110610f41575050826000602080949584010152601f8019910116010190565b80602080928401015182828601015201610f20565b600435906001600160a01b03821682036102dc57565b602435906001600160a01b03821682036102dc57565b90601f8019910116810190811067ffffffffffffffff82111761083b57604052565b92919267ffffffffffffffff821161083b5760405191610fce601f8201601f191660200184610f82565b8294818452818301116102dc578281602093846000960137010152565b60206003198201126102dc576004359067ffffffffffffffff82116102dc57806023830112156102dc5781602461102793600401359101610fa4565b90565b90600182811c9216801561105a575b602083101461104457565b634e487b7160e01b600052602260045260246000fd5b91607f1691611039565b9190820391821161107157565b634e487b7160e01b600052601160045260246000fd5b908160209103126102dc57516001600160a01b03811681036102dc5790565b8181029291811591840414171561107157565b9190820180921161107157565b600054604051630be1554760e01b81527f0000000000000000000000000000000000000000000000000000000000000000600482018190529092916001600160a01b031690602084602481855afa93841561028e576000946111a8575b506001600160a01b0384161561029a5760209060246040518094819363d7fd7afb60e01b835260048301525afa90811561028e57600091611176575b5080156102485761021e61102791600154906110a6565b906020823d6020116111a0575b8161119060209383610f82565b810103126102835750513861115f565b3d9150611183565b6111c291945060203d6020116102d5576102c68183610f82565b9238611123565b6001600160a01b03169081156104da576001600160a01b03169182156104da5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260048252604060002085600052825280604060002055604051908152a3565b6001600160a01b03169081156104da576001600160a01b03169182156104da578160005260036020526040600020548181106112c557816112947fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93602093611064565b8460005260038352604060002055846000526003825260406000206112ba8282546110b9565b9055604051908152a3565b63fe382aa760e01b60005260046000fd5b6001600160a01b03169081156104da577fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020826113186000946005546110b9565b60055584845260038252604084206112ba8282546110b9565b6001600160a01b031680156104da57806000526003602052604060002054918083106112c5576020816113877fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93600096611064565b84865260038352604086205561139f81600554611064565b600555604051908152a356fea66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688f652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3fa2646970667358221220143426ebea1dd98ec97cac7a50bf56d05abc5cfb38e424354c050953db17fb6764736f6c634300081a00330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da26469706673582212206717e45fdf103a1ef42406c04560a62655c0f1b8dc7c77591c01b71b30c96d8e64736f6c634300081a0033"; + +type TokenSetupConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: TokenSetupConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class TokenSetup__factory extends ContractFactory { + constructor(...args: TokenSetupConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + TokenSetup & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): TokenSetup__factory { + return super.connect(runner) as TokenSetup__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): TokenSetupInterface { + return new Interface(_abi) as TokenSetupInterface; + } + static connect(address: string, runner?: ContractRunner | null): TokenSetup { + return new Contract(address, _abi, runner) as unknown as TokenSetup; + } +} diff --git a/typechain-types/factories/contracts/testing/TokenSetup.t.sol/index.ts b/typechain-types/factories/contracts/testing/TokenSetup.t.sol/index.ts new file mode 100644 index 00000000..abe40ca7 --- /dev/null +++ b/typechain-types/factories/contracts/testing/TokenSetup.t.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { TokenSetup__factory } from "./TokenSetup__factory"; diff --git a/typechain-types/factories/contracts/testing/UniswapV2SetupLib.sol/IUniswapV2Factory__factory.ts b/typechain-types/factories/contracts/testing/UniswapV2SetupLib.sol/IUniswapV2Factory__factory.ts new file mode 100644 index 00000000..cf273e28 --- /dev/null +++ b/typechain-types/factories/contracts/testing/UniswapV2SetupLib.sol/IUniswapV2Factory__factory.ts @@ -0,0 +1,73 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IUniswapV2Factory, + IUniswapV2FactoryInterface, +} from "../../../../contracts/testing/UniswapV2SetupLib.sol/IUniswapV2Factory"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + ], + name: "createPair", + outputs: [ + { + internalType: "address", + name: "pair", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + ], + name: "getPair", + outputs: [ + { + internalType: "address", + name: "pair", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +export class IUniswapV2Factory__factory { + static readonly abi = _abi; + static createInterface(): IUniswapV2FactoryInterface { + return new Interface(_abi) as IUniswapV2FactoryInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IUniswapV2Factory { + return new Contract(address, _abi, runner) as unknown as IUniswapV2Factory; + } +} diff --git a/typechain-types/factories/contracts/testing/UniswapV2SetupLib.sol/IUniswapV2Router02__factory.ts b/typechain-types/factories/contracts/testing/UniswapV2SetupLib.sol/IUniswapV2Router02__factory.ts new file mode 100644 index 00000000..e2050933 --- /dev/null +++ b/typechain-types/factories/contracts/testing/UniswapV2SetupLib.sol/IUniswapV2Router02__factory.ts @@ -0,0 +1,89 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IUniswapV2Router02, + IUniswapV2Router02Interface, +} from "../../../../contracts/testing/UniswapV2SetupLib.sol/IUniswapV2Router02"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + { + internalType: "uint256", + name: "amountADesired", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountBDesired", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountAMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountBMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "addLiquidity", + outputs: [ + { + internalType: "uint256", + name: "amountA", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountB", + type: "uint256", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class IUniswapV2Router02__factory { + static readonly abi = _abi; + static createInterface(): IUniswapV2Router02Interface { + return new Interface(_abi) as IUniswapV2Router02Interface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IUniswapV2Router02 { + return new Contract(address, _abi, runner) as unknown as IUniswapV2Router02; + } +} diff --git a/typechain-types/factories/contracts/testing/UniswapV2SetupLib.sol/UniswapV2SetupLib__factory.ts b/typechain-types/factories/contracts/testing/UniswapV2SetupLib.sol/UniswapV2SetupLib__factory.ts new file mode 100644 index 00000000..291fcce2 --- /dev/null +++ b/typechain-types/factories/contracts/testing/UniswapV2SetupLib.sol/UniswapV2SetupLib__factory.ts @@ -0,0 +1,707 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../../common"; +import type { + UniswapV2SetupLib, + UniswapV2SetupLibInterface, +} from "../../../../contracts/testing/UniswapV2SetupLib.sol/UniswapV2SetupLib"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "", + type: "string", + }, + ], + name: "log", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "", + type: "address", + }, + ], + name: "log_address", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256[]", + name: "val", + type: "uint256[]", + }, + ], + name: "log_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "int256[]", + name: "val", + type: "int256[]", + }, + ], + name: "log_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address[]", + name: "val", + type: "address[]", + }, + ], + name: "log_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + name: "log_bytes", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + name: "log_bytes32", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "int256", + name: "", + type: "int256", + }, + ], + name: "log_int", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "address", + name: "val", + type: "address", + }, + ], + name: "log_named_address", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "uint256[]", + name: "val", + type: "uint256[]", + }, + ], + name: "log_named_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "int256[]", + name: "val", + type: "int256[]", + }, + ], + name: "log_named_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "address[]", + name: "val", + type: "address[]", + }, + ], + name: "log_named_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "bytes", + name: "val", + type: "bytes", + }, + ], + name: "log_named_bytes", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "bytes32", + name: "val", + type: "bytes32", + }, + ], + name: "log_named_bytes32", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "int256", + name: "val", + type: "int256", + }, + { + indexed: false, + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "log_named_decimal_int", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "uint256", + name: "val", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "log_named_decimal_uint", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "int256", + name: "val", + type: "int256", + }, + ], + name: "log_named_int", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "string", + name: "val", + type: "string", + }, + ], + name: "log_named_string", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "uint256", + name: "val", + type: "uint256", + }, + ], + name: "log_named_uint", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "", + type: "string", + }, + ], + name: "log_string", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "log_uint", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + name: "logs", + type: "event", + }, + { + inputs: [], + name: "IS_TEST", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "excludeArtifacts", + outputs: [ + { + internalType: "string[]", + name: "excludedArtifacts_", + type: "string[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "excludeContracts", + outputs: [ + { + internalType: "address[]", + name: "excludedContracts_", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "excludeSelectors", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "bytes4[]", + name: "selectors", + type: "bytes4[]", + }, + ], + internalType: "struct StdInvariant.FuzzSelector[]", + name: "excludedSelectors_", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "excludeSenders", + outputs: [ + { + internalType: "address[]", + name: "excludedSenders_", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "failed", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "deployer", + type: "address", + }, + { + internalType: "address", + name: "wzeta", + type: "address", + }, + ], + name: "prepareUniswapV2", + outputs: [ + { + internalType: "address", + name: "factory", + type: "address", + }, + { + internalType: "address", + name: "router", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "targetArtifactSelectors", + outputs: [ + { + components: [ + { + internalType: "string", + name: "artifact", + type: "string", + }, + { + internalType: "bytes4[]", + name: "selectors", + type: "bytes4[]", + }, + ], + internalType: "struct StdInvariant.FuzzArtifactSelector[]", + name: "targetedArtifactSelectors_", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetArtifacts", + outputs: [ + { + internalType: "string[]", + name: "targetedArtifacts_", + type: "string[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetContracts", + outputs: [ + { + internalType: "address[]", + name: "targetedContracts_", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetInterfaces", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "string[]", + name: "artifacts", + type: "string[]", + }, + ], + internalType: "struct StdInvariant.FuzzInterface[]", + name: "targetedInterfaces_", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetSelectors", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "bytes4[]", + name: "selectors", + type: "bytes4[]", + }, + ], + internalType: "struct StdInvariant.FuzzSelector[]", + name: "targetedSelectors_", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetSenders", + outputs: [ + { + internalType: "address[]", + name: "targetedSenders_", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "uniswapV2Router", + type: "address", + }, + { + internalType: "address", + name: "uniswapV2Factory", + type: "address", + }, + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "address", + name: "wzeta", + type: "address", + }, + { + internalType: "address", + name: "deployer", + type: "address", + }, + { + internalType: "uint256", + name: "zrc20Amount", + type: "uint256", + }, + { + internalType: "uint256", + name: "wzetaAmount", + type: "uint256", + }, + ], + name: "uniswapV2AddLiquidity", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +const _bytecode = + "0x60808060405234602f57600160ff19600c541617600c55600160ff19601f541617601f5561170090816100358239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80631ed7831c146100f75780632ade3880146100f25780633e5e3c23146100ed5780633f7286f4146100e857806351976f44146100e357806366d9a9a0146100de57806385226c81146100d9578063916a17c6146100d4578063a0d788b7146100cf578063b0464fdc146100ca578063b5508aa9146100c5578063ba414fa6146100c0578063e20c9f71146100bb5763fa7626d4146100b657600080fd5b6110ae565b61102e565b611009565b610f7c565b610ed0565b610bb3565b610b07565b610a02565b6108f6565b6104ac565b61041b565b61039b565b6102ef565b61014f565b600091031261010757565b600080fd5b602060408183019282815284518094520192019060005b8181106101305750505090565b82516001600160a01b0316845260209384019390920191600101610123565b346101075760003660031901126101075760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b8181106101c0576101bc856101b081870382611108565b6040519182918261010c565b0390f35b82546001600160a01b0316845260209093019260019283019201610199565b60005b8381106101f25750506000910152565b81810151838201526020016101e2565b9060209161021b815180928185528580860191016101df565b601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061025a57505050505090565b9091929394603f198282030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b85010194019260005b8281106102c45750505050506020806001929701930193019193929061024b565b90919293946020806102e2600193605f198782030189528951610202565b97019501939291016102a3565b3461010757600036600319011261010757601e5461030c8161112a565b9061031a6040519283611108565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061036057604051806101bc8782610227565b60026020600192604051610373816110e7565b848060a01b03865416815261038985870161120e565b8382015281520192019201919061034b565b346101075760003660031901126101075760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b8181106103fc576101bc856101b081870382611108565b82546001600160a01b03168452602090930192600192830192016103e5565b346101075760003660031901126101075760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b81811061047c576101bc856101b081870382611108565b82546001600160a01b0316845260209093019260019283019201610465565b6001600160a01b0381160361010757565b34610107576040366003190112610107576004356104c98161049b565b602435906104d68261049b565b6000805160206116ab8339815191523b15610107576040516303223eab60e11b81526001600160a01b0382166004820152600081602481836000805160206116ab8339815191525af180156107ba57610823575b506040516360f9bb1160e01b815260206004820152603960248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76322d636f72652f627560448201527f696c642f556e69737761705632466163746f72792e6a736f6e0000000000000060648201526000816084816000805160206116ab8339815191525afa9081156107ba576105d99160009182916107e8575b5060405180938192631fb2437d60e31b8352600483016112e4565b03816000805160206116ab8339815191525afa80156107ba576106389261062592600092610802575b50604080516001600160a01b039092166020830152909261063391849190820190565b03601f198101845283611108565b611657565b6040516360f9bb1160e01b815260206004820152603f60248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76322d7065726970686560448201527f72792f6275696c642f556e69737761705632526f7574657230322e6a736f6e0060648201529091906000816084816000805160206116ab8339815191525afa9081156107ba576106e89160009182916107e8575060405180938192631fb2437d60e31b8352600483016112e4565b03816000805160206116ab8339815191525afa80156107ba5761073b92610625926000926107bf575b50604080516001600160a01b03808816602083015290921690820152916106339083906060820190565b906000805160206116ab8339815191523b15610107576040516390c5013b60e01b8152600081600481836000805160206116ab8339815191525af180156107ba5761079f575b50604080516001600160a01b03928316815292909116602083015290f35b806107ae60006107b493611108565b806100fc565b38610781565b611266565b6106339192506107e1903d806000833e6107d98183611108565b810190611272565b9190610711565b6107fc91503d8084833e6107d98183611108565b386105be565b61063391925061081c903d806000833e6107d98183611108565b9190610602565b806107ae600061083293611108565b3861052a565b906020808351928381520192019060005b8181106108565750505090565b82516001600160e01b031916845260209384019390920191600101610849565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106108a957505050505090565b90919293946020806108e7600193603f19868203018752895190836108d78351604084526040840190610202565b9201519084818403910152610838565b9701930193019193929061089a565b3461010757600036600319011261010757601b546109138161112a565b906109216040519283611108565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b83831061096757604051806101bc8782610876565b6002602060019260405161097a816110e7565b61098386611142565b8152610990858701611324565b83820152815201920192019190610952565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106109d557505050505090565b90919293946020806109f3600193603f198682030187528951610202565b970193019301919392906109c6565b3461010757600036600319011261010757601a54610a1f8161112a565b90610a2d6040519283611108565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310610a7257604051806101bc87826109a2565b600160208192610a8185611142565b815201920192019190610a5d565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610ac257505050505090565b9091929394602080610af8600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610838565b97019301930191939290610ab3565b3461010757600036600319011261010757601d54610b248161112a565b90610b326040519283611108565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b838310610b7857604051806101bc8782610a8f565b60026020600192604051610b8b816110e7565b848060a01b038654168152610ba1858701611324565b83820152815201920192019190610b63565b346101075760e036600319011261010757600435610bd08161049b565b60243590610bdd8261049b565b604435610be98161049b565b60643591610bf68361049b565b60843592610c038461049b565b60a4359260c435956000805160206116ab8339815191523b15610107576040516303223eab60e11b81526001600160a01b0387166004820152600081602481836000805160206116ab8339815191525af180156107ba57610ebb575b506040516364e329cb60e11b81526001600160a01b0383811660048301528481166024830152909160209183916044918391600091165af180156107ba57610e8e575b5060405163095ea7b360e01b81526001600160a01b0384166004820152602481018590526020818060448101038160006001600160a01b0387165af180156107ba57610e71575b5060405163095ea7b360e01b81526001600160a01b038416600482015260248101879052906020828060448101038160006001600160a01b0388165af180156107ba57606096600093610da592610e44575b50610d4542611576565b60405162e8e33760e81b81526001600160a01b03948516600482015295841660248701526044860197909752606485019890985260006084850181905260a4850152961660c483015260e482019390935293849283918290610104820190565b03926001600160a01b03165af180156107ba57610e15575b506000805160206116ab8339815191523b15610107576040516390c5013b60e01b8152600081600481836000805160206116ab8339815191525af180156107ba57610e0457005b806107ae6000610e1393611108565b005b610e369060603d606011610e3d575b610e2e8183611108565b81019061159b565b5050610dbd565b503d610e24565b610e659060203d602011610e6a575b610e5d8183611108565b81019061155e565b610d3b565b503d610e53565b610e899060203d602011610e6a57610e5d8183611108565b610ce9565b610eaf9060203d602011610eb4575b610ea78183611108565b810190611549565b610ca2565b503d610e9d565b806107ae6000610eca93611108565b38610c5f565b3461010757600036600319011261010757601c54610eed8161112a565b90610efb6040519283611108565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b838310610f4157604051806101bc8782610a8f565b60026020600192604051610f54816110e7565b848060a01b038654168152610f6a858701611324565b83820152815201920192019190610f2c565b3461010757600036600319011261010757601954610f998161112a565b90610fa76040519283611108565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b838310610fec57604051806101bc87826109a2565b600160208192610ffb85611142565b815201920192019190610fd7565b346101075760003660031901126101075760206110246115c5565b6040519015158152f35b346101075760003660031901126101075760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b81811061108f576101bc856101b081870382611108565b82546001600160a01b0316845260209093019260019283019201611078565b3461010757600036600319011261010757602060ff601f54166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff82111761110357604052565b6110d1565b90601f8019910116810190811067ffffffffffffffff82111761110357604052565b67ffffffffffffffff81116111035760051b60200190565b9060405191600081548060011c9260018216918215611204575b6020851083146111f05784875286939260208501929181156111d35750600114611191575b505061118f92500383611108565b565b6111a2919250600052602060002090565b906000915b8483106111bc575061118f9350013880611181565b8054828401528693506020909201916001016111a7565b91505061118f9491925060ff19168252151560051b013880611181565b634e487b7160e01b84526022600452602484fd5b93607f169361115c565b90815461121a8161112a565b926112286040519485611108565b818452602084019060005260206000206000915b8383106112495750505050565b60016020819261125885611142565b81520192019201919061123c565b6040513d6000823e3d90fd5b6020818303126101075780519067ffffffffffffffff8211610107570181601f82011215610107576020815191019067ffffffffffffffff811161110357604051926112c8601f8301601f191660200185611108565b81845281830111610107576112e19160208401906101df565b90565b6112f660409283835283830190610202565b90602081830391015260148152730b995d9b4b989e5d1958dbd9194b9bd89a9958dd60621b60208201520190565b604051815480825290929183906113446020830191600052602060002090565b926000905b80600783011061148c5761118f94549181811061146d575b81811061144e575b81811061142f575b818110611410575b8181106113f1575b8181106113d2575b8181106113b4575b1061139f575b500383611108565b6001600160e01b031916815260200138611397565b602083811b6001600160e01b03191685529093600191019301611391565b604083901b6001600160e01b0319168452926001906020019301611389565b606083901b6001600160e01b0319168452926001906020019301611381565b608083901b6001600160e01b0319168452926001906020019301611379565b60a083901b6001600160e01b0319168452926001906020019301611371565b60c083901b6001600160e01b0319168452926001906020019301611369565b6001600160e01b031960e084901b168452926001906020019301611361565b91600891935061010060019161153b87546114b2838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b019401920185929391611349565b9081602091031261010757516112e18161049b565b90816020910312610107575180151581036101075790565b90610384820180921161158557565b634e487b7160e01b600052601160045260246000fd5b90816060910312610107578051916040602083015192015190565b90816020910312610107575190565b60085460ff1680156115d45790565b50604051630667f9d760e41b81526000805160206116ab833981519152600482018190526519985a5b195960d21b6024830152602090829060449082905afa9081156107ba57600091611628575b50151590565b61164a915060203d602011611650575b6116428183611108565b8101906115b6565b38611622565b503d611638565b9061169c6020916040519283918161167881850197888151938492016101df565b830161168c825180938580850191016101df565b010103601f198101835282611108565b51906000f09081156101075756fe0000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da264697066735822122070848a0cc1973f426e3799a52c16b95b6ec3a7e21ac143cbfbd9350f8180ed2d64736f6c634300081a0033"; + +type UniswapV2SetupLibConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: UniswapV2SetupLibConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class UniswapV2SetupLib__factory extends ContractFactory { + constructor(...args: UniswapV2SetupLibConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + UniswapV2SetupLib & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): UniswapV2SetupLib__factory { + return super.connect(runner) as UniswapV2SetupLib__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): UniswapV2SetupLibInterface { + return new Interface(_abi) as UniswapV2SetupLibInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): UniswapV2SetupLib { + return new Contract(address, _abi, runner) as unknown as UniswapV2SetupLib; + } +} diff --git a/typechain-types/factories/contracts/testing/UniswapV2SetupLib.sol/index.ts b/typechain-types/factories/contracts/testing/UniswapV2SetupLib.sol/index.ts new file mode 100644 index 00000000..50a444e2 --- /dev/null +++ b/typechain-types/factories/contracts/testing/UniswapV2SetupLib.sol/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IUniswapV2Factory__factory } from "./IUniswapV2Factory__factory"; +export { IUniswapV2Router02__factory } from "./IUniswapV2Router02__factory"; +export { UniswapV2SetupLib__factory } from "./UniswapV2SetupLib__factory"; diff --git a/typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/INonfungiblePositionManager__factory.ts b/typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/INonfungiblePositionManager__factory.ts new file mode 100644 index 00000000..51f16cb0 --- /dev/null +++ b/typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/INonfungiblePositionManager__factory.ts @@ -0,0 +1,213 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + INonfungiblePositionManager, + INonfungiblePositionManagerInterface, +} from "../../../../contracts/testing/UniswapV3SetupLib.sol/INonfungiblePositionManager"; + +const _abi = [ + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "token0", + type: "address", + }, + { + internalType: "address", + name: "token1", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "int24", + name: "tickLower", + type: "int24", + }, + { + internalType: "int24", + name: "tickUpper", + type: "int24", + }, + { + internalType: "uint256", + name: "amount0Desired", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1Desired", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount0Min", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1Min", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + internalType: "struct INonfungiblePositionManager.MintParams", + name: "params", + type: "tuple", + }, + ], + name: "mint", + outputs: [ + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + { + internalType: "uint128", + name: "liquidity", + type: "uint128", + }, + { + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "ownerOf", + outputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "positions", + outputs: [ + { + internalType: "uint96", + name: "nonce", + type: "uint96", + }, + { + internalType: "address", + name: "operator", + type: "address", + }, + { + internalType: "address", + name: "token0", + type: "address", + }, + { + internalType: "address", + name: "token1", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "int24", + name: "tickLower", + type: "int24", + }, + { + internalType: "int24", + name: "tickUpper", + type: "int24", + }, + { + internalType: "uint128", + name: "liquidity", + type: "uint128", + }, + { + internalType: "uint256", + name: "feeGrowthInside0LastX128", + type: "uint256", + }, + { + internalType: "uint256", + name: "feeGrowthInside1LastX128", + type: "uint256", + }, + { + internalType: "uint128", + name: "tokensOwed0", + type: "uint128", + }, + { + internalType: "uint128", + name: "tokensOwed1", + type: "uint128", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +export class INonfungiblePositionManager__factory { + static readonly abi = _abi; + static createInterface(): INonfungiblePositionManagerInterface { + return new Interface(_abi) as INonfungiblePositionManagerInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): INonfungiblePositionManager { + return new Contract( + address, + _abi, + runner + ) as unknown as INonfungiblePositionManager; + } +} diff --git a/typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Factory__factory.ts b/typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Factory__factory.ts new file mode 100644 index 00000000..0e1a3933 --- /dev/null +++ b/typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Factory__factory.ts @@ -0,0 +1,83 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IUniswapV3Factory, + IUniswapV3FactoryInterface, +} from "../../../../contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Factory"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + ], + name: "createPool", + outputs: [ + { + internalType: "address", + name: "pool", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + ], + name: "getPool", + outputs: [ + { + internalType: "address", + name: "pool", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +export class IUniswapV3Factory__factory { + static readonly abi = _abi; + static createInterface(): IUniswapV3FactoryInterface { + return new Interface(_abi) as IUniswapV3FactoryInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IUniswapV3Factory { + return new Contract(address, _abi, runner) as unknown as IUniswapV3Factory; + } +} diff --git a/typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Pool__factory.ts b/typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Pool__factory.ts new file mode 100644 index 00000000..d8abbdfe --- /dev/null +++ b/typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Pool__factory.ts @@ -0,0 +1,120 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IUniswapV3Pool, + IUniswapV3PoolInterface, +} from "../../../../contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Pool"; + +const _abi = [ + { + inputs: [ + { + internalType: "uint160", + name: "sqrtPriceX96", + type: "uint160", + }, + ], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "liquidity", + outputs: [ + { + internalType: "uint128", + name: "", + type: "uint128", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "slot0", + outputs: [ + { + internalType: "uint160", + name: "sqrtPriceX96", + type: "uint160", + }, + { + internalType: "int24", + name: "tick", + type: "int24", + }, + { + internalType: "uint16", + name: "observationIndex", + type: "uint16", + }, + { + internalType: "uint16", + name: "observationCardinality", + type: "uint16", + }, + { + internalType: "uint16", + name: "observationCardinalityNext", + type: "uint16", + }, + { + internalType: "uint8", + name: "feeProtocol", + type: "uint8", + }, + { + internalType: "bool", + name: "unlocked", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "token0", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "token1", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +export class IUniswapV3Pool__factory { + static readonly abi = _abi; + static createInterface(): IUniswapV3PoolInterface { + return new Interface(_abi) as IUniswapV3PoolInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IUniswapV3Pool { + return new Contract(address, _abi, runner) as unknown as IUniswapV3Pool; + } +} diff --git a/typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/UniswapV3SetupLib__factory.ts b/typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/UniswapV3SetupLib__factory.ts new file mode 100644 index 00000000..a7cf2f15 --- /dev/null +++ b/typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/UniswapV3SetupLib__factory.ts @@ -0,0 +1,635 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../../common"; +import type { + UniswapV3SetupLib, + UniswapV3SetupLibInterface, +} from "../../../../contracts/testing/UniswapV3SetupLib.sol/UniswapV3SetupLib"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "", + type: "string", + }, + ], + name: "log", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "", + type: "address", + }, + ], + name: "log_address", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256[]", + name: "val", + type: "uint256[]", + }, + ], + name: "log_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "int256[]", + name: "val", + type: "int256[]", + }, + ], + name: "log_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address[]", + name: "val", + type: "address[]", + }, + ], + name: "log_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + name: "log_bytes", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + name: "log_bytes32", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "int256", + name: "", + type: "int256", + }, + ], + name: "log_int", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "address", + name: "val", + type: "address", + }, + ], + name: "log_named_address", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "uint256[]", + name: "val", + type: "uint256[]", + }, + ], + name: "log_named_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "int256[]", + name: "val", + type: "int256[]", + }, + ], + name: "log_named_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "address[]", + name: "val", + type: "address[]", + }, + ], + name: "log_named_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "bytes", + name: "val", + type: "bytes", + }, + ], + name: "log_named_bytes", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "bytes32", + name: "val", + type: "bytes32", + }, + ], + name: "log_named_bytes32", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "int256", + name: "val", + type: "int256", + }, + { + indexed: false, + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "log_named_decimal_int", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "uint256", + name: "val", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "log_named_decimal_uint", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "int256", + name: "val", + type: "int256", + }, + ], + name: "log_named_int", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "string", + name: "val", + type: "string", + }, + ], + name: "log_named_string", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "uint256", + name: "val", + type: "uint256", + }, + ], + name: "log_named_uint", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "", + type: "string", + }, + ], + name: "log_string", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "log_uint", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + name: "logs", + type: "event", + }, + { + inputs: [], + name: "IS_TEST", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "excludeArtifacts", + outputs: [ + { + internalType: "string[]", + name: "excludedArtifacts_", + type: "string[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "excludeContracts", + outputs: [ + { + internalType: "address[]", + name: "excludedContracts_", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "excludeSelectors", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "bytes4[]", + name: "selectors", + type: "bytes4[]", + }, + ], + internalType: "struct StdInvariant.FuzzSelector[]", + name: "excludedSelectors_", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "excludeSenders", + outputs: [ + { + internalType: "address[]", + name: "excludedSenders_", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "failed", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetArtifactSelectors", + outputs: [ + { + components: [ + { + internalType: "string", + name: "artifact", + type: "string", + }, + { + internalType: "bytes4[]", + name: "selectors", + type: "bytes4[]", + }, + ], + internalType: "struct StdInvariant.FuzzArtifactSelector[]", + name: "targetedArtifactSelectors_", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetArtifacts", + outputs: [ + { + internalType: "string[]", + name: "targetedArtifacts_", + type: "string[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetContracts", + outputs: [ + { + internalType: "address[]", + name: "targetedContracts_", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetInterfaces", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "string[]", + name: "artifacts", + type: "string[]", + }, + ], + internalType: "struct StdInvariant.FuzzInterface[]", + name: "targetedInterfaces_", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetSelectors", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "bytes4[]", + name: "selectors", + type: "bytes4[]", + }, + ], + internalType: "struct StdInvariant.FuzzSelector[]", + name: "targetedSelectors_", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetSenders", + outputs: [ + { + internalType: "address[]", + name: "targetedSenders_", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +const _bytecode = + "0x60808060405234602f57600160ff19600c541617600c55600160ff19601f541617601f55610e1e90816100358239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c9081631ed7831c146107db575080632ade3880146106195780633e5e3c23146105995780633f7286f41461051957806366d9a9a0146103f257806385226c8114610365578063916a17c6146102b9578063b0464fdc1461020d578063b5508aa914610180578063ba414fa61461015b578063e20c9f71146100cb5763fa7626d4146100a357600080fd5b346100c65760003660031901126100c657602060ff601f54166040519015158152f35b600080fd5b346100c65760003660031901126100c65760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b81811061013c576101388561012c81870382610a23565b60405191829182610857565b0390f35b82546001600160a01b0316845260209093019260019283019201610115565b346100c65760003660031901126100c6576020610176610d32565b6040519015158152f35b346100c65760003660031901126100c65760195461019d81610a45565b906101ab6040519283610a23565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b8383106101f057604051806101388782610919565b6001602081926101ff85610a5d565b8152019201920191906101db565b346100c65760003660031901126100c657601c5461022a81610a45565b906102386040519283610a23565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b83831061027e57604051806101388782610979565b60026020600192604051610291816109f1565b848060a01b0386541681526102a7858701610b2d565b83820152815201920192019190610269565b346100c65760003660031901126100c657601d546102d681610a45565b906102e46040519283610a23565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b83831061032a57604051806101388782610979565b6002602060019260405161033d816109f1565b848060a01b038654168152610353858701610b2d565b83820152815201920192019190610315565b346100c65760003660031901126100c657601a5461038281610a45565b906103906040519283610a23565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b8383106103d557604051806101388782610919565b6001602081926103e485610a5d565b8152019201920191906103c0565b346100c65760003660031901126100c657601b5461040f81610a45565b9061041d6040519283610a23565b808252602082019081601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b8383106104de57848660405191829160208301906020845251809152604083019060408160051b85010192916000905b82821061048f57505050500390f35b919360019193955060206104ce8192603f198a8203018652885190836104be835160408452604084019061089a565b92015190848184039101526108db565b9601920192018594939192610480565b600260206001926040516104f1816109f1565b6104fa86610a5d565b8152610507858701610b2d565b83820152815201920192019190610450565b346100c65760003660031901126100c65760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b81811061057a576101388561012c81870382610a23565b82546001600160a01b0316845260209093019260019283019201610563565b346100c65760003660031901126100c65760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b8181106105fa576101388561012c81870382610a23565b82546001600160a01b03168452602090930192600192830192016105e3565b346100c65760003660031901126100c657601e5461063681610a45565b906106446040519283610a23565b808252602082019081601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061074d57848660405191829160208301906020845251809152604083019060408160051b85010192916000905b8282106106b657505050500390f35b919390929450603f198682030182528451906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b85010194019260005b82811061072257505050505060208060019296019201920185949391926106a7565b9091929394602080610740600193605f19878203018952895161089a565b9701950193929101610700565b604051610759816109f1565b82546001600160a01b0316815260018301805461077581610a45565b916107836040519384610a23565b81835260208301906000526020600020906000905b8382106107be575050505060019282602092836002950152815201920192019190610677565b6001602081926107cd86610a5d565b815201930191019091610798565b346100c65760003660031901126100c657601654808252602082019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b818110610838576101388561012c81870382610a23565b82546001600160a01b0316845260209093019260019283019201610821565b602060408183019282815284518094520192019060005b81811061087b5750505090565b82516001600160a01b031684526020938401939092019160010161086e565b919082519283825260005b8481106108c6575050826000602080949584010152601f8019910116010190565b806020809284010151828286010152016108a5565b906020808351928381520192019060005b8181106108f95750505090565b82516001600160e01b0319168452602093840193909201916001016108ec565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061094c57505050505090565b909192939460208061096a600193603f19868203018752895161089a565b9701930193019193929061093d565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106109ac57505050505090565b90919293946020806109e2600193603f198682030187526040838b51878060a01b038151168452015191818582015201906108db565b9701930193019193929061099d565b6040810190811067ffffffffffffffff821117610a0d57604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610a0d57604052565b67ffffffffffffffff8111610a0d5760051b60200190565b906040519160008154918260011c92600181168015610b23575b602085108114610b0f57848752869392918115610aed5750600114610aa6575b50610aa492500383610a23565b565b90506000929192526020600020906000915b818310610ad1575050906020610aa49282010138610a97565b6020919350806001915483858901015201910190918492610ab8565b905060209250610aa494915060ff191682840152151560051b82010138610a97565b634e487b7160e01b84526022600452602484fd5b93607f1693610a77565b90604051918281549182825260208201906000526020600020926000905b806007830110610c8d57610aa4945491818110610c6e575b818110610c4f575b818110610c30575b818110610c11575b818110610bf2575b818110610bd3575b818110610bb6575b10610ba1575b500383610a23565b6001600160e01b031916815260200138610b99565b602083811b6001600160e01b031916855290930192600101610b93565b604083901b6001600160e01b0319168452602090930192600101610b8b565b606083901b6001600160e01b0319168452602090930192600101610b83565b608083901b6001600160e01b0319168452602090930192600101610b7b565b60a083901b6001600160e01b0319168452602090930192600101610b73565b60c083901b6001600160e01b0319168452602090930192600101610b6b565b60e083901b6001600160e01b0319168452602090930192600101610b63565b916008919350610100600191865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e0820152019401920185929391610b4b565b60085460ff168015610d415790565b50604051630667f9d760e41b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d60048201526519985a5b195960d21b6024820152602081604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610ddc57600091610daa575b50151590565b90506020813d602011610dd4575b81610dc560209383610a23565b810103126100c6575138610da4565b3d9150610db8565b6040513d6000823e3d90fdfea26469706673582212203e5e20172b926adac7c008c082cf586b2caaca080bb260a31479a8fab7e0c52064736f6c634300081a0033"; + +type UniswapV3SetupLibConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: UniswapV3SetupLibConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class UniswapV3SetupLib__factory extends ContractFactory { + constructor(...args: UniswapV3SetupLibConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + UniswapV3SetupLib & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): UniswapV3SetupLib__factory { + return super.connect(runner) as UniswapV3SetupLib__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): UniswapV3SetupLibInterface { + return new Interface(_abi) as UniswapV3SetupLibInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): UniswapV3SetupLib { + return new Contract(address, _abi, runner) as unknown as UniswapV3SetupLib; + } +} diff --git a/typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/index.ts b/typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/index.ts new file mode 100644 index 00000000..880f67ce --- /dev/null +++ b/typechain-types/factories/contracts/testing/UniswapV3SetupLib.sol/index.ts @@ -0,0 +1,7 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { INonfungiblePositionManager__factory } from "./INonfungiblePositionManager__factory"; +export { IUniswapV3Factory__factory } from "./IUniswapV3Factory__factory"; +export { IUniswapV3Pool__factory } from "./IUniswapV3Pool__factory"; +export { UniswapV3SetupLib__factory } from "./UniswapV3SetupLib__factory"; diff --git a/typechain-types/factories/contracts/testing/ZetaSetup.t.sol/ZetaSetup__factory.ts b/typechain-types/factories/contracts/testing/ZetaSetup.t.sol/ZetaSetup__factory.ts new file mode 100644 index 00000000..15ec54da --- /dev/null +++ b/typechain-types/factories/contracts/testing/ZetaSetup.t.sol/ZetaSetup__factory.ts @@ -0,0 +1,889 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + AddressLike, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { NonPayableOverrides } from "../../../../common"; +import type { + ZetaSetup, + ZetaSetupInterface, +} from "../../../../contracts/testing/ZetaSetup.t.sol/ZetaSetup"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "_deployer", + type: "address", + }, + { + internalType: "address", + name: "_fungibleModuleAddress", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "", + type: "string", + }, + ], + name: "log", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "", + type: "address", + }, + ], + name: "log_address", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256[]", + name: "val", + type: "uint256[]", + }, + ], + name: "log_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "int256[]", + name: "val", + type: "int256[]", + }, + ], + name: "log_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address[]", + name: "val", + type: "address[]", + }, + ], + name: "log_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + name: "log_bytes", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + name: "log_bytes32", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "int256", + name: "", + type: "int256", + }, + ], + name: "log_int", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "address", + name: "val", + type: "address", + }, + ], + name: "log_named_address", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "uint256[]", + name: "val", + type: "uint256[]", + }, + ], + name: "log_named_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "int256[]", + name: "val", + type: "int256[]", + }, + ], + name: "log_named_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "address[]", + name: "val", + type: "address[]", + }, + ], + name: "log_named_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "bytes", + name: "val", + type: "bytes", + }, + ], + name: "log_named_bytes", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "bytes32", + name: "val", + type: "bytes32", + }, + ], + name: "log_named_bytes32", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "int256", + name: "val", + type: "int256", + }, + { + indexed: false, + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "log_named_decimal_int", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "uint256", + name: "val", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "log_named_decimal_uint", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "int256", + name: "val", + type: "int256", + }, + ], + name: "log_named_int", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "string", + name: "val", + type: "string", + }, + ], + name: "log_named_string", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "uint256", + name: "val", + type: "uint256", + }, + ], + name: "log_named_uint", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "", + type: "string", + }, + ], + name: "log_string", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "log_uint", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + name: "logs", + type: "event", + }, + { + inputs: [], + name: "FUNGIBLE_MODULE_ADDRESS", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "IS_TEST", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "deployer", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "excludeArtifacts", + outputs: [ + { + internalType: "string[]", + name: "excludedArtifacts_", + type: "string[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "excludeContracts", + outputs: [ + { + internalType: "address[]", + name: "excludedContracts_", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "excludeSelectors", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "bytes4[]", + name: "selectors", + type: "bytes4[]", + }, + ], + internalType: "struct StdInvariant.FuzzSelector[]", + name: "excludedSelectors_", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "excludeSenders", + outputs: [ + { + internalType: "address[]", + name: "excludedSenders_", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "failed", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "nodeLogicMock", + outputs: [ + { + internalType: "contract NodeLogicMock", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "deployer", + type: "address", + }, + { + internalType: "address", + name: "wzeta", + type: "address", + }, + ], + name: "prepareUniswapV2", + outputs: [ + { + internalType: "address", + name: "factory", + type: "address", + }, + { + internalType: "address", + name: "router", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "setupZetaChain", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "systemContract", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetArtifactSelectors", + outputs: [ + { + components: [ + { + internalType: "string", + name: "artifact", + type: "string", + }, + { + internalType: "bytes4[]", + name: "selectors", + type: "bytes4[]", + }, + ], + internalType: "struct StdInvariant.FuzzArtifactSelector[]", + name: "targetedArtifactSelectors_", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetArtifacts", + outputs: [ + { + internalType: "string[]", + name: "targetedArtifacts_", + type: "string[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetContracts", + outputs: [ + { + internalType: "address[]", + name: "targetedContracts_", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetInterfaces", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "string[]", + name: "artifacts", + type: "string[]", + }, + ], + internalType: "struct StdInvariant.FuzzInterface[]", + name: "targetedInterfaces_", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetSelectors", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "bytes4[]", + name: "selectors", + type: "bytes4[]", + }, + ], + internalType: "struct StdInvariant.FuzzSelector[]", + name: "targetedSelectors_", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetSenders", + outputs: [ + { + internalType: "address[]", + name: "targetedSenders_", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "uniswapV2Router", + type: "address", + }, + { + internalType: "address", + name: "uniswapV2Factory", + type: "address", + }, + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "address", + name: "wzeta", + type: "address", + }, + { + internalType: "address", + name: "deployer", + type: "address", + }, + { + internalType: "uint256", + name: "zrc20Amount", + type: "uint256", + }, + { + internalType: "uint256", + name: "wzetaAmount", + type: "uint256", + }, + ], + name: "uniswapV2AddLiquidity", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "uniswapV2Factory", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "uniswapV2Router", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "uniswapV3Factory", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "uniswapV3PositionManager", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "uniswapV3Router", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "wrapGatewayZEVM", + outputs: [ + { + internalType: "contract GatewayZEVM", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "wzeta", + outputs: [ + { + internalType: "address payable", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +const _bytecode = + "0x60803460a357601f620103f838819003918201601f19168301916001600160401b0383118484101760a857808492604094855283398101031260a3576001604e602060488460be565b930160be565b918160ff19600c541617600c55601f54906101008360a81b039060081b1690828060a81b0319161717601f5560018060a01b031660018060a01b03196020541617602055604051620103269081620000d28239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820360a35756fe6080604052600436101561001257600080fd5b60003560e01c8062173d46146101b65780631694505e146101b15780631ed7831c146101ac5780632ade3880146101a75780632c76d7a6146101a2578063342a30c31461019d5780633ce4a5bc146101985780633e5e3c23146101935780633f7286f41461018e57806351976f441461018957806352dc56b81461018457806359d0f7131461017f5780635b5491821461017a57806366141ce21461017557806366d9a9a01461017057806385226c811461016b578063916a17c614610166578063a0d788b714610161578063b0464fdc1461015c578063b5508aa914610157578063ba414fa614610152578063bb88b7691461014d578063d5f3948814610148578063e20c9f7114610143578063f04ab5341461013e5763fa7626d41461013957600080fd5b611c24565b611bfb565b611b7b565b611b4e565b611b25565b611b00565b611a73565b6119c7565b6116c8565b61161c565b611517565b61140b565b611324565b6112fb565b6112d2565b610684565b610636565b6105a5565b610525565b6104fe565b6104d5565b6104ac565b610400565b610260565b6101f4565b6101cb565b60009103126101c657565b600080fd5b346101c65760003660031901126101c6576021546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c6576024546040516001600160a01b039091168152602090f35b602060408183019282815284518094520192019060005b8181106102415750505090565b82516001600160a01b0316845260209384019390920191600101610234565b346101c65760003660031901126101c65760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b8181106102d1576102cd856102c181870382611c79565b6040519182918261021d565b0390f35b82546001600160a01b03168452602090930192600192830192016102aa565b60005b8381106103035750506000910152565b81810151838201526020016102f3565b9060209161032c815180928185528580860191016102f0565b601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061036b57505050505090565b9091929394603f198282030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b85010194019260005b8281106103d55750505050506020806001929701930193019193929061035c565b90919293946020806103f3600193605f198782030189528951610313565b97019501939291016103b4565b346101c65760003660031901126101c657601e5461041d81611c9b565b9061042b6040519283611c79565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061047157604051806102cd8782610338565b6002602060019260405161048481611c5d565b848060a01b03865416815261049a858701611d7f565b8382015281520192019201919061045c565b346101c65760003660031901126101c6576026546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c6576027546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c657602080546040516001600160a01b039091168152f35b346101c65760003660031901126101c65760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b818110610586576102cd856102c181870382611c79565b82546001600160a01b031684526020909301926001928301920161056f565b346101c65760003660031901126101c65760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b818110610606576102cd856102c181870382611c79565b82546001600160a01b03168452602090930192600192830192016105ef565b6001600160a01b038116036101c657565b346101c65760403660031901126101c65761066860043561065681610625565b6024359061066382610625565b611ea1565b604080516001600160a01b039384168152919092166020820152f35b346101c65760003660031901126101c657601f5460081c6001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af18015611104576112bd575b5060405161088580820182811067ffffffffffffffff8211176111bc57829162005e27833903906000f0801561110457602180546001600160a01b0319166001600160a01b03909216919091179055600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af18015611104576112a8575b506020546001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af1801561110457611293575b506020546001600160a01b0316600080516020620102d18339815191523b156101c65760405163c88a5e6d60e01b81526001600160a01b03919091166004820152678ac7230489e80000602482015260008160448183600080516020620102d18339815191525af180156111045761127e575b5060215461088e90610882906001600160a01b031681565b6001600160a01b031690565b803b156101c6576000678ac7230489e8000091600460405180948193630d0e30db60e41b83525af1801561110457611269575b50600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af1801561110457611254575b50601f5460081c6001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af180156111045761123f575b50601f5460081c6001600160a01b0316600080516020620102d18339815191523b156101c65760405163c88a5e6d60e01b81526001600160a01b03919091166004820152678ac7230489e80000602482015260008160448183600080516020620102d18339815191525af180156111045761122a575b506021546109ff90610882906001600160a01b031681565b803b156101c6576000678ac7230489e8000091600460405180948193630d0e30db60e41b83525af1801561110457611215575b50600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af1801561110457611200575b50601f54610af090610ad390610ab19060081c6001600160a01b0316602154610aab906001600160a01b0316610882565b90611ea1565b602480546001600160a01b0319166001600160a01b0390921691909117905590565b60018060a01b03166001600160601b0360a01b6023541617602355565b601f54610b8790610b4d90610b6a90610b2a9060081c6001600160a01b0316602154610b24906001600160a01b0316610882565b906125b2565b602780546001600160a01b0319166001600160a01b039092169190911790559092565b60018060a01b03166001600160601b0360a01b6026541617602655565b60018060a01b03166001600160601b0360a01b6025541617602555565b6020546001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af18015611104576111eb575b506021546001600160a01b03166023546001600160a01b03166024549091906001600160a01b03169160405192610b3a918285019385851067ffffffffffffffff8611176111bc578594610c6294620052ed87396001600160a01b0391821681529181166020830152909116604082015260600190565b03906000f0801561110457602280546001600160a01b0319166001600160a01b039092169190911790556040516128e080820182811067ffffffffffffffff8211176111bc57829162002a0d833903906000f0801561110457600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af18015611104576111d6575b50601f5460081c6001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af18015611104576111c1575b506040516192d980820182811067ffffffffffffffff8211176111bc578291620066ac833903906000f0801561110457602880546001600160a01b0319166001600160a01b03929092169182179055610dc290610882565b906040519161094c9081840184811067ffffffffffffffff8211176111bc578493610e09936200f98586396001600160a01b03908116825291909116602082015260400190565b03906000f0801561110457602980546001600160a01b0319166001600160a01b03929092169182179055610e3c90610882565b6021546001600160a01b0316601f5460081c6001600160a01b0316823b156101c65760405163485cc95560e01b81526001600160a01b03928316600482015291166024820152906000908290604490829084905af18015611104576111a7575b50600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af1801561110457611192575b506020546001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af180156111045761117d575b5060006020610fb7610f6861088261088260215460018060a01b031690565b602954610f7d906001600160a01b0316610882565b60405163095ea7b360e01b81526001600160a01b039091166004820152678ac7230489e80000602482015293849283919082906044820190565b03925af1801561110457611160575b50600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af180156111045761114b575b50601f5460081c6001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af1801561110457611136575b5060006020611095610f6861088261088260215460018060a01b031690565b03925af1801561110457611109575b50600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af18015611104576110ed57005b806110fc600061110293611c79565b806101bb565b005b611dd7565b61112a9060203d60201161112f575b6111228183611c79565b8101906121e1565b6110a4565b503d611118565b806110fc600061114593611c79565b38611076565b806110fc600061115a93611c79565b3861100e565b6111789060203d60201161112f576111228183611c79565b610fc6565b806110fc600061118c93611c79565b38610f49565b806110fc60006111a193611c79565b38610ee4565b806110fc60006111b693611c79565b38610e9c565b611c47565b806110fc60006111d093611c79565b38610d6a565b806110fc60006111e593611c79565b38610d02565b806110fc60006111fa93611c79565b38610beb565b806110fc600061120f93611c79565b38610a7a565b806110fc600061122493611c79565b38610a32565b806110fc600061123993611c79565b386109e7565b806110fc600061124e93611c79565b38610971565b806110fc600061126393611c79565b38610909565b806110fc600061127893611c79565b386108c1565b806110fc600061128d93611c79565b3861086a565b806110fc60006112a293611c79565b386107f7565b806110fc60006112b793611c79565b38610792565b806110fc60006112cc93611c79565b386106fc565b346101c65760003660031901126101c6576023546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c6576025546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c6576028546040516001600160a01b039091168152602090f35b906020808351928381520192019060005b81811061136b5750505090565b82516001600160e01b03191684526020938401939092019160010161135e565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106113be57505050505090565b90919293946020806113fc600193603f19868203018752895190836113ec8351604084526040840190610313565b920151908481840391015261134d565b970193019301919392906113af565b346101c65760003660031901126101c657601b5461142881611c9b565b906114366040519283611c79565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b83831061147c57604051806102cd878261138b565b6002602060019260405161148f81611c5d565b61149886611cb3565b81526114a58587016121f9565b83820152815201920192019190611467565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106114ea57505050505090565b9091929394602080611508600193603f198682030187528951610313565b970193019301919392906114db565b346101c65760003660031901126101c657601a5461153481611c9b565b906115426040519283611c79565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b83831061158757604051806102cd87826114b7565b60016020819261159685611cb3565b815201920192019190611572565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106115d757505050505090565b909192939460208061160d600193603f198682030187526040838b51878060a01b0381511684520151918185820152019061134d565b970193019301919392906115c8565b346101c65760003660031901126101c657601d5461163981611c9b565b906116476040519283611c79565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b83831061168d57604051806102cd87826115a4565b600260206001926040516116a081611c5d565b848060a01b0386541681526116b68587016121f9565b83820152815201920192019190611678565b346101c65760e03660031901126101c6576004356116e581610625565b602435906116f282610625565b6044356116fe81610625565b6064359161170b83610625565b6084359261171884610625565b60a4359260c43595600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b038716600482015260008160248183600080516020620102d18339815191525af18015611104576119b2575b506040516364e329cb60e11b81526001600160a01b0383811660048301528481166024830152909160209183916044918391600091165af1801561110457611985575b5060405163095ea7b360e01b81526001600160a01b0384166004820152602481018590526020818060448101038160006001600160a01b0387165af1801561110457611968575b5060405163095ea7b360e01b81526001600160a01b038416600482015260248101879052906020828060448101038160006001600160a01b0388165af18015611104576060966000936118bc9261194b575b5061185c42612433565b60405162e8e33760e81b81526001600160a01b03948516600482015295841660248701526044860197909752606485019890985260006084850181905260a4850152961660c483015260e482019390935293849283918290610104820190565b03926001600160a01b03165af180156111045761191c5750600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af18015611104576110ed57005b61193d9060603d606011611944575b6119358183611c79565b810190612458565b50506110a4565b503d61192b565b6119639060203d60201161112f576111228183611c79565b611852565b6119809060203d60201161112f576111228183611c79565b611800565b6119a69060203d6020116119ab575b61199e8183611c79565b81019061241e565b6117b9565b503d611994565b806110fc60006119c193611c79565b38611776565b346101c65760003660031901126101c657601c546119e481611c9b565b906119f26040519283611c79565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b838310611a3857604051806102cd87826115a4565b60026020600192604051611a4b81611c5d565b848060a01b038654168152611a618587016121f9565b83820152815201920192019190611a23565b346101c65760003660031901126101c657601954611a9081611c9b565b90611a9e6040519283611c79565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b838310611ae357604051806102cd87826114b7565b600160208192611af285611cb3565b815201920192019190611ace565b346101c65760003660031901126101c6576020611b1b612482565b6040519015158152f35b346101c65760003660031901126101c6576022546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c657601f5460405160089190911c6001600160a01b03168152602090f35b346101c65760003660031901126101c65760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b818110611bdc576102cd856102c181870382611c79565b82546001600160a01b0316845260209093019260019283019201611bc5565b346101c65760003660031901126101c6576029546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c657602060ff601f54166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176111bc57604052565b90601f8019910116810190811067ffffffffffffffff8211176111bc57604052565b67ffffffffffffffff81116111bc5760051b60200190565b9060405191600081548060011c9260018216918215611d75575b602085108314611d61578487528693926020850192918115611d445750600114611d02575b5050611d0092500383611c79565b565b611d13919250600052602060002090565b906000915b848310611d2d5750611d009350013880611cf2565b805482840152869350602090920191600101611d18565b915050611d009491925060ff19168252151560051b013880611cf2565b634e487b7160e01b84526022600452602484fd5b93607f1693611ccd565b908154611d8b81611c9b565b92611d996040519485611c79565b818452602084019060005260206000206000915b838310611dba5750505050565b600160208192611dc985611cb3565b815201920192019190611dad565b6040513d6000823e3d90fd5b67ffffffffffffffff81116111bc57601f01601f191660200190565b6020818303126101c65780519067ffffffffffffffff82116101c6570181601f820112156101c65760208151910190611e3781611de3565b92611e456040519485611c79565b818452818301116101c657611e5e9160208401906102f0565b90565b611e7360409283835283830190610313565b90602081830391015260148152730b995d9b4b989e5d1958dbd9194b9bd89a9958dd60621b60208201520190565b919091600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b038216600482015260008160248183600080516020620102d18339815191525af18015611104576121cc575b506040516360f9bb1160e01b815260206004820152603960248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76322d636f72652f627560448201527f696c642f556e69737761705632466163746f72792e6a736f6e000000000000006064820152600081608481600080516020620102d18339815191525afa90811561110457611faa916000918291612191575b5060405180938192631fb2437d60e31b835260048301611e61565b0381600080516020620102d18339815191525afa80156111045761200a92611ff7926000926121ab575b50604080516001600160a01b039092166020830152909261200591849190820190565b03601f198101845283611c79565b612515565b6040516360f9bb1160e01b815260206004820152603f60248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76322d7065726970686560448201527f72792f6275696c642f556e69737761705632526f7574657230322e6a736f6e006064820152909290600081608481600080516020620102d18339815191525afa908115611104576120bb916000918291612191575060405180938192631fb2437d60e31b835260048301611e61565b0381600080516020620102d18339815191525afa80156111045761210f92611ff792600092612168575b50604080516001600160a01b03808916602083015290921690820152916120059083906060820190565b90600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af18015611104576121595750565b806110fc6000611d0093611c79565b61200591925061218a903d806000833e6121828183611c79565b810190611dff565b91906120e5565b6121a591503d8084833e6121828183611c79565b38611f8f565b6120059192506121c5903d806000833e6121828183611c79565b9190611fd4565b806110fc60006121db93611c79565b38611efa565b908160209103126101c6575180151581036101c65790565b604051815480825290929183906122196020830191600052602060002090565b926000905b80600783011061236157611d00945491818110612342575b818110612323575b818110612304575b8181106122e5575b8181106122c6575b8181106122a7575b818110612289575b10612274575b500383611c79565b6001600160e01b03191681526020013861226c565b602083811b6001600160e01b03191685529093600191019301612266565b604083901b6001600160e01b031916845292600190602001930161225e565b606083901b6001600160e01b0319168452926001906020019301612256565b608083901b6001600160e01b031916845292600190602001930161224e565b60a083901b6001600160e01b0319168452926001906020019301612246565b60c083901b6001600160e01b031916845292600190602001930161223e565b6001600160e01b031960e084901b168452926001906020019301612236565b9160089193506101006001916124108754612387838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b01940192018592939161221e565b908160209103126101c65751611e5e81610625565b90610384820180921161244257565b634e487b7160e01b600052601160045260246000fd5b908160609103126101c6578051916040602083015192015190565b908160209103126101c6575190565b60085460ff1680156124915790565b50604051630667f9d760e41b8152600080516020620102d1833981519152600482018190526519985a5b195960d21b6024830152602090829060449082905afa908115611104576000916124e6575b50151590565b612508915060203d60201161250e575b6125008183611c79565b810190612473565b386124e0565b503d6124f6565b9061255a6020916040519283918161253681850197888151938492016102f0565b830161254a825180938580850191016102f0565b010103601f198101835282611c79565b51906000f09081156101c657565b61257a60409283835283830190610313565b90602081830391015260098152682e62797465636f646560b81b60208201520190565b604051906125ac602083611c79565b60008252565b600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af18015611104576129f7575b506040516360f9bb1160e01b815260206004820152605c60248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76332d636f72652f617260448201527f746966616374732f636f6e7472616374732f556e69737761705633466163746f60648201527f72792e736f6c2f556e69737761705633466163746f72792e6a736f6e00000000608482015260008160a481600080516020620102d18339815191525afa908115611104576126e09160009182916129a7575b5060405180938192631fb2437d60e31b835260048301612568565b0381600080516020620102d18339815191525afa801561110457612715916000916129dc575b5061270f61259d565b90612515565b6040516360f9bb1160e01b815260206004820152605560248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76332d7065726970686560448201527f72792f6172746966616374732f636f6e7472616374732f53776170526f757465606482015274391739b7b617a9bbb0b82937baba32b9173539b7b760591b608482015290929060008160a481600080516020620102d18339815191525afa908115611104576127e49160009182916129a7575060405180938192631fb2437d60e31b835260048301612568565b0381600080516020620102d18339815191525afa801561110457612836916000916129c1575b50604080516001600160a01b038088166020830152861691810191909152906120058260608101611ff7565b6040516360f9bb1160e01b815260206004820152607560248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76332d7065726970686560448201527f72792f6172746966616374732f636f6e7472616374732f4e6f6e66756e67696260648201527f6c65506f736974696f6e4d616e616765722e736f6c2f4e6f6e66756e6769626c60848201527432a837b9b4ba34b7b726b0b730b3b2b9173539b7b760591b60a482015290929060008160c481600080516020620102d18339815191525afa9081156111045761292b9160009182916129a7575060405180938192631fb2437d60e31b835260048301612568565b0381600080516020620102d18339815191525afa80156111045761210f928592600092612986575b50604080516001600160a01b03808a16602083015292831691810191909152921660608301526120058260808101611ff7565b6120059192506129a0903d806000833e6121828183611c79565b9190612953565b6129bb91503d8084833e6121828183611c79565b386126c5565b6129d691503d806000833e6121828183611c79565b3861280a565b6129f191503d806000833e6121828183611c79565b38612706565b806110fc6000612a0693611c79565b3861260a56fe60a080604052346100ea57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b6040516127f090816100f08239608051818181610db80152610e4c0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880610054565b63f92ee8a960e01b60005260046000fd5b600080fdfe6080806040526004361015610067575b50361561001b57600080fd5b610023611f8e565b6000546001600160a01b03163314158061004f575b61003e57005b63b3af013760e01b60005260046000fd5b506000805160206126fb833981519152331415610038565b600090813560e01c90816301ffc9a714611b2b5750806306cb898314611818578063184b0793146117195780632095dedb146115e457806321501a95146113f757806321e093b1146113d0578063248a9ca3146113a95780632722feee146113805780632810ae63146112f65780632f2ff15d146112c457806336568abe1461127f5780633f4ba83a146111fd578063485cc955146110345780634f1ef28614610e0d57806352d1902d14610da55780635c975abb14610d755780637b15118b14610b445780637c0dcb5f146108885780638456cb591461081357806391d14854146107ba57806397a1cef11461074d57806397d340f5146107305780639d4ba465146105c4578063a217fddf146105a8578063ad3cb1cc1461055b578063bcf7f32b146104b4578063c39aca371461033d578063d547741f14610302578063e63ab1e9146102c75763f45346dc0361000f57346102c45760603660031901126102c4576101d3611c4a565b906024356101df611c60565b926000805160206126fb83398151915233036102b5576101fd611f8e565b6001600160a01b03811693841580156102a4575b610295578215610286576001600160a01b038116916000805160206126fb8339815191528314801561027d575b61026e5761024d918491612503565b15610256578280f35b606493632050a1dd60e11b8452600452602452604452fd5b63416aebb560e11b8552600485fd5b5030831461023e565b635d67094f60e01b8452600484fd5b63d92e233d60e01b8452600484fd5b506001600160a01b03811615610211565b632160203f60e11b8352600483fd5b80fd5b50346102c457806003193601126102c45760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346102c45760403660031901126102c457610339600435610322611c34565b9061033461032f82611efe565b6120bd565b612330565b5080f35b50346102c45761034c36611cf8565b95949291909361035a611fdf565b6000805160206126fb83398151915233036104a557610377611f8e565b6001600160a01b0381169687158015610494575b610485578315610476576001600160a01b038316926000805160206126fb8339815191528414801561046d575b61045e57846103c79184612503565b1561044357869750823b1561043f5786946103fa869260405198899788968795632de7eb0b60e11b875260048701611e8e565b03925af180156104345761041f575b50600160008051602061277b8339815191525580f35b8161042991611bb1565b6102c4578038610409565b6040513d84823e3d90fd5b8680fd5b60648785858b632050a1dd60e11b8452600452602452604452fd5b63416aebb560e11b8852600488fd5b503084146103b8565b635d67094f60e01b8752600487fd5b63d92e233d60e01b8752600487fd5b506001600160a01b0383161561038b565b632160203f60e11b8652600486fd5b50346102c4576104c336611cf8565b90936104d29695939296611fdf565b6000805160206126fb83398151915233036104a5576104ef611f8e565b6001600160a01b03811615801561054a575b61053b57859660018060a01b031691823b1561043f5786946103fa869260405198899788968795632de7eb0b60e11b875260048701611e8e565b63d92e233d60e01b8652600486fd5b506001600160a01b03871615610501565b50346102c457806003193601126102c457506105a460405161057e604082611bb1565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611cb7565b0390f35b50346102c457806003193601126102c457602090604051908152f35b50346102c45760803660031901126102c4576105de611c4a565b90602435916105eb611c60565b90606435916001600160401b03831161072c576080600319843603011261072c57610614611fdf565b6000805160206126fb833981519152330361071d57610631611f8e565b6001600160a01b038216908115801561070c575b6106fd5785156106ee576001600160a01b038116926000805160206126fb833981519152841480156106e5575b6106d657610681918791612503565b156106bc5750829350803b156106b8576103fa8392918392604051948580948193636481451b60e11b835260040160048301611e29565b5050fd5b6064949250632050a1dd60e11b8452600452602452604452fd5b63416aebb560e11b8652600486fd5b50308414610672565b635d67094f60e01b8552600485fd5b63d92e233d60e01b8552600485fd5b506001600160a01b03811615610645565b632160203f60e11b8452600484fd5b8380fd5b50346102c457806003193601126102c45760206040516108008152f35b50346102c45760803660031901126102c4576004356001600160401b0381116107b65761077e903690600401611bed565b506064356001600160401b0381116107b65760a09060031990360301126102c4576004906107aa611f8e565b63e4dd681d60e01b8152fd5b5080fd5b50346102c45760403660031901126102c45760406107d6611c34565b91600435815260008051602061273b833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346102c457806003193601126102c45761082c61204b565b610834611f8e565b600160ff1960008051602061275b83398151915254161760008051602061275b833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346102c45760803660031901126102c4576004356001600160401b0381116107b6576108b9903690600401611bed565b90602435916108c6611c60565b906064356001600160401b03811161072c57806004019060a06003198236030112610b40576108f3611f8e565b8251156106fd5785156106ee576064016108006109108284611d75565b905011610b1d5750604051630123a4f160e31b8152939485946001600160a01b03851694602082600481895afa918215610ada578792610ae5575b509061095791836123d0565b604051634d8943bb60e01b815290602082600481895afa918215610ada578792610aa3575b50604051630123a4f160e31b8152926020846004818a5afa938415610a98578894610a4f575b507f07bf64173efd8f3dfb9e4eb3834bab9d5b85a3d89a1c6425797329de0668502c9593610a49936109fd9693602093604051936109df85611b80565b84526001858501526040519889986101208a526101208a0190611cb7565b9a85890152604088015260608701526080860152610a37858903918260a08801528a8a5260c0870190602080918051845201511515910152565b01610100840152602033960190611f1f565b0390a380f35b975094925090926020873d602011610a90575b81610a6f60209383611bb1565b81010312610a8b579551879692949293909290919060206109a2565b600080fd5b3d9150610a62565b6040513d8a823e3d90fd5b965090506020863d602011610ad2575b81610ac060209383611bb1565b81010312610a8b57869551903861097c565b3d9150610ab3565b6040513d89823e3d90fd5b915095506020813d602011610b15575b81610b0260209383611bb1565b81010312610a8b5751869561095761094b565b3d9150610af5565b610b2a8591604493611d75565b63cd6f4e6d60e01b835260045250610800602452fd5b8480fd5b50346102c45760e03660031901126102c4576004356001600160401b0381116107b657610b75903690600401611bed565b9060243591610b82611c60565b906064356001600160401b03811161072c57610ba2903690600401611c8a565b9490916040366083190112610b405760c435916001600160401b038311610d7157826004019360a0600319853603011261043f57610bde611f8e565b82511561048557811561047657608435938415610d6257606401610800610c10610c088389611d75565b90508b611da7565b11610d345750968697610c278588859a999a6123d0565b604051634d8943bb60e01b815290986001600160a01b031693602082600481885afa918215610d29578992610cea575b5098610c9a9596979899610c78604051986101208a526101208a0190611cb7565b95602089015260408801526060870152608086015284830360a0860152611e08565b9160c082015260a43591821515809303610b4057610a4982917fd90f94752d2b12f364f4a2237ebe1aff24ba6127585376bf4935f6a7be17dd2a9460e08401528281036101008401523395611f1f565b959697985090506020853d602011610d21575b81610d0a60209383611bb1565b81010312610a8b5793518997969594610c9a610c57565b3d9150610cfd565b6040513d8b823e3d90fd5b87610d4d8a610d456044948a611d75565b919050611da7565b63cd6f4e6d60e01b8252600452610800602452fd5b6360ee124760e01b8852600488fd5b8580fd5b50346102c457806003193601126102c457602060ff60008051602061275b83398151915254166040519015158152f35b50346102c457806003193601126102c4577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610dfe57602060405160008051602061271b8339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126102c457610e22611c4a565b906024356001600160401b0381116107b657610e42903690600401611bed565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611011575b506110025781805260008051602061273b83398151915260209081526040808420336000908152925290205460ff1615610fea576040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa80958596610fb6575b50610ef057634c9c8ce360e01b84526004839052602484fd5b90918460008051602061271b8339815191528103610fa45750813b15610f925760008051602061271b83398151915280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a28151839015610f78578083602061033995519101845af4610f7261201b565b91612699565b50505034610f835780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011610fe2575b81610fd260209383611bb1565b81010312610b4057519438610ed7565b3d9150610fc5565b63e2517d3f60e01b8252336004526024829052604482fd5b63703e46dd60e11b8252600482fd5b60008051602061271b833981519152546001600160a01b03161415905038610e77565b50346102c45760403660031901126102c45761104e611c4a565b611056611c34565b60008051602061279b833981519152549160ff8360401c1615926001600160401b038116801590816111f5575b60011490816111eb575b1590816111e2575b506111d35767ffffffffffffffff19811660011760008051602061279b83398151915255836111a6575b506001600160a01b03169081158015611195575b61029557611124906110e361262b565b6110eb61262b565b6110f361262b565b6110fb61262b565b61110361262b565b600160008051602061277b8339815191525561111e81612107565b506121b9565b5082546001600160a01b03191617825561113b5780f35b68ff00000000000000001960008051602061279b833981519152541660008051602061279b833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b506001600160a01b038116156110d3565b68ffffffffffffffffff1916680100000000000000011760008051602061279b83398151915255386110bf565b63f92ee8a960e01b8552600485fd5b90501538611095565b303b15915061108d565b859150611083565b50346102c457806003193601126102c45761121661204b565b60008051602061275b8339815191525460ff8116156112705760ff191660008051602061275b833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346102c45760403660031901126102c457611299611c34565b336001600160a01b038216036112b55761033990600435612330565b63334bd91960e11b8252600482fd5b50346102c45760403660031901126102c4576103396004356112e4611c34565b906112f161032f82611efe565b612287565b50346102c45760e03660031901126102c4576004356001600160401b0381116107b657611327903690600401611bed565b506064356001600160401b0381116107b657611347903690600401611c8a565b505060403660831901126102c45760c4356001600160401b0381116107b65760a09060031990360301126102c4576004906107aa611f8e565b50346102c457806003193601126102c45760206040516000805160206126fb8339815191528152f35b50346102c45760203660031901126102c45760206113c8600435611efe565b604051908152f35b50346102c457806003193601126102c457546040516001600160a01b039091168152602090f35b50346102c45760803660031901126102c457600435906001600160401b0382116102c457606060031983360301126102c457602435611434611c60565b926064356001600160401b03811161072c57611454903690600401611c8a565b61145f929192611fdf565b6000805160206126fb83398151915233036115d55761147c611f8e565b6001600160a01b03861695861561053b5784156115c6576000805160206126fb833981519152871480156115bd575b6106d65785546114c9908690309033906001600160a01b03166125d9565b156115a55785546001600160a01b0316803b1561043f5786808092602460405180958193632e1a7d4d60e01b83528c60048401525af19182611590575b505061152357604486868963793cd7bf60e11b8352600452602452fd5b858080878194989697985af161153761201b565b50156115795794849560018060a01b0386541690823b1561043f5786946103fa869260405198899788968795632de7eb0b60e11b875260040160048701611e8e565b604485838863793cd7bf60e11b8352600452602452fd5b8161159a91611bb1565b61043f578638611506565b63793cd7bf60e11b8652306004526024859052604486fd5b503087146114ab565b6319c08f4960e01b8652600486fd5b632160203f60e11b8552600485fd5b50346102c45760403660031901126102c4576115fe611c4a565b90602435916001600160401b0383116107b657826004019060c060031985360301126117155761162c611fdf565b6000805160206126fb83398151915233036102b557611649611f8e565b6001600160a01b0316908115611706578293823b15611701576103fa926116ef858094604051968795869485936316a67dbf60e11b85526020600486015260a46116a76116968380611dd7565b60c060248a015260e4890191611e08565b936001600160a01b036116bc60248301611c76565b166044880152604481013560648801526116d860648201611dca565b151560848801526084810135828801520190611dd7565b8483036023190160c486015290611e08565b505050fd5b63d92e233d60e01b8352600483fd5b8280fd5b50346102c45760403660031901126102c457611733611c4a565b90602435916001600160401b0383116107b657608060031984360301126107b65761175c611fdf565b6000805160206126fb833981519152330361180957611779611f8e565b6001600160a01b03169182156117fa578282933b156106b8576117b98392918392604051958680948193636481451b60e11b835260040160048301611e29565b03925af180156117ed576117dd575b600160008051602061277b8339815191525580f35b6117e691611bb1565b38816117c8565b50604051903d90823e3d90fd5b63d92e233d60e01b8252600482fd5b632160203f60e11b8252600482fd5b50346102c45760c03660031901126102c4576004356001600160401b0381116107b657611849903690600401611bed565b611851611c34565b6044356001600160401b03811161072c57611870903690600401611c8a565b90916040366063190112610b405760a435926001600160401b038411610d7157836004019260a0600319863603011261043f576118ab611f8e565b606435938415610d625760648601926108006118d26118ca8685611d75565b905085611da7565b11611b1a57604051956118e487611b80565b86526084358015158103611b165760208701526040519160a083018381106001600160401b03821117611b025760405261191d90611c76565b825261192b60248801611dca565b926020830193845261193f60448901611c76565b9460408401958652356001600160401b038111611afe5761196690600436918b0101611bed565b95606084019687526084608085019901358952895115611aef5787516040805163fc5fecd560e01b815260048101929092526001600160a01b03929092169a91816024818e5afa908115611ae4578c908d92611ab2575b506119c982338361257d565b15611a8257505093611a7493611a3c611a2660a099957f306ee13f48319a123b222c69908e44dcf91abffc20cacc502e3cf5a4ff23e0e49b9995611a1860809a6040519d8e8181520190611cb7565b8c810360208e015291611e08565b885160408b0152602090980151151560608a0152565b87870386890152516001600160a01b03908116875290511515602087015290511660408501525160a060608501819052840190611cb7565b94519101528033930390a380f35b633338088960e11b8d526001600160a01b03166004526000805160206126fb83398151915260245260445260648bfd5b9050611ad6915060403d604011611add575b611ace8183611bb1565b810190611fb8565b90386119bd565b503d611ac4565b6040513d8e823e3d90fd5b63d92e233d60e01b8b5260048bfd5b8a80fd5b634e487b7160e01b8b52604160045260248bfd5b8980fd5b604489610d4d85610d458887611d75565b9050346107b65760203660031901126107b65760043563ffffffff60e01b81168091036117155760209250637965db0b60e01b8114908115611b6f575b5015158152f35b6301ffc9a760e01b14905038611b68565b604081019081106001600160401b03821117611b9b57604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b03821117611b9b57604052565b6001600160401b038111611b9b57601f01601f191660200190565b81601f82011215610a8b57803590611c0482611bd2565b92611c126040519485611bb1565b82845260208383010111610a8b57816000926020809301838601378301015290565b602435906001600160a01b0382168203610a8b57565b600435906001600160a01b0382168203610a8b57565b604435906001600160a01b0382168203610a8b57565b35906001600160a01b0382168203610a8b57565b9181601f84011215610a8b578235916001600160401b038311610a8b5760208381860195010111610a8b57565b919082519283825260005b848110611ce3575050826000602080949584010152601f8019910116010190565b80602080928401015182828601015201611cc2565b60a0600319820112610a8b576004356001600160401b038111610a8b5760608183036003190112610a8b57600401916024356001600160a01b0381168103610a8b5791604435916064356001600160a01b0381168103610a8b5791608435906001600160401b038211610a8b57611d7191600401611c8a565b9091565b903590601e1981360301821215610a8b57018035906001600160401b038211610a8b57602001918136038313610a8b57565b91908201809211611db457565b634e487b7160e01b600052601160045260246000fd5b35908115158203610a8b57565b9035601e1982360301811215610a8b5701602081359101916001600160401b038211610a8b578136038313610a8b57565b908060209392818452848401376000828201840152601f01601f1916010190565b60208152611e8b9160a090611e7b906001600160a01b03611e4982611c76565b166020850152600180841b03611e6160208301611c76565b166040850152604081013560608501526060810190611dd7565b9190926080808201520191611e08565b90565b90939192611e8b9593608083526040611ebb611eaa8880611dd7565b6060608088015260e0870191611e08565b966001600160a01b03611ed060208301611c76565b1660a0860152013560c08401526001600160a01b031660208301526040820152808403606090910152611e08565b60005260008051602061273b83398151915260205260016040600020015490565b906001600160a01b03611f3183611c76565b168152611f4060208301611dca565b151560208201526001600160a01b03611f5b60408401611c76565b166040820152608080611f85611f746060860186611dd7565b60a0606087015260a0860191611e08565b93013591015290565b60ff60008051602061275b8339815191525416611fa757565b63d93c066560e01b60005260046000fd5b9190826040910312610a8b5781516001600160a01b0381168103610a8b5760209092015190565b600260008051602061277b833981519152541461200a57600260008051602061277b83398151915255565b633ee5aeb560e01b60005260046000fd5b3d15612046573d9061202c82611bd2565b9161203a6040519384611bb1565b82523d6000602084013e565b606090565b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561208457565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b600081815260008051602061273b8339815191526020908152604080832033845290915290205460ff16156120ef5750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff166121b3576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50600090565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff166121b3576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b600081815260008051602061273b833981519152602090815260408083206001600160a01b038616845290915290205460ff1661232957600081815260008051602061273b833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b5050600090565b600081815260008051602061273b833981519152602090815260408083206001600160a01b038616845290915290205460ff161561232957600081815260008051602061273b833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6040805163fc5fecd560e01b8152600481019490945290916001600160a01b0381169184602481855afa9384156124df576000906000956124bb575b5061241885338361257d565b15612484575061242a833033846125d9565b1561245a578261243991612659565b1561244357505090565b637112ae7760e01b60005260045260245260446000fd5b506084916040519163489ca9b760e01b835260048301523360248301523060448301526064820152fd5b633338088960e11b60009081526001600160a01b039091166004526000805160206126fb8339815191526024526044859052606490fd5b90506124d791945060403d604011611add57611ace8183611bb1565b93903861240c565b6040513d6000823e3d90fd5b90816020910312610a8b57518015158103610a8b5790565b6040516311f9fbc960e21b81526001600160a01b039283166004820152602481019390935260209183916044918391600091165af16000918161254c575b50611e8b5750600090565b61256f91925060203d602011612576575b6125678183611bb1565b8101906124eb565b9038612541565b503d61255d565b6040516323b872dd60e01b81526001600160a01b0392831660048201526000805160206126fb8339815191526024820152604481019390935260209183916064918391600091165af16000918161254c5750611e8b5750600090565b6040516323b872dd60e01b81526001600160a01b03928316600482015292821660248401526044830193909352909160209183916064918391600091165af16000918161254c5750611e8b5750600090565b60ff60008051602061279b8339815191525460401c161561264857565b631afcd79f60e31b60005260046000fd5b604051630852cd8d60e31b81526004810192909252602090829060249082906000906001600160a01b03165af16000918161254c5750611e8b5750600090565b906126bf57508051156126ae57805190602001fd5b63d6bda27560e01b60005260046000fd5b815115806126f1575b6126d0575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b156126c856fe000000000000000000000000735b14bb79463307aacbed86daf3322b1e6226ab360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220542941658a96d6dd4010b90beba1b2fc5ed2076ef97c9889b30ab9ceda5036f064736f6c634300081a003360c03461010057601f610b3a38819003918201601f19168301916001600160401b0383118484101761010557808492606094604052833981010312610100576100478161011b565b9061006060406100596020840161011b565b920161011b565b9173735b14bb79463307aacbed86daf3322b1e6226ab33036100ef57600380546001600160a01b0319166001600160a01b039290921691909117905560805260a0526040517f80699e81136d69cb8367ad52a994e25c722a86da654b561d0c14b61a777e7ac5600080a1610a0a9081610130823960805181818161018a015261065d015260a051816106d70152f35b632b2add3d60e01b60005260046000fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036101005756fe608080604052600436101561001357600080fd5b600090813560e01c9081630be1554714610817575080631f0e251b146107915780633ce4a5bc14610762578063513a9c051461072f578063569541b914610706578063842da36d146106c157806391dd645f146105f057806397770dff1461054c578063a7cb0507146104da578063c39aca3714610263578063c62178ac1461023a578063c63585cc146101e2578063d7fd7afb146101b9578063d936a012146101745763ee2815ba146100c657600080fd5b34610171576040366003190112610171576004356100e2610864565b9073735b14bb79463307aacbed86daf3322b1e6226ab33036101625780835260016020908152604080852080546001600160a01b0319166001600160a01b0390951694851790558051928352908201929092527fd1b36d30f6248e97c473b4d1348ca164a4ef6759022f54a58ec200326c39c45d91819081015b0390a180f35b632b2add3d60e01b8352600483fd5b80fd5b50346101715780600319360112610171576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461017157602036600319011261017157604060209160043581528083522054604051908152f35b5034610171576060366003190112610171576101fc610849565b610204610864565b604435929091906001600160a01b03841684036101715760206102288585856108d3565b6040516001600160a01b039091168152f35b50346101715780600319360112610171576004546040516001600160a01b039091168152602090f35b50346101715760a0366003190112610171576004359067ffffffffffffffff82116101715781360360606003198201126104d65761029f610864565b92604435906064356001600160a01b038116908190036104d25760843567ffffffffffffffff81116104ce57366023820112156104ce5780600401359367ffffffffffffffff85116104615736602486840101116104615773735b14bb79463307aacbed86daf3322b1e6226ab33036104bf5773735b14bb79463307aacbed86daf3322b1e6226ab831480156104b6575b6104a7576040516311f9fbc960e21b815260048101849052602481018290529697959688966001600160a01b0316906020816044818b865af1801561049c57610465575b50833b156104615760405197636f218ab760e11b8952608060048a01528560040135906022190181121561045d57850160246004820135910167ffffffffffffffff8211610459578136038113610459576103da91606060848c015260e48b01916108b2565b60248601356001600160a01b038116919082900361045957889760248b98968a968a989660448a9861042d9860a48b0152013560c4890152838801526044870152600319868503016064870152016108b2565b03925af1801561044c5761043e5780f35b6104479161087a565b388180f35b50604051903d90823e3d90fd5b8880fd5b8780fd5b8680fd5b6020813d602011610494575b8161047e6020938361087a565b8101031261045d57518015158114610374578780fd5b3d9150610471565b6040513d8a823e3d90fd5b63416aebb560e11b8752600487fd5b50308314610330565b632b2add3d60e01b8752600487fd5b8580fd5b8480fd5b5080fd5b50346101715760403660031901126101715760043560243573735b14bb79463307aacbed86daf3322b1e6226ab330361016257816040917f49f492222906ac486c3c1401fa545626df1f0c0e5a77a05597ea2ed66af9850d93855284602052808386205582519182526020820152a180f35b503461017157602036600319011261017157610566610849565b73735b14bb79463307aacbed86daf3322b1e6226ab33036105e1576001600160a01b031680156105d2576020817fdba79d534382d1a8ae108e4c8ecb27c6ae42ab8b91d44eedf88bd329f3868d5e926001600160601b0360a01b6003541617600355604051908152a180f35b63d92e233d60e01b8252600482fd5b632b2add3d60e01b8252600482fd5b50346101715760403660031901126101715760043561060d610864565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610162576003547f0ecec485166da6139b13bb7e033e9446e2d35348e80ebf1180d4afe2dba1704e9291610681916001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006108d3565b81845260026020908152604080862080546001600160a01b0319166001600160a01b0390941693841790558051938452908301919091528190810161015c565b50346101715780600319360112610171576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101715780600319360112610171576003546040516001600160a01b039091168152602090f35b503461017157602036600319011261017157602090600435815260028252604060018060a01b0391205416604051908152f35b5034610171578060031936011261017157602060405173735b14bb79463307aacbed86daf3322b1e6226ab8152f35b5034610171576020366003190112610171576107ab610849565b73735b14bb79463307aacbed86daf3322b1e6226ab33036105e1576001600160a01b031680156105d2576020817f3ade88e3922d64780e1bf4460d364c2970b69da813f9c0c07a1c187b5647636c926001600160601b0360a01b6004541617600455604051908152a180f35b9050346104d65760203660031901126104d6576004358252600160209081526040909220546001600160a01b03168152f35b600435906001600160a01b038216820361085f57565b600080fd5b602435906001600160a01b038216820361085f57565b90601f8019910116810190811067ffffffffffffffff82111761089c57604052565b634e487b7160e01b600052604160045260246000fd5b908060209392818452848401376000828201840152601f01601f1916010190565b91906001600160a01b038083169082168082146109c35710156109be57905b6001600160a01b038216156109ad576040519060208201926001600160601b03199060601b1683526001600160601b03199060601b1660348201526028815261093c60488261087a565b5190209060405191602083019160ff60f81b83526001600160601b03199060601b16602184015260358301527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f60558301526055825261099d60758361087a565b905190206001600160a01b031690565b633c5a83ed60e11b60005260046000fd5b6108f2565b63658f3e7f60e11b60005260046000fdfea26469706673582212203d5f24fd62859186e7d8a9f41a0e370a08bd7cbc34344f0eb46593f3ba299ff564736f6c634300081a003360806040523461011457610014600054610119565b601f81116100cb575b507f577261707065642045746865720000000000000000000000000000000000001a60005560015461004e90610119565b601f8111610081575b6008630ae8aa8960e31b016001556002805460ff1916601217905560405161073190816101548239f35b6001600052601f0160051c7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6908101905b8181106100bf5750610057565b600081556001016100b2565b60008052601f0160051c7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563908101905b818110610108575061001d565b600081556001016100fb565b600080fd5b90600182811c92168015610149575b602083101461013357565b634e487b7160e01b600052602260045260246000fd5b91607f169161012856fe60806040526004361015610023575b361561001957600080fd5b6100216106b2565b005b60003560e01c806306fdde0314610423578063095ea7b3146103a957806318160ddd1461038d57806323b872dd1461035e5780632e1a7d4d146102b9578063313ce5671461029857806370a082311461025e57806395d89b411461013d578063a9059cbb1461010b578063d0e30db0146100f75763dd62ed3e0361000e57346100f25760403660031901126100f2576100ba610526565b6100c261053c565b6001600160a01b039182166000908152600460209081526040808320949093168252928352819020549051908152f35b600080fd5b60003660031901126100f2576100216106b2565b346100f25760403660031901126100f2576020610133610129610526565b60243590336105a8565b6040519015158152f35b346100f25760003660031901126100f2576000604051816001548060011c90600181168015610254575b6020831081146102405782855290811561022457506001146101d0575b50819003601f01601f1916810167ffffffffffffffff8111828210176101bc576101b89250604052604051918291826104dd565b0390f35b634e487b7160e01b83526041600452602483fd5b600184529050827fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b82821061020e57506020915082010183610184565b60018160209254838588010152019101906101f9565b90506020925060ff191682840152151560051b82010183610184565b634e487b7160e01b86526022600452602486fd5b91607f1691610167565b346100f25760203660031901126100f2576001600160a01b0361027f610526565b1660005260036020526020604060002054604051908152f35b346100f25760003660031901126100f257602060ff60025416604051908152f35b346100f25760203660031901126100f2576004353360005260036020526102e7816040600020541015610552565b3360005260036020526040600020610300828254610578565b90558060008115610355575b600080809381933390f115610349576040519081527f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b6560203392a2005b6040513d6000823e3d90fd5b506108fc61030c565b346100f25760603660031901126100f257602061013361037c610526565b61038461053c565b604435916105a8565b346100f25760003660031901126100f257602047604051908152f35b346100f25760403660031901126100f2576103c2610526565b3360008181526004602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b346100f25760003660031901126100f25760006040518182548060011c906001811680156104d3575b60208310811461024057828552908115610224575060011461049c5750819003601f01601f1916810167ffffffffffffffff8111828210176101bc576101b89250604052604051918291826104dd565b90508280526020832083905b8282106104bd57506020915082010183610184565b60018160209254838588010152019101906104a8565b91607f169161044c565b91909160208152825180602083015260005b818110610510575060409293506000838284010152601f8019910116010190565b80602080928701015160408286010152016104ef565b600435906001600160a01b03821682036100f257565b602435906001600160a01b03821682036100f257565b1561055957565b60405162461bcd60e51b81526020600482015260006024820152604490fd5b9190820391821161058557565b634e487b7160e01b600052601160045260246000fd5b9190820180921161058557565b60207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9160018060a01b03169283600052600382526105ee856040600020541015610552565b3384141580610691575b610646575b83600052600382526040600020610615868254610578565b905560018060a01b0316938460005260038252604060002061063882825461059b565b9055604051908152a3600190565b6000848152600483526040808220338352845290205461066890861115610552565b600084815260048352604080822033835284529020805461068a908790610578565b90556105fd565b506000848152600483526040808220338352845290205460001914156105f8565b33600052600360205260406000206106cb34825461059b565b90556040513481527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a256fea26469706673582212209e220afc3d58f06e9fcfb74d0eadc71ef1ec14a29eb328f69f1935849690effe64736f6c634300081a003360808060405234602f57600160ff19600c541617600c55600160ff19601f541617601f556192a490816100358239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c8062173d46146102465780631ed7831c146102415780632558fcec1461023c5780632ade38801461023757806332030cef14610232578063347f3a7c1461022d5780633e5e3c23146102285780633f7286f41461022357806366d9a9a01461021e578063735de9f7146102195780638016f22b146102145780638327f7901461020f57806385226c811461020a5780638c52853c14610205578063916a17c614610200578063944a3ba4146101fb578063acfdc212146101f6578063ad82a627146101f1578063b0464fdc146101ec578063b184b87c146101e7578063b1c388b8146101e2578063b5508aa9146101dd578063b8969900146101d8578063ba414fa6146101d3578063bea9849e146101ce578063cc5ad8b6146101c9578063ced6e793146101c4578063d333abf6146101bf578063d7b3eeaf146101ba578063e20c9f71146101b5578063ebcff1c6146101b0578063f51a071d146101ab578063f59e8a67146101a6578063f9a41697146101a15763fa7626d41461019c57600080fd5b6116ef565b6116b5565b61165c565b6115ec565b6112b0565b611230565b611217565b6111e3565b61117e565b611151565b611112565b6110ed565b6110ae565b611021565b611004565b610f68565b610ebc565b610e35565b610d99565b610d06565b610c5a565b610b95565b610b08565b610a33565b6108a8565b61087f565b6107d3565b610695565b610615565b6105c2565b610586565b6104a9565b610365565b6102d5565b61025b565b600091031261025657565b600080fd5b34610256576000366003190112610256576026546040516001600160a01b039091168152602090f35b906020808351928381520192019060005b8181106102a25750505090565b82516001600160a01b0316845260209384019390920191600101610295565b9060206102d2928181520190610284565b90565b346102565760003660031901126102565760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b818110610346576103428561033681870382610966565b604051918291826102c1565b0390f35b82546001600160a01b031684526020909301926001928301920161031f565b34610256576020366003190112610256576004356000526022602052602060018060a01b0360406000205416604051908152f35b60005b8381106103ac5750506000910152565b818101518382015260200161039c565b906020916103d581518092818552858086019101610399565b601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061041457505050505090565b9091929394603f198282030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b85010194019260005b82811061047e57505050505060208060019297019301930191939290610405565b909192939460208061049c600193605f1987820301895289516103bc565b970195019392910161045d565b3461025657600036600319011261025657601e546104c681611712565b906104d46040519283610966565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061051a576040518061034287826103e1565b6002602060019260405161052d8161090f565b848060a01b0386541681526105438587016117f3565b83820152815201920192019190610505565b6001600160a01b0381160361025657565b6064359061057382610555565b565b9060206102d29281815201906103bc565b34610256576020366003190112610256576103426105ae6004356105a981610555565b61184b565b6040519182916020835260208301906103bc565b34610256576040366003190112610256576106136024356004356105e582610555565b600052602260205260406000209060018060a01b03166bffffffffffffffffffffffff60a01b825416179055565b005b346102565760003660031901126102565760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b818110610676576103428561033681870382610966565b82546001600160a01b031684526020909301926001928301920161065f565b346102565760003660031901126102565760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b8181106106f6576103428561033681870382610966565b82546001600160a01b03168452602090930192600192830192016106df565b906020808351928381520192019060005b8181106107335750505090565b82516001600160e01b031916845260209384019390920191600101610726565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061078657505050505090565b90919293946020806107c4600193603f19868203018752895190836107b483516040845260408401906103bc565b9201519084818403910152610715565b97019301930191939290610777565b3461025657600036600319011261025657601b546107f081611712565b906107fe6040519283610966565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b83831061084457604051806103428782610753565b600260206001926040516108578161090f565b61086086611729565b815261086d858701611883565b8382015281520192019201919061082f565b34610256576000366003190112610256576025546040516001600160a01b039091168152602090f35b34610256576040366003190112610256576106136024356004356108cb82610555565b600090815260216020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761092a57604052565b6108f9565b61010081019081106001600160401b0382111761092a57604052565b606081019081106001600160401b0382111761092a57604052565b90601f801991011681019081106001600160401b0382111761092a57604052565b60405190610573602083610966565b60405190610573606083610966565b60405190610573608083610966565b6040519061057360c083610966565b6001600160401b03811161092a57601f01601f191660200190565b81601f82011215610256578035906109f5826109c3565b92610a036040519485610966565b8284526020838301011161025657816000926020809301838601378301015290565b908160a09103126102565790565b346102565760a036600319011261025657600435610a5081610555565b6024356001600160401b03811161025657610a6f9036906004016109de565b90606435604435610a7f82610555565b608435936001600160401b03851161025657610aa2610613953690600401610a25565b93611f79565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610adb57505050505090565b9091929394602080610af9600193603f1986820301875289516103bc565b97019301930191939290610acc565b3461025657600036600319011261025657601a54610b2581611712565b90610b336040519283610966565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310610b7857604051806103428782610aa8565b600160208192610b8785611729565b815201920192019190610b63565b34610256576040366003190112610256576020602435600435610bb782610555565b60009081526023835260408082206001600160a01b03938416835260205290205b5416604051908152f35b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610c1557505050505090565b9091929394602080610c4b600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610715565b97019301930191939290610c06565b3461025657600036600319011261025657601d54610c7781611712565b90610c856040519283610966565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b838310610ccb57604051806103428782610be2565b60026020600192604051610cde8161090f565b848060a01b038654168152610cf4858701611883565b83820152815201920192019190610cb6565b3461025657602036600319011261025657600435610d2381610555565b601f8054610100600160a81b03191660089290921b610100600160a81b0316919091179055005b9181601f84011215610256578235916001600160401b038311610256576020838186019501011161025657565b60409060a31901126102565760a490565b604090608319011261025657608490565b346102565761010036600319011261025657600435610db781610555565b6024356001600160401b03811161025657610dd69036906004016109de565b90604435610de2610566565b6084356001600160401b03811161025657610e01903690600401610d4a565b91610e0b36610d77565b9360e435966001600160401b03881161025657610e2f610613983690600401610a25565b96612b04565b346102565760e036600319011261025657602435600435610e5582610555565b604435610e6181610555565b60643590608435610e7181610555565b60a4356001600160401b03811161025657610e90903690600401610d4a565b93909260c435966001600160401b03881161025657610eb6610613983690600401610a25565b96613476565b3461025657600036600319011261025657601c54610ed981611712565b90610ee76040519283610966565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b838310610f2d57604051806103428782610be2565b60026020600192604051610f408161090f565b848060a01b038654168152610f56858701611883565b83820152815201920192019190610f18565b346102565760e036600319011261025657600435610f8581610555565b6024356001600160401b03811161025657610fa49036906004016109de565b90604435610fb181610555565b6064356001600160401b03811161025657610fd0903690600401610d4a565b90610fda36610d88565b9260c435956001600160401b03871161025657610ffe610613973690600401610a25565b956138d4565b346102565760003660031901126102565760208054604051908152f35b346102565760003660031901126102565760195461103e81611712565b9061104c6040519283610966565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b83831061109157604051806103428782610aa8565b6001602081926110a085611729565b81520192019201919061107c565b34610256576020366003190112610256576004356110cb81610555565b602680546001600160a01b0319166001600160a01b0392909216919091179055005b34610256576000366003190112610256576020611108613d3b565b6040519015158152f35b346102565760203660031901126102565760043561112f81610555565b602580546001600160a01b0319166001600160a01b0392909216919091179055005b3461025657600036600319011261025657601f5460405160089190911c6001600160a01b03168152602090f35b346102565760c03660031901126102565760243560043561119e82610555565b6044356111aa81610555565b606435608435916111ba83610555565b60a435946001600160401b038611610256576111dd610613963690600401610a25565b94613e3f565b34610256576020366003190112610256576004356000526021602052602060018060a01b0360406000205416604051908152f35b3461025657602036600319011261025657600435602055005b346102565760003660031901126102565760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b818110611291576103428561033681870382610966565b82546001600160a01b031684526020909301926001928301920161127a565b346102565760a0366003190112610256576004356024356112d081610555565b604435916112dd83610555565b6064356001600160401b038111610256576112fc903690600401610d4a565b6084356001600160401b0381116102565761131b903690600401610a25565b601f549095906004906020906113449060081c6001600160a01b03165b6001600160a01b031690565b6040516313917f7760e11b815292839182905afa90811561151d576000916115bd575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d576115a8575b50601f546113d79060081c6001600160a01b0316611338565b604051606087901b6001600160601b03191660208201529261140684603481015b03601f198101865285610966565b61140e610996565b9384526001600160a01b038716602085015285604085015261144a61143d876000526022602052604060002090565b546001600160a01b031690565b90823b156102565760009461147786926040519889978896879563bcf7f32b60e01b875260048701614072565b03926216e360f1908161158d575b5061152257611492611d28565b60205460405163348051d760e11b8152600481019190915290919060008160248160008051602061924f8339815191525afa801561151d57610613956114ef6114ea866040946114f5966000916114fa575b5061413d565b6141c7565b016141bd565b616213565b61151791503d806000833e61150f8183610966565b810190611b3b565b386114e4565b611afa565b505060205460405163348051d760e11b81526004810191909152905060008160248160008051602061924f8339815191525afa90811561151d57610613916114ea91600091611572575b506140b9565b61158791503d806000833e61150f8183610966565b3861156c565b8061159c60006115a293610966565b8061024b565b38611485565b8061159c60006115b793610966565b386113be565b6115df915060203d6020116115e5575b6115d78183610966565b810190611c26565b38611367565b503d6115cd565b3461025657604036600319011261025657602060243560043561160e82610555565b60009081526024835260408082206001600160a01b0393841683526020529020610bd8565b6060906003190112610256576004359060243561164f81610555565b906044356102d281610555565b346102565761061361169661167036611633565b9291600052602360205260406000209060018060a01b0316600052602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b34610256576106136116966116c936611633565b9291600052602460205260406000209060018060a01b0316600052602052604060002090565b3461025657600036600319011261025657602060ff601f54166040519015158152f35b6001600160401b03811161092a5760051b60200190565b9060405191600081548060011c92600182169182156117e9575b6020851083146117d55784875286939260208501929181156117b85750600114611776575b505061057392500383610966565b611787919250600052602060002090565b906000915b8483106117a157506105739350013880611768565b80548284015286935060209092019160010161178c565b9150506105739491925060ff19168252151560051b013880611768565b634e487b7160e01b84526022600452602484fd5b93607f1693611743565b9081546117ff81611712565b9261180d6040519485610966565b818452602084019060005260206000206000915b83831061182e5750505050565b60016020819261183d85611729565b815201920192019190611821565b90813b6000611859826109c3565b6118666040519182610966565b828152611872836109c3565b602082019190601f1901368337943c565b604051815480825290929183906118a36020830191600052602060002090565b926000905b8060078301106119eb576105739454918181106119cc575b8181106119ad575b81811061198e575b81811061196f575b818110611950575b818110611931575b818110611913575b106118fe575b500383610966565b6001600160e01b0319168152602001386118f6565b602083811b6001600160e01b031916855290936001910193016118f0565b604083901b6001600160e01b03191684529260019060200193016118e8565b606083901b6001600160e01b03191684529260019060200193016118e0565b608083901b6001600160e01b03191684529260019060200193016118d8565b60a083901b6001600160e01b03191684529260019060200193016118d0565b60c083901b6001600160e01b03191684529260019060200193016118c8565b6001600160e01b031960e084901b1684529260019060200193016118c0565b916008919350610100600191611a9a8754611a11838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b0194019201859293916118a8565b60405190611ab58261092f565b606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b90816020910312610256575190565b6040513d6000823e3d90fd5b90929192611b13816109c3565b91611b216040519384610966565b829482845282820111610256576020610573930190610399565b602081830312610256578051906001600160401b03821161025657019080601f830112156102565781516102d292602001611b06565b90610573601b602960405180956802db1b430b4b724b2160bd1b6020830152611ba38151809260208686019101610399565b81017f5d205b4552524f525d2047617465776179206e6f7420666f756e640000000000838201520301600419810185520183610966565b9060208251920151916bffffffffffffffffffffffff1983169260148210611c00575050565b6001600160601b031960149290920360031b82901b16169150565b519061057382610555565b9081602091031261025657516102d281610555565b90610573601b602960405180956802db1b430b4b724b2160bd1b6020830152611c6d8151809260208686019101610399565b81017f5d205b4552524f525d20437573746f6479206e6f7420666f756e640000000000838201520301600419810185520183610966565b906105736033602960405180956802db1b430b4b724b2160bd1b6020830152611cd68151809260208686019101610399565b81017f5d205b494e464f5d2045524332302f5a45544120776974686472617720636f6d8382015272706c65746564207375636365737366756c6c7960681b604982015203016013810185520183610966565b3d15611d53573d90611d39826109c3565b91611d476040519384610966565b82523d6000602084013e565b606090565b60266105739193929360296040519586926802db1b430b4b724b2160bd1b6020850152611d8e8151809260208688019101610399565b83017f5d205b4552524f525d2045524332302f5a4554412077697468647261772066618382015265034b632b21d160d51b6049820152611dd8825180936020604f85019101610399565b01010301601f198101845283610966565b8015150361025657565b91909160a081840312610256576040519060a082018281106001600160401b0382111761092a5760405281938135611e2a81610555565b83526020820135611e3a81611de9565b60208401526040820135611e4d81610555565b60408401526060820135916001600160401b03831161025657611e7660809392849383016109de565b60608501520135910152565b906105736023602960405180956802db1b430b4b724b2160bd1b6020830152611eb48151809260208686019101610399565b81017f5d205b4552524f525d2047617320746f6b656e207472616e736665722066616983820152621b195960ea1b604982015203016003810185520183610966565b906105736032602960405180956802db1b430b4b724b2160bd1b6020830152611f288151809260208686019101610399565b81017f5d205b494e464f5d2047617320746f6b656e207472616e7366657220636f6d7083820152716c65746564207375636365737366756c6c7960701b604982015203016012810185520183610966565b9293919093611f86611aa8565b60405163085e1f4d60e41b81529095906001600160a01b03831690602081600481855afa90811561151d57611fd59161143d91600091612657575b50808a526000526021602052604060002090565b6001600160a01b0390811660208901818152929190611ff390611338565b16156125df5761203761203161204f9261201e61133861143d8d516000526022602052604060002090565b1460408b0190815294611bda565b611bda565b60601c90565b6001600160a01b031660608901908152925b51151590565b1561223f57516004919060209061206e906001600160a01b0316611338565b604051635b11259160e01b815293849182905afa91821561151d5760009261221e575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af191821561151d57600080866121068295839561211f9861220a575b50516001600160a01b031690565b5af1612110611d28565b50151560c08701908152612049565b15612190575050915160405163348051d760e11b815260048101919091529150600090508160248160008051602061924f8339815191525afa90811561151d57610573916114ea91600091612175575b50611ef6565b61218a91503d806000833e61150f8183610966565b3861216f565b845160405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa95861561151d576121e16114ea610573986121ea946000916121ef575b50611e82565b51933690611df3565b614ddf565b61220491503d806000833e61150f8183610966565b386121db565b8061159c8661221893610966565b386120f8565b61223891925060203d6020116115e5576115d78183610966565b9038612091565b80516004919060209061225a906001600160a01b0316611338565b60405163dda79b7560e01b815293849182905afa91821561151d576000926125be575b506001600160a01b03919091166080880181815291906122ad906122a090611338565b1560a08a01908152612049565b6125465751600491906020906122cb906001600160a01b0316611338565b604051635b11259160e01b815293849182905afa91821561151d57600092612525575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af191821561151d576113386123629261133892612370956125165750516001600160a01b031690565b91516001600160a01b031690565b6123a361143d8461238c8a516000526024602052604060002090565b9060018060a01b0316600052602052604060002090565b90823b1561025657604051636ce5768960e11b81526001600160a01b0391821660048201529116602482015260448101849052906000908290606490829084905af19081612501575b5061247f5761242e946123fd611d28565b90600060c08201528160e0820152600081516040518099819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d576114ea6121ea936121e1926105739a600091612464575b50611d58565b61247991503d806000833e61150f8183610966565b3861245e565b5050505060008161249660c06124b6940160019052565b516040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea916000916124e6575b50611ca4565b6124fb91503d806000833e61150f8183610966565b386124e0565b8061159c600061251093610966565b386123ec565b8061159c600061221893610966565b61253f91925060203d6020116115e5576115d78183610966565b90386122ee565b50505050505050600061257391516040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea916000916125a3575b50611c3b565b6125b891503d806000833e61150f8183610966565b3861259d565b6125d891925060203d6020116115e5576115d78183610966565b903861227d565b50505050505050600061260c91516040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea9160009161263c575b50611b71565b61265191503d806000833e61150f8183610966565b38612636565b612679915060203d60201161267f575b6126718183610966565b810190611aeb565b38611fc1565b503d612667565b6040519061014082018281106001600160401b0382111761092a5760405260606101208360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201528260e082015260006101008201520152565b356102d281611de9565b908060209392818452848401376000828201840152601f01601f1916010190565b90516001600160a01b039081168252918216602082015291166040820152606081019190915260a0608082018190526102d2939101916126f3565b90610573603c602960405180956802db1b430b4b724b2160bd1b60208301526127818151809260208686019101610399565b81017f5d205b494e464f5d2045524332302f5a45544120776974686472617720616e64838201527f2063616c6c20636f6d706c65746564207375636365737366756c6c790000000060498201520301601c810185520183610966565b602f6105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526128138151809260208688019101610399565b83017f5d205b4552524f525d2045524332302f5a45544120776974686472617720616e838201526e0321031b0b636103330b4b632b21d1608d1b6049820152611dd8825180936020605885019101610399565b906004116102565790600490565b356001600160e01b031981169291906004821061288f575050565b6001600160e01b031960049290920360031b82901b16169150565b90610573605a60405180947f526563656976657220636f6e747261637420646f6573206e6f7420636f6e746160208301527f696e2066756e6374696f6e20776974682073656c6563746f722000000000000060408301526129148151809260208686019101610399565b81010301601f198101845283610966565b600a6105739193929360296040519586926802db1b430b4b724b2160bd1b602085015261295b8151809260208688019101610399565b83016902e902da2a92927a92e960b51b83820152611dd8825180936020603385019101610399565b9080601f830112156102565781516102d292602001611b06565b906020828203126102565781516001600160401b038111610256576102d29201612983565b90516001600160a01b03908116825290911660208201526060604082018190526102d2939101916126f3565b90610573603b602960405180956802db1b430b4b724b2160bd1b6020830152612a208151809260208686019101610399565b81017f5d205b494e464f5d2047617320746f6b656e207472616e7366657220616e6420838201527f63616c6c20636f6d706c65746564207375636365737366756c6c79000000000060498201520301601b810185520183610966565b602e6105739193929360296040519586926802db1b430b4b724b2160bd1b6020850152612ab28151809260208688019101610399565b83017f5d205b4552524f525d2047617320746f6b656e207472616e7366657220616e64838201526d01031b0b636103330b4b632b21d160951b6049820152611dd8825180936020605785019101610399565b95969491939096612b13612686565b60405163085e1f4d60e41b815290986001600160a01b03861691602081600481865afa90811561151d57612b619161143d916000916132d0575b50808d526000526021602052604060002090565b6001600160a01b0390811660208c01818152939190612b7f90611338565b16156132a057612bba6120318c949361202c6040612bd095612bb261133861143d8b516000526022602052604060002090565b149701968752565b6001600160a01b031660608c0190815292612049565b15612f8957612be1602084016126e9565b612e34575b805160049493929190602090612c04906001600160a01b0316611338565b604051635b11259160e01b815296879182905afa94851561151d57600095612e13575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039590951660048601526000856024818360008051602061924f8339815191525af194851561151d576113388992612c9892600098612e055750516001600160a01b031690565b923592612cc1612ca6610987565b6001600160a01b038d168152935b516001600160a01b031690565b92612ce2604051988997889687946338e2252760e01b8652600486016129c2565b0393f19081612de4575b50612d8157612d3094612cfd611d28565b90600061010082015281610120820152600081516040518099819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d576114ea6121ea936121e1926105739a600091612d66575b50612a7c565b612d7b91503d806000833e61150f8183610966565b38612d60565b50505050600081612496610100612d99940160019052565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091612dc9575b506129ee565b612dde91503d806000833e61150f8183610966565b38612dc3565b612e00903d806000833e612df88183610966565b81019061299d565b612cec565b8061159c8a61221893610966565b612e2d91955060203d6020116115e5576115d78183610966565b9338612c27565b612e47612e418686612866565b90612874565b8251612e6e90612e6a908390612e65906001600160a01b031661184b565b61544d565b1590565b612e785750612be6565b9250505087925060009150612e9360c0612ebd990160019052565b604051631623433d60e31b81526001600160e01b0319909116600482015296879081906024820190565b038160008051602061924f8339815191525afa95861561151d57612f1896612eed91600091612f6e575b506128aa565b9060e08101918252600081516040518099819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d576114ea6121ea936121e1926105739a600092612f51575b505190612925565b612f679192503d806000833e61150f8183610966565b9038612f49565b612f8391503d806000833e61150f8183610966565b38612ee7565b80519194929160049190602090612fa8906001600160a01b0316611338565b60405163dda79b7560e01b815293849182905afa91821561151d5760009261327f575b506001600160a01b039190911660808b018181529190612fff908c906120499060a090612ff790611338565b159201918252565b61324f57516004919060209061301d906001600160a01b0316611338565b604051635b11259160e01b815293849182905afa91821561151d5760009261322e575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af191821561151d576113386130b292611338928e956125165750516001600160a01b031690565b92868a6130c36020863596016126e9565b1561321a575061143d6131069161238c6130f460009a5b612cb46130e5610987565b6001600160a01b03909d168d52565b95516000526024602052604060002090565b93803b156102565788966131366000979388946040519a8b998a9889966356840c2960e11b885260048801612714565b0393f19081613205575b506131a25761315194612cfd611d28565b038160008051602061924f8339815191525afa801561151d576114ea6121ea936121e1926105739a600091613187575b506127dd565b61319c91503d806000833e61150f8183610966565b38613181565b505050506000816124966101006131ba940160019052565b038160008051602061924f8339815191525afa90811561151d57610573916114ea916000916131ea575b5061274f565b6131ff91503d806000833e61150f8183610966565b386131e4565b8061159c600061321493610966565b38613140565b6131069161238c6130f461143d939a6130da565b61324891925060203d6020116115e5576115d78183610966565b9038613040565b50505050505050505050600061257391516040518093819263348051d760e11b8352600483019190602083019252565b61329991925060203d6020116115e5576115d78183610966565b9038612fcb565b50505050505050505050600061260c91516040518093819263348051d760e11b8352600483019190602083019252565b6132e9915060203d60201161267f576126718183610966565b38612b4d565b60256105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526133258151809260208688019101610399565b83017f5d205b4552524f525d205a52433230206e6f7420666f756e6420666f722061738382015264039b2ba1d160dd1b6049820152611dd8825180936020604e85019101610399565b9060408061338584516060855260608501906103bc565b6020808601516001600160a01b03169085015293015191015290565b9194926133bb6102d297959260a0855260a085019061336e565b6001600160a01b0396871660208501526040840191909152941660608201528084036080909101526126f3565b90610573603a602960405180956802db1b430b4b724b2160bd1b602083015261341a8151809260208686019101610399565b81017f5d205b494e464f5d205a657461436861696e206465706f73697420616e642063838201527f616c6c20636f6d706c65746564207375636365737366756c6c7900000000000060498201520301601a810185520183610966565b95969491909661349761143d8661238c8a6000526023602052604060002090565b926001600160a01b038416156136b457601f546004906020906134c59060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091613695575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57613680575b50601f546135589060081c6001600160a01b0316611338565b6040516001600160601b031960608c901b166020820152601481529161357f603484610966565b613587610996565b9283526001600160a01b038b166020840152896040840152813b1561025657600087936135ce82968994604051998a988997889663c39aca3760e01b8852600488016133a1565b03926216e360f1908161366b575b506135f357610573956135ed611d28565b95615710565b50505050505061362060006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091613650575b506133e8565b61366591503d806000833e61150f8183610966565b3861364a565b8061159c600061367a93610966565b386135dc565b8061159c600061368f93610966565b3861353f565b6136ae915060203d6020116115e5576115d78183610966565b386134e8565b50505050509150506136e5915060006020546040518094819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d5760009261377a575b50604051632b65311f60e11b81526001600160a01b03909116600482015260008180602481015b038160008051602061924f8339815191525afa801561151d57610573926114ea9260009261375d575b506132ef565b6137739192503d806000833e61150f8183610966565b9038613757565b61372e9192506137956000913d8084833e61150f8183610966565b929150613707565b6040519060e082018281106001600160401b0382111761092a57604052606060c083600081526000602082015260006040820152600083820152826080820152600060a08201520152565b90610573602d602960405180956802db1b430b4b724b2160bd1b602083015261381a8151809260208686019101610399565b81017f5d205b494e464f5d2045564d20657865637574696f6e20636f6d706c65746564838201526c207375636365737366756c6c7960981b60498201520301600d810185520183610966565b60206105739193929360296040519586926802db1b430b4b724b2160bd1b8585015261389a81518092878688019101610399565b83017f5d205b4552524f525d2045564d20657865637574696f6e206661696c65643a2083820152611dd88251809387604985019101610399565b939194959290600460206138e661379d565b60405163085e1f4d60e41b815290989092839182906001600160a01b03165afa90811561151d576139319161143d91600091613d1c575b508089526000526021602052604060002090565b6001600160a01b039081166020880181815292919061394f90611338565b1615613ced5761203161396191611bda565b6001600160a01b031660408701908152602088019161397f836126e9565b613be3575b6004949596979860206139a0611338845160018060a01b031690565b604051635b11259160e01b815297889182905afa95861561151d57600096613bc2575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039690961660048701526000866024818360008051602061924f8339815191525af191821561151d57613a37611338613a3f926000998a96613bb45750516001600160a01b031690565b9135946126e9565b8214613baa57613a6582935b612cb4613a56610987565b6001600160a01b039096168652565b92613a86604051988997889687946338e2252760e01b8652600486016129c2565b0393f19081613b91575b50613b3157613ad292613aa1611d28565b90600060a08201528160c0820152600081516040518097819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d576114ea613b1193613b089261057398600091613b16575b50613866565b51913690611df3565b6146df565b613b2b91503d806000833e61150f8183610966565b38613b02565b505060008161249660a0613b46940160019052565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091613b76575b506137e8565b613b8b91503d806000833e61150f8183610966565b38613b70565b613ba5903d806000833e612df88183610966565b613a90565b613a658993613a4b565b8061159c8861221893610966565b613bdc91965060203d6020116115e5576115d78183610966565b94386139c3565b613bf0612e418686612866565b98613c0b612e6a8b612e656105a9875160018060a01b031690565b613c16579850613984565b50505050505090916000613c5b94613c316060840160019052565b604051631623433d60e31b81526001600160e01b0319909116600482015294859081906024820190565b038160008051602061924f8339815191525afa93841561151d57613cb594613c8a91600091612f6e57506128aa565b9060808101918252600081516040518097819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d576114ea613b1193613b089261057398600092612f5157505190612925565b5050935160405163348051d760e11b81526004810191909152945060009350849250829150506024810161260c565b613d35915060203d60201161267f576126718183610966565b3861391d565b60085460ff168015613d4a5790565b50604051630667f9d760e41b815260008051602061924f833981519152600482018190526519985a5b195960d21b6024830152602090829060449082905afa90811561151d57600091613d9e575b50151590565b613db7915060203d60201161267f576126718183610966565b38613d98565b906105736031602960405180956802db1b430b4b724b2160bd1b6020830152613def8151809260208686019101610399565b81017f5d205b494e464f5d205a657461436861696e206465706f73697420636f6d706c838201527065746564207375636365737366756c6c7960781b604982015203016011810185520183610966565b939194929094613e6061143d8461238c886000526023602052604060002090565b906001600160a01b0382161561404257601f54600490602090613e8e9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091614023575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d5761400e575b50601f54613f219060081c6001600160a01b0316611338565b803b1561025657604051633d14d1b760e21b81526001600160a01b038481166004830152602482018690529290921660448301526000908290606490829084905af19081613ff9575b50613f815761057395613f7b611d28565b95615db5565b505050505050613fae60006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091613fde575b50613dbd565b613ff391503d806000833e61150f8183610966565b38613fd8565b8061159c600061400893610966565b38613f6a565b8061159c600061401d93610966565b38613f08565b61403c915060203d6020116115e5576115d78183610966565b38613eb1565b505060205460405163348051d760e11b8152600481019190915294509092506000915083905080602481016136e5565b909261408d6102d2969495939560a0845260a084019061336e565b6001600160a01b03958616602084015260006040840152941660608201528084036080909101526126f3565b906105736033602960405180956802db1b430b4b724b2160bd1b60208301526140eb8151809260208686019101610399565b81017f5d205b494e464f5d205a657461436861696e20657865637574696f6e20636f6d8382015272706c65746564207375636365737366756c6c7960681b604982015203016013810185520183610966565b60266105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526141738151809260208688019101610399565b83017f5d205b4552524f525d205a657461436861696e20657865637574696f6e2066618382015265034b632b21d160d51b6049820152611dd8825180936020604f85019101610399565b356102d281610555565b6141f46142026105739260405192839163104c13eb60e21b602084015260206024840181815201906103bc565b03601f198101835282610966565b617fe7565b90610573601e602960405180956802db1b430b4b724b2160bd1b60208301526142398151809260208686019101610399565b81017f5d205b494e464f5d2063616c6c4f6e5265766572742069732066616c73650000838201520301600119810185520183610966565b90610573601f602960405180956802db1b430b4b724b2160bd1b60208301526142a28151809260208686019101610399565b81017f5d205b4552524f525d2072657665727441646472657373206973207a65726f00838201520301600019810185520183610966565b90608060606102d29360018060a01b03815116845260018060a01b0360208201511660208501526040810151604085015201519181606082015201906103bc565b9060206102d29281815201906142d9565b600b90602d61057393959460296040519788946802db1b430b4b724b2160bd1b6020870152614363815180926020868a019101610399565b85017f5d205b494e464f5d20457865637574696e67206f6e526576657274206f6e2072838201526c032bb32b93a20b2323932b9b99609d1b60498201526143b4825180936020605685019101610399565b01016a0161031b7b73a32bc3a1d160ad1b83820152611dd8825180936020603885019101610399565b6001600160a01b039182168152602081019290925290911660408201526080606082018190526102d2929101906142d9565b6001600160a01b0390911681526040602082018190526102d2929101906142d9565b602081830312610256578051906001600160401b03821161025657019080601f830112156102565781519161446583611712565b926144736040519485610966565b80845260208085019160051b830101918383116102565760208101915b83831061449f57505050505090565b82516001600160401b038111610256578201906060828703601f19011261025657604051906144cd8261094b565b60208301516001600160401b0381116102565760209084010187601f82011215610256578051906144fd82611712565b9161450b6040519384610966565b80835260208084019160051b830101918a831161025657602001905b8282106145795750505082526040830151916001600160401b0383116102565761456960608561455f8b602080999881990101612983565b8685015201611c1b565b6040820152815201920191614490565b8151815260209182019101614527565b634e487b7160e01b600052603260045260246000fd5b8051156145ac5760200190565b614589565b8051600110156145ac5760400190565b8051600210156145ac5760600190565b80518210156145ac5760209160051b010190565b90610573601d602960405180956802db1b430b4b724b2160bd1b60208301526146178151809260208686019101610399565b81017f5d205b494e464f5d204576656e742066726f6d206f6e5265766572743a000000838201520301600219810185520183610966565b6040519061465d604083610966565b600a825269101032b6b4ba3a32b91d60b11b6020830152565b60405190614685604083610966565b600782526610103230ba309d60c91b6020830152565b604051906146aa604083610966565b60078252662020746f70696360c81b6020830152565b604051906146cf604083610966565b60018252601d60f91b6020830152565b9190606083019081516146f06109a5565b6001600160a01b03851681529060006020830152600060408301526060820152602085015115614d705760008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57614d5b575b5084516001600160a01b031615614cda5760405163348051d760e11b81526004810183905260008160248160008051602061924f8339815191525afa90811561151d57600091614cbf575b5085516147e7906000906001600160a01b03165b604051632b65311f60e11b81526001600160a01b03909116600482015291829081906024820190565b038160008051602061924f8339815191525afa801561151d5761483d91600091614ca4575b506000604051614823816141f4886020830161431a565b604051809481926371aad10d60e01b835260048301610575565b038160008051602061924f8339815191525afa90811561151d5761486d936114ea93600093614c87575b5061432b565b601f5460049060209061488b9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091614c68575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57614c53575b50601f5461491e9060081c6001600160a01b0316611338565b85519091906001600160a01b031690823b1561025657614958926000928360405180968195829463184b079360e01b84526004840161440f565b03926216e360f19081614c3e575b5061498c57600080614984604061057397015160018060a01b031690565b935193616ba4565b9150506040519163064554e960e21b83526000836004818360008051602061924f8339815191525af192831561151d57600093614c1b575b5060005b8351811015614c15576149ef60406149e083876145d1565b5101516001600160a01b031690565b6040830151614a06906001600160a01b0316611338565b6001600160a01b0390911614614a1f575b6001016149c8565b60405163348051d760e11b815260048101849052909491929060008160248160008051602061924f8339815191525afa90811561151d57614a6c916114ea91600091614bfc575b506145e5565b614a8060006147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d57614ab391600091614be3575b50614aae61464e565b618002565b614ae160006020614ac488886145d1565b510151604051809381926371aad10d60e01b835260048301610575565b038160008051602061924f8339815191525afa801561151d57614b0f91600091614bca575b50614aae614676565b60005b614b1c86866145d1565b515151811015614bc157806000614b41614b6193614b3a8a8a6145d1565b51516145d1565b5160405180948192631623433d60e31b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d57600192614ba291600091614ba8575b50614b9361469b565b83614b9c6146c0565b91618046565b01614b12565b614bbb913d8091833e61150f8183610966565b38614b8a565b50919093614a17565b614bdd913d8091833e61150f8183610966565b38614b06565b614bf6913d8091833e61150f8183610966565b38614aa5565b614c0f913d8091833e61150f8183610966565b38614a66565b50505050565b614c3791933d8091833e614c2f8183610966565b810190614431565b91386149c4565b8061159c6000614c4d93610966565b38614966565b8061159c6000614c6293610966565b38614905565b614c81915060203d6020116115e5576115d78183610966565b386148ae565b614c9d9193503d806000833e61150f8183610966565b9138614867565b614cb991503d806000833e61150f8183610966565b3861480c565b614cd491503d806000833e61150f8183610966565b386147aa565b5060205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa94851561151d57614984604060009392614d336114ea6105739a87968791614d41575b50614270565b01516001600160a01b031690565b614d5591503d8089833e61150f8183610966565b38614d2d565b8061159c6000614d6a93610966565b3861475f565b5060405163348051d760e11b81526004810182905260008160248160008051602061924f8339815191525afa94851561151d57614984604060009392614d336114ea6105739a87968791614dc5575b50614207565b614dd991503d8089833e61150f8183610966565b38614dbf565b93929060608501928351614df16109a5565b6001600160a01b0387168152906001600160a01b03841660208301528260408301526060820152614e256020880151151590565b156153bd5760008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d576153a8575b5086516001600160a01b03161561533e5760405163348051d760e11b81526004810185905260008160248160008051602061924f8339815191525afa90811561151d57600091615323575b508751614ed2906000906001600160a01b03166147be565b038160008051602061924f8339815191525afa801561151d57614f0d91600091614ca457506000604051614823816141f4886020830161431a565b038160008051602061924f8339815191525afa90811561151d57614f3c936114ea93600093614c87575061432b565b601f54600490602090614f5a9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091615304575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d576152ef575b506001600160a01b03831661524f57601f54614ffb9060081c6001600160a01b0316611338565b87519091906001600160a01b031690823b1561025657615035926000928360405180968195829463184b079360e01b84526004840161440f565b03926216e360f1908161523a575b50615062576040959095015161057395906001600160a01b0316614984565b50509150505b60405163064554e960e21b8152916000836004818360008051602061924f8339815191525af192831561151d5760009361521f575b5060005b8351811015614c15576150b960406149e083876145d1565b60408301516150d0906001600160a01b0316611338565b6001600160a01b03909116146150e9575b6001016150a1565b60405163348051d760e11b815260048101849052909491929060008160248160008051602061924f8339815191525afa90811561151d57615135916114ea91600091614bfc57506145e5565b61514960006147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d5761517691600091614be35750614aae61464e565b61518760006020614ac488886145d1565b038160008051602061924f8339815191525afa801561151d576151b491600091614bca5750614aae614676565b60005b6151c186866145d1565b51515181101561521657806000614b416151df93614b3a8a8a6145d1565b038160008051602061924f8339815191525afa91821561151d5760019261521091600091614ba85750614b9361469b565b016151b7565b509190936150e1565b61523391933d8091833e614c2f8183610966565b913861509d565b8061159c600061524993610966565b38615043565b601f546152679060081c6001600160a01b0316611338565b87519091906001600160a01b031690823b15610256576152a39260009283604051809681958294639d4ba46560e01b84528a8c600486016143dd565b03926216e360f190816152da575b506152d0576040959095015161057395906001600160a01b0316614984565b5050915050615068565b8061159c60006152e993610966565b386152b1565b8061159c60006152fe93610966565b38614fd4565b61531d915060203d6020116115e5576115d78183610966565b38614f7d565b61533891503d806000833e61150f8183610966565b38614eba565b5060205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d5761057397614d336114ea614984946040946000916153935750614270565b614d5591503d806000833e61150f8183610966565b8061159c60006153b793610966565b38614e6f565b5060405163348051d760e11b81526004810184905260008160248160008051602061924f8339815191525afa90811561151d5761057397614d336114ea6149849460409460009161540e5750614207565b614dd991503d806000833e61150f8183610966565b634e487b7160e01b600052601160045260246000fd5b906104b0820180921161544857565b615423565b919060005b600481018082116154485784511061549757602081850101516001600160e01b031983811691161461548f57600019811461544857600101615452565b506001925050565b506000925050565b604051906154ac8261092f565b600060e083606081528260208201528260408201528260608201528260808201528260a08201528260c08201520152565b604051906154ec604083610966565b600782526619195c1bdcda5d60ca1b6020830152565b60405190615511604083610966565b601082526f19195c1bdcda5d08185b990818d85b1b60821b6020830152565b600990601461057393959460296040519788946802db1b430b4b724b2160bd1b6020870152615568815180926020868a019101610399565b85017302e902da2a92927a92e902d32ba30a1b430b4b7160651b8382015261559a825180936020603d85019101610399565b0101680103330b4b632b21d160bd1b83820152611dd8825180936020601d85019101610399565b919082604091031261025657602082516155da81610555565b92015190565b9081602091031261025657516102d281611de9565b90610573603a602960405180956802db1b430b4b724b2160bd1b60208301526156278151809260208686019101610399565b81017f5d205b4552524f525d204661696c656420746f206d696e74205a524332302074838201527f6f6b656e7320666f722070726f746f636f6c206164647265737300000000000060498201520301601a810185520183610966565b9190820391821161544857565b90610573602f602960405180956802db1b430b4b724b2160bd1b60208301526156c28151809260208686019101610399565b81017f5d205b4552524f525d204661696c656420746f206275726e2072656d61696e69838201526e6e67205a5243323020746f6b656e7360881b60498201520301600f810185520183610966565b9094939195615751939661572261549f565b9161572b615502565b835260006020546040518098819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa95861561151d576114ea826157b99861578893600091615d9a575b50865190615530565b6040805163fc5fecd560e01b815260808901356004820152966001600160a01b038416939190889081906024820190565b0381865afa801561151d57600097600091615d65575b50604085019081526001600160a01b039097166020850190815296601f546004906020906158089060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091615d46575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03821660048201526000816024818360008051602061924f8339815191525af1801561151d57615d31575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018d905260208160448160008a5af190811561151d57600091615d12575b5015156060870190815260008051602061924f8339815191523b15610256576040516303223eab60e11b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af190811561151d5761592e92612e6a92615cfd575b5051151590565b615c805780519060a0860191825260c086019861594b8a60019052565b805161595f906001600160a01b0316611338565b8603615bf8575b505060008051602061924f8339815191523b15610256576040516390c5013b60e01b8152906000826004818360008051602061924f8339815191525af191821561151d576159bb92615be3575b50518b615683565b608085018181529a9015615bc4575050601f54600491506020906159ea9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091615ba5575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57600092602092615a9292615b91575b508a51604051948580948193630852cd8d60e31b8352600483019190602083019252565b03925af1801561151d57615abd92612e6a92600092615b59575b5060e0612049910191829015159052565b615ae157615adb615ad361057397519451151590565b943690611df3565b90618832565b505050505050615b0e60006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091615b3e575b50615690565b615b5391503d806000833e61150f8183610966565b38615b38565b612049919250615b8260e09160203d602011615b8a575b615b7a8183610966565b8101906155e0565b929150615aac565b503d615b70565b8061159c86615b9f93610966565b38615a6e565b615bbe915060203d6020116115e5576115d78183610966565b38615a0d565b9496509450956105739850615bde925060409150016141bd565b61788e565b8061159c6000615bf293610966565b386159b3565b60008a52516001600160a01b03169051601f54600490602090615c269060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa91821561151d57615c56938f92600094615c5f575b5086618362565b81523880615966565b615c7991945060203d6020116115e5576115d78183610966565b9238615c4f565b5050505050505050505050615cb260006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091615ce2575b506155f5565b615cf791503d806000833e61150f8183610966565b38615cdc565b8061159c6000615d0c93610966565b38615927565b615d2b915060203d602011615b8a57615b7a8183610966565b386158be565b8061159c6000615d4093610966565b38615880565b615d5f915060203d6020116115e5576115d78183610966565b3861582b565b9050615d8a91975060403d604011615d93575b615d828183610966565b8101906155c1565b969096386157cf565b503d615d78565b615daf91503d806000833e61150f8183610966565b3861577f565b90949391956157519396615dc761549f565b9161572b6154dd565b90610573601e602960405180956802db1b430b4b724b2160bd1b6020830152615e028151809260208686019101610399565b81017f5d205b4552524f525d2061626f727441646472657373206973207a65726f0000838201520301600119810185520183610966565b6007600461057392949394602f6040519687926e021b0b713ba103a3930b739b332b91608d1b6020850152615e778151809260208688019101610399565b83016301037b3160e51b83820152615e99825180936020603385019101610399565b01016620746f6b656e7360c81b838201520301601819810185520183610966565b600460129295946017610573956029604051998a966802db1b430b4b724b2160bd1b6020890152615ef4815180926020868c019101610399565b87017f5d205b4552524f525d205472616e7366657272696e672000000000000000000083820152615f2f825180936020604085019101610399565b01016301037b3160e51b83820152615f51825180936020601b85019101610399565b0101710103a37b5b2b739903a379039b2b73232b9160751b83820152611dd8825180936020601685019101610399565b602d6105739193929360296040519586926802db1b430b4b724b2160bd1b6020850152615fb78151809260208688019101610399565b83017f5d205b494e464f5d205472616e7366657272696e6720746f6b656e7320746f20838201526c030b137b93a20b2323932b9b99609d1b6049820152611dd8825180936020605685019101610399565b6102d29160a0616021835160c0845260c08401906103bc565b92600180831b036020820151166020840152604081015160408401526060810151151560608401526080810151608084015201519060a08184039101526103bc565b9060206102d2928181520190616008565b601d90601261057393959460296040519788946802db1b430b4b724b2160bd1b60208701526160ac815180926020868a019101610399565b85017102e902da4a72327ae9021b7b73a3930b1ba160751b838201526160dc825180936020603b85019101610399565b01017f20657865637574696e67206f6e41626f72742c20636f6e746578743a2000000083820152611dd8825180936020602f85019101610399565b6001600160a01b0390911681526040602082018190526102d292910190616008565b90610573601c602960405180956802db1b430b4b724b2160bd1b602083015261616b8151809260208686019101610399565b81017f5d205b494e464f5d204576656e742066726f6d206f6e41626f72743a00000000838201520301600319810185520183610966565b601a6105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526161d88151809260208688019101610399565b83017f5d205b4552524f525d206f6e41626f7274206661696c65643a2000000000000083820152611dd8825180936020604385019101610399565b6001600160a01b0381169360009390928515616a625760205460405163348051d760e11b81526004810191909152858160248160008051602061924f8339815191525afa90811561151d578691616a48575b50604051632b65311f60e11b81526001600160a01b038516600482015290868260248160008051602061924f8339815191525afa91821561151d5787926162b7926114ea928592616a2c575b50615f81565b616836575b604080516001600160a01b0390951660208601526162dd90859081016113f8565b6162e56109b4565b9384526001600160a01b0385166020850152604084018590528415156060850152608084015260a083015260205460405163348051d760e11b8152600481019190915283818060248101038160008051602061924f8339815191525afa90811561151d57849161681c575b50604051632b65311f60e11b81526001600160a01b0383166004820152848160248160008051602061924f8339815191525afa801561151d576163aa918691616802575b5085604051614823816141f48960208301616063565b038160008051602061924f8339815191525afa90811561151d576163d9936114ea9388936167e6575b50616074565b601f546004906020906163f79060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d5784916167c7575b5060008051602061924f8339815191523b156167975760405163ca669fa760e01b81526001600160a01b0391909116600482015283816024818360008051602061924f8339815191525af1801561151d576167b3575b5060008051602061924f8339815191523b156167af576040516320d797a960e11b815283816004818360008051602061924f8339815191525af1801561151d5761679b575b50601f546164cd9060081c6001600160a01b0316611338565b90813b15616797579183916164f99383604051809681958294632095dedb60e01b845260048401616117565b03925af19081616783575b50616583576165399150616516611d28565b816020546040518095819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d5761057393836114ea9492616568575b50506161a2565b61657c92503d8091833e61150f8183610966565b3880616561565b60405163064554e960e21b81529181836004818360008051602061924f8339815191525af192831561151d578293616767575b50815b8351811015614c1557816165d561133860406149e085896145d1565b146165e3575b6001016165b9565b60205460405163348051d760e11b81526004810191909152909490838160248160008051602061924f8339815191525afa90811561151d57616630916114ea91869161674d575b50616139565b616643836147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d5761666f9185916167395750614aae61464e565b61667f836020614ac488886145d1565b038160008051602061924f8339815191525afa801561151d576166ab9185916167255750614aae614676565b825b6166b786866145d1565b51515181101561671e578084614b416166d493614b3a8a8a6145d1565b038160008051602061924f8339815191525afa91821561151d5760019261670491879161670a5750614b9361469b565b016166ad565b614bbb91503d8089833e61150f8183610966565b50936165db565b614bdd91503d8087833e61150f8183610966565b614bf691503d8087833e61150f8183610966565b61676191503d8088833e61150f8183610966565b3861662a565b61677c9193503d8084833e614c2f8183610966565b91386165b6565b8061159c8461679193610966565b38616504565b8380fd5b8061159c856167a993610966565b386164b4565b8280fd5b8061159c856167c193610966565b3861646f565b6167e0915060203d6020116115e5576115d78183610966565b38616419565b6167fb9193503d808a833e61150f8183610966565b91386163d3565b61681691503d8088833e61150f8183610966565b38616394565b61683091503d8086833e61150f8183610966565b38616350565b601f546004906020906168549060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d578691616a0d575b5060008051602061924f8339815191523b156169d85760405163ca669fa760e01b81526001600160a01b038216600482015286816024818360008051602061924f8339815191525af1801561151d576169f9575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018790526020816044818a805af1801561151d576169dc575b5060008051602061924f8339815191523b156169d85760405163ca669fa760e01b81526001600160a01b0391909116600482015285816024818360008051602061924f8339815191525af1801561151d576169c4575b5060405163a9059cbb60e01b81526001600160a01b0384166004820152602481018690529360208560448189805af190811561151d576113f8956162dd926169a5575b509450506162bc565b6169bd9060203d602011615b8a57615b7a8183610966565b503861699c565b8061159c876169d293610966565b38616959565b8580fd5b6169f49060203d602011615b8a57615b7a8183610966565b616903565b8061159c88616a0793610966565b386168ca565b616a26915060203d6020116115e5576115d78183610966565b38616876565b616a419192503d8087833e61150f8183610966565b90386162b1565b616a5c91503d8088833e61150f8183610966565b38616265565b60205460405163348051d760e11b815260048101919091528590818160248160008051602061924f8339815191525afa90811561151d57616aae916114ea918491616b8a575b50615dd0565b5060405163348051d760e11b81526000600482018190528160248160008051602061924f8339815191525afa90811561151d57600091616b6f575b50604051632b65311f60e11b81526000600482018190528180602481015b038160008051602061924f8339815191525afa801561151d57616b4e92616b3692600092616b52575b50615e39565b60405162461bcd60e51b815291829160048301610575565b0390fd5b616b689192503d806000833e61150f8183610966565b9084616b30565b616b8491503d806000833e61150f8183610966565b81616ae9565b616b9e91503d8086833e61150f8183610966565b84616aa8565b6001600160a01b03811695949093909290919086156173e95760205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d576000916173ce575b50604051632b65311f60e11b81526001600160a01b038716600482015260008160248160008051602061924f8339815191525afa801561151d57616c4a926114ea926000926173b85750615f81565b6001600160a01b038116801515806173af575b6171ab575b50604080516001600160a01b039097166020880152616cae9190616c9390889081015b03601f198101895288610966565b616c9b6109b4565b9687526001600160a01b03166020870152565b604085015260016060850152608084015260a083015260205460405163348051d760e11b815260048101919091526000818060248101038160008051602061924f8339815191525afa90811561151d57600091617190575b50604051632b65311f60e11b81526001600160a01b038316600482015260008160248160008051602061924f8339815191525afa801561151d57616d6391600091617175575b506000604051614823816141f48960208301616063565b038160008051602061924f8339815191525afa90811561151d57616d92936114ea9360009361715f5750616074565b601f54600490602090616db09060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617140575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d5761712b575b5060008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57617116575b50601f54616e899060081c6001600160a01b0316611338565b91823b1561025657616eb59260009283604051809681958294632095dedb60e01b845260048401616117565b03925af19081617101575b50616f355750616ece611d28565b60205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa91821561151d57610573926114ea92600091616f1a575b506161a2565b616f2f91503d806000833e61150f8183610966565b38616f14565b60405163064554e960e21b8152906000826004818360008051602061924f8339815191525af191821561151d576000926170e6575b5060005b82518110156170e15781616f8a61133860406149e085886145d1565b14616f98575b600101616f6e565b60205460405163348051d760e11b8152600481019190915290939060008160248160008051602061924f8339815191525afa90811561151d57616fe6916114ea916000916170ce5750616139565b616ffa60006147be60406149e088886145d1565b038160008051602061924f8339815191525afa801561151d5761702791600091614be35750614aae61464e565b61703860006020614ac487876145d1565b038160008051602061924f8339815191525afa801561151d5761706591600091614bca5750614aae614676565b60005b61707285856145d1565b5151518110156170c757806000614b4161709093614b3a89896145d1565b038160008051602061924f8339815191525afa91821561151d576001926170c191600091614ba85750614b9361469b565b01617068565b5092616f90565b616761913d8091833e61150f8183610966565b505050565b6170fa91923d8091833e614c2f8183610966565b9038616f6a565b8061159c600061711093610966565b38616ec0565b8061159c600061712593610966565b38616e70565b8061159c600061713a93610966565b38616e2a565b617159915060203d6020116115e5576115d78183610966565b38616dd3565b6167fb9193503d806000833e61150f8183610966565b61718a91503d806000833e61150f8183610966565b38616d4c565b6171a591503d806000833e61150f8183610966565b38616d06565b601f549091906004906020906171cc9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617390575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03821660048201526000816024818360008051602061924f8339815191525af1801561151d5761737b575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018590526020816044816000885af1801561151d5761735e575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57617349575b5060405163a9059cbb60e01b81526001600160a01b03871660048201526024810184905291602090839060449082906000905af1801561151d57616c8597616cae93616c939261732a575b5097505090616c62565b6173429060203d602011615b8a57615b7a8183610966565b5038617320565b8061159c600061735893610966565b386172d5565b6173769060203d602011615b8a57615b7a8183610966565b61727e565b8061159c600061738a93610966565b38617244565b6173a9915060203d6020116115e5576115d78183610966565b386171ef565b50821515616c5d565b616a419192503d806000833e61150f8183610966565b6173e391503d806000833e61150f8183610966565b38616bfb565b95509250505060205460405163348051d760e11b81526000818061741585600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57617444916114ea916000916178735750615dd0565b6001600160a01b038416908115158061786a575b156177e15760405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d576000916177c6575b5060405163348051d760e11b8152600481018490529460008660248160008051602061924f8339815191525afa95861561151d576000966177a3575b50604051632b65311f60e11b81526001600160a01b03909116600482015260008180602481015b038160008051602061924f8339815191525afa90811561151d57600091617788575b50604051632b65311f60e11b81526001600160a01b03861660048201529060008260248160008051602061924f8339815191525afa90811561151d57600497617572946114ea9460009461776b575b50615eba565b601f5460209061758d9060081c6001600160a01b0316611338565b6040516313917f7760e11b815295869182905afa93841561151d5760009461774a575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03851660048201526000816024818360008051602061924f8339815191525af1801561151d57617735575b506040516311f9fbc960e21b81526001600160a01b0385166004820152602481018390526020816044816000865af1801561151d57617718575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039490941660048501526000846024818360008051602061924f8339815191525af192831561151d576176d794602094617703575b5060405163a9059cbb60e01b81526001600160a01b03909116600482015260248101929092529092839190829060009082906044820190565b03925af1801561151d576176e85750565b6177009060203d602011615b8a57615b7a8183610966565b50565b8061159c600061771293610966565b3861769e565b6177309060203d602011615b8a57615b7a8183610966565b61763f565b8061159c600061774493610966565b38617605565b61776491945060203d6020116115e5576115d78183610966565b92386175b0565b6177819194503d806000833e61150f8183610966565b923861756c565b61779d91503d806000833e61150f8183610966565b3861751d565b6174fb9196506177be6000913d8084833e61150f8183610966565b9691506174d4565b6177db91503d806000833e61150f8183610966565b38617498565b60405163348051d760e11b8152600481018490528560008260248160008051602061924f8339815191525afa91821561151d57600092617847575b50604051632b65311f60e11b81526001600160a01b0390911660048201526000818060248101616b07565b616b079192506178626000913d8084833e61150f8183610966565b92915061781c565b50821515617458565b61788891503d806000833e61150f8183610966565b38616aa8565b6001600160a01b03811695949093909290919086156173e95760205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d57600091617fcc575b50604051632b65311f60e11b81526001600160a01b038716600482015260008160248160008051602061924f8339815191525afa801561151d57617934926114ea926000926173b85750615f81565b6001600160a01b03811680151580617fc3575b617dbf575b50604080516001600160a01b0390971660208801526179739190616c939088908101616c85565b604085015260006060850152608084015260a083015260205460405163348051d760e11b815260048101919091526000818060248101038160008051602061924f8339815191525afa90811561151d57600091617da4575b50604051632b65311f60e11b81526001600160a01b038316600482015260008160248160008051602061924f8339815191525afa801561151d57617a279160009161717557506000604051614823816141f48960208301616063565b038160008051602061924f8339815191525afa90811561151d57617a56936114ea9360009361715f5750616074565b601f54600490602090617a749060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617d85575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57617d70575b5060008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57617d5b575b50601f54617b4d9060081c6001600160a01b0316611338565b91823b1561025657617b799260009283604051809681958294632095dedb60e01b845260048401616117565b03925af19081617d46575b50617b925750616ece611d28565b60405163064554e960e21b8152906000826004818360008051602061924f8339815191525af191821561151d57600092617d2b575b5060005b82518110156170e15781617be761133860406149e085886145d1565b14617bf5575b600101617bcb565b60205460405163348051d760e11b8152600481019190915290939060008160248160008051602061924f8339815191525afa90811561151d57617c43916114ea916000916170ce5750616139565b617c5760006147be60406149e088886145d1565b038160008051602061924f8339815191525afa801561151d57617c8491600091614be35750614aae61464e565b617c9560006020614ac487876145d1565b038160008051602061924f8339815191525afa801561151d57617cc291600091614bca5750614aae614676565b60005b617ccf85856145d1565b515151811015617d2457806000614b41617ced93614b3a89896145d1565b038160008051602061924f8339815191525afa91821561151d57600192617d1e91600091614ba85750614b9361469b565b01617cc5565b5092617bed565b617d3f91923d8091833e614c2f8183610966565b9038617bc7565b8061159c6000617d5593610966565b38617b84565b8061159c6000617d6a93610966565b38617b34565b8061159c6000617d7f93610966565b38617aee565b617d9e915060203d6020116115e5576115d78183610966565b38617a97565b617db991503d806000833e61150f8183610966565b386179cb565b601f54909190600490602090617de09060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617fa4575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03821660048201526000816024818360008051602061924f8339815191525af1801561151d57617f8f575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018590526020816044816000885af1801561151d57617f72575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57617f5d575b5060405163a9059cbb60e01b81526001600160a01b03871660048201526024810184905291602090839060449082906000905af1801561151d57616c859761797393616c9392617f3e575b509750509061794c565b617f569060203d602011615b8a57615b7a8183610966565b5038617f34565b8061159c6000617f6c93610966565b38617ee9565b617f8a9060203d602011615b8a57615b7a8183610966565b617e92565b8061159c6000617f9e93610966565b38617e58565b617fbd915060203d6020116115e5576115d78183610966565b38617e03565b50821515617947565b617fe191503d806000833e61150f8183610966565b386178e5565b600080916020815191016a636f6e736f6c652e6c6f675afa50565b614202618034916141f461057394604051948593634b5c427760e01b60208601526040602486015260648501906103bc565b838103602319016044850152906103bc565b6141f4610573946180936142029461807c96604051978896635ab84e1f60e01b60208901526080602489015260a48801906103bc565b9160448701526023198683030160648701526103bc565b838103602319016084850152906103bc565b156180ac57565b60405162461bcd60e51b8152602060048201526016602482015275155b9a5cddd85c081c9bdd5d195c881b9bdd081cd95d60521b6044820152606490fd5b156180f157565b60405162461bcd60e51b815260206004820152600d60248201526c15d6915510481b9bdd081cd95d609a1b6044820152606490fd5b604051608091906181378382610966565b6003815291601f1901366020840137565b604051606091906181598382610966565b6002815291601f1901366020840137565b602081830312610256578051906001600160401b03821161025657019080601f8301121561025657815161819d81611712565b926181ab6040519485610966565b81845260208085019260051b82010192831161025657602001905b8282106181d35750505090565b81518152602091820191016181c6565b919260809361820892979695978452602084015260a0604084015260a0830190610284565b6001600160a01b0390951660608201520152565b6040519061822b604083610966565b600282526134b760f11b6020830152565b6001600791601a61057394969560296040519889946802db1b430b4b724b2160bd1b6020870152618276815180926020868a019101610399565b85017f5d205b494e464f5d2053776170207375636365737366756c3a20000000000000838201526182b1825180936020604385019101610399565b0101600160fd1b838201526182d0825180936020601b85019101610399565b010166081b995959195960ca1b838201520301601819810185520183610966565b601f6105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526183278151809260208688019101610399565b83017f5d205b4552524f525d20556e69737761702073776170206661696c65643a200083820152611dd8825180936020604885019101610399565b60255493946001600160a01b0390941693909291906183828515156180a5565b6026546183a29061839b906001600160a01b0316611338565b15156180ea565b60405163095ea7b360e01b81526001600160a01b039586166004820152602481018790529484169460208160448160008a5af1801561151d5761869b575b5060006183eb618126565b91618408866183f98561459f565b6001600160a01b039091169052565b602654618422906001600160a01b03165b6183f9856145b1565b61842f846183f9856145c1565b61843842615439565b60255490939061845290611338906001600160a01b031681565b90838a61847660405197889687958694634401edf760e11b86528d600487016181e3565b03925af1908161867a575b506184f95750505050618492611d28565b60205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa91821561151d576102d2926114ea926000916184de575b506182f1565b6184f391503d806000833e61150f8183610966565b386184d8565b60265461851991906001600160a01b0316809361851461821c565b61916f565b918251156186735761852d6185369361459f565b5161851461821c565b9081511561866e5760205460405163348051d760e11b81526004810191909152925060008360248160008051602061924f8339815191525afa90811561151d576185ae93600092618651575b50600061858e8461459f565b516040518096819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa93841561151d5760009461862f575b506000600491604051928380926306fdde0360e01b82525afa801561151d5761860e94618609936114ea93600093618612575b5061823c565b61459f565b5190565b6186289193503d806000833e61150f8183610966565b9138618603565b60049194506186496000913d8084833e61150f8183610966565b9491506185d0565b6186679192503d806000833e61150f8183610966565b9038618582565b505090565b5050505090565b618696903d806000833e61868e8183610966565b81019061816a565b618481565b6186b39060203d602011615b8a57615b7a8183610966565b6183e0565b604051906186c7604083610966565b600382526267617360e81b6020830152565b60046012929594602e610573956029604051998a966802db1b430b4b724b2160bd1b6020890152618713815180926020868c019101610399565b87017f5d205b4552524f525d2072657665727441646472657373206973207a65726f2c838201526d0103a3930b739b332b93934b733960951b6049820152618765825180936020605785019101610399565b01016301037b3160e51b83820152615f51825180936020603285019101610399565b1561878e57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b6001600160a01b03918216815291166020820152604081019190915260a06060820181905260009082015260c0608082018190526102d2929101906142d9565b6080906102d2939260018060a01b03168152606060208201526000606082015281604082015201906142d9565b93949190946060860151926188456109a5565b6001600160a01b0382168152936001600160a01b038416602086015285604086015260608501526188796020880151151590565b15618e15575060008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57618e00575b5060405163348051d760e11b81526004810186905260008160248160008051602061924f8339815191525afa90811561151d57600091618de5575b508651618917906000906001600160a01b03166147be565b038160008051602061924f8339815191525afa801561151d5761895391600091618dca575b506000604051614823816141f48a6020830161431a565b038160008051602061924f8339815191525afa90811561151d57618982936114ea93600093614c87575061432b565b600460206189a061133861143d896000526021602052604060002090565b604051635b11259160e01b815292839182905afa90811561151d57600091618dab575b5060008051602061924f8339815191523b15610256576040516303223eab60e11b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57618d96575b5015618cc85750618a3b61133861143d856000526021602052604060002090565b608085015185519192916001600160a01b0316833b156102565760405163cb7ba8e560e01b815294600094869485938491618a799160048401618805565b0393f1801561151d57618cb3575b505b60008051602061924f8339815191523b15610256576040516390c5013b60e01b81526000816004818360008051602061924f8339815191525af1801561151d57618c9e575b5060405163064554e960e21b8152916000836004818360008051602061924f8339815191525af192831561151d57600093618c83575b5060005b8351811015614c1557618b2060406149e083876145d1565b8251618b34906001600160a01b0316611338565b6001600160a01b0390911614618b4d575b600101618b08565b60405163348051d760e11b815260048101849052909491929060008160248160008051602061924f8339815191525afa90811561151d57618b99916114ea91600091614bfc57506145e5565b618bad60006147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d57618bda91600091614be35750614aae61464e565b618beb60006020614ac488886145d1565b038160008051602061924f8339815191525afa801561151d57618c1891600091614bca5750614aae614676565b60005b618c2586866145d1565b515151811015618c7a57806000614b41618c4393614b3a8a8a6145d1565b038160008051602061924f8339815191525afa91821561151d57600192618c7491600091614ba85750614b9361469b565b01618c1b565b50919093618b45565b618c9791933d8091833e614c2f8183610966565b9138618b04565b8061159c6000618cad93610966565b38618ace565b8061159c6000618cc293610966565b38618a87565b909160046020618ce861133861143d886000526021602052604060002090565b60405163dda79b7560e01b815292839182905afa90811561151d57600091618d77575b50608086015186516001600160a01b0392831694919216843b15610256576000948591618d4e60405198899788968794634cd1e1ab60e11b8652600486016187c5565b0393f1801561151d57618d62575b50618a89565b8061159c6000618d7193610966565b38618d5c565b618d90915060203d6020116115e5576115d78183610966565b38618d0b565b8061159c6000618da593610966565b38618a1a565b618dc4915060203d6020116115e5576115d78183610966565b386189c3565b618ddf91503d806000833e61150f8183610966565b3861893c565b618dfa91503d806000833e61150f8183610966565b386188ff565b8061159c6000618e0f93610966565b386188c4565b60405163348051d760e11b81526004810187905294969095929491935060008260248160008051602061924f8339815191525afa801561151d576114ea612cb491618e679460009161540e5750614207565b936001600160a01b03851615618fa8575b506020618e9761133861143d6004946000526021602052604060002090565b604051635b11259160e01b815292839182905afa90811561151d57600091618f89575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57618f74575b5015618f325750600080806105739481945af1618f2c611d28565b50618787565b60405163a9059cbb60e01b81526001600160a01b039283166004820152602481019390935260209183916044918391600091165af1801561151d576176e85750565b8061159c6000618f8393610966565b38618f11565b618fa2915060203d6020116115e5576115d78183610966565b38618eba565b60405163348051d760e11b81526004810183905291945060008260248160008051602061924f8339815191525afa91821561151d5760009261913b575b5060405163348051d760e11b8152600481018790529060008260248160008051602061924f8339815191525afa91821561151d5760009261911e575b50600084156190bc57506190336186b8565b604051632b65311f60e11b81526001600160a01b03831660048201529260008460248160008051602061924f8339815191525afa92831561151d576190946114ea618e97956113389561143d9560049a60209a60009461909f575b506186d9565b979450505050618e78565b6190b59194503d806000833e61150f8183610966565b923861908e565b604051632b65311f60e11b81526001600160a01b0387166004820152818160248160008051602061924f8339815191525afa91821561151d578092619103575b5050619033565b61911792503d8091833e61150f8183610966565b38806190fc565b6191349192503d806000833e61150f8183610966565b9038619021565b6191519192503d806000833e61150f8183610966565b9038618fe5565b6040906102d2939281528160208201520190610284565b90919261918b90618419619181618148565b956183f98761459f565b6020815191012061919a61821c565b6020815191012014600014619211576025546191e69260009290916191c990611338906001600160a01b031681565b906040518095819482936307c0329d60e21b845260048401619158565b03915afa90811561151d576000916191fc575090565b6102d291503d806000833e61868e8183610966565b6025546191e692600092909161923190611338906001600160a01b031681565b9060405180958194829363d06ca61f60e01b84526004840161915856fe0000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da26469706673582212201fce51ed1ff9d0f5f4ea6ac5dba002558bc8864b5d87779ba4c2fa367c0a470364736f6c634300081a003360c034608d57601f61094c38819003918201601f19168301916001600160401b038311848410176092578084926040948552833981010312608d57604b602060458360a8565b920160a8565b9060805260a05260405161089090816100bc8239608051818181603d015261012d015260a0518181816084015281816106960152818161074e01526107db0152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203608d5756fe6080604052600436106101185760003560e01c8063ced52b40146100715763d9d2f07403610118573461006c57600036600319011261006c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b600080fd5b3461006c57600036600319011261006c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b600091031261006c57565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b038211176100f857604052565b6100c1565b6001600160401b0381116100f857601f01601f191660200190565b600080604051368282378036810183815203907f00000000000000000000000000000000000000000000000000000000000000005af43d156101d3573d9061015f826100fd565b9161016d60405193846100d7565b82523d6000602084013e5b1561018e576101863661065f565b602081519101f35b60405162461bcd60e51b815260206004820152601f60248201527f476174657761795a45564d2064656c656761746563616c6c206661696c6564006044820152606490fd5b606090610178565b909291928360041161006c57831161006c57600401916003190190565b81601f8201121561006c5780359061020f826100fd565b9261021d60405194856100d7565b8284526020838301011161006c57816000926020809301838601378301015290565b6001600160a01b0381160361006c57565b3590811515820361006c57565b919082604091031261006c57604051604081018181106001600160401b038211176100f85760405260206102978183958035855201610250565b910152565b91909160a08184031261006c576040519060a082018281106001600160401b038211176100f857604052819381356102d38161023f565b83526102e160208301610250565b602084015260408201356102f48161023f565b60408401526060820135916001600160401b03831161006c5761031d60809392849383016101f8565b60608501520135910152565b9160e08383031261006c5782356001600160401b03811161006c57826103509185016101f8565b9260208101359260408201356103658161023f565b9260608301356001600160401b03811161006c57826103859185016101f8565b92610393836080830161025d565b9260c08201356001600160401b03811161006c576103b1920161029c565b90565b919082519283825260005b8481106103e0575050826000602080949584010152601f8019910116010190565b806020809284010151828286010152016103bf565b9060018060a01b03825116815260208201511515602082015260018060a01b03604083015116604082015260808061043c606085015160a0606086015260a08501906103b4565b93015191015290565b93946103b19795610475610498946104ae969460018060a01b0316885261010060208901526101008801906103b4565b60408701939093526001600160a01b0316606086015284820360808601526103b4565b845160a0840152602090940151151560c0830152565b60e08184039101526103f5565b6040513d6000823e3d90fd5b9060808282031261006c5781356001600160401b03811161006c57816104ee9184016101f8565b9260208301359260408101356105038161023f565b9260608201356001600160401b03811161006c576103b1920161029c565b6001600160a01b03909116815260a0602082018190526103b1959394919261054b918401906103b4565b60408301949094526001600160a01b031660608201528083036080909101526103f5565b91909160c08184031261006c5780356001600160401b03811161006c57836105989183016101f8565b9260208201356105a78161023f565b9260408301356001600160401b03811161006c57826105c79185016101f8565b926105d5836060830161025d565b9260a08201356001600160401b03811161006c576103b1920161029c565b926103b1969461061f6106529461063c9460018060a01b0316875260e0602088015260e08701906103b4565b6001600160a01b03909216604086015284820360608601526103b4565b84516080840152602090940151151560a0830152565b60c08184039101526103f5565b6000356001600160e01b0319166306cb898360e01b8103610723575061068a816106929260006101db565b81019061056f565b90937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561006c576000946106f5869260405198899788968795632c612e1f60e21b875260018060a01b03169033600488016105f3565b03925af1801561071e57610707575b50565b80610716600061071c936100d7565b806100b6565b565b6104bb565b637c0dcb5f60e01b81036107ac5750610741816107499260006101db565b8101906104c7565b9290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b1561006c57600080946106f5604051978896879586946308327f7960e41b865260018060a01b0316913360048701610521565b637b15118b60e01b146107bc5750565b6107cb816107d39260006101db565b810190610329565b9194909390927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169290833b1561006c5761083c600096928793604051998a988997889663567ee10960e11b885260018060a01b0316913360048901610445565b03925af1801561071e57156107045780610716600061071c936100d756fea2646970667358221220c3b911f522f83c8ee9102b4245bed2a13c90092e91b0140cf5e5b3a0b9aa0c6f64736f6c634300081a00330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da26469706673582212203f694ab51e5f913424b6717e51b1a640475332aae62978b7605f0d4ee97dccf764736f6c634300081a0033"; + +type ZetaSetupConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: ZetaSetupConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class ZetaSetup__factory extends ContractFactory { + constructor(...args: ZetaSetupConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + _deployer: AddressLike, + _fungibleModuleAddress: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction( + _deployer, + _fungibleModuleAddress, + overrides || {} + ); + } + override deploy( + _deployer: AddressLike, + _fungibleModuleAddress: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy( + _deployer, + _fungibleModuleAddress, + overrides || {} + ) as Promise< + ZetaSetup & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): ZetaSetup__factory { + return super.connect(runner) as ZetaSetup__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): ZetaSetupInterface { + return new Interface(_abi) as ZetaSetupInterface; + } + static connect(address: string, runner?: ContractRunner | null): ZetaSetup { + return new Contract(address, _abi, runner) as unknown as ZetaSetup; + } +} diff --git a/typechain-types/factories/contracts/testing/ZetaSetup.t.sol/index.ts b/typechain-types/factories/contracts/testing/ZetaSetup.t.sol/index.ts new file mode 100644 index 00000000..d5842d93 --- /dev/null +++ b/typechain-types/factories/contracts/testing/ZetaSetup.t.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { ZetaSetup__factory } from "./ZetaSetup__factory"; diff --git a/typechain-types/factories/contracts/testing/index.ts b/typechain-types/factories/contracts/testing/index.ts new file mode 100644 index 00000000..5dde307f --- /dev/null +++ b/typechain-types/factories/contracts/testing/index.ts @@ -0,0 +1,11 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as evmSetupTSol from "./EVMSetup.t.sol"; +export * as foundrySetupTSol from "./FoundrySetup.t.sol"; +export * as tokenSetupTSol from "./TokenSetup.t.sol"; +export * as uniswapV2SetupLibSol from "./UniswapV2SetupLib.sol"; +export * as uniswapV3SetupLibSol from "./UniswapV3SetupLib.sol"; +export * as zetaSetupTSol from "./ZetaSetup.t.sol"; +export * as mock from "./mock"; +export * as mockGateway from "./mockGateway"; diff --git a/typechain-types/factories/contracts/testing/mock/ERC20Mock__factory.ts b/typechain-types/factories/contracts/testing/mock/ERC20Mock__factory.ts new file mode 100644 index 00000000..127e2b0a --- /dev/null +++ b/typechain-types/factories/contracts/testing/mock/ERC20Mock__factory.ts @@ -0,0 +1,430 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../../common"; +import type { + ERC20Mock, + ERC20MockInterface, +} from "../../../../contracts/testing/mock/ERC20Mock"; + +const _abi = [ + { + inputs: [ + { + internalType: "string", + name: "name_", + type: "string", + }, + { + internalType: "string", + name: "symbol_", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "allowance", + type: "uint256", + }, + { + internalType: "uint256", + name: "needed", + type: "uint256", + }, + ], + name: "ERC20InsufficientAllowance", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "uint256", + name: "balance", + type: "uint256", + }, + { + internalType: "uint256", + name: "needed", + type: "uint256", + }, + ], + name: "ERC20InsufficientBalance", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "approver", + type: "address", + }, + ], + name: "ERC20InvalidApprover", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "receiver", + type: "address", + }, + ], + name: "ERC20InvalidReceiver", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "ERC20InvalidSender", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "ERC20InvalidSpender", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "burn", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "mint", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +const _bytecode = + "0x60806040523461032457610b598038038061001981610329565b9283398101906040818303126103245780516001600160401b038111610324578261004591830161034e565b60208201519092906001600160401b03811161032457610065920161034e565b81516001600160401b03811161022f57600354600181811c9116801561031a575b602082101461020f57601f81116102b5575b50602092601f82116001146102505792819293600092610245575b50508160011b916000199060031b1c1916176003555b80516001600160401b03811161022f57600454600181811c91168015610225575b602082101461020f57601f81116101aa575b50602091601f82116001146101465791819260009261013b575b50508160011b916000199060031b1c1916176004555b60405161079f90816103ba8239f35b015190503880610116565b601f198216926004600052806000209160005b85811061019257508360019510610179575b505050811b0160045561012c565b015160001960f88460031b161c1916905538808061016b565b91926020600181928685015181550194019201610159565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c81019160208410610205575b601f0160051c01905b8181106101f957506100fc565b600081556001016101ec565b90915081906101e3565b634e487b7160e01b600052602260045260246000fd5b90607f16906100ea565b634e487b7160e01b600052604160045260246000fd5b0151905038806100b3565b601f198216936003600052806000209160005b86811061029d5750836001959610610284575b505050811b016003556100c9565b015160001960f88460031b161c19169055388080610276565b91926020600181928685015181550194019201610263565b60036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c81019160208410610310575b601f0160051c01905b8181106103045750610098565b600081556001016102f7565b90915081906102ee565b90607f1690610086565b600080fd5b6040519190601f01601f191682016001600160401b0381118382101761022f57604052565b81601f82011215610324578051906001600160401b03821161022f5761037d601f8301601f1916602001610329565b92828452602083830101116103245760005b8281106103a457505060206000918301015290565b8060208092840101518282870101520161038f56fe608080604052600436101561001357600080fd5b60003560e01c90816306fdde031461058857508063095ea7b31461050257806318160ddd146104e457806323b872dd146103f7578063313ce567146103db57806340c10f191461032f57806370a08231146102f557806395d89b41146101d45780639dc29fac1461011f578063a9059cbb146100ee5763dd62ed3e1461009857600080fd5b346100e95760403660031901126100e9576100b16106a4565b6100b96106ba565b6001600160a01b039182166000908152600160209081526040808320949093168252928352819020549051908152f35b600080fd5b346100e95760403660031901126100e95761011461010a6106a4565b60243590336106d0565b602060405160018152f35b346100e95760403660031901126100e9576101386106a4565b6001600160a01b031660243581156101be576000908282528160205260408220548181106101a65760208285937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93869787528684520360408620558060025403600255604051908152a380f35b60649363391434e360e21b8452600452602452604452fd5b634b637e8f60e11b600052600060045260246000fd5b346100e95760003660031901126100e95760405160006004548060011c906001811680156102eb575b6020831081146102d7578285529081156102bb5750600114610264575b50819003601f01601f191681019067ffffffffffffffff82118183101761024e5761024a8291826040528261065b565b0390f35b634e487b7160e01b600052604160045260246000fd5b905060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b6000905b8282106102a55750602091508201018261021a565b6001816020925483858801015201910190610290565b90506020925060ff191682840152151560051b8201018261021a565b634e487b7160e01b84526022600452602484fd5b91607f16916101fd565b346100e95760203660031901126100e9576001600160a01b036103166106a4565b1660005260006020526020604060002054604051908152f35b346100e95760403660031901126100e9576103486106a4565b602435906001600160a01b031680156103c557600254918083018093116103af576020926002557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600093849284845283825260408420818154019055604051908152a380f35b634e487b7160e01b600052601160045260246000fd5b63ec442f0560e01b600052600060045260246000fd5b346100e95760003660031901126100e957602060405160128152f35b346100e95760603660031901126100e9576104106106a4565b6104186106ba565b6001600160a01b0382166000818152600160209081526040808320338452909152902054909260443592916000198110610458575b5061011493506106d0565b8381106104c75784156104b157331561049b57610114946000526001602052604060002060018060a01b033316600052602052836040600020910390558461044d565b634a1406b160e11b600052600060045260246000fd5b63e602df0560e01b600052600060045260246000fd5b8390637dc7a0d960e11b6000523360045260245260445260646000fd5b346100e95760003660031901126100e9576020600254604051908152f35b346100e95760403660031901126100e95761051b6106a4565b6024359033156104b1576001600160a01b031690811561049b57336000526001602052604060002082600052602052806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346100e95760003660031901126100e95760006003548060011c90600181168015610651575b6020831081146102d7578285529081156102bb57506001146105fa5750819003601f01601f191681019067ffffffffffffffff82118183101761024e5761024a8291826040528261065b565b905060036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b6000905b82821061063b5750602091508201018261021a565b6001816020925483858801015201910190610626565b91607f16916105ae565b91909160208152825180602083015260005b81811061068e575060409293506000838284010152601f8019910116010190565b806020809287010151604082860101520161066d565b600435906001600160a01b03821682036100e957565b602435906001600160a01b03821682036100e957565b6001600160a01b03169081156101be576001600160a01b03169182156103c557600082815280602052604081205482811061074f5791604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815280845220818154019055604051908152a3565b916064928463391434e360e21b8452600452602452604452fdfea2646970667358221220244a0a20c657fff7862703acb5cfe7ea7d2b0fc51d1a41b0a338be948dd8f1cf64736f6c634300081a0033"; + +type ERC20MockConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: ERC20MockConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class ERC20Mock__factory extends ContractFactory { + constructor(...args: ERC20MockConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + name_: string, + symbol_: string, + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(name_, symbol_, overrides || {}); + } + override deploy( + name_: string, + symbol_: string, + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy(name_, symbol_, overrides || {}) as Promise< + ERC20Mock & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): ERC20Mock__factory { + return super.connect(runner) as ERC20Mock__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): ERC20MockInterface { + return new Interface(_abi) as ERC20MockInterface; + } + static connect(address: string, runner?: ContractRunner | null): ERC20Mock { + return new Contract(address, _abi, runner) as unknown as ERC20Mock; + } +} diff --git a/typechain-types/factories/contracts/testing/mock/ZRC20Mock.sol/IZRC20Mock__factory.ts b/typechain-types/factories/contracts/testing/mock/ZRC20Mock.sol/IZRC20Mock__factory.ts new file mode 100644 index 00000000..51996bef --- /dev/null +++ b/typechain-types/factories/contracts/testing/mock/ZRC20Mock.sol/IZRC20Mock__factory.ts @@ -0,0 +1,352 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IZRC20Mock, + IZRC20MockInterface, +} from "../../../../../contracts/testing/mock/ZRC20Mock.sol/IZRC20Mock"; + +const _abi = [ + { + inputs: [], + name: "GAS_LIMIT", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "PROTOCOL_FLAT_FEE", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "burn", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "burn", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "deposit", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "mint", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "newName", + type: "string", + }, + ], + name: "setName", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "newSymbol", + type: "string", + }, + ], + name: "setSymbol", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "to", + type: "bytes", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "withdraw", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "withdrawGasFee", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "gasLimit", + type: "uint256", + }, + ], + name: "withdrawGasFeeWithGasLimit", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +export class IZRC20Mock__factory { + static readonly abi = _abi; + static createInterface(): IZRC20MockInterface { + return new Interface(_abi) as IZRC20MockInterface; + } + static connect(address: string, runner?: ContractRunner | null): IZRC20Mock { + return new Contract(address, _abi, runner) as unknown as IZRC20Mock; + } +} diff --git a/typechain-types/factories/contracts/testing/mock/ZRC20Mock.sol/ZRC20Mock__factory.ts b/typechain-types/factories/contracts/testing/mock/ZRC20Mock.sol/ZRC20Mock__factory.ts new file mode 100644 index 00000000..ba755827 --- /dev/null +++ b/typechain-types/factories/contracts/testing/mock/ZRC20Mock.sol/ZRC20Mock__factory.ts @@ -0,0 +1,844 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + BigNumberish, + AddressLike, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { NonPayableOverrides } from "../../../../../common"; +import type { + ZRC20Mock, + ZRC20MockInterface, +} from "../../../../../contracts/testing/mock/ZRC20Mock.sol/ZRC20Mock"; + +const _abi = [ + { + inputs: [ + { + internalType: "string", + name: "name_", + type: "string", + }, + { + internalType: "string", + name: "symbol_", + type: "string", + }, + { + internalType: "uint8", + name: "decimals_", + type: "uint8", + }, + { + internalType: "uint256", + name: "chainid_", + type: "uint256", + }, + { + internalType: "enum CoinType", + name: "coinType_", + type: "uint8", + }, + { + internalType: "uint256", + name: "gasLimit_", + type: "uint256", + }, + { + internalType: "address", + name: "systemContractAddress_", + type: "address", + }, + { + internalType: "address", + name: "gatewayAddress_", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [], + name: "CallerIsNotFungibleModule", + type: "error", + }, + { + inputs: [], + name: "GasFeeTransferFailed", + type: "error", + }, + { + inputs: [], + name: "InvalidSender", + type: "error", + }, + { + inputs: [], + name: "LowAllowance", + type: "error", + }, + { + inputs: [], + name: "LowBalance", + type: "error", + }, + { + inputs: [], + name: "ZeroAddress", + type: "error", + }, + { + inputs: [], + name: "ZeroGasCoin", + type: "error", + }, + { + inputs: [], + name: "ZeroGasPrice", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes", + name: "from", + type: "bytes", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Deposit", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "gasLimit", + type: "uint256", + }, + ], + name: "UpdatedGasLimit", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "gateway", + type: "address", + }, + ], + name: "UpdatedGateway", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "protocolFlatFee", + type: "uint256", + }, + ], + name: "UpdatedProtocolFlatFee", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "systemContract", + type: "address", + }, + ], + name: "UpdatedSystemContract", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: false, + internalType: "bytes", + name: "to", + type: "bytes", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "gasFee", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "protocolFlatFee", + type: "uint256", + }, + ], + name: "Withdrawal", + type: "event", + }, + { + inputs: [], + name: "CHAIN_ID", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "COIN_TYPE", + outputs: [ + { + internalType: "enum CoinType", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "FUNGIBLE_MODULE_ADDRESS", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "GAS_LIMIT", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "PROTOCOL_FLAT_FEE", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "SYSTEM_CONTRACT_ADDRESS", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "burn", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "burn", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "deposit", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "gatewayAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "mint", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "newName", + type: "string", + }, + ], + name: "setName", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "newSymbol", + type: "string", + }, + ], + name: "setSymbol", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "gasLimit_", + type: "uint256", + }, + ], + name: "updateGasLimit", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + ], + name: "updateGatewayAddress", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "protocolFlatFee_", + type: "uint256", + }, + ], + name: "updateProtocolFlatFee", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + ], + name: "updateSystemContractAddress", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "to", + type: "bytes", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "withdraw", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "withdrawGasFee", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "gasLimit", + type: "uint256", + }, + ], + name: "withdrawGasFeeWithGasLimit", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +const _bytecode = + "0x60c06040523461041a576118e5803803806100198161041f565b92833981016101008282031261041a5781516001600160401b03811161041a5781610045918401610444565b602083015190916001600160401b03821161041a57610065918401610444565b9160408101519160ff831680930361041a576060820151936080830151600381101561041a5760a0840151916100a960e06100a260c088016104af565b96016104af565b946001600160a01b03169384158015610409575b6103f8578051906001600160401b0382116102f55760065490600182811c921680156103ee575b60208310146102d55781601f84931161037e575b50602090601f83116001146103165760009261030b575b50508160011b916000199060031b1c1916176006555b8051906001600160401b0382116102f55760075490600182811c921680156102eb575b60208310146102d55781601f849311610265575b50602090601f83116001146101fd576000926101f2575b50508160011b916000199060031b1c1916176007555b6008549560805260a05260015560018060a01b03196000541617600055610100600160a81b039060081b169160018060a81b031916171760085560405161142190816104c4823960805181818161018101528181610b7b01526110d8015260a051816109fa0152f35b015190503880610173565b600760009081528281209350601f198516905b81811061024d5750908460019594939210610234575b505050811b01600755610189565b015160001960f88460031b161c19169055388080610226565b92936020600181928786015181550195019301610210565b60076000529091507fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688601f840160051c810191602085106102cb575b90601f859493920160051c01905b8181106102bc575061015c565b600081558493506001016102af565b90915081906102a1565b634e487b7160e01b600052602260045260246000fd5b91607f1691610148565b634e487b7160e01b600052604160045260246000fd5b01519050388061010f565b600660009081528281209350601f198516905b818110610366575090846001959493921061034d575b505050811b01600655610125565b015160001960f88460031b161c1916905538808061033f565b92936020600181928786015181550195019301610329565b60066000529091507ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f601f840160051c810191602085106103e4575b90601f859493920160051c01905b8181106103d557506100f8565b600081558493506001016103c8565b90915081906103ba565b91607f16916100e4565b63d92e233d60e01b60005260046000fd5b506001600160a01b038616156100bd565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176102f557604052565b81601f8201121561041a578051906001600160401b0382116102f557610473601f8301601f191660200161041f565b928284526020838301011161041a5760005b82811061049a57505060206000918301015290565b80602080928401015182828701015201610485565b51906001600160a01b038216820361041a5756fe608080604052600436101561001357600080fd5b60003560e01c90816306fdde0314610e8157508063091d278814610e63578063095ea7b314610e3d57806318160ddd14610e1f57806323b872dd14610d9e578063313ce56714610d7d5780633ce4a5bc14610d4e57806340c10f1914610d2957806342966c6814610d0c57806347e7ef2414610bf65780634d8943bb14610bd857806370a0823114610b9e57806385e1f4d014610b635780638b851b9514610b3957806395d89b4114610a695780639dc29fac14610a42578063a3413d03146109e7578063a9059cbb146109b6578063b84c824614610851578063c47f0027146106d6578063c701262614610574578063c835d7cc146104eb578063ccc7759914610445578063d9eeebed1461042c578063dd62ed3e146103db578063eddeb1231461037b578063f2441b3214610352578063f687d12a146102e15763fc5fecd51461015e57600080fd5b346102dc5760203660031901126102dc57600054604051630be1554760e01b81527f00000000000000000000000000000000000000000000000000000000000000006004820181905290916001600160a01b031690602083602481855afa92831561028e576000936102ab575b506001600160a01b0383161561029a5760209060246040518094819363d7fd7afb60e01b835260048301525afa90811561028e57600091610259575b5080156102485761021e61022791600435906110a6565b600254906110b9565b604080516001600160a01b03939093168352602083019190915290f35b0390f35b630e661aed60e41b60005260046000fd5b906020823d602011610286575b8161027360209383610f82565b8101031261028357505138610207565b80fd5b3d9150610266565b6040513d6000823e3d90fd5b633c7ff9cb60e11b60005260046000fd5b6102ce91935060203d6020116102d5575b6102c68183610f82565b810190611087565b91386101cb565b503d6102bc565b600080fd5b346102dc5760203660031901126102dc5760043573735b14bb79463307aacbed86daf3322b1e6226ab3303610341576020817fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a92600155604051908152a1005b632b2add3d60e01b60005260046000fd5b346102dc5760003660031901126102dc576000546040516001600160a01b039091168152602090f35b346102dc5760203660031901126102dc5760043573735b14bb79463307aacbed86daf3322b1e6226ab3303610341576020817fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f92600255604051908152a1005b346102dc5760403660031901126102dc576103f4610f56565b6103fc610f6c565b6001600160a01b039182166000908152600460209081526040808320949093168252928352819020549051908152f35b346102dc5760003660031901126102dc576102276110c6565b346102dc5760203660031901126102dc5761045e610f56565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610341576001600160a01b0381169081156104da5760088054610100600160a81b03191691811b610100600160a81b03169190911790556040519081527f88815d964e380677e86d817e7d65dea59cb7b4c3b5b7a0c8ec7ea4a74f90a38790602090a1005b63d92e233d60e01b60005260046000fd5b346102dc5760203660031901126102dc57610504610f56565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610341576001600160a01b031680156104da576020817fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae926bffffffffffffffffffffffff60a01b6000541617600055604051908152a1005b346102dc5760403660031901126102dc5760043567ffffffffffffffff81116102dc57366023820112156102dc576105b6903690602481600401359101610fa4565b60206024359160006105c66110c6565b93906064604051809481936323b872dd60e01b835233600484015273735b14bb79463307aacbed86daf3322b1e6226ab602484015288604484015260018060a01b03165af190811561028e57600091610697575b5015610686577f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d9559161064c8433611331565b6002549061066560405193608085526080850190610f15565b946020840152604083015260608201528033930390a2602060405160018152f35b63053e6b6b60e11b60005260046000fd5b6020813d6020116106ce575b816106b060209383610f82565b810103126106ca575190811515820361028357508461061a565b5080fd5b3d91506106a3565b346102dc576106e436610feb565b73735b14bb79463307aacbed86daf3322b1e6226ab330361034157805167ffffffffffffffff811161083b5761071b60065461102a565b601f81116107ce575b50602091601f821160011461076257918192600092610757575b5050600019600383901b1c191660019190911b17600655005b01519050828061073e565b601f1982169260066000526000805160206113cc8339815191529160005b8581106107b65750836001951061079d575b505050811b01600655005b015160001960f88460031b161c19169055828080610792565b91926020600181928685015181550194019201610780565b6006600052601f820160051c6000805160206113cc833981519152019060208310610825575b601f0160051c6000805160206113cc83398151915201905b8181106108195750610724565b6000815560010161080c565b6000805160206113cc83398151915291506107f4565b634e487b7160e01b600052604160045260246000fd5b346102dc5761085f36610feb565b73735b14bb79463307aacbed86daf3322b1e6226ab330361034157805167ffffffffffffffff811161083b5761089660075461102a565b601f8111610949575b50602091601f82116001146108dd579181926000926108d2575b5050600019600383901b1c191660019190911b17600755005b0151905082806108b9565b601f1982169260076000526000805160206113ac8339815191529160005b85811061093157508360019510610918575b505050811b01600755005b015160001960f88460031b161c1916905582808061090d565b919260206001819286850151815501940192016108fb565b6007600052601f820160051c6000805160206113ac8339815191520190602083106109a0575b601f0160051c6000805160206113ac83398151915201905b818110610994575061089f565b60008155600101610987565b6000805160206113ac833981519152915061096f565b346102dc5760403660031901126102dc576109dc6109d2610f56565b6024359033611230565b602060405160018152f35b346102dc5760003660031901126102dc577f00000000000000000000000000000000000000000000000000000000000000006040516003821015610a2c576020918152f35b634e487b7160e01b600052602160045260246000fd5b346102dc5760403660031901126102dc57610a67610a5e610f56565b60243590611331565b005b346102dc5760003660031901126102dc576040516000600754610a8b8161102a565b8084529060018116908115610b155750600114610ac7575b61024483610ab381850382610f82565b604051918291602083526020830190610f15565b91905060076000526000805160206113ac833981519152916000905b808210610afb57509091508101602001610ab3610aa3565b919260018160209254838588010152019101909291610ae3565b60ff191660208086019190915291151560051b84019091019150610ab39050610aa3565b346102dc5760003660031901126102dc5760088054604051911c6001600160a01b03168152602090f35b346102dc5760003660031901126102dc5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346102dc5760203660031901126102dc576001600160a01b03610bbf610f56565b1660005260036020526020604060002054604051908152f35b346102dc5760003660031901126102dc576020600254604051908152f35b346102dc5760403660031901126102dc57610c0f610f56565b6024359073735b14bb79463307aacbed86daf3322b1e6226ab33141580610cf7575b80610cdf575b610cce57610cae81610c6a847f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab3946112d6565b60405173735b14bb79463307aacbed86daf3322b1e6226ab60601b60208201526014815290610c9a603483610f82565b604051928392604084526040840190610f15565b60208301959095526001600160a01b0316930390a2602060405160018152f35b636edaef2f60e11b60005260046000fd5b506008805433911c6001600160a01b03161415610c37565b506000546001600160a01b0316331415610c31565b346102dc5760203660031901126102dc576109dc60043533611331565b346102dc5760403660031901126102dc57610a67610d45610f56565b602435906112d6565b346102dc5760003660031901126102dc57602060405173735b14bb79463307aacbed86daf3322b1e6226ab8152f35b346102dc5760003660031901126102dc57602060ff60085416604051908152f35b346102dc5760603660031901126102dc57610db7610f56565b610dbf610f6c565b90610dce604435809383611230565b6001600160a01b0381166000908152600460209081526040808320338452909152902054828110610e0e576109dc92610e0691611064565b9033906111c9565b6310bad14760e01b60005260046000fd5b346102dc5760003660031901126102dc576020600554604051908152f35b346102dc5760403660031901126102dc576109dc610e59610f56565b60243590336111c9565b346102dc5760003660031901126102dc576020600154604051908152f35b346102dc5760003660031901126102dc576000600654610ea08161102a565b8084529060018116908115610b155750600114610ec75761024483610ab381850382610f82565b91905060066000526000805160206113cc833981519152916000905b808210610efb57509091508101602001610ab3610aa3565b919260018160209254838588010152019101909291610ee3565b919082519283825260005b848110610f41575050826000602080949584010152601f8019910116010190565b80602080928401015182828601015201610f20565b600435906001600160a01b03821682036102dc57565b602435906001600160a01b03821682036102dc57565b90601f8019910116810190811067ffffffffffffffff82111761083b57604052565b92919267ffffffffffffffff821161083b5760405191610fce601f8201601f191660200184610f82565b8294818452818301116102dc578281602093846000960137010152565b60206003198201126102dc576004359067ffffffffffffffff82116102dc57806023830112156102dc5781602461102793600401359101610fa4565b90565b90600182811c9216801561105a575b602083101461104457565b634e487b7160e01b600052602260045260246000fd5b91607f1691611039565b9190820391821161107157565b634e487b7160e01b600052601160045260246000fd5b908160209103126102dc57516001600160a01b03811681036102dc5790565b8181029291811591840414171561107157565b9190820180921161107157565b600054604051630be1554760e01b81527f0000000000000000000000000000000000000000000000000000000000000000600482018190529092916001600160a01b031690602084602481855afa93841561028e576000946111a8575b506001600160a01b0384161561029a5760209060246040518094819363d7fd7afb60e01b835260048301525afa90811561028e57600091611176575b5080156102485761021e61102791600154906110a6565b906020823d6020116111a0575b8161119060209383610f82565b810103126102835750513861115f565b3d9150611183565b6111c291945060203d6020116102d5576102c68183610f82565b9238611123565b6001600160a01b03169081156104da576001600160a01b03169182156104da5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260048252604060002085600052825280604060002055604051908152a3565b6001600160a01b03169081156104da576001600160a01b03169182156104da578160005260036020526040600020548181106112c557816112947fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93602093611064565b8460005260038352604060002055846000526003825260406000206112ba8282546110b9565b9055604051908152a3565b63fe382aa760e01b60005260046000fd5b6001600160a01b03169081156104da577fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020826113186000946005546110b9565b60055584845260038252604084206112ba8282546110b9565b6001600160a01b031680156104da57806000526003602052604060002054918083106112c5576020816113877fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93600096611064565b84865260038352604086205561139f81600554611064565b600555604051908152a356fea66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688f652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3fa2646970667358221220143426ebea1dd98ec97cac7a50bf56d05abc5cfb38e424354c050953db17fb6764736f6c634300081a0033"; + +type ZRC20MockConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: ZRC20MockConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class ZRC20Mock__factory extends ContractFactory { + constructor(...args: ZRC20MockConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + name_: string, + symbol_: string, + decimals_: BigNumberish, + chainid_: BigNumberish, + coinType_: BigNumberish, + gasLimit_: BigNumberish, + systemContractAddress_: AddressLike, + gatewayAddress_: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction( + name_, + symbol_, + decimals_, + chainid_, + coinType_, + gasLimit_, + systemContractAddress_, + gatewayAddress_, + overrides || {} + ); + } + override deploy( + name_: string, + symbol_: string, + decimals_: BigNumberish, + chainid_: BigNumberish, + coinType_: BigNumberish, + gasLimit_: BigNumberish, + systemContractAddress_: AddressLike, + gatewayAddress_: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy( + name_, + symbol_, + decimals_, + chainid_, + coinType_, + gasLimit_, + systemContractAddress_, + gatewayAddress_, + overrides || {} + ) as Promise< + ZRC20Mock & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): ZRC20Mock__factory { + return super.connect(runner) as ZRC20Mock__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): ZRC20MockInterface { + return new Interface(_abi) as ZRC20MockInterface; + } + static connect(address: string, runner?: ContractRunner | null): ZRC20Mock { + return new Contract(address, _abi, runner) as unknown as ZRC20Mock; + } +} diff --git a/typechain-types/factories/contracts/testing/mock/ZRC20Mock.sol/index.ts b/typechain-types/factories/contracts/testing/mock/ZRC20Mock.sol/index.ts new file mode 100644 index 00000000..d06f49b4 --- /dev/null +++ b/typechain-types/factories/contracts/testing/mock/ZRC20Mock.sol/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IZRC20Mock__factory } from "./IZRC20Mock__factory"; +export { ZRC20Mock__factory } from "./ZRC20Mock__factory"; diff --git a/typechain-types/factories/contracts/testing/mock/index.ts b/typechain-types/factories/contracts/testing/mock/index.ts new file mode 100644 index 00000000..1c164163 --- /dev/null +++ b/typechain-types/factories/contracts/testing/mock/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as zrc20MockSol from "./ZRC20Mock.sol"; +export { ERC20Mock__factory } from "./ERC20Mock__factory"; diff --git a/typechain-types/factories/contracts/testing/mockGateway/NodeLogicMock__factory.ts b/typechain-types/factories/contracts/testing/mockGateway/NodeLogicMock__factory.ts new file mode 100644 index 00000000..f8234771 --- /dev/null +++ b/typechain-types/factories/contracts/testing/mockGateway/NodeLogicMock__factory.ts @@ -0,0 +1,1340 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../../common"; +import type { + NodeLogicMock, + NodeLogicMockInterface, +} from "../../../../contracts/testing/mockGateway/NodeLogicMock"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "", + type: "string", + }, + ], + name: "log", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "", + type: "address", + }, + ], + name: "log_address", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256[]", + name: "val", + type: "uint256[]", + }, + ], + name: "log_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "int256[]", + name: "val", + type: "int256[]", + }, + ], + name: "log_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address[]", + name: "val", + type: "address[]", + }, + ], + name: "log_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + name: "log_bytes", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + name: "log_bytes32", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "int256", + name: "", + type: "int256", + }, + ], + name: "log_int", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "address", + name: "val", + type: "address", + }, + ], + name: "log_named_address", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "uint256[]", + name: "val", + type: "uint256[]", + }, + ], + name: "log_named_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "int256[]", + name: "val", + type: "int256[]", + }, + ], + name: "log_named_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "address[]", + name: "val", + type: "address[]", + }, + ], + name: "log_named_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "bytes", + name: "val", + type: "bytes", + }, + ], + name: "log_named_bytes", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "bytes32", + name: "val", + type: "bytes32", + }, + ], + name: "log_named_bytes32", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "int256", + name: "val", + type: "int256", + }, + { + indexed: false, + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "log_named_decimal_int", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "uint256", + name: "val", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "log_named_decimal_uint", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "int256", + name: "val", + type: "int256", + }, + ], + name: "log_named_int", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "string", + name: "val", + type: "string", + }, + ], + name: "log_named_string", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "uint256", + name: "val", + type: "uint256", + }, + ], + name: "log_named_uint", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "", + type: "string", + }, + ], + name: "log_string", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "log_uint", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + name: "logs", + type: "event", + }, + { + inputs: [], + name: "IS_TEST", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "chainIdZeta", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "erc20ToZRC20s", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "excludeArtifacts", + outputs: [ + { + internalType: "string[]", + name: "excludedArtifacts_", + type: "string[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "excludeContracts", + outputs: [ + { + internalType: "address[]", + name: "excludedContracts_", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "excludeSelectors", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "bytes4[]", + name: "selectors", + type: "bytes4[]", + }, + ], + internalType: "struct StdInvariant.FuzzSelector[]", + name: "excludedSelectors_", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "excludeSenders", + outputs: [ + { + internalType: "address[]", + name: "excludedSenders_", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "failed", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "gasZRC20s", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "gatewayEVMs", + outputs: [ + { + internalType: "contract GatewayEVM", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "gatewayZEVM", + outputs: [ + { + internalType: "contract GatewayZEVM", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + ], + name: "getRuntimeCode", + outputs: [ + { + internalType: "bytes", + name: "code", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "receiver", + type: "address", + }, + { + internalType: "bytes", + name: "payload", + type: "bytes", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "handleEVMCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "receiver", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "handleEVMDeposit", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "receiver", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "bytes", + name: "payload", + type: "bytes", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "handleEVMDepositAndCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "bytes", + name: "receiver", + type: "bytes", + }, + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "bytes", + name: "message", + type: "bytes", + }, + { + components: [ + { + internalType: "uint256", + name: "gasLimit", + type: "uint256", + }, + { + internalType: "bool", + name: "isArbitraryCall", + type: "bool", + }, + ], + internalType: "struct CallOptions", + name: "callOptions", + type: "tuple", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "handleZEVMCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "bytes", + name: "receiver", + type: "bytes", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "handleZEVMWithdraw", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "bytes", + name: "receiver", + type: "bytes", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "bytes", + name: "message", + type: "bytes", + }, + { + components: [ + { + internalType: "uint256", + name: "gasLimit", + type: "uint256", + }, + { + internalType: "bool", + name: "isArbitraryCall", + type: "bool", + }, + ], + internalType: "struct CallOptions", + name: "callOptions", + type: "tuple", + }, + { + components: [ + { + internalType: "address", + name: "revertAddress", + type: "address", + }, + { + internalType: "bool", + name: "callOnRevert", + type: "bool", + }, + { + internalType: "address", + name: "abortAddress", + type: "address", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + { + internalType: "uint256", + name: "onRevertGasLimit", + type: "uint256", + }, + ], + internalType: "struct RevertOptions", + name: "revertOptions", + type: "tuple", + }, + ], + name: "handleZEVMWithdrawAndCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "address", + name: "zrc20", + type: "address", + }, + ], + name: "setAssetToZRC20", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "_chainIdZeta", + type: "uint256", + }, + ], + name: "setChainIdZeta", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "address", + name: "gasZRC20", + type: "address", + }, + ], + name: "setGasZRC20", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "address", + name: "gatewayEVM", + type: "address", + }, + ], + name: "setGatewayEVM", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_gatewayZEVM", + type: "address", + }, + ], + name: "setGatewayZEVM", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_uniswapRouter", + type: "address", + }, + ], + name: "setUniswapRouter", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_wzeta", + type: "address", + }, + ], + name: "setWZETA", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "address", + name: "zrc20", + type: "address", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + ], + name: "setZRC20ToAsset", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "targetArtifactSelectors", + outputs: [ + { + components: [ + { + internalType: "string", + name: "artifact", + type: "string", + }, + { + internalType: "bytes4[]", + name: "selectors", + type: "bytes4[]", + }, + ], + internalType: "struct StdInvariant.FuzzArtifactSelector[]", + name: "targetedArtifactSelectors_", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetArtifacts", + outputs: [ + { + internalType: "string[]", + name: "targetedArtifacts_", + type: "string[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetContracts", + outputs: [ + { + internalType: "address[]", + name: "targetedContracts_", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetInterfaces", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "string[]", + name: "artifacts", + type: "string[]", + }, + ], + internalType: "struct StdInvariant.FuzzInterface[]", + name: "targetedInterfaces_", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetSelectors", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "bytes4[]", + name: "selectors", + type: "bytes4[]", + }, + ], + internalType: "struct StdInvariant.FuzzSelector[]", + name: "targetedSelectors_", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetSenders", + outputs: [ + { + internalType: "address[]", + name: "targetedSenders_", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "uniswapRouter", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "wzeta", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "zrc20ToErc20s", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +const _bytecode = + "0x60808060405234602f57600160ff19600c541617600c55600160ff19601f541617601f556192a490816100358239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c8062173d46146102465780631ed7831c146102415780632558fcec1461023c5780632ade38801461023757806332030cef14610232578063347f3a7c1461022d5780633e5e3c23146102285780633f7286f41461022357806366d9a9a01461021e578063735de9f7146102195780638016f22b146102145780638327f7901461020f57806385226c811461020a5780638c52853c14610205578063916a17c614610200578063944a3ba4146101fb578063acfdc212146101f6578063ad82a627146101f1578063b0464fdc146101ec578063b184b87c146101e7578063b1c388b8146101e2578063b5508aa9146101dd578063b8969900146101d8578063ba414fa6146101d3578063bea9849e146101ce578063cc5ad8b6146101c9578063ced6e793146101c4578063d333abf6146101bf578063d7b3eeaf146101ba578063e20c9f71146101b5578063ebcff1c6146101b0578063f51a071d146101ab578063f59e8a67146101a6578063f9a41697146101a15763fa7626d41461019c57600080fd5b6116ef565b6116b5565b61165c565b6115ec565b6112b0565b611230565b611217565b6111e3565b61117e565b611151565b611112565b6110ed565b6110ae565b611021565b611004565b610f68565b610ebc565b610e35565b610d99565b610d06565b610c5a565b610b95565b610b08565b610a33565b6108a8565b61087f565b6107d3565b610695565b610615565b6105c2565b610586565b6104a9565b610365565b6102d5565b61025b565b600091031261025657565b600080fd5b34610256576000366003190112610256576026546040516001600160a01b039091168152602090f35b906020808351928381520192019060005b8181106102a25750505090565b82516001600160a01b0316845260209384019390920191600101610295565b9060206102d2928181520190610284565b90565b346102565760003660031901126102565760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b818110610346576103428561033681870382610966565b604051918291826102c1565b0390f35b82546001600160a01b031684526020909301926001928301920161031f565b34610256576020366003190112610256576004356000526022602052602060018060a01b0360406000205416604051908152f35b60005b8381106103ac5750506000910152565b818101518382015260200161039c565b906020916103d581518092818552858086019101610399565b601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061041457505050505090565b9091929394603f198282030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b85010194019260005b82811061047e57505050505060208060019297019301930191939290610405565b909192939460208061049c600193605f1987820301895289516103bc565b970195019392910161045d565b3461025657600036600319011261025657601e546104c681611712565b906104d46040519283610966565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061051a576040518061034287826103e1565b6002602060019260405161052d8161090f565b848060a01b0386541681526105438587016117f3565b83820152815201920192019190610505565b6001600160a01b0381160361025657565b6064359061057382610555565b565b9060206102d29281815201906103bc565b34610256576020366003190112610256576103426105ae6004356105a981610555565b61184b565b6040519182916020835260208301906103bc565b34610256576040366003190112610256576106136024356004356105e582610555565b600052602260205260406000209060018060a01b03166bffffffffffffffffffffffff60a01b825416179055565b005b346102565760003660031901126102565760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b818110610676576103428561033681870382610966565b82546001600160a01b031684526020909301926001928301920161065f565b346102565760003660031901126102565760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b8181106106f6576103428561033681870382610966565b82546001600160a01b03168452602090930192600192830192016106df565b906020808351928381520192019060005b8181106107335750505090565b82516001600160e01b031916845260209384019390920191600101610726565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061078657505050505090565b90919293946020806107c4600193603f19868203018752895190836107b483516040845260408401906103bc565b9201519084818403910152610715565b97019301930191939290610777565b3461025657600036600319011261025657601b546107f081611712565b906107fe6040519283610966565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b83831061084457604051806103428782610753565b600260206001926040516108578161090f565b61086086611729565b815261086d858701611883565b8382015281520192019201919061082f565b34610256576000366003190112610256576025546040516001600160a01b039091168152602090f35b34610256576040366003190112610256576106136024356004356108cb82610555565b600090815260216020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761092a57604052565b6108f9565b61010081019081106001600160401b0382111761092a57604052565b606081019081106001600160401b0382111761092a57604052565b90601f801991011681019081106001600160401b0382111761092a57604052565b60405190610573602083610966565b60405190610573606083610966565b60405190610573608083610966565b6040519061057360c083610966565b6001600160401b03811161092a57601f01601f191660200190565b81601f82011215610256578035906109f5826109c3565b92610a036040519485610966565b8284526020838301011161025657816000926020809301838601378301015290565b908160a09103126102565790565b346102565760a036600319011261025657600435610a5081610555565b6024356001600160401b03811161025657610a6f9036906004016109de565b90606435604435610a7f82610555565b608435936001600160401b03851161025657610aa2610613953690600401610a25565b93611f79565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610adb57505050505090565b9091929394602080610af9600193603f1986820301875289516103bc565b97019301930191939290610acc565b3461025657600036600319011261025657601a54610b2581611712565b90610b336040519283610966565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310610b7857604051806103428782610aa8565b600160208192610b8785611729565b815201920192019190610b63565b34610256576040366003190112610256576020602435600435610bb782610555565b60009081526023835260408082206001600160a01b03938416835260205290205b5416604051908152f35b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610c1557505050505090565b9091929394602080610c4b600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610715565b97019301930191939290610c06565b3461025657600036600319011261025657601d54610c7781611712565b90610c856040519283610966565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b838310610ccb57604051806103428782610be2565b60026020600192604051610cde8161090f565b848060a01b038654168152610cf4858701611883565b83820152815201920192019190610cb6565b3461025657602036600319011261025657600435610d2381610555565b601f8054610100600160a81b03191660089290921b610100600160a81b0316919091179055005b9181601f84011215610256578235916001600160401b038311610256576020838186019501011161025657565b60409060a31901126102565760a490565b604090608319011261025657608490565b346102565761010036600319011261025657600435610db781610555565b6024356001600160401b03811161025657610dd69036906004016109de565b90604435610de2610566565b6084356001600160401b03811161025657610e01903690600401610d4a565b91610e0b36610d77565b9360e435966001600160401b03881161025657610e2f610613983690600401610a25565b96612b04565b346102565760e036600319011261025657602435600435610e5582610555565b604435610e6181610555565b60643590608435610e7181610555565b60a4356001600160401b03811161025657610e90903690600401610d4a565b93909260c435966001600160401b03881161025657610eb6610613983690600401610a25565b96613476565b3461025657600036600319011261025657601c54610ed981611712565b90610ee76040519283610966565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b838310610f2d57604051806103428782610be2565b60026020600192604051610f408161090f565b848060a01b038654168152610f56858701611883565b83820152815201920192019190610f18565b346102565760e036600319011261025657600435610f8581610555565b6024356001600160401b03811161025657610fa49036906004016109de565b90604435610fb181610555565b6064356001600160401b03811161025657610fd0903690600401610d4a565b90610fda36610d88565b9260c435956001600160401b03871161025657610ffe610613973690600401610a25565b956138d4565b346102565760003660031901126102565760208054604051908152f35b346102565760003660031901126102565760195461103e81611712565b9061104c6040519283610966565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b83831061109157604051806103428782610aa8565b6001602081926110a085611729565b81520192019201919061107c565b34610256576020366003190112610256576004356110cb81610555565b602680546001600160a01b0319166001600160a01b0392909216919091179055005b34610256576000366003190112610256576020611108613d3b565b6040519015158152f35b346102565760203660031901126102565760043561112f81610555565b602580546001600160a01b0319166001600160a01b0392909216919091179055005b3461025657600036600319011261025657601f5460405160089190911c6001600160a01b03168152602090f35b346102565760c03660031901126102565760243560043561119e82610555565b6044356111aa81610555565b606435608435916111ba83610555565b60a435946001600160401b038611610256576111dd610613963690600401610a25565b94613e3f565b34610256576020366003190112610256576004356000526021602052602060018060a01b0360406000205416604051908152f35b3461025657602036600319011261025657600435602055005b346102565760003660031901126102565760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b818110611291576103428561033681870382610966565b82546001600160a01b031684526020909301926001928301920161127a565b346102565760a0366003190112610256576004356024356112d081610555565b604435916112dd83610555565b6064356001600160401b038111610256576112fc903690600401610d4a565b6084356001600160401b0381116102565761131b903690600401610a25565b601f549095906004906020906113449060081c6001600160a01b03165b6001600160a01b031690565b6040516313917f7760e11b815292839182905afa90811561151d576000916115bd575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d576115a8575b50601f546113d79060081c6001600160a01b0316611338565b604051606087901b6001600160601b03191660208201529261140684603481015b03601f198101865285610966565b61140e610996565b9384526001600160a01b038716602085015285604085015261144a61143d876000526022602052604060002090565b546001600160a01b031690565b90823b156102565760009461147786926040519889978896879563bcf7f32b60e01b875260048701614072565b03926216e360f1908161158d575b5061152257611492611d28565b60205460405163348051d760e11b8152600481019190915290919060008160248160008051602061924f8339815191525afa801561151d57610613956114ef6114ea866040946114f5966000916114fa575b5061413d565b6141c7565b016141bd565b616213565b61151791503d806000833e61150f8183610966565b810190611b3b565b386114e4565b611afa565b505060205460405163348051d760e11b81526004810191909152905060008160248160008051602061924f8339815191525afa90811561151d57610613916114ea91600091611572575b506140b9565b61158791503d806000833e61150f8183610966565b3861156c565b8061159c60006115a293610966565b8061024b565b38611485565b8061159c60006115b793610966565b386113be565b6115df915060203d6020116115e5575b6115d78183610966565b810190611c26565b38611367565b503d6115cd565b3461025657604036600319011261025657602060243560043561160e82610555565b60009081526024835260408082206001600160a01b0393841683526020529020610bd8565b6060906003190112610256576004359060243561164f81610555565b906044356102d281610555565b346102565761061361169661167036611633565b9291600052602360205260406000209060018060a01b0316600052602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b34610256576106136116966116c936611633565b9291600052602460205260406000209060018060a01b0316600052602052604060002090565b3461025657600036600319011261025657602060ff601f54166040519015158152f35b6001600160401b03811161092a5760051b60200190565b9060405191600081548060011c92600182169182156117e9575b6020851083146117d55784875286939260208501929181156117b85750600114611776575b505061057392500383610966565b611787919250600052602060002090565b906000915b8483106117a157506105739350013880611768565b80548284015286935060209092019160010161178c565b9150506105739491925060ff19168252151560051b013880611768565b634e487b7160e01b84526022600452602484fd5b93607f1693611743565b9081546117ff81611712565b9261180d6040519485610966565b818452602084019060005260206000206000915b83831061182e5750505050565b60016020819261183d85611729565b815201920192019190611821565b90813b6000611859826109c3565b6118666040519182610966565b828152611872836109c3565b602082019190601f1901368337943c565b604051815480825290929183906118a36020830191600052602060002090565b926000905b8060078301106119eb576105739454918181106119cc575b8181106119ad575b81811061198e575b81811061196f575b818110611950575b818110611931575b818110611913575b106118fe575b500383610966565b6001600160e01b0319168152602001386118f6565b602083811b6001600160e01b031916855290936001910193016118f0565b604083901b6001600160e01b03191684529260019060200193016118e8565b606083901b6001600160e01b03191684529260019060200193016118e0565b608083901b6001600160e01b03191684529260019060200193016118d8565b60a083901b6001600160e01b03191684529260019060200193016118d0565b60c083901b6001600160e01b03191684529260019060200193016118c8565b6001600160e01b031960e084901b1684529260019060200193016118c0565b916008919350610100600191611a9a8754611a11838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b0194019201859293916118a8565b60405190611ab58261092f565b606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b90816020910312610256575190565b6040513d6000823e3d90fd5b90929192611b13816109c3565b91611b216040519384610966565b829482845282820111610256576020610573930190610399565b602081830312610256578051906001600160401b03821161025657019080601f830112156102565781516102d292602001611b06565b90610573601b602960405180956802db1b430b4b724b2160bd1b6020830152611ba38151809260208686019101610399565b81017f5d205b4552524f525d2047617465776179206e6f7420666f756e640000000000838201520301600419810185520183610966565b9060208251920151916bffffffffffffffffffffffff1983169260148210611c00575050565b6001600160601b031960149290920360031b82901b16169150565b519061057382610555565b9081602091031261025657516102d281610555565b90610573601b602960405180956802db1b430b4b724b2160bd1b6020830152611c6d8151809260208686019101610399565b81017f5d205b4552524f525d20437573746f6479206e6f7420666f756e640000000000838201520301600419810185520183610966565b906105736033602960405180956802db1b430b4b724b2160bd1b6020830152611cd68151809260208686019101610399565b81017f5d205b494e464f5d2045524332302f5a45544120776974686472617720636f6d8382015272706c65746564207375636365737366756c6c7960681b604982015203016013810185520183610966565b3d15611d53573d90611d39826109c3565b91611d476040519384610966565b82523d6000602084013e565b606090565b60266105739193929360296040519586926802db1b430b4b724b2160bd1b6020850152611d8e8151809260208688019101610399565b83017f5d205b4552524f525d2045524332302f5a4554412077697468647261772066618382015265034b632b21d160d51b6049820152611dd8825180936020604f85019101610399565b01010301601f198101845283610966565b8015150361025657565b91909160a081840312610256576040519060a082018281106001600160401b0382111761092a5760405281938135611e2a81610555565b83526020820135611e3a81611de9565b60208401526040820135611e4d81610555565b60408401526060820135916001600160401b03831161025657611e7660809392849383016109de565b60608501520135910152565b906105736023602960405180956802db1b430b4b724b2160bd1b6020830152611eb48151809260208686019101610399565b81017f5d205b4552524f525d2047617320746f6b656e207472616e736665722066616983820152621b195960ea1b604982015203016003810185520183610966565b906105736032602960405180956802db1b430b4b724b2160bd1b6020830152611f288151809260208686019101610399565b81017f5d205b494e464f5d2047617320746f6b656e207472616e7366657220636f6d7083820152716c65746564207375636365737366756c6c7960701b604982015203016012810185520183610966565b9293919093611f86611aa8565b60405163085e1f4d60e41b81529095906001600160a01b03831690602081600481855afa90811561151d57611fd59161143d91600091612657575b50808a526000526021602052604060002090565b6001600160a01b0390811660208901818152929190611ff390611338565b16156125df5761203761203161204f9261201e61133861143d8d516000526022602052604060002090565b1460408b0190815294611bda565b611bda565b60601c90565b6001600160a01b031660608901908152925b51151590565b1561223f57516004919060209061206e906001600160a01b0316611338565b604051635b11259160e01b815293849182905afa91821561151d5760009261221e575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af191821561151d57600080866121068295839561211f9861220a575b50516001600160a01b031690565b5af1612110611d28565b50151560c08701908152612049565b15612190575050915160405163348051d760e11b815260048101919091529150600090508160248160008051602061924f8339815191525afa90811561151d57610573916114ea91600091612175575b50611ef6565b61218a91503d806000833e61150f8183610966565b3861216f565b845160405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa95861561151d576121e16114ea610573986121ea946000916121ef575b50611e82565b51933690611df3565b614ddf565b61220491503d806000833e61150f8183610966565b386121db565b8061159c8661221893610966565b386120f8565b61223891925060203d6020116115e5576115d78183610966565b9038612091565b80516004919060209061225a906001600160a01b0316611338565b60405163dda79b7560e01b815293849182905afa91821561151d576000926125be575b506001600160a01b03919091166080880181815291906122ad906122a090611338565b1560a08a01908152612049565b6125465751600491906020906122cb906001600160a01b0316611338565b604051635b11259160e01b815293849182905afa91821561151d57600092612525575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af191821561151d576113386123629261133892612370956125165750516001600160a01b031690565b91516001600160a01b031690565b6123a361143d8461238c8a516000526024602052604060002090565b9060018060a01b0316600052602052604060002090565b90823b1561025657604051636ce5768960e11b81526001600160a01b0391821660048201529116602482015260448101849052906000908290606490829084905af19081612501575b5061247f5761242e946123fd611d28565b90600060c08201528160e0820152600081516040518099819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d576114ea6121ea936121e1926105739a600091612464575b50611d58565b61247991503d806000833e61150f8183610966565b3861245e565b5050505060008161249660c06124b6940160019052565b516040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea916000916124e6575b50611ca4565b6124fb91503d806000833e61150f8183610966565b386124e0565b8061159c600061251093610966565b386123ec565b8061159c600061221893610966565b61253f91925060203d6020116115e5576115d78183610966565b90386122ee565b50505050505050600061257391516040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea916000916125a3575b50611c3b565b6125b891503d806000833e61150f8183610966565b3861259d565b6125d891925060203d6020116115e5576115d78183610966565b903861227d565b50505050505050600061260c91516040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea9160009161263c575b50611b71565b61265191503d806000833e61150f8183610966565b38612636565b612679915060203d60201161267f575b6126718183610966565b810190611aeb565b38611fc1565b503d612667565b6040519061014082018281106001600160401b0382111761092a5760405260606101208360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201528260e082015260006101008201520152565b356102d281611de9565b908060209392818452848401376000828201840152601f01601f1916010190565b90516001600160a01b039081168252918216602082015291166040820152606081019190915260a0608082018190526102d2939101916126f3565b90610573603c602960405180956802db1b430b4b724b2160bd1b60208301526127818151809260208686019101610399565b81017f5d205b494e464f5d2045524332302f5a45544120776974686472617720616e64838201527f2063616c6c20636f6d706c65746564207375636365737366756c6c790000000060498201520301601c810185520183610966565b602f6105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526128138151809260208688019101610399565b83017f5d205b4552524f525d2045524332302f5a45544120776974686472617720616e838201526e0321031b0b636103330b4b632b21d1608d1b6049820152611dd8825180936020605885019101610399565b906004116102565790600490565b356001600160e01b031981169291906004821061288f575050565b6001600160e01b031960049290920360031b82901b16169150565b90610573605a60405180947f526563656976657220636f6e747261637420646f6573206e6f7420636f6e746160208301527f696e2066756e6374696f6e20776974682073656c6563746f722000000000000060408301526129148151809260208686019101610399565b81010301601f198101845283610966565b600a6105739193929360296040519586926802db1b430b4b724b2160bd1b602085015261295b8151809260208688019101610399565b83016902e902da2a92927a92e960b51b83820152611dd8825180936020603385019101610399565b9080601f830112156102565781516102d292602001611b06565b906020828203126102565781516001600160401b038111610256576102d29201612983565b90516001600160a01b03908116825290911660208201526060604082018190526102d2939101916126f3565b90610573603b602960405180956802db1b430b4b724b2160bd1b6020830152612a208151809260208686019101610399565b81017f5d205b494e464f5d2047617320746f6b656e207472616e7366657220616e6420838201527f63616c6c20636f6d706c65746564207375636365737366756c6c79000000000060498201520301601b810185520183610966565b602e6105739193929360296040519586926802db1b430b4b724b2160bd1b6020850152612ab28151809260208688019101610399565b83017f5d205b4552524f525d2047617320746f6b656e207472616e7366657220616e64838201526d01031b0b636103330b4b632b21d160951b6049820152611dd8825180936020605785019101610399565b95969491939096612b13612686565b60405163085e1f4d60e41b815290986001600160a01b03861691602081600481865afa90811561151d57612b619161143d916000916132d0575b50808d526000526021602052604060002090565b6001600160a01b0390811660208c01818152939190612b7f90611338565b16156132a057612bba6120318c949361202c6040612bd095612bb261133861143d8b516000526022602052604060002090565b149701968752565b6001600160a01b031660608c0190815292612049565b15612f8957612be1602084016126e9565b612e34575b805160049493929190602090612c04906001600160a01b0316611338565b604051635b11259160e01b815296879182905afa94851561151d57600095612e13575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039590951660048601526000856024818360008051602061924f8339815191525af194851561151d576113388992612c9892600098612e055750516001600160a01b031690565b923592612cc1612ca6610987565b6001600160a01b038d168152935b516001600160a01b031690565b92612ce2604051988997889687946338e2252760e01b8652600486016129c2565b0393f19081612de4575b50612d8157612d3094612cfd611d28565b90600061010082015281610120820152600081516040518099819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d576114ea6121ea936121e1926105739a600091612d66575b50612a7c565b612d7b91503d806000833e61150f8183610966565b38612d60565b50505050600081612496610100612d99940160019052565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091612dc9575b506129ee565b612dde91503d806000833e61150f8183610966565b38612dc3565b612e00903d806000833e612df88183610966565b81019061299d565b612cec565b8061159c8a61221893610966565b612e2d91955060203d6020116115e5576115d78183610966565b9338612c27565b612e47612e418686612866565b90612874565b8251612e6e90612e6a908390612e65906001600160a01b031661184b565b61544d565b1590565b612e785750612be6565b9250505087925060009150612e9360c0612ebd990160019052565b604051631623433d60e31b81526001600160e01b0319909116600482015296879081906024820190565b038160008051602061924f8339815191525afa95861561151d57612f1896612eed91600091612f6e575b506128aa565b9060e08101918252600081516040518099819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d576114ea6121ea936121e1926105739a600092612f51575b505190612925565b612f679192503d806000833e61150f8183610966565b9038612f49565b612f8391503d806000833e61150f8183610966565b38612ee7565b80519194929160049190602090612fa8906001600160a01b0316611338565b60405163dda79b7560e01b815293849182905afa91821561151d5760009261327f575b506001600160a01b039190911660808b018181529190612fff908c906120499060a090612ff790611338565b159201918252565b61324f57516004919060209061301d906001600160a01b0316611338565b604051635b11259160e01b815293849182905afa91821561151d5760009261322e575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af191821561151d576113386130b292611338928e956125165750516001600160a01b031690565b92868a6130c36020863596016126e9565b1561321a575061143d6131069161238c6130f460009a5b612cb46130e5610987565b6001600160a01b03909d168d52565b95516000526024602052604060002090565b93803b156102565788966131366000979388946040519a8b998a9889966356840c2960e11b885260048801612714565b0393f19081613205575b506131a25761315194612cfd611d28565b038160008051602061924f8339815191525afa801561151d576114ea6121ea936121e1926105739a600091613187575b506127dd565b61319c91503d806000833e61150f8183610966565b38613181565b505050506000816124966101006131ba940160019052565b038160008051602061924f8339815191525afa90811561151d57610573916114ea916000916131ea575b5061274f565b6131ff91503d806000833e61150f8183610966565b386131e4565b8061159c600061321493610966565b38613140565b6131069161238c6130f461143d939a6130da565b61324891925060203d6020116115e5576115d78183610966565b9038613040565b50505050505050505050600061257391516040518093819263348051d760e11b8352600483019190602083019252565b61329991925060203d6020116115e5576115d78183610966565b9038612fcb565b50505050505050505050600061260c91516040518093819263348051d760e11b8352600483019190602083019252565b6132e9915060203d60201161267f576126718183610966565b38612b4d565b60256105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526133258151809260208688019101610399565b83017f5d205b4552524f525d205a52433230206e6f7420666f756e6420666f722061738382015264039b2ba1d160dd1b6049820152611dd8825180936020604e85019101610399565b9060408061338584516060855260608501906103bc565b6020808601516001600160a01b03169085015293015191015290565b9194926133bb6102d297959260a0855260a085019061336e565b6001600160a01b0396871660208501526040840191909152941660608201528084036080909101526126f3565b90610573603a602960405180956802db1b430b4b724b2160bd1b602083015261341a8151809260208686019101610399565b81017f5d205b494e464f5d205a657461436861696e206465706f73697420616e642063838201527f616c6c20636f6d706c65746564207375636365737366756c6c7900000000000060498201520301601a810185520183610966565b95969491909661349761143d8661238c8a6000526023602052604060002090565b926001600160a01b038416156136b457601f546004906020906134c59060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091613695575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57613680575b50601f546135589060081c6001600160a01b0316611338565b6040516001600160601b031960608c901b166020820152601481529161357f603484610966565b613587610996565b9283526001600160a01b038b166020840152896040840152813b1561025657600087936135ce82968994604051998a988997889663c39aca3760e01b8852600488016133a1565b03926216e360f1908161366b575b506135f357610573956135ed611d28565b95615710565b50505050505061362060006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091613650575b506133e8565b61366591503d806000833e61150f8183610966565b3861364a565b8061159c600061367a93610966565b386135dc565b8061159c600061368f93610966565b3861353f565b6136ae915060203d6020116115e5576115d78183610966565b386134e8565b50505050509150506136e5915060006020546040518094819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d5760009261377a575b50604051632b65311f60e11b81526001600160a01b03909116600482015260008180602481015b038160008051602061924f8339815191525afa801561151d57610573926114ea9260009261375d575b506132ef565b6137739192503d806000833e61150f8183610966565b9038613757565b61372e9192506137956000913d8084833e61150f8183610966565b929150613707565b6040519060e082018281106001600160401b0382111761092a57604052606060c083600081526000602082015260006040820152600083820152826080820152600060a08201520152565b90610573602d602960405180956802db1b430b4b724b2160bd1b602083015261381a8151809260208686019101610399565b81017f5d205b494e464f5d2045564d20657865637574696f6e20636f6d706c65746564838201526c207375636365737366756c6c7960981b60498201520301600d810185520183610966565b60206105739193929360296040519586926802db1b430b4b724b2160bd1b8585015261389a81518092878688019101610399565b83017f5d205b4552524f525d2045564d20657865637574696f6e206661696c65643a2083820152611dd88251809387604985019101610399565b939194959290600460206138e661379d565b60405163085e1f4d60e41b815290989092839182906001600160a01b03165afa90811561151d576139319161143d91600091613d1c575b508089526000526021602052604060002090565b6001600160a01b039081166020880181815292919061394f90611338565b1615613ced5761203161396191611bda565b6001600160a01b031660408701908152602088019161397f836126e9565b613be3575b6004949596979860206139a0611338845160018060a01b031690565b604051635b11259160e01b815297889182905afa95861561151d57600096613bc2575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039690961660048701526000866024818360008051602061924f8339815191525af191821561151d57613a37611338613a3f926000998a96613bb45750516001600160a01b031690565b9135946126e9565b8214613baa57613a6582935b612cb4613a56610987565b6001600160a01b039096168652565b92613a86604051988997889687946338e2252760e01b8652600486016129c2565b0393f19081613b91575b50613b3157613ad292613aa1611d28565b90600060a08201528160c0820152600081516040518097819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d576114ea613b1193613b089261057398600091613b16575b50613866565b51913690611df3565b6146df565b613b2b91503d806000833e61150f8183610966565b38613b02565b505060008161249660a0613b46940160019052565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091613b76575b506137e8565b613b8b91503d806000833e61150f8183610966565b38613b70565b613ba5903d806000833e612df88183610966565b613a90565b613a658993613a4b565b8061159c8861221893610966565b613bdc91965060203d6020116115e5576115d78183610966565b94386139c3565b613bf0612e418686612866565b98613c0b612e6a8b612e656105a9875160018060a01b031690565b613c16579850613984565b50505050505090916000613c5b94613c316060840160019052565b604051631623433d60e31b81526001600160e01b0319909116600482015294859081906024820190565b038160008051602061924f8339815191525afa93841561151d57613cb594613c8a91600091612f6e57506128aa565b9060808101918252600081516040518097819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d576114ea613b1193613b089261057398600092612f5157505190612925565b5050935160405163348051d760e11b81526004810191909152945060009350849250829150506024810161260c565b613d35915060203d60201161267f576126718183610966565b3861391d565b60085460ff168015613d4a5790565b50604051630667f9d760e41b815260008051602061924f833981519152600482018190526519985a5b195960d21b6024830152602090829060449082905afa90811561151d57600091613d9e575b50151590565b613db7915060203d60201161267f576126718183610966565b38613d98565b906105736031602960405180956802db1b430b4b724b2160bd1b6020830152613def8151809260208686019101610399565b81017f5d205b494e464f5d205a657461436861696e206465706f73697420636f6d706c838201527065746564207375636365737366756c6c7960781b604982015203016011810185520183610966565b939194929094613e6061143d8461238c886000526023602052604060002090565b906001600160a01b0382161561404257601f54600490602090613e8e9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091614023575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d5761400e575b50601f54613f219060081c6001600160a01b0316611338565b803b1561025657604051633d14d1b760e21b81526001600160a01b038481166004830152602482018690529290921660448301526000908290606490829084905af19081613ff9575b50613f815761057395613f7b611d28565b95615db5565b505050505050613fae60006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091613fde575b50613dbd565b613ff391503d806000833e61150f8183610966565b38613fd8565b8061159c600061400893610966565b38613f6a565b8061159c600061401d93610966565b38613f08565b61403c915060203d6020116115e5576115d78183610966565b38613eb1565b505060205460405163348051d760e11b8152600481019190915294509092506000915083905080602481016136e5565b909261408d6102d2969495939560a0845260a084019061336e565b6001600160a01b03958616602084015260006040840152941660608201528084036080909101526126f3565b906105736033602960405180956802db1b430b4b724b2160bd1b60208301526140eb8151809260208686019101610399565b81017f5d205b494e464f5d205a657461436861696e20657865637574696f6e20636f6d8382015272706c65746564207375636365737366756c6c7960681b604982015203016013810185520183610966565b60266105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526141738151809260208688019101610399565b83017f5d205b4552524f525d205a657461436861696e20657865637574696f6e2066618382015265034b632b21d160d51b6049820152611dd8825180936020604f85019101610399565b356102d281610555565b6141f46142026105739260405192839163104c13eb60e21b602084015260206024840181815201906103bc565b03601f198101835282610966565b617fe7565b90610573601e602960405180956802db1b430b4b724b2160bd1b60208301526142398151809260208686019101610399565b81017f5d205b494e464f5d2063616c6c4f6e5265766572742069732066616c73650000838201520301600119810185520183610966565b90610573601f602960405180956802db1b430b4b724b2160bd1b60208301526142a28151809260208686019101610399565b81017f5d205b4552524f525d2072657665727441646472657373206973207a65726f00838201520301600019810185520183610966565b90608060606102d29360018060a01b03815116845260018060a01b0360208201511660208501526040810151604085015201519181606082015201906103bc565b9060206102d29281815201906142d9565b600b90602d61057393959460296040519788946802db1b430b4b724b2160bd1b6020870152614363815180926020868a019101610399565b85017f5d205b494e464f5d20457865637574696e67206f6e526576657274206f6e2072838201526c032bb32b93a20b2323932b9b99609d1b60498201526143b4825180936020605685019101610399565b01016a0161031b7b73a32bc3a1d160ad1b83820152611dd8825180936020603885019101610399565b6001600160a01b039182168152602081019290925290911660408201526080606082018190526102d2929101906142d9565b6001600160a01b0390911681526040602082018190526102d2929101906142d9565b602081830312610256578051906001600160401b03821161025657019080601f830112156102565781519161446583611712565b926144736040519485610966565b80845260208085019160051b830101918383116102565760208101915b83831061449f57505050505090565b82516001600160401b038111610256578201906060828703601f19011261025657604051906144cd8261094b565b60208301516001600160401b0381116102565760209084010187601f82011215610256578051906144fd82611712565b9161450b6040519384610966565b80835260208084019160051b830101918a831161025657602001905b8282106145795750505082526040830151916001600160401b0383116102565761456960608561455f8b602080999881990101612983565b8685015201611c1b565b6040820152815201920191614490565b8151815260209182019101614527565b634e487b7160e01b600052603260045260246000fd5b8051156145ac5760200190565b614589565b8051600110156145ac5760400190565b8051600210156145ac5760600190565b80518210156145ac5760209160051b010190565b90610573601d602960405180956802db1b430b4b724b2160bd1b60208301526146178151809260208686019101610399565b81017f5d205b494e464f5d204576656e742066726f6d206f6e5265766572743a000000838201520301600219810185520183610966565b6040519061465d604083610966565b600a825269101032b6b4ba3a32b91d60b11b6020830152565b60405190614685604083610966565b600782526610103230ba309d60c91b6020830152565b604051906146aa604083610966565b60078252662020746f70696360c81b6020830152565b604051906146cf604083610966565b60018252601d60f91b6020830152565b9190606083019081516146f06109a5565b6001600160a01b03851681529060006020830152600060408301526060820152602085015115614d705760008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57614d5b575b5084516001600160a01b031615614cda5760405163348051d760e11b81526004810183905260008160248160008051602061924f8339815191525afa90811561151d57600091614cbf575b5085516147e7906000906001600160a01b03165b604051632b65311f60e11b81526001600160a01b03909116600482015291829081906024820190565b038160008051602061924f8339815191525afa801561151d5761483d91600091614ca4575b506000604051614823816141f4886020830161431a565b604051809481926371aad10d60e01b835260048301610575565b038160008051602061924f8339815191525afa90811561151d5761486d936114ea93600093614c87575b5061432b565b601f5460049060209061488b9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091614c68575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57614c53575b50601f5461491e9060081c6001600160a01b0316611338565b85519091906001600160a01b031690823b1561025657614958926000928360405180968195829463184b079360e01b84526004840161440f565b03926216e360f19081614c3e575b5061498c57600080614984604061057397015160018060a01b031690565b935193616ba4565b9150506040519163064554e960e21b83526000836004818360008051602061924f8339815191525af192831561151d57600093614c1b575b5060005b8351811015614c15576149ef60406149e083876145d1565b5101516001600160a01b031690565b6040830151614a06906001600160a01b0316611338565b6001600160a01b0390911614614a1f575b6001016149c8565b60405163348051d760e11b815260048101849052909491929060008160248160008051602061924f8339815191525afa90811561151d57614a6c916114ea91600091614bfc575b506145e5565b614a8060006147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d57614ab391600091614be3575b50614aae61464e565b618002565b614ae160006020614ac488886145d1565b510151604051809381926371aad10d60e01b835260048301610575565b038160008051602061924f8339815191525afa801561151d57614b0f91600091614bca575b50614aae614676565b60005b614b1c86866145d1565b515151811015614bc157806000614b41614b6193614b3a8a8a6145d1565b51516145d1565b5160405180948192631623433d60e31b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d57600192614ba291600091614ba8575b50614b9361469b565b83614b9c6146c0565b91618046565b01614b12565b614bbb913d8091833e61150f8183610966565b38614b8a565b50919093614a17565b614bdd913d8091833e61150f8183610966565b38614b06565b614bf6913d8091833e61150f8183610966565b38614aa5565b614c0f913d8091833e61150f8183610966565b38614a66565b50505050565b614c3791933d8091833e614c2f8183610966565b810190614431565b91386149c4565b8061159c6000614c4d93610966565b38614966565b8061159c6000614c6293610966565b38614905565b614c81915060203d6020116115e5576115d78183610966565b386148ae565b614c9d9193503d806000833e61150f8183610966565b9138614867565b614cb991503d806000833e61150f8183610966565b3861480c565b614cd491503d806000833e61150f8183610966565b386147aa565b5060205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa94851561151d57614984604060009392614d336114ea6105739a87968791614d41575b50614270565b01516001600160a01b031690565b614d5591503d8089833e61150f8183610966565b38614d2d565b8061159c6000614d6a93610966565b3861475f565b5060405163348051d760e11b81526004810182905260008160248160008051602061924f8339815191525afa94851561151d57614984604060009392614d336114ea6105739a87968791614dc5575b50614207565b614dd991503d8089833e61150f8183610966565b38614dbf565b93929060608501928351614df16109a5565b6001600160a01b0387168152906001600160a01b03841660208301528260408301526060820152614e256020880151151590565b156153bd5760008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d576153a8575b5086516001600160a01b03161561533e5760405163348051d760e11b81526004810185905260008160248160008051602061924f8339815191525afa90811561151d57600091615323575b508751614ed2906000906001600160a01b03166147be565b038160008051602061924f8339815191525afa801561151d57614f0d91600091614ca457506000604051614823816141f4886020830161431a565b038160008051602061924f8339815191525afa90811561151d57614f3c936114ea93600093614c87575061432b565b601f54600490602090614f5a9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091615304575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d576152ef575b506001600160a01b03831661524f57601f54614ffb9060081c6001600160a01b0316611338565b87519091906001600160a01b031690823b1561025657615035926000928360405180968195829463184b079360e01b84526004840161440f565b03926216e360f1908161523a575b50615062576040959095015161057395906001600160a01b0316614984565b50509150505b60405163064554e960e21b8152916000836004818360008051602061924f8339815191525af192831561151d5760009361521f575b5060005b8351811015614c15576150b960406149e083876145d1565b60408301516150d0906001600160a01b0316611338565b6001600160a01b03909116146150e9575b6001016150a1565b60405163348051d760e11b815260048101849052909491929060008160248160008051602061924f8339815191525afa90811561151d57615135916114ea91600091614bfc57506145e5565b61514960006147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d5761517691600091614be35750614aae61464e565b61518760006020614ac488886145d1565b038160008051602061924f8339815191525afa801561151d576151b491600091614bca5750614aae614676565b60005b6151c186866145d1565b51515181101561521657806000614b416151df93614b3a8a8a6145d1565b038160008051602061924f8339815191525afa91821561151d5760019261521091600091614ba85750614b9361469b565b016151b7565b509190936150e1565b61523391933d8091833e614c2f8183610966565b913861509d565b8061159c600061524993610966565b38615043565b601f546152679060081c6001600160a01b0316611338565b87519091906001600160a01b031690823b15610256576152a39260009283604051809681958294639d4ba46560e01b84528a8c600486016143dd565b03926216e360f190816152da575b506152d0576040959095015161057395906001600160a01b0316614984565b5050915050615068565b8061159c60006152e993610966565b386152b1565b8061159c60006152fe93610966565b38614fd4565b61531d915060203d6020116115e5576115d78183610966565b38614f7d565b61533891503d806000833e61150f8183610966565b38614eba565b5060205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d5761057397614d336114ea614984946040946000916153935750614270565b614d5591503d806000833e61150f8183610966565b8061159c60006153b793610966565b38614e6f565b5060405163348051d760e11b81526004810184905260008160248160008051602061924f8339815191525afa90811561151d5761057397614d336114ea6149849460409460009161540e5750614207565b614dd991503d806000833e61150f8183610966565b634e487b7160e01b600052601160045260246000fd5b906104b0820180921161544857565b615423565b919060005b600481018082116154485784511061549757602081850101516001600160e01b031983811691161461548f57600019811461544857600101615452565b506001925050565b506000925050565b604051906154ac8261092f565b600060e083606081528260208201528260408201528260608201528260808201528260a08201528260c08201520152565b604051906154ec604083610966565b600782526619195c1bdcda5d60ca1b6020830152565b60405190615511604083610966565b601082526f19195c1bdcda5d08185b990818d85b1b60821b6020830152565b600990601461057393959460296040519788946802db1b430b4b724b2160bd1b6020870152615568815180926020868a019101610399565b85017302e902da2a92927a92e902d32ba30a1b430b4b7160651b8382015261559a825180936020603d85019101610399565b0101680103330b4b632b21d160bd1b83820152611dd8825180936020601d85019101610399565b919082604091031261025657602082516155da81610555565b92015190565b9081602091031261025657516102d281611de9565b90610573603a602960405180956802db1b430b4b724b2160bd1b60208301526156278151809260208686019101610399565b81017f5d205b4552524f525d204661696c656420746f206d696e74205a524332302074838201527f6f6b656e7320666f722070726f746f636f6c206164647265737300000000000060498201520301601a810185520183610966565b9190820391821161544857565b90610573602f602960405180956802db1b430b4b724b2160bd1b60208301526156c28151809260208686019101610399565b81017f5d205b4552524f525d204661696c656420746f206275726e2072656d61696e69838201526e6e67205a5243323020746f6b656e7360881b60498201520301600f810185520183610966565b9094939195615751939661572261549f565b9161572b615502565b835260006020546040518098819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa95861561151d576114ea826157b99861578893600091615d9a575b50865190615530565b6040805163fc5fecd560e01b815260808901356004820152966001600160a01b038416939190889081906024820190565b0381865afa801561151d57600097600091615d65575b50604085019081526001600160a01b039097166020850190815296601f546004906020906158089060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091615d46575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03821660048201526000816024818360008051602061924f8339815191525af1801561151d57615d31575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018d905260208160448160008a5af190811561151d57600091615d12575b5015156060870190815260008051602061924f8339815191523b15610256576040516303223eab60e11b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af190811561151d5761592e92612e6a92615cfd575b5051151590565b615c805780519060a0860191825260c086019861594b8a60019052565b805161595f906001600160a01b0316611338565b8603615bf8575b505060008051602061924f8339815191523b15610256576040516390c5013b60e01b8152906000826004818360008051602061924f8339815191525af191821561151d576159bb92615be3575b50518b615683565b608085018181529a9015615bc4575050601f54600491506020906159ea9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091615ba5575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57600092602092615a9292615b91575b508a51604051948580948193630852cd8d60e31b8352600483019190602083019252565b03925af1801561151d57615abd92612e6a92600092615b59575b5060e0612049910191829015159052565b615ae157615adb615ad361057397519451151590565b943690611df3565b90618832565b505050505050615b0e60006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091615b3e575b50615690565b615b5391503d806000833e61150f8183610966565b38615b38565b612049919250615b8260e09160203d602011615b8a575b615b7a8183610966565b8101906155e0565b929150615aac565b503d615b70565b8061159c86615b9f93610966565b38615a6e565b615bbe915060203d6020116115e5576115d78183610966565b38615a0d565b9496509450956105739850615bde925060409150016141bd565b61788e565b8061159c6000615bf293610966565b386159b3565b60008a52516001600160a01b03169051601f54600490602090615c269060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa91821561151d57615c56938f92600094615c5f575b5086618362565b81523880615966565b615c7991945060203d6020116115e5576115d78183610966565b9238615c4f565b5050505050505050505050615cb260006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091615ce2575b506155f5565b615cf791503d806000833e61150f8183610966565b38615cdc565b8061159c6000615d0c93610966565b38615927565b615d2b915060203d602011615b8a57615b7a8183610966565b386158be565b8061159c6000615d4093610966565b38615880565b615d5f915060203d6020116115e5576115d78183610966565b3861582b565b9050615d8a91975060403d604011615d93575b615d828183610966565b8101906155c1565b969096386157cf565b503d615d78565b615daf91503d806000833e61150f8183610966565b3861577f565b90949391956157519396615dc761549f565b9161572b6154dd565b90610573601e602960405180956802db1b430b4b724b2160bd1b6020830152615e028151809260208686019101610399565b81017f5d205b4552524f525d2061626f727441646472657373206973207a65726f0000838201520301600119810185520183610966565b6007600461057392949394602f6040519687926e021b0b713ba103a3930b739b332b91608d1b6020850152615e778151809260208688019101610399565b83016301037b3160e51b83820152615e99825180936020603385019101610399565b01016620746f6b656e7360c81b838201520301601819810185520183610966565b600460129295946017610573956029604051998a966802db1b430b4b724b2160bd1b6020890152615ef4815180926020868c019101610399565b87017f5d205b4552524f525d205472616e7366657272696e672000000000000000000083820152615f2f825180936020604085019101610399565b01016301037b3160e51b83820152615f51825180936020601b85019101610399565b0101710103a37b5b2b739903a379039b2b73232b9160751b83820152611dd8825180936020601685019101610399565b602d6105739193929360296040519586926802db1b430b4b724b2160bd1b6020850152615fb78151809260208688019101610399565b83017f5d205b494e464f5d205472616e7366657272696e6720746f6b656e7320746f20838201526c030b137b93a20b2323932b9b99609d1b6049820152611dd8825180936020605685019101610399565b6102d29160a0616021835160c0845260c08401906103bc565b92600180831b036020820151166020840152604081015160408401526060810151151560608401526080810151608084015201519060a08184039101526103bc565b9060206102d2928181520190616008565b601d90601261057393959460296040519788946802db1b430b4b724b2160bd1b60208701526160ac815180926020868a019101610399565b85017102e902da4a72327ae9021b7b73a3930b1ba160751b838201526160dc825180936020603b85019101610399565b01017f20657865637574696e67206f6e41626f72742c20636f6e746578743a2000000083820152611dd8825180936020602f85019101610399565b6001600160a01b0390911681526040602082018190526102d292910190616008565b90610573601c602960405180956802db1b430b4b724b2160bd1b602083015261616b8151809260208686019101610399565b81017f5d205b494e464f5d204576656e742066726f6d206f6e41626f72743a00000000838201520301600319810185520183610966565b601a6105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526161d88151809260208688019101610399565b83017f5d205b4552524f525d206f6e41626f7274206661696c65643a2000000000000083820152611dd8825180936020604385019101610399565b6001600160a01b0381169360009390928515616a625760205460405163348051d760e11b81526004810191909152858160248160008051602061924f8339815191525afa90811561151d578691616a48575b50604051632b65311f60e11b81526001600160a01b038516600482015290868260248160008051602061924f8339815191525afa91821561151d5787926162b7926114ea928592616a2c575b50615f81565b616836575b604080516001600160a01b0390951660208601526162dd90859081016113f8565b6162e56109b4565b9384526001600160a01b0385166020850152604084018590528415156060850152608084015260a083015260205460405163348051d760e11b8152600481019190915283818060248101038160008051602061924f8339815191525afa90811561151d57849161681c575b50604051632b65311f60e11b81526001600160a01b0383166004820152848160248160008051602061924f8339815191525afa801561151d576163aa918691616802575b5085604051614823816141f48960208301616063565b038160008051602061924f8339815191525afa90811561151d576163d9936114ea9388936167e6575b50616074565b601f546004906020906163f79060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d5784916167c7575b5060008051602061924f8339815191523b156167975760405163ca669fa760e01b81526001600160a01b0391909116600482015283816024818360008051602061924f8339815191525af1801561151d576167b3575b5060008051602061924f8339815191523b156167af576040516320d797a960e11b815283816004818360008051602061924f8339815191525af1801561151d5761679b575b50601f546164cd9060081c6001600160a01b0316611338565b90813b15616797579183916164f99383604051809681958294632095dedb60e01b845260048401616117565b03925af19081616783575b50616583576165399150616516611d28565b816020546040518095819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d5761057393836114ea9492616568575b50506161a2565b61657c92503d8091833e61150f8183610966565b3880616561565b60405163064554e960e21b81529181836004818360008051602061924f8339815191525af192831561151d578293616767575b50815b8351811015614c1557816165d561133860406149e085896145d1565b146165e3575b6001016165b9565b60205460405163348051d760e11b81526004810191909152909490838160248160008051602061924f8339815191525afa90811561151d57616630916114ea91869161674d575b50616139565b616643836147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d5761666f9185916167395750614aae61464e565b61667f836020614ac488886145d1565b038160008051602061924f8339815191525afa801561151d576166ab9185916167255750614aae614676565b825b6166b786866145d1565b51515181101561671e578084614b416166d493614b3a8a8a6145d1565b038160008051602061924f8339815191525afa91821561151d5760019261670491879161670a5750614b9361469b565b016166ad565b614bbb91503d8089833e61150f8183610966565b50936165db565b614bdd91503d8087833e61150f8183610966565b614bf691503d8087833e61150f8183610966565b61676191503d8088833e61150f8183610966565b3861662a565b61677c9193503d8084833e614c2f8183610966565b91386165b6565b8061159c8461679193610966565b38616504565b8380fd5b8061159c856167a993610966565b386164b4565b8280fd5b8061159c856167c193610966565b3861646f565b6167e0915060203d6020116115e5576115d78183610966565b38616419565b6167fb9193503d808a833e61150f8183610966565b91386163d3565b61681691503d8088833e61150f8183610966565b38616394565b61683091503d8086833e61150f8183610966565b38616350565b601f546004906020906168549060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d578691616a0d575b5060008051602061924f8339815191523b156169d85760405163ca669fa760e01b81526001600160a01b038216600482015286816024818360008051602061924f8339815191525af1801561151d576169f9575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018790526020816044818a805af1801561151d576169dc575b5060008051602061924f8339815191523b156169d85760405163ca669fa760e01b81526001600160a01b0391909116600482015285816024818360008051602061924f8339815191525af1801561151d576169c4575b5060405163a9059cbb60e01b81526001600160a01b0384166004820152602481018690529360208560448189805af190811561151d576113f8956162dd926169a5575b509450506162bc565b6169bd9060203d602011615b8a57615b7a8183610966565b503861699c565b8061159c876169d293610966565b38616959565b8580fd5b6169f49060203d602011615b8a57615b7a8183610966565b616903565b8061159c88616a0793610966565b386168ca565b616a26915060203d6020116115e5576115d78183610966565b38616876565b616a419192503d8087833e61150f8183610966565b90386162b1565b616a5c91503d8088833e61150f8183610966565b38616265565b60205460405163348051d760e11b815260048101919091528590818160248160008051602061924f8339815191525afa90811561151d57616aae916114ea918491616b8a575b50615dd0565b5060405163348051d760e11b81526000600482018190528160248160008051602061924f8339815191525afa90811561151d57600091616b6f575b50604051632b65311f60e11b81526000600482018190528180602481015b038160008051602061924f8339815191525afa801561151d57616b4e92616b3692600092616b52575b50615e39565b60405162461bcd60e51b815291829160048301610575565b0390fd5b616b689192503d806000833e61150f8183610966565b9084616b30565b616b8491503d806000833e61150f8183610966565b81616ae9565b616b9e91503d8086833e61150f8183610966565b84616aa8565b6001600160a01b03811695949093909290919086156173e95760205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d576000916173ce575b50604051632b65311f60e11b81526001600160a01b038716600482015260008160248160008051602061924f8339815191525afa801561151d57616c4a926114ea926000926173b85750615f81565b6001600160a01b038116801515806173af575b6171ab575b50604080516001600160a01b039097166020880152616cae9190616c9390889081015b03601f198101895288610966565b616c9b6109b4565b9687526001600160a01b03166020870152565b604085015260016060850152608084015260a083015260205460405163348051d760e11b815260048101919091526000818060248101038160008051602061924f8339815191525afa90811561151d57600091617190575b50604051632b65311f60e11b81526001600160a01b038316600482015260008160248160008051602061924f8339815191525afa801561151d57616d6391600091617175575b506000604051614823816141f48960208301616063565b038160008051602061924f8339815191525afa90811561151d57616d92936114ea9360009361715f5750616074565b601f54600490602090616db09060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617140575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d5761712b575b5060008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57617116575b50601f54616e899060081c6001600160a01b0316611338565b91823b1561025657616eb59260009283604051809681958294632095dedb60e01b845260048401616117565b03925af19081617101575b50616f355750616ece611d28565b60205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa91821561151d57610573926114ea92600091616f1a575b506161a2565b616f2f91503d806000833e61150f8183610966565b38616f14565b60405163064554e960e21b8152906000826004818360008051602061924f8339815191525af191821561151d576000926170e6575b5060005b82518110156170e15781616f8a61133860406149e085886145d1565b14616f98575b600101616f6e565b60205460405163348051d760e11b8152600481019190915290939060008160248160008051602061924f8339815191525afa90811561151d57616fe6916114ea916000916170ce5750616139565b616ffa60006147be60406149e088886145d1565b038160008051602061924f8339815191525afa801561151d5761702791600091614be35750614aae61464e565b61703860006020614ac487876145d1565b038160008051602061924f8339815191525afa801561151d5761706591600091614bca5750614aae614676565b60005b61707285856145d1565b5151518110156170c757806000614b4161709093614b3a89896145d1565b038160008051602061924f8339815191525afa91821561151d576001926170c191600091614ba85750614b9361469b565b01617068565b5092616f90565b616761913d8091833e61150f8183610966565b505050565b6170fa91923d8091833e614c2f8183610966565b9038616f6a565b8061159c600061711093610966565b38616ec0565b8061159c600061712593610966565b38616e70565b8061159c600061713a93610966565b38616e2a565b617159915060203d6020116115e5576115d78183610966565b38616dd3565b6167fb9193503d806000833e61150f8183610966565b61718a91503d806000833e61150f8183610966565b38616d4c565b6171a591503d806000833e61150f8183610966565b38616d06565b601f549091906004906020906171cc9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617390575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03821660048201526000816024818360008051602061924f8339815191525af1801561151d5761737b575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018590526020816044816000885af1801561151d5761735e575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57617349575b5060405163a9059cbb60e01b81526001600160a01b03871660048201526024810184905291602090839060449082906000905af1801561151d57616c8597616cae93616c939261732a575b5097505090616c62565b6173429060203d602011615b8a57615b7a8183610966565b5038617320565b8061159c600061735893610966565b386172d5565b6173769060203d602011615b8a57615b7a8183610966565b61727e565b8061159c600061738a93610966565b38617244565b6173a9915060203d6020116115e5576115d78183610966565b386171ef565b50821515616c5d565b616a419192503d806000833e61150f8183610966565b6173e391503d806000833e61150f8183610966565b38616bfb565b95509250505060205460405163348051d760e11b81526000818061741585600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57617444916114ea916000916178735750615dd0565b6001600160a01b038416908115158061786a575b156177e15760405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d576000916177c6575b5060405163348051d760e11b8152600481018490529460008660248160008051602061924f8339815191525afa95861561151d576000966177a3575b50604051632b65311f60e11b81526001600160a01b03909116600482015260008180602481015b038160008051602061924f8339815191525afa90811561151d57600091617788575b50604051632b65311f60e11b81526001600160a01b03861660048201529060008260248160008051602061924f8339815191525afa90811561151d57600497617572946114ea9460009461776b575b50615eba565b601f5460209061758d9060081c6001600160a01b0316611338565b6040516313917f7760e11b815295869182905afa93841561151d5760009461774a575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03851660048201526000816024818360008051602061924f8339815191525af1801561151d57617735575b506040516311f9fbc960e21b81526001600160a01b0385166004820152602481018390526020816044816000865af1801561151d57617718575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039490941660048501526000846024818360008051602061924f8339815191525af192831561151d576176d794602094617703575b5060405163a9059cbb60e01b81526001600160a01b03909116600482015260248101929092529092839190829060009082906044820190565b03925af1801561151d576176e85750565b6177009060203d602011615b8a57615b7a8183610966565b50565b8061159c600061771293610966565b3861769e565b6177309060203d602011615b8a57615b7a8183610966565b61763f565b8061159c600061774493610966565b38617605565b61776491945060203d6020116115e5576115d78183610966565b92386175b0565b6177819194503d806000833e61150f8183610966565b923861756c565b61779d91503d806000833e61150f8183610966565b3861751d565b6174fb9196506177be6000913d8084833e61150f8183610966565b9691506174d4565b6177db91503d806000833e61150f8183610966565b38617498565b60405163348051d760e11b8152600481018490528560008260248160008051602061924f8339815191525afa91821561151d57600092617847575b50604051632b65311f60e11b81526001600160a01b0390911660048201526000818060248101616b07565b616b079192506178626000913d8084833e61150f8183610966565b92915061781c565b50821515617458565b61788891503d806000833e61150f8183610966565b38616aa8565b6001600160a01b03811695949093909290919086156173e95760205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d57600091617fcc575b50604051632b65311f60e11b81526001600160a01b038716600482015260008160248160008051602061924f8339815191525afa801561151d57617934926114ea926000926173b85750615f81565b6001600160a01b03811680151580617fc3575b617dbf575b50604080516001600160a01b0390971660208801526179739190616c939088908101616c85565b604085015260006060850152608084015260a083015260205460405163348051d760e11b815260048101919091526000818060248101038160008051602061924f8339815191525afa90811561151d57600091617da4575b50604051632b65311f60e11b81526001600160a01b038316600482015260008160248160008051602061924f8339815191525afa801561151d57617a279160009161717557506000604051614823816141f48960208301616063565b038160008051602061924f8339815191525afa90811561151d57617a56936114ea9360009361715f5750616074565b601f54600490602090617a749060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617d85575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57617d70575b5060008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57617d5b575b50601f54617b4d9060081c6001600160a01b0316611338565b91823b1561025657617b799260009283604051809681958294632095dedb60e01b845260048401616117565b03925af19081617d46575b50617b925750616ece611d28565b60405163064554e960e21b8152906000826004818360008051602061924f8339815191525af191821561151d57600092617d2b575b5060005b82518110156170e15781617be761133860406149e085886145d1565b14617bf5575b600101617bcb565b60205460405163348051d760e11b8152600481019190915290939060008160248160008051602061924f8339815191525afa90811561151d57617c43916114ea916000916170ce5750616139565b617c5760006147be60406149e088886145d1565b038160008051602061924f8339815191525afa801561151d57617c8491600091614be35750614aae61464e565b617c9560006020614ac487876145d1565b038160008051602061924f8339815191525afa801561151d57617cc291600091614bca5750614aae614676565b60005b617ccf85856145d1565b515151811015617d2457806000614b41617ced93614b3a89896145d1565b038160008051602061924f8339815191525afa91821561151d57600192617d1e91600091614ba85750614b9361469b565b01617cc5565b5092617bed565b617d3f91923d8091833e614c2f8183610966565b9038617bc7565b8061159c6000617d5593610966565b38617b84565b8061159c6000617d6a93610966565b38617b34565b8061159c6000617d7f93610966565b38617aee565b617d9e915060203d6020116115e5576115d78183610966565b38617a97565b617db991503d806000833e61150f8183610966565b386179cb565b601f54909190600490602090617de09060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617fa4575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03821660048201526000816024818360008051602061924f8339815191525af1801561151d57617f8f575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018590526020816044816000885af1801561151d57617f72575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57617f5d575b5060405163a9059cbb60e01b81526001600160a01b03871660048201526024810184905291602090839060449082906000905af1801561151d57616c859761797393616c9392617f3e575b509750509061794c565b617f569060203d602011615b8a57615b7a8183610966565b5038617f34565b8061159c6000617f6c93610966565b38617ee9565b617f8a9060203d602011615b8a57615b7a8183610966565b617e92565b8061159c6000617f9e93610966565b38617e58565b617fbd915060203d6020116115e5576115d78183610966565b38617e03565b50821515617947565b617fe191503d806000833e61150f8183610966565b386178e5565b600080916020815191016a636f6e736f6c652e6c6f675afa50565b614202618034916141f461057394604051948593634b5c427760e01b60208601526040602486015260648501906103bc565b838103602319016044850152906103bc565b6141f4610573946180936142029461807c96604051978896635ab84e1f60e01b60208901526080602489015260a48801906103bc565b9160448701526023198683030160648701526103bc565b838103602319016084850152906103bc565b156180ac57565b60405162461bcd60e51b8152602060048201526016602482015275155b9a5cddd85c081c9bdd5d195c881b9bdd081cd95d60521b6044820152606490fd5b156180f157565b60405162461bcd60e51b815260206004820152600d60248201526c15d6915510481b9bdd081cd95d609a1b6044820152606490fd5b604051608091906181378382610966565b6003815291601f1901366020840137565b604051606091906181598382610966565b6002815291601f1901366020840137565b602081830312610256578051906001600160401b03821161025657019080601f8301121561025657815161819d81611712565b926181ab6040519485610966565b81845260208085019260051b82010192831161025657602001905b8282106181d35750505090565b81518152602091820191016181c6565b919260809361820892979695978452602084015260a0604084015260a0830190610284565b6001600160a01b0390951660608201520152565b6040519061822b604083610966565b600282526134b760f11b6020830152565b6001600791601a61057394969560296040519889946802db1b430b4b724b2160bd1b6020870152618276815180926020868a019101610399565b85017f5d205b494e464f5d2053776170207375636365737366756c3a20000000000000838201526182b1825180936020604385019101610399565b0101600160fd1b838201526182d0825180936020601b85019101610399565b010166081b995959195960ca1b838201520301601819810185520183610966565b601f6105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526183278151809260208688019101610399565b83017f5d205b4552524f525d20556e69737761702073776170206661696c65643a200083820152611dd8825180936020604885019101610399565b60255493946001600160a01b0390941693909291906183828515156180a5565b6026546183a29061839b906001600160a01b0316611338565b15156180ea565b60405163095ea7b360e01b81526001600160a01b039586166004820152602481018790529484169460208160448160008a5af1801561151d5761869b575b5060006183eb618126565b91618408866183f98561459f565b6001600160a01b039091169052565b602654618422906001600160a01b03165b6183f9856145b1565b61842f846183f9856145c1565b61843842615439565b60255490939061845290611338906001600160a01b031681565b90838a61847660405197889687958694634401edf760e11b86528d600487016181e3565b03925af1908161867a575b506184f95750505050618492611d28565b60205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa91821561151d576102d2926114ea926000916184de575b506182f1565b6184f391503d806000833e61150f8183610966565b386184d8565b60265461851991906001600160a01b0316809361851461821c565b61916f565b918251156186735761852d6185369361459f565b5161851461821c565b9081511561866e5760205460405163348051d760e11b81526004810191909152925060008360248160008051602061924f8339815191525afa90811561151d576185ae93600092618651575b50600061858e8461459f565b516040518096819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa93841561151d5760009461862f575b506000600491604051928380926306fdde0360e01b82525afa801561151d5761860e94618609936114ea93600093618612575b5061823c565b61459f565b5190565b6186289193503d806000833e61150f8183610966565b9138618603565b60049194506186496000913d8084833e61150f8183610966565b9491506185d0565b6186679192503d806000833e61150f8183610966565b9038618582565b505090565b5050505090565b618696903d806000833e61868e8183610966565b81019061816a565b618481565b6186b39060203d602011615b8a57615b7a8183610966565b6183e0565b604051906186c7604083610966565b600382526267617360e81b6020830152565b60046012929594602e610573956029604051998a966802db1b430b4b724b2160bd1b6020890152618713815180926020868c019101610399565b87017f5d205b4552524f525d2072657665727441646472657373206973207a65726f2c838201526d0103a3930b739b332b93934b733960951b6049820152618765825180936020605785019101610399565b01016301037b3160e51b83820152615f51825180936020603285019101610399565b1561878e57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b6001600160a01b03918216815291166020820152604081019190915260a06060820181905260009082015260c0608082018190526102d2929101906142d9565b6080906102d2939260018060a01b03168152606060208201526000606082015281604082015201906142d9565b93949190946060860151926188456109a5565b6001600160a01b0382168152936001600160a01b038416602086015285604086015260608501526188796020880151151590565b15618e15575060008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57618e00575b5060405163348051d760e11b81526004810186905260008160248160008051602061924f8339815191525afa90811561151d57600091618de5575b508651618917906000906001600160a01b03166147be565b038160008051602061924f8339815191525afa801561151d5761895391600091618dca575b506000604051614823816141f48a6020830161431a565b038160008051602061924f8339815191525afa90811561151d57618982936114ea93600093614c87575061432b565b600460206189a061133861143d896000526021602052604060002090565b604051635b11259160e01b815292839182905afa90811561151d57600091618dab575b5060008051602061924f8339815191523b15610256576040516303223eab60e11b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57618d96575b5015618cc85750618a3b61133861143d856000526021602052604060002090565b608085015185519192916001600160a01b0316833b156102565760405163cb7ba8e560e01b815294600094869485938491618a799160048401618805565b0393f1801561151d57618cb3575b505b60008051602061924f8339815191523b15610256576040516390c5013b60e01b81526000816004818360008051602061924f8339815191525af1801561151d57618c9e575b5060405163064554e960e21b8152916000836004818360008051602061924f8339815191525af192831561151d57600093618c83575b5060005b8351811015614c1557618b2060406149e083876145d1565b8251618b34906001600160a01b0316611338565b6001600160a01b0390911614618b4d575b600101618b08565b60405163348051d760e11b815260048101849052909491929060008160248160008051602061924f8339815191525afa90811561151d57618b99916114ea91600091614bfc57506145e5565b618bad60006147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d57618bda91600091614be35750614aae61464e565b618beb60006020614ac488886145d1565b038160008051602061924f8339815191525afa801561151d57618c1891600091614bca5750614aae614676565b60005b618c2586866145d1565b515151811015618c7a57806000614b41618c4393614b3a8a8a6145d1565b038160008051602061924f8339815191525afa91821561151d57600192618c7491600091614ba85750614b9361469b565b01618c1b565b50919093618b45565b618c9791933d8091833e614c2f8183610966565b9138618b04565b8061159c6000618cad93610966565b38618ace565b8061159c6000618cc293610966565b38618a87565b909160046020618ce861133861143d886000526021602052604060002090565b60405163dda79b7560e01b815292839182905afa90811561151d57600091618d77575b50608086015186516001600160a01b0392831694919216843b15610256576000948591618d4e60405198899788968794634cd1e1ab60e11b8652600486016187c5565b0393f1801561151d57618d62575b50618a89565b8061159c6000618d7193610966565b38618d5c565b618d90915060203d6020116115e5576115d78183610966565b38618d0b565b8061159c6000618da593610966565b38618a1a565b618dc4915060203d6020116115e5576115d78183610966565b386189c3565b618ddf91503d806000833e61150f8183610966565b3861893c565b618dfa91503d806000833e61150f8183610966565b386188ff565b8061159c6000618e0f93610966565b386188c4565b60405163348051d760e11b81526004810187905294969095929491935060008260248160008051602061924f8339815191525afa801561151d576114ea612cb491618e679460009161540e5750614207565b936001600160a01b03851615618fa8575b506020618e9761133861143d6004946000526021602052604060002090565b604051635b11259160e01b815292839182905afa90811561151d57600091618f89575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57618f74575b5015618f325750600080806105739481945af1618f2c611d28565b50618787565b60405163a9059cbb60e01b81526001600160a01b039283166004820152602481019390935260209183916044918391600091165af1801561151d576176e85750565b8061159c6000618f8393610966565b38618f11565b618fa2915060203d6020116115e5576115d78183610966565b38618eba565b60405163348051d760e11b81526004810183905291945060008260248160008051602061924f8339815191525afa91821561151d5760009261913b575b5060405163348051d760e11b8152600481018790529060008260248160008051602061924f8339815191525afa91821561151d5760009261911e575b50600084156190bc57506190336186b8565b604051632b65311f60e11b81526001600160a01b03831660048201529260008460248160008051602061924f8339815191525afa92831561151d576190946114ea618e97956113389561143d9560049a60209a60009461909f575b506186d9565b979450505050618e78565b6190b59194503d806000833e61150f8183610966565b923861908e565b604051632b65311f60e11b81526001600160a01b0387166004820152818160248160008051602061924f8339815191525afa91821561151d578092619103575b5050619033565b61911792503d8091833e61150f8183610966565b38806190fc565b6191349192503d806000833e61150f8183610966565b9038619021565b6191519192503d806000833e61150f8183610966565b9038618fe5565b6040906102d2939281528160208201520190610284565b90919261918b90618419619181618148565b956183f98761459f565b6020815191012061919a61821c565b6020815191012014600014619211576025546191e69260009290916191c990611338906001600160a01b031681565b906040518095819482936307c0329d60e21b845260048401619158565b03915afa90811561151d576000916191fc575090565b6102d291503d806000833e61868e8183610966565b6025546191e692600092909161923190611338906001600160a01b031681565b9060405180958194829363d06ca61f60e01b84526004840161915856fe0000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da26469706673582212201fce51ed1ff9d0f5f4ea6ac5dba002558bc8864b5d87779ba4c2fa367c0a470364736f6c634300081a0033"; + +type NodeLogicMockConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: NodeLogicMockConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class NodeLogicMock__factory extends ContractFactory { + constructor(...args: NodeLogicMockConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + NodeLogicMock & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): NodeLogicMock__factory { + return super.connect(runner) as NodeLogicMock__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): NodeLogicMockInterface { + return new Interface(_abi) as NodeLogicMockInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): NodeLogicMock { + return new Contract(address, _abi, runner) as unknown as NodeLogicMock; + } +} diff --git a/typechain-types/factories/contracts/testing/mockGateway/WrapGatewayEVM__factory.ts b/typechain-types/factories/contracts/testing/mockGateway/WrapGatewayEVM__factory.ts new file mode 100644 index 00000000..1248d3e6 --- /dev/null +++ b/typechain-types/factories/contracts/testing/mockGateway/WrapGatewayEVM__factory.ts @@ -0,0 +1,155 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + BigNumberish, + AddressLike, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { NonPayableOverrides } from "../../../../common"; +import type { + WrapGatewayEVM, + WrapGatewayEVMInterface, +} from "../../../../contracts/testing/mockGateway/WrapGatewayEVM"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "_gateway", + type: "address", + }, + { + internalType: "address", + name: "_nodeLogic", + type: "address", + }, + { + internalType: "uint256", + name: "_chainId", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + stateMutability: "payable", + type: "fallback", + }, + { + inputs: [], + name: "CHAIN_ID", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "GATEWAY_IMPL", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "NODE_LOGIC", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +const _bytecode = + "0x60e0346100d757601f610bd638819003918201601f19168301916001600160401b038311848410176100dc578084926060946040528339810103126100d757610047816100f2565b906040610056602083016100f2565b9101519160805260a05260c052604051610acf90816101078239608051818181608a0152610196015260a05181818160dd0152818161070a015281816107e5015281816108990152818161094901526109f9015260c051818181604f0152818161076701528181610846015281816108f5015281816109ac0152610a530152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036100d75756fe6080604052600436106101815760003560e01c8063589dd5da1461007757806385e1f4d0146100375763ced52b4003610181576100c7565b346100725760003660031901126100725760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b600080fd5b34610072576000366003190112610072577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b600091031261007257565b34610072576000366003190112610072576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761013e57604052565b61010c565b90601f8019910116810190811067ffffffffffffffff82111761013e57604052565b67ffffffffffffffff811161013e57601f01601f191660200190565b600080604051368282378036810183815203907f00000000000000000000000000000000000000000000000000000000000000005af43d1561023c573d906101c882610165565b916101d66040519384610143565b82523d6000602084013e5b156101f7576101ef366106c3565b602081519101f35b60405162461bcd60e51b815260206004820152601b60248201527f476174657761792064656c656761746563616c6c206661696c656400000000006044820152606490fd5b6060906101e1565b906004116100725790600490565b909291928360041161007257831161007257600401916003190190565b356001600160e01b031981169291906004821061028a575050565b6001600160e01b031960049290920360031b82901b16169150565b6001600160a01b0381160361007257565b81601f82011215610072578035906102cd82610165565b926102db6040519485610143565b8284526020838301011161007257816000926020809301838601378301015290565b3590610308826102a5565b565b91909160a081840312610072576040519061032482610122565b81938135610331816102a5565b835260208201358015158103610072576020840152610352604083016102fd565b604084015260608201359167ffffffffffffffff83116100725761037c60809392849383016102b6565b60608501520135910152565b9160608383031261007257823561039e816102a5565b92602081013567ffffffffffffffff811161007257836103bf9183016102b6565b92604082013567ffffffffffffffff8111610072576103de920161030a565b90565b919082519283825260005b84811061040d575050826000602080949584010152601f8019910116010190565b806020809284010151828286010152016103ec565b9060018060a01b03825116815260208201511515602082015260018060a01b036040830151166040820152608080610469606085015160a0606086015260a08501906103e1565b93015191015290565b9081526001600160a01b0391821660208201529116604082015260a0606082018190526103de9391926104a7918401906103e1565b916080818403910152610422565b6040513d6000823e3d90fd5b91909160a0818403126100725780356104d9816102a5565b9260208201359260408301356104ee816102a5565b92606081013567ffffffffffffffff8111610072578361050f9183016102b6565b92608082013567ffffffffffffffff8111610072576103de920161030a565b9081526001600160a01b0391821660208201529116604082015260608101919091526000608082015260e060a082018190526103de939192610572918401906103e1565b9160c0818403910152610422565b9081526001600160a01b039182166020820152918116604083015260608201929092529116608082015260e060a082018190526103de939192610572918401906103e1565b906080828203126100725781356105db816102a5565b9260208301359260408101356105f0816102a5565b92606082013567ffffffffffffffff8111610072576103de920161030a565b9081526001600160a01b0391821660208201529116604082015260608101919091526000608082015260c060a082018190526103de92910190610422565b9081526001600160a01b039182166020820152918116604083015260608201929092529116608082015260c060a082018190526103de92910190610422565b9190916040818403126100725780356106a4816102a5565b92602082013567ffffffffffffffff8111610072576103de920161030a565b6106e16106d1826000610244565b6001600160e01b0319929161026f565b16631c9ab25f60e21b81036107ba575061070081610708926000610252565b81019061068c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169190823b156100725760405163ced6e79360e01b815292600092849283918591839161078f919034906001600160a01b0316337f00000000000000000000000000000000000000000000000000000000000000006004870161060f565b03925af180156107b5576107a05750565b806107af600061030893610143565b806100bc565b6104b5565b630102614b60e41b810361086e57506107d8816107e0926000610252565b8101906105c5565b9290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b156100725760405163ced6e79360e01b815294600094869485938793859361078f9391926001600160a01b0391821692909116337f00000000000000000000000000000000000000000000000000000000000000006004880161064d565b63744b9b8b60e01b810361091d575061088c81610894926000610252565b810190610388565b9091907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156100725760405163ad82a62760e01b815293600093859384928692849261078f92909134906001600160a01b0316337f00000000000000000000000000000000000000000000000000000000000000006004880161052e565b631a13c76f60e31b81036109d4575061093b81610943926000610252565b8101906104c1565b909391927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b156100725760405163ad82a62760e01b815295600095879586948894869461078f94919390926001600160a01b0392831692909116337f000000000000000000000000000000000000000000000000000000000000000060048901610580565b6306fb33ad60e21b146109e5575b50565b61088c816109f4926000610252565b9091907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b15610072576040516375e7f8e360e11b8152936000938593849286928492610a7b9290916001600160a01b0316337f000000000000000000000000000000000000000000000000000000000000000060048701610472565b03925af180156107b557156109e257806107af60006103089361014356fea2646970667358221220a71cbde33d0601ceacd47bd11f54cc311e513e7ffbb3ec6ec289e9912d3be94b64736f6c634300081a0033"; + +type WrapGatewayEVMConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: WrapGatewayEVMConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class WrapGatewayEVM__factory extends ContractFactory { + constructor(...args: WrapGatewayEVMConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + _gateway: AddressLike, + _nodeLogic: AddressLike, + _chainId: BigNumberish, + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction( + _gateway, + _nodeLogic, + _chainId, + overrides || {} + ); + } + override deploy( + _gateway: AddressLike, + _nodeLogic: AddressLike, + _chainId: BigNumberish, + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy( + _gateway, + _nodeLogic, + _chainId, + overrides || {} + ) as Promise< + WrapGatewayEVM & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): WrapGatewayEVM__factory { + return super.connect(runner) as WrapGatewayEVM__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): WrapGatewayEVMInterface { + return new Interface(_abi) as WrapGatewayEVMInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): WrapGatewayEVM { + return new Contract(address, _abi, runner) as unknown as WrapGatewayEVM; + } +} diff --git a/typechain-types/factories/contracts/testing/mockGateway/WrapGatewayZEVM__factory.ts b/typechain-types/factories/contracts/testing/mockGateway/WrapGatewayZEVM__factory.ts new file mode 100644 index 00000000..bf66d86b --- /dev/null +++ b/typechain-types/factories/contracts/testing/mockGateway/WrapGatewayZEVM__factory.ts @@ -0,0 +1,124 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + AddressLike, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { NonPayableOverrides } from "../../../../common"; +import type { + WrapGatewayZEVM, + WrapGatewayZEVMInterface, +} from "../../../../contracts/testing/mockGateway/WrapGatewayZEVM"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "_gateway", + type: "address", + }, + { + internalType: "address", + name: "_nodeLogic", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + stateMutability: "payable", + type: "fallback", + }, + { + inputs: [], + name: "GATEWAY_ZEVM_IMPL", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "NODE_LOGIC", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +const _bytecode = + "0x60c034608d57601f61094c38819003918201601f19168301916001600160401b038311848410176092578084926040948552833981010312608d57604b602060458360a8565b920160a8565b9060805260a05260405161089090816100bc8239608051818181603d015261012d015260a0518181816084015281816106960152818161074e01526107db0152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203608d5756fe6080604052600436106101185760003560e01c8063ced52b40146100715763d9d2f07403610118573461006c57600036600319011261006c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b600080fd5b3461006c57600036600319011261006c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b600091031261006c57565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b038211176100f857604052565b6100c1565b6001600160401b0381116100f857601f01601f191660200190565b600080604051368282378036810183815203907f00000000000000000000000000000000000000000000000000000000000000005af43d156101d3573d9061015f826100fd565b9161016d60405193846100d7565b82523d6000602084013e5b1561018e576101863661065f565b602081519101f35b60405162461bcd60e51b815260206004820152601f60248201527f476174657761795a45564d2064656c656761746563616c6c206661696c6564006044820152606490fd5b606090610178565b909291928360041161006c57831161006c57600401916003190190565b81601f8201121561006c5780359061020f826100fd565b9261021d60405194856100d7565b8284526020838301011161006c57816000926020809301838601378301015290565b6001600160a01b0381160361006c57565b3590811515820361006c57565b919082604091031261006c57604051604081018181106001600160401b038211176100f85760405260206102978183958035855201610250565b910152565b91909160a08184031261006c576040519060a082018281106001600160401b038211176100f857604052819381356102d38161023f565b83526102e160208301610250565b602084015260408201356102f48161023f565b60408401526060820135916001600160401b03831161006c5761031d60809392849383016101f8565b60608501520135910152565b9160e08383031261006c5782356001600160401b03811161006c57826103509185016101f8565b9260208101359260408201356103658161023f565b9260608301356001600160401b03811161006c57826103859185016101f8565b92610393836080830161025d565b9260c08201356001600160401b03811161006c576103b1920161029c565b90565b919082519283825260005b8481106103e0575050826000602080949584010152601f8019910116010190565b806020809284010151828286010152016103bf565b9060018060a01b03825116815260208201511515602082015260018060a01b03604083015116604082015260808061043c606085015160a0606086015260a08501906103b4565b93015191015290565b93946103b19795610475610498946104ae969460018060a01b0316885261010060208901526101008801906103b4565b60408701939093526001600160a01b0316606086015284820360808601526103b4565b845160a0840152602090940151151560c0830152565b60e08184039101526103f5565b6040513d6000823e3d90fd5b9060808282031261006c5781356001600160401b03811161006c57816104ee9184016101f8565b9260208301359260408101356105038161023f565b9260608201356001600160401b03811161006c576103b1920161029c565b6001600160a01b03909116815260a0602082018190526103b1959394919261054b918401906103b4565b60408301949094526001600160a01b031660608201528083036080909101526103f5565b91909160c08184031261006c5780356001600160401b03811161006c57836105989183016101f8565b9260208201356105a78161023f565b9260408301356001600160401b03811161006c57826105c79185016101f8565b926105d5836060830161025d565b9260a08201356001600160401b03811161006c576103b1920161029c565b926103b1969461061f6106529461063c9460018060a01b0316875260e0602088015260e08701906103b4565b6001600160a01b03909216604086015284820360608601526103b4565b84516080840152602090940151151560a0830152565b60c08184039101526103f5565b6000356001600160e01b0319166306cb898360e01b8103610723575061068a816106929260006101db565b81019061056f565b90937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561006c576000946106f5869260405198899788968795632c612e1f60e21b875260018060a01b03169033600488016105f3565b03925af1801561071e57610707575b50565b80610716600061071c936100d7565b806100b6565b565b6104bb565b637c0dcb5f60e01b81036107ac5750610741816107499260006101db565b8101906104c7565b9290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b1561006c57600080946106f5604051978896879586946308327f7960e41b865260018060a01b0316913360048701610521565b637b15118b60e01b146107bc5750565b6107cb816107d39260006101db565b810190610329565b9194909390927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169290833b1561006c5761083c600096928793604051998a988997889663567ee10960e11b885260018060a01b0316913360048901610445565b03925af1801561071e57156107045780610716600061071c936100d756fea2646970667358221220c3b911f522f83c8ee9102b4245bed2a13c90092e91b0140cf5e5b3a0b9aa0c6f64736f6c634300081a0033"; + +type WrapGatewayZEVMConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: WrapGatewayZEVMConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class WrapGatewayZEVM__factory extends ContractFactory { + constructor(...args: WrapGatewayZEVMConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + _gateway: AddressLike, + _nodeLogic: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(_gateway, _nodeLogic, overrides || {}); + } + override deploy( + _gateway: AddressLike, + _nodeLogic: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy(_gateway, _nodeLogic, overrides || {}) as Promise< + WrapGatewayZEVM & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): WrapGatewayZEVM__factory { + return super.connect(runner) as WrapGatewayZEVM__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): WrapGatewayZEVMInterface { + return new Interface(_abi) as WrapGatewayZEVMInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): WrapGatewayZEVM { + return new Contract(address, _abi, runner) as unknown as WrapGatewayZEVM; + } +} diff --git a/typechain-types/factories/contracts/testing/mockGateway/index.ts b/typechain-types/factories/contracts/testing/mockGateway/index.ts new file mode 100644 index 00000000..035d2175 --- /dev/null +++ b/typechain-types/factories/contracts/testing/mockGateway/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { NodeLogicMock__factory } from "./NodeLogicMock__factory"; +export { WrapGatewayEVM__factory } from "./WrapGatewayEVM__factory"; +export { WrapGatewayZEVM__factory } from "./WrapGatewayZEVM__factory"; diff --git a/typechain-types/factories/forge-std/StdAssertions__factory.ts b/typechain-types/factories/forge-std/StdAssertions__factory.ts new file mode 100644 index 00000000..57fb2c73 --- /dev/null +++ b/typechain-types/factories/forge-std/StdAssertions__factory.ts @@ -0,0 +1,402 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + StdAssertions, + StdAssertionsInterface, +} from "../../forge-std/StdAssertions"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "", + type: "string", + }, + ], + name: "log", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "", + type: "address", + }, + ], + name: "log_address", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256[]", + name: "val", + type: "uint256[]", + }, + ], + name: "log_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "int256[]", + name: "val", + type: "int256[]", + }, + ], + name: "log_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address[]", + name: "val", + type: "address[]", + }, + ], + name: "log_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + name: "log_bytes", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + name: "log_bytes32", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "int256", + name: "", + type: "int256", + }, + ], + name: "log_int", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "address", + name: "val", + type: "address", + }, + ], + name: "log_named_address", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "uint256[]", + name: "val", + type: "uint256[]", + }, + ], + name: "log_named_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "int256[]", + name: "val", + type: "int256[]", + }, + ], + name: "log_named_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "address[]", + name: "val", + type: "address[]", + }, + ], + name: "log_named_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "bytes", + name: "val", + type: "bytes", + }, + ], + name: "log_named_bytes", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "bytes32", + name: "val", + type: "bytes32", + }, + ], + name: "log_named_bytes32", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "int256", + name: "val", + type: "int256", + }, + { + indexed: false, + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "log_named_decimal_int", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "uint256", + name: "val", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "log_named_decimal_uint", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "int256", + name: "val", + type: "int256", + }, + ], + name: "log_named_int", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "string", + name: "val", + type: "string", + }, + ], + name: "log_named_string", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "uint256", + name: "val", + type: "uint256", + }, + ], + name: "log_named_uint", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "", + type: "string", + }, + ], + name: "log_string", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "log_uint", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + name: "logs", + type: "event", + }, + { + inputs: [], + name: "failed", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +export class StdAssertions__factory { + static readonly abi = _abi; + static createInterface(): StdAssertionsInterface { + return new Interface(_abi) as StdAssertionsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): StdAssertions { + return new Contract(address, _abi, runner) as unknown as StdAssertions; + } +} diff --git a/typechain-types/factories/forge-std/StdError.sol/StdError__factory.ts b/typechain-types/factories/forge-std/StdError.sol/StdError__factory.ts new file mode 100644 index 00000000..a35e57ec --- /dev/null +++ b/typechain-types/factories/forge-std/StdError.sol/StdError__factory.ts @@ -0,0 +1,181 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../common"; +import type { + StdError, + StdErrorInterface, +} from "../../../forge-std/StdError.sol/StdError"; + +const _abi = [ + { + inputs: [], + name: "arithmeticError", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "assertionError", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "divisionError", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "encodeStorageError", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "enumConversionError", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "indexOOBError", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "memOverflowError", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "popError", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "zeroVarError", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +const _bytecode = + "0x60808060405234601957610325908161001f823930815050f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c90816305ee86121461023f57508063103329771461020a5780631de45560146101d55780638995290f146101a0578063986c5f681461016b578063b22dc54d14610136578063b67689da14610101578063d160e4de146100cc5763fa784a441461008257600080fd5b60003660031901126100c7576100c3604051634e487b7160e01b602082015260126024820152602481526100b760448261026e565b604051918291826102a6565b0390f35b600080fd5b60003660031901126100c7576100c3604051634e487b7160e01b602082015260226024820152602481526100b760448261026e565b60003660031901126100c7576100c3604051634e487b7160e01b602082015260516024820152602481526100b760448261026e565b60003660031901126100c7576100c3604051634e487b7160e01b602082015260316024820152602481526100b760448261026e565b60003660031901126100c7576100c3604051634e487b7160e01b602082015260416024820152602481526100b760448261026e565b60003660031901126100c7576100c3604051634e487b7160e01b602082015260116024820152602481526100b760448261026e565b60003660031901126100c7576100c3604051634e487b7160e01b602082015260216024820152602481526100b760448261026e565b60003660031901126100c7576100c3604051634e487b7160e01b602082015260016024820152602481526100b760448261026e565b60003660031901126100c7576100c390634e487b7160e01b602082015260326024820152602481526100b76044825b90601f8019910116810190811067ffffffffffffffff82111761029057604052565b634e487b7160e01b600052604160045260246000fd5b91909160208152825180602083015260005b8181106102d9575060409293506000838284010152601f8019910116010190565b80602080928701015160408286010152016102b856fea26469706673582212204ed919a7790d42029c2b80962c84b5151a1deb225f087222b249e206c254860764736f6c634300081a0033"; + +type StdErrorConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: StdErrorConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class StdError__factory extends ContractFactory { + constructor(...args: StdErrorConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + StdError & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): StdError__factory { + return super.connect(runner) as StdError__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): StdErrorInterface { + return new Interface(_abi) as StdErrorInterface; + } + static connect(address: string, runner?: ContractRunner | null): StdError { + return new Contract(address, _abi, runner) as unknown as StdError; + } +} diff --git a/typechain-types/factories/forge-std/StdError.sol/index.ts b/typechain-types/factories/forge-std/StdError.sol/index.ts new file mode 100644 index 00000000..5c898ac1 --- /dev/null +++ b/typechain-types/factories/forge-std/StdError.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { StdError__factory } from "./StdError__factory"; diff --git a/typechain-types/factories/forge-std/StdInvariant__factory.ts b/typechain-types/factories/forge-std/StdInvariant__factory.ts new file mode 100644 index 00000000..cf03bc23 --- /dev/null +++ b/typechain-types/factories/forge-std/StdInvariant__factory.ts @@ -0,0 +1,203 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + StdInvariant, + StdInvariantInterface, +} from "../../forge-std/StdInvariant"; + +const _abi = [ + { + inputs: [], + name: "excludeArtifacts", + outputs: [ + { + internalType: "string[]", + name: "excludedArtifacts_", + type: "string[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "excludeContracts", + outputs: [ + { + internalType: "address[]", + name: "excludedContracts_", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "excludeSelectors", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "bytes4[]", + name: "selectors", + type: "bytes4[]", + }, + ], + internalType: "struct StdInvariant.FuzzSelector[]", + name: "excludedSelectors_", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "excludeSenders", + outputs: [ + { + internalType: "address[]", + name: "excludedSenders_", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetArtifactSelectors", + outputs: [ + { + components: [ + { + internalType: "string", + name: "artifact", + type: "string", + }, + { + internalType: "bytes4[]", + name: "selectors", + type: "bytes4[]", + }, + ], + internalType: "struct StdInvariant.FuzzArtifactSelector[]", + name: "targetedArtifactSelectors_", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetArtifacts", + outputs: [ + { + internalType: "string[]", + name: "targetedArtifacts_", + type: "string[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetContracts", + outputs: [ + { + internalType: "address[]", + name: "targetedContracts_", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetInterfaces", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "string[]", + name: "artifacts", + type: "string[]", + }, + ], + internalType: "struct StdInvariant.FuzzInterface[]", + name: "targetedInterfaces_", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetSelectors", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "bytes4[]", + name: "selectors", + type: "bytes4[]", + }, + ], + internalType: "struct StdInvariant.FuzzSelector[]", + name: "targetedSelectors_", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetSenders", + outputs: [ + { + internalType: "address[]", + name: "targetedSenders_", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +export class StdInvariant__factory { + static readonly abi = _abi; + static createInterface(): StdInvariantInterface { + return new Interface(_abi) as StdInvariantInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): StdInvariant { + return new Contract(address, _abi, runner) as unknown as StdInvariant; + } +} diff --git a/typechain-types/factories/forge-std/StdStorage.sol/StdStorageSafe__factory.ts b/typechain-types/factories/forge-std/StdStorage.sol/StdStorageSafe__factory.ts new file mode 100644 index 00000000..1d99e5a0 --- /dev/null +++ b/typechain-types/factories/forge-std/StdStorage.sol/StdStorageSafe__factory.ts @@ -0,0 +1,117 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../common"; +import type { + StdStorageSafe, + StdStorageSafeInterface, +} from "../../../forge-std/StdStorage.sol/StdStorageSafe"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "who", + type: "address", + }, + { + indexed: false, + internalType: "bytes4", + name: "fsig", + type: "bytes4", + }, + { + indexed: false, + internalType: "bytes32", + name: "keysHash", + type: "bytes32", + }, + { + indexed: false, + internalType: "uint256", + name: "slot", + type: "uint256", + }, + ], + name: "SlotFound", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "who", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "slot", + type: "uint256", + }, + ], + name: "WARNING_UninitedSlot", + type: "event", + }, +] as const; + +const _bytecode = + "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea264697066735822122002a089c13eab48f6d20359918b892f933ee63061fdbe567c8840fc2b45763a6f64736f6c634300081a0033"; + +type StdStorageSafeConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: StdStorageSafeConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class StdStorageSafe__factory extends ContractFactory { + constructor(...args: StdStorageSafeConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + StdStorageSafe & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): StdStorageSafe__factory { + return super.connect(runner) as StdStorageSafe__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): StdStorageSafeInterface { + return new Interface(_abi) as StdStorageSafeInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): StdStorageSafe { + return new Contract(address, _abi, runner) as unknown as StdStorageSafe; + } +} diff --git a/typechain-types/factories/forge-std/StdStorage.sol/index.ts b/typechain-types/factories/forge-std/StdStorage.sol/index.ts new file mode 100644 index 00000000..4f4de1e2 --- /dev/null +++ b/typechain-types/factories/forge-std/StdStorage.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { StdStorageSafe__factory } from "./StdStorageSafe__factory"; diff --git a/typechain-types/factories/forge-std/Test__factory.ts b/typechain-types/factories/forge-std/Test__factory.ts new file mode 100644 index 00000000..ae008cdc --- /dev/null +++ b/typechain-types/factories/forge-std/Test__factory.ts @@ -0,0 +1,587 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { Test, TestInterface } from "../../forge-std/Test"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "", + type: "string", + }, + ], + name: "log", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "", + type: "address", + }, + ], + name: "log_address", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256[]", + name: "val", + type: "uint256[]", + }, + ], + name: "log_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "int256[]", + name: "val", + type: "int256[]", + }, + ], + name: "log_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address[]", + name: "val", + type: "address[]", + }, + ], + name: "log_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + name: "log_bytes", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + name: "log_bytes32", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "int256", + name: "", + type: "int256", + }, + ], + name: "log_int", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "address", + name: "val", + type: "address", + }, + ], + name: "log_named_address", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "uint256[]", + name: "val", + type: "uint256[]", + }, + ], + name: "log_named_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "int256[]", + name: "val", + type: "int256[]", + }, + ], + name: "log_named_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "address[]", + name: "val", + type: "address[]", + }, + ], + name: "log_named_array", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "bytes", + name: "val", + type: "bytes", + }, + ], + name: "log_named_bytes", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "bytes32", + name: "val", + type: "bytes32", + }, + ], + name: "log_named_bytes32", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "int256", + name: "val", + type: "int256", + }, + { + indexed: false, + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "log_named_decimal_int", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "uint256", + name: "val", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "log_named_decimal_uint", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "int256", + name: "val", + type: "int256", + }, + ], + name: "log_named_int", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "string", + name: "val", + type: "string", + }, + ], + name: "log_named_string", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "uint256", + name: "val", + type: "uint256", + }, + ], + name: "log_named_uint", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "", + type: "string", + }, + ], + name: "log_string", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "log_uint", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + name: "logs", + type: "event", + }, + { + inputs: [], + name: "IS_TEST", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "excludeArtifacts", + outputs: [ + { + internalType: "string[]", + name: "excludedArtifacts_", + type: "string[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "excludeContracts", + outputs: [ + { + internalType: "address[]", + name: "excludedContracts_", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "excludeSelectors", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "bytes4[]", + name: "selectors", + type: "bytes4[]", + }, + ], + internalType: "struct StdInvariant.FuzzSelector[]", + name: "excludedSelectors_", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "excludeSenders", + outputs: [ + { + internalType: "address[]", + name: "excludedSenders_", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "failed", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetArtifactSelectors", + outputs: [ + { + components: [ + { + internalType: "string", + name: "artifact", + type: "string", + }, + { + internalType: "bytes4[]", + name: "selectors", + type: "bytes4[]", + }, + ], + internalType: "struct StdInvariant.FuzzArtifactSelector[]", + name: "targetedArtifactSelectors_", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetArtifacts", + outputs: [ + { + internalType: "string[]", + name: "targetedArtifacts_", + type: "string[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetContracts", + outputs: [ + { + internalType: "address[]", + name: "targetedContracts_", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetInterfaces", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "string[]", + name: "artifacts", + type: "string[]", + }, + ], + internalType: "struct StdInvariant.FuzzInterface[]", + name: "targetedInterfaces_", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetSelectors", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "bytes4[]", + name: "selectors", + type: "bytes4[]", + }, + ], + internalType: "struct StdInvariant.FuzzSelector[]", + name: "targetedSelectors_", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "targetSenders", + outputs: [ + { + internalType: "address[]", + name: "targetedSenders_", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +export class Test__factory { + static readonly abi = _abi; + static createInterface(): TestInterface { + return new Interface(_abi) as TestInterface; + } + static connect(address: string, runner?: ContractRunner | null): Test { + return new Contract(address, _abi, runner) as unknown as Test; + } +} diff --git a/typechain-types/factories/forge-std/Vm.sol/VmSafe__factory.ts b/typechain-types/factories/forge-std/Vm.sol/VmSafe__factory.ts new file mode 100644 index 00000000..a86056f7 --- /dev/null +++ b/typechain-types/factories/forge-std/Vm.sol/VmSafe__factory.ts @@ -0,0 +1,9077 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { VmSafe, VmSafeInterface } from "../../../forge-std/Vm.sol/VmSafe"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + ], + name: "accesses", + outputs: [ + { + internalType: "bytes32[]", + name: "readSlots", + type: "bytes32[]", + }, + { + internalType: "bytes32[]", + name: "writeSlots", + type: "bytes32[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + name: "addr", + outputs: [ + { + internalType: "address", + name: "keyAddr", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "maxDelta", + type: "uint256", + }, + ], + name: "assertApproxEqAbs", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "maxDelta", + type: "uint256", + }, + ], + name: "assertApproxEqAbs", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "maxDelta", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertApproxEqAbs", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "maxDelta", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertApproxEqAbs", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "maxDelta", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertApproxEqAbsDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "maxDelta", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertApproxEqAbsDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "maxDelta", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertApproxEqAbsDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "maxDelta", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertApproxEqAbsDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "maxPercentDelta", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertApproxEqRel", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "maxPercentDelta", + type: "uint256", + }, + ], + name: "assertApproxEqRel", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "maxPercentDelta", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertApproxEqRel", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "maxPercentDelta", + type: "uint256", + }, + ], + name: "assertApproxEqRel", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "maxPercentDelta", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertApproxEqRelDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "maxPercentDelta", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertApproxEqRelDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "maxPercentDelta", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertApproxEqRelDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "maxPercentDelta", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertApproxEqRelDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32[]", + name: "left", + type: "bytes32[]", + }, + { + internalType: "bytes32[]", + name: "right", + type: "bytes32[]", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256[]", + name: "left", + type: "int256[]", + }, + { + internalType: "int256[]", + name: "right", + type: "int256[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "left", + type: "address", + }, + { + internalType: "address", + name: "right", + type: "address", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "left", + type: "string", + }, + { + internalType: "string", + name: "right", + type: "string", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address[]", + name: "left", + type: "address[]", + }, + { + internalType: "address[]", + name: "right", + type: "address[]", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address[]", + name: "left", + type: "address[]", + }, + { + internalType: "address[]", + name: "right", + type: "address[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "left", + type: "bool", + }, + { + internalType: "bool", + name: "right", + type: "bool", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "left", + type: "address", + }, + { + internalType: "address", + name: "right", + type: "address", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256[]", + name: "left", + type: "uint256[]", + }, + { + internalType: "uint256[]", + name: "right", + type: "uint256[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool[]", + name: "left", + type: "bool[]", + }, + { + internalType: "bool[]", + name: "right", + type: "bool[]", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256[]", + name: "left", + type: "int256[]", + }, + { + internalType: "int256[]", + name: "right", + type: "int256[]", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "left", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "right", + type: "bytes32", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256[]", + name: "left", + type: "uint256[]", + }, + { + internalType: "uint256[]", + name: "right", + type: "uint256[]", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "left", + type: "bytes", + }, + { + internalType: "bytes", + name: "right", + type: "bytes", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "left", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "right", + type: "bytes32", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string[]", + name: "left", + type: "string[]", + }, + { + internalType: "string[]", + name: "right", + type: "string[]", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32[]", + name: "left", + type: "bytes32[]", + }, + { + internalType: "bytes32[]", + name: "right", + type: "bytes32[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "left", + type: "bytes", + }, + { + internalType: "bytes", + name: "right", + type: "bytes", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool[]", + name: "left", + type: "bool[]", + }, + { + internalType: "bool[]", + name: "right", + type: "bool[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes[]", + name: "left", + type: "bytes[]", + }, + { + internalType: "bytes[]", + name: "right", + type: "bytes[]", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string[]", + name: "left", + type: "string[]", + }, + { + internalType: "string[]", + name: "right", + type: "string[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "left", + type: "string", + }, + { + internalType: "string", + name: "right", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes[]", + name: "left", + type: "bytes[]", + }, + { + internalType: "bytes[]", + name: "right", + type: "bytes[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "left", + type: "bool", + }, + { + internalType: "bool", + name: "right", + type: "bool", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertEqDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertEqDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEqDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEqDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "condition", + type: "bool", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertFalse", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "condition", + type: "bool", + }, + ], + name: "assertFalse", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + ], + name: "assertGe", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertGe", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + ], + name: "assertGe", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertGe", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertGeDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertGeDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertGeDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertGeDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + ], + name: "assertGt", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertGt", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + ], + name: "assertGt", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertGt", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertGtDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertGtDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertGtDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertGtDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertLe", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + ], + name: "assertLe", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + ], + name: "assertLe", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertLe", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertLeDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertLeDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertLeDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertLeDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + ], + name: "assertLt", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertLt", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertLt", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + ], + name: "assertLt", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertLtDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertLtDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertLtDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertLtDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32[]", + name: "left", + type: "bytes32[]", + }, + { + internalType: "bytes32[]", + name: "right", + type: "bytes32[]", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256[]", + name: "left", + type: "int256[]", + }, + { + internalType: "int256[]", + name: "right", + type: "int256[]", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "left", + type: "bool", + }, + { + internalType: "bool", + name: "right", + type: "bool", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes[]", + name: "left", + type: "bytes[]", + }, + { + internalType: "bytes[]", + name: "right", + type: "bytes[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "left", + type: "bool", + }, + { + internalType: "bool", + name: "right", + type: "bool", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool[]", + name: "left", + type: "bool[]", + }, + { + internalType: "bool[]", + name: "right", + type: "bool[]", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "left", + type: "bytes", + }, + { + internalType: "bytes", + name: "right", + type: "bytes", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address[]", + name: "left", + type: "address[]", + }, + { + internalType: "address[]", + name: "right", + type: "address[]", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256[]", + name: "left", + type: "uint256[]", + }, + { + internalType: "uint256[]", + name: "right", + type: "uint256[]", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool[]", + name: "left", + type: "bool[]", + }, + { + internalType: "bool[]", + name: "right", + type: "bool[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "left", + type: "string", + }, + { + internalType: "string", + name: "right", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address[]", + name: "left", + type: "address[]", + }, + { + internalType: "address[]", + name: "right", + type: "address[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "left", + type: "string", + }, + { + internalType: "string", + name: "right", + type: "string", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "left", + type: "address", + }, + { + internalType: "address", + name: "right", + type: "address", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "left", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "right", + type: "bytes32", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "left", + type: "bytes", + }, + { + internalType: "bytes", + name: "right", + type: "bytes", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256[]", + name: "left", + type: "uint256[]", + }, + { + internalType: "uint256[]", + name: "right", + type: "uint256[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "left", + type: "address", + }, + { + internalType: "address", + name: "right", + type: "address", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "left", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "right", + type: "bytes32", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string[]", + name: "left", + type: "string[]", + }, + { + internalType: "string[]", + name: "right", + type: "string[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32[]", + name: "left", + type: "bytes32[]", + }, + { + internalType: "bytes32[]", + name: "right", + type: "bytes32[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string[]", + name: "left", + type: "string[]", + }, + { + internalType: "string[]", + name: "right", + type: "string[]", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256[]", + name: "left", + type: "int256[]", + }, + { + internalType: "int256[]", + name: "right", + type: "int256[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes[]", + name: "left", + type: "bytes[]", + }, + { + internalType: "bytes[]", + name: "right", + type: "bytes[]", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertNotEqDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEqDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertNotEqDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEqDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "condition", + type: "bool", + }, + ], + name: "assertTrue", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "condition", + type: "bool", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertTrue", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "condition", + type: "bool", + }, + ], + name: "assume", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "assumeNoRevert", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "reverter", + type: "address", + }, + { + internalType: "bool", + name: "partialMatch", + type: "bool", + }, + { + internalType: "bytes", + name: "revertData", + type: "bytes", + }, + ], + internalType: "struct VmSafe.PotentialRevert[]", + name: "potentialReverts", + type: "tuple[]", + }, + ], + name: "assumeNoRevert", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "reverter", + type: "address", + }, + { + internalType: "bool", + name: "partialMatch", + type: "bool", + }, + { + internalType: "bytes", + name: "revertData", + type: "bytes", + }, + ], + internalType: "struct VmSafe.PotentialRevert", + name: "potentialRevert", + type: "tuple", + }, + ], + name: "assumeNoRevert", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "blob", + type: "bytes", + }, + ], + name: "attachBlob", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + { + internalType: "uint64", + name: "nonce", + type: "uint64", + }, + { + internalType: "address", + name: "implementation", + type: "address", + }, + ], + internalType: "struct VmSafe.SignedDelegation", + name: "signedDelegation", + type: "tuple", + }, + ], + name: "attachDelegation", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "char", + type: "string", + }, + ], + name: "breakpoint", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "char", + type: "string", + }, + { + internalType: "bool", + name: "value", + type: "bool", + }, + ], + name: "breakpoint", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "broadcast", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "signer", + type: "address", + }, + ], + name: "broadcast", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + name: "broadcast", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "broadcastRawTransaction", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "closeFile", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "salt", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "initCodeHash", + type: "bytes32", + }, + ], + name: "computeCreate2Address", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "salt", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "initCodeHash", + type: "bytes32", + }, + { + internalType: "address", + name: "deployer", + type: "address", + }, + ], + name: "computeCreate2Address", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "deployer", + type: "address", + }, + { + internalType: "uint256", + name: "nonce", + type: "uint256", + }, + ], + name: "computeCreateAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "subject", + type: "string", + }, + { + internalType: "string", + name: "search", + type: "string", + }, + ], + name: "contains", + outputs: [ + { + internalType: "bool", + name: "result", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "from", + type: "string", + }, + { + internalType: "string", + name: "to", + type: "string", + }, + ], + name: "copyFile", + outputs: [ + { + internalType: "uint64", + name: "copied", + type: "uint64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + ], + name: "copyStorage", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "bool", + name: "recursive", + type: "bool", + }, + ], + name: "createDir", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "walletLabel", + type: "string", + }, + ], + name: "createWallet", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "uint256", + name: "publicKeyX", + type: "uint256", + }, + { + internalType: "uint256", + name: "publicKeyY", + type: "uint256", + }, + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + internalType: "struct VmSafe.Wallet", + name: "wallet", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + name: "createWallet", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "uint256", + name: "publicKeyX", + type: "uint256", + }, + { + internalType: "uint256", + name: "publicKeyY", + type: "uint256", + }, + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + internalType: "struct VmSafe.Wallet", + name: "wallet", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + { + internalType: "string", + name: "walletLabel", + type: "string", + }, + ], + name: "createWallet", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "uint256", + name: "publicKeyX", + type: "uint256", + }, + { + internalType: "uint256", + name: "publicKeyY", + type: "uint256", + }, + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + internalType: "struct VmSafe.Wallet", + name: "wallet", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "artifactPath", + type: "string", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "bytes32", + name: "salt", + type: "bytes32", + }, + ], + name: "deployCode", + outputs: [ + { + internalType: "address", + name: "deployedAddress", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "artifactPath", + type: "string", + }, + { + internalType: "bytes", + name: "constructorArgs", + type: "bytes", + }, + { + internalType: "bytes32", + name: "salt", + type: "bytes32", + }, + ], + name: "deployCode", + outputs: [ + { + internalType: "address", + name: "deployedAddress", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "artifactPath", + type: "string", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "deployCode", + outputs: [ + { + internalType: "address", + name: "deployedAddress", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "artifactPath", + type: "string", + }, + { + internalType: "bytes32", + name: "salt", + type: "bytes32", + }, + ], + name: "deployCode", + outputs: [ + { + internalType: "address", + name: "deployedAddress", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "artifactPath", + type: "string", + }, + { + internalType: "bytes", + name: "constructorArgs", + type: "bytes", + }, + ], + name: "deployCode", + outputs: [ + { + internalType: "address", + name: "deployedAddress", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "artifactPath", + type: "string", + }, + { + internalType: "bytes", + name: "constructorArgs", + type: "bytes", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "bytes32", + name: "salt", + type: "bytes32", + }, + ], + name: "deployCode", + outputs: [ + { + internalType: "address", + name: "deployedAddress", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "artifactPath", + type: "string", + }, + ], + name: "deployCode", + outputs: [ + { + internalType: "address", + name: "deployedAddress", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "artifactPath", + type: "string", + }, + { + internalType: "bytes", + name: "constructorArgs", + type: "bytes", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "deployCode", + outputs: [ + { + internalType: "address", + name: "deployedAddress", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "mnemonic", + type: "string", + }, + { + internalType: "string", + name: "derivationPath", + type: "string", + }, + { + internalType: "uint32", + name: "index", + type: "uint32", + }, + { + internalType: "string", + name: "language", + type: "string", + }, + ], + name: "deriveKey", + outputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "mnemonic", + type: "string", + }, + { + internalType: "uint32", + name: "index", + type: "uint32", + }, + { + internalType: "string", + name: "language", + type: "string", + }, + ], + name: "deriveKey", + outputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "mnemonic", + type: "string", + }, + { + internalType: "uint32", + name: "index", + type: "uint32", + }, + ], + name: "deriveKey", + outputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "mnemonic", + type: "string", + }, + { + internalType: "string", + name: "derivationPath", + type: "string", + }, + { + internalType: "uint32", + name: "index", + type: "uint32", + }, + ], + name: "deriveKey", + outputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "ensNamehash", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "envAddress", + outputs: [ + { + internalType: "address", + name: "value", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + ], + name: "envAddress", + outputs: [ + { + internalType: "address[]", + name: "value", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "envBool", + outputs: [ + { + internalType: "bool", + name: "value", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + ], + name: "envBool", + outputs: [ + { + internalType: "bool[]", + name: "value", + type: "bool[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "envBytes", + outputs: [ + { + internalType: "bytes", + name: "value", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + ], + name: "envBytes", + outputs: [ + { + internalType: "bytes[]", + name: "value", + type: "bytes[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + ], + name: "envBytes32", + outputs: [ + { + internalType: "bytes32[]", + name: "value", + type: "bytes32[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "envBytes32", + outputs: [ + { + internalType: "bytes32", + name: "value", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "envExists", + outputs: [ + { + internalType: "bool", + name: "result", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + ], + name: "envInt", + outputs: [ + { + internalType: "int256[]", + name: "value", + type: "int256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "envInt", + outputs: [ + { + internalType: "int256", + name: "value", + type: "int256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + { + internalType: "bytes32[]", + name: "defaultValue", + type: "bytes32[]", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "bytes32[]", + name: "value", + type: "bytes32[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + { + internalType: "int256[]", + name: "defaultValue", + type: "int256[]", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "int256[]", + name: "value", + type: "int256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "bool", + name: "defaultValue", + type: "bool", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "bool", + name: "value", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "address", + name: "defaultValue", + type: "address", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "address", + name: "value", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "uint256", + name: "defaultValue", + type: "uint256", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + { + internalType: "bytes[]", + name: "defaultValue", + type: "bytes[]", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "bytes[]", + name: "value", + type: "bytes[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + { + internalType: "uint256[]", + name: "defaultValue", + type: "uint256[]", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "uint256[]", + name: "value", + type: "uint256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + { + internalType: "string[]", + name: "defaultValue", + type: "string[]", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "string[]", + name: "value", + type: "string[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "bytes", + name: "defaultValue", + type: "bytes", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "bytes", + name: "value", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "bytes32", + name: "defaultValue", + type: "bytes32", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "bytes32", + name: "value", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "int256", + name: "defaultValue", + type: "int256", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "int256", + name: "value", + type: "int256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + { + internalType: "address[]", + name: "defaultValue", + type: "address[]", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "address[]", + name: "value", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "defaultValue", + type: "string", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "string", + name: "value", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + { + internalType: "bool[]", + name: "defaultValue", + type: "bool[]", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "bool[]", + name: "value", + type: "bool[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + ], + name: "envString", + outputs: [ + { + internalType: "string[]", + name: "value", + type: "string[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "envString", + outputs: [ + { + internalType: "string", + name: "value", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "envUint", + outputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + ], + name: "envUint", + outputs: [ + { + internalType: "uint256[]", + name: "value", + type: "uint256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "fromBlock", + type: "uint256", + }, + { + internalType: "uint256", + name: "toBlock", + type: "uint256", + }, + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes32[]", + name: "topics", + type: "bytes32[]", + }, + ], + name: "eth_getLogs", + outputs: [ + { + components: [ + { + internalType: "address", + name: "emitter", + type: "address", + }, + { + internalType: "bytes32[]", + name: "topics", + type: "bytes32[]", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "bytes32", + name: "blockHash", + type: "bytes32", + }, + { + internalType: "uint64", + name: "blockNumber", + type: "uint64", + }, + { + internalType: "bytes32", + name: "transactionHash", + type: "bytes32", + }, + { + internalType: "uint64", + name: "transactionIndex", + type: "uint64", + }, + { + internalType: "uint256", + name: "logIndex", + type: "uint256", + }, + { + internalType: "bool", + name: "removed", + type: "bool", + }, + ], + internalType: "struct VmSafe.EthGetLogs[]", + name: "logs", + type: "tuple[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "exists", + outputs: [ + { + internalType: "bool", + name: "result", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string[]", + name: "commandInput", + type: "string[]", + }, + ], + name: "ffi", + outputs: [ + { + internalType: "bytes", + name: "result", + type: "bytes", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "version", + type: "string", + }, + ], + name: "foundryVersionAtLeast", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "version", + type: "string", + }, + ], + name: "foundryVersionCmp", + outputs: [ + { + internalType: "int256", + name: "", + type: "int256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "fsMetadata", + outputs: [ + { + components: [ + { + internalType: "bool", + name: "isDir", + type: "bool", + }, + { + internalType: "bool", + name: "isSymlink", + type: "bool", + }, + { + internalType: "uint256", + name: "length", + type: "uint256", + }, + { + internalType: "bool", + name: "readOnly", + type: "bool", + }, + { + internalType: "uint256", + name: "modified", + type: "uint256", + }, + { + internalType: "uint256", + name: "accessed", + type: "uint256", + }, + { + internalType: "uint256", + name: "created", + type: "uint256", + }, + ], + internalType: "struct VmSafe.FsMetadata", + name: "metadata", + type: "tuple", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "code", + type: "bytes", + }, + ], + name: "getArtifactPathByCode", + outputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "deployedCode", + type: "bytes", + }, + ], + name: "getArtifactPathByDeployedCode", + outputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getBlobBaseFee", + outputs: [ + { + internalType: "uint256", + name: "blobBaseFee", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getBlockNumber", + outputs: [ + { + internalType: "uint256", + name: "height", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getBlockTimestamp", + outputs: [ + { + internalType: "uint256", + name: "timestamp", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "contractName", + type: "string", + }, + { + internalType: "uint64", + name: "chainId", + type: "uint64", + }, + { + internalType: "enum VmSafe.BroadcastTxType", + name: "txType", + type: "uint8", + }, + ], + name: "getBroadcast", + outputs: [ + { + components: [ + { + internalType: "bytes32", + name: "txHash", + type: "bytes32", + }, + { + internalType: "enum VmSafe.BroadcastTxType", + name: "txType", + type: "uint8", + }, + { + internalType: "address", + name: "contractAddress", + type: "address", + }, + { + internalType: "uint64", + name: "blockNumber", + type: "uint64", + }, + { + internalType: "bool", + name: "success", + type: "bool", + }, + ], + internalType: "struct VmSafe.BroadcastTxSummary", + name: "", + type: "tuple", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "contractName", + type: "string", + }, + { + internalType: "uint64", + name: "chainId", + type: "uint64", + }, + ], + name: "getBroadcasts", + outputs: [ + { + components: [ + { + internalType: "bytes32", + name: "txHash", + type: "bytes32", + }, + { + internalType: "enum VmSafe.BroadcastTxType", + name: "txType", + type: "uint8", + }, + { + internalType: "address", + name: "contractAddress", + type: "address", + }, + { + internalType: "uint64", + name: "blockNumber", + type: "uint64", + }, + { + internalType: "bool", + name: "success", + type: "bool", + }, + ], + internalType: "struct VmSafe.BroadcastTxSummary[]", + name: "", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "contractName", + type: "string", + }, + { + internalType: "uint64", + name: "chainId", + type: "uint64", + }, + { + internalType: "enum VmSafe.BroadcastTxType", + name: "txType", + type: "uint8", + }, + ], + name: "getBroadcasts", + outputs: [ + { + components: [ + { + internalType: "bytes32", + name: "txHash", + type: "bytes32", + }, + { + internalType: "enum VmSafe.BroadcastTxType", + name: "txType", + type: "uint8", + }, + { + internalType: "address", + name: "contractAddress", + type: "address", + }, + { + internalType: "uint64", + name: "blockNumber", + type: "uint64", + }, + { + internalType: "bool", + name: "success", + type: "bool", + }, + ], + internalType: "struct VmSafe.BroadcastTxSummary[]", + name: "", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "chainAlias", + type: "string", + }, + ], + name: "getChain", + outputs: [ + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "string", + name: "chainAlias", + type: "string", + }, + { + internalType: "string", + name: "rpcUrl", + type: "string", + }, + ], + internalType: "struct VmSafe.Chain", + name: "chain", + type: "tuple", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + ], + name: "getChain", + outputs: [ + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "string", + name: "chainAlias", + type: "string", + }, + { + internalType: "string", + name: "rpcUrl", + type: "string", + }, + ], + internalType: "struct VmSafe.Chain", + name: "chain", + type: "tuple", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "artifactPath", + type: "string", + }, + ], + name: "getCode", + outputs: [ + { + internalType: "bytes", + name: "creationBytecode", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "artifactPath", + type: "string", + }, + ], + name: "getDeployedCode", + outputs: [ + { + internalType: "bytes", + name: "runtimeBytecode", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "contractName", + type: "string", + }, + { + internalType: "uint64", + name: "chainId", + type: "uint64", + }, + ], + name: "getDeployment", + outputs: [ + { + internalType: "address", + name: "deployedAddress", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "contractName", + type: "string", + }, + ], + name: "getDeployment", + outputs: [ + { + internalType: "address", + name: "deployedAddress", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "contractName", + type: "string", + }, + { + internalType: "uint64", + name: "chainId", + type: "uint64", + }, + ], + name: "getDeployments", + outputs: [ + { + internalType: "address[]", + name: "deployedAddresses", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getFoundryVersion", + outputs: [ + { + internalType: "string", + name: "version", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "getLabel", + outputs: [ + { + internalType: "string", + name: "currentLabel", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes32", + name: "elementSlot", + type: "bytes32", + }, + ], + name: "getMappingKeyAndParentOf", + outputs: [ + { + internalType: "bool", + name: "found", + type: "bool", + }, + { + internalType: "bytes32", + name: "key", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "parent", + type: "bytes32", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes32", + name: "mappingSlot", + type: "bytes32", + }, + ], + name: "getMappingLength", + outputs: [ + { + internalType: "uint256", + name: "length", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes32", + name: "mappingSlot", + type: "bytes32", + }, + { + internalType: "uint256", + name: "idx", + type: "uint256", + }, + ], + name: "getMappingSlotAt", + outputs: [ + { + internalType: "bytes32", + name: "value", + type: "bytes32", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "getNonce", + outputs: [ + { + internalType: "uint64", + name: "nonce", + type: "uint64", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "uint256", + name: "publicKeyX", + type: "uint256", + }, + { + internalType: "uint256", + name: "publicKeyY", + type: "uint256", + }, + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + internalType: "struct VmSafe.Wallet", + name: "wallet", + type: "tuple", + }, + ], + name: "getNonce", + outputs: [ + { + internalType: "uint64", + name: "nonce", + type: "uint64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "getRecordedLogs", + outputs: [ + { + components: [ + { + internalType: "bytes32[]", + name: "topics", + type: "bytes32[]", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "address", + name: "emitter", + type: "address", + }, + ], + internalType: "struct VmSafe.Log[]", + name: "logs", + type: "tuple[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "getStateDiff", + outputs: [ + { + internalType: "string", + name: "diff", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getStateDiffJson", + outputs: [ + { + internalType: "string", + name: "diff", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getWallets", + outputs: [ + { + internalType: "address[]", + name: "wallets", + type: "address[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "input", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "indexOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "enum VmSafe.ForgeContext", + name: "context", + type: "uint8", + }, + ], + name: "isContext", + outputs: [ + { + internalType: "bool", + name: "result", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "isDir", + outputs: [ + { + internalType: "bool", + name: "result", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "isFile", + outputs: [ + { + internalType: "bool", + name: "result", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "keyExists", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "keyExistsJson", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "keyExistsToml", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "string", + name: "newLabel", + type: "string", + }, + ], + name: "label", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "lastCallGas", + outputs: [ + { + components: [ + { + internalType: "uint64", + name: "gasLimit", + type: "uint64", + }, + { + internalType: "uint64", + name: "gasTotalUsed", + type: "uint64", + }, + { + internalType: "uint64", + name: "gasMemoryUsed", + type: "uint64", + }, + { + internalType: "int64", + name: "gasRefunded", + type: "int64", + }, + { + internalType: "uint64", + name: "gasRemaining", + type: "uint64", + }, + ], + internalType: "struct VmSafe.Gas", + name: "gas", + type: "tuple", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes32", + name: "slot", + type: "bytes32", + }, + ], + name: "load", + outputs: [ + { + internalType: "bytes32", + name: "data", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + name: "parseAddress", + outputs: [ + { + internalType: "address", + name: "parsedValue", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + name: "parseBool", + outputs: [ + { + internalType: "bool", + name: "parsedValue", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + name: "parseBytes", + outputs: [ + { + internalType: "bytes", + name: "parsedValue", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + name: "parseBytes32", + outputs: [ + { + internalType: "bytes32", + name: "parsedValue", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + name: "parseInt", + outputs: [ + { + internalType: "int256", + name: "parsedValue", + type: "int256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + name: "parseJson", + outputs: [ + { + internalType: "bytes", + name: "abiEncodedData", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJson", + outputs: [ + { + internalType: "bytes", + name: "abiEncodedData", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonAddressArray", + outputs: [ + { + internalType: "address[]", + name: "", + type: "address[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonBool", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonBoolArray", + outputs: [ + { + internalType: "bool[]", + name: "", + type: "bool[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonBytes", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonBytes32", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonBytes32Array", + outputs: [ + { + internalType: "bytes32[]", + name: "", + type: "bytes32[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonBytesArray", + outputs: [ + { + internalType: "bytes[]", + name: "", + type: "bytes[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonInt", + outputs: [ + { + internalType: "int256", + name: "", + type: "int256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonIntArray", + outputs: [ + { + internalType: "int256[]", + name: "", + type: "int256[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonKeys", + outputs: [ + { + internalType: "string[]", + name: "keys", + type: "string[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonString", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonStringArray", + outputs: [ + { + internalType: "string[]", + name: "", + type: "string[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "typeDescription", + type: "string", + }, + ], + name: "parseJsonType", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + { + internalType: "string", + name: "typeDescription", + type: "string", + }, + ], + name: "parseJsonType", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + { + internalType: "string", + name: "typeDescription", + type: "string", + }, + ], + name: "parseJsonTypeArray", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonUint", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonUintArray", + outputs: [ + { + internalType: "uint256[]", + name: "", + type: "uint256[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseToml", + outputs: [ + { + internalType: "bytes", + name: "abiEncodedData", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + ], + name: "parseToml", + outputs: [ + { + internalType: "bytes", + name: "abiEncodedData", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlAddressArray", + outputs: [ + { + internalType: "address[]", + name: "", + type: "address[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlBool", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlBoolArray", + outputs: [ + { + internalType: "bool[]", + name: "", + type: "bool[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlBytes", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlBytes32", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlBytes32Array", + outputs: [ + { + internalType: "bytes32[]", + name: "", + type: "bytes32[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlBytesArray", + outputs: [ + { + internalType: "bytes[]", + name: "", + type: "bytes[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlInt", + outputs: [ + { + internalType: "int256", + name: "", + type: "int256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlIntArray", + outputs: [ + { + internalType: "int256[]", + name: "", + type: "int256[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlKeys", + outputs: [ + { + internalType: "string[]", + name: "keys", + type: "string[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlString", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlStringArray", + outputs: [ + { + internalType: "string[]", + name: "", + type: "string[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "typeDescription", + type: "string", + }, + ], + name: "parseTomlType", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + { + internalType: "string", + name: "typeDescription", + type: "string", + }, + ], + name: "parseTomlType", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + { + internalType: "string", + name: "typeDescription", + type: "string", + }, + ], + name: "parseTomlTypeArray", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlUint", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlUintArray", + outputs: [ + { + internalType: "uint256[]", + name: "", + type: "uint256[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + name: "parseUint", + outputs: [ + { + internalType: "uint256", + name: "parsedValue", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "pauseGasMetering", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "pauseTracing", + outputs: [], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "projectRoot", + outputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "promptText", + type: "string", + }, + ], + name: "prompt", + outputs: [ + { + internalType: "string", + name: "input", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "promptText", + type: "string", + }, + ], + name: "promptAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "promptText", + type: "string", + }, + ], + name: "promptSecret", + outputs: [ + { + internalType: "string", + name: "input", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "promptText", + type: "string", + }, + ], + name: "promptSecretUint", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "promptText", + type: "string", + }, + ], + name: "promptUint", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + name: "publicKeyP256", + outputs: [ + { + internalType: "uint256", + name: "publicKeyX", + type: "uint256", + }, + { + internalType: "uint256", + name: "publicKeyY", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "randomAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "randomBool", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "len", + type: "uint256", + }, + ], + name: "randomBytes", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "randomBytes4", + outputs: [ + { + internalType: "bytes4", + name: "", + type: "bytes4", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "randomBytes8", + outputs: [ + { + internalType: "bytes8", + name: "", + type: "bytes8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "randomInt", + outputs: [ + { + internalType: "int256", + name: "", + type: "int256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "bits", + type: "uint256", + }, + ], + name: "randomInt", + outputs: [ + { + internalType: "int256", + name: "", + type: "int256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "randomUint", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "bits", + type: "uint256", + }, + ], + name: "randomUint", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "min", + type: "uint256", + }, + { + internalType: "uint256", + name: "max", + type: "uint256", + }, + ], + name: "randomUint", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "uint64", + name: "maxDepth", + type: "uint64", + }, + ], + name: "readDir", + outputs: [ + { + components: [ + { + internalType: "string", + name: "errorMessage", + type: "string", + }, + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "uint64", + name: "depth", + type: "uint64", + }, + { + internalType: "bool", + name: "isDir", + type: "bool", + }, + { + internalType: "bool", + name: "isSymlink", + type: "bool", + }, + ], + internalType: "struct VmSafe.DirEntry[]", + name: "entries", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "uint64", + name: "maxDepth", + type: "uint64", + }, + { + internalType: "bool", + name: "followLinks", + type: "bool", + }, + ], + name: "readDir", + outputs: [ + { + components: [ + { + internalType: "string", + name: "errorMessage", + type: "string", + }, + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "uint64", + name: "depth", + type: "uint64", + }, + { + internalType: "bool", + name: "isDir", + type: "bool", + }, + { + internalType: "bool", + name: "isSymlink", + type: "bool", + }, + ], + internalType: "struct VmSafe.DirEntry[]", + name: "entries", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "readDir", + outputs: [ + { + components: [ + { + internalType: "string", + name: "errorMessage", + type: "string", + }, + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "uint64", + name: "depth", + type: "uint64", + }, + { + internalType: "bool", + name: "isDir", + type: "bool", + }, + { + internalType: "bool", + name: "isSymlink", + type: "bool", + }, + ], + internalType: "struct VmSafe.DirEntry[]", + name: "entries", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "readFile", + outputs: [ + { + internalType: "string", + name: "data", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "readFileBinary", + outputs: [ + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "readLine", + outputs: [ + { + internalType: "string", + name: "line", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "linkPath", + type: "string", + }, + ], + name: "readLink", + outputs: [ + { + internalType: "string", + name: "targetPath", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "record", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "recordLogs", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + name: "rememberKey", + outputs: [ + { + internalType: "address", + name: "keyAddr", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "mnemonic", + type: "string", + }, + { + internalType: "string", + name: "derivationPath", + type: "string", + }, + { + internalType: "uint32", + name: "count", + type: "uint32", + }, + ], + name: "rememberKeys", + outputs: [ + { + internalType: "address[]", + name: "keyAddrs", + type: "address[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "mnemonic", + type: "string", + }, + { + internalType: "string", + name: "derivationPath", + type: "string", + }, + { + internalType: "string", + name: "language", + type: "string", + }, + { + internalType: "uint32", + name: "count", + type: "uint32", + }, + ], + name: "rememberKeys", + outputs: [ + { + internalType: "address[]", + name: "keyAddrs", + type: "address[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "bool", + name: "recursive", + type: "bool", + }, + ], + name: "removeDir", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "removeFile", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "input", + type: "string", + }, + { + internalType: "string", + name: "from", + type: "string", + }, + { + internalType: "string", + name: "to", + type: "string", + }, + ], + name: "replace", + outputs: [ + { + internalType: "string", + name: "output", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "resetGasMetering", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "resumeGasMetering", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "resumeTracing", + outputs: [], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "urlOrAlias", + type: "string", + }, + { + internalType: "string", + name: "method", + type: "string", + }, + { + internalType: "string", + name: "params", + type: "string", + }, + ], + name: "rpc", + outputs: [ + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "method", + type: "string", + }, + { + internalType: "string", + name: "params", + type: "string", + }, + ], + name: "rpc", + outputs: [ + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "rpcAlias", + type: "string", + }, + ], + name: "rpcUrl", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "rpcUrlStructs", + outputs: [ + { + components: [ + { + internalType: "string", + name: "key", + type: "string", + }, + { + internalType: "string", + name: "url", + type: "string", + }, + ], + internalType: "struct VmSafe.Rpc[]", + name: "urls", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "rpcUrls", + outputs: [ + { + internalType: "string[2][]", + name: "urls", + type: "string[2][]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "address[]", + name: "values", + type: "address[]", + }, + ], + name: "serializeAddress", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "address", + name: "value", + type: "address", + }, + ], + name: "serializeAddress", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "bool[]", + name: "values", + type: "bool[]", + }, + ], + name: "serializeBool", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "bool", + name: "value", + type: "bool", + }, + ], + name: "serializeBool", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "bytes[]", + name: "values", + type: "bytes[]", + }, + ], + name: "serializeBytes", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "bytes", + name: "value", + type: "bytes", + }, + ], + name: "serializeBytes", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "bytes32[]", + name: "values", + type: "bytes32[]", + }, + ], + name: "serializeBytes32", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "bytes32", + name: "value", + type: "bytes32", + }, + ], + name: "serializeBytes32", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "int256", + name: "value", + type: "int256", + }, + ], + name: "serializeInt", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "int256[]", + name: "values", + type: "int256[]", + }, + ], + name: "serializeInt", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "value", + type: "string", + }, + ], + name: "serializeJson", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "typeDescription", + type: "string", + }, + { + internalType: "bytes", + name: "value", + type: "bytes", + }, + ], + name: "serializeJsonType", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "string", + name: "typeDescription", + type: "string", + }, + { + internalType: "bytes", + name: "value", + type: "bytes", + }, + ], + name: "serializeJsonType", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "string[]", + name: "values", + type: "string[]", + }, + ], + name: "serializeString", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "string", + name: "value", + type: "string", + }, + ], + name: "serializeString", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "serializeUint", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "uint256[]", + name: "values", + type: "uint256[]", + }, + ], + name: "serializeUint", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "serializeUintToHex", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bool", + name: "overwrite", + type: "bool", + }, + ], + name: "setArbitraryStorage", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + ], + name: "setArbitraryStorage", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "value", + type: "string", + }, + ], + name: "setEnv", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256[]", + name: "array", + type: "uint256[]", + }, + ], + name: "shuffle", + outputs: [ + { + internalType: "uint256[]", + name: "", + type: "uint256[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "digest", + type: "bytes32", + }, + ], + name: "sign", + outputs: [ + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "signer", + type: "address", + }, + { + internalType: "bytes32", + name: "digest", + type: "bytes32", + }, + ], + name: "sign", + outputs: [ + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "uint256", + name: "publicKeyX", + type: "uint256", + }, + { + internalType: "uint256", + name: "publicKeyY", + type: "uint256", + }, + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + internalType: "struct VmSafe.Wallet", + name: "wallet", + type: "tuple", + }, + { + internalType: "bytes32", + name: "digest", + type: "bytes32", + }, + ], + name: "sign", + outputs: [ + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + { + internalType: "bytes32", + name: "digest", + type: "bytes32", + }, + ], + name: "sign", + outputs: [ + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "implementation", + type: "address", + }, + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + name: "signAndAttachDelegation", + outputs: [ + { + components: [ + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + { + internalType: "uint64", + name: "nonce", + type: "uint64", + }, + { + internalType: "address", + name: "implementation", + type: "address", + }, + ], + internalType: "struct VmSafe.SignedDelegation", + name: "signedDelegation", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "implementation", + type: "address", + }, + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + { + internalType: "uint64", + name: "nonce", + type: "uint64", + }, + ], + name: "signAndAttachDelegation", + outputs: [ + { + components: [ + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + { + internalType: "uint64", + name: "nonce", + type: "uint64", + }, + { + internalType: "address", + name: "implementation", + type: "address", + }, + ], + internalType: "struct VmSafe.SignedDelegation", + name: "signedDelegation", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "uint256", + name: "publicKeyX", + type: "uint256", + }, + { + internalType: "uint256", + name: "publicKeyY", + type: "uint256", + }, + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + internalType: "struct VmSafe.Wallet", + name: "wallet", + type: "tuple", + }, + { + internalType: "bytes32", + name: "digest", + type: "bytes32", + }, + ], + name: "signCompact", + outputs: [ + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "vs", + type: "bytes32", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "signer", + type: "address", + }, + { + internalType: "bytes32", + name: "digest", + type: "bytes32", + }, + ], + name: "signCompact", + outputs: [ + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "vs", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "digest", + type: "bytes32", + }, + ], + name: "signCompact", + outputs: [ + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "vs", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + { + internalType: "bytes32", + name: "digest", + type: "bytes32", + }, + ], + name: "signCompact", + outputs: [ + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "vs", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "implementation", + type: "address", + }, + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + name: "signDelegation", + outputs: [ + { + components: [ + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + { + internalType: "uint64", + name: "nonce", + type: "uint64", + }, + { + internalType: "address", + name: "implementation", + type: "address", + }, + ], + internalType: "struct VmSafe.SignedDelegation", + name: "signedDelegation", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "implementation", + type: "address", + }, + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + { + internalType: "uint64", + name: "nonce", + type: "uint64", + }, + ], + name: "signDelegation", + outputs: [ + { + components: [ + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + { + internalType: "uint64", + name: "nonce", + type: "uint64", + }, + { + internalType: "address", + name: "implementation", + type: "address", + }, + ], + internalType: "struct VmSafe.SignedDelegation", + name: "signedDelegation", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + { + internalType: "bytes32", + name: "digest", + type: "bytes32", + }, + ], + name: "signP256", + outputs: [ + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "duration", + type: "uint256", + }, + ], + name: "sleep", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256[]", + name: "array", + type: "uint256[]", + }, + ], + name: "sort", + outputs: [ + { + internalType: "uint256[]", + name: "", + type: "uint256[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "input", + type: "string", + }, + { + internalType: "string", + name: "delimiter", + type: "string", + }, + ], + name: "split", + outputs: [ + { + internalType: "string[]", + name: "outputs", + type: "string[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "startBroadcast", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "signer", + type: "address", + }, + ], + name: "startBroadcast", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + name: "startBroadcast", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "startDebugTraceRecording", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "startMappingRecording", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "startStateDiffRecording", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "stopAndReturnDebugTraceRecording", + outputs: [ + { + components: [ + { + internalType: "uint256[]", + name: "stack", + type: "uint256[]", + }, + { + internalType: "bytes", + name: "memoryInput", + type: "bytes", + }, + { + internalType: "uint8", + name: "opcode", + type: "uint8", + }, + { + internalType: "uint64", + name: "depth", + type: "uint64", + }, + { + internalType: "bool", + name: "isOutOfGas", + type: "bool", + }, + { + internalType: "address", + name: "contractAddr", + type: "address", + }, + ], + internalType: "struct VmSafe.DebugStep[]", + name: "step", + type: "tuple[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "stopAndReturnStateDiff", + outputs: [ + { + components: [ + { + components: [ + { + internalType: "uint256", + name: "forkId", + type: "uint256", + }, + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + ], + internalType: "struct VmSafe.ChainInfo", + name: "chainInfo", + type: "tuple", + }, + { + internalType: "enum VmSafe.AccountAccessKind", + name: "kind", + type: "uint8", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "address", + name: "accessor", + type: "address", + }, + { + internalType: "bool", + name: "initialized", + type: "bool", + }, + { + internalType: "uint256", + name: "oldBalance", + type: "uint256", + }, + { + internalType: "uint256", + name: "newBalance", + type: "uint256", + }, + { + internalType: "bytes", + name: "deployedCode", + type: "bytes", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "bool", + name: "reverted", + type: "bool", + }, + { + components: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "bytes32", + name: "slot", + type: "bytes32", + }, + { + internalType: "bool", + name: "isWrite", + type: "bool", + }, + { + internalType: "bytes32", + name: "previousValue", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "newValue", + type: "bytes32", + }, + { + internalType: "bool", + name: "reverted", + type: "bool", + }, + ], + internalType: "struct VmSafe.StorageAccess[]", + name: "storageAccesses", + type: "tuple[]", + }, + { + internalType: "uint64", + name: "depth", + type: "uint64", + }, + ], + internalType: "struct VmSafe.AccountAccess[]", + name: "accountAccesses", + type: "tuple[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "stopBroadcast", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "stopMappingRecording", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "data", + type: "string", + }, + ], + name: "toBase64", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "toBase64", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "data", + type: "string", + }, + ], + name: "toBase64URL", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "toBase64URL", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "input", + type: "string", + }, + ], + name: "toLowercase", + outputs: [ + { + internalType: "string", + name: "output", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "value", + type: "address", + }, + ], + name: "toString", + outputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "toString", + outputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "value", + type: "bytes", + }, + ], + name: "toString", + outputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "value", + type: "bool", + }, + ], + name: "toString", + outputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "value", + type: "int256", + }, + ], + name: "toString", + outputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "value", + type: "bytes32", + }, + ], + name: "toString", + outputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "input", + type: "string", + }, + ], + name: "toUppercase", + outputs: [ + { + internalType: "string", + name: "output", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "input", + type: "string", + }, + ], + name: "trim", + outputs: [ + { + internalType: "string", + name: "output", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string[]", + name: "commandInput", + type: "string[]", + }, + ], + name: "tryFfi", + outputs: [ + { + components: [ + { + internalType: "int32", + name: "exitCode", + type: "int32", + }, + { + internalType: "bytes", + name: "stdout", + type: "bytes", + }, + { + internalType: "bytes", + name: "stderr", + type: "bytes", + }, + ], + internalType: "struct VmSafe.FfiResult", + name: "result", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "unixTime", + outputs: [ + { + internalType: "uint256", + name: "milliseconds", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "string", + name: "data", + type: "string", + }, + ], + name: "writeFile", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "writeFileBinary", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + ], + name: "writeJson", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "writeJson", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "string", + name: "data", + type: "string", + }, + ], + name: "writeLine", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + ], + name: "writeToml", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "writeToml", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class VmSafe__factory { + static readonly abi = _abi; + static createInterface(): VmSafeInterface { + return new Interface(_abi) as VmSafeInterface; + } + static connect(address: string, runner?: ContractRunner | null): VmSafe { + return new Contract(address, _abi, runner) as unknown as VmSafe; + } +} diff --git a/typechain-types/factories/forge-std/Vm.sol/Vm__factory.ts b/typechain-types/factories/forge-std/Vm.sol/Vm__factory.ts new file mode 100644 index 00000000..acae10ed --- /dev/null +++ b/typechain-types/factories/forge-std/Vm.sol/Vm__factory.ts @@ -0,0 +1,11477 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { Vm, VmInterface } from "../../../forge-std/Vm.sol/Vm"; + +const _abi = [ + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes32[]", + name: "storageKeys", + type: "bytes32[]", + }, + ], + internalType: "struct VmSafe.AccessListItem[]", + name: "access", + type: "tuple[]", + }, + ], + name: "accessList", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + ], + name: "accesses", + outputs: [ + { + internalType: "bytes32[]", + name: "readSlots", + type: "bytes32[]", + }, + { + internalType: "bytes32[]", + name: "writeSlots", + type: "bytes32[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "activeFork", + outputs: [ + { + internalType: "uint256", + name: "forkId", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + name: "addr", + outputs: [ + { + internalType: "address", + name: "keyAddr", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "allowCheatcodes", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "maxDelta", + type: "uint256", + }, + ], + name: "assertApproxEqAbs", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "maxDelta", + type: "uint256", + }, + ], + name: "assertApproxEqAbs", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "maxDelta", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertApproxEqAbs", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "maxDelta", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertApproxEqAbs", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "maxDelta", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertApproxEqAbsDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "maxDelta", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertApproxEqAbsDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "maxDelta", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertApproxEqAbsDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "maxDelta", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertApproxEqAbsDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "maxPercentDelta", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertApproxEqRel", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "maxPercentDelta", + type: "uint256", + }, + ], + name: "assertApproxEqRel", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "maxPercentDelta", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertApproxEqRel", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "maxPercentDelta", + type: "uint256", + }, + ], + name: "assertApproxEqRel", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "maxPercentDelta", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertApproxEqRelDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "maxPercentDelta", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertApproxEqRelDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "maxPercentDelta", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertApproxEqRelDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "maxPercentDelta", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertApproxEqRelDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32[]", + name: "left", + type: "bytes32[]", + }, + { + internalType: "bytes32[]", + name: "right", + type: "bytes32[]", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256[]", + name: "left", + type: "int256[]", + }, + { + internalType: "int256[]", + name: "right", + type: "int256[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "left", + type: "address", + }, + { + internalType: "address", + name: "right", + type: "address", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "left", + type: "string", + }, + { + internalType: "string", + name: "right", + type: "string", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address[]", + name: "left", + type: "address[]", + }, + { + internalType: "address[]", + name: "right", + type: "address[]", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address[]", + name: "left", + type: "address[]", + }, + { + internalType: "address[]", + name: "right", + type: "address[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "left", + type: "bool", + }, + { + internalType: "bool", + name: "right", + type: "bool", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "left", + type: "address", + }, + { + internalType: "address", + name: "right", + type: "address", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256[]", + name: "left", + type: "uint256[]", + }, + { + internalType: "uint256[]", + name: "right", + type: "uint256[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool[]", + name: "left", + type: "bool[]", + }, + { + internalType: "bool[]", + name: "right", + type: "bool[]", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256[]", + name: "left", + type: "int256[]", + }, + { + internalType: "int256[]", + name: "right", + type: "int256[]", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "left", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "right", + type: "bytes32", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256[]", + name: "left", + type: "uint256[]", + }, + { + internalType: "uint256[]", + name: "right", + type: "uint256[]", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "left", + type: "bytes", + }, + { + internalType: "bytes", + name: "right", + type: "bytes", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "left", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "right", + type: "bytes32", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string[]", + name: "left", + type: "string[]", + }, + { + internalType: "string[]", + name: "right", + type: "string[]", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32[]", + name: "left", + type: "bytes32[]", + }, + { + internalType: "bytes32[]", + name: "right", + type: "bytes32[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "left", + type: "bytes", + }, + { + internalType: "bytes", + name: "right", + type: "bytes", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool[]", + name: "left", + type: "bool[]", + }, + { + internalType: "bool[]", + name: "right", + type: "bool[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes[]", + name: "left", + type: "bytes[]", + }, + { + internalType: "bytes[]", + name: "right", + type: "bytes[]", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string[]", + name: "left", + type: "string[]", + }, + { + internalType: "string[]", + name: "right", + type: "string[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "left", + type: "string", + }, + { + internalType: "string", + name: "right", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes[]", + name: "left", + type: "bytes[]", + }, + { + internalType: "bytes[]", + name: "right", + type: "bytes[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "left", + type: "bool", + }, + { + internalType: "bool", + name: "right", + type: "bool", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertEqDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertEqDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEqDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEqDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "condition", + type: "bool", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertFalse", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "condition", + type: "bool", + }, + ], + name: "assertFalse", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + ], + name: "assertGe", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertGe", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + ], + name: "assertGe", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertGe", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertGeDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertGeDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertGeDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertGeDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + ], + name: "assertGt", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertGt", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + ], + name: "assertGt", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertGt", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertGtDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertGtDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertGtDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertGtDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertLe", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + ], + name: "assertLe", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + ], + name: "assertLe", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertLe", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertLeDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertLeDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertLeDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertLeDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + ], + name: "assertLt", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertLt", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertLt", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + ], + name: "assertLt", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertLtDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertLtDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertLtDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertLtDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32[]", + name: "left", + type: "bytes32[]", + }, + { + internalType: "bytes32[]", + name: "right", + type: "bytes32[]", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256[]", + name: "left", + type: "int256[]", + }, + { + internalType: "int256[]", + name: "right", + type: "int256[]", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "left", + type: "bool", + }, + { + internalType: "bool", + name: "right", + type: "bool", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes[]", + name: "left", + type: "bytes[]", + }, + { + internalType: "bytes[]", + name: "right", + type: "bytes[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "left", + type: "bool", + }, + { + internalType: "bool", + name: "right", + type: "bool", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool[]", + name: "left", + type: "bool[]", + }, + { + internalType: "bool[]", + name: "right", + type: "bool[]", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "left", + type: "bytes", + }, + { + internalType: "bytes", + name: "right", + type: "bytes", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address[]", + name: "left", + type: "address[]", + }, + { + internalType: "address[]", + name: "right", + type: "address[]", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256[]", + name: "left", + type: "uint256[]", + }, + { + internalType: "uint256[]", + name: "right", + type: "uint256[]", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool[]", + name: "left", + type: "bool[]", + }, + { + internalType: "bool[]", + name: "right", + type: "bool[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "left", + type: "string", + }, + { + internalType: "string", + name: "right", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address[]", + name: "left", + type: "address[]", + }, + { + internalType: "address[]", + name: "right", + type: "address[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "left", + type: "string", + }, + { + internalType: "string", + name: "right", + type: "string", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "left", + type: "address", + }, + { + internalType: "address", + name: "right", + type: "address", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "left", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "right", + type: "bytes32", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "left", + type: "bytes", + }, + { + internalType: "bytes", + name: "right", + type: "bytes", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256[]", + name: "left", + type: "uint256[]", + }, + { + internalType: "uint256[]", + name: "right", + type: "uint256[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "left", + type: "address", + }, + { + internalType: "address", + name: "right", + type: "address", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "left", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "right", + type: "bytes32", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string[]", + name: "left", + type: "string[]", + }, + { + internalType: "string[]", + name: "right", + type: "string[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32[]", + name: "left", + type: "bytes32[]", + }, + { + internalType: "bytes32[]", + name: "right", + type: "bytes32[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string[]", + name: "left", + type: "string[]", + }, + { + internalType: "string[]", + name: "right", + type: "string[]", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256[]", + name: "left", + type: "int256[]", + }, + { + internalType: "int256[]", + name: "right", + type: "int256[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes[]", + name: "left", + type: "bytes[]", + }, + { + internalType: "bytes[]", + name: "right", + type: "bytes[]", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertNotEqDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEqDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertNotEqDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEqDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "condition", + type: "bool", + }, + ], + name: "assertTrue", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "condition", + type: "bool", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertTrue", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "condition", + type: "bool", + }, + ], + name: "assume", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "assumeNoRevert", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "reverter", + type: "address", + }, + { + internalType: "bool", + name: "partialMatch", + type: "bool", + }, + { + internalType: "bytes", + name: "revertData", + type: "bytes", + }, + ], + internalType: "struct VmSafe.PotentialRevert[]", + name: "potentialReverts", + type: "tuple[]", + }, + ], + name: "assumeNoRevert", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "reverter", + type: "address", + }, + { + internalType: "bool", + name: "partialMatch", + type: "bool", + }, + { + internalType: "bytes", + name: "revertData", + type: "bytes", + }, + ], + internalType: "struct VmSafe.PotentialRevert", + name: "potentialRevert", + type: "tuple", + }, + ], + name: "assumeNoRevert", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "blob", + type: "bytes", + }, + ], + name: "attachBlob", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + { + internalType: "uint64", + name: "nonce", + type: "uint64", + }, + { + internalType: "address", + name: "implementation", + type: "address", + }, + ], + internalType: "struct VmSafe.SignedDelegation", + name: "signedDelegation", + type: "tuple", + }, + ], + name: "attachDelegation", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "newBlobBaseFee", + type: "uint256", + }, + ], + name: "blobBaseFee", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32[]", + name: "hashes", + type: "bytes32[]", + }, + ], + name: "blobhashes", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "char", + type: "string", + }, + ], + name: "breakpoint", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "char", + type: "string", + }, + { + internalType: "bool", + name: "value", + type: "bool", + }, + ], + name: "breakpoint", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "broadcast", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "signer", + type: "address", + }, + ], + name: "broadcast", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + name: "broadcast", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "broadcastRawTransaction", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "newChainId", + type: "uint256", + }, + ], + name: "chainId", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "clearMockedCalls", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "source", + type: "address", + }, + { + internalType: "address", + name: "target", + type: "address", + }, + ], + name: "cloneAccount", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "closeFile", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newCoinbase", + type: "address", + }, + ], + name: "coinbase", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "salt", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "initCodeHash", + type: "bytes32", + }, + ], + name: "computeCreate2Address", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "salt", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "initCodeHash", + type: "bytes32", + }, + { + internalType: "address", + name: "deployer", + type: "address", + }, + ], + name: "computeCreate2Address", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "deployer", + type: "address", + }, + { + internalType: "uint256", + name: "nonce", + type: "uint256", + }, + ], + name: "computeCreateAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "subject", + type: "string", + }, + { + internalType: "string", + name: "search", + type: "string", + }, + ], + name: "contains", + outputs: [ + { + internalType: "bool", + name: "result", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + ], + name: "cool", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes32", + name: "slot", + type: "bytes32", + }, + ], + name: "coolSlot", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "from", + type: "string", + }, + { + internalType: "string", + name: "to", + type: "string", + }, + ], + name: "copyFile", + outputs: [ + { + internalType: "uint64", + name: "copied", + type: "uint64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + ], + name: "copyStorage", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "bool", + name: "recursive", + type: "bool", + }, + ], + name: "createDir", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "urlOrAlias", + type: "string", + }, + ], + name: "createFork", + outputs: [ + { + internalType: "uint256", + name: "forkId", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "urlOrAlias", + type: "string", + }, + { + internalType: "uint256", + name: "blockNumber", + type: "uint256", + }, + ], + name: "createFork", + outputs: [ + { + internalType: "uint256", + name: "forkId", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "urlOrAlias", + type: "string", + }, + { + internalType: "bytes32", + name: "txHash", + type: "bytes32", + }, + ], + name: "createFork", + outputs: [ + { + internalType: "uint256", + name: "forkId", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "urlOrAlias", + type: "string", + }, + { + internalType: "uint256", + name: "blockNumber", + type: "uint256", + }, + ], + name: "createSelectFork", + outputs: [ + { + internalType: "uint256", + name: "forkId", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "urlOrAlias", + type: "string", + }, + { + internalType: "bytes32", + name: "txHash", + type: "bytes32", + }, + ], + name: "createSelectFork", + outputs: [ + { + internalType: "uint256", + name: "forkId", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "urlOrAlias", + type: "string", + }, + ], + name: "createSelectFork", + outputs: [ + { + internalType: "uint256", + name: "forkId", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "walletLabel", + type: "string", + }, + ], + name: "createWallet", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "uint256", + name: "publicKeyX", + type: "uint256", + }, + { + internalType: "uint256", + name: "publicKeyY", + type: "uint256", + }, + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + internalType: "struct VmSafe.Wallet", + name: "wallet", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + name: "createWallet", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "uint256", + name: "publicKeyX", + type: "uint256", + }, + { + internalType: "uint256", + name: "publicKeyY", + type: "uint256", + }, + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + internalType: "struct VmSafe.Wallet", + name: "wallet", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + { + internalType: "string", + name: "walletLabel", + type: "string", + }, + ], + name: "createWallet", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "uint256", + name: "publicKeyX", + type: "uint256", + }, + { + internalType: "uint256", + name: "publicKeyY", + type: "uint256", + }, + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + internalType: "struct VmSafe.Wallet", + name: "wallet", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "uint256", + name: "newBalance", + type: "uint256", + }, + ], + name: "deal", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "snapshotId", + type: "uint256", + }, + ], + name: "deleteSnapshot", + outputs: [ + { + internalType: "bool", + name: "success", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "deleteSnapshots", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "snapshotId", + type: "uint256", + }, + ], + name: "deleteStateSnapshot", + outputs: [ + { + internalType: "bool", + name: "success", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "deleteStateSnapshots", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "artifactPath", + type: "string", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "bytes32", + name: "salt", + type: "bytes32", + }, + ], + name: "deployCode", + outputs: [ + { + internalType: "address", + name: "deployedAddress", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "artifactPath", + type: "string", + }, + { + internalType: "bytes", + name: "constructorArgs", + type: "bytes", + }, + { + internalType: "bytes32", + name: "salt", + type: "bytes32", + }, + ], + name: "deployCode", + outputs: [ + { + internalType: "address", + name: "deployedAddress", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "artifactPath", + type: "string", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "deployCode", + outputs: [ + { + internalType: "address", + name: "deployedAddress", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "artifactPath", + type: "string", + }, + { + internalType: "bytes32", + name: "salt", + type: "bytes32", + }, + ], + name: "deployCode", + outputs: [ + { + internalType: "address", + name: "deployedAddress", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "artifactPath", + type: "string", + }, + { + internalType: "bytes", + name: "constructorArgs", + type: "bytes", + }, + ], + name: "deployCode", + outputs: [ + { + internalType: "address", + name: "deployedAddress", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "artifactPath", + type: "string", + }, + { + internalType: "bytes", + name: "constructorArgs", + type: "bytes", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "bytes32", + name: "salt", + type: "bytes32", + }, + ], + name: "deployCode", + outputs: [ + { + internalType: "address", + name: "deployedAddress", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "artifactPath", + type: "string", + }, + ], + name: "deployCode", + outputs: [ + { + internalType: "address", + name: "deployedAddress", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "artifactPath", + type: "string", + }, + { + internalType: "bytes", + name: "constructorArgs", + type: "bytes", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "deployCode", + outputs: [ + { + internalType: "address", + name: "deployedAddress", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "mnemonic", + type: "string", + }, + { + internalType: "string", + name: "derivationPath", + type: "string", + }, + { + internalType: "uint32", + name: "index", + type: "uint32", + }, + { + internalType: "string", + name: "language", + type: "string", + }, + ], + name: "deriveKey", + outputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "mnemonic", + type: "string", + }, + { + internalType: "uint32", + name: "index", + type: "uint32", + }, + { + internalType: "string", + name: "language", + type: "string", + }, + ], + name: "deriveKey", + outputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "mnemonic", + type: "string", + }, + { + internalType: "uint32", + name: "index", + type: "uint32", + }, + ], + name: "deriveKey", + outputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "mnemonic", + type: "string", + }, + { + internalType: "string", + name: "derivationPath", + type: "string", + }, + { + internalType: "uint32", + name: "index", + type: "uint32", + }, + ], + name: "deriveKey", + outputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "newDifficulty", + type: "uint256", + }, + ], + name: "difficulty", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "pathToStateJson", + type: "string", + }, + ], + name: "dumpState", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "ensNamehash", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "envAddress", + outputs: [ + { + internalType: "address", + name: "value", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + ], + name: "envAddress", + outputs: [ + { + internalType: "address[]", + name: "value", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "envBool", + outputs: [ + { + internalType: "bool", + name: "value", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + ], + name: "envBool", + outputs: [ + { + internalType: "bool[]", + name: "value", + type: "bool[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "envBytes", + outputs: [ + { + internalType: "bytes", + name: "value", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + ], + name: "envBytes", + outputs: [ + { + internalType: "bytes[]", + name: "value", + type: "bytes[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + ], + name: "envBytes32", + outputs: [ + { + internalType: "bytes32[]", + name: "value", + type: "bytes32[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "envBytes32", + outputs: [ + { + internalType: "bytes32", + name: "value", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "envExists", + outputs: [ + { + internalType: "bool", + name: "result", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + ], + name: "envInt", + outputs: [ + { + internalType: "int256[]", + name: "value", + type: "int256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "envInt", + outputs: [ + { + internalType: "int256", + name: "value", + type: "int256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + { + internalType: "bytes32[]", + name: "defaultValue", + type: "bytes32[]", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "bytes32[]", + name: "value", + type: "bytes32[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + { + internalType: "int256[]", + name: "defaultValue", + type: "int256[]", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "int256[]", + name: "value", + type: "int256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "bool", + name: "defaultValue", + type: "bool", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "bool", + name: "value", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "address", + name: "defaultValue", + type: "address", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "address", + name: "value", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "uint256", + name: "defaultValue", + type: "uint256", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + { + internalType: "bytes[]", + name: "defaultValue", + type: "bytes[]", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "bytes[]", + name: "value", + type: "bytes[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + { + internalType: "uint256[]", + name: "defaultValue", + type: "uint256[]", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "uint256[]", + name: "value", + type: "uint256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + { + internalType: "string[]", + name: "defaultValue", + type: "string[]", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "string[]", + name: "value", + type: "string[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "bytes", + name: "defaultValue", + type: "bytes", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "bytes", + name: "value", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "bytes32", + name: "defaultValue", + type: "bytes32", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "bytes32", + name: "value", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "int256", + name: "defaultValue", + type: "int256", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "int256", + name: "value", + type: "int256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + { + internalType: "address[]", + name: "defaultValue", + type: "address[]", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "address[]", + name: "value", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "defaultValue", + type: "string", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "string", + name: "value", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + { + internalType: "bool[]", + name: "defaultValue", + type: "bool[]", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "bool[]", + name: "value", + type: "bool[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + ], + name: "envString", + outputs: [ + { + internalType: "string[]", + name: "value", + type: "string[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "envString", + outputs: [ + { + internalType: "string", + name: "value", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "envUint", + outputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + ], + name: "envUint", + outputs: [ + { + internalType: "uint256[]", + name: "value", + type: "uint256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes", + name: "newRuntimeBytecode", + type: "bytes", + }, + ], + name: "etch", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "fromBlock", + type: "uint256", + }, + { + internalType: "uint256", + name: "toBlock", + type: "uint256", + }, + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes32[]", + name: "topics", + type: "bytes32[]", + }, + ], + name: "eth_getLogs", + outputs: [ + { + components: [ + { + internalType: "address", + name: "emitter", + type: "address", + }, + { + internalType: "bytes32[]", + name: "topics", + type: "bytes32[]", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "bytes32", + name: "blockHash", + type: "bytes32", + }, + { + internalType: "uint64", + name: "blockNumber", + type: "uint64", + }, + { + internalType: "bytes32", + name: "transactionHash", + type: "bytes32", + }, + { + internalType: "uint64", + name: "transactionIndex", + type: "uint64", + }, + { + internalType: "uint256", + name: "logIndex", + type: "uint256", + }, + { + internalType: "bool", + name: "removed", + type: "bool", + }, + ], + internalType: "struct VmSafe.EthGetLogs[]", + name: "logs", + type: "tuple[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "exists", + outputs: [ + { + internalType: "bool", + name: "result", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "callee", + type: "address", + }, + { + internalType: "uint256", + name: "msgValue", + type: "uint256", + }, + { + internalType: "uint64", + name: "gas", + type: "uint64", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "expectCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "callee", + type: "address", + }, + { + internalType: "uint256", + name: "msgValue", + type: "uint256", + }, + { + internalType: "uint64", + name: "gas", + type: "uint64", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "uint64", + name: "count", + type: "uint64", + }, + ], + name: "expectCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "callee", + type: "address", + }, + { + internalType: "uint256", + name: "msgValue", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "uint64", + name: "count", + type: "uint64", + }, + ], + name: "expectCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "callee", + type: "address", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "expectCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "callee", + type: "address", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "uint64", + name: "count", + type: "uint64", + }, + ], + name: "expectCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "callee", + type: "address", + }, + { + internalType: "uint256", + name: "msgValue", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "expectCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "callee", + type: "address", + }, + { + internalType: "uint256", + name: "msgValue", + type: "uint256", + }, + { + internalType: "uint64", + name: "minGas", + type: "uint64", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "expectCallMinGas", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "callee", + type: "address", + }, + { + internalType: "uint256", + name: "msgValue", + type: "uint256", + }, + { + internalType: "uint64", + name: "minGas", + type: "uint64", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "uint64", + name: "count", + type: "uint64", + }, + ], + name: "expectCallMinGas", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "bytecode", + type: "bytes", + }, + { + internalType: "address", + name: "deployer", + type: "address", + }, + ], + name: "expectCreate", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "bytecode", + type: "bytes", + }, + { + internalType: "address", + name: "deployer", + type: "address", + }, + ], + name: "expectCreate2", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "expectEmit", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "checkTopic1", + type: "bool", + }, + { + internalType: "bool", + name: "checkTopic2", + type: "bool", + }, + { + internalType: "bool", + name: "checkTopic3", + type: "bool", + }, + { + internalType: "bool", + name: "checkData", + type: "bool", + }, + ], + name: "expectEmit", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint64", + name: "count", + type: "uint64", + }, + ], + name: "expectEmit", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "checkTopic1", + type: "bool", + }, + { + internalType: "bool", + name: "checkTopic2", + type: "bool", + }, + { + internalType: "bool", + name: "checkTopic3", + type: "bool", + }, + { + internalType: "bool", + name: "checkData", + type: "bool", + }, + { + internalType: "uint64", + name: "count", + type: "uint64", + }, + ], + name: "expectEmit", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "checkTopic1", + type: "bool", + }, + { + internalType: "bool", + name: "checkTopic2", + type: "bool", + }, + { + internalType: "bool", + name: "checkTopic3", + type: "bool", + }, + { + internalType: "bool", + name: "checkData", + type: "bool", + }, + { + internalType: "address", + name: "emitter", + type: "address", + }, + ], + name: "expectEmit", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "emitter", + type: "address", + }, + ], + name: "expectEmit", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "emitter", + type: "address", + }, + { + internalType: "uint64", + name: "count", + type: "uint64", + }, + ], + name: "expectEmit", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "checkTopic1", + type: "bool", + }, + { + internalType: "bool", + name: "checkTopic2", + type: "bool", + }, + { + internalType: "bool", + name: "checkTopic3", + type: "bool", + }, + { + internalType: "bool", + name: "checkData", + type: "bool", + }, + { + internalType: "address", + name: "emitter", + type: "address", + }, + { + internalType: "uint64", + name: "count", + type: "uint64", + }, + ], + name: "expectEmit", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "expectEmitAnonymous", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "emitter", + type: "address", + }, + ], + name: "expectEmitAnonymous", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "checkTopic0", + type: "bool", + }, + { + internalType: "bool", + name: "checkTopic1", + type: "bool", + }, + { + internalType: "bool", + name: "checkTopic2", + type: "bool", + }, + { + internalType: "bool", + name: "checkTopic3", + type: "bool", + }, + { + internalType: "bool", + name: "checkData", + type: "bool", + }, + { + internalType: "address", + name: "emitter", + type: "address", + }, + ], + name: "expectEmitAnonymous", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "checkTopic0", + type: "bool", + }, + { + internalType: "bool", + name: "checkTopic1", + type: "bool", + }, + { + internalType: "bool", + name: "checkTopic2", + type: "bool", + }, + { + internalType: "bool", + name: "checkTopic3", + type: "bool", + }, + { + internalType: "bool", + name: "checkData", + type: "bool", + }, + ], + name: "expectEmitAnonymous", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes4", + name: "revertData", + type: "bytes4", + }, + ], + name: "expectPartialRevert", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes4", + name: "revertData", + type: "bytes4", + }, + { + internalType: "address", + name: "reverter", + type: "address", + }, + ], + name: "expectPartialRevert", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "reverter", + type: "address", + }, + { + internalType: "uint64", + name: "count", + type: "uint64", + }, + ], + name: "expectRevert", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes4", + name: "revertData", + type: "bytes4", + }, + { + internalType: "address", + name: "reverter", + type: "address", + }, + ], + name: "expectRevert", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "revertData", + type: "bytes", + }, + { + internalType: "uint64", + name: "count", + type: "uint64", + }, + ], + name: "expectRevert", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint64", + name: "count", + type: "uint64", + }, + ], + name: "expectRevert", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "revertData", + type: "bytes", + }, + { + internalType: "address", + name: "reverter", + type: "address", + }, + ], + name: "expectRevert", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes4", + name: "revertData", + type: "bytes4", + }, + { + internalType: "address", + name: "reverter", + type: "address", + }, + { + internalType: "uint64", + name: "count", + type: "uint64", + }, + ], + name: "expectRevert", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes4", + name: "revertData", + type: "bytes4", + }, + ], + name: "expectRevert", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "revertData", + type: "bytes", + }, + { + internalType: "address", + name: "reverter", + type: "address", + }, + { + internalType: "uint64", + name: "count", + type: "uint64", + }, + ], + name: "expectRevert", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "reverter", + type: "address", + }, + ], + name: "expectRevert", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes4", + name: "revertData", + type: "bytes4", + }, + { + internalType: "uint64", + name: "count", + type: "uint64", + }, + ], + name: "expectRevert", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "revertData", + type: "bytes", + }, + ], + name: "expectRevert", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "expectRevert", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint64", + name: "min", + type: "uint64", + }, + { + internalType: "uint64", + name: "max", + type: "uint64", + }, + ], + name: "expectSafeMemory", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint64", + name: "min", + type: "uint64", + }, + { + internalType: "uint64", + name: "max", + type: "uint64", + }, + ], + name: "expectSafeMemoryCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "newBasefee", + type: "uint256", + }, + ], + name: "fee", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string[]", + name: "commandInput", + type: "string[]", + }, + ], + name: "ffi", + outputs: [ + { + internalType: "bytes", + name: "result", + type: "bytes", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "version", + type: "string", + }, + ], + name: "foundryVersionAtLeast", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "version", + type: "string", + }, + ], + name: "foundryVersionCmp", + outputs: [ + { + internalType: "int256", + name: "", + type: "int256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "fsMetadata", + outputs: [ + { + components: [ + { + internalType: "bool", + name: "isDir", + type: "bool", + }, + { + internalType: "bool", + name: "isSymlink", + type: "bool", + }, + { + internalType: "uint256", + name: "length", + type: "uint256", + }, + { + internalType: "bool", + name: "readOnly", + type: "bool", + }, + { + internalType: "uint256", + name: "modified", + type: "uint256", + }, + { + internalType: "uint256", + name: "accessed", + type: "uint256", + }, + { + internalType: "uint256", + name: "created", + type: "uint256", + }, + ], + internalType: "struct VmSafe.FsMetadata", + name: "metadata", + type: "tuple", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "code", + type: "bytes", + }, + ], + name: "getArtifactPathByCode", + outputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "deployedCode", + type: "bytes", + }, + ], + name: "getArtifactPathByDeployedCode", + outputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getBlobBaseFee", + outputs: [ + { + internalType: "uint256", + name: "blobBaseFee", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getBlobhashes", + outputs: [ + { + internalType: "bytes32[]", + name: "hashes", + type: "bytes32[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getBlockNumber", + outputs: [ + { + internalType: "uint256", + name: "height", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getBlockTimestamp", + outputs: [ + { + internalType: "uint256", + name: "timestamp", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "contractName", + type: "string", + }, + { + internalType: "uint64", + name: "chainId", + type: "uint64", + }, + { + internalType: "enum VmSafe.BroadcastTxType", + name: "txType", + type: "uint8", + }, + ], + name: "getBroadcast", + outputs: [ + { + components: [ + { + internalType: "bytes32", + name: "txHash", + type: "bytes32", + }, + { + internalType: "enum VmSafe.BroadcastTxType", + name: "txType", + type: "uint8", + }, + { + internalType: "address", + name: "contractAddress", + type: "address", + }, + { + internalType: "uint64", + name: "blockNumber", + type: "uint64", + }, + { + internalType: "bool", + name: "success", + type: "bool", + }, + ], + internalType: "struct VmSafe.BroadcastTxSummary", + name: "", + type: "tuple", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "contractName", + type: "string", + }, + { + internalType: "uint64", + name: "chainId", + type: "uint64", + }, + ], + name: "getBroadcasts", + outputs: [ + { + components: [ + { + internalType: "bytes32", + name: "txHash", + type: "bytes32", + }, + { + internalType: "enum VmSafe.BroadcastTxType", + name: "txType", + type: "uint8", + }, + { + internalType: "address", + name: "contractAddress", + type: "address", + }, + { + internalType: "uint64", + name: "blockNumber", + type: "uint64", + }, + { + internalType: "bool", + name: "success", + type: "bool", + }, + ], + internalType: "struct VmSafe.BroadcastTxSummary[]", + name: "", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "contractName", + type: "string", + }, + { + internalType: "uint64", + name: "chainId", + type: "uint64", + }, + { + internalType: "enum VmSafe.BroadcastTxType", + name: "txType", + type: "uint8", + }, + ], + name: "getBroadcasts", + outputs: [ + { + components: [ + { + internalType: "bytes32", + name: "txHash", + type: "bytes32", + }, + { + internalType: "enum VmSafe.BroadcastTxType", + name: "txType", + type: "uint8", + }, + { + internalType: "address", + name: "contractAddress", + type: "address", + }, + { + internalType: "uint64", + name: "blockNumber", + type: "uint64", + }, + { + internalType: "bool", + name: "success", + type: "bool", + }, + ], + internalType: "struct VmSafe.BroadcastTxSummary[]", + name: "", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "chainAlias", + type: "string", + }, + ], + name: "getChain", + outputs: [ + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "string", + name: "chainAlias", + type: "string", + }, + { + internalType: "string", + name: "rpcUrl", + type: "string", + }, + ], + internalType: "struct VmSafe.Chain", + name: "chain", + type: "tuple", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + ], + name: "getChain", + outputs: [ + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "string", + name: "chainAlias", + type: "string", + }, + { + internalType: "string", + name: "rpcUrl", + type: "string", + }, + ], + internalType: "struct VmSafe.Chain", + name: "chain", + type: "tuple", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "artifactPath", + type: "string", + }, + ], + name: "getCode", + outputs: [ + { + internalType: "bytes", + name: "creationBytecode", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "artifactPath", + type: "string", + }, + ], + name: "getDeployedCode", + outputs: [ + { + internalType: "bytes", + name: "runtimeBytecode", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "contractName", + type: "string", + }, + { + internalType: "uint64", + name: "chainId", + type: "uint64", + }, + ], + name: "getDeployment", + outputs: [ + { + internalType: "address", + name: "deployedAddress", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "contractName", + type: "string", + }, + ], + name: "getDeployment", + outputs: [ + { + internalType: "address", + name: "deployedAddress", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "contractName", + type: "string", + }, + { + internalType: "uint64", + name: "chainId", + type: "uint64", + }, + ], + name: "getDeployments", + outputs: [ + { + internalType: "address[]", + name: "deployedAddresses", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getFoundryVersion", + outputs: [ + { + internalType: "string", + name: "version", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "getLabel", + outputs: [ + { + internalType: "string", + name: "currentLabel", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes32", + name: "elementSlot", + type: "bytes32", + }, + ], + name: "getMappingKeyAndParentOf", + outputs: [ + { + internalType: "bool", + name: "found", + type: "bool", + }, + { + internalType: "bytes32", + name: "key", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "parent", + type: "bytes32", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes32", + name: "mappingSlot", + type: "bytes32", + }, + ], + name: "getMappingLength", + outputs: [ + { + internalType: "uint256", + name: "length", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes32", + name: "mappingSlot", + type: "bytes32", + }, + { + internalType: "uint256", + name: "idx", + type: "uint256", + }, + ], + name: "getMappingSlotAt", + outputs: [ + { + internalType: "bytes32", + name: "value", + type: "bytes32", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "getNonce", + outputs: [ + { + internalType: "uint64", + name: "nonce", + type: "uint64", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "uint256", + name: "publicKeyX", + type: "uint256", + }, + { + internalType: "uint256", + name: "publicKeyY", + type: "uint256", + }, + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + internalType: "struct VmSafe.Wallet", + name: "wallet", + type: "tuple", + }, + ], + name: "getNonce", + outputs: [ + { + internalType: "uint64", + name: "nonce", + type: "uint64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "getRecordedLogs", + outputs: [ + { + components: [ + { + internalType: "bytes32[]", + name: "topics", + type: "bytes32[]", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "address", + name: "emitter", + type: "address", + }, + ], + internalType: "struct VmSafe.Log[]", + name: "logs", + type: "tuple[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "getStateDiff", + outputs: [ + { + internalType: "string", + name: "diff", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getStateDiffJson", + outputs: [ + { + internalType: "string", + name: "diff", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getWallets", + outputs: [ + { + internalType: "address[]", + name: "wallets", + type: "address[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "input", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "indexOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "interceptInitcode", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "enum VmSafe.ForgeContext", + name: "context", + type: "uint8", + }, + ], + name: "isContext", + outputs: [ + { + internalType: "bool", + name: "result", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "isDir", + outputs: [ + { + internalType: "bool", + name: "result", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "isFile", + outputs: [ + { + internalType: "bool", + name: "result", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "isPersistent", + outputs: [ + { + internalType: "bool", + name: "persistent", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "keyExists", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "keyExistsJson", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "keyExistsToml", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "string", + name: "newLabel", + type: "string", + }, + ], + name: "label", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "lastCallGas", + outputs: [ + { + components: [ + { + internalType: "uint64", + name: "gasLimit", + type: "uint64", + }, + { + internalType: "uint64", + name: "gasTotalUsed", + type: "uint64", + }, + { + internalType: "uint64", + name: "gasMemoryUsed", + type: "uint64", + }, + { + internalType: "int64", + name: "gasRefunded", + type: "int64", + }, + { + internalType: "uint64", + name: "gasRemaining", + type: "uint64", + }, + ], + internalType: "struct VmSafe.Gas", + name: "gas", + type: "tuple", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes32", + name: "slot", + type: "bytes32", + }, + ], + name: "load", + outputs: [ + { + internalType: "bytes32", + name: "data", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "pathToAllocsJson", + type: "string", + }, + ], + name: "loadAllocs", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address[]", + name: "accounts", + type: "address[]", + }, + ], + name: "makePersistent", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account0", + type: "address", + }, + { + internalType: "address", + name: "account1", + type: "address", + }, + ], + name: "makePersistent", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "makePersistent", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account0", + type: "address", + }, + { + internalType: "address", + name: "account1", + type: "address", + }, + { + internalType: "address", + name: "account2", + type: "address", + }, + ], + name: "makePersistent", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "callee", + type: "address", + }, + { + internalType: "bytes4", + name: "data", + type: "bytes4", + }, + { + internalType: "bytes", + name: "returnData", + type: "bytes", + }, + ], + name: "mockCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "callee", + type: "address", + }, + { + internalType: "uint256", + name: "msgValue", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "bytes", + name: "returnData", + type: "bytes", + }, + ], + name: "mockCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "callee", + type: "address", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "bytes", + name: "returnData", + type: "bytes", + }, + ], + name: "mockCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "callee", + type: "address", + }, + { + internalType: "uint256", + name: "msgValue", + type: "uint256", + }, + { + internalType: "bytes4", + name: "data", + type: "bytes4", + }, + { + internalType: "bytes", + name: "returnData", + type: "bytes", + }, + ], + name: "mockCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "callee", + type: "address", + }, + { + internalType: "bytes4", + name: "data", + type: "bytes4", + }, + { + internalType: "bytes", + name: "revertData", + type: "bytes", + }, + ], + name: "mockCallRevert", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "callee", + type: "address", + }, + { + internalType: "uint256", + name: "msgValue", + type: "uint256", + }, + { + internalType: "bytes4", + name: "data", + type: "bytes4", + }, + { + internalType: "bytes", + name: "revertData", + type: "bytes", + }, + ], + name: "mockCallRevert", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "callee", + type: "address", + }, + { + internalType: "uint256", + name: "msgValue", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "bytes", + name: "revertData", + type: "bytes", + }, + ], + name: "mockCallRevert", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "callee", + type: "address", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "bytes", + name: "revertData", + type: "bytes", + }, + ], + name: "mockCallRevert", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "callee", + type: "address", + }, + { + internalType: "uint256", + name: "msgValue", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "bytes[]", + name: "returnData", + type: "bytes[]", + }, + ], + name: "mockCalls", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "callee", + type: "address", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "bytes[]", + name: "returnData", + type: "bytes[]", + }, + ], + name: "mockCalls", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "callee", + type: "address", + }, + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "mockFunction", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "noAccessList", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + name: "parseAddress", + outputs: [ + { + internalType: "address", + name: "parsedValue", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + name: "parseBool", + outputs: [ + { + internalType: "bool", + name: "parsedValue", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + name: "parseBytes", + outputs: [ + { + internalType: "bytes", + name: "parsedValue", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + name: "parseBytes32", + outputs: [ + { + internalType: "bytes32", + name: "parsedValue", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + name: "parseInt", + outputs: [ + { + internalType: "int256", + name: "parsedValue", + type: "int256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + name: "parseJson", + outputs: [ + { + internalType: "bytes", + name: "abiEncodedData", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJson", + outputs: [ + { + internalType: "bytes", + name: "abiEncodedData", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonAddressArray", + outputs: [ + { + internalType: "address[]", + name: "", + type: "address[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonBool", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonBoolArray", + outputs: [ + { + internalType: "bool[]", + name: "", + type: "bool[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonBytes", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonBytes32", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonBytes32Array", + outputs: [ + { + internalType: "bytes32[]", + name: "", + type: "bytes32[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonBytesArray", + outputs: [ + { + internalType: "bytes[]", + name: "", + type: "bytes[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonInt", + outputs: [ + { + internalType: "int256", + name: "", + type: "int256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonIntArray", + outputs: [ + { + internalType: "int256[]", + name: "", + type: "int256[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonKeys", + outputs: [ + { + internalType: "string[]", + name: "keys", + type: "string[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonString", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonStringArray", + outputs: [ + { + internalType: "string[]", + name: "", + type: "string[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "typeDescription", + type: "string", + }, + ], + name: "parseJsonType", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + { + internalType: "string", + name: "typeDescription", + type: "string", + }, + ], + name: "parseJsonType", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + { + internalType: "string", + name: "typeDescription", + type: "string", + }, + ], + name: "parseJsonTypeArray", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonUint", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonUintArray", + outputs: [ + { + internalType: "uint256[]", + name: "", + type: "uint256[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseToml", + outputs: [ + { + internalType: "bytes", + name: "abiEncodedData", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + ], + name: "parseToml", + outputs: [ + { + internalType: "bytes", + name: "abiEncodedData", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlAddressArray", + outputs: [ + { + internalType: "address[]", + name: "", + type: "address[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlBool", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlBoolArray", + outputs: [ + { + internalType: "bool[]", + name: "", + type: "bool[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlBytes", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlBytes32", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlBytes32Array", + outputs: [ + { + internalType: "bytes32[]", + name: "", + type: "bytes32[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlBytesArray", + outputs: [ + { + internalType: "bytes[]", + name: "", + type: "bytes[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlInt", + outputs: [ + { + internalType: "int256", + name: "", + type: "int256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlIntArray", + outputs: [ + { + internalType: "int256[]", + name: "", + type: "int256[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlKeys", + outputs: [ + { + internalType: "string[]", + name: "keys", + type: "string[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlString", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlStringArray", + outputs: [ + { + internalType: "string[]", + name: "", + type: "string[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "typeDescription", + type: "string", + }, + ], + name: "parseTomlType", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + { + internalType: "string", + name: "typeDescription", + type: "string", + }, + ], + name: "parseTomlType", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + { + internalType: "string", + name: "typeDescription", + type: "string", + }, + ], + name: "parseTomlTypeArray", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlUint", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlUintArray", + outputs: [ + { + internalType: "uint256[]", + name: "", + type: "uint256[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + name: "parseUint", + outputs: [ + { + internalType: "uint256", + name: "parsedValue", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "pauseGasMetering", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "pauseTracing", + outputs: [], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "msgSender", + type: "address", + }, + { + internalType: "address", + name: "txOrigin", + type: "address", + }, + ], + name: "prank", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "msgSender", + type: "address", + }, + { + internalType: "address", + name: "txOrigin", + type: "address", + }, + { + internalType: "bool", + name: "delegateCall", + type: "bool", + }, + ], + name: "prank", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "msgSender", + type: "address", + }, + { + internalType: "bool", + name: "delegateCall", + type: "bool", + }, + ], + name: "prank", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "msgSender", + type: "address", + }, + ], + name: "prank", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "newPrevrandao", + type: "bytes32", + }, + ], + name: "prevrandao", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "newPrevrandao", + type: "uint256", + }, + ], + name: "prevrandao", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "projectRoot", + outputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "promptText", + type: "string", + }, + ], + name: "prompt", + outputs: [ + { + internalType: "string", + name: "input", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "promptText", + type: "string", + }, + ], + name: "promptAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "promptText", + type: "string", + }, + ], + name: "promptSecret", + outputs: [ + { + internalType: "string", + name: "input", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "promptText", + type: "string", + }, + ], + name: "promptSecretUint", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "promptText", + type: "string", + }, + ], + name: "promptUint", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + name: "publicKeyP256", + outputs: [ + { + internalType: "uint256", + name: "publicKeyX", + type: "uint256", + }, + { + internalType: "uint256", + name: "publicKeyY", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "randomAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "randomBool", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "len", + type: "uint256", + }, + ], + name: "randomBytes", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "randomBytes4", + outputs: [ + { + internalType: "bytes4", + name: "", + type: "bytes4", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "randomBytes8", + outputs: [ + { + internalType: "bytes8", + name: "", + type: "bytes8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "randomInt", + outputs: [ + { + internalType: "int256", + name: "", + type: "int256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "bits", + type: "uint256", + }, + ], + name: "randomInt", + outputs: [ + { + internalType: "int256", + name: "", + type: "int256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "randomUint", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "bits", + type: "uint256", + }, + ], + name: "randomUint", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "min", + type: "uint256", + }, + { + internalType: "uint256", + name: "max", + type: "uint256", + }, + ], + name: "randomUint", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "readCallers", + outputs: [ + { + internalType: "enum VmSafe.CallerMode", + name: "callerMode", + type: "uint8", + }, + { + internalType: "address", + name: "msgSender", + type: "address", + }, + { + internalType: "address", + name: "txOrigin", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "uint64", + name: "maxDepth", + type: "uint64", + }, + ], + name: "readDir", + outputs: [ + { + components: [ + { + internalType: "string", + name: "errorMessage", + type: "string", + }, + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "uint64", + name: "depth", + type: "uint64", + }, + { + internalType: "bool", + name: "isDir", + type: "bool", + }, + { + internalType: "bool", + name: "isSymlink", + type: "bool", + }, + ], + internalType: "struct VmSafe.DirEntry[]", + name: "entries", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "uint64", + name: "maxDepth", + type: "uint64", + }, + { + internalType: "bool", + name: "followLinks", + type: "bool", + }, + ], + name: "readDir", + outputs: [ + { + components: [ + { + internalType: "string", + name: "errorMessage", + type: "string", + }, + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "uint64", + name: "depth", + type: "uint64", + }, + { + internalType: "bool", + name: "isDir", + type: "bool", + }, + { + internalType: "bool", + name: "isSymlink", + type: "bool", + }, + ], + internalType: "struct VmSafe.DirEntry[]", + name: "entries", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "readDir", + outputs: [ + { + components: [ + { + internalType: "string", + name: "errorMessage", + type: "string", + }, + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "uint64", + name: "depth", + type: "uint64", + }, + { + internalType: "bool", + name: "isDir", + type: "bool", + }, + { + internalType: "bool", + name: "isSymlink", + type: "bool", + }, + ], + internalType: "struct VmSafe.DirEntry[]", + name: "entries", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "readFile", + outputs: [ + { + internalType: "string", + name: "data", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "readFileBinary", + outputs: [ + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "readLine", + outputs: [ + { + internalType: "string", + name: "line", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "linkPath", + type: "string", + }, + ], + name: "readLink", + outputs: [ + { + internalType: "string", + name: "targetPath", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "record", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "recordLogs", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + name: "rememberKey", + outputs: [ + { + internalType: "address", + name: "keyAddr", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "mnemonic", + type: "string", + }, + { + internalType: "string", + name: "derivationPath", + type: "string", + }, + { + internalType: "uint32", + name: "count", + type: "uint32", + }, + ], + name: "rememberKeys", + outputs: [ + { + internalType: "address[]", + name: "keyAddrs", + type: "address[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "mnemonic", + type: "string", + }, + { + internalType: "string", + name: "derivationPath", + type: "string", + }, + { + internalType: "string", + name: "language", + type: "string", + }, + { + internalType: "uint32", + name: "count", + type: "uint32", + }, + ], + name: "rememberKeys", + outputs: [ + { + internalType: "address[]", + name: "keyAddrs", + type: "address[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "bool", + name: "recursive", + type: "bool", + }, + ], + name: "removeDir", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "removeFile", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "input", + type: "string", + }, + { + internalType: "string", + name: "from", + type: "string", + }, + { + internalType: "string", + name: "to", + type: "string", + }, + ], + name: "replace", + outputs: [ + { + internalType: "string", + name: "output", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "resetGasMetering", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "resetNonce", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "resumeGasMetering", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "resumeTracing", + outputs: [], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "snapshotId", + type: "uint256", + }, + ], + name: "revertTo", + outputs: [ + { + internalType: "bool", + name: "success", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "snapshotId", + type: "uint256", + }, + ], + name: "revertToAndDelete", + outputs: [ + { + internalType: "bool", + name: "success", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "snapshotId", + type: "uint256", + }, + ], + name: "revertToState", + outputs: [ + { + internalType: "bool", + name: "success", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "snapshotId", + type: "uint256", + }, + ], + name: "revertToStateAndDelete", + outputs: [ + { + internalType: "bool", + name: "success", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address[]", + name: "accounts", + type: "address[]", + }, + ], + name: "revokePersistent", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "revokePersistent", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "newHeight", + type: "uint256", + }, + ], + name: "roll", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "txHash", + type: "bytes32", + }, + ], + name: "rollFork", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "forkId", + type: "uint256", + }, + { + internalType: "uint256", + name: "blockNumber", + type: "uint256", + }, + ], + name: "rollFork", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "blockNumber", + type: "uint256", + }, + ], + name: "rollFork", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "forkId", + type: "uint256", + }, + { + internalType: "bytes32", + name: "txHash", + type: "bytes32", + }, + ], + name: "rollFork", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "urlOrAlias", + type: "string", + }, + { + internalType: "string", + name: "method", + type: "string", + }, + { + internalType: "string", + name: "params", + type: "string", + }, + ], + name: "rpc", + outputs: [ + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "method", + type: "string", + }, + { + internalType: "string", + name: "params", + type: "string", + }, + ], + name: "rpc", + outputs: [ + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "rpcAlias", + type: "string", + }, + ], + name: "rpcUrl", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "rpcUrlStructs", + outputs: [ + { + components: [ + { + internalType: "string", + name: "key", + type: "string", + }, + { + internalType: "string", + name: "url", + type: "string", + }, + ], + internalType: "struct VmSafe.Rpc[]", + name: "urls", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "rpcUrls", + outputs: [ + { + internalType: "string[2][]", + name: "urls", + type: "string[2][]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "forkId", + type: "uint256", + }, + ], + name: "selectFork", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "address[]", + name: "values", + type: "address[]", + }, + ], + name: "serializeAddress", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "address", + name: "value", + type: "address", + }, + ], + name: "serializeAddress", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "bool[]", + name: "values", + type: "bool[]", + }, + ], + name: "serializeBool", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "bool", + name: "value", + type: "bool", + }, + ], + name: "serializeBool", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "bytes[]", + name: "values", + type: "bytes[]", + }, + ], + name: "serializeBytes", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "bytes", + name: "value", + type: "bytes", + }, + ], + name: "serializeBytes", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "bytes32[]", + name: "values", + type: "bytes32[]", + }, + ], + name: "serializeBytes32", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "bytes32", + name: "value", + type: "bytes32", + }, + ], + name: "serializeBytes32", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "int256", + name: "value", + type: "int256", + }, + ], + name: "serializeInt", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "int256[]", + name: "values", + type: "int256[]", + }, + ], + name: "serializeInt", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "value", + type: "string", + }, + ], + name: "serializeJson", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "typeDescription", + type: "string", + }, + { + internalType: "bytes", + name: "value", + type: "bytes", + }, + ], + name: "serializeJsonType", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "string", + name: "typeDescription", + type: "string", + }, + { + internalType: "bytes", + name: "value", + type: "bytes", + }, + ], + name: "serializeJsonType", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "string[]", + name: "values", + type: "string[]", + }, + ], + name: "serializeString", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "string", + name: "value", + type: "string", + }, + ], + name: "serializeString", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "serializeUint", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "uint256[]", + name: "values", + type: "uint256[]", + }, + ], + name: "serializeUint", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "serializeUintToHex", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bool", + name: "overwrite", + type: "bool", + }, + ], + name: "setArbitraryStorage", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + ], + name: "setArbitraryStorage", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "blockNumber", + type: "uint256", + }, + { + internalType: "bytes32", + name: "blockHash", + type: "bytes32", + }, + ], + name: "setBlockhash", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "value", + type: "string", + }, + ], + name: "setEnv", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "uint64", + name: "newNonce", + type: "uint64", + }, + ], + name: "setNonce", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "uint64", + name: "newNonce", + type: "uint64", + }, + ], + name: "setNonceUnsafe", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256[]", + name: "array", + type: "uint256[]", + }, + ], + name: "shuffle", + outputs: [ + { + internalType: "uint256[]", + name: "", + type: "uint256[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "digest", + type: "bytes32", + }, + ], + name: "sign", + outputs: [ + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "signer", + type: "address", + }, + { + internalType: "bytes32", + name: "digest", + type: "bytes32", + }, + ], + name: "sign", + outputs: [ + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "uint256", + name: "publicKeyX", + type: "uint256", + }, + { + internalType: "uint256", + name: "publicKeyY", + type: "uint256", + }, + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + internalType: "struct VmSafe.Wallet", + name: "wallet", + type: "tuple", + }, + { + internalType: "bytes32", + name: "digest", + type: "bytes32", + }, + ], + name: "sign", + outputs: [ + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + { + internalType: "bytes32", + name: "digest", + type: "bytes32", + }, + ], + name: "sign", + outputs: [ + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "implementation", + type: "address", + }, + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + name: "signAndAttachDelegation", + outputs: [ + { + components: [ + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + { + internalType: "uint64", + name: "nonce", + type: "uint64", + }, + { + internalType: "address", + name: "implementation", + type: "address", + }, + ], + internalType: "struct VmSafe.SignedDelegation", + name: "signedDelegation", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "implementation", + type: "address", + }, + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + { + internalType: "uint64", + name: "nonce", + type: "uint64", + }, + ], + name: "signAndAttachDelegation", + outputs: [ + { + components: [ + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + { + internalType: "uint64", + name: "nonce", + type: "uint64", + }, + { + internalType: "address", + name: "implementation", + type: "address", + }, + ], + internalType: "struct VmSafe.SignedDelegation", + name: "signedDelegation", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "uint256", + name: "publicKeyX", + type: "uint256", + }, + { + internalType: "uint256", + name: "publicKeyY", + type: "uint256", + }, + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + internalType: "struct VmSafe.Wallet", + name: "wallet", + type: "tuple", + }, + { + internalType: "bytes32", + name: "digest", + type: "bytes32", + }, + ], + name: "signCompact", + outputs: [ + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "vs", + type: "bytes32", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "signer", + type: "address", + }, + { + internalType: "bytes32", + name: "digest", + type: "bytes32", + }, + ], + name: "signCompact", + outputs: [ + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "vs", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "digest", + type: "bytes32", + }, + ], + name: "signCompact", + outputs: [ + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "vs", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + { + internalType: "bytes32", + name: "digest", + type: "bytes32", + }, + ], + name: "signCompact", + outputs: [ + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "vs", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "implementation", + type: "address", + }, + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + name: "signDelegation", + outputs: [ + { + components: [ + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + { + internalType: "uint64", + name: "nonce", + type: "uint64", + }, + { + internalType: "address", + name: "implementation", + type: "address", + }, + ], + internalType: "struct VmSafe.SignedDelegation", + name: "signedDelegation", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "implementation", + type: "address", + }, + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + { + internalType: "uint64", + name: "nonce", + type: "uint64", + }, + ], + name: "signDelegation", + outputs: [ + { + components: [ + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + { + internalType: "uint64", + name: "nonce", + type: "uint64", + }, + { + internalType: "address", + name: "implementation", + type: "address", + }, + ], + internalType: "struct VmSafe.SignedDelegation", + name: "signedDelegation", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + { + internalType: "bytes32", + name: "digest", + type: "bytes32", + }, + ], + name: "signP256", + outputs: [ + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "skipTest", + type: "bool", + }, + { + internalType: "string", + name: "reason", + type: "string", + }, + ], + name: "skip", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "skipTest", + type: "bool", + }, + ], + name: "skip", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "duration", + type: "uint256", + }, + ], + name: "sleep", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "snapshot", + outputs: [ + { + internalType: "uint256", + name: "snapshotId", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "group", + type: "string", + }, + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "snapshotGasLastCall", + outputs: [ + { + internalType: "uint256", + name: "gasUsed", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "snapshotGasLastCall", + outputs: [ + { + internalType: "uint256", + name: "gasUsed", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "snapshotState", + outputs: [ + { + internalType: "uint256", + name: "snapshotId", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "snapshotValue", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "group", + type: "string", + }, + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "snapshotValue", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256[]", + name: "array", + type: "uint256[]", + }, + ], + name: "sort", + outputs: [ + { + internalType: "uint256[]", + name: "", + type: "uint256[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "input", + type: "string", + }, + { + internalType: "string", + name: "delimiter", + type: "string", + }, + ], + name: "split", + outputs: [ + { + internalType: "string[]", + name: "outputs", + type: "string[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "startBroadcast", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "signer", + type: "address", + }, + ], + name: "startBroadcast", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + name: "startBroadcast", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "startDebugTraceRecording", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "startMappingRecording", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "msgSender", + type: "address", + }, + ], + name: "startPrank", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "msgSender", + type: "address", + }, + { + internalType: "bool", + name: "delegateCall", + type: "bool", + }, + ], + name: "startPrank", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "msgSender", + type: "address", + }, + { + internalType: "address", + name: "txOrigin", + type: "address", + }, + ], + name: "startPrank", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "msgSender", + type: "address", + }, + { + internalType: "address", + name: "txOrigin", + type: "address", + }, + { + internalType: "bool", + name: "delegateCall", + type: "bool", + }, + ], + name: "startPrank", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "startSnapshotGas", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "group", + type: "string", + }, + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "startSnapshotGas", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "startStateDiffRecording", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "stopAndReturnDebugTraceRecording", + outputs: [ + { + components: [ + { + internalType: "uint256[]", + name: "stack", + type: "uint256[]", + }, + { + internalType: "bytes", + name: "memoryInput", + type: "bytes", + }, + { + internalType: "uint8", + name: "opcode", + type: "uint8", + }, + { + internalType: "uint64", + name: "depth", + type: "uint64", + }, + { + internalType: "bool", + name: "isOutOfGas", + type: "bool", + }, + { + internalType: "address", + name: "contractAddr", + type: "address", + }, + ], + internalType: "struct VmSafe.DebugStep[]", + name: "step", + type: "tuple[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "stopAndReturnStateDiff", + outputs: [ + { + components: [ + { + components: [ + { + internalType: "uint256", + name: "forkId", + type: "uint256", + }, + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + ], + internalType: "struct VmSafe.ChainInfo", + name: "chainInfo", + type: "tuple", + }, + { + internalType: "enum VmSafe.AccountAccessKind", + name: "kind", + type: "uint8", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "address", + name: "accessor", + type: "address", + }, + { + internalType: "bool", + name: "initialized", + type: "bool", + }, + { + internalType: "uint256", + name: "oldBalance", + type: "uint256", + }, + { + internalType: "uint256", + name: "newBalance", + type: "uint256", + }, + { + internalType: "bytes", + name: "deployedCode", + type: "bytes", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "bool", + name: "reverted", + type: "bool", + }, + { + components: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "bytes32", + name: "slot", + type: "bytes32", + }, + { + internalType: "bool", + name: "isWrite", + type: "bool", + }, + { + internalType: "bytes32", + name: "previousValue", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "newValue", + type: "bytes32", + }, + { + internalType: "bool", + name: "reverted", + type: "bool", + }, + ], + internalType: "struct VmSafe.StorageAccess[]", + name: "storageAccesses", + type: "tuple[]", + }, + { + internalType: "uint64", + name: "depth", + type: "uint64", + }, + ], + internalType: "struct VmSafe.AccountAccess[]", + name: "accountAccesses", + type: "tuple[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "stopBroadcast", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "stopExpectSafeMemory", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "stopMappingRecording", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "stopPrank", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "group", + type: "string", + }, + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "stopSnapshotGas", + outputs: [ + { + internalType: "uint256", + name: "gasUsed", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "stopSnapshotGas", + outputs: [ + { + internalType: "uint256", + name: "gasUsed", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "stopSnapshotGas", + outputs: [ + { + internalType: "uint256", + name: "gasUsed", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes32", + name: "slot", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "value", + type: "bytes32", + }, + ], + name: "store", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "data", + type: "string", + }, + ], + name: "toBase64", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "toBase64", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "data", + type: "string", + }, + ], + name: "toBase64URL", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "toBase64URL", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "input", + type: "string", + }, + ], + name: "toLowercase", + outputs: [ + { + internalType: "string", + name: "output", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "value", + type: "address", + }, + ], + name: "toString", + outputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "toString", + outputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "value", + type: "bytes", + }, + ], + name: "toString", + outputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "value", + type: "bool", + }, + ], + name: "toString", + outputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "value", + type: "int256", + }, + ], + name: "toString", + outputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "value", + type: "bytes32", + }, + ], + name: "toString", + outputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "input", + type: "string", + }, + ], + name: "toUppercase", + outputs: [ + { + internalType: "string", + name: "output", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "forkId", + type: "uint256", + }, + { + internalType: "bytes32", + name: "txHash", + type: "bytes32", + }, + ], + name: "transact", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "txHash", + type: "bytes32", + }, + ], + name: "transact", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "input", + type: "string", + }, + ], + name: "trim", + outputs: [ + { + internalType: "string", + name: "output", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string[]", + name: "commandInput", + type: "string[]", + }, + ], + name: "tryFfi", + outputs: [ + { + components: [ + { + internalType: "int32", + name: "exitCode", + type: "int32", + }, + { + internalType: "bytes", + name: "stdout", + type: "bytes", + }, + { + internalType: "bytes", + name: "stderr", + type: "bytes", + }, + ], + internalType: "struct VmSafe.FfiResult", + name: "result", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "newGasPrice", + type: "uint256", + }, + ], + name: "txGasPrice", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "unixTime", + outputs: [ + { + internalType: "uint256", + name: "milliseconds", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes32", + name: "slot", + type: "bytes32", + }, + ], + name: "warmSlot", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "newTimestamp", + type: "uint256", + }, + ], + name: "warp", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "string", + name: "data", + type: "string", + }, + ], + name: "writeFile", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "writeFileBinary", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + ], + name: "writeJson", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "writeJson", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "string", + name: "data", + type: "string", + }, + ], + name: "writeLine", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + ], + name: "writeToml", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "writeToml", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class Vm__factory { + static readonly abi = _abi; + static createInterface(): VmInterface { + return new Interface(_abi) as VmInterface; + } + static connect(address: string, runner?: ContractRunner | null): Vm { + return new Contract(address, _abi, runner) as unknown as Vm; + } +} diff --git a/typechain-types/factories/forge-std/Vm.sol/index.ts b/typechain-types/factories/forge-std/Vm.sol/index.ts new file mode 100644 index 00000000..fcea6ed4 --- /dev/null +++ b/typechain-types/factories/forge-std/Vm.sol/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { Vm__factory } from "./Vm__factory"; +export { VmSafe__factory } from "./VmSafe__factory"; diff --git a/typechain-types/factories/forge-std/index.ts b/typechain-types/factories/forge-std/index.ts new file mode 100644 index 00000000..734d848e --- /dev/null +++ b/typechain-types/factories/forge-std/index.ts @@ -0,0 +1,10 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as stdErrorSol from "./StdError.sol"; +export * as stdStorageSol from "./StdStorage.sol"; +export * as vmSol from "./Vm.sol"; +export * as interfaces from "./interfaces"; +export { StdAssertions__factory } from "./StdAssertions__factory"; +export { StdInvariant__factory } from "./StdInvariant__factory"; +export { Test__factory } from "./Test__factory"; diff --git a/typechain-types/factories/forge-std/interfaces/IMulticall3__factory.ts b/typechain-types/factories/forge-std/interfaces/IMulticall3__factory.ts new file mode 100644 index 00000000..038885db --- /dev/null +++ b/typechain-types/factories/forge-std/interfaces/IMulticall3__factory.ts @@ -0,0 +1,460 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IMulticall3, + IMulticall3Interface, +} from "../../../forge-std/interfaces/IMulticall3"; + +const _abi = [ + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes", + name: "callData", + type: "bytes", + }, + ], + internalType: "struct IMulticall3.Call[]", + name: "calls", + type: "tuple[]", + }, + ], + name: "aggregate", + outputs: [ + { + internalType: "uint256", + name: "blockNumber", + type: "uint256", + }, + { + internalType: "bytes[]", + name: "returnData", + type: "bytes[]", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bool", + name: "allowFailure", + type: "bool", + }, + { + internalType: "bytes", + name: "callData", + type: "bytes", + }, + ], + internalType: "struct IMulticall3.Call3[]", + name: "calls", + type: "tuple[]", + }, + ], + name: "aggregate3", + outputs: [ + { + components: [ + { + internalType: "bool", + name: "success", + type: "bool", + }, + { + internalType: "bytes", + name: "returnData", + type: "bytes", + }, + ], + internalType: "struct IMulticall3.Result[]", + name: "returnData", + type: "tuple[]", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bool", + name: "allowFailure", + type: "bool", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "bytes", + name: "callData", + type: "bytes", + }, + ], + internalType: "struct IMulticall3.Call3Value[]", + name: "calls", + type: "tuple[]", + }, + ], + name: "aggregate3Value", + outputs: [ + { + components: [ + { + internalType: "bool", + name: "success", + type: "bool", + }, + { + internalType: "bytes", + name: "returnData", + type: "bytes", + }, + ], + internalType: "struct IMulticall3.Result[]", + name: "returnData", + type: "tuple[]", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes", + name: "callData", + type: "bytes", + }, + ], + internalType: "struct IMulticall3.Call[]", + name: "calls", + type: "tuple[]", + }, + ], + name: "blockAndAggregate", + outputs: [ + { + internalType: "uint256", + name: "blockNumber", + type: "uint256", + }, + { + internalType: "bytes32", + name: "blockHash", + type: "bytes32", + }, + { + components: [ + { + internalType: "bool", + name: "success", + type: "bool", + }, + { + internalType: "bytes", + name: "returnData", + type: "bytes", + }, + ], + internalType: "struct IMulticall3.Result[]", + name: "returnData", + type: "tuple[]", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "getBasefee", + outputs: [ + { + internalType: "uint256", + name: "basefee", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "blockNumber", + type: "uint256", + }, + ], + name: "getBlockHash", + outputs: [ + { + internalType: "bytes32", + name: "blockHash", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getBlockNumber", + outputs: [ + { + internalType: "uint256", + name: "blockNumber", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getChainId", + outputs: [ + { + internalType: "uint256", + name: "chainid", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getCurrentBlockCoinbase", + outputs: [ + { + internalType: "address", + name: "coinbase", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getCurrentBlockDifficulty", + outputs: [ + { + internalType: "uint256", + name: "difficulty", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getCurrentBlockGasLimit", + outputs: [ + { + internalType: "uint256", + name: "gaslimit", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getCurrentBlockTimestamp", + outputs: [ + { + internalType: "uint256", + name: "timestamp", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + ], + name: "getEthBalance", + outputs: [ + { + internalType: "uint256", + name: "balance", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getLastBlockHash", + outputs: [ + { + internalType: "bytes32", + name: "blockHash", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "requireSuccess", + type: "bool", + }, + { + components: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes", + name: "callData", + type: "bytes", + }, + ], + internalType: "struct IMulticall3.Call[]", + name: "calls", + type: "tuple[]", + }, + ], + name: "tryAggregate", + outputs: [ + { + components: [ + { + internalType: "bool", + name: "success", + type: "bool", + }, + { + internalType: "bytes", + name: "returnData", + type: "bytes", + }, + ], + internalType: "struct IMulticall3.Result[]", + name: "returnData", + type: "tuple[]", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "requireSuccess", + type: "bool", + }, + { + components: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes", + name: "callData", + type: "bytes", + }, + ], + internalType: "struct IMulticall3.Call[]", + name: "calls", + type: "tuple[]", + }, + ], + name: "tryBlockAndAggregate", + outputs: [ + { + internalType: "uint256", + name: "blockNumber", + type: "uint256", + }, + { + internalType: "bytes32", + name: "blockHash", + type: "bytes32", + }, + { + components: [ + { + internalType: "bool", + name: "success", + type: "bool", + }, + { + internalType: "bytes", + name: "returnData", + type: "bytes", + }, + ], + internalType: "struct IMulticall3.Result[]", + name: "returnData", + type: "tuple[]", + }, + ], + stateMutability: "payable", + type: "function", + }, +] as const; + +export class IMulticall3__factory { + static readonly abi = _abi; + static createInterface(): IMulticall3Interface { + return new Interface(_abi) as IMulticall3Interface; + } + static connect(address: string, runner?: ContractRunner | null): IMulticall3 { + return new Contract(address, _abi, runner) as unknown as IMulticall3; + } +} diff --git a/typechain-types/factories/forge-std/interfaces/index.ts b/typechain-types/factories/forge-std/interfaces/index.ts new file mode 100644 index 00000000..41167731 --- /dev/null +++ b/typechain-types/factories/forge-std/interfaces/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IMulticall3__factory } from "./IMulticall3__factory"; diff --git a/typechain-types/factories/index.ts b/typechain-types/factories/index.ts new file mode 100644 index 00000000..f025a854 --- /dev/null +++ b/typechain-types/factories/index.ts @@ -0,0 +1,8 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as openzeppelin from "./@openzeppelin"; +export * as uniswap from "./@uniswap"; +export * as zetachain from "./@zetachain"; +export * as contracts from "./contracts"; +export * as forgeStd from "./forge-std"; diff --git a/typechain-types/forge-std/StdAssertions.ts b/typechain-types/forge-std/StdAssertions.ts new file mode 100644 index 00000000..7a5511ff --- /dev/null +++ b/typechain-types/forge-std/StdAssertions.ts @@ -0,0 +1,762 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../common"; + +export interface StdAssertionsInterface extends Interface { + getFunction(nameOrSignature: "failed"): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "log" + | "log_address" + | "log_array(uint256[])" + | "log_array(int256[])" + | "log_array(address[])" + | "log_bytes" + | "log_bytes32" + | "log_int" + | "log_named_address" + | "log_named_array(string,uint256[])" + | "log_named_array(string,int256[])" + | "log_named_array(string,address[])" + | "log_named_bytes" + | "log_named_bytes32" + | "log_named_decimal_int" + | "log_named_decimal_uint" + | "log_named_int" + | "log_named_string" + | "log_named_uint" + | "log_string" + | "log_uint" + | "logs" + ): EventFragment; + + encodeFunctionData(functionFragment: "failed", values?: undefined): string; + + decodeFunctionResult(functionFragment: "failed", data: BytesLike): Result; +} + +export namespace logEvent { + export type InputTuple = [arg0: string]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_addressEvent { + export type InputTuple = [arg0: AddressLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_array_uint256_array_Event { + export type InputTuple = [val: BigNumberish[]]; + export type OutputTuple = [val: bigint[]]; + export interface OutputObject { + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_array_int256_array_Event { + export type InputTuple = [val: BigNumberish[]]; + export type OutputTuple = [val: bigint[]]; + export interface OutputObject { + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_array_address_array_Event { + export type InputTuple = [val: AddressLike[]]; + export type OutputTuple = [val: string[]]; + export interface OutputObject { + val: string[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_bytesEvent { + export type InputTuple = [arg0: BytesLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_bytes32Event { + export type InputTuple = [arg0: BytesLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_intEvent { + export type InputTuple = [arg0: BigNumberish]; + export type OutputTuple = [arg0: bigint]; + export interface OutputObject { + arg0: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_addressEvent { + export type InputTuple = [key: string, val: AddressLike]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_array_string_uint256_array_Event { + export type InputTuple = [key: string, val: BigNumberish[]]; + export type OutputTuple = [key: string, val: bigint[]]; + export interface OutputObject { + key: string; + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_array_string_int256_array_Event { + export type InputTuple = [key: string, val: BigNumberish[]]; + export type OutputTuple = [key: string, val: bigint[]]; + export interface OutputObject { + key: string; + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_array_string_address_array_Event { + export type InputTuple = [key: string, val: AddressLike[]]; + export type OutputTuple = [key: string, val: string[]]; + export interface OutputObject { + key: string; + val: string[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_bytesEvent { + export type InputTuple = [key: string, val: BytesLike]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_bytes32Event { + export type InputTuple = [key: string, val: BytesLike]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_decimal_intEvent { + export type InputTuple = [ + key: string, + val: BigNumberish, + decimals: BigNumberish + ]; + export type OutputTuple = [key: string, val: bigint, decimals: bigint]; + export interface OutputObject { + key: string; + val: bigint; + decimals: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_decimal_uintEvent { + export type InputTuple = [ + key: string, + val: BigNumberish, + decimals: BigNumberish + ]; + export type OutputTuple = [key: string, val: bigint, decimals: bigint]; + export interface OutputObject { + key: string; + val: bigint; + decimals: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_intEvent { + export type InputTuple = [key: string, val: BigNumberish]; + export type OutputTuple = [key: string, val: bigint]; + export interface OutputObject { + key: string; + val: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_stringEvent { + export type InputTuple = [key: string, val: string]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_uintEvent { + export type InputTuple = [key: string, val: BigNumberish]; + export type OutputTuple = [key: string, val: bigint]; + export interface OutputObject { + key: string; + val: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_stringEvent { + export type InputTuple = [arg0: string]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_uintEvent { + export type InputTuple = [arg0: BigNumberish]; + export type OutputTuple = [arg0: bigint]; + export interface OutputObject { + arg0: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace logsEvent { + export type InputTuple = [arg0: BytesLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface StdAssertions extends BaseContract { + connect(runner?: ContractRunner | null): StdAssertions; + waitForDeployment(): Promise; + + interface: StdAssertionsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + failed: TypedContractMethod<[], [boolean], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "failed" + ): TypedContractMethod<[], [boolean], "view">; + + getEvent( + key: "log" + ): TypedContractEvent< + logEvent.InputTuple, + logEvent.OutputTuple, + logEvent.OutputObject + >; + getEvent( + key: "log_address" + ): TypedContractEvent< + log_addressEvent.InputTuple, + log_addressEvent.OutputTuple, + log_addressEvent.OutputObject + >; + getEvent( + key: "log_array(uint256[])" + ): TypedContractEvent< + log_array_uint256_array_Event.InputTuple, + log_array_uint256_array_Event.OutputTuple, + log_array_uint256_array_Event.OutputObject + >; + getEvent( + key: "log_array(int256[])" + ): TypedContractEvent< + log_array_int256_array_Event.InputTuple, + log_array_int256_array_Event.OutputTuple, + log_array_int256_array_Event.OutputObject + >; + getEvent( + key: "log_array(address[])" + ): TypedContractEvent< + log_array_address_array_Event.InputTuple, + log_array_address_array_Event.OutputTuple, + log_array_address_array_Event.OutputObject + >; + getEvent( + key: "log_bytes" + ): TypedContractEvent< + log_bytesEvent.InputTuple, + log_bytesEvent.OutputTuple, + log_bytesEvent.OutputObject + >; + getEvent( + key: "log_bytes32" + ): TypedContractEvent< + log_bytes32Event.InputTuple, + log_bytes32Event.OutputTuple, + log_bytes32Event.OutputObject + >; + getEvent( + key: "log_int" + ): TypedContractEvent< + log_intEvent.InputTuple, + log_intEvent.OutputTuple, + log_intEvent.OutputObject + >; + getEvent( + key: "log_named_address" + ): TypedContractEvent< + log_named_addressEvent.InputTuple, + log_named_addressEvent.OutputTuple, + log_named_addressEvent.OutputObject + >; + getEvent( + key: "log_named_array(string,uint256[])" + ): TypedContractEvent< + log_named_array_string_uint256_array_Event.InputTuple, + log_named_array_string_uint256_array_Event.OutputTuple, + log_named_array_string_uint256_array_Event.OutputObject + >; + getEvent( + key: "log_named_array(string,int256[])" + ): TypedContractEvent< + log_named_array_string_int256_array_Event.InputTuple, + log_named_array_string_int256_array_Event.OutputTuple, + log_named_array_string_int256_array_Event.OutputObject + >; + getEvent( + key: "log_named_array(string,address[])" + ): TypedContractEvent< + log_named_array_string_address_array_Event.InputTuple, + log_named_array_string_address_array_Event.OutputTuple, + log_named_array_string_address_array_Event.OutputObject + >; + getEvent( + key: "log_named_bytes" + ): TypedContractEvent< + log_named_bytesEvent.InputTuple, + log_named_bytesEvent.OutputTuple, + log_named_bytesEvent.OutputObject + >; + getEvent( + key: "log_named_bytes32" + ): TypedContractEvent< + log_named_bytes32Event.InputTuple, + log_named_bytes32Event.OutputTuple, + log_named_bytes32Event.OutputObject + >; + getEvent( + key: "log_named_decimal_int" + ): TypedContractEvent< + log_named_decimal_intEvent.InputTuple, + log_named_decimal_intEvent.OutputTuple, + log_named_decimal_intEvent.OutputObject + >; + getEvent( + key: "log_named_decimal_uint" + ): TypedContractEvent< + log_named_decimal_uintEvent.InputTuple, + log_named_decimal_uintEvent.OutputTuple, + log_named_decimal_uintEvent.OutputObject + >; + getEvent( + key: "log_named_int" + ): TypedContractEvent< + log_named_intEvent.InputTuple, + log_named_intEvent.OutputTuple, + log_named_intEvent.OutputObject + >; + getEvent( + key: "log_named_string" + ): TypedContractEvent< + log_named_stringEvent.InputTuple, + log_named_stringEvent.OutputTuple, + log_named_stringEvent.OutputObject + >; + getEvent( + key: "log_named_uint" + ): TypedContractEvent< + log_named_uintEvent.InputTuple, + log_named_uintEvent.OutputTuple, + log_named_uintEvent.OutputObject + >; + getEvent( + key: "log_string" + ): TypedContractEvent< + log_stringEvent.InputTuple, + log_stringEvent.OutputTuple, + log_stringEvent.OutputObject + >; + getEvent( + key: "log_uint" + ): TypedContractEvent< + log_uintEvent.InputTuple, + log_uintEvent.OutputTuple, + log_uintEvent.OutputObject + >; + getEvent( + key: "logs" + ): TypedContractEvent< + logsEvent.InputTuple, + logsEvent.OutputTuple, + logsEvent.OutputObject + >; + + filters: { + "log(string)": TypedContractEvent< + logEvent.InputTuple, + logEvent.OutputTuple, + logEvent.OutputObject + >; + log: TypedContractEvent< + logEvent.InputTuple, + logEvent.OutputTuple, + logEvent.OutputObject + >; + + "log_address(address)": TypedContractEvent< + log_addressEvent.InputTuple, + log_addressEvent.OutputTuple, + log_addressEvent.OutputObject + >; + log_address: TypedContractEvent< + log_addressEvent.InputTuple, + log_addressEvent.OutputTuple, + log_addressEvent.OutputObject + >; + + "log_array(uint256[])": TypedContractEvent< + log_array_uint256_array_Event.InputTuple, + log_array_uint256_array_Event.OutputTuple, + log_array_uint256_array_Event.OutputObject + >; + "log_array(int256[])": TypedContractEvent< + log_array_int256_array_Event.InputTuple, + log_array_int256_array_Event.OutputTuple, + log_array_int256_array_Event.OutputObject + >; + "log_array(address[])": TypedContractEvent< + log_array_address_array_Event.InputTuple, + log_array_address_array_Event.OutputTuple, + log_array_address_array_Event.OutputObject + >; + + "log_bytes(bytes)": TypedContractEvent< + log_bytesEvent.InputTuple, + log_bytesEvent.OutputTuple, + log_bytesEvent.OutputObject + >; + log_bytes: TypedContractEvent< + log_bytesEvent.InputTuple, + log_bytesEvent.OutputTuple, + log_bytesEvent.OutputObject + >; + + "log_bytes32(bytes32)": TypedContractEvent< + log_bytes32Event.InputTuple, + log_bytes32Event.OutputTuple, + log_bytes32Event.OutputObject + >; + log_bytes32: TypedContractEvent< + log_bytes32Event.InputTuple, + log_bytes32Event.OutputTuple, + log_bytes32Event.OutputObject + >; + + "log_int(int256)": TypedContractEvent< + log_intEvent.InputTuple, + log_intEvent.OutputTuple, + log_intEvent.OutputObject + >; + log_int: TypedContractEvent< + log_intEvent.InputTuple, + log_intEvent.OutputTuple, + log_intEvent.OutputObject + >; + + "log_named_address(string,address)": TypedContractEvent< + log_named_addressEvent.InputTuple, + log_named_addressEvent.OutputTuple, + log_named_addressEvent.OutputObject + >; + log_named_address: TypedContractEvent< + log_named_addressEvent.InputTuple, + log_named_addressEvent.OutputTuple, + log_named_addressEvent.OutputObject + >; + + "log_named_array(string,uint256[])": TypedContractEvent< + log_named_array_string_uint256_array_Event.InputTuple, + log_named_array_string_uint256_array_Event.OutputTuple, + log_named_array_string_uint256_array_Event.OutputObject + >; + "log_named_array(string,int256[])": TypedContractEvent< + log_named_array_string_int256_array_Event.InputTuple, + log_named_array_string_int256_array_Event.OutputTuple, + log_named_array_string_int256_array_Event.OutputObject + >; + "log_named_array(string,address[])": TypedContractEvent< + log_named_array_string_address_array_Event.InputTuple, + log_named_array_string_address_array_Event.OutputTuple, + log_named_array_string_address_array_Event.OutputObject + >; + + "log_named_bytes(string,bytes)": TypedContractEvent< + log_named_bytesEvent.InputTuple, + log_named_bytesEvent.OutputTuple, + log_named_bytesEvent.OutputObject + >; + log_named_bytes: TypedContractEvent< + log_named_bytesEvent.InputTuple, + log_named_bytesEvent.OutputTuple, + log_named_bytesEvent.OutputObject + >; + + "log_named_bytes32(string,bytes32)": TypedContractEvent< + log_named_bytes32Event.InputTuple, + log_named_bytes32Event.OutputTuple, + log_named_bytes32Event.OutputObject + >; + log_named_bytes32: TypedContractEvent< + log_named_bytes32Event.InputTuple, + log_named_bytes32Event.OutputTuple, + log_named_bytes32Event.OutputObject + >; + + "log_named_decimal_int(string,int256,uint256)": TypedContractEvent< + log_named_decimal_intEvent.InputTuple, + log_named_decimal_intEvent.OutputTuple, + log_named_decimal_intEvent.OutputObject + >; + log_named_decimal_int: TypedContractEvent< + log_named_decimal_intEvent.InputTuple, + log_named_decimal_intEvent.OutputTuple, + log_named_decimal_intEvent.OutputObject + >; + + "log_named_decimal_uint(string,uint256,uint256)": TypedContractEvent< + log_named_decimal_uintEvent.InputTuple, + log_named_decimal_uintEvent.OutputTuple, + log_named_decimal_uintEvent.OutputObject + >; + log_named_decimal_uint: TypedContractEvent< + log_named_decimal_uintEvent.InputTuple, + log_named_decimal_uintEvent.OutputTuple, + log_named_decimal_uintEvent.OutputObject + >; + + "log_named_int(string,int256)": TypedContractEvent< + log_named_intEvent.InputTuple, + log_named_intEvent.OutputTuple, + log_named_intEvent.OutputObject + >; + log_named_int: TypedContractEvent< + log_named_intEvent.InputTuple, + log_named_intEvent.OutputTuple, + log_named_intEvent.OutputObject + >; + + "log_named_string(string,string)": TypedContractEvent< + log_named_stringEvent.InputTuple, + log_named_stringEvent.OutputTuple, + log_named_stringEvent.OutputObject + >; + log_named_string: TypedContractEvent< + log_named_stringEvent.InputTuple, + log_named_stringEvent.OutputTuple, + log_named_stringEvent.OutputObject + >; + + "log_named_uint(string,uint256)": TypedContractEvent< + log_named_uintEvent.InputTuple, + log_named_uintEvent.OutputTuple, + log_named_uintEvent.OutputObject + >; + log_named_uint: TypedContractEvent< + log_named_uintEvent.InputTuple, + log_named_uintEvent.OutputTuple, + log_named_uintEvent.OutputObject + >; + + "log_string(string)": TypedContractEvent< + log_stringEvent.InputTuple, + log_stringEvent.OutputTuple, + log_stringEvent.OutputObject + >; + log_string: TypedContractEvent< + log_stringEvent.InputTuple, + log_stringEvent.OutputTuple, + log_stringEvent.OutputObject + >; + + "log_uint(uint256)": TypedContractEvent< + log_uintEvent.InputTuple, + log_uintEvent.OutputTuple, + log_uintEvent.OutputObject + >; + log_uint: TypedContractEvent< + log_uintEvent.InputTuple, + log_uintEvent.OutputTuple, + log_uintEvent.OutputObject + >; + + "logs(bytes)": TypedContractEvent< + logsEvent.InputTuple, + logsEvent.OutputTuple, + logsEvent.OutputObject + >; + logs: TypedContractEvent< + logsEvent.InputTuple, + logsEvent.OutputTuple, + logsEvent.OutputObject + >; + }; +} diff --git a/typechain-types/forge-std/StdError.sol/StdError.ts b/typechain-types/forge-std/StdError.sol/StdError.ts new file mode 100644 index 00000000..4a7728ff --- /dev/null +++ b/typechain-types/forge-std/StdError.sol/StdError.ts @@ -0,0 +1,199 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../common"; + +export interface StdErrorInterface extends Interface { + getFunction( + nameOrSignature: + | "arithmeticError" + | "assertionError" + | "divisionError" + | "encodeStorageError" + | "enumConversionError" + | "indexOOBError" + | "memOverflowError" + | "popError" + | "zeroVarError" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "arithmeticError", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "assertionError", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "divisionError", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "encodeStorageError", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "enumConversionError", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "indexOOBError", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "memOverflowError", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "popError", values?: undefined): string; + encodeFunctionData( + functionFragment: "zeroVarError", + values?: undefined + ): string; + + decodeFunctionResult( + functionFragment: "arithmeticError", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertionError", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "divisionError", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "encodeStorageError", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "enumConversionError", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "indexOOBError", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "memOverflowError", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "popError", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "zeroVarError", + data: BytesLike + ): Result; +} + +export interface StdError extends BaseContract { + connect(runner?: ContractRunner | null): StdError; + waitForDeployment(): Promise; + + interface: StdErrorInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + arithmeticError: TypedContractMethod<[], [string], "view">; + + assertionError: TypedContractMethod<[], [string], "view">; + + divisionError: TypedContractMethod<[], [string], "view">; + + encodeStorageError: TypedContractMethod<[], [string], "view">; + + enumConversionError: TypedContractMethod<[], [string], "view">; + + indexOOBError: TypedContractMethod<[], [string], "view">; + + memOverflowError: TypedContractMethod<[], [string], "view">; + + popError: TypedContractMethod<[], [string], "view">; + + zeroVarError: TypedContractMethod<[], [string], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "arithmeticError" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "assertionError" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "divisionError" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "encodeStorageError" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "enumConversionError" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "indexOOBError" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "memOverflowError" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "popError" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "zeroVarError" + ): TypedContractMethod<[], [string], "view">; + + filters: {}; +} diff --git a/typechain-types/forge-std/StdError.sol/index.ts b/typechain-types/forge-std/StdError.sol/index.ts new file mode 100644 index 00000000..011e98fa --- /dev/null +++ b/typechain-types/forge-std/StdError.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { StdError } from "./StdError"; diff --git a/typechain-types/forge-std/StdInvariant.ts b/typechain-types/forge-std/StdInvariant.ts new file mode 100644 index 00000000..6d46903b --- /dev/null +++ b/typechain-types/forge-std/StdInvariant.ts @@ -0,0 +1,273 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../common"; + +export declare namespace StdInvariant { + export type FuzzSelectorStruct = { + addr: AddressLike; + selectors: BytesLike[]; + }; + + export type FuzzSelectorStructOutput = [addr: string, selectors: string[]] & { + addr: string; + selectors: string[]; + }; + + export type FuzzArtifactSelectorStruct = { + artifact: string; + selectors: BytesLike[]; + }; + + export type FuzzArtifactSelectorStructOutput = [ + artifact: string, + selectors: string[] + ] & { artifact: string; selectors: string[] }; + + export type FuzzInterfaceStruct = { addr: AddressLike; artifacts: string[] }; + + export type FuzzInterfaceStructOutput = [ + addr: string, + artifacts: string[] + ] & { addr: string; artifacts: string[] }; +} + +export interface StdInvariantInterface extends Interface { + getFunction( + nameOrSignature: + | "excludeArtifacts" + | "excludeContracts" + | "excludeSelectors" + | "excludeSenders" + | "targetArtifactSelectors" + | "targetArtifacts" + | "targetContracts" + | "targetInterfaces" + | "targetSelectors" + | "targetSenders" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "excludeArtifacts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "excludeContracts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "excludeSelectors", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "excludeSenders", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetArtifactSelectors", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetArtifacts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetContracts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetInterfaces", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetSelectors", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetSenders", + values?: undefined + ): string; + + decodeFunctionResult( + functionFragment: "excludeArtifacts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "excludeContracts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "excludeSelectors", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "excludeSenders", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetArtifactSelectors", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetArtifacts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetContracts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetInterfaces", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetSelectors", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetSenders", + data: BytesLike + ): Result; +} + +export interface StdInvariant extends BaseContract { + connect(runner?: ContractRunner | null): StdInvariant; + waitForDeployment(): Promise; + + interface: StdInvariantInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + excludeArtifacts: TypedContractMethod<[], [string[]], "view">; + + excludeContracts: TypedContractMethod<[], [string[]], "view">; + + excludeSelectors: TypedContractMethod< + [], + [StdInvariant.FuzzSelectorStructOutput[]], + "view" + >; + + excludeSenders: TypedContractMethod<[], [string[]], "view">; + + targetArtifactSelectors: TypedContractMethod< + [], + [StdInvariant.FuzzArtifactSelectorStructOutput[]], + "view" + >; + + targetArtifacts: TypedContractMethod<[], [string[]], "view">; + + targetContracts: TypedContractMethod<[], [string[]], "view">; + + targetInterfaces: TypedContractMethod< + [], + [StdInvariant.FuzzInterfaceStructOutput[]], + "view" + >; + + targetSelectors: TypedContractMethod< + [], + [StdInvariant.FuzzSelectorStructOutput[]], + "view" + >; + + targetSenders: TypedContractMethod<[], [string[]], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "excludeArtifacts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "excludeContracts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "excludeSelectors" + ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; + getFunction( + nameOrSignature: "excludeSenders" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "targetArtifactSelectors" + ): TypedContractMethod< + [], + [StdInvariant.FuzzArtifactSelectorStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "targetArtifacts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "targetContracts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "targetInterfaces" + ): TypedContractMethod< + [], + [StdInvariant.FuzzInterfaceStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "targetSelectors" + ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; + getFunction( + nameOrSignature: "targetSenders" + ): TypedContractMethod<[], [string[]], "view">; + + filters: {}; +} diff --git a/typechain-types/forge-std/StdStorage.sol/StdStorageSafe.ts b/typechain-types/forge-std/StdStorage.sol/StdStorageSafe.ts new file mode 100644 index 00000000..a81b0be3 --- /dev/null +++ b/typechain-types/forge-std/StdStorage.sol/StdStorageSafe.ts @@ -0,0 +1,153 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, +} from "../../common"; + +export interface StdStorageSafeInterface extends Interface { + getEvent( + nameOrSignatureOrTopic: "SlotFound" | "WARNING_UninitedSlot" + ): EventFragment; +} + +export namespace SlotFoundEvent { + export type InputTuple = [ + who: AddressLike, + fsig: BytesLike, + keysHash: BytesLike, + slot: BigNumberish + ]; + export type OutputTuple = [ + who: string, + fsig: string, + keysHash: string, + slot: bigint + ]; + export interface OutputObject { + who: string; + fsig: string; + keysHash: string; + slot: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace WARNING_UninitedSlotEvent { + export type InputTuple = [who: AddressLike, slot: BigNumberish]; + export type OutputTuple = [who: string, slot: bigint]; + export interface OutputObject { + who: string; + slot: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface StdStorageSafe extends BaseContract { + connect(runner?: ContractRunner | null): StdStorageSafe; + waitForDeployment(): Promise; + + interface: StdStorageSafeInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + getEvent( + key: "SlotFound" + ): TypedContractEvent< + SlotFoundEvent.InputTuple, + SlotFoundEvent.OutputTuple, + SlotFoundEvent.OutputObject + >; + getEvent( + key: "WARNING_UninitedSlot" + ): TypedContractEvent< + WARNING_UninitedSlotEvent.InputTuple, + WARNING_UninitedSlotEvent.OutputTuple, + WARNING_UninitedSlotEvent.OutputObject + >; + + filters: { + "SlotFound(address,bytes4,bytes32,uint256)": TypedContractEvent< + SlotFoundEvent.InputTuple, + SlotFoundEvent.OutputTuple, + SlotFoundEvent.OutputObject + >; + SlotFound: TypedContractEvent< + SlotFoundEvent.InputTuple, + SlotFoundEvent.OutputTuple, + SlotFoundEvent.OutputObject + >; + + "WARNING_UninitedSlot(address,uint256)": TypedContractEvent< + WARNING_UninitedSlotEvent.InputTuple, + WARNING_UninitedSlotEvent.OutputTuple, + WARNING_UninitedSlotEvent.OutputObject + >; + WARNING_UninitedSlot: TypedContractEvent< + WARNING_UninitedSlotEvent.InputTuple, + WARNING_UninitedSlotEvent.OutputTuple, + WARNING_UninitedSlotEvent.OutputObject + >; + }; +} diff --git a/typechain-types/forge-std/StdStorage.sol/index.ts b/typechain-types/forge-std/StdStorage.sol/index.ts new file mode 100644 index 00000000..8a3fb579 --- /dev/null +++ b/typechain-types/forge-std/StdStorage.sol/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { StdStorageSafe } from "./StdStorageSafe"; diff --git a/typechain-types/forge-std/Test.ts b/typechain-types/forge-std/Test.ts new file mode 100644 index 00000000..9417b2a4 --- /dev/null +++ b/typechain-types/forge-std/Test.ts @@ -0,0 +1,966 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../common"; + +export declare namespace StdInvariant { + export type FuzzSelectorStruct = { + addr: AddressLike; + selectors: BytesLike[]; + }; + + export type FuzzSelectorStructOutput = [addr: string, selectors: string[]] & { + addr: string; + selectors: string[]; + }; + + export type FuzzArtifactSelectorStruct = { + artifact: string; + selectors: BytesLike[]; + }; + + export type FuzzArtifactSelectorStructOutput = [ + artifact: string, + selectors: string[] + ] & { artifact: string; selectors: string[] }; + + export type FuzzInterfaceStruct = { addr: AddressLike; artifacts: string[] }; + + export type FuzzInterfaceStructOutput = [ + addr: string, + artifacts: string[] + ] & { addr: string; artifacts: string[] }; +} + +export interface TestInterface extends Interface { + getFunction( + nameOrSignature: + | "IS_TEST" + | "excludeArtifacts" + | "excludeContracts" + | "excludeSelectors" + | "excludeSenders" + | "failed" + | "targetArtifactSelectors" + | "targetArtifacts" + | "targetContracts" + | "targetInterfaces" + | "targetSelectors" + | "targetSenders" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "log" + | "log_address" + | "log_array(uint256[])" + | "log_array(int256[])" + | "log_array(address[])" + | "log_bytes" + | "log_bytes32" + | "log_int" + | "log_named_address" + | "log_named_array(string,uint256[])" + | "log_named_array(string,int256[])" + | "log_named_array(string,address[])" + | "log_named_bytes" + | "log_named_bytes32" + | "log_named_decimal_int" + | "log_named_decimal_uint" + | "log_named_int" + | "log_named_string" + | "log_named_uint" + | "log_string" + | "log_uint" + | "logs" + ): EventFragment; + + encodeFunctionData(functionFragment: "IS_TEST", values?: undefined): string; + encodeFunctionData( + functionFragment: "excludeArtifacts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "excludeContracts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "excludeSelectors", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "excludeSenders", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "failed", values?: undefined): string; + encodeFunctionData( + functionFragment: "targetArtifactSelectors", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetArtifacts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetContracts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetInterfaces", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetSelectors", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "targetSenders", + values?: undefined + ): string; + + decodeFunctionResult(functionFragment: "IS_TEST", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "excludeArtifacts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "excludeContracts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "excludeSelectors", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "excludeSenders", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "failed", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "targetArtifactSelectors", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetArtifacts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetContracts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetInterfaces", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetSelectors", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "targetSenders", + data: BytesLike + ): Result; +} + +export namespace logEvent { + export type InputTuple = [arg0: string]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_addressEvent { + export type InputTuple = [arg0: AddressLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_array_uint256_array_Event { + export type InputTuple = [val: BigNumberish[]]; + export type OutputTuple = [val: bigint[]]; + export interface OutputObject { + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_array_int256_array_Event { + export type InputTuple = [val: BigNumberish[]]; + export type OutputTuple = [val: bigint[]]; + export interface OutputObject { + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_array_address_array_Event { + export type InputTuple = [val: AddressLike[]]; + export type OutputTuple = [val: string[]]; + export interface OutputObject { + val: string[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_bytesEvent { + export type InputTuple = [arg0: BytesLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_bytes32Event { + export type InputTuple = [arg0: BytesLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_intEvent { + export type InputTuple = [arg0: BigNumberish]; + export type OutputTuple = [arg0: bigint]; + export interface OutputObject { + arg0: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_addressEvent { + export type InputTuple = [key: string, val: AddressLike]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_array_string_uint256_array_Event { + export type InputTuple = [key: string, val: BigNumberish[]]; + export type OutputTuple = [key: string, val: bigint[]]; + export interface OutputObject { + key: string; + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_array_string_int256_array_Event { + export type InputTuple = [key: string, val: BigNumberish[]]; + export type OutputTuple = [key: string, val: bigint[]]; + export interface OutputObject { + key: string; + val: bigint[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_array_string_address_array_Event { + export type InputTuple = [key: string, val: AddressLike[]]; + export type OutputTuple = [key: string, val: string[]]; + export interface OutputObject { + key: string; + val: string[]; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_bytesEvent { + export type InputTuple = [key: string, val: BytesLike]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_bytes32Event { + export type InputTuple = [key: string, val: BytesLike]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_decimal_intEvent { + export type InputTuple = [ + key: string, + val: BigNumberish, + decimals: BigNumberish + ]; + export type OutputTuple = [key: string, val: bigint, decimals: bigint]; + export interface OutputObject { + key: string; + val: bigint; + decimals: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_decimal_uintEvent { + export type InputTuple = [ + key: string, + val: BigNumberish, + decimals: BigNumberish + ]; + export type OutputTuple = [key: string, val: bigint, decimals: bigint]; + export interface OutputObject { + key: string; + val: bigint; + decimals: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_intEvent { + export type InputTuple = [key: string, val: BigNumberish]; + export type OutputTuple = [key: string, val: bigint]; + export interface OutputObject { + key: string; + val: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_stringEvent { + export type InputTuple = [key: string, val: string]; + export type OutputTuple = [key: string, val: string]; + export interface OutputObject { + key: string; + val: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_named_uintEvent { + export type InputTuple = [key: string, val: BigNumberish]; + export type OutputTuple = [key: string, val: bigint]; + export interface OutputObject { + key: string; + val: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_stringEvent { + export type InputTuple = [arg0: string]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace log_uintEvent { + export type InputTuple = [arg0: BigNumberish]; + export type OutputTuple = [arg0: bigint]; + export interface OutputObject { + arg0: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace logsEvent { + export type InputTuple = [arg0: BytesLike]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface Test extends BaseContract { + connect(runner?: ContractRunner | null): Test; + waitForDeployment(): Promise; + + interface: TestInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + IS_TEST: TypedContractMethod<[], [boolean], "view">; + + excludeArtifacts: TypedContractMethod<[], [string[]], "view">; + + excludeContracts: TypedContractMethod<[], [string[]], "view">; + + excludeSelectors: TypedContractMethod< + [], + [StdInvariant.FuzzSelectorStructOutput[]], + "view" + >; + + excludeSenders: TypedContractMethod<[], [string[]], "view">; + + failed: TypedContractMethod<[], [boolean], "view">; + + targetArtifactSelectors: TypedContractMethod< + [], + [StdInvariant.FuzzArtifactSelectorStructOutput[]], + "view" + >; + + targetArtifacts: TypedContractMethod<[], [string[]], "view">; + + targetContracts: TypedContractMethod<[], [string[]], "view">; + + targetInterfaces: TypedContractMethod< + [], + [StdInvariant.FuzzInterfaceStructOutput[]], + "view" + >; + + targetSelectors: TypedContractMethod< + [], + [StdInvariant.FuzzSelectorStructOutput[]], + "view" + >; + + targetSenders: TypedContractMethod<[], [string[]], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "IS_TEST" + ): TypedContractMethod<[], [boolean], "view">; + getFunction( + nameOrSignature: "excludeArtifacts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "excludeContracts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "excludeSelectors" + ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; + getFunction( + nameOrSignature: "excludeSenders" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "failed" + ): TypedContractMethod<[], [boolean], "view">; + getFunction( + nameOrSignature: "targetArtifactSelectors" + ): TypedContractMethod< + [], + [StdInvariant.FuzzArtifactSelectorStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "targetArtifacts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "targetContracts" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "targetInterfaces" + ): TypedContractMethod< + [], + [StdInvariant.FuzzInterfaceStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "targetSelectors" + ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">; + getFunction( + nameOrSignature: "targetSenders" + ): TypedContractMethod<[], [string[]], "view">; + + getEvent( + key: "log" + ): TypedContractEvent< + logEvent.InputTuple, + logEvent.OutputTuple, + logEvent.OutputObject + >; + getEvent( + key: "log_address" + ): TypedContractEvent< + log_addressEvent.InputTuple, + log_addressEvent.OutputTuple, + log_addressEvent.OutputObject + >; + getEvent( + key: "log_array(uint256[])" + ): TypedContractEvent< + log_array_uint256_array_Event.InputTuple, + log_array_uint256_array_Event.OutputTuple, + log_array_uint256_array_Event.OutputObject + >; + getEvent( + key: "log_array(int256[])" + ): TypedContractEvent< + log_array_int256_array_Event.InputTuple, + log_array_int256_array_Event.OutputTuple, + log_array_int256_array_Event.OutputObject + >; + getEvent( + key: "log_array(address[])" + ): TypedContractEvent< + log_array_address_array_Event.InputTuple, + log_array_address_array_Event.OutputTuple, + log_array_address_array_Event.OutputObject + >; + getEvent( + key: "log_bytes" + ): TypedContractEvent< + log_bytesEvent.InputTuple, + log_bytesEvent.OutputTuple, + log_bytesEvent.OutputObject + >; + getEvent( + key: "log_bytes32" + ): TypedContractEvent< + log_bytes32Event.InputTuple, + log_bytes32Event.OutputTuple, + log_bytes32Event.OutputObject + >; + getEvent( + key: "log_int" + ): TypedContractEvent< + log_intEvent.InputTuple, + log_intEvent.OutputTuple, + log_intEvent.OutputObject + >; + getEvent( + key: "log_named_address" + ): TypedContractEvent< + log_named_addressEvent.InputTuple, + log_named_addressEvent.OutputTuple, + log_named_addressEvent.OutputObject + >; + getEvent( + key: "log_named_array(string,uint256[])" + ): TypedContractEvent< + log_named_array_string_uint256_array_Event.InputTuple, + log_named_array_string_uint256_array_Event.OutputTuple, + log_named_array_string_uint256_array_Event.OutputObject + >; + getEvent( + key: "log_named_array(string,int256[])" + ): TypedContractEvent< + log_named_array_string_int256_array_Event.InputTuple, + log_named_array_string_int256_array_Event.OutputTuple, + log_named_array_string_int256_array_Event.OutputObject + >; + getEvent( + key: "log_named_array(string,address[])" + ): TypedContractEvent< + log_named_array_string_address_array_Event.InputTuple, + log_named_array_string_address_array_Event.OutputTuple, + log_named_array_string_address_array_Event.OutputObject + >; + getEvent( + key: "log_named_bytes" + ): TypedContractEvent< + log_named_bytesEvent.InputTuple, + log_named_bytesEvent.OutputTuple, + log_named_bytesEvent.OutputObject + >; + getEvent( + key: "log_named_bytes32" + ): TypedContractEvent< + log_named_bytes32Event.InputTuple, + log_named_bytes32Event.OutputTuple, + log_named_bytes32Event.OutputObject + >; + getEvent( + key: "log_named_decimal_int" + ): TypedContractEvent< + log_named_decimal_intEvent.InputTuple, + log_named_decimal_intEvent.OutputTuple, + log_named_decimal_intEvent.OutputObject + >; + getEvent( + key: "log_named_decimal_uint" + ): TypedContractEvent< + log_named_decimal_uintEvent.InputTuple, + log_named_decimal_uintEvent.OutputTuple, + log_named_decimal_uintEvent.OutputObject + >; + getEvent( + key: "log_named_int" + ): TypedContractEvent< + log_named_intEvent.InputTuple, + log_named_intEvent.OutputTuple, + log_named_intEvent.OutputObject + >; + getEvent( + key: "log_named_string" + ): TypedContractEvent< + log_named_stringEvent.InputTuple, + log_named_stringEvent.OutputTuple, + log_named_stringEvent.OutputObject + >; + getEvent( + key: "log_named_uint" + ): TypedContractEvent< + log_named_uintEvent.InputTuple, + log_named_uintEvent.OutputTuple, + log_named_uintEvent.OutputObject + >; + getEvent( + key: "log_string" + ): TypedContractEvent< + log_stringEvent.InputTuple, + log_stringEvent.OutputTuple, + log_stringEvent.OutputObject + >; + getEvent( + key: "log_uint" + ): TypedContractEvent< + log_uintEvent.InputTuple, + log_uintEvent.OutputTuple, + log_uintEvent.OutputObject + >; + getEvent( + key: "logs" + ): TypedContractEvent< + logsEvent.InputTuple, + logsEvent.OutputTuple, + logsEvent.OutputObject + >; + + filters: { + "log(string)": TypedContractEvent< + logEvent.InputTuple, + logEvent.OutputTuple, + logEvent.OutputObject + >; + log: TypedContractEvent< + logEvent.InputTuple, + logEvent.OutputTuple, + logEvent.OutputObject + >; + + "log_address(address)": TypedContractEvent< + log_addressEvent.InputTuple, + log_addressEvent.OutputTuple, + log_addressEvent.OutputObject + >; + log_address: TypedContractEvent< + log_addressEvent.InputTuple, + log_addressEvent.OutputTuple, + log_addressEvent.OutputObject + >; + + "log_array(uint256[])": TypedContractEvent< + log_array_uint256_array_Event.InputTuple, + log_array_uint256_array_Event.OutputTuple, + log_array_uint256_array_Event.OutputObject + >; + "log_array(int256[])": TypedContractEvent< + log_array_int256_array_Event.InputTuple, + log_array_int256_array_Event.OutputTuple, + log_array_int256_array_Event.OutputObject + >; + "log_array(address[])": TypedContractEvent< + log_array_address_array_Event.InputTuple, + log_array_address_array_Event.OutputTuple, + log_array_address_array_Event.OutputObject + >; + + "log_bytes(bytes)": TypedContractEvent< + log_bytesEvent.InputTuple, + log_bytesEvent.OutputTuple, + log_bytesEvent.OutputObject + >; + log_bytes: TypedContractEvent< + log_bytesEvent.InputTuple, + log_bytesEvent.OutputTuple, + log_bytesEvent.OutputObject + >; + + "log_bytes32(bytes32)": TypedContractEvent< + log_bytes32Event.InputTuple, + log_bytes32Event.OutputTuple, + log_bytes32Event.OutputObject + >; + log_bytes32: TypedContractEvent< + log_bytes32Event.InputTuple, + log_bytes32Event.OutputTuple, + log_bytes32Event.OutputObject + >; + + "log_int(int256)": TypedContractEvent< + log_intEvent.InputTuple, + log_intEvent.OutputTuple, + log_intEvent.OutputObject + >; + log_int: TypedContractEvent< + log_intEvent.InputTuple, + log_intEvent.OutputTuple, + log_intEvent.OutputObject + >; + + "log_named_address(string,address)": TypedContractEvent< + log_named_addressEvent.InputTuple, + log_named_addressEvent.OutputTuple, + log_named_addressEvent.OutputObject + >; + log_named_address: TypedContractEvent< + log_named_addressEvent.InputTuple, + log_named_addressEvent.OutputTuple, + log_named_addressEvent.OutputObject + >; + + "log_named_array(string,uint256[])": TypedContractEvent< + log_named_array_string_uint256_array_Event.InputTuple, + log_named_array_string_uint256_array_Event.OutputTuple, + log_named_array_string_uint256_array_Event.OutputObject + >; + "log_named_array(string,int256[])": TypedContractEvent< + log_named_array_string_int256_array_Event.InputTuple, + log_named_array_string_int256_array_Event.OutputTuple, + log_named_array_string_int256_array_Event.OutputObject + >; + "log_named_array(string,address[])": TypedContractEvent< + log_named_array_string_address_array_Event.InputTuple, + log_named_array_string_address_array_Event.OutputTuple, + log_named_array_string_address_array_Event.OutputObject + >; + + "log_named_bytes(string,bytes)": TypedContractEvent< + log_named_bytesEvent.InputTuple, + log_named_bytesEvent.OutputTuple, + log_named_bytesEvent.OutputObject + >; + log_named_bytes: TypedContractEvent< + log_named_bytesEvent.InputTuple, + log_named_bytesEvent.OutputTuple, + log_named_bytesEvent.OutputObject + >; + + "log_named_bytes32(string,bytes32)": TypedContractEvent< + log_named_bytes32Event.InputTuple, + log_named_bytes32Event.OutputTuple, + log_named_bytes32Event.OutputObject + >; + log_named_bytes32: TypedContractEvent< + log_named_bytes32Event.InputTuple, + log_named_bytes32Event.OutputTuple, + log_named_bytes32Event.OutputObject + >; + + "log_named_decimal_int(string,int256,uint256)": TypedContractEvent< + log_named_decimal_intEvent.InputTuple, + log_named_decimal_intEvent.OutputTuple, + log_named_decimal_intEvent.OutputObject + >; + log_named_decimal_int: TypedContractEvent< + log_named_decimal_intEvent.InputTuple, + log_named_decimal_intEvent.OutputTuple, + log_named_decimal_intEvent.OutputObject + >; + + "log_named_decimal_uint(string,uint256,uint256)": TypedContractEvent< + log_named_decimal_uintEvent.InputTuple, + log_named_decimal_uintEvent.OutputTuple, + log_named_decimal_uintEvent.OutputObject + >; + log_named_decimal_uint: TypedContractEvent< + log_named_decimal_uintEvent.InputTuple, + log_named_decimal_uintEvent.OutputTuple, + log_named_decimal_uintEvent.OutputObject + >; + + "log_named_int(string,int256)": TypedContractEvent< + log_named_intEvent.InputTuple, + log_named_intEvent.OutputTuple, + log_named_intEvent.OutputObject + >; + log_named_int: TypedContractEvent< + log_named_intEvent.InputTuple, + log_named_intEvent.OutputTuple, + log_named_intEvent.OutputObject + >; + + "log_named_string(string,string)": TypedContractEvent< + log_named_stringEvent.InputTuple, + log_named_stringEvent.OutputTuple, + log_named_stringEvent.OutputObject + >; + log_named_string: TypedContractEvent< + log_named_stringEvent.InputTuple, + log_named_stringEvent.OutputTuple, + log_named_stringEvent.OutputObject + >; + + "log_named_uint(string,uint256)": TypedContractEvent< + log_named_uintEvent.InputTuple, + log_named_uintEvent.OutputTuple, + log_named_uintEvent.OutputObject + >; + log_named_uint: TypedContractEvent< + log_named_uintEvent.InputTuple, + log_named_uintEvent.OutputTuple, + log_named_uintEvent.OutputObject + >; + + "log_string(string)": TypedContractEvent< + log_stringEvent.InputTuple, + log_stringEvent.OutputTuple, + log_stringEvent.OutputObject + >; + log_string: TypedContractEvent< + log_stringEvent.InputTuple, + log_stringEvent.OutputTuple, + log_stringEvent.OutputObject + >; + + "log_uint(uint256)": TypedContractEvent< + log_uintEvent.InputTuple, + log_uintEvent.OutputTuple, + log_uintEvent.OutputObject + >; + log_uint: TypedContractEvent< + log_uintEvent.InputTuple, + log_uintEvent.OutputTuple, + log_uintEvent.OutputObject + >; + + "logs(bytes)": TypedContractEvent< + logsEvent.InputTuple, + logsEvent.OutputTuple, + logsEvent.OutputObject + >; + logs: TypedContractEvent< + logsEvent.InputTuple, + logsEvent.OutputTuple, + logsEvent.OutputObject + >; + }; +} diff --git a/typechain-types/forge-std/Vm.sol/Vm.ts b/typechain-types/forge-std/Vm.sol/Vm.ts new file mode 100644 index 00000000..5c8d46d6 --- /dev/null +++ b/typechain-types/forge-std/Vm.sol/Vm.ts @@ -0,0 +1,10534 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../common"; + +export declare namespace VmSafe { + export type AccessListItemStruct = { + target: AddressLike; + storageKeys: BytesLike[]; + }; + + export type AccessListItemStructOutput = [ + target: string, + storageKeys: string[] + ] & { target: string; storageKeys: string[] }; + + export type PotentialRevertStruct = { + reverter: AddressLike; + partialMatch: boolean; + revertData: BytesLike; + }; + + export type PotentialRevertStructOutput = [ + reverter: string, + partialMatch: boolean, + revertData: string + ] & { reverter: string; partialMatch: boolean; revertData: string }; + + export type SignedDelegationStruct = { + v: BigNumberish; + r: BytesLike; + s: BytesLike; + nonce: BigNumberish; + implementation: AddressLike; + }; + + export type SignedDelegationStructOutput = [ + v: bigint, + r: string, + s: string, + nonce: bigint, + implementation: string + ] & { + v: bigint; + r: string; + s: string; + nonce: bigint; + implementation: string; + }; + + export type WalletStruct = { + addr: AddressLike; + publicKeyX: BigNumberish; + publicKeyY: BigNumberish; + privateKey: BigNumberish; + }; + + export type WalletStructOutput = [ + addr: string, + publicKeyX: bigint, + publicKeyY: bigint, + privateKey: bigint + ] & { + addr: string; + publicKeyX: bigint; + publicKeyY: bigint; + privateKey: bigint; + }; + + export type EthGetLogsStruct = { + emitter: AddressLike; + topics: BytesLike[]; + data: BytesLike; + blockHash: BytesLike; + blockNumber: BigNumberish; + transactionHash: BytesLike; + transactionIndex: BigNumberish; + logIndex: BigNumberish; + removed: boolean; + }; + + export type EthGetLogsStructOutput = [ + emitter: string, + topics: string[], + data: string, + blockHash: string, + blockNumber: bigint, + transactionHash: string, + transactionIndex: bigint, + logIndex: bigint, + removed: boolean + ] & { + emitter: string; + topics: string[]; + data: string; + blockHash: string; + blockNumber: bigint; + transactionHash: string; + transactionIndex: bigint; + logIndex: bigint; + removed: boolean; + }; + + export type FsMetadataStruct = { + isDir: boolean; + isSymlink: boolean; + length: BigNumberish; + readOnly: boolean; + modified: BigNumberish; + accessed: BigNumberish; + created: BigNumberish; + }; + + export type FsMetadataStructOutput = [ + isDir: boolean, + isSymlink: boolean, + length: bigint, + readOnly: boolean, + modified: bigint, + accessed: bigint, + created: bigint + ] & { + isDir: boolean; + isSymlink: boolean; + length: bigint; + readOnly: boolean; + modified: bigint; + accessed: bigint; + created: bigint; + }; + + export type BroadcastTxSummaryStruct = { + txHash: BytesLike; + txType: BigNumberish; + contractAddress: AddressLike; + blockNumber: BigNumberish; + success: boolean; + }; + + export type BroadcastTxSummaryStructOutput = [ + txHash: string, + txType: bigint, + contractAddress: string, + blockNumber: bigint, + success: boolean + ] & { + txHash: string; + txType: bigint; + contractAddress: string; + blockNumber: bigint; + success: boolean; + }; + + export type ChainStruct = { + name: string; + chainId: BigNumberish; + chainAlias: string; + rpcUrl: string; + }; + + export type ChainStructOutput = [ + name: string, + chainId: bigint, + chainAlias: string, + rpcUrl: string + ] & { name: string; chainId: bigint; chainAlias: string; rpcUrl: string }; + + export type LogStruct = { + topics: BytesLike[]; + data: BytesLike; + emitter: AddressLike; + }; + + export type LogStructOutput = [ + topics: string[], + data: string, + emitter: string + ] & { topics: string[]; data: string; emitter: string }; + + export type GasStruct = { + gasLimit: BigNumberish; + gasTotalUsed: BigNumberish; + gasMemoryUsed: BigNumberish; + gasRefunded: BigNumberish; + gasRemaining: BigNumberish; + }; + + export type GasStructOutput = [ + gasLimit: bigint, + gasTotalUsed: bigint, + gasMemoryUsed: bigint, + gasRefunded: bigint, + gasRemaining: bigint + ] & { + gasLimit: bigint; + gasTotalUsed: bigint; + gasMemoryUsed: bigint; + gasRefunded: bigint; + gasRemaining: bigint; + }; + + export type DirEntryStruct = { + errorMessage: string; + path: string; + depth: BigNumberish; + isDir: boolean; + isSymlink: boolean; + }; + + export type DirEntryStructOutput = [ + errorMessage: string, + path: string, + depth: bigint, + isDir: boolean, + isSymlink: boolean + ] & { + errorMessage: string; + path: string; + depth: bigint; + isDir: boolean; + isSymlink: boolean; + }; + + export type RpcStruct = { key: string; url: string }; + + export type RpcStructOutput = [key: string, url: string] & { + key: string; + url: string; + }; + + export type DebugStepStruct = { + stack: BigNumberish[]; + memoryInput: BytesLike; + opcode: BigNumberish; + depth: BigNumberish; + isOutOfGas: boolean; + contractAddr: AddressLike; + }; + + export type DebugStepStructOutput = [ + stack: bigint[], + memoryInput: string, + opcode: bigint, + depth: bigint, + isOutOfGas: boolean, + contractAddr: string + ] & { + stack: bigint[]; + memoryInput: string; + opcode: bigint; + depth: bigint; + isOutOfGas: boolean; + contractAddr: string; + }; + + export type ChainInfoStruct = { forkId: BigNumberish; chainId: BigNumberish }; + + export type ChainInfoStructOutput = [forkId: bigint, chainId: bigint] & { + forkId: bigint; + chainId: bigint; + }; + + export type StorageAccessStruct = { + account: AddressLike; + slot: BytesLike; + isWrite: boolean; + previousValue: BytesLike; + newValue: BytesLike; + reverted: boolean; + }; + + export type StorageAccessStructOutput = [ + account: string, + slot: string, + isWrite: boolean, + previousValue: string, + newValue: string, + reverted: boolean + ] & { + account: string; + slot: string; + isWrite: boolean; + previousValue: string; + newValue: string; + reverted: boolean; + }; + + export type AccountAccessStruct = { + chainInfo: VmSafe.ChainInfoStruct; + kind: BigNumberish; + account: AddressLike; + accessor: AddressLike; + initialized: boolean; + oldBalance: BigNumberish; + newBalance: BigNumberish; + deployedCode: BytesLike; + value: BigNumberish; + data: BytesLike; + reverted: boolean; + storageAccesses: VmSafe.StorageAccessStruct[]; + depth: BigNumberish; + }; + + export type AccountAccessStructOutput = [ + chainInfo: VmSafe.ChainInfoStructOutput, + kind: bigint, + account: string, + accessor: string, + initialized: boolean, + oldBalance: bigint, + newBalance: bigint, + deployedCode: string, + value: bigint, + data: string, + reverted: boolean, + storageAccesses: VmSafe.StorageAccessStructOutput[], + depth: bigint + ] & { + chainInfo: VmSafe.ChainInfoStructOutput; + kind: bigint; + account: string; + accessor: string; + initialized: boolean; + oldBalance: bigint; + newBalance: bigint; + deployedCode: string; + value: bigint; + data: string; + reverted: boolean; + storageAccesses: VmSafe.StorageAccessStructOutput[]; + depth: bigint; + }; + + export type FfiResultStruct = { + exitCode: BigNumberish; + stdout: BytesLike; + stderr: BytesLike; + }; + + export type FfiResultStructOutput = [ + exitCode: bigint, + stdout: string, + stderr: string + ] & { exitCode: bigint; stdout: string; stderr: string }; +} + +export interface VmInterface extends Interface { + getFunction( + nameOrSignature: + | "accessList" + | "accesses" + | "activeFork" + | "addr" + | "allowCheatcodes" + | "assertApproxEqAbs(uint256,uint256,uint256)" + | "assertApproxEqAbs(int256,int256,uint256)" + | "assertApproxEqAbs(int256,int256,uint256,string)" + | "assertApproxEqAbs(uint256,uint256,uint256,string)" + | "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)" + | "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)" + | "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)" + | "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)" + | "assertApproxEqRel(uint256,uint256,uint256,string)" + | "assertApproxEqRel(uint256,uint256,uint256)" + | "assertApproxEqRel(int256,int256,uint256,string)" + | "assertApproxEqRel(int256,int256,uint256)" + | "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)" + | "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)" + | "assertApproxEqRelDecimal(int256,int256,uint256,uint256)" + | "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)" + | "assertEq(bytes32[],bytes32[])" + | "assertEq(int256[],int256[],string)" + | "assertEq(address,address,string)" + | "assertEq(string,string,string)" + | "assertEq(address[],address[])" + | "assertEq(address[],address[],string)" + | "assertEq(bool,bool,string)" + | "assertEq(address,address)" + | "assertEq(uint256[],uint256[],string)" + | "assertEq(bool[],bool[])" + | "assertEq(int256[],int256[])" + | "assertEq(int256,int256,string)" + | "assertEq(bytes32,bytes32)" + | "assertEq(uint256,uint256,string)" + | "assertEq(uint256[],uint256[])" + | "assertEq(bytes,bytes)" + | "assertEq(uint256,uint256)" + | "assertEq(bytes32,bytes32,string)" + | "assertEq(string[],string[])" + | "assertEq(bytes32[],bytes32[],string)" + | "assertEq(bytes,bytes,string)" + | "assertEq(bool[],bool[],string)" + | "assertEq(bytes[],bytes[])" + | "assertEq(string[],string[],string)" + | "assertEq(string,string)" + | "assertEq(bytes[],bytes[],string)" + | "assertEq(bool,bool)" + | "assertEq(int256,int256)" + | "assertEqDecimal(uint256,uint256,uint256)" + | "assertEqDecimal(int256,int256,uint256)" + | "assertEqDecimal(int256,int256,uint256,string)" + | "assertEqDecimal(uint256,uint256,uint256,string)" + | "assertFalse(bool,string)" + | "assertFalse(bool)" + | "assertGe(int256,int256)" + | "assertGe(int256,int256,string)" + | "assertGe(uint256,uint256)" + | "assertGe(uint256,uint256,string)" + | "assertGeDecimal(uint256,uint256,uint256)" + | "assertGeDecimal(int256,int256,uint256,string)" + | "assertGeDecimal(uint256,uint256,uint256,string)" + | "assertGeDecimal(int256,int256,uint256)" + | "assertGt(int256,int256)" + | "assertGt(uint256,uint256,string)" + | "assertGt(uint256,uint256)" + | "assertGt(int256,int256,string)" + | "assertGtDecimal(int256,int256,uint256,string)" + | "assertGtDecimal(uint256,uint256,uint256,string)" + | "assertGtDecimal(int256,int256,uint256)" + | "assertGtDecimal(uint256,uint256,uint256)" + | "assertLe(int256,int256,string)" + | "assertLe(uint256,uint256)" + | "assertLe(int256,int256)" + | "assertLe(uint256,uint256,string)" + | "assertLeDecimal(int256,int256,uint256)" + | "assertLeDecimal(uint256,uint256,uint256,string)" + | "assertLeDecimal(int256,int256,uint256,string)" + | "assertLeDecimal(uint256,uint256,uint256)" + | "assertLt(int256,int256)" + | "assertLt(uint256,uint256,string)" + | "assertLt(int256,int256,string)" + | "assertLt(uint256,uint256)" + | "assertLtDecimal(uint256,uint256,uint256)" + | "assertLtDecimal(int256,int256,uint256,string)" + | "assertLtDecimal(uint256,uint256,uint256,string)" + | "assertLtDecimal(int256,int256,uint256)" + | "assertNotEq(bytes32[],bytes32[])" + | "assertNotEq(int256[],int256[])" + | "assertNotEq(bool,bool,string)" + | "assertNotEq(bytes[],bytes[],string)" + | "assertNotEq(bool,bool)" + | "assertNotEq(bool[],bool[])" + | "assertNotEq(bytes,bytes)" + | "assertNotEq(address[],address[])" + | "assertNotEq(int256,int256,string)" + | "assertNotEq(uint256[],uint256[])" + | "assertNotEq(bool[],bool[],string)" + | "assertNotEq(string,string)" + | "assertNotEq(address[],address[],string)" + | "assertNotEq(string,string,string)" + | "assertNotEq(address,address,string)" + | "assertNotEq(bytes32,bytes32)" + | "assertNotEq(bytes,bytes,string)" + | "assertNotEq(uint256,uint256,string)" + | "assertNotEq(uint256[],uint256[],string)" + | "assertNotEq(address,address)" + | "assertNotEq(bytes32,bytes32,string)" + | "assertNotEq(string[],string[],string)" + | "assertNotEq(uint256,uint256)" + | "assertNotEq(bytes32[],bytes32[],string)" + | "assertNotEq(string[],string[])" + | "assertNotEq(int256[],int256[],string)" + | "assertNotEq(bytes[],bytes[])" + | "assertNotEq(int256,int256)" + | "assertNotEqDecimal(int256,int256,uint256)" + | "assertNotEqDecimal(int256,int256,uint256,string)" + | "assertNotEqDecimal(uint256,uint256,uint256)" + | "assertNotEqDecimal(uint256,uint256,uint256,string)" + | "assertTrue(bool)" + | "assertTrue(bool,string)" + | "assume" + | "assumeNoRevert()" + | "assumeNoRevert((address,bool,bytes)[])" + | "assumeNoRevert((address,bool,bytes))" + | "attachBlob" + | "attachDelegation" + | "blobBaseFee" + | "blobhashes" + | "breakpoint(string)" + | "breakpoint(string,bool)" + | "broadcast()" + | "broadcast(address)" + | "broadcast(uint256)" + | "broadcastRawTransaction" + | "chainId" + | "clearMockedCalls" + | "cloneAccount" + | "closeFile" + | "coinbase" + | "computeCreate2Address(bytes32,bytes32)" + | "computeCreate2Address(bytes32,bytes32,address)" + | "computeCreateAddress" + | "contains" + | "cool" + | "coolSlot" + | "copyFile" + | "copyStorage" + | "createDir" + | "createFork(string)" + | "createFork(string,uint256)" + | "createFork(string,bytes32)" + | "createSelectFork(string,uint256)" + | "createSelectFork(string,bytes32)" + | "createSelectFork(string)" + | "createWallet(string)" + | "createWallet(uint256)" + | "createWallet(uint256,string)" + | "deal" + | "deleteSnapshot" + | "deleteSnapshots" + | "deleteStateSnapshot" + | "deleteStateSnapshots" + | "deployCode(string,uint256,bytes32)" + | "deployCode(string,bytes,bytes32)" + | "deployCode(string,uint256)" + | "deployCode(string,bytes32)" + | "deployCode(string,bytes)" + | "deployCode(string,bytes,uint256,bytes32)" + | "deployCode(string)" + | "deployCode(string,bytes,uint256)" + | "deriveKey(string,string,uint32,string)" + | "deriveKey(string,uint32,string)" + | "deriveKey(string,uint32)" + | "deriveKey(string,string,uint32)" + | "difficulty" + | "dumpState" + | "ensNamehash" + | "envAddress(string)" + | "envAddress(string,string)" + | "envBool(string)" + | "envBool(string,string)" + | "envBytes(string)" + | "envBytes(string,string)" + | "envBytes32(string,string)" + | "envBytes32(string)" + | "envExists" + | "envInt(string,string)" + | "envInt(string)" + | "envOr(string,string,bytes32[])" + | "envOr(string,string,int256[])" + | "envOr(string,bool)" + | "envOr(string,address)" + | "envOr(string,uint256)" + | "envOr(string,string,bytes[])" + | "envOr(string,string,uint256[])" + | "envOr(string,string,string[])" + | "envOr(string,bytes)" + | "envOr(string,bytes32)" + | "envOr(string,int256)" + | "envOr(string,string,address[])" + | "envOr(string,string)" + | "envOr(string,string,bool[])" + | "envString(string,string)" + | "envString(string)" + | "envUint(string)" + | "envUint(string,string)" + | "etch" + | "eth_getLogs" + | "exists" + | "expectCall(address,uint256,uint64,bytes)" + | "expectCall(address,uint256,uint64,bytes,uint64)" + | "expectCall(address,uint256,bytes,uint64)" + | "expectCall(address,bytes)" + | "expectCall(address,bytes,uint64)" + | "expectCall(address,uint256,bytes)" + | "expectCallMinGas(address,uint256,uint64,bytes)" + | "expectCallMinGas(address,uint256,uint64,bytes,uint64)" + | "expectCreate" + | "expectCreate2" + | "expectEmit()" + | "expectEmit(bool,bool,bool,bool)" + | "expectEmit(uint64)" + | "expectEmit(bool,bool,bool,bool,uint64)" + | "expectEmit(bool,bool,bool,bool,address)" + | "expectEmit(address)" + | "expectEmit(address,uint64)" + | "expectEmit(bool,bool,bool,bool,address,uint64)" + | "expectEmitAnonymous()" + | "expectEmitAnonymous(address)" + | "expectEmitAnonymous(bool,bool,bool,bool,bool,address)" + | "expectEmitAnonymous(bool,bool,bool,bool,bool)" + | "expectPartialRevert(bytes4)" + | "expectPartialRevert(bytes4,address)" + | "expectRevert(address,uint64)" + | "expectRevert(bytes4,address)" + | "expectRevert(bytes,uint64)" + | "expectRevert(uint64)" + | "expectRevert(bytes,address)" + | "expectRevert(bytes4,address,uint64)" + | "expectRevert(bytes4)" + | "expectRevert(bytes,address,uint64)" + | "expectRevert(address)" + | "expectRevert(bytes4,uint64)" + | "expectRevert(bytes)" + | "expectRevert()" + | "expectSafeMemory" + | "expectSafeMemoryCall" + | "fee" + | "ffi" + | "foundryVersionAtLeast" + | "foundryVersionCmp" + | "fsMetadata" + | "getArtifactPathByCode" + | "getArtifactPathByDeployedCode" + | "getBlobBaseFee" + | "getBlobhashes" + | "getBlockNumber" + | "getBlockTimestamp" + | "getBroadcast" + | "getBroadcasts(string,uint64)" + | "getBroadcasts(string,uint64,uint8)" + | "getChain(string)" + | "getChain(uint256)" + | "getCode" + | "getDeployedCode" + | "getDeployment(string,uint64)" + | "getDeployment(string)" + | "getDeployments" + | "getFoundryVersion" + | "getLabel" + | "getMappingKeyAndParentOf" + | "getMappingLength" + | "getMappingSlotAt" + | "getNonce(address)" + | "getNonce((address,uint256,uint256,uint256))" + | "getRecordedLogs" + | "getStateDiff" + | "getStateDiffJson" + | "getWallets" + | "indexOf" + | "interceptInitcode" + | "isContext" + | "isDir" + | "isFile" + | "isPersistent" + | "keyExists" + | "keyExistsJson" + | "keyExistsToml" + | "label" + | "lastCallGas" + | "load" + | "loadAllocs" + | "makePersistent(address[])" + | "makePersistent(address,address)" + | "makePersistent(address)" + | "makePersistent(address,address,address)" + | "mockCall(address,bytes4,bytes)" + | "mockCall(address,uint256,bytes,bytes)" + | "mockCall(address,bytes,bytes)" + | "mockCall(address,uint256,bytes4,bytes)" + | "mockCallRevert(address,bytes4,bytes)" + | "mockCallRevert(address,uint256,bytes4,bytes)" + | "mockCallRevert(address,uint256,bytes,bytes)" + | "mockCallRevert(address,bytes,bytes)" + | "mockCalls(address,uint256,bytes,bytes[])" + | "mockCalls(address,bytes,bytes[])" + | "mockFunction" + | "noAccessList" + | "parseAddress" + | "parseBool" + | "parseBytes" + | "parseBytes32" + | "parseInt" + | "parseJson(string)" + | "parseJson(string,string)" + | "parseJsonAddress" + | "parseJsonAddressArray" + | "parseJsonBool" + | "parseJsonBoolArray" + | "parseJsonBytes" + | "parseJsonBytes32" + | "parseJsonBytes32Array" + | "parseJsonBytesArray" + | "parseJsonInt" + | "parseJsonIntArray" + | "parseJsonKeys" + | "parseJsonString" + | "parseJsonStringArray" + | "parseJsonType(string,string)" + | "parseJsonType(string,string,string)" + | "parseJsonTypeArray" + | "parseJsonUint" + | "parseJsonUintArray" + | "parseToml(string,string)" + | "parseToml(string)" + | "parseTomlAddress" + | "parseTomlAddressArray" + | "parseTomlBool" + | "parseTomlBoolArray" + | "parseTomlBytes" + | "parseTomlBytes32" + | "parseTomlBytes32Array" + | "parseTomlBytesArray" + | "parseTomlInt" + | "parseTomlIntArray" + | "parseTomlKeys" + | "parseTomlString" + | "parseTomlStringArray" + | "parseTomlType(string,string)" + | "parseTomlType(string,string,string)" + | "parseTomlTypeArray" + | "parseTomlUint" + | "parseTomlUintArray" + | "parseUint" + | "pauseGasMetering" + | "pauseTracing" + | "prank(address,address)" + | "prank(address,address,bool)" + | "prank(address,bool)" + | "prank(address)" + | "prevrandao(bytes32)" + | "prevrandao(uint256)" + | "projectRoot" + | "prompt" + | "promptAddress" + | "promptSecret" + | "promptSecretUint" + | "promptUint" + | "publicKeyP256" + | "randomAddress" + | "randomBool" + | "randomBytes" + | "randomBytes4" + | "randomBytes8" + | "randomInt()" + | "randomInt(uint256)" + | "randomUint()" + | "randomUint(uint256)" + | "randomUint(uint256,uint256)" + | "readCallers" + | "readDir(string,uint64)" + | "readDir(string,uint64,bool)" + | "readDir(string)" + | "readFile" + | "readFileBinary" + | "readLine" + | "readLink" + | "record" + | "recordLogs" + | "rememberKey" + | "rememberKeys(string,string,uint32)" + | "rememberKeys(string,string,string,uint32)" + | "removeDir" + | "removeFile" + | "replace" + | "resetGasMetering" + | "resetNonce" + | "resumeGasMetering" + | "resumeTracing" + | "revertTo" + | "revertToAndDelete" + | "revertToState" + | "revertToStateAndDelete" + | "revokePersistent(address[])" + | "revokePersistent(address)" + | "roll" + | "rollFork(bytes32)" + | "rollFork(uint256,uint256)" + | "rollFork(uint256)" + | "rollFork(uint256,bytes32)" + | "rpc(string,string,string)" + | "rpc(string,string)" + | "rpcUrl" + | "rpcUrlStructs" + | "rpcUrls" + | "selectFork" + | "serializeAddress(string,string,address[])" + | "serializeAddress(string,string,address)" + | "serializeBool(string,string,bool[])" + | "serializeBool(string,string,bool)" + | "serializeBytes(string,string,bytes[])" + | "serializeBytes(string,string,bytes)" + | "serializeBytes32(string,string,bytes32[])" + | "serializeBytes32(string,string,bytes32)" + | "serializeInt(string,string,int256)" + | "serializeInt(string,string,int256[])" + | "serializeJson" + | "serializeJsonType(string,bytes)" + | "serializeJsonType(string,string,string,bytes)" + | "serializeString(string,string,string[])" + | "serializeString(string,string,string)" + | "serializeUint(string,string,uint256)" + | "serializeUint(string,string,uint256[])" + | "serializeUintToHex" + | "setArbitraryStorage(address,bool)" + | "setArbitraryStorage(address)" + | "setBlockhash" + | "setEnv" + | "setNonce" + | "setNonceUnsafe" + | "shuffle" + | "sign(bytes32)" + | "sign(address,bytes32)" + | "sign((address,uint256,uint256,uint256),bytes32)" + | "sign(uint256,bytes32)" + | "signAndAttachDelegation(address,uint256)" + | "signAndAttachDelegation(address,uint256,uint64)" + | "signCompact((address,uint256,uint256,uint256),bytes32)" + | "signCompact(address,bytes32)" + | "signCompact(bytes32)" + | "signCompact(uint256,bytes32)" + | "signDelegation(address,uint256)" + | "signDelegation(address,uint256,uint64)" + | "signP256" + | "skip(bool,string)" + | "skip(bool)" + | "sleep" + | "snapshot" + | "snapshotGasLastCall(string,string)" + | "snapshotGasLastCall(string)" + | "snapshotState" + | "snapshotValue(string,uint256)" + | "snapshotValue(string,string,uint256)" + | "sort" + | "split" + | "startBroadcast()" + | "startBroadcast(address)" + | "startBroadcast(uint256)" + | "startDebugTraceRecording" + | "startMappingRecording" + | "startPrank(address)" + | "startPrank(address,bool)" + | "startPrank(address,address)" + | "startPrank(address,address,bool)" + | "startSnapshotGas(string)" + | "startSnapshotGas(string,string)" + | "startStateDiffRecording" + | "stopAndReturnDebugTraceRecording" + | "stopAndReturnStateDiff" + | "stopBroadcast" + | "stopExpectSafeMemory" + | "stopMappingRecording" + | "stopPrank" + | "stopSnapshotGas(string,string)" + | "stopSnapshotGas(string)" + | "stopSnapshotGas()" + | "store" + | "toBase64(string)" + | "toBase64(bytes)" + | "toBase64URL(string)" + | "toBase64URL(bytes)" + | "toLowercase" + | "toString(address)" + | "toString(uint256)" + | "toString(bytes)" + | "toString(bool)" + | "toString(int256)" + | "toString(bytes32)" + | "toUppercase" + | "transact(uint256,bytes32)" + | "transact(bytes32)" + | "trim" + | "tryFfi" + | "txGasPrice" + | "unixTime" + | "warmSlot" + | "warp" + | "writeFile" + | "writeFileBinary" + | "writeJson(string,string,string)" + | "writeJson(string,string)" + | "writeLine" + | "writeToml(string,string,string)" + | "writeToml(string,string)" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "accessList", + values: [VmSafe.AccessListItemStruct[]] + ): string; + encodeFunctionData( + functionFragment: "accesses", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "activeFork", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "addr", values: [BigNumberish]): string; + encodeFunctionData( + functionFragment: "allowCheatcodes", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbs(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbs(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbs(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbs(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRel(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRel(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRel(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRel(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRelDecimal(int256,int256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes32[],bytes32[])", + values: [BytesLike[], BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(int256[],int256[],string)", + values: [BigNumberish[], BigNumberish[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(address,address,string)", + values: [AddressLike, AddressLike, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(address[],address[])", + values: [AddressLike[], AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(address[],address[],string)", + values: [AddressLike[], AddressLike[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bool,bool,string)", + values: [boolean, boolean, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(address,address)", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "assertEq(uint256[],uint256[],string)", + values: [BigNumberish[], BigNumberish[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bool[],bool[])", + values: [boolean[], boolean[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(int256[],int256[])", + values: [BigNumberish[], BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(int256,int256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes32,bytes32)", + values: [BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "assertEq(uint256,uint256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(uint256[],uint256[])", + values: [BigNumberish[], BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes,bytes)", + values: [BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "assertEq(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes32,bytes32,string)", + values: [BytesLike, BytesLike, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(string[],string[])", + values: [string[], string[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes32[],bytes32[],string)", + values: [BytesLike[], BytesLike[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes,bytes,string)", + values: [BytesLike, BytesLike, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bool[],bool[],string)", + values: [boolean[], boolean[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes[],bytes[])", + values: [BytesLike[], BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(string[],string[],string)", + values: [string[], string[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes[],bytes[],string)", + values: [BytesLike[], BytesLike[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bool,bool)", + values: [boolean, boolean] + ): string; + encodeFunctionData( + functionFragment: "assertEq(int256,int256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertEqDecimal(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertEqDecimal(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertEqDecimal(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertEqDecimal(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertFalse(bool,string)", + values: [boolean, string] + ): string; + encodeFunctionData( + functionFragment: "assertFalse(bool)", + values: [boolean] + ): string; + encodeFunctionData( + functionFragment: "assertGe(int256,int256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGe(int256,int256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGe(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGe(uint256,uint256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGeDecimal(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGeDecimal(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGeDecimal(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGeDecimal(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGt(int256,int256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGt(uint256,uint256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGt(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGt(int256,int256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGtDecimal(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGtDecimal(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGtDecimal(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGtDecimal(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLe(int256,int256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLe(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLe(int256,int256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLe(uint256,uint256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLeDecimal(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLeDecimal(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLeDecimal(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLeDecimal(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLt(int256,int256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLt(uint256,uint256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLt(int256,int256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLt(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLtDecimal(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLtDecimal(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLtDecimal(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLtDecimal(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes32[],bytes32[])", + values: [BytesLike[], BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(int256[],int256[])", + values: [BigNumberish[], BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bool,bool,string)", + values: [boolean, boolean, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes[],bytes[],string)", + values: [BytesLike[], BytesLike[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bool,bool)", + values: [boolean, boolean] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bool[],bool[])", + values: [boolean[], boolean[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes,bytes)", + values: [BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(address[],address[])", + values: [AddressLike[], AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(int256,int256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(uint256[],uint256[])", + values: [BigNumberish[], BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bool[],bool[],string)", + values: [boolean[], boolean[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(address[],address[],string)", + values: [AddressLike[], AddressLike[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(address,address,string)", + values: [AddressLike, AddressLike, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes32,bytes32)", + values: [BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes,bytes,string)", + values: [BytesLike, BytesLike, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(uint256,uint256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(uint256[],uint256[],string)", + values: [BigNumberish[], BigNumberish[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(address,address)", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes32,bytes32,string)", + values: [BytesLike, BytesLike, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(string[],string[],string)", + values: [string[], string[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes32[],bytes32[],string)", + values: [BytesLike[], BytesLike[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(string[],string[])", + values: [string[], string[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(int256[],int256[],string)", + values: [BigNumberish[], BigNumberish[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes[],bytes[])", + values: [BytesLike[], BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(int256,int256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertNotEqDecimal(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertNotEqDecimal(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEqDecimal(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertNotEqDecimal(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertTrue(bool)", + values: [boolean] + ): string; + encodeFunctionData( + functionFragment: "assertTrue(bool,string)", + values: [boolean, string] + ): string; + encodeFunctionData(functionFragment: "assume", values: [boolean]): string; + encodeFunctionData( + functionFragment: "assumeNoRevert()", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "assumeNoRevert((address,bool,bytes)[])", + values: [VmSafe.PotentialRevertStruct[]] + ): string; + encodeFunctionData( + functionFragment: "assumeNoRevert((address,bool,bytes))", + values: [VmSafe.PotentialRevertStruct] + ): string; + encodeFunctionData( + functionFragment: "attachBlob", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "attachDelegation", + values: [VmSafe.SignedDelegationStruct] + ): string; + encodeFunctionData( + functionFragment: "blobBaseFee", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "blobhashes", + values: [BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "breakpoint(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "breakpoint(string,bool)", + values: [string, boolean] + ): string; + encodeFunctionData( + functionFragment: "broadcast()", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "broadcast(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "broadcast(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "broadcastRawTransaction", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "chainId", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "clearMockedCalls", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "cloneAccount", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData(functionFragment: "closeFile", values: [string]): string; + encodeFunctionData( + functionFragment: "coinbase", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "computeCreate2Address(bytes32,bytes32)", + values: [BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "computeCreate2Address(bytes32,bytes32,address)", + values: [BytesLike, BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "computeCreateAddress", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "contains", + values: [string, string] + ): string; + encodeFunctionData(functionFragment: "cool", values: [AddressLike]): string; + encodeFunctionData( + functionFragment: "coolSlot", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "copyFile", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "copyStorage", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "createDir", + values: [string, boolean] + ): string; + encodeFunctionData( + functionFragment: "createFork(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "createFork(string,uint256)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "createFork(string,bytes32)", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "createSelectFork(string,uint256)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "createSelectFork(string,bytes32)", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "createSelectFork(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "createWallet(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "createWallet(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "createWallet(uint256,string)", + values: [BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "deal", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "deleteSnapshot", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "deleteSnapshots", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "deleteStateSnapshot", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "deleteStateSnapshots", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "deployCode(string,uint256,bytes32)", + values: [string, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "deployCode(string,bytes,bytes32)", + values: [string, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "deployCode(string,uint256)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "deployCode(string,bytes32)", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "deployCode(string,bytes)", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "deployCode(string,bytes,uint256,bytes32)", + values: [string, BytesLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "deployCode(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "deployCode(string,bytes,uint256)", + values: [string, BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "deriveKey(string,string,uint32,string)", + values: [string, string, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "deriveKey(string,uint32,string)", + values: [string, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "deriveKey(string,uint32)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "deriveKey(string,string,uint32)", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "difficulty", + values: [BigNumberish] + ): string; + encodeFunctionData(functionFragment: "dumpState", values: [string]): string; + encodeFunctionData(functionFragment: "ensNamehash", values: [string]): string; + encodeFunctionData( + functionFragment: "envAddress(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "envAddress(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envBool(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "envBool(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envBytes(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "envBytes(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envBytes32(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envBytes32(string)", + values: [string] + ): string; + encodeFunctionData(functionFragment: "envExists", values: [string]): string; + encodeFunctionData( + functionFragment: "envInt(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envInt(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,bytes32[])", + values: [string, string, BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,int256[])", + values: [string, string, BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,bool)", + values: [string, boolean] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,address)", + values: [string, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,uint256)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,bytes[])", + values: [string, string, BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,uint256[])", + values: [string, string, BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,string[])", + values: [string, string, string[]] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,bytes)", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,bytes32)", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,int256)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,address[])", + values: [string, string, AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,bool[])", + values: [string, string, boolean[]] + ): string; + encodeFunctionData( + functionFragment: "envString(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envString(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "envUint(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "envUint(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "etch", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "eth_getLogs", + values: [BigNumberish, BigNumberish, AddressLike, BytesLike[]] + ): string; + encodeFunctionData(functionFragment: "exists", values: [string]): string; + encodeFunctionData( + functionFragment: "expectCall(address,uint256,uint64,bytes)", + values: [AddressLike, BigNumberish, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "expectCall(address,uint256,uint64,bytes,uint64)", + values: [AddressLike, BigNumberish, BigNumberish, BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "expectCall(address,uint256,bytes,uint64)", + values: [AddressLike, BigNumberish, BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "expectCall(address,bytes)", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "expectCall(address,bytes,uint64)", + values: [AddressLike, BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "expectCall(address,uint256,bytes)", + values: [AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "expectCallMinGas(address,uint256,uint64,bytes)", + values: [AddressLike, BigNumberish, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "expectCallMinGas(address,uint256,uint64,bytes,uint64)", + values: [AddressLike, BigNumberish, BigNumberish, BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "expectCreate", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "expectCreate2", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "expectEmit()", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "expectEmit(bool,bool,bool,bool)", + values: [boolean, boolean, boolean, boolean] + ): string; + encodeFunctionData( + functionFragment: "expectEmit(uint64)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "expectEmit(bool,bool,bool,bool,uint64)", + values: [boolean, boolean, boolean, boolean, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "expectEmit(bool,bool,bool,bool,address)", + values: [boolean, boolean, boolean, boolean, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "expectEmit(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "expectEmit(address,uint64)", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "expectEmit(bool,bool,bool,bool,address,uint64)", + values: [boolean, boolean, boolean, boolean, AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "expectEmitAnonymous()", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "expectEmitAnonymous(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "expectEmitAnonymous(bool,bool,bool,bool,bool,address)", + values: [boolean, boolean, boolean, boolean, boolean, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "expectEmitAnonymous(bool,bool,bool,bool,bool)", + values: [boolean, boolean, boolean, boolean, boolean] + ): string; + encodeFunctionData( + functionFragment: "expectPartialRevert(bytes4)", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "expectPartialRevert(bytes4,address)", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "expectRevert(address,uint64)", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "expectRevert(bytes4,address)", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "expectRevert(bytes,uint64)", + values: [BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "expectRevert(uint64)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "expectRevert(bytes,address)", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "expectRevert(bytes4,address,uint64)", + values: [BytesLike, AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "expectRevert(bytes4)", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "expectRevert(bytes,address,uint64)", + values: [BytesLike, AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "expectRevert(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "expectRevert(bytes4,uint64)", + values: [BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "expectRevert(bytes)", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "expectRevert()", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "expectSafeMemory", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "expectSafeMemoryCall", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "fee", values: [BigNumberish]): string; + encodeFunctionData(functionFragment: "ffi", values: [string[]]): string; + encodeFunctionData( + functionFragment: "foundryVersionAtLeast", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "foundryVersionCmp", + values: [string] + ): string; + encodeFunctionData(functionFragment: "fsMetadata", values: [string]): string; + encodeFunctionData( + functionFragment: "getArtifactPathByCode", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "getArtifactPathByDeployedCode", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "getBlobBaseFee", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getBlobhashes", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getBlockNumber", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getBlockTimestamp", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getBroadcast", + values: [string, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getBroadcasts(string,uint64)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getBroadcasts(string,uint64,uint8)", + values: [string, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getChain(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "getChain(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData(functionFragment: "getCode", values: [string]): string; + encodeFunctionData( + functionFragment: "getDeployedCode", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "getDeployment(string,uint64)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getDeployment(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "getDeployments", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getFoundryVersion", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getLabel", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "getMappingKeyAndParentOf", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "getMappingLength", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "getMappingSlotAt", + values: [AddressLike, BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getNonce(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "getNonce((address,uint256,uint256,uint256))", + values: [VmSafe.WalletStruct] + ): string; + encodeFunctionData( + functionFragment: "getRecordedLogs", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getStateDiff", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getStateDiffJson", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getWallets", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "indexOf", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "interceptInitcode", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "isContext", + values: [BigNumberish] + ): string; + encodeFunctionData(functionFragment: "isDir", values: [string]): string; + encodeFunctionData(functionFragment: "isFile", values: [string]): string; + encodeFunctionData( + functionFragment: "isPersistent", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "keyExists", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "keyExistsJson", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "keyExistsToml", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "label", + values: [AddressLike, string] + ): string; + encodeFunctionData( + functionFragment: "lastCallGas", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "load", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData(functionFragment: "loadAllocs", values: [string]): string; + encodeFunctionData( + functionFragment: "makePersistent(address[])", + values: [AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "makePersistent(address,address)", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "makePersistent(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "makePersistent(address,address,address)", + values: [AddressLike, AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "mockCall(address,bytes4,bytes)", + values: [AddressLike, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "mockCall(address,uint256,bytes,bytes)", + values: [AddressLike, BigNumberish, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "mockCall(address,bytes,bytes)", + values: [AddressLike, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "mockCall(address,uint256,bytes4,bytes)", + values: [AddressLike, BigNumberish, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "mockCallRevert(address,bytes4,bytes)", + values: [AddressLike, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "mockCallRevert(address,uint256,bytes4,bytes)", + values: [AddressLike, BigNumberish, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "mockCallRevert(address,uint256,bytes,bytes)", + values: [AddressLike, BigNumberish, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "mockCallRevert(address,bytes,bytes)", + values: [AddressLike, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "mockCalls(address,uint256,bytes,bytes[])", + values: [AddressLike, BigNumberish, BytesLike, BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "mockCalls(address,bytes,bytes[])", + values: [AddressLike, BytesLike, BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "mockFunction", + values: [AddressLike, AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "noAccessList", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "parseAddress", + values: [string] + ): string; + encodeFunctionData(functionFragment: "parseBool", values: [string]): string; + encodeFunctionData(functionFragment: "parseBytes", values: [string]): string; + encodeFunctionData( + functionFragment: "parseBytes32", + values: [string] + ): string; + encodeFunctionData(functionFragment: "parseInt", values: [string]): string; + encodeFunctionData( + functionFragment: "parseJson(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "parseJson(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonAddress", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonAddressArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonBool", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonBoolArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonBytes", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonBytes32", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonBytes32Array", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonBytesArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonInt", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonIntArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonKeys", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonString", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonStringArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonType(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonType(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonTypeArray", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonUint", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonUintArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseToml(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseToml(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlAddress", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlAddressArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlBool", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlBoolArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlBytes", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlBytes32", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlBytes32Array", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlBytesArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlInt", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlIntArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlKeys", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlString", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlStringArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlType(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlType(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlTypeArray", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlUint", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlUintArray", + values: [string, string] + ): string; + encodeFunctionData(functionFragment: "parseUint", values: [string]): string; + encodeFunctionData( + functionFragment: "pauseGasMetering", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "pauseTracing", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "prank(address,address)", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "prank(address,address,bool)", + values: [AddressLike, AddressLike, boolean] + ): string; + encodeFunctionData( + functionFragment: "prank(address,bool)", + values: [AddressLike, boolean] + ): string; + encodeFunctionData( + functionFragment: "prank(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "prevrandao(bytes32)", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "prevrandao(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "projectRoot", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "prompt", values: [string]): string; + encodeFunctionData( + functionFragment: "promptAddress", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "promptSecret", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "promptSecretUint", + values: [string] + ): string; + encodeFunctionData(functionFragment: "promptUint", values: [string]): string; + encodeFunctionData( + functionFragment: "publicKeyP256", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "randomAddress", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "randomBool", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "randomBytes", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "randomBytes4", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "randomBytes8", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "randomInt()", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "randomInt(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "randomUint()", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "randomUint(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "randomUint(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "readCallers", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "readDir(string,uint64)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "readDir(string,uint64,bool)", + values: [string, BigNumberish, boolean] + ): string; + encodeFunctionData( + functionFragment: "readDir(string)", + values: [string] + ): string; + encodeFunctionData(functionFragment: "readFile", values: [string]): string; + encodeFunctionData( + functionFragment: "readFileBinary", + values: [string] + ): string; + encodeFunctionData(functionFragment: "readLine", values: [string]): string; + encodeFunctionData(functionFragment: "readLink", values: [string]): string; + encodeFunctionData(functionFragment: "record", values?: undefined): string; + encodeFunctionData( + functionFragment: "recordLogs", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "rememberKey", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "rememberKeys(string,string,uint32)", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "rememberKeys(string,string,string,uint32)", + values: [string, string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "removeDir", + values: [string, boolean] + ): string; + encodeFunctionData(functionFragment: "removeFile", values: [string]): string; + encodeFunctionData( + functionFragment: "replace", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "resetGasMetering", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "resetNonce", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "resumeGasMetering", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "resumeTracing", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "revertTo", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "revertToAndDelete", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "revertToState", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "revertToStateAndDelete", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "revokePersistent(address[])", + values: [AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "revokePersistent(address)", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "roll", values: [BigNumberish]): string; + encodeFunctionData( + functionFragment: "rollFork(bytes32)", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "rollFork(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "rollFork(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "rollFork(uint256,bytes32)", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "rpc(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "rpc(string,string)", + values: [string, string] + ): string; + encodeFunctionData(functionFragment: "rpcUrl", values: [string]): string; + encodeFunctionData( + functionFragment: "rpcUrlStructs", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "rpcUrls", values?: undefined): string; + encodeFunctionData( + functionFragment: "selectFork", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "serializeAddress(string,string,address[])", + values: [string, string, AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "serializeAddress(string,string,address)", + values: [string, string, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "serializeBool(string,string,bool[])", + values: [string, string, boolean[]] + ): string; + encodeFunctionData( + functionFragment: "serializeBool(string,string,bool)", + values: [string, string, boolean] + ): string; + encodeFunctionData( + functionFragment: "serializeBytes(string,string,bytes[])", + values: [string, string, BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "serializeBytes(string,string,bytes)", + values: [string, string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "serializeBytes32(string,string,bytes32[])", + values: [string, string, BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "serializeBytes32(string,string,bytes32)", + values: [string, string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "serializeInt(string,string,int256)", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "serializeInt(string,string,int256[])", + values: [string, string, BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "serializeJson", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "serializeJsonType(string,bytes)", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "serializeJsonType(string,string,string,bytes)", + values: [string, string, string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "serializeString(string,string,string[])", + values: [string, string, string[]] + ): string; + encodeFunctionData( + functionFragment: "serializeString(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "serializeUint(string,string,uint256)", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "serializeUint(string,string,uint256[])", + values: [string, string, BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "serializeUintToHex", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "setArbitraryStorage(address,bool)", + values: [AddressLike, boolean] + ): string; + encodeFunctionData( + functionFragment: "setArbitraryStorage(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setBlockhash", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "setEnv", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "setNonce", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "setNonceUnsafe", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "shuffle", + values: [BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "sign(bytes32)", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "sign(address,bytes32)", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "sign((address,uint256,uint256,uint256),bytes32)", + values: [VmSafe.WalletStruct, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "sign(uint256,bytes32)", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "signAndAttachDelegation(address,uint256)", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "signAndAttachDelegation(address,uint256,uint64)", + values: [AddressLike, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "signCompact((address,uint256,uint256,uint256),bytes32)", + values: [VmSafe.WalletStruct, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "signCompact(address,bytes32)", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "signCompact(bytes32)", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "signCompact(uint256,bytes32)", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "signDelegation(address,uint256)", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "signDelegation(address,uint256,uint64)", + values: [AddressLike, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "signP256", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "skip(bool,string)", + values: [boolean, string] + ): string; + encodeFunctionData(functionFragment: "skip(bool)", values: [boolean]): string; + encodeFunctionData(functionFragment: "sleep", values: [BigNumberish]): string; + encodeFunctionData(functionFragment: "snapshot", values?: undefined): string; + encodeFunctionData( + functionFragment: "snapshotGasLastCall(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "snapshotGasLastCall(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "snapshotState", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "snapshotValue(string,uint256)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "snapshotValue(string,string,uint256)", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "sort", + values: [BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "split", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "startBroadcast()", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "startBroadcast(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "startBroadcast(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "startDebugTraceRecording", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "startMappingRecording", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "startPrank(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "startPrank(address,bool)", + values: [AddressLike, boolean] + ): string; + encodeFunctionData( + functionFragment: "startPrank(address,address)", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "startPrank(address,address,bool)", + values: [AddressLike, AddressLike, boolean] + ): string; + encodeFunctionData( + functionFragment: "startSnapshotGas(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "startSnapshotGas(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "startStateDiffRecording", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "stopAndReturnDebugTraceRecording", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "stopAndReturnStateDiff", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "stopBroadcast", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "stopExpectSafeMemory", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "stopMappingRecording", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "stopPrank", values?: undefined): string; + encodeFunctionData( + functionFragment: "stopSnapshotGas(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "stopSnapshotGas(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "stopSnapshotGas()", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "store", + values: [AddressLike, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "toBase64(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "toBase64(bytes)", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "toBase64URL(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "toBase64URL(bytes)", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "toLowercase", values: [string]): string; + encodeFunctionData( + functionFragment: "toString(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "toString(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "toString(bytes)", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "toString(bool)", + values: [boolean] + ): string; + encodeFunctionData( + functionFragment: "toString(int256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "toString(bytes32)", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "toUppercase", values: [string]): string; + encodeFunctionData( + functionFragment: "transact(uint256,bytes32)", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "transact(bytes32)", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "trim", values: [string]): string; + encodeFunctionData(functionFragment: "tryFfi", values: [string[]]): string; + encodeFunctionData( + functionFragment: "txGasPrice", + values: [BigNumberish] + ): string; + encodeFunctionData(functionFragment: "unixTime", values?: undefined): string; + encodeFunctionData( + functionFragment: "warmSlot", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData(functionFragment: "warp", values: [BigNumberish]): string; + encodeFunctionData( + functionFragment: "writeFile", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "writeFileBinary", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "writeJson(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "writeJson(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "writeLine", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "writeToml(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "writeToml(string,string)", + values: [string, string] + ): string; + + decodeFunctionResult(functionFragment: "accessList", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "accesses", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "activeFork", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "addr", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "allowCheatcodes", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbs(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbs(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbs(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbs(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRel(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRel(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRel(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRel(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRelDecimal(int256,int256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes32[],bytes32[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(int256[],int256[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(address,address,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(address[],address[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(address[],address[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bool,bool,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(address,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(uint256[],uint256[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bool[],bool[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(int256[],int256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(int256,int256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes32,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(uint256[],uint256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes32,bytes32,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(string[],string[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes32[],bytes32[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes,bytes,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bool[],bool[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes[],bytes[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(string[],string[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes[],bytes[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bool,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(int256,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEqDecimal(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEqDecimal(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEqDecimal(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEqDecimal(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertFalse(bool,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertFalse(bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGe(int256,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGe(int256,int256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGe(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGe(uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGeDecimal(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGeDecimal(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGeDecimal(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGeDecimal(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGt(int256,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGt(uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGt(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGt(int256,int256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGtDecimal(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGtDecimal(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGtDecimal(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGtDecimal(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLe(int256,int256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLe(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLe(int256,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLe(uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLeDecimal(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLeDecimal(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLeDecimal(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLeDecimal(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLt(int256,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLt(uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLt(int256,int256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLt(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLtDecimal(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLtDecimal(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLtDecimal(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLtDecimal(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes32[],bytes32[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(int256[],int256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bool,bool,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes[],bytes[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bool,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bool[],bool[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(address[],address[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(int256,int256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(uint256[],uint256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bool[],bool[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(address[],address[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(address,address,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes32,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes,bytes,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(uint256[],uint256[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(address,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes32,bytes32,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(string[],string[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes32[],bytes32[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(string[],string[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(int256[],int256[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes[],bytes[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(int256,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEqDecimal(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEqDecimal(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEqDecimal(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEqDecimal(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertTrue(bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertTrue(bool,string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "assume", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "assumeNoRevert()", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assumeNoRevert((address,bool,bytes)[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assumeNoRevert((address,bool,bytes))", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "attachBlob", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "attachDelegation", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "blobBaseFee", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "blobhashes", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "breakpoint(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "breakpoint(string,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "broadcast()", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "broadcast(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "broadcast(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "broadcastRawTransaction", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "chainId", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "clearMockedCalls", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "cloneAccount", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "closeFile", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "coinbase", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "computeCreate2Address(bytes32,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "computeCreate2Address(bytes32,bytes32,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "computeCreateAddress", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "contains", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "cool", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "coolSlot", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "copyFile", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "copyStorage", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "createDir", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "createFork(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "createFork(string,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "createFork(string,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "createSelectFork(string,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "createSelectFork(string,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "createSelectFork(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "createWallet(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "createWallet(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "createWallet(uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "deal", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "deleteSnapshot", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deleteSnapshots", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deleteStateSnapshot", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deleteStateSnapshots", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deployCode(string,uint256,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deployCode(string,bytes,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deployCode(string,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deployCode(string,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deployCode(string,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deployCode(string,bytes,uint256,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deployCode(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deployCode(string,bytes,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deriveKey(string,string,uint32,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deriveKey(string,uint32,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deriveKey(string,uint32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deriveKey(string,string,uint32)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "difficulty", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "dumpState", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "ensNamehash", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envAddress(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envAddress(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envBool(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envBool(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envBytes(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envBytes(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envBytes32(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envBytes32(string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "envExists", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "envInt(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envInt(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,bytes32[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,int256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,bytes[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,uint256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,string[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,address[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,bool[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envString(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envString(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envUint(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envUint(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "etch", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "eth_getLogs", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "exists", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "expectCall(address,uint256,uint64,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectCall(address,uint256,uint64,bytes,uint64)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectCall(address,uint256,bytes,uint64)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectCall(address,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectCall(address,bytes,uint64)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectCall(address,uint256,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectCallMinGas(address,uint256,uint64,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectCallMinGas(address,uint256,uint64,bytes,uint64)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectCreate", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectCreate2", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectEmit()", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectEmit(bool,bool,bool,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectEmit(uint64)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectEmit(bool,bool,bool,bool,uint64)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectEmit(bool,bool,bool,bool,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectEmit(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectEmit(address,uint64)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectEmit(bool,bool,bool,bool,address,uint64)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectEmitAnonymous()", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectEmitAnonymous(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectEmitAnonymous(bool,bool,bool,bool,bool,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectEmitAnonymous(bool,bool,bool,bool,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectPartialRevert(bytes4)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectPartialRevert(bytes4,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectRevert(address,uint64)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectRevert(bytes4,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectRevert(bytes,uint64)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectRevert(uint64)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectRevert(bytes,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectRevert(bytes4,address,uint64)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectRevert(bytes4)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectRevert(bytes,address,uint64)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectRevert(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectRevert(bytes4,uint64)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectRevert(bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectRevert()", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectSafeMemory", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectSafeMemoryCall", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "fee", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "ffi", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "foundryVersionAtLeast", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "foundryVersionCmp", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "fsMetadata", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getArtifactPathByCode", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getArtifactPathByDeployedCode", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getBlobBaseFee", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getBlobhashes", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getBlockNumber", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getBlockTimestamp", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getBroadcast", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getBroadcasts(string,uint64)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getBroadcasts(string,uint64,uint8)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getChain(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getChain(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "getCode", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getDeployedCode", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getDeployment(string,uint64)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getDeployment(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getDeployments", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getFoundryVersion", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "getLabel", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getMappingKeyAndParentOf", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getMappingLength", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getMappingSlotAt", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getNonce(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getNonce((address,uint256,uint256,uint256))", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getRecordedLogs", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getStateDiff", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getStateDiffJson", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "getWallets", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "indexOf", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "interceptInitcode", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "isContext", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "isDir", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "isFile", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "isPersistent", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "keyExists", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "keyExistsJson", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "keyExistsToml", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "label", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "lastCallGas", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "load", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "loadAllocs", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "makePersistent(address[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "makePersistent(address,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "makePersistent(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "makePersistent(address,address,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "mockCall(address,bytes4,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "mockCall(address,uint256,bytes,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "mockCall(address,bytes,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "mockCall(address,uint256,bytes4,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "mockCallRevert(address,bytes4,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "mockCallRevert(address,uint256,bytes4,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "mockCallRevert(address,uint256,bytes,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "mockCallRevert(address,bytes,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "mockCalls(address,uint256,bytes,bytes[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "mockCalls(address,bytes,bytes[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "mockFunction", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "noAccessList", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseAddress", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "parseBool", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "parseBytes", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "parseBytes32", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "parseInt", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "parseJson(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJson(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonAddressArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonBool", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonBoolArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonBytes", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonBytes32", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonBytes32Array", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonBytesArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonInt", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonIntArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonKeys", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonString", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonStringArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonType(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonType(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonTypeArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonUint", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonUintArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseToml(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseToml(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlAddressArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlBool", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlBoolArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlBytes", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlBytes32", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlBytes32Array", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlBytesArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlInt", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlIntArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlKeys", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlString", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlStringArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlType(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlType(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlTypeArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlUint", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlUintArray", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "parseUint", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "pauseGasMetering", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "pauseTracing", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "prank(address,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "prank(address,address,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "prank(address,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "prank(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "prevrandao(bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "prevrandao(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "projectRoot", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "prompt", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "promptAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "promptSecret", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "promptSecretUint", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "promptUint", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "publicKeyP256", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "randomAddress", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "randomBool", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "randomBytes", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "randomBytes4", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "randomBytes8", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "randomInt()", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "randomInt(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "randomUint()", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "randomUint(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "randomUint(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "readCallers", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "readDir(string,uint64)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "readDir(string,uint64,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "readDir(string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "readFile", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "readFileBinary", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "readLine", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "readLink", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "record", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "recordLogs", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "rememberKey", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "rememberKeys(string,string,uint32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "rememberKeys(string,string,string,uint32)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "removeDir", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "removeFile", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "replace", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "resetGasMetering", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "resetNonce", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "resumeGasMetering", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "resumeTracing", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "revertTo", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "revertToAndDelete", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "revertToState", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "revertToStateAndDelete", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "revokePersistent(address[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "revokePersistent(address)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "roll", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "rollFork(bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "rollFork(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "rollFork(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "rollFork(uint256,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "rpc(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "rpc(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "rpcUrl", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "rpcUrlStructs", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "rpcUrls", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "selectFork", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "serializeAddress(string,string,address[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeAddress(string,string,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeBool(string,string,bool[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeBool(string,string,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeBytes(string,string,bytes[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeBytes(string,string,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeBytes32(string,string,bytes32[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeBytes32(string,string,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeInt(string,string,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeInt(string,string,int256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeJson", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeJsonType(string,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeJsonType(string,string,string,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeString(string,string,string[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeString(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeUint(string,string,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeUint(string,string,uint256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeUintToHex", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setArbitraryStorage(address,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setArbitraryStorage(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setBlockhash", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "setEnv", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "setNonce", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "setNonceUnsafe", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "shuffle", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "sign(bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "sign(address,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "sign((address,uint256,uint256,uint256),bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "sign(uint256,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "signAndAttachDelegation(address,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "signAndAttachDelegation(address,uint256,uint64)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "signCompact((address,uint256,uint256,uint256),bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "signCompact(address,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "signCompact(bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "signCompact(uint256,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "signDelegation(address,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "signDelegation(address,uint256,uint64)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "signP256", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "skip(bool,string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "skip(bool)", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "sleep", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "snapshot", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "snapshotGasLastCall(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "snapshotGasLastCall(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "snapshotState", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "snapshotValue(string,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "snapshotValue(string,string,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "sort", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "split", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "startBroadcast()", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "startBroadcast(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "startBroadcast(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "startDebugTraceRecording", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "startMappingRecording", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "startPrank(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "startPrank(address,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "startPrank(address,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "startPrank(address,address,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "startSnapshotGas(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "startSnapshotGas(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "startStateDiffRecording", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "stopAndReturnDebugTraceRecording", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "stopAndReturnStateDiff", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "stopBroadcast", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "stopExpectSafeMemory", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "stopMappingRecording", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "stopPrank", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "stopSnapshotGas(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "stopSnapshotGas(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "stopSnapshotGas()", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "store", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "toBase64(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toBase64(bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toBase64URL(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toBase64URL(bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toLowercase", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toString(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toString(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toString(bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toString(bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toString(int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toString(bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toUppercase", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transact(uint256,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transact(bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "trim", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "tryFfi", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "txGasPrice", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "unixTime", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "warmSlot", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "warp", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "writeFile", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "writeFileBinary", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "writeJson(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "writeJson(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "writeLine", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "writeToml(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "writeToml(string,string)", + data: BytesLike + ): Result; +} + +export interface Vm extends BaseContract { + connect(runner?: ContractRunner | null): Vm; + waitForDeployment(): Promise; + + interface: VmInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + accessList: TypedContractMethod< + [access: VmSafe.AccessListItemStruct[]], + [void], + "nonpayable" + >; + + accesses: TypedContractMethod< + [target: AddressLike], + [[string[], string[]] & { readSlots: string[]; writeSlots: string[] }], + "nonpayable" + >; + + activeFork: TypedContractMethod<[], [bigint], "view">; + + addr: TypedContractMethod<[privateKey: BigNumberish], [string], "view">; + + allowCheatcodes: TypedContractMethod< + [account: AddressLike], + [void], + "nonpayable" + >; + + "assertApproxEqAbs(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxDelta: BigNumberish], + [void], + "view" + >; + + "assertApproxEqAbs(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxDelta: BigNumberish], + [void], + "view" + >; + + "assertApproxEqAbs(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqAbs(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + + "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + + "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqRel(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqRel(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxPercentDelta: BigNumberish], + [void], + "view" + >; + + "assertApproxEqRel(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqRel(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxPercentDelta: BigNumberish], + [void], + "view" + >; + + "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + + "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqRelDecimal(int256,int256,uint256,uint256)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + + "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertEq(bytes32[],bytes32[])": TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + + "assertEq(int256[],int256[],string)": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + + "assertEq(address,address,string)": TypedContractMethod< + [left: AddressLike, right: AddressLike, error: string], + [void], + "view" + >; + + "assertEq(string,string,string)": TypedContractMethod< + [left: string, right: string, error: string], + [void], + "view" + >; + + "assertEq(address[],address[])": TypedContractMethod< + [left: AddressLike[], right: AddressLike[]], + [void], + "view" + >; + + "assertEq(address[],address[],string)": TypedContractMethod< + [left: AddressLike[], right: AddressLike[], error: string], + [void], + "view" + >; + + "assertEq(bool,bool,string)": TypedContractMethod< + [left: boolean, right: boolean, error: string], + [void], + "view" + >; + + "assertEq(address,address)": TypedContractMethod< + [left: AddressLike, right: AddressLike], + [void], + "view" + >; + + "assertEq(uint256[],uint256[],string)": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + + "assertEq(bool[],bool[])": TypedContractMethod< + [left: boolean[], right: boolean[]], + [void], + "view" + >; + + "assertEq(int256[],int256[])": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + + "assertEq(int256,int256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertEq(bytes32,bytes32)": TypedContractMethod< + [left: BytesLike, right: BytesLike], + [void], + "view" + >; + + "assertEq(uint256,uint256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertEq(uint256[],uint256[])": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + + "assertEq(bytes,bytes)": TypedContractMethod< + [left: BytesLike, right: BytesLike], + [void], + "view" + >; + + "assertEq(uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertEq(bytes32,bytes32,string)": TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + + "assertEq(string[],string[])": TypedContractMethod< + [left: string[], right: string[]], + [void], + "view" + >; + + "assertEq(bytes32[],bytes32[],string)": TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + + "assertEq(bytes,bytes,string)": TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + + "assertEq(bool[],bool[],string)": TypedContractMethod< + [left: boolean[], right: boolean[], error: string], + [void], + "view" + >; + + "assertEq(bytes[],bytes[])": TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + + "assertEq(string[],string[],string)": TypedContractMethod< + [left: string[], right: string[], error: string], + [void], + "view" + >; + + "assertEq(string,string)": TypedContractMethod< + [left: string, right: string], + [void], + "view" + >; + + "assertEq(bytes[],bytes[],string)": TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + + "assertEq(bool,bool)": TypedContractMethod< + [left: boolean, right: boolean], + [void], + "view" + >; + + "assertEq(int256,int256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertEqDecimal(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertEqDecimal(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertEqDecimal(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertEqDecimal(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertFalse(bool,string)": TypedContractMethod< + [condition: boolean, error: string], + [void], + "view" + >; + + "assertFalse(bool)": TypedContractMethod< + [condition: boolean], + [void], + "view" + >; + + "assertGe(int256,int256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertGe(int256,int256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertGe(uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertGe(uint256,uint256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertGeDecimal(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertGeDecimal(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertGeDecimal(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertGeDecimal(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertGt(int256,int256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertGt(uint256,uint256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertGt(uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertGt(int256,int256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertGtDecimal(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertGtDecimal(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertGtDecimal(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertGtDecimal(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertLe(int256,int256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertLe(uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertLe(int256,int256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertLe(uint256,uint256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertLeDecimal(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertLeDecimal(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertLeDecimal(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertLeDecimal(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertLt(int256,int256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertLt(uint256,uint256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertLt(int256,int256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertLt(uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertLtDecimal(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertLtDecimal(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertLtDecimal(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertLtDecimal(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertNotEq(bytes32[],bytes32[])": TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + + "assertNotEq(int256[],int256[])": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + + "assertNotEq(bool,bool,string)": TypedContractMethod< + [left: boolean, right: boolean, error: string], + [void], + "view" + >; + + "assertNotEq(bytes[],bytes[],string)": TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + + "assertNotEq(bool,bool)": TypedContractMethod< + [left: boolean, right: boolean], + [void], + "view" + >; + + "assertNotEq(bool[],bool[])": TypedContractMethod< + [left: boolean[], right: boolean[]], + [void], + "view" + >; + + "assertNotEq(bytes,bytes)": TypedContractMethod< + [left: BytesLike, right: BytesLike], + [void], + "view" + >; + + "assertNotEq(address[],address[])": TypedContractMethod< + [left: AddressLike[], right: AddressLike[]], + [void], + "view" + >; + + "assertNotEq(int256,int256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertNotEq(uint256[],uint256[])": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + + "assertNotEq(bool[],bool[],string)": TypedContractMethod< + [left: boolean[], right: boolean[], error: string], + [void], + "view" + >; + + "assertNotEq(string,string)": TypedContractMethod< + [left: string, right: string], + [void], + "view" + >; + + "assertNotEq(address[],address[],string)": TypedContractMethod< + [left: AddressLike[], right: AddressLike[], error: string], + [void], + "view" + >; + + "assertNotEq(string,string,string)": TypedContractMethod< + [left: string, right: string, error: string], + [void], + "view" + >; + + "assertNotEq(address,address,string)": TypedContractMethod< + [left: AddressLike, right: AddressLike, error: string], + [void], + "view" + >; + + "assertNotEq(bytes32,bytes32)": TypedContractMethod< + [left: BytesLike, right: BytesLike], + [void], + "view" + >; + + "assertNotEq(bytes,bytes,string)": TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + + "assertNotEq(uint256,uint256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertNotEq(uint256[],uint256[],string)": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + + "assertNotEq(address,address)": TypedContractMethod< + [left: AddressLike, right: AddressLike], + [void], + "view" + >; + + "assertNotEq(bytes32,bytes32,string)": TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + + "assertNotEq(string[],string[],string)": TypedContractMethod< + [left: string[], right: string[], error: string], + [void], + "view" + >; + + "assertNotEq(uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertNotEq(bytes32[],bytes32[],string)": TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + + "assertNotEq(string[],string[])": TypedContractMethod< + [left: string[], right: string[]], + [void], + "view" + >; + + "assertNotEq(int256[],int256[],string)": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + + "assertNotEq(bytes[],bytes[])": TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + + "assertNotEq(int256,int256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertNotEqDecimal(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertNotEqDecimal(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertNotEqDecimal(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertNotEqDecimal(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertTrue(bool)": TypedContractMethod<[condition: boolean], [void], "view">; + + "assertTrue(bool,string)": TypedContractMethod< + [condition: boolean, error: string], + [void], + "view" + >; + + assume: TypedContractMethod<[condition: boolean], [void], "view">; + + "assumeNoRevert()": TypedContractMethod<[], [void], "view">; + + "assumeNoRevert((address,bool,bytes)[])": TypedContractMethod< + [potentialReverts: VmSafe.PotentialRevertStruct[]], + [void], + "view" + >; + + "assumeNoRevert((address,bool,bytes))": TypedContractMethod< + [potentialRevert: VmSafe.PotentialRevertStruct], + [void], + "view" + >; + + attachBlob: TypedContractMethod<[blob: BytesLike], [void], "nonpayable">; + + attachDelegation: TypedContractMethod< + [signedDelegation: VmSafe.SignedDelegationStruct], + [void], + "nonpayable" + >; + + blobBaseFee: TypedContractMethod< + [newBlobBaseFee: BigNumberish], + [void], + "nonpayable" + >; + + blobhashes: TypedContractMethod<[hashes: BytesLike[]], [void], "nonpayable">; + + "breakpoint(string)": TypedContractMethod<[char: string], [void], "view">; + + "breakpoint(string,bool)": TypedContractMethod< + [char: string, value: boolean], + [void], + "view" + >; + + "broadcast()": TypedContractMethod<[], [void], "nonpayable">; + + "broadcast(address)": TypedContractMethod< + [signer: AddressLike], + [void], + "nonpayable" + >; + + "broadcast(uint256)": TypedContractMethod< + [privateKey: BigNumberish], + [void], + "nonpayable" + >; + + broadcastRawTransaction: TypedContractMethod< + [data: BytesLike], + [void], + "nonpayable" + >; + + chainId: TypedContractMethod< + [newChainId: BigNumberish], + [void], + "nonpayable" + >; + + clearMockedCalls: TypedContractMethod<[], [void], "nonpayable">; + + cloneAccount: TypedContractMethod< + [source: AddressLike, target: AddressLike], + [void], + "nonpayable" + >; + + closeFile: TypedContractMethod<[path: string], [void], "nonpayable">; + + coinbase: TypedContractMethod< + [newCoinbase: AddressLike], + [void], + "nonpayable" + >; + + "computeCreate2Address(bytes32,bytes32)": TypedContractMethod< + [salt: BytesLike, initCodeHash: BytesLike], + [string], + "view" + >; + + "computeCreate2Address(bytes32,bytes32,address)": TypedContractMethod< + [salt: BytesLike, initCodeHash: BytesLike, deployer: AddressLike], + [string], + "view" + >; + + computeCreateAddress: TypedContractMethod< + [deployer: AddressLike, nonce: BigNumberish], + [string], + "view" + >; + + contains: TypedContractMethod< + [subject: string, search: string], + [boolean], + "nonpayable" + >; + + cool: TypedContractMethod<[target: AddressLike], [void], "nonpayable">; + + coolSlot: TypedContractMethod< + [target: AddressLike, slot: BytesLike], + [void], + "nonpayable" + >; + + copyFile: TypedContractMethod< + [from: string, to: string], + [bigint], + "nonpayable" + >; + + copyStorage: TypedContractMethod< + [from: AddressLike, to: AddressLike], + [void], + "nonpayable" + >; + + createDir: TypedContractMethod< + [path: string, recursive: boolean], + [void], + "nonpayable" + >; + + "createFork(string)": TypedContractMethod< + [urlOrAlias: string], + [bigint], + "nonpayable" + >; + + "createFork(string,uint256)": TypedContractMethod< + [urlOrAlias: string, blockNumber: BigNumberish], + [bigint], + "nonpayable" + >; + + "createFork(string,bytes32)": TypedContractMethod< + [urlOrAlias: string, txHash: BytesLike], + [bigint], + "nonpayable" + >; + + "createSelectFork(string,uint256)": TypedContractMethod< + [urlOrAlias: string, blockNumber: BigNumberish], + [bigint], + "nonpayable" + >; + + "createSelectFork(string,bytes32)": TypedContractMethod< + [urlOrAlias: string, txHash: BytesLike], + [bigint], + "nonpayable" + >; + + "createSelectFork(string)": TypedContractMethod< + [urlOrAlias: string], + [bigint], + "nonpayable" + >; + + "createWallet(string)": TypedContractMethod< + [walletLabel: string], + [VmSafe.WalletStructOutput], + "nonpayable" + >; + + "createWallet(uint256)": TypedContractMethod< + [privateKey: BigNumberish], + [VmSafe.WalletStructOutput], + "nonpayable" + >; + + "createWallet(uint256,string)": TypedContractMethod< + [privateKey: BigNumberish, walletLabel: string], + [VmSafe.WalletStructOutput], + "nonpayable" + >; + + deal: TypedContractMethod< + [account: AddressLike, newBalance: BigNumberish], + [void], + "nonpayable" + >; + + deleteSnapshot: TypedContractMethod< + [snapshotId: BigNumberish], + [boolean], + "nonpayable" + >; + + deleteSnapshots: TypedContractMethod<[], [void], "nonpayable">; + + deleteStateSnapshot: TypedContractMethod< + [snapshotId: BigNumberish], + [boolean], + "nonpayable" + >; + + deleteStateSnapshots: TypedContractMethod<[], [void], "nonpayable">; + + "deployCode(string,uint256,bytes32)": TypedContractMethod< + [artifactPath: string, value: BigNumberish, salt: BytesLike], + [string], + "nonpayable" + >; + + "deployCode(string,bytes,bytes32)": TypedContractMethod< + [artifactPath: string, constructorArgs: BytesLike, salt: BytesLike], + [string], + "nonpayable" + >; + + "deployCode(string,uint256)": TypedContractMethod< + [artifactPath: string, value: BigNumberish], + [string], + "nonpayable" + >; + + "deployCode(string,bytes32)": TypedContractMethod< + [artifactPath: string, salt: BytesLike], + [string], + "nonpayable" + >; + + "deployCode(string,bytes)": TypedContractMethod< + [artifactPath: string, constructorArgs: BytesLike], + [string], + "nonpayable" + >; + + "deployCode(string,bytes,uint256,bytes32)": TypedContractMethod< + [ + artifactPath: string, + constructorArgs: BytesLike, + value: BigNumberish, + salt: BytesLike + ], + [string], + "nonpayable" + >; + + "deployCode(string)": TypedContractMethod< + [artifactPath: string], + [string], + "nonpayable" + >; + + "deployCode(string,bytes,uint256)": TypedContractMethod< + [artifactPath: string, constructorArgs: BytesLike, value: BigNumberish], + [string], + "nonpayable" + >; + + "deriveKey(string,string,uint32,string)": TypedContractMethod< + [ + mnemonic: string, + derivationPath: string, + index: BigNumberish, + language: string + ], + [bigint], + "view" + >; + + "deriveKey(string,uint32,string)": TypedContractMethod< + [mnemonic: string, index: BigNumberish, language: string], + [bigint], + "view" + >; + + "deriveKey(string,uint32)": TypedContractMethod< + [mnemonic: string, index: BigNumberish], + [bigint], + "view" + >; + + "deriveKey(string,string,uint32)": TypedContractMethod< + [mnemonic: string, derivationPath: string, index: BigNumberish], + [bigint], + "view" + >; + + difficulty: TypedContractMethod< + [newDifficulty: BigNumberish], + [void], + "nonpayable" + >; + + dumpState: TypedContractMethod< + [pathToStateJson: string], + [void], + "nonpayable" + >; + + ensNamehash: TypedContractMethod<[name: string], [string], "view">; + + "envAddress(string)": TypedContractMethod<[name: string], [string], "view">; + + "envAddress(string,string)": TypedContractMethod< + [name: string, delim: string], + [string[]], + "view" + >; + + "envBool(string)": TypedContractMethod<[name: string], [boolean], "view">; + + "envBool(string,string)": TypedContractMethod< + [name: string, delim: string], + [boolean[]], + "view" + >; + + "envBytes(string)": TypedContractMethod<[name: string], [string], "view">; + + "envBytes(string,string)": TypedContractMethod< + [name: string, delim: string], + [string[]], + "view" + >; + + "envBytes32(string,string)": TypedContractMethod< + [name: string, delim: string], + [string[]], + "view" + >; + + "envBytes32(string)": TypedContractMethod<[name: string], [string], "view">; + + envExists: TypedContractMethod<[name: string], [boolean], "view">; + + "envInt(string,string)": TypedContractMethod< + [name: string, delim: string], + [bigint[]], + "view" + >; + + "envInt(string)": TypedContractMethod<[name: string], [bigint], "view">; + + "envOr(string,string,bytes32[])": TypedContractMethod< + [name: string, delim: string, defaultValue: BytesLike[]], + [string[]], + "view" + >; + + "envOr(string,string,int256[])": TypedContractMethod< + [name: string, delim: string, defaultValue: BigNumberish[]], + [bigint[]], + "view" + >; + + "envOr(string,bool)": TypedContractMethod< + [name: string, defaultValue: boolean], + [boolean], + "view" + >; + + "envOr(string,address)": TypedContractMethod< + [name: string, defaultValue: AddressLike], + [string], + "view" + >; + + "envOr(string,uint256)": TypedContractMethod< + [name: string, defaultValue: BigNumberish], + [bigint], + "view" + >; + + "envOr(string,string,bytes[])": TypedContractMethod< + [name: string, delim: string, defaultValue: BytesLike[]], + [string[]], + "view" + >; + + "envOr(string,string,uint256[])": TypedContractMethod< + [name: string, delim: string, defaultValue: BigNumberish[]], + [bigint[]], + "view" + >; + + "envOr(string,string,string[])": TypedContractMethod< + [name: string, delim: string, defaultValue: string[]], + [string[]], + "view" + >; + + "envOr(string,bytes)": TypedContractMethod< + [name: string, defaultValue: BytesLike], + [string], + "view" + >; + + "envOr(string,bytes32)": TypedContractMethod< + [name: string, defaultValue: BytesLike], + [string], + "view" + >; + + "envOr(string,int256)": TypedContractMethod< + [name: string, defaultValue: BigNumberish], + [bigint], + "view" + >; + + "envOr(string,string,address[])": TypedContractMethod< + [name: string, delim: string, defaultValue: AddressLike[]], + [string[]], + "view" + >; + + "envOr(string,string)": TypedContractMethod< + [name: string, defaultValue: string], + [string], + "view" + >; + + "envOr(string,string,bool[])": TypedContractMethod< + [name: string, delim: string, defaultValue: boolean[]], + [boolean[]], + "view" + >; + + "envString(string,string)": TypedContractMethod< + [name: string, delim: string], + [string[]], + "view" + >; + + "envString(string)": TypedContractMethod<[name: string], [string], "view">; + + "envUint(string)": TypedContractMethod<[name: string], [bigint], "view">; + + "envUint(string,string)": TypedContractMethod< + [name: string, delim: string], + [bigint[]], + "view" + >; + + etch: TypedContractMethod< + [target: AddressLike, newRuntimeBytecode: BytesLike], + [void], + "nonpayable" + >; + + eth_getLogs: TypedContractMethod< + [ + fromBlock: BigNumberish, + toBlock: BigNumberish, + target: AddressLike, + topics: BytesLike[] + ], + [VmSafe.EthGetLogsStructOutput[]], + "nonpayable" + >; + + exists: TypedContractMethod<[path: string], [boolean], "view">; + + "expectCall(address,uint256,uint64,bytes)": TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + gas: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + + "expectCall(address,uint256,uint64,bytes,uint64)": TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + gas: BigNumberish, + data: BytesLike, + count: BigNumberish + ], + [void], + "nonpayable" + >; + + "expectCall(address,uint256,bytes,uint64)": TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + data: BytesLike, + count: BigNumberish + ], + [void], + "nonpayable" + >; + + "expectCall(address,bytes)": TypedContractMethod< + [callee: AddressLike, data: BytesLike], + [void], + "nonpayable" + >; + + "expectCall(address,bytes,uint64)": TypedContractMethod< + [callee: AddressLike, data: BytesLike, count: BigNumberish], + [void], + "nonpayable" + >; + + "expectCall(address,uint256,bytes)": TypedContractMethod< + [callee: AddressLike, msgValue: BigNumberish, data: BytesLike], + [void], + "nonpayable" + >; + + "expectCallMinGas(address,uint256,uint64,bytes)": TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + minGas: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + + "expectCallMinGas(address,uint256,uint64,bytes,uint64)": TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + minGas: BigNumberish, + data: BytesLike, + count: BigNumberish + ], + [void], + "nonpayable" + >; + + expectCreate: TypedContractMethod< + [bytecode: BytesLike, deployer: AddressLike], + [void], + "nonpayable" + >; + + expectCreate2: TypedContractMethod< + [bytecode: BytesLike, deployer: AddressLike], + [void], + "nonpayable" + >; + + "expectEmit()": TypedContractMethod<[], [void], "nonpayable">; + + "expectEmit(bool,bool,bool,bool)": TypedContractMethod< + [ + checkTopic1: boolean, + checkTopic2: boolean, + checkTopic3: boolean, + checkData: boolean + ], + [void], + "nonpayable" + >; + + "expectEmit(uint64)": TypedContractMethod< + [count: BigNumberish], + [void], + "nonpayable" + >; + + "expectEmit(bool,bool,bool,bool,uint64)": TypedContractMethod< + [ + checkTopic1: boolean, + checkTopic2: boolean, + checkTopic3: boolean, + checkData: boolean, + count: BigNumberish + ], + [void], + "nonpayable" + >; + + "expectEmit(bool,bool,bool,bool,address)": TypedContractMethod< + [ + checkTopic1: boolean, + checkTopic2: boolean, + checkTopic3: boolean, + checkData: boolean, + emitter: AddressLike + ], + [void], + "nonpayable" + >; + + "expectEmit(address)": TypedContractMethod< + [emitter: AddressLike], + [void], + "nonpayable" + >; + + "expectEmit(address,uint64)": TypedContractMethod< + [emitter: AddressLike, count: BigNumberish], + [void], + "nonpayable" + >; + + "expectEmit(bool,bool,bool,bool,address,uint64)": TypedContractMethod< + [ + checkTopic1: boolean, + checkTopic2: boolean, + checkTopic3: boolean, + checkData: boolean, + emitter: AddressLike, + count: BigNumberish + ], + [void], + "nonpayable" + >; + + "expectEmitAnonymous()": TypedContractMethod<[], [void], "nonpayable">; + + "expectEmitAnonymous(address)": TypedContractMethod< + [emitter: AddressLike], + [void], + "nonpayable" + >; + + "expectEmitAnonymous(bool,bool,bool,bool,bool,address)": TypedContractMethod< + [ + checkTopic0: boolean, + checkTopic1: boolean, + checkTopic2: boolean, + checkTopic3: boolean, + checkData: boolean, + emitter: AddressLike + ], + [void], + "nonpayable" + >; + + "expectEmitAnonymous(bool,bool,bool,bool,bool)": TypedContractMethod< + [ + checkTopic0: boolean, + checkTopic1: boolean, + checkTopic2: boolean, + checkTopic3: boolean, + checkData: boolean + ], + [void], + "nonpayable" + >; + + "expectPartialRevert(bytes4)": TypedContractMethod< + [revertData: BytesLike], + [void], + "nonpayable" + >; + + "expectPartialRevert(bytes4,address)": TypedContractMethod< + [revertData: BytesLike, reverter: AddressLike], + [void], + "nonpayable" + >; + + "expectRevert(address,uint64)": TypedContractMethod< + [reverter: AddressLike, count: BigNumberish], + [void], + "nonpayable" + >; + + "expectRevert(bytes4,address)": TypedContractMethod< + [revertData: BytesLike, reverter: AddressLike], + [void], + "nonpayable" + >; + + "expectRevert(bytes,uint64)": TypedContractMethod< + [revertData: BytesLike, count: BigNumberish], + [void], + "nonpayable" + >; + + "expectRevert(uint64)": TypedContractMethod< + [count: BigNumberish], + [void], + "nonpayable" + >; + + "expectRevert(bytes,address)": TypedContractMethod< + [revertData: BytesLike, reverter: AddressLike], + [void], + "nonpayable" + >; + + "expectRevert(bytes4,address,uint64)": TypedContractMethod< + [revertData: BytesLike, reverter: AddressLike, count: BigNumberish], + [void], + "nonpayable" + >; + + "expectRevert(bytes4)": TypedContractMethod< + [revertData: BytesLike], + [void], + "nonpayable" + >; + + "expectRevert(bytes,address,uint64)": TypedContractMethod< + [revertData: BytesLike, reverter: AddressLike, count: BigNumberish], + [void], + "nonpayable" + >; + + "expectRevert(address)": TypedContractMethod< + [reverter: AddressLike], + [void], + "nonpayable" + >; + + "expectRevert(bytes4,uint64)": TypedContractMethod< + [revertData: BytesLike, count: BigNumberish], + [void], + "nonpayable" + >; + + "expectRevert(bytes)": TypedContractMethod< + [revertData: BytesLike], + [void], + "nonpayable" + >; + + "expectRevert()": TypedContractMethod<[], [void], "nonpayable">; + + expectSafeMemory: TypedContractMethod< + [min: BigNumberish, max: BigNumberish], + [void], + "nonpayable" + >; + + expectSafeMemoryCall: TypedContractMethod< + [min: BigNumberish, max: BigNumberish], + [void], + "nonpayable" + >; + + fee: TypedContractMethod<[newBasefee: BigNumberish], [void], "nonpayable">; + + ffi: TypedContractMethod<[commandInput: string[]], [string], "nonpayable">; + + foundryVersionAtLeast: TypedContractMethod< + [version: string], + [boolean], + "view" + >; + + foundryVersionCmp: TypedContractMethod<[version: string], [bigint], "view">; + + fsMetadata: TypedContractMethod< + [path: string], + [VmSafe.FsMetadataStructOutput], + "view" + >; + + getArtifactPathByCode: TypedContractMethod< + [code: BytesLike], + [string], + "view" + >; + + getArtifactPathByDeployedCode: TypedContractMethod< + [deployedCode: BytesLike], + [string], + "view" + >; + + getBlobBaseFee: TypedContractMethod<[], [bigint], "view">; + + getBlobhashes: TypedContractMethod<[], [string[]], "view">; + + getBlockNumber: TypedContractMethod<[], [bigint], "view">; + + getBlockTimestamp: TypedContractMethod<[], [bigint], "view">; + + getBroadcast: TypedContractMethod< + [contractName: string, chainId: BigNumberish, txType: BigNumberish], + [VmSafe.BroadcastTxSummaryStructOutput], + "view" + >; + + "getBroadcasts(string,uint64)": TypedContractMethod< + [contractName: string, chainId: BigNumberish], + [VmSafe.BroadcastTxSummaryStructOutput[]], + "view" + >; + + "getBroadcasts(string,uint64,uint8)": TypedContractMethod< + [contractName: string, chainId: BigNumberish, txType: BigNumberish], + [VmSafe.BroadcastTxSummaryStructOutput[]], + "view" + >; + + "getChain(string)": TypedContractMethod< + [chainAlias: string], + [VmSafe.ChainStructOutput], + "view" + >; + + "getChain(uint256)": TypedContractMethod< + [chainId: BigNumberish], + [VmSafe.ChainStructOutput], + "view" + >; + + getCode: TypedContractMethod<[artifactPath: string], [string], "view">; + + getDeployedCode: TypedContractMethod< + [artifactPath: string], + [string], + "view" + >; + + "getDeployment(string,uint64)": TypedContractMethod< + [contractName: string, chainId: BigNumberish], + [string], + "view" + >; + + "getDeployment(string)": TypedContractMethod< + [contractName: string], + [string], + "view" + >; + + getDeployments: TypedContractMethod< + [contractName: string, chainId: BigNumberish], + [string[]], + "view" + >; + + getFoundryVersion: TypedContractMethod<[], [string], "view">; + + getLabel: TypedContractMethod<[account: AddressLike], [string], "view">; + + getMappingKeyAndParentOf: TypedContractMethod< + [target: AddressLike, elementSlot: BytesLike], + [ + [boolean, string, string] & { + found: boolean; + key: string; + parent: string; + } + ], + "nonpayable" + >; + + getMappingLength: TypedContractMethod< + [target: AddressLike, mappingSlot: BytesLike], + [bigint], + "nonpayable" + >; + + getMappingSlotAt: TypedContractMethod< + [target: AddressLike, mappingSlot: BytesLike, idx: BigNumberish], + [string], + "nonpayable" + >; + + "getNonce(address)": TypedContractMethod< + [account: AddressLike], + [bigint], + "view" + >; + + "getNonce((address,uint256,uint256,uint256))": TypedContractMethod< + [wallet: VmSafe.WalletStruct], + [bigint], + "nonpayable" + >; + + getRecordedLogs: TypedContractMethod< + [], + [VmSafe.LogStructOutput[]], + "nonpayable" + >; + + getStateDiff: TypedContractMethod<[], [string], "view">; + + getStateDiffJson: TypedContractMethod<[], [string], "view">; + + getWallets: TypedContractMethod<[], [string[]], "nonpayable">; + + indexOf: TypedContractMethod<[input: string, key: string], [bigint], "view">; + + interceptInitcode: TypedContractMethod<[], [void], "nonpayable">; + + isContext: TypedContractMethod<[context: BigNumberish], [boolean], "view">; + + isDir: TypedContractMethod<[path: string], [boolean], "view">; + + isFile: TypedContractMethod<[path: string], [boolean], "view">; + + isPersistent: TypedContractMethod<[account: AddressLike], [boolean], "view">; + + keyExists: TypedContractMethod< + [json: string, key: string], + [boolean], + "view" + >; + + keyExistsJson: TypedContractMethod< + [json: string, key: string], + [boolean], + "view" + >; + + keyExistsToml: TypedContractMethod< + [toml: string, key: string], + [boolean], + "view" + >; + + label: TypedContractMethod< + [account: AddressLike, newLabel: string], + [void], + "nonpayable" + >; + + lastCallGas: TypedContractMethod<[], [VmSafe.GasStructOutput], "view">; + + load: TypedContractMethod< + [target: AddressLike, slot: BytesLike], + [string], + "view" + >; + + loadAllocs: TypedContractMethod< + [pathToAllocsJson: string], + [void], + "nonpayable" + >; + + "makePersistent(address[])": TypedContractMethod< + [accounts: AddressLike[]], + [void], + "nonpayable" + >; + + "makePersistent(address,address)": TypedContractMethod< + [account0: AddressLike, account1: AddressLike], + [void], + "nonpayable" + >; + + "makePersistent(address)": TypedContractMethod< + [account: AddressLike], + [void], + "nonpayable" + >; + + "makePersistent(address,address,address)": TypedContractMethod< + [account0: AddressLike, account1: AddressLike, account2: AddressLike], + [void], + "nonpayable" + >; + + "mockCall(address,bytes4,bytes)": TypedContractMethod< + [callee: AddressLike, data: BytesLike, returnData: BytesLike], + [void], + "nonpayable" + >; + + "mockCall(address,uint256,bytes,bytes)": TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + data: BytesLike, + returnData: BytesLike + ], + [void], + "nonpayable" + >; + + "mockCall(address,bytes,bytes)": TypedContractMethod< + [callee: AddressLike, data: BytesLike, returnData: BytesLike], + [void], + "nonpayable" + >; + + "mockCall(address,uint256,bytes4,bytes)": TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + data: BytesLike, + returnData: BytesLike + ], + [void], + "nonpayable" + >; + + "mockCallRevert(address,bytes4,bytes)": TypedContractMethod< + [callee: AddressLike, data: BytesLike, revertData: BytesLike], + [void], + "nonpayable" + >; + + "mockCallRevert(address,uint256,bytes4,bytes)": TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + data: BytesLike, + revertData: BytesLike + ], + [void], + "nonpayable" + >; + + "mockCallRevert(address,uint256,bytes,bytes)": TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + data: BytesLike, + revertData: BytesLike + ], + [void], + "nonpayable" + >; + + "mockCallRevert(address,bytes,bytes)": TypedContractMethod< + [callee: AddressLike, data: BytesLike, revertData: BytesLike], + [void], + "nonpayable" + >; + + "mockCalls(address,uint256,bytes,bytes[])": TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + data: BytesLike, + returnData: BytesLike[] + ], + [void], + "nonpayable" + >; + + "mockCalls(address,bytes,bytes[])": TypedContractMethod< + [callee: AddressLike, data: BytesLike, returnData: BytesLike[]], + [void], + "nonpayable" + >; + + mockFunction: TypedContractMethod< + [callee: AddressLike, target: AddressLike, data: BytesLike], + [void], + "nonpayable" + >; + + noAccessList: TypedContractMethod<[], [void], "nonpayable">; + + parseAddress: TypedContractMethod< + [stringifiedValue: string], + [string], + "view" + >; + + parseBool: TypedContractMethod<[stringifiedValue: string], [boolean], "view">; + + parseBytes: TypedContractMethod<[stringifiedValue: string], [string], "view">; + + parseBytes32: TypedContractMethod< + [stringifiedValue: string], + [string], + "view" + >; + + parseInt: TypedContractMethod<[stringifiedValue: string], [bigint], "view">; + + "parseJson(string)": TypedContractMethod<[json: string], [string], "view">; + + "parseJson(string,string)": TypedContractMethod< + [json: string, key: string], + [string], + "view" + >; + + parseJsonAddress: TypedContractMethod< + [json: string, key: string], + [string], + "view" + >; + + parseJsonAddressArray: TypedContractMethod< + [json: string, key: string], + [string[]], + "view" + >; + + parseJsonBool: TypedContractMethod< + [json: string, key: string], + [boolean], + "view" + >; + + parseJsonBoolArray: TypedContractMethod< + [json: string, key: string], + [boolean[]], + "view" + >; + + parseJsonBytes: TypedContractMethod< + [json: string, key: string], + [string], + "view" + >; + + parseJsonBytes32: TypedContractMethod< + [json: string, key: string], + [string], + "view" + >; + + parseJsonBytes32Array: TypedContractMethod< + [json: string, key: string], + [string[]], + "view" + >; + + parseJsonBytesArray: TypedContractMethod< + [json: string, key: string], + [string[]], + "view" + >; + + parseJsonInt: TypedContractMethod< + [json: string, key: string], + [bigint], + "view" + >; + + parseJsonIntArray: TypedContractMethod< + [json: string, key: string], + [bigint[]], + "view" + >; + + parseJsonKeys: TypedContractMethod< + [json: string, key: string], + [string[]], + "view" + >; + + parseJsonString: TypedContractMethod< + [json: string, key: string], + [string], + "view" + >; + + parseJsonStringArray: TypedContractMethod< + [json: string, key: string], + [string[]], + "view" + >; + + "parseJsonType(string,string)": TypedContractMethod< + [json: string, typeDescription: string], + [string], + "view" + >; + + "parseJsonType(string,string,string)": TypedContractMethod< + [json: string, key: string, typeDescription: string], + [string], + "view" + >; + + parseJsonTypeArray: TypedContractMethod< + [json: string, key: string, typeDescription: string], + [string], + "view" + >; + + parseJsonUint: TypedContractMethod< + [json: string, key: string], + [bigint], + "view" + >; + + parseJsonUintArray: TypedContractMethod< + [json: string, key: string], + [bigint[]], + "view" + >; + + "parseToml(string,string)": TypedContractMethod< + [toml: string, key: string], + [string], + "view" + >; + + "parseToml(string)": TypedContractMethod<[toml: string], [string], "view">; + + parseTomlAddress: TypedContractMethod< + [toml: string, key: string], + [string], + "view" + >; + + parseTomlAddressArray: TypedContractMethod< + [toml: string, key: string], + [string[]], + "view" + >; + + parseTomlBool: TypedContractMethod< + [toml: string, key: string], + [boolean], + "view" + >; + + parseTomlBoolArray: TypedContractMethod< + [toml: string, key: string], + [boolean[]], + "view" + >; + + parseTomlBytes: TypedContractMethod< + [toml: string, key: string], + [string], + "view" + >; + + parseTomlBytes32: TypedContractMethod< + [toml: string, key: string], + [string], + "view" + >; + + parseTomlBytes32Array: TypedContractMethod< + [toml: string, key: string], + [string[]], + "view" + >; + + parseTomlBytesArray: TypedContractMethod< + [toml: string, key: string], + [string[]], + "view" + >; + + parseTomlInt: TypedContractMethod< + [toml: string, key: string], + [bigint], + "view" + >; + + parseTomlIntArray: TypedContractMethod< + [toml: string, key: string], + [bigint[]], + "view" + >; + + parseTomlKeys: TypedContractMethod< + [toml: string, key: string], + [string[]], + "view" + >; + + parseTomlString: TypedContractMethod< + [toml: string, key: string], + [string], + "view" + >; + + parseTomlStringArray: TypedContractMethod< + [toml: string, key: string], + [string[]], + "view" + >; + + "parseTomlType(string,string)": TypedContractMethod< + [toml: string, typeDescription: string], + [string], + "view" + >; + + "parseTomlType(string,string,string)": TypedContractMethod< + [toml: string, key: string, typeDescription: string], + [string], + "view" + >; + + parseTomlTypeArray: TypedContractMethod< + [toml: string, key: string, typeDescription: string], + [string], + "view" + >; + + parseTomlUint: TypedContractMethod< + [toml: string, key: string], + [bigint], + "view" + >; + + parseTomlUintArray: TypedContractMethod< + [toml: string, key: string], + [bigint[]], + "view" + >; + + parseUint: TypedContractMethod<[stringifiedValue: string], [bigint], "view">; + + pauseGasMetering: TypedContractMethod<[], [void], "nonpayable">; + + pauseTracing: TypedContractMethod<[], [void], "view">; + + "prank(address,address)": TypedContractMethod< + [msgSender: AddressLike, txOrigin: AddressLike], + [void], + "nonpayable" + >; + + "prank(address,address,bool)": TypedContractMethod< + [msgSender: AddressLike, txOrigin: AddressLike, delegateCall: boolean], + [void], + "nonpayable" + >; + + "prank(address,bool)": TypedContractMethod< + [msgSender: AddressLike, delegateCall: boolean], + [void], + "nonpayable" + >; + + "prank(address)": TypedContractMethod< + [msgSender: AddressLike], + [void], + "nonpayable" + >; + + "prevrandao(bytes32)": TypedContractMethod< + [newPrevrandao: BytesLike], + [void], + "nonpayable" + >; + + "prevrandao(uint256)": TypedContractMethod< + [newPrevrandao: BigNumberish], + [void], + "nonpayable" + >; + + projectRoot: TypedContractMethod<[], [string], "view">; + + prompt: TypedContractMethod<[promptText: string], [string], "nonpayable">; + + promptAddress: TypedContractMethod< + [promptText: string], + [string], + "nonpayable" + >; + + promptSecret: TypedContractMethod< + [promptText: string], + [string], + "nonpayable" + >; + + promptSecretUint: TypedContractMethod< + [promptText: string], + [bigint], + "nonpayable" + >; + + promptUint: TypedContractMethod<[promptText: string], [bigint], "nonpayable">; + + publicKeyP256: TypedContractMethod< + [privateKey: BigNumberish], + [[bigint, bigint] & { publicKeyX: bigint; publicKeyY: bigint }], + "view" + >; + + randomAddress: TypedContractMethod<[], [string], "nonpayable">; + + randomBool: TypedContractMethod<[], [boolean], "view">; + + randomBytes: TypedContractMethod<[len: BigNumberish], [string], "view">; + + randomBytes4: TypedContractMethod<[], [string], "view">; + + randomBytes8: TypedContractMethod<[], [string], "view">; + + "randomInt()": TypedContractMethod<[], [bigint], "view">; + + "randomInt(uint256)": TypedContractMethod< + [bits: BigNumberish], + [bigint], + "view" + >; + + "randomUint()": TypedContractMethod<[], [bigint], "nonpayable">; + + "randomUint(uint256)": TypedContractMethod< + [bits: BigNumberish], + [bigint], + "view" + >; + + "randomUint(uint256,uint256)": TypedContractMethod< + [min: BigNumberish, max: BigNumberish], + [bigint], + "nonpayable" + >; + + readCallers: TypedContractMethod< + [], + [ + [bigint, string, string] & { + callerMode: bigint; + msgSender: string; + txOrigin: string; + } + ], + "nonpayable" + >; + + "readDir(string,uint64)": TypedContractMethod< + [path: string, maxDepth: BigNumberish], + [VmSafe.DirEntryStructOutput[]], + "view" + >; + + "readDir(string,uint64,bool)": TypedContractMethod< + [path: string, maxDepth: BigNumberish, followLinks: boolean], + [VmSafe.DirEntryStructOutput[]], + "view" + >; + + "readDir(string)": TypedContractMethod< + [path: string], + [VmSafe.DirEntryStructOutput[]], + "view" + >; + + readFile: TypedContractMethod<[path: string], [string], "view">; + + readFileBinary: TypedContractMethod<[path: string], [string], "view">; + + readLine: TypedContractMethod<[path: string], [string], "view">; + + readLink: TypedContractMethod<[linkPath: string], [string], "view">; + + record: TypedContractMethod<[], [void], "nonpayable">; + + recordLogs: TypedContractMethod<[], [void], "nonpayable">; + + rememberKey: TypedContractMethod< + [privateKey: BigNumberish], + [string], + "nonpayable" + >; + + "rememberKeys(string,string,uint32)": TypedContractMethod< + [mnemonic: string, derivationPath: string, count: BigNumberish], + [string[]], + "nonpayable" + >; + + "rememberKeys(string,string,string,uint32)": TypedContractMethod< + [ + mnemonic: string, + derivationPath: string, + language: string, + count: BigNumberish + ], + [string[]], + "nonpayable" + >; + + removeDir: TypedContractMethod< + [path: string, recursive: boolean], + [void], + "nonpayable" + >; + + removeFile: TypedContractMethod<[path: string], [void], "nonpayable">; + + replace: TypedContractMethod< + [input: string, from: string, to: string], + [string], + "view" + >; + + resetGasMetering: TypedContractMethod<[], [void], "nonpayable">; + + resetNonce: TypedContractMethod<[account: AddressLike], [void], "nonpayable">; + + resumeGasMetering: TypedContractMethod<[], [void], "nonpayable">; + + resumeTracing: TypedContractMethod<[], [void], "view">; + + revertTo: TypedContractMethod< + [snapshotId: BigNumberish], + [boolean], + "nonpayable" + >; + + revertToAndDelete: TypedContractMethod< + [snapshotId: BigNumberish], + [boolean], + "nonpayable" + >; + + revertToState: TypedContractMethod< + [snapshotId: BigNumberish], + [boolean], + "nonpayable" + >; + + revertToStateAndDelete: TypedContractMethod< + [snapshotId: BigNumberish], + [boolean], + "nonpayable" + >; + + "revokePersistent(address[])": TypedContractMethod< + [accounts: AddressLike[]], + [void], + "nonpayable" + >; + + "revokePersistent(address)": TypedContractMethod< + [account: AddressLike], + [void], + "nonpayable" + >; + + roll: TypedContractMethod<[newHeight: BigNumberish], [void], "nonpayable">; + + "rollFork(bytes32)": TypedContractMethod< + [txHash: BytesLike], + [void], + "nonpayable" + >; + + "rollFork(uint256,uint256)": TypedContractMethod< + [forkId: BigNumberish, blockNumber: BigNumberish], + [void], + "nonpayable" + >; + + "rollFork(uint256)": TypedContractMethod< + [blockNumber: BigNumberish], + [void], + "nonpayable" + >; + + "rollFork(uint256,bytes32)": TypedContractMethod< + [forkId: BigNumberish, txHash: BytesLike], + [void], + "nonpayable" + >; + + "rpc(string,string,string)": TypedContractMethod< + [urlOrAlias: string, method: string, params: string], + [string], + "nonpayable" + >; + + "rpc(string,string)": TypedContractMethod< + [method: string, params: string], + [string], + "nonpayable" + >; + + rpcUrl: TypedContractMethod<[rpcAlias: string], [string], "view">; + + rpcUrlStructs: TypedContractMethod<[], [VmSafe.RpcStructOutput[]], "view">; + + rpcUrls: TypedContractMethod<[], [[string, string][]], "view">; + + selectFork: TypedContractMethod<[forkId: BigNumberish], [void], "nonpayable">; + + "serializeAddress(string,string,address[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: AddressLike[]], + [string], + "nonpayable" + >; + + "serializeAddress(string,string,address)": TypedContractMethod< + [objectKey: string, valueKey: string, value: AddressLike], + [string], + "nonpayable" + >; + + "serializeBool(string,string,bool[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: boolean[]], + [string], + "nonpayable" + >; + + "serializeBool(string,string,bool)": TypedContractMethod< + [objectKey: string, valueKey: string, value: boolean], + [string], + "nonpayable" + >; + + "serializeBytes(string,string,bytes[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: BytesLike[]], + [string], + "nonpayable" + >; + + "serializeBytes(string,string,bytes)": TypedContractMethod< + [objectKey: string, valueKey: string, value: BytesLike], + [string], + "nonpayable" + >; + + "serializeBytes32(string,string,bytes32[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: BytesLike[]], + [string], + "nonpayable" + >; + + "serializeBytes32(string,string,bytes32)": TypedContractMethod< + [objectKey: string, valueKey: string, value: BytesLike], + [string], + "nonpayable" + >; + + "serializeInt(string,string,int256)": TypedContractMethod< + [objectKey: string, valueKey: string, value: BigNumberish], + [string], + "nonpayable" + >; + + "serializeInt(string,string,int256[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: BigNumberish[]], + [string], + "nonpayable" + >; + + serializeJson: TypedContractMethod< + [objectKey: string, value: string], + [string], + "nonpayable" + >; + + "serializeJsonType(string,bytes)": TypedContractMethod< + [typeDescription: string, value: BytesLike], + [string], + "view" + >; + + "serializeJsonType(string,string,string,bytes)": TypedContractMethod< + [ + objectKey: string, + valueKey: string, + typeDescription: string, + value: BytesLike + ], + [string], + "nonpayable" + >; + + "serializeString(string,string,string[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: string[]], + [string], + "nonpayable" + >; + + "serializeString(string,string,string)": TypedContractMethod< + [objectKey: string, valueKey: string, value: string], + [string], + "nonpayable" + >; + + "serializeUint(string,string,uint256)": TypedContractMethod< + [objectKey: string, valueKey: string, value: BigNumberish], + [string], + "nonpayable" + >; + + "serializeUint(string,string,uint256[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: BigNumberish[]], + [string], + "nonpayable" + >; + + serializeUintToHex: TypedContractMethod< + [objectKey: string, valueKey: string, value: BigNumberish], + [string], + "nonpayable" + >; + + "setArbitraryStorage(address,bool)": TypedContractMethod< + [target: AddressLike, overwrite: boolean], + [void], + "nonpayable" + >; + + "setArbitraryStorage(address)": TypedContractMethod< + [target: AddressLike], + [void], + "nonpayable" + >; + + setBlockhash: TypedContractMethod< + [blockNumber: BigNumberish, blockHash: BytesLike], + [void], + "nonpayable" + >; + + setEnv: TypedContractMethod< + [name: string, value: string], + [void], + "nonpayable" + >; + + setNonce: TypedContractMethod< + [account: AddressLike, newNonce: BigNumberish], + [void], + "nonpayable" + >; + + setNonceUnsafe: TypedContractMethod< + [account: AddressLike, newNonce: BigNumberish], + [void], + "nonpayable" + >; + + shuffle: TypedContractMethod< + [array: BigNumberish[]], + [bigint[]], + "nonpayable" + >; + + "sign(bytes32)": TypedContractMethod< + [digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "view" + >; + + "sign(address,bytes32)": TypedContractMethod< + [signer: AddressLike, digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "view" + >; + + "sign((address,uint256,uint256,uint256),bytes32)": TypedContractMethod< + [wallet: VmSafe.WalletStruct, digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "nonpayable" + >; + + "sign(uint256,bytes32)": TypedContractMethod< + [privateKey: BigNumberish, digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "view" + >; + + "signAndAttachDelegation(address,uint256)": TypedContractMethod< + [implementation: AddressLike, privateKey: BigNumberish], + [VmSafe.SignedDelegationStructOutput], + "nonpayable" + >; + + "signAndAttachDelegation(address,uint256,uint64)": TypedContractMethod< + [ + implementation: AddressLike, + privateKey: BigNumberish, + nonce: BigNumberish + ], + [VmSafe.SignedDelegationStructOutput], + "nonpayable" + >; + + "signCompact((address,uint256,uint256,uint256),bytes32)": TypedContractMethod< + [wallet: VmSafe.WalletStruct, digest: BytesLike], + [[string, string] & { r: string; vs: string }], + "nonpayable" + >; + + "signCompact(address,bytes32)": TypedContractMethod< + [signer: AddressLike, digest: BytesLike], + [[string, string] & { r: string; vs: string }], + "view" + >; + + "signCompact(bytes32)": TypedContractMethod< + [digest: BytesLike], + [[string, string] & { r: string; vs: string }], + "view" + >; + + "signCompact(uint256,bytes32)": TypedContractMethod< + [privateKey: BigNumberish, digest: BytesLike], + [[string, string] & { r: string; vs: string }], + "view" + >; + + "signDelegation(address,uint256)": TypedContractMethod< + [implementation: AddressLike, privateKey: BigNumberish], + [VmSafe.SignedDelegationStructOutput], + "nonpayable" + >; + + "signDelegation(address,uint256,uint64)": TypedContractMethod< + [ + implementation: AddressLike, + privateKey: BigNumberish, + nonce: BigNumberish + ], + [VmSafe.SignedDelegationStructOutput], + "nonpayable" + >; + + signP256: TypedContractMethod< + [privateKey: BigNumberish, digest: BytesLike], + [[string, string] & { r: string; s: string }], + "view" + >; + + "skip(bool,string)": TypedContractMethod< + [skipTest: boolean, reason: string], + [void], + "nonpayable" + >; + + "skip(bool)": TypedContractMethod<[skipTest: boolean], [void], "nonpayable">; + + sleep: TypedContractMethod<[duration: BigNumberish], [void], "nonpayable">; + + snapshot: TypedContractMethod<[], [bigint], "nonpayable">; + + "snapshotGasLastCall(string,string)": TypedContractMethod< + [group: string, name: string], + [bigint], + "nonpayable" + >; + + "snapshotGasLastCall(string)": TypedContractMethod< + [name: string], + [bigint], + "nonpayable" + >; + + snapshotState: TypedContractMethod<[], [bigint], "nonpayable">; + + "snapshotValue(string,uint256)": TypedContractMethod< + [name: string, value: BigNumberish], + [void], + "nonpayable" + >; + + "snapshotValue(string,string,uint256)": TypedContractMethod< + [group: string, name: string, value: BigNumberish], + [void], + "nonpayable" + >; + + sort: TypedContractMethod<[array: BigNumberish[]], [bigint[]], "nonpayable">; + + split: TypedContractMethod< + [input: string, delimiter: string], + [string[]], + "view" + >; + + "startBroadcast()": TypedContractMethod<[], [void], "nonpayable">; + + "startBroadcast(address)": TypedContractMethod< + [signer: AddressLike], + [void], + "nonpayable" + >; + + "startBroadcast(uint256)": TypedContractMethod< + [privateKey: BigNumberish], + [void], + "nonpayable" + >; + + startDebugTraceRecording: TypedContractMethod<[], [void], "nonpayable">; + + startMappingRecording: TypedContractMethod<[], [void], "nonpayable">; + + "startPrank(address)": TypedContractMethod< + [msgSender: AddressLike], + [void], + "nonpayable" + >; + + "startPrank(address,bool)": TypedContractMethod< + [msgSender: AddressLike, delegateCall: boolean], + [void], + "nonpayable" + >; + + "startPrank(address,address)": TypedContractMethod< + [msgSender: AddressLike, txOrigin: AddressLike], + [void], + "nonpayable" + >; + + "startPrank(address,address,bool)": TypedContractMethod< + [msgSender: AddressLike, txOrigin: AddressLike, delegateCall: boolean], + [void], + "nonpayable" + >; + + "startSnapshotGas(string)": TypedContractMethod< + [name: string], + [void], + "nonpayable" + >; + + "startSnapshotGas(string,string)": TypedContractMethod< + [group: string, name: string], + [void], + "nonpayable" + >; + + startStateDiffRecording: TypedContractMethod<[], [void], "nonpayable">; + + stopAndReturnDebugTraceRecording: TypedContractMethod< + [], + [VmSafe.DebugStepStructOutput[]], + "nonpayable" + >; + + stopAndReturnStateDiff: TypedContractMethod< + [], + [VmSafe.AccountAccessStructOutput[]], + "nonpayable" + >; + + stopBroadcast: TypedContractMethod<[], [void], "nonpayable">; + + stopExpectSafeMemory: TypedContractMethod<[], [void], "nonpayable">; + + stopMappingRecording: TypedContractMethod<[], [void], "nonpayable">; + + stopPrank: TypedContractMethod<[], [void], "nonpayable">; + + "stopSnapshotGas(string,string)": TypedContractMethod< + [group: string, name: string], + [bigint], + "nonpayable" + >; + + "stopSnapshotGas(string)": TypedContractMethod< + [name: string], + [bigint], + "nonpayable" + >; + + "stopSnapshotGas()": TypedContractMethod<[], [bigint], "nonpayable">; + + store: TypedContractMethod< + [target: AddressLike, slot: BytesLike, value: BytesLike], + [void], + "nonpayable" + >; + + "toBase64(string)": TypedContractMethod<[data: string], [string], "view">; + + "toBase64(bytes)": TypedContractMethod<[data: BytesLike], [string], "view">; + + "toBase64URL(string)": TypedContractMethod<[data: string], [string], "view">; + + "toBase64URL(bytes)": TypedContractMethod< + [data: BytesLike], + [string], + "view" + >; + + toLowercase: TypedContractMethod<[input: string], [string], "view">; + + "toString(address)": TypedContractMethod< + [value: AddressLike], + [string], + "view" + >; + + "toString(uint256)": TypedContractMethod< + [value: BigNumberish], + [string], + "view" + >; + + "toString(bytes)": TypedContractMethod<[value: BytesLike], [string], "view">; + + "toString(bool)": TypedContractMethod<[value: boolean], [string], "view">; + + "toString(int256)": TypedContractMethod< + [value: BigNumberish], + [string], + "view" + >; + + "toString(bytes32)": TypedContractMethod< + [value: BytesLike], + [string], + "view" + >; + + toUppercase: TypedContractMethod<[input: string], [string], "view">; + + "transact(uint256,bytes32)": TypedContractMethod< + [forkId: BigNumberish, txHash: BytesLike], + [void], + "nonpayable" + >; + + "transact(bytes32)": TypedContractMethod< + [txHash: BytesLike], + [void], + "nonpayable" + >; + + trim: TypedContractMethod<[input: string], [string], "view">; + + tryFfi: TypedContractMethod< + [commandInput: string[]], + [VmSafe.FfiResultStructOutput], + "nonpayable" + >; + + txGasPrice: TypedContractMethod< + [newGasPrice: BigNumberish], + [void], + "nonpayable" + >; + + unixTime: TypedContractMethod<[], [bigint], "view">; + + warmSlot: TypedContractMethod< + [target: AddressLike, slot: BytesLike], + [void], + "nonpayable" + >; + + warp: TypedContractMethod<[newTimestamp: BigNumberish], [void], "nonpayable">; + + writeFile: TypedContractMethod< + [path: string, data: string], + [void], + "nonpayable" + >; + + writeFileBinary: TypedContractMethod< + [path: string, data: BytesLike], + [void], + "nonpayable" + >; + + "writeJson(string,string,string)": TypedContractMethod< + [json: string, path: string, valueKey: string], + [void], + "nonpayable" + >; + + "writeJson(string,string)": TypedContractMethod< + [json: string, path: string], + [void], + "nonpayable" + >; + + writeLine: TypedContractMethod< + [path: string, data: string], + [void], + "nonpayable" + >; + + "writeToml(string,string,string)": TypedContractMethod< + [json: string, path: string, valueKey: string], + [void], + "nonpayable" + >; + + "writeToml(string,string)": TypedContractMethod< + [json: string, path: string], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "accessList" + ): TypedContractMethod< + [access: VmSafe.AccessListItemStruct[]], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "accesses" + ): TypedContractMethod< + [target: AddressLike], + [[string[], string[]] & { readSlots: string[]; writeSlots: string[] }], + "nonpayable" + >; + getFunction( + nameOrSignature: "activeFork" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "addr" + ): TypedContractMethod<[privateKey: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "allowCheatcodes" + ): TypedContractMethod<[account: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "assertApproxEqAbs(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxDelta: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbs(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxDelta: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbs(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbs(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRel(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRel(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxPercentDelta: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRel(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRel(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxPercentDelta: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRelDecimal(int256,int256,uint256,uint256)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bytes32[],bytes32[])" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(int256[],int256[],string)" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(address,address,string)" + ): TypedContractMethod< + [left: AddressLike, right: AddressLike, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(string,string,string)" + ): TypedContractMethod< + [left: string, right: string, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(address[],address[])" + ): TypedContractMethod< + [left: AddressLike[], right: AddressLike[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(address[],address[],string)" + ): TypedContractMethod< + [left: AddressLike[], right: AddressLike[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bool,bool,string)" + ): TypedContractMethod< + [left: boolean, right: boolean, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(address,address)" + ): TypedContractMethod< + [left: AddressLike, right: AddressLike], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(uint256[],uint256[],string)" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bool[],bool[])" + ): TypedContractMethod<[left: boolean[], right: boolean[]], [void], "view">; + getFunction( + nameOrSignature: "assertEq(int256[],int256[])" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(int256,int256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bytes32,bytes32)" + ): TypedContractMethod<[left: BytesLike, right: BytesLike], [void], "view">; + getFunction( + nameOrSignature: "assertEq(uint256,uint256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(uint256[],uint256[])" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bytes,bytes)" + ): TypedContractMethod<[left: BytesLike, right: BytesLike], [void], "view">; + getFunction( + nameOrSignature: "assertEq(uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bytes32,bytes32,string)" + ): TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(string[],string[])" + ): TypedContractMethod<[left: string[], right: string[]], [void], "view">; + getFunction( + nameOrSignature: "assertEq(bytes32[],bytes32[],string)" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bytes,bytes,string)" + ): TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bool[],bool[],string)" + ): TypedContractMethod< + [left: boolean[], right: boolean[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bytes[],bytes[])" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(string[],string[],string)" + ): TypedContractMethod< + [left: string[], right: string[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(string,string)" + ): TypedContractMethod<[left: string, right: string], [void], "view">; + getFunction( + nameOrSignature: "assertEq(bytes[],bytes[],string)" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bool,bool)" + ): TypedContractMethod<[left: boolean, right: boolean], [void], "view">; + getFunction( + nameOrSignature: "assertEq(int256,int256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEqDecimal(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEqDecimal(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEqDecimal(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEqDecimal(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertFalse(bool,string)" + ): TypedContractMethod<[condition: boolean, error: string], [void], "view">; + getFunction( + nameOrSignature: "assertFalse(bool)" + ): TypedContractMethod<[condition: boolean], [void], "view">; + getFunction( + nameOrSignature: "assertGe(int256,int256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGe(int256,int256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGe(uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGe(uint256,uint256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGeDecimal(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGeDecimal(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGeDecimal(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGeDecimal(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGt(int256,int256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGt(uint256,uint256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGt(uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGt(int256,int256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGtDecimal(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGtDecimal(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGtDecimal(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGtDecimal(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLe(int256,int256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLe(uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLe(int256,int256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLe(uint256,uint256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLeDecimal(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLeDecimal(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLeDecimal(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLeDecimal(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLt(int256,int256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLt(uint256,uint256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLt(int256,int256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLt(uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLtDecimal(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLtDecimal(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLtDecimal(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLtDecimal(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bytes32[],bytes32[])" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(int256[],int256[])" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bool,bool,string)" + ): TypedContractMethod< + [left: boolean, right: boolean, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bytes[],bytes[],string)" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bool,bool)" + ): TypedContractMethod<[left: boolean, right: boolean], [void], "view">; + getFunction( + nameOrSignature: "assertNotEq(bool[],bool[])" + ): TypedContractMethod<[left: boolean[], right: boolean[]], [void], "view">; + getFunction( + nameOrSignature: "assertNotEq(bytes,bytes)" + ): TypedContractMethod<[left: BytesLike, right: BytesLike], [void], "view">; + getFunction( + nameOrSignature: "assertNotEq(address[],address[])" + ): TypedContractMethod< + [left: AddressLike[], right: AddressLike[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(int256,int256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(uint256[],uint256[])" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bool[],bool[],string)" + ): TypedContractMethod< + [left: boolean[], right: boolean[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(string,string)" + ): TypedContractMethod<[left: string, right: string], [void], "view">; + getFunction( + nameOrSignature: "assertNotEq(address[],address[],string)" + ): TypedContractMethod< + [left: AddressLike[], right: AddressLike[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(string,string,string)" + ): TypedContractMethod< + [left: string, right: string, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(address,address,string)" + ): TypedContractMethod< + [left: AddressLike, right: AddressLike, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bytes32,bytes32)" + ): TypedContractMethod<[left: BytesLike, right: BytesLike], [void], "view">; + getFunction( + nameOrSignature: "assertNotEq(bytes,bytes,string)" + ): TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(uint256,uint256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(uint256[],uint256[],string)" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(address,address)" + ): TypedContractMethod< + [left: AddressLike, right: AddressLike], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bytes32,bytes32,string)" + ): TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(string[],string[],string)" + ): TypedContractMethod< + [left: string[], right: string[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bytes32[],bytes32[],string)" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(string[],string[])" + ): TypedContractMethod<[left: string[], right: string[]], [void], "view">; + getFunction( + nameOrSignature: "assertNotEq(int256[],int256[],string)" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bytes[],bytes[])" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(int256,int256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEqDecimal(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEqDecimal(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEqDecimal(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEqDecimal(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertTrue(bool)" + ): TypedContractMethod<[condition: boolean], [void], "view">; + getFunction( + nameOrSignature: "assertTrue(bool,string)" + ): TypedContractMethod<[condition: boolean, error: string], [void], "view">; + getFunction( + nameOrSignature: "assume" + ): TypedContractMethod<[condition: boolean], [void], "view">; + getFunction( + nameOrSignature: "assumeNoRevert()" + ): TypedContractMethod<[], [void], "view">; + getFunction( + nameOrSignature: "assumeNoRevert((address,bool,bytes)[])" + ): TypedContractMethod< + [potentialReverts: VmSafe.PotentialRevertStruct[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assumeNoRevert((address,bool,bytes))" + ): TypedContractMethod< + [potentialRevert: VmSafe.PotentialRevertStruct], + [void], + "view" + >; + getFunction( + nameOrSignature: "attachBlob" + ): TypedContractMethod<[blob: BytesLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "attachDelegation" + ): TypedContractMethod< + [signedDelegation: VmSafe.SignedDelegationStruct], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "blobBaseFee" + ): TypedContractMethod<[newBlobBaseFee: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "blobhashes" + ): TypedContractMethod<[hashes: BytesLike[]], [void], "nonpayable">; + getFunction( + nameOrSignature: "breakpoint(string)" + ): TypedContractMethod<[char: string], [void], "view">; + getFunction( + nameOrSignature: "breakpoint(string,bool)" + ): TypedContractMethod<[char: string, value: boolean], [void], "view">; + getFunction( + nameOrSignature: "broadcast()" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "broadcast(address)" + ): TypedContractMethod<[signer: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "broadcast(uint256)" + ): TypedContractMethod<[privateKey: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "broadcastRawTransaction" + ): TypedContractMethod<[data: BytesLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "chainId" + ): TypedContractMethod<[newChainId: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "clearMockedCalls" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "cloneAccount" + ): TypedContractMethod< + [source: AddressLike, target: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "closeFile" + ): TypedContractMethod<[path: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "coinbase" + ): TypedContractMethod<[newCoinbase: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "computeCreate2Address(bytes32,bytes32)" + ): TypedContractMethod< + [salt: BytesLike, initCodeHash: BytesLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "computeCreate2Address(bytes32,bytes32,address)" + ): TypedContractMethod< + [salt: BytesLike, initCodeHash: BytesLike, deployer: AddressLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "computeCreateAddress" + ): TypedContractMethod< + [deployer: AddressLike, nonce: BigNumberish], + [string], + "view" + >; + getFunction( + nameOrSignature: "contains" + ): TypedContractMethod< + [subject: string, search: string], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "cool" + ): TypedContractMethod<[target: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "coolSlot" + ): TypedContractMethod< + [target: AddressLike, slot: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "copyFile" + ): TypedContractMethod<[from: string, to: string], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "copyStorage" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "createDir" + ): TypedContractMethod< + [path: string, recursive: boolean], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "createFork(string)" + ): TypedContractMethod<[urlOrAlias: string], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "createFork(string,uint256)" + ): TypedContractMethod< + [urlOrAlias: string, blockNumber: BigNumberish], + [bigint], + "nonpayable" + >; + getFunction( + nameOrSignature: "createFork(string,bytes32)" + ): TypedContractMethod< + [urlOrAlias: string, txHash: BytesLike], + [bigint], + "nonpayable" + >; + getFunction( + nameOrSignature: "createSelectFork(string,uint256)" + ): TypedContractMethod< + [urlOrAlias: string, blockNumber: BigNumberish], + [bigint], + "nonpayable" + >; + getFunction( + nameOrSignature: "createSelectFork(string,bytes32)" + ): TypedContractMethod< + [urlOrAlias: string, txHash: BytesLike], + [bigint], + "nonpayable" + >; + getFunction( + nameOrSignature: "createSelectFork(string)" + ): TypedContractMethod<[urlOrAlias: string], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "createWallet(string)" + ): TypedContractMethod< + [walletLabel: string], + [VmSafe.WalletStructOutput], + "nonpayable" + >; + getFunction( + nameOrSignature: "createWallet(uint256)" + ): TypedContractMethod< + [privateKey: BigNumberish], + [VmSafe.WalletStructOutput], + "nonpayable" + >; + getFunction( + nameOrSignature: "createWallet(uint256,string)" + ): TypedContractMethod< + [privateKey: BigNumberish, walletLabel: string], + [VmSafe.WalletStructOutput], + "nonpayable" + >; + getFunction( + nameOrSignature: "deal" + ): TypedContractMethod< + [account: AddressLike, newBalance: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "deleteSnapshot" + ): TypedContractMethod<[snapshotId: BigNumberish], [boolean], "nonpayable">; + getFunction( + nameOrSignature: "deleteSnapshots" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "deleteStateSnapshot" + ): TypedContractMethod<[snapshotId: BigNumberish], [boolean], "nonpayable">; + getFunction( + nameOrSignature: "deleteStateSnapshots" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "deployCode(string,uint256,bytes32)" + ): TypedContractMethod< + [artifactPath: string, value: BigNumberish, salt: BytesLike], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "deployCode(string,bytes,bytes32)" + ): TypedContractMethod< + [artifactPath: string, constructorArgs: BytesLike, salt: BytesLike], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "deployCode(string,uint256)" + ): TypedContractMethod< + [artifactPath: string, value: BigNumberish], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "deployCode(string,bytes32)" + ): TypedContractMethod< + [artifactPath: string, salt: BytesLike], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "deployCode(string,bytes)" + ): TypedContractMethod< + [artifactPath: string, constructorArgs: BytesLike], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "deployCode(string,bytes,uint256,bytes32)" + ): TypedContractMethod< + [ + artifactPath: string, + constructorArgs: BytesLike, + value: BigNumberish, + salt: BytesLike + ], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "deployCode(string)" + ): TypedContractMethod<[artifactPath: string], [string], "nonpayable">; + getFunction( + nameOrSignature: "deployCode(string,bytes,uint256)" + ): TypedContractMethod< + [artifactPath: string, constructorArgs: BytesLike, value: BigNumberish], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "deriveKey(string,string,uint32,string)" + ): TypedContractMethod< + [ + mnemonic: string, + derivationPath: string, + index: BigNumberish, + language: string + ], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "deriveKey(string,uint32,string)" + ): TypedContractMethod< + [mnemonic: string, index: BigNumberish, language: string], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "deriveKey(string,uint32)" + ): TypedContractMethod< + [mnemonic: string, index: BigNumberish], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "deriveKey(string,string,uint32)" + ): TypedContractMethod< + [mnemonic: string, derivationPath: string, index: BigNumberish], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "difficulty" + ): TypedContractMethod<[newDifficulty: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "dumpState" + ): TypedContractMethod<[pathToStateJson: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "ensNamehash" + ): TypedContractMethod<[name: string], [string], "view">; + getFunction( + nameOrSignature: "envAddress(string)" + ): TypedContractMethod<[name: string], [string], "view">; + getFunction( + nameOrSignature: "envAddress(string,string)" + ): TypedContractMethod<[name: string, delim: string], [string[]], "view">; + getFunction( + nameOrSignature: "envBool(string)" + ): TypedContractMethod<[name: string], [boolean], "view">; + getFunction( + nameOrSignature: "envBool(string,string)" + ): TypedContractMethod<[name: string, delim: string], [boolean[]], "view">; + getFunction( + nameOrSignature: "envBytes(string)" + ): TypedContractMethod<[name: string], [string], "view">; + getFunction( + nameOrSignature: "envBytes(string,string)" + ): TypedContractMethod<[name: string, delim: string], [string[]], "view">; + getFunction( + nameOrSignature: "envBytes32(string,string)" + ): TypedContractMethod<[name: string, delim: string], [string[]], "view">; + getFunction( + nameOrSignature: "envBytes32(string)" + ): TypedContractMethod<[name: string], [string], "view">; + getFunction( + nameOrSignature: "envExists" + ): TypedContractMethod<[name: string], [boolean], "view">; + getFunction( + nameOrSignature: "envInt(string,string)" + ): TypedContractMethod<[name: string, delim: string], [bigint[]], "view">; + getFunction( + nameOrSignature: "envInt(string)" + ): TypedContractMethod<[name: string], [bigint], "view">; + getFunction( + nameOrSignature: "envOr(string,string,bytes32[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: BytesLike[]], + [string[]], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string,int256[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: BigNumberish[]], + [bigint[]], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,bool)" + ): TypedContractMethod< + [name: string, defaultValue: boolean], + [boolean], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,address)" + ): TypedContractMethod< + [name: string, defaultValue: AddressLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,uint256)" + ): TypedContractMethod< + [name: string, defaultValue: BigNumberish], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string,bytes[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: BytesLike[]], + [string[]], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string,uint256[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: BigNumberish[]], + [bigint[]], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string,string[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: string[]], + [string[]], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,bytes)" + ): TypedContractMethod< + [name: string, defaultValue: BytesLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,bytes32)" + ): TypedContractMethod< + [name: string, defaultValue: BytesLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,int256)" + ): TypedContractMethod< + [name: string, defaultValue: BigNumberish], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string,address[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: AddressLike[]], + [string[]], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string)" + ): TypedContractMethod< + [name: string, defaultValue: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string,bool[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: boolean[]], + [boolean[]], + "view" + >; + getFunction( + nameOrSignature: "envString(string,string)" + ): TypedContractMethod<[name: string, delim: string], [string[]], "view">; + getFunction( + nameOrSignature: "envString(string)" + ): TypedContractMethod<[name: string], [string], "view">; + getFunction( + nameOrSignature: "envUint(string)" + ): TypedContractMethod<[name: string], [bigint], "view">; + getFunction( + nameOrSignature: "envUint(string,string)" + ): TypedContractMethod<[name: string, delim: string], [bigint[]], "view">; + getFunction( + nameOrSignature: "etch" + ): TypedContractMethod< + [target: AddressLike, newRuntimeBytecode: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "eth_getLogs" + ): TypedContractMethod< + [ + fromBlock: BigNumberish, + toBlock: BigNumberish, + target: AddressLike, + topics: BytesLike[] + ], + [VmSafe.EthGetLogsStructOutput[]], + "nonpayable" + >; + getFunction( + nameOrSignature: "exists" + ): TypedContractMethod<[path: string], [boolean], "view">; + getFunction( + nameOrSignature: "expectCall(address,uint256,uint64,bytes)" + ): TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + gas: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectCall(address,uint256,uint64,bytes,uint64)" + ): TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + gas: BigNumberish, + data: BytesLike, + count: BigNumberish + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectCall(address,uint256,bytes,uint64)" + ): TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + data: BytesLike, + count: BigNumberish + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectCall(address,bytes)" + ): TypedContractMethod< + [callee: AddressLike, data: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectCall(address,bytes,uint64)" + ): TypedContractMethod< + [callee: AddressLike, data: BytesLike, count: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectCall(address,uint256,bytes)" + ): TypedContractMethod< + [callee: AddressLike, msgValue: BigNumberish, data: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectCallMinGas(address,uint256,uint64,bytes)" + ): TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + minGas: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectCallMinGas(address,uint256,uint64,bytes,uint64)" + ): TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + minGas: BigNumberish, + data: BytesLike, + count: BigNumberish + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectCreate" + ): TypedContractMethod< + [bytecode: BytesLike, deployer: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectCreate2" + ): TypedContractMethod< + [bytecode: BytesLike, deployer: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectEmit()" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "expectEmit(bool,bool,bool,bool)" + ): TypedContractMethod< + [ + checkTopic1: boolean, + checkTopic2: boolean, + checkTopic3: boolean, + checkData: boolean + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectEmit(uint64)" + ): TypedContractMethod<[count: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "expectEmit(bool,bool,bool,bool,uint64)" + ): TypedContractMethod< + [ + checkTopic1: boolean, + checkTopic2: boolean, + checkTopic3: boolean, + checkData: boolean, + count: BigNumberish + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectEmit(bool,bool,bool,bool,address)" + ): TypedContractMethod< + [ + checkTopic1: boolean, + checkTopic2: boolean, + checkTopic3: boolean, + checkData: boolean, + emitter: AddressLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectEmit(address)" + ): TypedContractMethod<[emitter: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "expectEmit(address,uint64)" + ): TypedContractMethod< + [emitter: AddressLike, count: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectEmit(bool,bool,bool,bool,address,uint64)" + ): TypedContractMethod< + [ + checkTopic1: boolean, + checkTopic2: boolean, + checkTopic3: boolean, + checkData: boolean, + emitter: AddressLike, + count: BigNumberish + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectEmitAnonymous()" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "expectEmitAnonymous(address)" + ): TypedContractMethod<[emitter: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "expectEmitAnonymous(bool,bool,bool,bool,bool,address)" + ): TypedContractMethod< + [ + checkTopic0: boolean, + checkTopic1: boolean, + checkTopic2: boolean, + checkTopic3: boolean, + checkData: boolean, + emitter: AddressLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectEmitAnonymous(bool,bool,bool,bool,bool)" + ): TypedContractMethod< + [ + checkTopic0: boolean, + checkTopic1: boolean, + checkTopic2: boolean, + checkTopic3: boolean, + checkData: boolean + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectPartialRevert(bytes4)" + ): TypedContractMethod<[revertData: BytesLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "expectPartialRevert(bytes4,address)" + ): TypedContractMethod< + [revertData: BytesLike, reverter: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectRevert(address,uint64)" + ): TypedContractMethod< + [reverter: AddressLike, count: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectRevert(bytes4,address)" + ): TypedContractMethod< + [revertData: BytesLike, reverter: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectRevert(bytes,uint64)" + ): TypedContractMethod< + [revertData: BytesLike, count: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectRevert(uint64)" + ): TypedContractMethod<[count: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "expectRevert(bytes,address)" + ): TypedContractMethod< + [revertData: BytesLike, reverter: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectRevert(bytes4,address,uint64)" + ): TypedContractMethod< + [revertData: BytesLike, reverter: AddressLike, count: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectRevert(bytes4)" + ): TypedContractMethod<[revertData: BytesLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "expectRevert(bytes,address,uint64)" + ): TypedContractMethod< + [revertData: BytesLike, reverter: AddressLike, count: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectRevert(address)" + ): TypedContractMethod<[reverter: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "expectRevert(bytes4,uint64)" + ): TypedContractMethod< + [revertData: BytesLike, count: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectRevert(bytes)" + ): TypedContractMethod<[revertData: BytesLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "expectRevert()" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "expectSafeMemory" + ): TypedContractMethod< + [min: BigNumberish, max: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectSafeMemoryCall" + ): TypedContractMethod< + [min: BigNumberish, max: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "fee" + ): TypedContractMethod<[newBasefee: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "ffi" + ): TypedContractMethod<[commandInput: string[]], [string], "nonpayable">; + getFunction( + nameOrSignature: "foundryVersionAtLeast" + ): TypedContractMethod<[version: string], [boolean], "view">; + getFunction( + nameOrSignature: "foundryVersionCmp" + ): TypedContractMethod<[version: string], [bigint], "view">; + getFunction( + nameOrSignature: "fsMetadata" + ): TypedContractMethod< + [path: string], + [VmSafe.FsMetadataStructOutput], + "view" + >; + getFunction( + nameOrSignature: "getArtifactPathByCode" + ): TypedContractMethod<[code: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "getArtifactPathByDeployedCode" + ): TypedContractMethod<[deployedCode: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "getBlobBaseFee" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "getBlobhashes" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "getBlockNumber" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "getBlockTimestamp" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "getBroadcast" + ): TypedContractMethod< + [contractName: string, chainId: BigNumberish, txType: BigNumberish], + [VmSafe.BroadcastTxSummaryStructOutput], + "view" + >; + getFunction( + nameOrSignature: "getBroadcasts(string,uint64)" + ): TypedContractMethod< + [contractName: string, chainId: BigNumberish], + [VmSafe.BroadcastTxSummaryStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "getBroadcasts(string,uint64,uint8)" + ): TypedContractMethod< + [contractName: string, chainId: BigNumberish, txType: BigNumberish], + [VmSafe.BroadcastTxSummaryStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "getChain(string)" + ): TypedContractMethod< + [chainAlias: string], + [VmSafe.ChainStructOutput], + "view" + >; + getFunction( + nameOrSignature: "getChain(uint256)" + ): TypedContractMethod< + [chainId: BigNumberish], + [VmSafe.ChainStructOutput], + "view" + >; + getFunction( + nameOrSignature: "getCode" + ): TypedContractMethod<[artifactPath: string], [string], "view">; + getFunction( + nameOrSignature: "getDeployedCode" + ): TypedContractMethod<[artifactPath: string], [string], "view">; + getFunction( + nameOrSignature: "getDeployment(string,uint64)" + ): TypedContractMethod< + [contractName: string, chainId: BigNumberish], + [string], + "view" + >; + getFunction( + nameOrSignature: "getDeployment(string)" + ): TypedContractMethod<[contractName: string], [string], "view">; + getFunction( + nameOrSignature: "getDeployments" + ): TypedContractMethod< + [contractName: string, chainId: BigNumberish], + [string[]], + "view" + >; + getFunction( + nameOrSignature: "getFoundryVersion" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "getLabel" + ): TypedContractMethod<[account: AddressLike], [string], "view">; + getFunction( + nameOrSignature: "getMappingKeyAndParentOf" + ): TypedContractMethod< + [target: AddressLike, elementSlot: BytesLike], + [ + [boolean, string, string] & { + found: boolean; + key: string; + parent: string; + } + ], + "nonpayable" + >; + getFunction( + nameOrSignature: "getMappingLength" + ): TypedContractMethod< + [target: AddressLike, mappingSlot: BytesLike], + [bigint], + "nonpayable" + >; + getFunction( + nameOrSignature: "getMappingSlotAt" + ): TypedContractMethod< + [target: AddressLike, mappingSlot: BytesLike, idx: BigNumberish], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "getNonce(address)" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "getNonce((address,uint256,uint256,uint256))" + ): TypedContractMethod<[wallet: VmSafe.WalletStruct], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "getRecordedLogs" + ): TypedContractMethod<[], [VmSafe.LogStructOutput[]], "nonpayable">; + getFunction( + nameOrSignature: "getStateDiff" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "getStateDiffJson" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "getWallets" + ): TypedContractMethod<[], [string[]], "nonpayable">; + getFunction( + nameOrSignature: "indexOf" + ): TypedContractMethod<[input: string, key: string], [bigint], "view">; + getFunction( + nameOrSignature: "interceptInitcode" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "isContext" + ): TypedContractMethod<[context: BigNumberish], [boolean], "view">; + getFunction( + nameOrSignature: "isDir" + ): TypedContractMethod<[path: string], [boolean], "view">; + getFunction( + nameOrSignature: "isFile" + ): TypedContractMethod<[path: string], [boolean], "view">; + getFunction( + nameOrSignature: "isPersistent" + ): TypedContractMethod<[account: AddressLike], [boolean], "view">; + getFunction( + nameOrSignature: "keyExists" + ): TypedContractMethod<[json: string, key: string], [boolean], "view">; + getFunction( + nameOrSignature: "keyExistsJson" + ): TypedContractMethod<[json: string, key: string], [boolean], "view">; + getFunction( + nameOrSignature: "keyExistsToml" + ): TypedContractMethod<[toml: string, key: string], [boolean], "view">; + getFunction( + nameOrSignature: "label" + ): TypedContractMethod< + [account: AddressLike, newLabel: string], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "lastCallGas" + ): TypedContractMethod<[], [VmSafe.GasStructOutput], "view">; + getFunction( + nameOrSignature: "load" + ): TypedContractMethod< + [target: AddressLike, slot: BytesLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "loadAllocs" + ): TypedContractMethod<[pathToAllocsJson: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "makePersistent(address[])" + ): TypedContractMethod<[accounts: AddressLike[]], [void], "nonpayable">; + getFunction( + nameOrSignature: "makePersistent(address,address)" + ): TypedContractMethod< + [account0: AddressLike, account1: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "makePersistent(address)" + ): TypedContractMethod<[account: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "makePersistent(address,address,address)" + ): TypedContractMethod< + [account0: AddressLike, account1: AddressLike, account2: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "mockCall(address,bytes4,bytes)" + ): TypedContractMethod< + [callee: AddressLike, data: BytesLike, returnData: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "mockCall(address,uint256,bytes,bytes)" + ): TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + data: BytesLike, + returnData: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "mockCall(address,bytes,bytes)" + ): TypedContractMethod< + [callee: AddressLike, data: BytesLike, returnData: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "mockCall(address,uint256,bytes4,bytes)" + ): TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + data: BytesLike, + returnData: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "mockCallRevert(address,bytes4,bytes)" + ): TypedContractMethod< + [callee: AddressLike, data: BytesLike, revertData: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "mockCallRevert(address,uint256,bytes4,bytes)" + ): TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + data: BytesLike, + revertData: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "mockCallRevert(address,uint256,bytes,bytes)" + ): TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + data: BytesLike, + revertData: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "mockCallRevert(address,bytes,bytes)" + ): TypedContractMethod< + [callee: AddressLike, data: BytesLike, revertData: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "mockCalls(address,uint256,bytes,bytes[])" + ): TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + data: BytesLike, + returnData: BytesLike[] + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "mockCalls(address,bytes,bytes[])" + ): TypedContractMethod< + [callee: AddressLike, data: BytesLike, returnData: BytesLike[]], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "mockFunction" + ): TypedContractMethod< + [callee: AddressLike, target: AddressLike, data: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "noAccessList" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "parseAddress" + ): TypedContractMethod<[stringifiedValue: string], [string], "view">; + getFunction( + nameOrSignature: "parseBool" + ): TypedContractMethod<[stringifiedValue: string], [boolean], "view">; + getFunction( + nameOrSignature: "parseBytes" + ): TypedContractMethod<[stringifiedValue: string], [string], "view">; + getFunction( + nameOrSignature: "parseBytes32" + ): TypedContractMethod<[stringifiedValue: string], [string], "view">; + getFunction( + nameOrSignature: "parseInt" + ): TypedContractMethod<[stringifiedValue: string], [bigint], "view">; + getFunction( + nameOrSignature: "parseJson(string)" + ): TypedContractMethod<[json: string], [string], "view">; + getFunction( + nameOrSignature: "parseJson(string,string)" + ): TypedContractMethod<[json: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseJsonAddress" + ): TypedContractMethod<[json: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseJsonAddressArray" + ): TypedContractMethod<[json: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseJsonBool" + ): TypedContractMethod<[json: string, key: string], [boolean], "view">; + getFunction( + nameOrSignature: "parseJsonBoolArray" + ): TypedContractMethod<[json: string, key: string], [boolean[]], "view">; + getFunction( + nameOrSignature: "parseJsonBytes" + ): TypedContractMethod<[json: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseJsonBytes32" + ): TypedContractMethod<[json: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseJsonBytes32Array" + ): TypedContractMethod<[json: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseJsonBytesArray" + ): TypedContractMethod<[json: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseJsonInt" + ): TypedContractMethod<[json: string, key: string], [bigint], "view">; + getFunction( + nameOrSignature: "parseJsonIntArray" + ): TypedContractMethod<[json: string, key: string], [bigint[]], "view">; + getFunction( + nameOrSignature: "parseJsonKeys" + ): TypedContractMethod<[json: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseJsonString" + ): TypedContractMethod<[json: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseJsonStringArray" + ): TypedContractMethod<[json: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseJsonType(string,string)" + ): TypedContractMethod< + [json: string, typeDescription: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "parseJsonType(string,string,string)" + ): TypedContractMethod< + [json: string, key: string, typeDescription: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "parseJsonTypeArray" + ): TypedContractMethod< + [json: string, key: string, typeDescription: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "parseJsonUint" + ): TypedContractMethod<[json: string, key: string], [bigint], "view">; + getFunction( + nameOrSignature: "parseJsonUintArray" + ): TypedContractMethod<[json: string, key: string], [bigint[]], "view">; + getFunction( + nameOrSignature: "parseToml(string,string)" + ): TypedContractMethod<[toml: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseToml(string)" + ): TypedContractMethod<[toml: string], [string], "view">; + getFunction( + nameOrSignature: "parseTomlAddress" + ): TypedContractMethod<[toml: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseTomlAddressArray" + ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseTomlBool" + ): TypedContractMethod<[toml: string, key: string], [boolean], "view">; + getFunction( + nameOrSignature: "parseTomlBoolArray" + ): TypedContractMethod<[toml: string, key: string], [boolean[]], "view">; + getFunction( + nameOrSignature: "parseTomlBytes" + ): TypedContractMethod<[toml: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseTomlBytes32" + ): TypedContractMethod<[toml: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseTomlBytes32Array" + ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseTomlBytesArray" + ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseTomlInt" + ): TypedContractMethod<[toml: string, key: string], [bigint], "view">; + getFunction( + nameOrSignature: "parseTomlIntArray" + ): TypedContractMethod<[toml: string, key: string], [bigint[]], "view">; + getFunction( + nameOrSignature: "parseTomlKeys" + ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseTomlString" + ): TypedContractMethod<[toml: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseTomlStringArray" + ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseTomlType(string,string)" + ): TypedContractMethod< + [toml: string, typeDescription: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "parseTomlType(string,string,string)" + ): TypedContractMethod< + [toml: string, key: string, typeDescription: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "parseTomlTypeArray" + ): TypedContractMethod< + [toml: string, key: string, typeDescription: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "parseTomlUint" + ): TypedContractMethod<[toml: string, key: string], [bigint], "view">; + getFunction( + nameOrSignature: "parseTomlUintArray" + ): TypedContractMethod<[toml: string, key: string], [bigint[]], "view">; + getFunction( + nameOrSignature: "parseUint" + ): TypedContractMethod<[stringifiedValue: string], [bigint], "view">; + getFunction( + nameOrSignature: "pauseGasMetering" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "pauseTracing" + ): TypedContractMethod<[], [void], "view">; + getFunction( + nameOrSignature: "prank(address,address)" + ): TypedContractMethod< + [msgSender: AddressLike, txOrigin: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "prank(address,address,bool)" + ): TypedContractMethod< + [msgSender: AddressLike, txOrigin: AddressLike, delegateCall: boolean], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "prank(address,bool)" + ): TypedContractMethod< + [msgSender: AddressLike, delegateCall: boolean], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "prank(address)" + ): TypedContractMethod<[msgSender: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "prevrandao(bytes32)" + ): TypedContractMethod<[newPrevrandao: BytesLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "prevrandao(uint256)" + ): TypedContractMethod<[newPrevrandao: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "projectRoot" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "prompt" + ): TypedContractMethod<[promptText: string], [string], "nonpayable">; + getFunction( + nameOrSignature: "promptAddress" + ): TypedContractMethod<[promptText: string], [string], "nonpayable">; + getFunction( + nameOrSignature: "promptSecret" + ): TypedContractMethod<[promptText: string], [string], "nonpayable">; + getFunction( + nameOrSignature: "promptSecretUint" + ): TypedContractMethod<[promptText: string], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "promptUint" + ): TypedContractMethod<[promptText: string], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "publicKeyP256" + ): TypedContractMethod< + [privateKey: BigNumberish], + [[bigint, bigint] & { publicKeyX: bigint; publicKeyY: bigint }], + "view" + >; + getFunction( + nameOrSignature: "randomAddress" + ): TypedContractMethod<[], [string], "nonpayable">; + getFunction( + nameOrSignature: "randomBool" + ): TypedContractMethod<[], [boolean], "view">; + getFunction( + nameOrSignature: "randomBytes" + ): TypedContractMethod<[len: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "randomBytes4" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "randomBytes8" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "randomInt()" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "randomInt(uint256)" + ): TypedContractMethod<[bits: BigNumberish], [bigint], "view">; + getFunction( + nameOrSignature: "randomUint()" + ): TypedContractMethod<[], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "randomUint(uint256)" + ): TypedContractMethod<[bits: BigNumberish], [bigint], "view">; + getFunction( + nameOrSignature: "randomUint(uint256,uint256)" + ): TypedContractMethod< + [min: BigNumberish, max: BigNumberish], + [bigint], + "nonpayable" + >; + getFunction( + nameOrSignature: "readCallers" + ): TypedContractMethod< + [], + [ + [bigint, string, string] & { + callerMode: bigint; + msgSender: string; + txOrigin: string; + } + ], + "nonpayable" + >; + getFunction( + nameOrSignature: "readDir(string,uint64)" + ): TypedContractMethod< + [path: string, maxDepth: BigNumberish], + [VmSafe.DirEntryStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "readDir(string,uint64,bool)" + ): TypedContractMethod< + [path: string, maxDepth: BigNumberish, followLinks: boolean], + [VmSafe.DirEntryStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "readDir(string)" + ): TypedContractMethod< + [path: string], + [VmSafe.DirEntryStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "readFile" + ): TypedContractMethod<[path: string], [string], "view">; + getFunction( + nameOrSignature: "readFileBinary" + ): TypedContractMethod<[path: string], [string], "view">; + getFunction( + nameOrSignature: "readLine" + ): TypedContractMethod<[path: string], [string], "view">; + getFunction( + nameOrSignature: "readLink" + ): TypedContractMethod<[linkPath: string], [string], "view">; + getFunction( + nameOrSignature: "record" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "recordLogs" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "rememberKey" + ): TypedContractMethod<[privateKey: BigNumberish], [string], "nonpayable">; + getFunction( + nameOrSignature: "rememberKeys(string,string,uint32)" + ): TypedContractMethod< + [mnemonic: string, derivationPath: string, count: BigNumberish], + [string[]], + "nonpayable" + >; + getFunction( + nameOrSignature: "rememberKeys(string,string,string,uint32)" + ): TypedContractMethod< + [ + mnemonic: string, + derivationPath: string, + language: string, + count: BigNumberish + ], + [string[]], + "nonpayable" + >; + getFunction( + nameOrSignature: "removeDir" + ): TypedContractMethod< + [path: string, recursive: boolean], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "removeFile" + ): TypedContractMethod<[path: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "replace" + ): TypedContractMethod< + [input: string, from: string, to: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "resetGasMetering" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "resetNonce" + ): TypedContractMethod<[account: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "resumeGasMetering" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "resumeTracing" + ): TypedContractMethod<[], [void], "view">; + getFunction( + nameOrSignature: "revertTo" + ): TypedContractMethod<[snapshotId: BigNumberish], [boolean], "nonpayable">; + getFunction( + nameOrSignature: "revertToAndDelete" + ): TypedContractMethod<[snapshotId: BigNumberish], [boolean], "nonpayable">; + getFunction( + nameOrSignature: "revertToState" + ): TypedContractMethod<[snapshotId: BigNumberish], [boolean], "nonpayable">; + getFunction( + nameOrSignature: "revertToStateAndDelete" + ): TypedContractMethod<[snapshotId: BigNumberish], [boolean], "nonpayable">; + getFunction( + nameOrSignature: "revokePersistent(address[])" + ): TypedContractMethod<[accounts: AddressLike[]], [void], "nonpayable">; + getFunction( + nameOrSignature: "revokePersistent(address)" + ): TypedContractMethod<[account: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "roll" + ): TypedContractMethod<[newHeight: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "rollFork(bytes32)" + ): TypedContractMethod<[txHash: BytesLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "rollFork(uint256,uint256)" + ): TypedContractMethod< + [forkId: BigNumberish, blockNumber: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "rollFork(uint256)" + ): TypedContractMethod<[blockNumber: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "rollFork(uint256,bytes32)" + ): TypedContractMethod< + [forkId: BigNumberish, txHash: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "rpc(string,string,string)" + ): TypedContractMethod< + [urlOrAlias: string, method: string, params: string], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "rpc(string,string)" + ): TypedContractMethod< + [method: string, params: string], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "rpcUrl" + ): TypedContractMethod<[rpcAlias: string], [string], "view">; + getFunction( + nameOrSignature: "rpcUrlStructs" + ): TypedContractMethod<[], [VmSafe.RpcStructOutput[]], "view">; + getFunction( + nameOrSignature: "rpcUrls" + ): TypedContractMethod<[], [[string, string][]], "view">; + getFunction( + nameOrSignature: "selectFork" + ): TypedContractMethod<[forkId: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "serializeAddress(string,string,address[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: AddressLike[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeAddress(string,string,address)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: AddressLike], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeBool(string,string,bool[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: boolean[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeBool(string,string,bool)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: boolean], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeBytes(string,string,bytes[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: BytesLike[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeBytes(string,string,bytes)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: BytesLike], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeBytes32(string,string,bytes32[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: BytesLike[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeBytes32(string,string,bytes32)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: BytesLike], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeInt(string,string,int256)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: BigNumberish], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeInt(string,string,int256[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: BigNumberish[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeJson" + ): TypedContractMethod< + [objectKey: string, value: string], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeJsonType(string,bytes)" + ): TypedContractMethod< + [typeDescription: string, value: BytesLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "serializeJsonType(string,string,string,bytes)" + ): TypedContractMethod< + [ + objectKey: string, + valueKey: string, + typeDescription: string, + value: BytesLike + ], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeString(string,string,string[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: string[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeString(string,string,string)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: string], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeUint(string,string,uint256)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: BigNumberish], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeUint(string,string,uint256[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: BigNumberish[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeUintToHex" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: BigNumberish], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "setArbitraryStorage(address,bool)" + ): TypedContractMethod< + [target: AddressLike, overwrite: boolean], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setArbitraryStorage(address)" + ): TypedContractMethod<[target: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "setBlockhash" + ): TypedContractMethod< + [blockNumber: BigNumberish, blockHash: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setEnv" + ): TypedContractMethod<[name: string, value: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "setNonce" + ): TypedContractMethod< + [account: AddressLike, newNonce: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setNonceUnsafe" + ): TypedContractMethod< + [account: AddressLike, newNonce: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "shuffle" + ): TypedContractMethod<[array: BigNumberish[]], [bigint[]], "nonpayable">; + getFunction( + nameOrSignature: "sign(bytes32)" + ): TypedContractMethod< + [digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "view" + >; + getFunction( + nameOrSignature: "sign(address,bytes32)" + ): TypedContractMethod< + [signer: AddressLike, digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "view" + >; + getFunction( + nameOrSignature: "sign((address,uint256,uint256,uint256),bytes32)" + ): TypedContractMethod< + [wallet: VmSafe.WalletStruct, digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "nonpayable" + >; + getFunction( + nameOrSignature: "sign(uint256,bytes32)" + ): TypedContractMethod< + [privateKey: BigNumberish, digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "view" + >; + getFunction( + nameOrSignature: "signAndAttachDelegation(address,uint256)" + ): TypedContractMethod< + [implementation: AddressLike, privateKey: BigNumberish], + [VmSafe.SignedDelegationStructOutput], + "nonpayable" + >; + getFunction( + nameOrSignature: "signAndAttachDelegation(address,uint256,uint64)" + ): TypedContractMethod< + [ + implementation: AddressLike, + privateKey: BigNumberish, + nonce: BigNumberish + ], + [VmSafe.SignedDelegationStructOutput], + "nonpayable" + >; + getFunction( + nameOrSignature: "signCompact((address,uint256,uint256,uint256),bytes32)" + ): TypedContractMethod< + [wallet: VmSafe.WalletStruct, digest: BytesLike], + [[string, string] & { r: string; vs: string }], + "nonpayable" + >; + getFunction( + nameOrSignature: "signCompact(address,bytes32)" + ): TypedContractMethod< + [signer: AddressLike, digest: BytesLike], + [[string, string] & { r: string; vs: string }], + "view" + >; + getFunction( + nameOrSignature: "signCompact(bytes32)" + ): TypedContractMethod< + [digest: BytesLike], + [[string, string] & { r: string; vs: string }], + "view" + >; + getFunction( + nameOrSignature: "signCompact(uint256,bytes32)" + ): TypedContractMethod< + [privateKey: BigNumberish, digest: BytesLike], + [[string, string] & { r: string; vs: string }], + "view" + >; + getFunction( + nameOrSignature: "signDelegation(address,uint256)" + ): TypedContractMethod< + [implementation: AddressLike, privateKey: BigNumberish], + [VmSafe.SignedDelegationStructOutput], + "nonpayable" + >; + getFunction( + nameOrSignature: "signDelegation(address,uint256,uint64)" + ): TypedContractMethod< + [ + implementation: AddressLike, + privateKey: BigNumberish, + nonce: BigNumberish + ], + [VmSafe.SignedDelegationStructOutput], + "nonpayable" + >; + getFunction( + nameOrSignature: "signP256" + ): TypedContractMethod< + [privateKey: BigNumberish, digest: BytesLike], + [[string, string] & { r: string; s: string }], + "view" + >; + getFunction( + nameOrSignature: "skip(bool,string)" + ): TypedContractMethod< + [skipTest: boolean, reason: string], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "skip(bool)" + ): TypedContractMethod<[skipTest: boolean], [void], "nonpayable">; + getFunction( + nameOrSignature: "sleep" + ): TypedContractMethod<[duration: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "snapshot" + ): TypedContractMethod<[], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "snapshotGasLastCall(string,string)" + ): TypedContractMethod<[group: string, name: string], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "snapshotGasLastCall(string)" + ): TypedContractMethod<[name: string], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "snapshotState" + ): TypedContractMethod<[], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "snapshotValue(string,uint256)" + ): TypedContractMethod< + [name: string, value: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "snapshotValue(string,string,uint256)" + ): TypedContractMethod< + [group: string, name: string, value: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "sort" + ): TypedContractMethod<[array: BigNumberish[]], [bigint[]], "nonpayable">; + getFunction( + nameOrSignature: "split" + ): TypedContractMethod< + [input: string, delimiter: string], + [string[]], + "view" + >; + getFunction( + nameOrSignature: "startBroadcast()" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "startBroadcast(address)" + ): TypedContractMethod<[signer: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "startBroadcast(uint256)" + ): TypedContractMethod<[privateKey: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "startDebugTraceRecording" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "startMappingRecording" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "startPrank(address)" + ): TypedContractMethod<[msgSender: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "startPrank(address,bool)" + ): TypedContractMethod< + [msgSender: AddressLike, delegateCall: boolean], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "startPrank(address,address)" + ): TypedContractMethod< + [msgSender: AddressLike, txOrigin: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "startPrank(address,address,bool)" + ): TypedContractMethod< + [msgSender: AddressLike, txOrigin: AddressLike, delegateCall: boolean], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "startSnapshotGas(string)" + ): TypedContractMethod<[name: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "startSnapshotGas(string,string)" + ): TypedContractMethod<[group: string, name: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "startStateDiffRecording" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "stopAndReturnDebugTraceRecording" + ): TypedContractMethod<[], [VmSafe.DebugStepStructOutput[]], "nonpayable">; + getFunction( + nameOrSignature: "stopAndReturnStateDiff" + ): TypedContractMethod< + [], + [VmSafe.AccountAccessStructOutput[]], + "nonpayable" + >; + getFunction( + nameOrSignature: "stopBroadcast" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "stopExpectSafeMemory" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "stopMappingRecording" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "stopPrank" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "stopSnapshotGas(string,string)" + ): TypedContractMethod<[group: string, name: string], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "stopSnapshotGas(string)" + ): TypedContractMethod<[name: string], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "stopSnapshotGas()" + ): TypedContractMethod<[], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "store" + ): TypedContractMethod< + [target: AddressLike, slot: BytesLike, value: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "toBase64(string)" + ): TypedContractMethod<[data: string], [string], "view">; + getFunction( + nameOrSignature: "toBase64(bytes)" + ): TypedContractMethod<[data: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "toBase64URL(string)" + ): TypedContractMethod<[data: string], [string], "view">; + getFunction( + nameOrSignature: "toBase64URL(bytes)" + ): TypedContractMethod<[data: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "toLowercase" + ): TypedContractMethod<[input: string], [string], "view">; + getFunction( + nameOrSignature: "toString(address)" + ): TypedContractMethod<[value: AddressLike], [string], "view">; + getFunction( + nameOrSignature: "toString(uint256)" + ): TypedContractMethod<[value: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "toString(bytes)" + ): TypedContractMethod<[value: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "toString(bool)" + ): TypedContractMethod<[value: boolean], [string], "view">; + getFunction( + nameOrSignature: "toString(int256)" + ): TypedContractMethod<[value: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "toString(bytes32)" + ): TypedContractMethod<[value: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "toUppercase" + ): TypedContractMethod<[input: string], [string], "view">; + getFunction( + nameOrSignature: "transact(uint256,bytes32)" + ): TypedContractMethod< + [forkId: BigNumberish, txHash: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "transact(bytes32)" + ): TypedContractMethod<[txHash: BytesLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "trim" + ): TypedContractMethod<[input: string], [string], "view">; + getFunction( + nameOrSignature: "tryFfi" + ): TypedContractMethod< + [commandInput: string[]], + [VmSafe.FfiResultStructOutput], + "nonpayable" + >; + getFunction( + nameOrSignature: "txGasPrice" + ): TypedContractMethod<[newGasPrice: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "unixTime" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "warmSlot" + ): TypedContractMethod< + [target: AddressLike, slot: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "warp" + ): TypedContractMethod<[newTimestamp: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "writeFile" + ): TypedContractMethod<[path: string, data: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "writeFileBinary" + ): TypedContractMethod<[path: string, data: BytesLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "writeJson(string,string,string)" + ): TypedContractMethod< + [json: string, path: string, valueKey: string], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "writeJson(string,string)" + ): TypedContractMethod<[json: string, path: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "writeLine" + ): TypedContractMethod<[path: string, data: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "writeToml(string,string,string)" + ): TypedContractMethod< + [json: string, path: string, valueKey: string], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "writeToml(string,string)" + ): TypedContractMethod<[json: string, path: string], [void], "nonpayable">; + + filters: {}; +} diff --git a/typechain-types/forge-std/Vm.sol/VmSafe.ts b/typechain-types/forge-std/Vm.sol/VmSafe.ts new file mode 100644 index 00000000..1890e0a9 --- /dev/null +++ b/typechain-types/forge-std/Vm.sol/VmSafe.ts @@ -0,0 +1,7888 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../common"; + +export declare namespace VmSafe { + export type PotentialRevertStruct = { + reverter: AddressLike; + partialMatch: boolean; + revertData: BytesLike; + }; + + export type PotentialRevertStructOutput = [ + reverter: string, + partialMatch: boolean, + revertData: string + ] & { reverter: string; partialMatch: boolean; revertData: string }; + + export type SignedDelegationStruct = { + v: BigNumberish; + r: BytesLike; + s: BytesLike; + nonce: BigNumberish; + implementation: AddressLike; + }; + + export type SignedDelegationStructOutput = [ + v: bigint, + r: string, + s: string, + nonce: bigint, + implementation: string + ] & { + v: bigint; + r: string; + s: string; + nonce: bigint; + implementation: string; + }; + + export type WalletStruct = { + addr: AddressLike; + publicKeyX: BigNumberish; + publicKeyY: BigNumberish; + privateKey: BigNumberish; + }; + + export type WalletStructOutput = [ + addr: string, + publicKeyX: bigint, + publicKeyY: bigint, + privateKey: bigint + ] & { + addr: string; + publicKeyX: bigint; + publicKeyY: bigint; + privateKey: bigint; + }; + + export type EthGetLogsStruct = { + emitter: AddressLike; + topics: BytesLike[]; + data: BytesLike; + blockHash: BytesLike; + blockNumber: BigNumberish; + transactionHash: BytesLike; + transactionIndex: BigNumberish; + logIndex: BigNumberish; + removed: boolean; + }; + + export type EthGetLogsStructOutput = [ + emitter: string, + topics: string[], + data: string, + blockHash: string, + blockNumber: bigint, + transactionHash: string, + transactionIndex: bigint, + logIndex: bigint, + removed: boolean + ] & { + emitter: string; + topics: string[]; + data: string; + blockHash: string; + blockNumber: bigint; + transactionHash: string; + transactionIndex: bigint; + logIndex: bigint; + removed: boolean; + }; + + export type FsMetadataStruct = { + isDir: boolean; + isSymlink: boolean; + length: BigNumberish; + readOnly: boolean; + modified: BigNumberish; + accessed: BigNumberish; + created: BigNumberish; + }; + + export type FsMetadataStructOutput = [ + isDir: boolean, + isSymlink: boolean, + length: bigint, + readOnly: boolean, + modified: bigint, + accessed: bigint, + created: bigint + ] & { + isDir: boolean; + isSymlink: boolean; + length: bigint; + readOnly: boolean; + modified: bigint; + accessed: bigint; + created: bigint; + }; + + export type BroadcastTxSummaryStruct = { + txHash: BytesLike; + txType: BigNumberish; + contractAddress: AddressLike; + blockNumber: BigNumberish; + success: boolean; + }; + + export type BroadcastTxSummaryStructOutput = [ + txHash: string, + txType: bigint, + contractAddress: string, + blockNumber: bigint, + success: boolean + ] & { + txHash: string; + txType: bigint; + contractAddress: string; + blockNumber: bigint; + success: boolean; + }; + + export type ChainStruct = { + name: string; + chainId: BigNumberish; + chainAlias: string; + rpcUrl: string; + }; + + export type ChainStructOutput = [ + name: string, + chainId: bigint, + chainAlias: string, + rpcUrl: string + ] & { name: string; chainId: bigint; chainAlias: string; rpcUrl: string }; + + export type LogStruct = { + topics: BytesLike[]; + data: BytesLike; + emitter: AddressLike; + }; + + export type LogStructOutput = [ + topics: string[], + data: string, + emitter: string + ] & { topics: string[]; data: string; emitter: string }; + + export type GasStruct = { + gasLimit: BigNumberish; + gasTotalUsed: BigNumberish; + gasMemoryUsed: BigNumberish; + gasRefunded: BigNumberish; + gasRemaining: BigNumberish; + }; + + export type GasStructOutput = [ + gasLimit: bigint, + gasTotalUsed: bigint, + gasMemoryUsed: bigint, + gasRefunded: bigint, + gasRemaining: bigint + ] & { + gasLimit: bigint; + gasTotalUsed: bigint; + gasMemoryUsed: bigint; + gasRefunded: bigint; + gasRemaining: bigint; + }; + + export type DirEntryStruct = { + errorMessage: string; + path: string; + depth: BigNumberish; + isDir: boolean; + isSymlink: boolean; + }; + + export type DirEntryStructOutput = [ + errorMessage: string, + path: string, + depth: bigint, + isDir: boolean, + isSymlink: boolean + ] & { + errorMessage: string; + path: string; + depth: bigint; + isDir: boolean; + isSymlink: boolean; + }; + + export type RpcStruct = { key: string; url: string }; + + export type RpcStructOutput = [key: string, url: string] & { + key: string; + url: string; + }; + + export type DebugStepStruct = { + stack: BigNumberish[]; + memoryInput: BytesLike; + opcode: BigNumberish; + depth: BigNumberish; + isOutOfGas: boolean; + contractAddr: AddressLike; + }; + + export type DebugStepStructOutput = [ + stack: bigint[], + memoryInput: string, + opcode: bigint, + depth: bigint, + isOutOfGas: boolean, + contractAddr: string + ] & { + stack: bigint[]; + memoryInput: string; + opcode: bigint; + depth: bigint; + isOutOfGas: boolean; + contractAddr: string; + }; + + export type ChainInfoStruct = { forkId: BigNumberish; chainId: BigNumberish }; + + export type ChainInfoStructOutput = [forkId: bigint, chainId: bigint] & { + forkId: bigint; + chainId: bigint; + }; + + export type StorageAccessStruct = { + account: AddressLike; + slot: BytesLike; + isWrite: boolean; + previousValue: BytesLike; + newValue: BytesLike; + reverted: boolean; + }; + + export type StorageAccessStructOutput = [ + account: string, + slot: string, + isWrite: boolean, + previousValue: string, + newValue: string, + reverted: boolean + ] & { + account: string; + slot: string; + isWrite: boolean; + previousValue: string; + newValue: string; + reverted: boolean; + }; + + export type AccountAccessStruct = { + chainInfo: VmSafe.ChainInfoStruct; + kind: BigNumberish; + account: AddressLike; + accessor: AddressLike; + initialized: boolean; + oldBalance: BigNumberish; + newBalance: BigNumberish; + deployedCode: BytesLike; + value: BigNumberish; + data: BytesLike; + reverted: boolean; + storageAccesses: VmSafe.StorageAccessStruct[]; + depth: BigNumberish; + }; + + export type AccountAccessStructOutput = [ + chainInfo: VmSafe.ChainInfoStructOutput, + kind: bigint, + account: string, + accessor: string, + initialized: boolean, + oldBalance: bigint, + newBalance: bigint, + deployedCode: string, + value: bigint, + data: string, + reverted: boolean, + storageAccesses: VmSafe.StorageAccessStructOutput[], + depth: bigint + ] & { + chainInfo: VmSafe.ChainInfoStructOutput; + kind: bigint; + account: string; + accessor: string; + initialized: boolean; + oldBalance: bigint; + newBalance: bigint; + deployedCode: string; + value: bigint; + data: string; + reverted: boolean; + storageAccesses: VmSafe.StorageAccessStructOutput[]; + depth: bigint; + }; + + export type FfiResultStruct = { + exitCode: BigNumberish; + stdout: BytesLike; + stderr: BytesLike; + }; + + export type FfiResultStructOutput = [ + exitCode: bigint, + stdout: string, + stderr: string + ] & { exitCode: bigint; stdout: string; stderr: string }; +} + +export interface VmSafeInterface extends Interface { + getFunction( + nameOrSignature: + | "accesses" + | "addr" + | "assertApproxEqAbs(uint256,uint256,uint256)" + | "assertApproxEqAbs(int256,int256,uint256)" + | "assertApproxEqAbs(int256,int256,uint256,string)" + | "assertApproxEqAbs(uint256,uint256,uint256,string)" + | "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)" + | "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)" + | "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)" + | "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)" + | "assertApproxEqRel(uint256,uint256,uint256,string)" + | "assertApproxEqRel(uint256,uint256,uint256)" + | "assertApproxEqRel(int256,int256,uint256,string)" + | "assertApproxEqRel(int256,int256,uint256)" + | "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)" + | "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)" + | "assertApproxEqRelDecimal(int256,int256,uint256,uint256)" + | "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)" + | "assertEq(bytes32[],bytes32[])" + | "assertEq(int256[],int256[],string)" + | "assertEq(address,address,string)" + | "assertEq(string,string,string)" + | "assertEq(address[],address[])" + | "assertEq(address[],address[],string)" + | "assertEq(bool,bool,string)" + | "assertEq(address,address)" + | "assertEq(uint256[],uint256[],string)" + | "assertEq(bool[],bool[])" + | "assertEq(int256[],int256[])" + | "assertEq(int256,int256,string)" + | "assertEq(bytes32,bytes32)" + | "assertEq(uint256,uint256,string)" + | "assertEq(uint256[],uint256[])" + | "assertEq(bytes,bytes)" + | "assertEq(uint256,uint256)" + | "assertEq(bytes32,bytes32,string)" + | "assertEq(string[],string[])" + | "assertEq(bytes32[],bytes32[],string)" + | "assertEq(bytes,bytes,string)" + | "assertEq(bool[],bool[],string)" + | "assertEq(bytes[],bytes[])" + | "assertEq(string[],string[],string)" + | "assertEq(string,string)" + | "assertEq(bytes[],bytes[],string)" + | "assertEq(bool,bool)" + | "assertEq(int256,int256)" + | "assertEqDecimal(uint256,uint256,uint256)" + | "assertEqDecimal(int256,int256,uint256)" + | "assertEqDecimal(int256,int256,uint256,string)" + | "assertEqDecimal(uint256,uint256,uint256,string)" + | "assertFalse(bool,string)" + | "assertFalse(bool)" + | "assertGe(int256,int256)" + | "assertGe(int256,int256,string)" + | "assertGe(uint256,uint256)" + | "assertGe(uint256,uint256,string)" + | "assertGeDecimal(uint256,uint256,uint256)" + | "assertGeDecimal(int256,int256,uint256,string)" + | "assertGeDecimal(uint256,uint256,uint256,string)" + | "assertGeDecimal(int256,int256,uint256)" + | "assertGt(int256,int256)" + | "assertGt(uint256,uint256,string)" + | "assertGt(uint256,uint256)" + | "assertGt(int256,int256,string)" + | "assertGtDecimal(int256,int256,uint256,string)" + | "assertGtDecimal(uint256,uint256,uint256,string)" + | "assertGtDecimal(int256,int256,uint256)" + | "assertGtDecimal(uint256,uint256,uint256)" + | "assertLe(int256,int256,string)" + | "assertLe(uint256,uint256)" + | "assertLe(int256,int256)" + | "assertLe(uint256,uint256,string)" + | "assertLeDecimal(int256,int256,uint256)" + | "assertLeDecimal(uint256,uint256,uint256,string)" + | "assertLeDecimal(int256,int256,uint256,string)" + | "assertLeDecimal(uint256,uint256,uint256)" + | "assertLt(int256,int256)" + | "assertLt(uint256,uint256,string)" + | "assertLt(int256,int256,string)" + | "assertLt(uint256,uint256)" + | "assertLtDecimal(uint256,uint256,uint256)" + | "assertLtDecimal(int256,int256,uint256,string)" + | "assertLtDecimal(uint256,uint256,uint256,string)" + | "assertLtDecimal(int256,int256,uint256)" + | "assertNotEq(bytes32[],bytes32[])" + | "assertNotEq(int256[],int256[])" + | "assertNotEq(bool,bool,string)" + | "assertNotEq(bytes[],bytes[],string)" + | "assertNotEq(bool,bool)" + | "assertNotEq(bool[],bool[])" + | "assertNotEq(bytes,bytes)" + | "assertNotEq(address[],address[])" + | "assertNotEq(int256,int256,string)" + | "assertNotEq(uint256[],uint256[])" + | "assertNotEq(bool[],bool[],string)" + | "assertNotEq(string,string)" + | "assertNotEq(address[],address[],string)" + | "assertNotEq(string,string,string)" + | "assertNotEq(address,address,string)" + | "assertNotEq(bytes32,bytes32)" + | "assertNotEq(bytes,bytes,string)" + | "assertNotEq(uint256,uint256,string)" + | "assertNotEq(uint256[],uint256[],string)" + | "assertNotEq(address,address)" + | "assertNotEq(bytes32,bytes32,string)" + | "assertNotEq(string[],string[],string)" + | "assertNotEq(uint256,uint256)" + | "assertNotEq(bytes32[],bytes32[],string)" + | "assertNotEq(string[],string[])" + | "assertNotEq(int256[],int256[],string)" + | "assertNotEq(bytes[],bytes[])" + | "assertNotEq(int256,int256)" + | "assertNotEqDecimal(int256,int256,uint256)" + | "assertNotEqDecimal(int256,int256,uint256,string)" + | "assertNotEqDecimal(uint256,uint256,uint256)" + | "assertNotEqDecimal(uint256,uint256,uint256,string)" + | "assertTrue(bool)" + | "assertTrue(bool,string)" + | "assume" + | "assumeNoRevert()" + | "assumeNoRevert((address,bool,bytes)[])" + | "assumeNoRevert((address,bool,bytes))" + | "attachBlob" + | "attachDelegation" + | "breakpoint(string)" + | "breakpoint(string,bool)" + | "broadcast()" + | "broadcast(address)" + | "broadcast(uint256)" + | "broadcastRawTransaction" + | "closeFile" + | "computeCreate2Address(bytes32,bytes32)" + | "computeCreate2Address(bytes32,bytes32,address)" + | "computeCreateAddress" + | "contains" + | "copyFile" + | "copyStorage" + | "createDir" + | "createWallet(string)" + | "createWallet(uint256)" + | "createWallet(uint256,string)" + | "deployCode(string,uint256,bytes32)" + | "deployCode(string,bytes,bytes32)" + | "deployCode(string,uint256)" + | "deployCode(string,bytes32)" + | "deployCode(string,bytes)" + | "deployCode(string,bytes,uint256,bytes32)" + | "deployCode(string)" + | "deployCode(string,bytes,uint256)" + | "deriveKey(string,string,uint32,string)" + | "deriveKey(string,uint32,string)" + | "deriveKey(string,uint32)" + | "deriveKey(string,string,uint32)" + | "ensNamehash" + | "envAddress(string)" + | "envAddress(string,string)" + | "envBool(string)" + | "envBool(string,string)" + | "envBytes(string)" + | "envBytes(string,string)" + | "envBytes32(string,string)" + | "envBytes32(string)" + | "envExists" + | "envInt(string,string)" + | "envInt(string)" + | "envOr(string,string,bytes32[])" + | "envOr(string,string,int256[])" + | "envOr(string,bool)" + | "envOr(string,address)" + | "envOr(string,uint256)" + | "envOr(string,string,bytes[])" + | "envOr(string,string,uint256[])" + | "envOr(string,string,string[])" + | "envOr(string,bytes)" + | "envOr(string,bytes32)" + | "envOr(string,int256)" + | "envOr(string,string,address[])" + | "envOr(string,string)" + | "envOr(string,string,bool[])" + | "envString(string,string)" + | "envString(string)" + | "envUint(string)" + | "envUint(string,string)" + | "eth_getLogs" + | "exists" + | "ffi" + | "foundryVersionAtLeast" + | "foundryVersionCmp" + | "fsMetadata" + | "getArtifactPathByCode" + | "getArtifactPathByDeployedCode" + | "getBlobBaseFee" + | "getBlockNumber" + | "getBlockTimestamp" + | "getBroadcast" + | "getBroadcasts(string,uint64)" + | "getBroadcasts(string,uint64,uint8)" + | "getChain(string)" + | "getChain(uint256)" + | "getCode" + | "getDeployedCode" + | "getDeployment(string,uint64)" + | "getDeployment(string)" + | "getDeployments" + | "getFoundryVersion" + | "getLabel" + | "getMappingKeyAndParentOf" + | "getMappingLength" + | "getMappingSlotAt" + | "getNonce(address)" + | "getNonce((address,uint256,uint256,uint256))" + | "getRecordedLogs" + | "getStateDiff" + | "getStateDiffJson" + | "getWallets" + | "indexOf" + | "isContext" + | "isDir" + | "isFile" + | "keyExists" + | "keyExistsJson" + | "keyExistsToml" + | "label" + | "lastCallGas" + | "load" + | "parseAddress" + | "parseBool" + | "parseBytes" + | "parseBytes32" + | "parseInt" + | "parseJson(string)" + | "parseJson(string,string)" + | "parseJsonAddress" + | "parseJsonAddressArray" + | "parseJsonBool" + | "parseJsonBoolArray" + | "parseJsonBytes" + | "parseJsonBytes32" + | "parseJsonBytes32Array" + | "parseJsonBytesArray" + | "parseJsonInt" + | "parseJsonIntArray" + | "parseJsonKeys" + | "parseJsonString" + | "parseJsonStringArray" + | "parseJsonType(string,string)" + | "parseJsonType(string,string,string)" + | "parseJsonTypeArray" + | "parseJsonUint" + | "parseJsonUintArray" + | "parseToml(string,string)" + | "parseToml(string)" + | "parseTomlAddress" + | "parseTomlAddressArray" + | "parseTomlBool" + | "parseTomlBoolArray" + | "parseTomlBytes" + | "parseTomlBytes32" + | "parseTomlBytes32Array" + | "parseTomlBytesArray" + | "parseTomlInt" + | "parseTomlIntArray" + | "parseTomlKeys" + | "parseTomlString" + | "parseTomlStringArray" + | "parseTomlType(string,string)" + | "parseTomlType(string,string,string)" + | "parseTomlTypeArray" + | "parseTomlUint" + | "parseTomlUintArray" + | "parseUint" + | "pauseGasMetering" + | "pauseTracing" + | "projectRoot" + | "prompt" + | "promptAddress" + | "promptSecret" + | "promptSecretUint" + | "promptUint" + | "publicKeyP256" + | "randomAddress" + | "randomBool" + | "randomBytes" + | "randomBytes4" + | "randomBytes8" + | "randomInt()" + | "randomInt(uint256)" + | "randomUint()" + | "randomUint(uint256)" + | "randomUint(uint256,uint256)" + | "readDir(string,uint64)" + | "readDir(string,uint64,bool)" + | "readDir(string)" + | "readFile" + | "readFileBinary" + | "readLine" + | "readLink" + | "record" + | "recordLogs" + | "rememberKey" + | "rememberKeys(string,string,uint32)" + | "rememberKeys(string,string,string,uint32)" + | "removeDir" + | "removeFile" + | "replace" + | "resetGasMetering" + | "resumeGasMetering" + | "resumeTracing" + | "rpc(string,string,string)" + | "rpc(string,string)" + | "rpcUrl" + | "rpcUrlStructs" + | "rpcUrls" + | "serializeAddress(string,string,address[])" + | "serializeAddress(string,string,address)" + | "serializeBool(string,string,bool[])" + | "serializeBool(string,string,bool)" + | "serializeBytes(string,string,bytes[])" + | "serializeBytes(string,string,bytes)" + | "serializeBytes32(string,string,bytes32[])" + | "serializeBytes32(string,string,bytes32)" + | "serializeInt(string,string,int256)" + | "serializeInt(string,string,int256[])" + | "serializeJson" + | "serializeJsonType(string,bytes)" + | "serializeJsonType(string,string,string,bytes)" + | "serializeString(string,string,string[])" + | "serializeString(string,string,string)" + | "serializeUint(string,string,uint256)" + | "serializeUint(string,string,uint256[])" + | "serializeUintToHex" + | "setArbitraryStorage(address,bool)" + | "setArbitraryStorage(address)" + | "setEnv" + | "shuffle" + | "sign(bytes32)" + | "sign(address,bytes32)" + | "sign((address,uint256,uint256,uint256),bytes32)" + | "sign(uint256,bytes32)" + | "signAndAttachDelegation(address,uint256)" + | "signAndAttachDelegation(address,uint256,uint64)" + | "signCompact((address,uint256,uint256,uint256),bytes32)" + | "signCompact(address,bytes32)" + | "signCompact(bytes32)" + | "signCompact(uint256,bytes32)" + | "signDelegation(address,uint256)" + | "signDelegation(address,uint256,uint64)" + | "signP256" + | "sleep" + | "sort" + | "split" + | "startBroadcast()" + | "startBroadcast(address)" + | "startBroadcast(uint256)" + | "startDebugTraceRecording" + | "startMappingRecording" + | "startStateDiffRecording" + | "stopAndReturnDebugTraceRecording" + | "stopAndReturnStateDiff" + | "stopBroadcast" + | "stopMappingRecording" + | "toBase64(string)" + | "toBase64(bytes)" + | "toBase64URL(string)" + | "toBase64URL(bytes)" + | "toLowercase" + | "toString(address)" + | "toString(uint256)" + | "toString(bytes)" + | "toString(bool)" + | "toString(int256)" + | "toString(bytes32)" + | "toUppercase" + | "trim" + | "tryFfi" + | "unixTime" + | "writeFile" + | "writeFileBinary" + | "writeJson(string,string,string)" + | "writeJson(string,string)" + | "writeLine" + | "writeToml(string,string,string)" + | "writeToml(string,string)" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "accesses", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "addr", values: [BigNumberish]): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbs(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbs(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbs(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbs(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRel(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRel(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRel(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRel(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRelDecimal(int256,int256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes32[],bytes32[])", + values: [BytesLike[], BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(int256[],int256[],string)", + values: [BigNumberish[], BigNumberish[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(address,address,string)", + values: [AddressLike, AddressLike, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(address[],address[])", + values: [AddressLike[], AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(address[],address[],string)", + values: [AddressLike[], AddressLike[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bool,bool,string)", + values: [boolean, boolean, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(address,address)", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "assertEq(uint256[],uint256[],string)", + values: [BigNumberish[], BigNumberish[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bool[],bool[])", + values: [boolean[], boolean[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(int256[],int256[])", + values: [BigNumberish[], BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(int256,int256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes32,bytes32)", + values: [BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "assertEq(uint256,uint256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(uint256[],uint256[])", + values: [BigNumberish[], BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes,bytes)", + values: [BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "assertEq(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes32,bytes32,string)", + values: [BytesLike, BytesLike, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(string[],string[])", + values: [string[], string[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes32[],bytes32[],string)", + values: [BytesLike[], BytesLike[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes,bytes,string)", + values: [BytesLike, BytesLike, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bool[],bool[],string)", + values: [boolean[], boolean[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes[],bytes[])", + values: [BytesLike[], BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(string[],string[],string)", + values: [string[], string[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes[],bytes[],string)", + values: [BytesLike[], BytesLike[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bool,bool)", + values: [boolean, boolean] + ): string; + encodeFunctionData( + functionFragment: "assertEq(int256,int256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertEqDecimal(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertEqDecimal(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertEqDecimal(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertEqDecimal(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertFalse(bool,string)", + values: [boolean, string] + ): string; + encodeFunctionData( + functionFragment: "assertFalse(bool)", + values: [boolean] + ): string; + encodeFunctionData( + functionFragment: "assertGe(int256,int256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGe(int256,int256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGe(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGe(uint256,uint256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGeDecimal(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGeDecimal(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGeDecimal(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGeDecimal(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGt(int256,int256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGt(uint256,uint256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGt(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGt(int256,int256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGtDecimal(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGtDecimal(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGtDecimal(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGtDecimal(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLe(int256,int256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLe(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLe(int256,int256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLe(uint256,uint256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLeDecimal(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLeDecimal(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLeDecimal(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLeDecimal(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLt(int256,int256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLt(uint256,uint256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLt(int256,int256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLt(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLtDecimal(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLtDecimal(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLtDecimal(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLtDecimal(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes32[],bytes32[])", + values: [BytesLike[], BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(int256[],int256[])", + values: [BigNumberish[], BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bool,bool,string)", + values: [boolean, boolean, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes[],bytes[],string)", + values: [BytesLike[], BytesLike[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bool,bool)", + values: [boolean, boolean] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bool[],bool[])", + values: [boolean[], boolean[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes,bytes)", + values: [BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(address[],address[])", + values: [AddressLike[], AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(int256,int256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(uint256[],uint256[])", + values: [BigNumberish[], BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bool[],bool[],string)", + values: [boolean[], boolean[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(address[],address[],string)", + values: [AddressLike[], AddressLike[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(address,address,string)", + values: [AddressLike, AddressLike, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes32,bytes32)", + values: [BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes,bytes,string)", + values: [BytesLike, BytesLike, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(uint256,uint256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(uint256[],uint256[],string)", + values: [BigNumberish[], BigNumberish[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(address,address)", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes32,bytes32,string)", + values: [BytesLike, BytesLike, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(string[],string[],string)", + values: [string[], string[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes32[],bytes32[],string)", + values: [BytesLike[], BytesLike[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(string[],string[])", + values: [string[], string[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(int256[],int256[],string)", + values: [BigNumberish[], BigNumberish[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes[],bytes[])", + values: [BytesLike[], BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(int256,int256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertNotEqDecimal(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertNotEqDecimal(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEqDecimal(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertNotEqDecimal(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertTrue(bool)", + values: [boolean] + ): string; + encodeFunctionData( + functionFragment: "assertTrue(bool,string)", + values: [boolean, string] + ): string; + encodeFunctionData(functionFragment: "assume", values: [boolean]): string; + encodeFunctionData( + functionFragment: "assumeNoRevert()", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "assumeNoRevert((address,bool,bytes)[])", + values: [VmSafe.PotentialRevertStruct[]] + ): string; + encodeFunctionData( + functionFragment: "assumeNoRevert((address,bool,bytes))", + values: [VmSafe.PotentialRevertStruct] + ): string; + encodeFunctionData( + functionFragment: "attachBlob", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "attachDelegation", + values: [VmSafe.SignedDelegationStruct] + ): string; + encodeFunctionData( + functionFragment: "breakpoint(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "breakpoint(string,bool)", + values: [string, boolean] + ): string; + encodeFunctionData( + functionFragment: "broadcast()", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "broadcast(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "broadcast(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "broadcastRawTransaction", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "closeFile", values: [string]): string; + encodeFunctionData( + functionFragment: "computeCreate2Address(bytes32,bytes32)", + values: [BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "computeCreate2Address(bytes32,bytes32,address)", + values: [BytesLike, BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "computeCreateAddress", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "contains", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "copyFile", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "copyStorage", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "createDir", + values: [string, boolean] + ): string; + encodeFunctionData( + functionFragment: "createWallet(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "createWallet(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "createWallet(uint256,string)", + values: [BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "deployCode(string,uint256,bytes32)", + values: [string, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "deployCode(string,bytes,bytes32)", + values: [string, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "deployCode(string,uint256)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "deployCode(string,bytes32)", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "deployCode(string,bytes)", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "deployCode(string,bytes,uint256,bytes32)", + values: [string, BytesLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "deployCode(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "deployCode(string,bytes,uint256)", + values: [string, BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "deriveKey(string,string,uint32,string)", + values: [string, string, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "deriveKey(string,uint32,string)", + values: [string, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "deriveKey(string,uint32)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "deriveKey(string,string,uint32)", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "ensNamehash", values: [string]): string; + encodeFunctionData( + functionFragment: "envAddress(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "envAddress(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envBool(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "envBool(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envBytes(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "envBytes(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envBytes32(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envBytes32(string)", + values: [string] + ): string; + encodeFunctionData(functionFragment: "envExists", values: [string]): string; + encodeFunctionData( + functionFragment: "envInt(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envInt(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,bytes32[])", + values: [string, string, BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,int256[])", + values: [string, string, BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,bool)", + values: [string, boolean] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,address)", + values: [string, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,uint256)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,bytes[])", + values: [string, string, BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,uint256[])", + values: [string, string, BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,string[])", + values: [string, string, string[]] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,bytes)", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,bytes32)", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,int256)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,address[])", + values: [string, string, AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,bool[])", + values: [string, string, boolean[]] + ): string; + encodeFunctionData( + functionFragment: "envString(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envString(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "envUint(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "envUint(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "eth_getLogs", + values: [BigNumberish, BigNumberish, AddressLike, BytesLike[]] + ): string; + encodeFunctionData(functionFragment: "exists", values: [string]): string; + encodeFunctionData(functionFragment: "ffi", values: [string[]]): string; + encodeFunctionData( + functionFragment: "foundryVersionAtLeast", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "foundryVersionCmp", + values: [string] + ): string; + encodeFunctionData(functionFragment: "fsMetadata", values: [string]): string; + encodeFunctionData( + functionFragment: "getArtifactPathByCode", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "getArtifactPathByDeployedCode", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "getBlobBaseFee", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getBlockNumber", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getBlockTimestamp", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getBroadcast", + values: [string, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getBroadcasts(string,uint64)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getBroadcasts(string,uint64,uint8)", + values: [string, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getChain(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "getChain(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData(functionFragment: "getCode", values: [string]): string; + encodeFunctionData( + functionFragment: "getDeployedCode", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "getDeployment(string,uint64)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getDeployment(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "getDeployments", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getFoundryVersion", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getLabel", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "getMappingKeyAndParentOf", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "getMappingLength", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "getMappingSlotAt", + values: [AddressLike, BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getNonce(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "getNonce((address,uint256,uint256,uint256))", + values: [VmSafe.WalletStruct] + ): string; + encodeFunctionData( + functionFragment: "getRecordedLogs", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getStateDiff", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getStateDiffJson", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getWallets", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "indexOf", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "isContext", + values: [BigNumberish] + ): string; + encodeFunctionData(functionFragment: "isDir", values: [string]): string; + encodeFunctionData(functionFragment: "isFile", values: [string]): string; + encodeFunctionData( + functionFragment: "keyExists", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "keyExistsJson", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "keyExistsToml", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "label", + values: [AddressLike, string] + ): string; + encodeFunctionData( + functionFragment: "lastCallGas", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "load", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "parseAddress", + values: [string] + ): string; + encodeFunctionData(functionFragment: "parseBool", values: [string]): string; + encodeFunctionData(functionFragment: "parseBytes", values: [string]): string; + encodeFunctionData( + functionFragment: "parseBytes32", + values: [string] + ): string; + encodeFunctionData(functionFragment: "parseInt", values: [string]): string; + encodeFunctionData( + functionFragment: "parseJson(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "parseJson(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonAddress", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonAddressArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonBool", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonBoolArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonBytes", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonBytes32", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonBytes32Array", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonBytesArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonInt", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonIntArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonKeys", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonString", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonStringArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonType(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonType(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonTypeArray", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonUint", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonUintArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseToml(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseToml(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlAddress", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlAddressArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlBool", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlBoolArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlBytes", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlBytes32", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlBytes32Array", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlBytesArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlInt", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlIntArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlKeys", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlString", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlStringArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlType(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlType(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlTypeArray", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlUint", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlUintArray", + values: [string, string] + ): string; + encodeFunctionData(functionFragment: "parseUint", values: [string]): string; + encodeFunctionData( + functionFragment: "pauseGasMetering", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "pauseTracing", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "projectRoot", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "prompt", values: [string]): string; + encodeFunctionData( + functionFragment: "promptAddress", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "promptSecret", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "promptSecretUint", + values: [string] + ): string; + encodeFunctionData(functionFragment: "promptUint", values: [string]): string; + encodeFunctionData( + functionFragment: "publicKeyP256", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "randomAddress", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "randomBool", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "randomBytes", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "randomBytes4", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "randomBytes8", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "randomInt()", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "randomInt(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "randomUint()", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "randomUint(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "randomUint(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "readDir(string,uint64)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "readDir(string,uint64,bool)", + values: [string, BigNumberish, boolean] + ): string; + encodeFunctionData( + functionFragment: "readDir(string)", + values: [string] + ): string; + encodeFunctionData(functionFragment: "readFile", values: [string]): string; + encodeFunctionData( + functionFragment: "readFileBinary", + values: [string] + ): string; + encodeFunctionData(functionFragment: "readLine", values: [string]): string; + encodeFunctionData(functionFragment: "readLink", values: [string]): string; + encodeFunctionData(functionFragment: "record", values?: undefined): string; + encodeFunctionData( + functionFragment: "recordLogs", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "rememberKey", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "rememberKeys(string,string,uint32)", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "rememberKeys(string,string,string,uint32)", + values: [string, string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "removeDir", + values: [string, boolean] + ): string; + encodeFunctionData(functionFragment: "removeFile", values: [string]): string; + encodeFunctionData( + functionFragment: "replace", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "resetGasMetering", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "resumeGasMetering", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "resumeTracing", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "rpc(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "rpc(string,string)", + values: [string, string] + ): string; + encodeFunctionData(functionFragment: "rpcUrl", values: [string]): string; + encodeFunctionData( + functionFragment: "rpcUrlStructs", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "rpcUrls", values?: undefined): string; + encodeFunctionData( + functionFragment: "serializeAddress(string,string,address[])", + values: [string, string, AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "serializeAddress(string,string,address)", + values: [string, string, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "serializeBool(string,string,bool[])", + values: [string, string, boolean[]] + ): string; + encodeFunctionData( + functionFragment: "serializeBool(string,string,bool)", + values: [string, string, boolean] + ): string; + encodeFunctionData( + functionFragment: "serializeBytes(string,string,bytes[])", + values: [string, string, BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "serializeBytes(string,string,bytes)", + values: [string, string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "serializeBytes32(string,string,bytes32[])", + values: [string, string, BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "serializeBytes32(string,string,bytes32)", + values: [string, string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "serializeInt(string,string,int256)", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "serializeInt(string,string,int256[])", + values: [string, string, BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "serializeJson", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "serializeJsonType(string,bytes)", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "serializeJsonType(string,string,string,bytes)", + values: [string, string, string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "serializeString(string,string,string[])", + values: [string, string, string[]] + ): string; + encodeFunctionData( + functionFragment: "serializeString(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "serializeUint(string,string,uint256)", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "serializeUint(string,string,uint256[])", + values: [string, string, BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "serializeUintToHex", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "setArbitraryStorage(address,bool)", + values: [AddressLike, boolean] + ): string; + encodeFunctionData( + functionFragment: "setArbitraryStorage(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setEnv", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "shuffle", + values: [BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "sign(bytes32)", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "sign(address,bytes32)", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "sign((address,uint256,uint256,uint256),bytes32)", + values: [VmSafe.WalletStruct, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "sign(uint256,bytes32)", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "signAndAttachDelegation(address,uint256)", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "signAndAttachDelegation(address,uint256,uint64)", + values: [AddressLike, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "signCompact((address,uint256,uint256,uint256),bytes32)", + values: [VmSafe.WalletStruct, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "signCompact(address,bytes32)", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "signCompact(bytes32)", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "signCompact(uint256,bytes32)", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "signDelegation(address,uint256)", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "signDelegation(address,uint256,uint64)", + values: [AddressLike, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "signP256", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData(functionFragment: "sleep", values: [BigNumberish]): string; + encodeFunctionData( + functionFragment: "sort", + values: [BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "split", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "startBroadcast()", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "startBroadcast(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "startBroadcast(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "startDebugTraceRecording", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "startMappingRecording", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "startStateDiffRecording", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "stopAndReturnDebugTraceRecording", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "stopAndReturnStateDiff", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "stopBroadcast", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "stopMappingRecording", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "toBase64(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "toBase64(bytes)", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "toBase64URL(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "toBase64URL(bytes)", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "toLowercase", values: [string]): string; + encodeFunctionData( + functionFragment: "toString(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "toString(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "toString(bytes)", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "toString(bool)", + values: [boolean] + ): string; + encodeFunctionData( + functionFragment: "toString(int256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "toString(bytes32)", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "toUppercase", values: [string]): string; + encodeFunctionData(functionFragment: "trim", values: [string]): string; + encodeFunctionData(functionFragment: "tryFfi", values: [string[]]): string; + encodeFunctionData(functionFragment: "unixTime", values?: undefined): string; + encodeFunctionData( + functionFragment: "writeFile", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "writeFileBinary", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "writeJson(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "writeJson(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "writeLine", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "writeToml(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "writeToml(string,string)", + values: [string, string] + ): string; + + decodeFunctionResult(functionFragment: "accesses", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "addr", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbs(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbs(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbs(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbs(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRel(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRel(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRel(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRel(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRelDecimal(int256,int256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes32[],bytes32[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(int256[],int256[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(address,address,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(address[],address[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(address[],address[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bool,bool,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(address,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(uint256[],uint256[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bool[],bool[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(int256[],int256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(int256,int256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes32,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(uint256[],uint256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes32,bytes32,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(string[],string[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes32[],bytes32[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes,bytes,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bool[],bool[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes[],bytes[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(string[],string[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes[],bytes[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bool,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(int256,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEqDecimal(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEqDecimal(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEqDecimal(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEqDecimal(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertFalse(bool,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertFalse(bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGe(int256,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGe(int256,int256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGe(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGe(uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGeDecimal(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGeDecimal(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGeDecimal(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGeDecimal(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGt(int256,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGt(uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGt(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGt(int256,int256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGtDecimal(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGtDecimal(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGtDecimal(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGtDecimal(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLe(int256,int256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLe(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLe(int256,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLe(uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLeDecimal(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLeDecimal(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLeDecimal(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLeDecimal(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLt(int256,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLt(uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLt(int256,int256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLt(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLtDecimal(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLtDecimal(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLtDecimal(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLtDecimal(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes32[],bytes32[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(int256[],int256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bool,bool,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes[],bytes[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bool,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bool[],bool[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(address[],address[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(int256,int256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(uint256[],uint256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bool[],bool[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(address[],address[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(address,address,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes32,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes,bytes,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(uint256[],uint256[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(address,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes32,bytes32,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(string[],string[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes32[],bytes32[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(string[],string[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(int256[],int256[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes[],bytes[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(int256,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEqDecimal(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEqDecimal(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEqDecimal(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEqDecimal(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertTrue(bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertTrue(bool,string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "assume", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "assumeNoRevert()", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assumeNoRevert((address,bool,bytes)[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assumeNoRevert((address,bool,bytes))", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "attachBlob", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "attachDelegation", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "breakpoint(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "breakpoint(string,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "broadcast()", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "broadcast(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "broadcast(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "broadcastRawTransaction", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "closeFile", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "computeCreate2Address(bytes32,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "computeCreate2Address(bytes32,bytes32,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "computeCreateAddress", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "contains", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "copyFile", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "copyStorage", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "createDir", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "createWallet(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "createWallet(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "createWallet(uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deployCode(string,uint256,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deployCode(string,bytes,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deployCode(string,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deployCode(string,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deployCode(string,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deployCode(string,bytes,uint256,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deployCode(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deployCode(string,bytes,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deriveKey(string,string,uint32,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deriveKey(string,uint32,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deriveKey(string,uint32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deriveKey(string,string,uint32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "ensNamehash", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envAddress(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envAddress(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envBool(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envBool(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envBytes(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envBytes(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envBytes32(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envBytes32(string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "envExists", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "envInt(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envInt(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,bytes32[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,int256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,bytes[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,uint256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,string[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,address[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,bool[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envString(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envString(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envUint(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envUint(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "eth_getLogs", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "exists", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "ffi", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "foundryVersionAtLeast", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "foundryVersionCmp", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "fsMetadata", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getArtifactPathByCode", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getArtifactPathByDeployedCode", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getBlobBaseFee", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getBlockNumber", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getBlockTimestamp", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getBroadcast", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getBroadcasts(string,uint64)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getBroadcasts(string,uint64,uint8)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getChain(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getChain(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "getCode", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getDeployedCode", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getDeployment(string,uint64)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getDeployment(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getDeployments", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getFoundryVersion", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "getLabel", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getMappingKeyAndParentOf", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getMappingLength", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getMappingSlotAt", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getNonce(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getNonce((address,uint256,uint256,uint256))", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getRecordedLogs", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getStateDiff", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getStateDiffJson", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "getWallets", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "indexOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "isContext", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "isDir", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "isFile", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "keyExists", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "keyExistsJson", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "keyExistsToml", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "label", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "lastCallGas", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "load", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "parseAddress", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "parseBool", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "parseBytes", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "parseBytes32", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "parseInt", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "parseJson(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJson(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonAddressArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonBool", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonBoolArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonBytes", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonBytes32", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonBytes32Array", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonBytesArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonInt", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonIntArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonKeys", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonString", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonStringArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonType(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonType(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonTypeArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonUint", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonUintArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseToml(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseToml(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlAddressArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlBool", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlBoolArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlBytes", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlBytes32", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlBytes32Array", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlBytesArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlInt", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlIntArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlKeys", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlString", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlStringArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlType(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlType(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlTypeArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlUint", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlUintArray", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "parseUint", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "pauseGasMetering", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "pauseTracing", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "projectRoot", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "prompt", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "promptAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "promptSecret", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "promptSecretUint", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "promptUint", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "publicKeyP256", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "randomAddress", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "randomBool", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "randomBytes", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "randomBytes4", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "randomBytes8", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "randomInt()", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "randomInt(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "randomUint()", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "randomUint(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "randomUint(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "readDir(string,uint64)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "readDir(string,uint64,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "readDir(string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "readFile", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "readFileBinary", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "readLine", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "readLink", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "record", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "recordLogs", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "rememberKey", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "rememberKeys(string,string,uint32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "rememberKeys(string,string,string,uint32)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "removeDir", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "removeFile", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "replace", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "resetGasMetering", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "resumeGasMetering", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "resumeTracing", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "rpc(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "rpc(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "rpcUrl", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "rpcUrlStructs", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "rpcUrls", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "serializeAddress(string,string,address[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeAddress(string,string,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeBool(string,string,bool[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeBool(string,string,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeBytes(string,string,bytes[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeBytes(string,string,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeBytes32(string,string,bytes32[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeBytes32(string,string,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeInt(string,string,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeInt(string,string,int256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeJson", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeJsonType(string,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeJsonType(string,string,string,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeString(string,string,string[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeString(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeUint(string,string,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeUint(string,string,uint256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeUintToHex", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setArbitraryStorage(address,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setArbitraryStorage(address)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "setEnv", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "shuffle", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "sign(bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "sign(address,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "sign((address,uint256,uint256,uint256),bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "sign(uint256,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "signAndAttachDelegation(address,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "signAndAttachDelegation(address,uint256,uint64)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "signCompact((address,uint256,uint256,uint256),bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "signCompact(address,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "signCompact(bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "signCompact(uint256,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "signDelegation(address,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "signDelegation(address,uint256,uint64)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "signP256", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "sleep", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "sort", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "split", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "startBroadcast()", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "startBroadcast(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "startBroadcast(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "startDebugTraceRecording", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "startMappingRecording", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "startStateDiffRecording", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "stopAndReturnDebugTraceRecording", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "stopAndReturnStateDiff", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "stopBroadcast", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "stopMappingRecording", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toBase64(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toBase64(bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toBase64URL(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toBase64URL(bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toLowercase", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toString(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toString(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toString(bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toString(bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toString(int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toString(bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toUppercase", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "trim", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "tryFfi", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "unixTime", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "writeFile", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "writeFileBinary", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "writeJson(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "writeJson(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "writeLine", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "writeToml(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "writeToml(string,string)", + data: BytesLike + ): Result; +} + +export interface VmSafe extends BaseContract { + connect(runner?: ContractRunner | null): VmSafe; + waitForDeployment(): Promise; + + interface: VmSafeInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + accesses: TypedContractMethod< + [target: AddressLike], + [[string[], string[]] & { readSlots: string[]; writeSlots: string[] }], + "nonpayable" + >; + + addr: TypedContractMethod<[privateKey: BigNumberish], [string], "view">; + + "assertApproxEqAbs(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxDelta: BigNumberish], + [void], + "view" + >; + + "assertApproxEqAbs(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxDelta: BigNumberish], + [void], + "view" + >; + + "assertApproxEqAbs(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqAbs(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + + "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + + "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqRel(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqRel(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxPercentDelta: BigNumberish], + [void], + "view" + >; + + "assertApproxEqRel(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqRel(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxPercentDelta: BigNumberish], + [void], + "view" + >; + + "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + + "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqRelDecimal(int256,int256,uint256,uint256)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + + "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertEq(bytes32[],bytes32[])": TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + + "assertEq(int256[],int256[],string)": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + + "assertEq(address,address,string)": TypedContractMethod< + [left: AddressLike, right: AddressLike, error: string], + [void], + "view" + >; + + "assertEq(string,string,string)": TypedContractMethod< + [left: string, right: string, error: string], + [void], + "view" + >; + + "assertEq(address[],address[])": TypedContractMethod< + [left: AddressLike[], right: AddressLike[]], + [void], + "view" + >; + + "assertEq(address[],address[],string)": TypedContractMethod< + [left: AddressLike[], right: AddressLike[], error: string], + [void], + "view" + >; + + "assertEq(bool,bool,string)": TypedContractMethod< + [left: boolean, right: boolean, error: string], + [void], + "view" + >; + + "assertEq(address,address)": TypedContractMethod< + [left: AddressLike, right: AddressLike], + [void], + "view" + >; + + "assertEq(uint256[],uint256[],string)": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + + "assertEq(bool[],bool[])": TypedContractMethod< + [left: boolean[], right: boolean[]], + [void], + "view" + >; + + "assertEq(int256[],int256[])": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + + "assertEq(int256,int256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertEq(bytes32,bytes32)": TypedContractMethod< + [left: BytesLike, right: BytesLike], + [void], + "view" + >; + + "assertEq(uint256,uint256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertEq(uint256[],uint256[])": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + + "assertEq(bytes,bytes)": TypedContractMethod< + [left: BytesLike, right: BytesLike], + [void], + "view" + >; + + "assertEq(uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertEq(bytes32,bytes32,string)": TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + + "assertEq(string[],string[])": TypedContractMethod< + [left: string[], right: string[]], + [void], + "view" + >; + + "assertEq(bytes32[],bytes32[],string)": TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + + "assertEq(bytes,bytes,string)": TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + + "assertEq(bool[],bool[],string)": TypedContractMethod< + [left: boolean[], right: boolean[], error: string], + [void], + "view" + >; + + "assertEq(bytes[],bytes[])": TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + + "assertEq(string[],string[],string)": TypedContractMethod< + [left: string[], right: string[], error: string], + [void], + "view" + >; + + "assertEq(string,string)": TypedContractMethod< + [left: string, right: string], + [void], + "view" + >; + + "assertEq(bytes[],bytes[],string)": TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + + "assertEq(bool,bool)": TypedContractMethod< + [left: boolean, right: boolean], + [void], + "view" + >; + + "assertEq(int256,int256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertEqDecimal(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertEqDecimal(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertEqDecimal(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertEqDecimal(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertFalse(bool,string)": TypedContractMethod< + [condition: boolean, error: string], + [void], + "view" + >; + + "assertFalse(bool)": TypedContractMethod< + [condition: boolean], + [void], + "view" + >; + + "assertGe(int256,int256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertGe(int256,int256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertGe(uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertGe(uint256,uint256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertGeDecimal(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertGeDecimal(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertGeDecimal(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertGeDecimal(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertGt(int256,int256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertGt(uint256,uint256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertGt(uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertGt(int256,int256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertGtDecimal(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertGtDecimal(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertGtDecimal(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertGtDecimal(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertLe(int256,int256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertLe(uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertLe(int256,int256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertLe(uint256,uint256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertLeDecimal(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertLeDecimal(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertLeDecimal(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertLeDecimal(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertLt(int256,int256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertLt(uint256,uint256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertLt(int256,int256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertLt(uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertLtDecimal(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertLtDecimal(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertLtDecimal(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertLtDecimal(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertNotEq(bytes32[],bytes32[])": TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + + "assertNotEq(int256[],int256[])": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + + "assertNotEq(bool,bool,string)": TypedContractMethod< + [left: boolean, right: boolean, error: string], + [void], + "view" + >; + + "assertNotEq(bytes[],bytes[],string)": TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + + "assertNotEq(bool,bool)": TypedContractMethod< + [left: boolean, right: boolean], + [void], + "view" + >; + + "assertNotEq(bool[],bool[])": TypedContractMethod< + [left: boolean[], right: boolean[]], + [void], + "view" + >; + + "assertNotEq(bytes,bytes)": TypedContractMethod< + [left: BytesLike, right: BytesLike], + [void], + "view" + >; + + "assertNotEq(address[],address[])": TypedContractMethod< + [left: AddressLike[], right: AddressLike[]], + [void], + "view" + >; + + "assertNotEq(int256,int256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertNotEq(uint256[],uint256[])": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + + "assertNotEq(bool[],bool[],string)": TypedContractMethod< + [left: boolean[], right: boolean[], error: string], + [void], + "view" + >; + + "assertNotEq(string,string)": TypedContractMethod< + [left: string, right: string], + [void], + "view" + >; + + "assertNotEq(address[],address[],string)": TypedContractMethod< + [left: AddressLike[], right: AddressLike[], error: string], + [void], + "view" + >; + + "assertNotEq(string,string,string)": TypedContractMethod< + [left: string, right: string, error: string], + [void], + "view" + >; + + "assertNotEq(address,address,string)": TypedContractMethod< + [left: AddressLike, right: AddressLike, error: string], + [void], + "view" + >; + + "assertNotEq(bytes32,bytes32)": TypedContractMethod< + [left: BytesLike, right: BytesLike], + [void], + "view" + >; + + "assertNotEq(bytes,bytes,string)": TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + + "assertNotEq(uint256,uint256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertNotEq(uint256[],uint256[],string)": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + + "assertNotEq(address,address)": TypedContractMethod< + [left: AddressLike, right: AddressLike], + [void], + "view" + >; + + "assertNotEq(bytes32,bytes32,string)": TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + + "assertNotEq(string[],string[],string)": TypedContractMethod< + [left: string[], right: string[], error: string], + [void], + "view" + >; + + "assertNotEq(uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertNotEq(bytes32[],bytes32[],string)": TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + + "assertNotEq(string[],string[])": TypedContractMethod< + [left: string[], right: string[]], + [void], + "view" + >; + + "assertNotEq(int256[],int256[],string)": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + + "assertNotEq(bytes[],bytes[])": TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + + "assertNotEq(int256,int256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertNotEqDecimal(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertNotEqDecimal(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertNotEqDecimal(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertNotEqDecimal(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertTrue(bool)": TypedContractMethod<[condition: boolean], [void], "view">; + + "assertTrue(bool,string)": TypedContractMethod< + [condition: boolean, error: string], + [void], + "view" + >; + + assume: TypedContractMethod<[condition: boolean], [void], "view">; + + "assumeNoRevert()": TypedContractMethod<[], [void], "view">; + + "assumeNoRevert((address,bool,bytes)[])": TypedContractMethod< + [potentialReverts: VmSafe.PotentialRevertStruct[]], + [void], + "view" + >; + + "assumeNoRevert((address,bool,bytes))": TypedContractMethod< + [potentialRevert: VmSafe.PotentialRevertStruct], + [void], + "view" + >; + + attachBlob: TypedContractMethod<[blob: BytesLike], [void], "nonpayable">; + + attachDelegation: TypedContractMethod< + [signedDelegation: VmSafe.SignedDelegationStruct], + [void], + "nonpayable" + >; + + "breakpoint(string)": TypedContractMethod<[char: string], [void], "view">; + + "breakpoint(string,bool)": TypedContractMethod< + [char: string, value: boolean], + [void], + "view" + >; + + "broadcast()": TypedContractMethod<[], [void], "nonpayable">; + + "broadcast(address)": TypedContractMethod< + [signer: AddressLike], + [void], + "nonpayable" + >; + + "broadcast(uint256)": TypedContractMethod< + [privateKey: BigNumberish], + [void], + "nonpayable" + >; + + broadcastRawTransaction: TypedContractMethod< + [data: BytesLike], + [void], + "nonpayable" + >; + + closeFile: TypedContractMethod<[path: string], [void], "nonpayable">; + + "computeCreate2Address(bytes32,bytes32)": TypedContractMethod< + [salt: BytesLike, initCodeHash: BytesLike], + [string], + "view" + >; + + "computeCreate2Address(bytes32,bytes32,address)": TypedContractMethod< + [salt: BytesLike, initCodeHash: BytesLike, deployer: AddressLike], + [string], + "view" + >; + + computeCreateAddress: TypedContractMethod< + [deployer: AddressLike, nonce: BigNumberish], + [string], + "view" + >; + + contains: TypedContractMethod< + [subject: string, search: string], + [boolean], + "nonpayable" + >; + + copyFile: TypedContractMethod< + [from: string, to: string], + [bigint], + "nonpayable" + >; + + copyStorage: TypedContractMethod< + [from: AddressLike, to: AddressLike], + [void], + "nonpayable" + >; + + createDir: TypedContractMethod< + [path: string, recursive: boolean], + [void], + "nonpayable" + >; + + "createWallet(string)": TypedContractMethod< + [walletLabel: string], + [VmSafe.WalletStructOutput], + "nonpayable" + >; + + "createWallet(uint256)": TypedContractMethod< + [privateKey: BigNumberish], + [VmSafe.WalletStructOutput], + "nonpayable" + >; + + "createWallet(uint256,string)": TypedContractMethod< + [privateKey: BigNumberish, walletLabel: string], + [VmSafe.WalletStructOutput], + "nonpayable" + >; + + "deployCode(string,uint256,bytes32)": TypedContractMethod< + [artifactPath: string, value: BigNumberish, salt: BytesLike], + [string], + "nonpayable" + >; + + "deployCode(string,bytes,bytes32)": TypedContractMethod< + [artifactPath: string, constructorArgs: BytesLike, salt: BytesLike], + [string], + "nonpayable" + >; + + "deployCode(string,uint256)": TypedContractMethod< + [artifactPath: string, value: BigNumberish], + [string], + "nonpayable" + >; + + "deployCode(string,bytes32)": TypedContractMethod< + [artifactPath: string, salt: BytesLike], + [string], + "nonpayable" + >; + + "deployCode(string,bytes)": TypedContractMethod< + [artifactPath: string, constructorArgs: BytesLike], + [string], + "nonpayable" + >; + + "deployCode(string,bytes,uint256,bytes32)": TypedContractMethod< + [ + artifactPath: string, + constructorArgs: BytesLike, + value: BigNumberish, + salt: BytesLike + ], + [string], + "nonpayable" + >; + + "deployCode(string)": TypedContractMethod< + [artifactPath: string], + [string], + "nonpayable" + >; + + "deployCode(string,bytes,uint256)": TypedContractMethod< + [artifactPath: string, constructorArgs: BytesLike, value: BigNumberish], + [string], + "nonpayable" + >; + + "deriveKey(string,string,uint32,string)": TypedContractMethod< + [ + mnemonic: string, + derivationPath: string, + index: BigNumberish, + language: string + ], + [bigint], + "view" + >; + + "deriveKey(string,uint32,string)": TypedContractMethod< + [mnemonic: string, index: BigNumberish, language: string], + [bigint], + "view" + >; + + "deriveKey(string,uint32)": TypedContractMethod< + [mnemonic: string, index: BigNumberish], + [bigint], + "view" + >; + + "deriveKey(string,string,uint32)": TypedContractMethod< + [mnemonic: string, derivationPath: string, index: BigNumberish], + [bigint], + "view" + >; + + ensNamehash: TypedContractMethod<[name: string], [string], "view">; + + "envAddress(string)": TypedContractMethod<[name: string], [string], "view">; + + "envAddress(string,string)": TypedContractMethod< + [name: string, delim: string], + [string[]], + "view" + >; + + "envBool(string)": TypedContractMethod<[name: string], [boolean], "view">; + + "envBool(string,string)": TypedContractMethod< + [name: string, delim: string], + [boolean[]], + "view" + >; + + "envBytes(string)": TypedContractMethod<[name: string], [string], "view">; + + "envBytes(string,string)": TypedContractMethod< + [name: string, delim: string], + [string[]], + "view" + >; + + "envBytes32(string,string)": TypedContractMethod< + [name: string, delim: string], + [string[]], + "view" + >; + + "envBytes32(string)": TypedContractMethod<[name: string], [string], "view">; + + envExists: TypedContractMethod<[name: string], [boolean], "view">; + + "envInt(string,string)": TypedContractMethod< + [name: string, delim: string], + [bigint[]], + "view" + >; + + "envInt(string)": TypedContractMethod<[name: string], [bigint], "view">; + + "envOr(string,string,bytes32[])": TypedContractMethod< + [name: string, delim: string, defaultValue: BytesLike[]], + [string[]], + "view" + >; + + "envOr(string,string,int256[])": TypedContractMethod< + [name: string, delim: string, defaultValue: BigNumberish[]], + [bigint[]], + "view" + >; + + "envOr(string,bool)": TypedContractMethod< + [name: string, defaultValue: boolean], + [boolean], + "view" + >; + + "envOr(string,address)": TypedContractMethod< + [name: string, defaultValue: AddressLike], + [string], + "view" + >; + + "envOr(string,uint256)": TypedContractMethod< + [name: string, defaultValue: BigNumberish], + [bigint], + "view" + >; + + "envOr(string,string,bytes[])": TypedContractMethod< + [name: string, delim: string, defaultValue: BytesLike[]], + [string[]], + "view" + >; + + "envOr(string,string,uint256[])": TypedContractMethod< + [name: string, delim: string, defaultValue: BigNumberish[]], + [bigint[]], + "view" + >; + + "envOr(string,string,string[])": TypedContractMethod< + [name: string, delim: string, defaultValue: string[]], + [string[]], + "view" + >; + + "envOr(string,bytes)": TypedContractMethod< + [name: string, defaultValue: BytesLike], + [string], + "view" + >; + + "envOr(string,bytes32)": TypedContractMethod< + [name: string, defaultValue: BytesLike], + [string], + "view" + >; + + "envOr(string,int256)": TypedContractMethod< + [name: string, defaultValue: BigNumberish], + [bigint], + "view" + >; + + "envOr(string,string,address[])": TypedContractMethod< + [name: string, delim: string, defaultValue: AddressLike[]], + [string[]], + "view" + >; + + "envOr(string,string)": TypedContractMethod< + [name: string, defaultValue: string], + [string], + "view" + >; + + "envOr(string,string,bool[])": TypedContractMethod< + [name: string, delim: string, defaultValue: boolean[]], + [boolean[]], + "view" + >; + + "envString(string,string)": TypedContractMethod< + [name: string, delim: string], + [string[]], + "view" + >; + + "envString(string)": TypedContractMethod<[name: string], [string], "view">; + + "envUint(string)": TypedContractMethod<[name: string], [bigint], "view">; + + "envUint(string,string)": TypedContractMethod< + [name: string, delim: string], + [bigint[]], + "view" + >; + + eth_getLogs: TypedContractMethod< + [ + fromBlock: BigNumberish, + toBlock: BigNumberish, + target: AddressLike, + topics: BytesLike[] + ], + [VmSafe.EthGetLogsStructOutput[]], + "nonpayable" + >; + + exists: TypedContractMethod<[path: string], [boolean], "view">; + + ffi: TypedContractMethod<[commandInput: string[]], [string], "nonpayable">; + + foundryVersionAtLeast: TypedContractMethod< + [version: string], + [boolean], + "view" + >; + + foundryVersionCmp: TypedContractMethod<[version: string], [bigint], "view">; + + fsMetadata: TypedContractMethod< + [path: string], + [VmSafe.FsMetadataStructOutput], + "view" + >; + + getArtifactPathByCode: TypedContractMethod< + [code: BytesLike], + [string], + "view" + >; + + getArtifactPathByDeployedCode: TypedContractMethod< + [deployedCode: BytesLike], + [string], + "view" + >; + + getBlobBaseFee: TypedContractMethod<[], [bigint], "view">; + + getBlockNumber: TypedContractMethod<[], [bigint], "view">; + + getBlockTimestamp: TypedContractMethod<[], [bigint], "view">; + + getBroadcast: TypedContractMethod< + [contractName: string, chainId: BigNumberish, txType: BigNumberish], + [VmSafe.BroadcastTxSummaryStructOutput], + "view" + >; + + "getBroadcasts(string,uint64)": TypedContractMethod< + [contractName: string, chainId: BigNumberish], + [VmSafe.BroadcastTxSummaryStructOutput[]], + "view" + >; + + "getBroadcasts(string,uint64,uint8)": TypedContractMethod< + [contractName: string, chainId: BigNumberish, txType: BigNumberish], + [VmSafe.BroadcastTxSummaryStructOutput[]], + "view" + >; + + "getChain(string)": TypedContractMethod< + [chainAlias: string], + [VmSafe.ChainStructOutput], + "view" + >; + + "getChain(uint256)": TypedContractMethod< + [chainId: BigNumberish], + [VmSafe.ChainStructOutput], + "view" + >; + + getCode: TypedContractMethod<[artifactPath: string], [string], "view">; + + getDeployedCode: TypedContractMethod< + [artifactPath: string], + [string], + "view" + >; + + "getDeployment(string,uint64)": TypedContractMethod< + [contractName: string, chainId: BigNumberish], + [string], + "view" + >; + + "getDeployment(string)": TypedContractMethod< + [contractName: string], + [string], + "view" + >; + + getDeployments: TypedContractMethod< + [contractName: string, chainId: BigNumberish], + [string[]], + "view" + >; + + getFoundryVersion: TypedContractMethod<[], [string], "view">; + + getLabel: TypedContractMethod<[account: AddressLike], [string], "view">; + + getMappingKeyAndParentOf: TypedContractMethod< + [target: AddressLike, elementSlot: BytesLike], + [ + [boolean, string, string] & { + found: boolean; + key: string; + parent: string; + } + ], + "nonpayable" + >; + + getMappingLength: TypedContractMethod< + [target: AddressLike, mappingSlot: BytesLike], + [bigint], + "nonpayable" + >; + + getMappingSlotAt: TypedContractMethod< + [target: AddressLike, mappingSlot: BytesLike, idx: BigNumberish], + [string], + "nonpayable" + >; + + "getNonce(address)": TypedContractMethod< + [account: AddressLike], + [bigint], + "view" + >; + + "getNonce((address,uint256,uint256,uint256))": TypedContractMethod< + [wallet: VmSafe.WalletStruct], + [bigint], + "nonpayable" + >; + + getRecordedLogs: TypedContractMethod< + [], + [VmSafe.LogStructOutput[]], + "nonpayable" + >; + + getStateDiff: TypedContractMethod<[], [string], "view">; + + getStateDiffJson: TypedContractMethod<[], [string], "view">; + + getWallets: TypedContractMethod<[], [string[]], "nonpayable">; + + indexOf: TypedContractMethod<[input: string, key: string], [bigint], "view">; + + isContext: TypedContractMethod<[context: BigNumberish], [boolean], "view">; + + isDir: TypedContractMethod<[path: string], [boolean], "view">; + + isFile: TypedContractMethod<[path: string], [boolean], "view">; + + keyExists: TypedContractMethod< + [json: string, key: string], + [boolean], + "view" + >; + + keyExistsJson: TypedContractMethod< + [json: string, key: string], + [boolean], + "view" + >; + + keyExistsToml: TypedContractMethod< + [toml: string, key: string], + [boolean], + "view" + >; + + label: TypedContractMethod< + [account: AddressLike, newLabel: string], + [void], + "nonpayable" + >; + + lastCallGas: TypedContractMethod<[], [VmSafe.GasStructOutput], "view">; + + load: TypedContractMethod< + [target: AddressLike, slot: BytesLike], + [string], + "view" + >; + + parseAddress: TypedContractMethod< + [stringifiedValue: string], + [string], + "view" + >; + + parseBool: TypedContractMethod<[stringifiedValue: string], [boolean], "view">; + + parseBytes: TypedContractMethod<[stringifiedValue: string], [string], "view">; + + parseBytes32: TypedContractMethod< + [stringifiedValue: string], + [string], + "view" + >; + + parseInt: TypedContractMethod<[stringifiedValue: string], [bigint], "view">; + + "parseJson(string)": TypedContractMethod<[json: string], [string], "view">; + + "parseJson(string,string)": TypedContractMethod< + [json: string, key: string], + [string], + "view" + >; + + parseJsonAddress: TypedContractMethod< + [json: string, key: string], + [string], + "view" + >; + + parseJsonAddressArray: TypedContractMethod< + [json: string, key: string], + [string[]], + "view" + >; + + parseJsonBool: TypedContractMethod< + [json: string, key: string], + [boolean], + "view" + >; + + parseJsonBoolArray: TypedContractMethod< + [json: string, key: string], + [boolean[]], + "view" + >; + + parseJsonBytes: TypedContractMethod< + [json: string, key: string], + [string], + "view" + >; + + parseJsonBytes32: TypedContractMethod< + [json: string, key: string], + [string], + "view" + >; + + parseJsonBytes32Array: TypedContractMethod< + [json: string, key: string], + [string[]], + "view" + >; + + parseJsonBytesArray: TypedContractMethod< + [json: string, key: string], + [string[]], + "view" + >; + + parseJsonInt: TypedContractMethod< + [json: string, key: string], + [bigint], + "view" + >; + + parseJsonIntArray: TypedContractMethod< + [json: string, key: string], + [bigint[]], + "view" + >; + + parseJsonKeys: TypedContractMethod< + [json: string, key: string], + [string[]], + "view" + >; + + parseJsonString: TypedContractMethod< + [json: string, key: string], + [string], + "view" + >; + + parseJsonStringArray: TypedContractMethod< + [json: string, key: string], + [string[]], + "view" + >; + + "parseJsonType(string,string)": TypedContractMethod< + [json: string, typeDescription: string], + [string], + "view" + >; + + "parseJsonType(string,string,string)": TypedContractMethod< + [json: string, key: string, typeDescription: string], + [string], + "view" + >; + + parseJsonTypeArray: TypedContractMethod< + [json: string, key: string, typeDescription: string], + [string], + "view" + >; + + parseJsonUint: TypedContractMethod< + [json: string, key: string], + [bigint], + "view" + >; + + parseJsonUintArray: TypedContractMethod< + [json: string, key: string], + [bigint[]], + "view" + >; + + "parseToml(string,string)": TypedContractMethod< + [toml: string, key: string], + [string], + "view" + >; + + "parseToml(string)": TypedContractMethod<[toml: string], [string], "view">; + + parseTomlAddress: TypedContractMethod< + [toml: string, key: string], + [string], + "view" + >; + + parseTomlAddressArray: TypedContractMethod< + [toml: string, key: string], + [string[]], + "view" + >; + + parseTomlBool: TypedContractMethod< + [toml: string, key: string], + [boolean], + "view" + >; + + parseTomlBoolArray: TypedContractMethod< + [toml: string, key: string], + [boolean[]], + "view" + >; + + parseTomlBytes: TypedContractMethod< + [toml: string, key: string], + [string], + "view" + >; + + parseTomlBytes32: TypedContractMethod< + [toml: string, key: string], + [string], + "view" + >; + + parseTomlBytes32Array: TypedContractMethod< + [toml: string, key: string], + [string[]], + "view" + >; + + parseTomlBytesArray: TypedContractMethod< + [toml: string, key: string], + [string[]], + "view" + >; + + parseTomlInt: TypedContractMethod< + [toml: string, key: string], + [bigint], + "view" + >; + + parseTomlIntArray: TypedContractMethod< + [toml: string, key: string], + [bigint[]], + "view" + >; + + parseTomlKeys: TypedContractMethod< + [toml: string, key: string], + [string[]], + "view" + >; + + parseTomlString: TypedContractMethod< + [toml: string, key: string], + [string], + "view" + >; + + parseTomlStringArray: TypedContractMethod< + [toml: string, key: string], + [string[]], + "view" + >; + + "parseTomlType(string,string)": TypedContractMethod< + [toml: string, typeDescription: string], + [string], + "view" + >; + + "parseTomlType(string,string,string)": TypedContractMethod< + [toml: string, key: string, typeDescription: string], + [string], + "view" + >; + + parseTomlTypeArray: TypedContractMethod< + [toml: string, key: string, typeDescription: string], + [string], + "view" + >; + + parseTomlUint: TypedContractMethod< + [toml: string, key: string], + [bigint], + "view" + >; + + parseTomlUintArray: TypedContractMethod< + [toml: string, key: string], + [bigint[]], + "view" + >; + + parseUint: TypedContractMethod<[stringifiedValue: string], [bigint], "view">; + + pauseGasMetering: TypedContractMethod<[], [void], "nonpayable">; + + pauseTracing: TypedContractMethod<[], [void], "view">; + + projectRoot: TypedContractMethod<[], [string], "view">; + + prompt: TypedContractMethod<[promptText: string], [string], "nonpayable">; + + promptAddress: TypedContractMethod< + [promptText: string], + [string], + "nonpayable" + >; + + promptSecret: TypedContractMethod< + [promptText: string], + [string], + "nonpayable" + >; + + promptSecretUint: TypedContractMethod< + [promptText: string], + [bigint], + "nonpayable" + >; + + promptUint: TypedContractMethod<[promptText: string], [bigint], "nonpayable">; + + publicKeyP256: TypedContractMethod< + [privateKey: BigNumberish], + [[bigint, bigint] & { publicKeyX: bigint; publicKeyY: bigint }], + "view" + >; + + randomAddress: TypedContractMethod<[], [string], "nonpayable">; + + randomBool: TypedContractMethod<[], [boolean], "view">; + + randomBytes: TypedContractMethod<[len: BigNumberish], [string], "view">; + + randomBytes4: TypedContractMethod<[], [string], "view">; + + randomBytes8: TypedContractMethod<[], [string], "view">; + + "randomInt()": TypedContractMethod<[], [bigint], "view">; + + "randomInt(uint256)": TypedContractMethod< + [bits: BigNumberish], + [bigint], + "view" + >; + + "randomUint()": TypedContractMethod<[], [bigint], "nonpayable">; + + "randomUint(uint256)": TypedContractMethod< + [bits: BigNumberish], + [bigint], + "view" + >; + + "randomUint(uint256,uint256)": TypedContractMethod< + [min: BigNumberish, max: BigNumberish], + [bigint], + "nonpayable" + >; + + "readDir(string,uint64)": TypedContractMethod< + [path: string, maxDepth: BigNumberish], + [VmSafe.DirEntryStructOutput[]], + "view" + >; + + "readDir(string,uint64,bool)": TypedContractMethod< + [path: string, maxDepth: BigNumberish, followLinks: boolean], + [VmSafe.DirEntryStructOutput[]], + "view" + >; + + "readDir(string)": TypedContractMethod< + [path: string], + [VmSafe.DirEntryStructOutput[]], + "view" + >; + + readFile: TypedContractMethod<[path: string], [string], "view">; + + readFileBinary: TypedContractMethod<[path: string], [string], "view">; + + readLine: TypedContractMethod<[path: string], [string], "view">; + + readLink: TypedContractMethod<[linkPath: string], [string], "view">; + + record: TypedContractMethod<[], [void], "nonpayable">; + + recordLogs: TypedContractMethod<[], [void], "nonpayable">; + + rememberKey: TypedContractMethod< + [privateKey: BigNumberish], + [string], + "nonpayable" + >; + + "rememberKeys(string,string,uint32)": TypedContractMethod< + [mnemonic: string, derivationPath: string, count: BigNumberish], + [string[]], + "nonpayable" + >; + + "rememberKeys(string,string,string,uint32)": TypedContractMethod< + [ + mnemonic: string, + derivationPath: string, + language: string, + count: BigNumberish + ], + [string[]], + "nonpayable" + >; + + removeDir: TypedContractMethod< + [path: string, recursive: boolean], + [void], + "nonpayable" + >; + + removeFile: TypedContractMethod<[path: string], [void], "nonpayable">; + + replace: TypedContractMethod< + [input: string, from: string, to: string], + [string], + "view" + >; + + resetGasMetering: TypedContractMethod<[], [void], "nonpayable">; + + resumeGasMetering: TypedContractMethod<[], [void], "nonpayable">; + + resumeTracing: TypedContractMethod<[], [void], "view">; + + "rpc(string,string,string)": TypedContractMethod< + [urlOrAlias: string, method: string, params: string], + [string], + "nonpayable" + >; + + "rpc(string,string)": TypedContractMethod< + [method: string, params: string], + [string], + "nonpayable" + >; + + rpcUrl: TypedContractMethod<[rpcAlias: string], [string], "view">; + + rpcUrlStructs: TypedContractMethod<[], [VmSafe.RpcStructOutput[]], "view">; + + rpcUrls: TypedContractMethod<[], [[string, string][]], "view">; + + "serializeAddress(string,string,address[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: AddressLike[]], + [string], + "nonpayable" + >; + + "serializeAddress(string,string,address)": TypedContractMethod< + [objectKey: string, valueKey: string, value: AddressLike], + [string], + "nonpayable" + >; + + "serializeBool(string,string,bool[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: boolean[]], + [string], + "nonpayable" + >; + + "serializeBool(string,string,bool)": TypedContractMethod< + [objectKey: string, valueKey: string, value: boolean], + [string], + "nonpayable" + >; + + "serializeBytes(string,string,bytes[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: BytesLike[]], + [string], + "nonpayable" + >; + + "serializeBytes(string,string,bytes)": TypedContractMethod< + [objectKey: string, valueKey: string, value: BytesLike], + [string], + "nonpayable" + >; + + "serializeBytes32(string,string,bytes32[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: BytesLike[]], + [string], + "nonpayable" + >; + + "serializeBytes32(string,string,bytes32)": TypedContractMethod< + [objectKey: string, valueKey: string, value: BytesLike], + [string], + "nonpayable" + >; + + "serializeInt(string,string,int256)": TypedContractMethod< + [objectKey: string, valueKey: string, value: BigNumberish], + [string], + "nonpayable" + >; + + "serializeInt(string,string,int256[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: BigNumberish[]], + [string], + "nonpayable" + >; + + serializeJson: TypedContractMethod< + [objectKey: string, value: string], + [string], + "nonpayable" + >; + + "serializeJsonType(string,bytes)": TypedContractMethod< + [typeDescription: string, value: BytesLike], + [string], + "view" + >; + + "serializeJsonType(string,string,string,bytes)": TypedContractMethod< + [ + objectKey: string, + valueKey: string, + typeDescription: string, + value: BytesLike + ], + [string], + "nonpayable" + >; + + "serializeString(string,string,string[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: string[]], + [string], + "nonpayable" + >; + + "serializeString(string,string,string)": TypedContractMethod< + [objectKey: string, valueKey: string, value: string], + [string], + "nonpayable" + >; + + "serializeUint(string,string,uint256)": TypedContractMethod< + [objectKey: string, valueKey: string, value: BigNumberish], + [string], + "nonpayable" + >; + + "serializeUint(string,string,uint256[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: BigNumberish[]], + [string], + "nonpayable" + >; + + serializeUintToHex: TypedContractMethod< + [objectKey: string, valueKey: string, value: BigNumberish], + [string], + "nonpayable" + >; + + "setArbitraryStorage(address,bool)": TypedContractMethod< + [target: AddressLike, overwrite: boolean], + [void], + "nonpayable" + >; + + "setArbitraryStorage(address)": TypedContractMethod< + [target: AddressLike], + [void], + "nonpayable" + >; + + setEnv: TypedContractMethod< + [name: string, value: string], + [void], + "nonpayable" + >; + + shuffle: TypedContractMethod< + [array: BigNumberish[]], + [bigint[]], + "nonpayable" + >; + + "sign(bytes32)": TypedContractMethod< + [digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "view" + >; + + "sign(address,bytes32)": TypedContractMethod< + [signer: AddressLike, digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "view" + >; + + "sign((address,uint256,uint256,uint256),bytes32)": TypedContractMethod< + [wallet: VmSafe.WalletStruct, digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "nonpayable" + >; + + "sign(uint256,bytes32)": TypedContractMethod< + [privateKey: BigNumberish, digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "view" + >; + + "signAndAttachDelegation(address,uint256)": TypedContractMethod< + [implementation: AddressLike, privateKey: BigNumberish], + [VmSafe.SignedDelegationStructOutput], + "nonpayable" + >; + + "signAndAttachDelegation(address,uint256,uint64)": TypedContractMethod< + [ + implementation: AddressLike, + privateKey: BigNumberish, + nonce: BigNumberish + ], + [VmSafe.SignedDelegationStructOutput], + "nonpayable" + >; + + "signCompact((address,uint256,uint256,uint256),bytes32)": TypedContractMethod< + [wallet: VmSafe.WalletStruct, digest: BytesLike], + [[string, string] & { r: string; vs: string }], + "nonpayable" + >; + + "signCompact(address,bytes32)": TypedContractMethod< + [signer: AddressLike, digest: BytesLike], + [[string, string] & { r: string; vs: string }], + "view" + >; + + "signCompact(bytes32)": TypedContractMethod< + [digest: BytesLike], + [[string, string] & { r: string; vs: string }], + "view" + >; + + "signCompact(uint256,bytes32)": TypedContractMethod< + [privateKey: BigNumberish, digest: BytesLike], + [[string, string] & { r: string; vs: string }], + "view" + >; + + "signDelegation(address,uint256)": TypedContractMethod< + [implementation: AddressLike, privateKey: BigNumberish], + [VmSafe.SignedDelegationStructOutput], + "nonpayable" + >; + + "signDelegation(address,uint256,uint64)": TypedContractMethod< + [ + implementation: AddressLike, + privateKey: BigNumberish, + nonce: BigNumberish + ], + [VmSafe.SignedDelegationStructOutput], + "nonpayable" + >; + + signP256: TypedContractMethod< + [privateKey: BigNumberish, digest: BytesLike], + [[string, string] & { r: string; s: string }], + "view" + >; + + sleep: TypedContractMethod<[duration: BigNumberish], [void], "nonpayable">; + + sort: TypedContractMethod<[array: BigNumberish[]], [bigint[]], "nonpayable">; + + split: TypedContractMethod< + [input: string, delimiter: string], + [string[]], + "view" + >; + + "startBroadcast()": TypedContractMethod<[], [void], "nonpayable">; + + "startBroadcast(address)": TypedContractMethod< + [signer: AddressLike], + [void], + "nonpayable" + >; + + "startBroadcast(uint256)": TypedContractMethod< + [privateKey: BigNumberish], + [void], + "nonpayable" + >; + + startDebugTraceRecording: TypedContractMethod<[], [void], "nonpayable">; + + startMappingRecording: TypedContractMethod<[], [void], "nonpayable">; + + startStateDiffRecording: TypedContractMethod<[], [void], "nonpayable">; + + stopAndReturnDebugTraceRecording: TypedContractMethod< + [], + [VmSafe.DebugStepStructOutput[]], + "nonpayable" + >; + + stopAndReturnStateDiff: TypedContractMethod< + [], + [VmSafe.AccountAccessStructOutput[]], + "nonpayable" + >; + + stopBroadcast: TypedContractMethod<[], [void], "nonpayable">; + + stopMappingRecording: TypedContractMethod<[], [void], "nonpayable">; + + "toBase64(string)": TypedContractMethod<[data: string], [string], "view">; + + "toBase64(bytes)": TypedContractMethod<[data: BytesLike], [string], "view">; + + "toBase64URL(string)": TypedContractMethod<[data: string], [string], "view">; + + "toBase64URL(bytes)": TypedContractMethod< + [data: BytesLike], + [string], + "view" + >; + + toLowercase: TypedContractMethod<[input: string], [string], "view">; + + "toString(address)": TypedContractMethod< + [value: AddressLike], + [string], + "view" + >; + + "toString(uint256)": TypedContractMethod< + [value: BigNumberish], + [string], + "view" + >; + + "toString(bytes)": TypedContractMethod<[value: BytesLike], [string], "view">; + + "toString(bool)": TypedContractMethod<[value: boolean], [string], "view">; + + "toString(int256)": TypedContractMethod< + [value: BigNumberish], + [string], + "view" + >; + + "toString(bytes32)": TypedContractMethod< + [value: BytesLike], + [string], + "view" + >; + + toUppercase: TypedContractMethod<[input: string], [string], "view">; + + trim: TypedContractMethod<[input: string], [string], "view">; + + tryFfi: TypedContractMethod< + [commandInput: string[]], + [VmSafe.FfiResultStructOutput], + "nonpayable" + >; + + unixTime: TypedContractMethod<[], [bigint], "view">; + + writeFile: TypedContractMethod< + [path: string, data: string], + [void], + "nonpayable" + >; + + writeFileBinary: TypedContractMethod< + [path: string, data: BytesLike], + [void], + "nonpayable" + >; + + "writeJson(string,string,string)": TypedContractMethod< + [json: string, path: string, valueKey: string], + [void], + "nonpayable" + >; + + "writeJson(string,string)": TypedContractMethod< + [json: string, path: string], + [void], + "nonpayable" + >; + + writeLine: TypedContractMethod< + [path: string, data: string], + [void], + "nonpayable" + >; + + "writeToml(string,string,string)": TypedContractMethod< + [json: string, path: string, valueKey: string], + [void], + "nonpayable" + >; + + "writeToml(string,string)": TypedContractMethod< + [json: string, path: string], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "accesses" + ): TypedContractMethod< + [target: AddressLike], + [[string[], string[]] & { readSlots: string[]; writeSlots: string[] }], + "nonpayable" + >; + getFunction( + nameOrSignature: "addr" + ): TypedContractMethod<[privateKey: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "assertApproxEqAbs(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxDelta: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbs(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxDelta: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbs(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbs(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRel(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRel(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxPercentDelta: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRel(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRel(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxPercentDelta: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRelDecimal(int256,int256,uint256,uint256)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bytes32[],bytes32[])" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(int256[],int256[],string)" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(address,address,string)" + ): TypedContractMethod< + [left: AddressLike, right: AddressLike, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(string,string,string)" + ): TypedContractMethod< + [left: string, right: string, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(address[],address[])" + ): TypedContractMethod< + [left: AddressLike[], right: AddressLike[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(address[],address[],string)" + ): TypedContractMethod< + [left: AddressLike[], right: AddressLike[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bool,bool,string)" + ): TypedContractMethod< + [left: boolean, right: boolean, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(address,address)" + ): TypedContractMethod< + [left: AddressLike, right: AddressLike], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(uint256[],uint256[],string)" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bool[],bool[])" + ): TypedContractMethod<[left: boolean[], right: boolean[]], [void], "view">; + getFunction( + nameOrSignature: "assertEq(int256[],int256[])" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(int256,int256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bytes32,bytes32)" + ): TypedContractMethod<[left: BytesLike, right: BytesLike], [void], "view">; + getFunction( + nameOrSignature: "assertEq(uint256,uint256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(uint256[],uint256[])" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bytes,bytes)" + ): TypedContractMethod<[left: BytesLike, right: BytesLike], [void], "view">; + getFunction( + nameOrSignature: "assertEq(uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bytes32,bytes32,string)" + ): TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(string[],string[])" + ): TypedContractMethod<[left: string[], right: string[]], [void], "view">; + getFunction( + nameOrSignature: "assertEq(bytes32[],bytes32[],string)" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bytes,bytes,string)" + ): TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bool[],bool[],string)" + ): TypedContractMethod< + [left: boolean[], right: boolean[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bytes[],bytes[])" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(string[],string[],string)" + ): TypedContractMethod< + [left: string[], right: string[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(string,string)" + ): TypedContractMethod<[left: string, right: string], [void], "view">; + getFunction( + nameOrSignature: "assertEq(bytes[],bytes[],string)" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bool,bool)" + ): TypedContractMethod<[left: boolean, right: boolean], [void], "view">; + getFunction( + nameOrSignature: "assertEq(int256,int256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEqDecimal(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEqDecimal(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEqDecimal(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEqDecimal(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertFalse(bool,string)" + ): TypedContractMethod<[condition: boolean, error: string], [void], "view">; + getFunction( + nameOrSignature: "assertFalse(bool)" + ): TypedContractMethod<[condition: boolean], [void], "view">; + getFunction( + nameOrSignature: "assertGe(int256,int256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGe(int256,int256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGe(uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGe(uint256,uint256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGeDecimal(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGeDecimal(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGeDecimal(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGeDecimal(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGt(int256,int256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGt(uint256,uint256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGt(uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGt(int256,int256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGtDecimal(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGtDecimal(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGtDecimal(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGtDecimal(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLe(int256,int256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLe(uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLe(int256,int256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLe(uint256,uint256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLeDecimal(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLeDecimal(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLeDecimal(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLeDecimal(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLt(int256,int256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLt(uint256,uint256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLt(int256,int256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLt(uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLtDecimal(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLtDecimal(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLtDecimal(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLtDecimal(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bytes32[],bytes32[])" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(int256[],int256[])" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bool,bool,string)" + ): TypedContractMethod< + [left: boolean, right: boolean, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bytes[],bytes[],string)" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bool,bool)" + ): TypedContractMethod<[left: boolean, right: boolean], [void], "view">; + getFunction( + nameOrSignature: "assertNotEq(bool[],bool[])" + ): TypedContractMethod<[left: boolean[], right: boolean[]], [void], "view">; + getFunction( + nameOrSignature: "assertNotEq(bytes,bytes)" + ): TypedContractMethod<[left: BytesLike, right: BytesLike], [void], "view">; + getFunction( + nameOrSignature: "assertNotEq(address[],address[])" + ): TypedContractMethod< + [left: AddressLike[], right: AddressLike[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(int256,int256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(uint256[],uint256[])" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bool[],bool[],string)" + ): TypedContractMethod< + [left: boolean[], right: boolean[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(string,string)" + ): TypedContractMethod<[left: string, right: string], [void], "view">; + getFunction( + nameOrSignature: "assertNotEq(address[],address[],string)" + ): TypedContractMethod< + [left: AddressLike[], right: AddressLike[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(string,string,string)" + ): TypedContractMethod< + [left: string, right: string, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(address,address,string)" + ): TypedContractMethod< + [left: AddressLike, right: AddressLike, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bytes32,bytes32)" + ): TypedContractMethod<[left: BytesLike, right: BytesLike], [void], "view">; + getFunction( + nameOrSignature: "assertNotEq(bytes,bytes,string)" + ): TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(uint256,uint256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(uint256[],uint256[],string)" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(address,address)" + ): TypedContractMethod< + [left: AddressLike, right: AddressLike], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bytes32,bytes32,string)" + ): TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(string[],string[],string)" + ): TypedContractMethod< + [left: string[], right: string[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bytes32[],bytes32[],string)" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(string[],string[])" + ): TypedContractMethod<[left: string[], right: string[]], [void], "view">; + getFunction( + nameOrSignature: "assertNotEq(int256[],int256[],string)" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bytes[],bytes[])" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(int256,int256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEqDecimal(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEqDecimal(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEqDecimal(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEqDecimal(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertTrue(bool)" + ): TypedContractMethod<[condition: boolean], [void], "view">; + getFunction( + nameOrSignature: "assertTrue(bool,string)" + ): TypedContractMethod<[condition: boolean, error: string], [void], "view">; + getFunction( + nameOrSignature: "assume" + ): TypedContractMethod<[condition: boolean], [void], "view">; + getFunction( + nameOrSignature: "assumeNoRevert()" + ): TypedContractMethod<[], [void], "view">; + getFunction( + nameOrSignature: "assumeNoRevert((address,bool,bytes)[])" + ): TypedContractMethod< + [potentialReverts: VmSafe.PotentialRevertStruct[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assumeNoRevert((address,bool,bytes))" + ): TypedContractMethod< + [potentialRevert: VmSafe.PotentialRevertStruct], + [void], + "view" + >; + getFunction( + nameOrSignature: "attachBlob" + ): TypedContractMethod<[blob: BytesLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "attachDelegation" + ): TypedContractMethod< + [signedDelegation: VmSafe.SignedDelegationStruct], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "breakpoint(string)" + ): TypedContractMethod<[char: string], [void], "view">; + getFunction( + nameOrSignature: "breakpoint(string,bool)" + ): TypedContractMethod<[char: string, value: boolean], [void], "view">; + getFunction( + nameOrSignature: "broadcast()" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "broadcast(address)" + ): TypedContractMethod<[signer: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "broadcast(uint256)" + ): TypedContractMethod<[privateKey: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "broadcastRawTransaction" + ): TypedContractMethod<[data: BytesLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "closeFile" + ): TypedContractMethod<[path: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "computeCreate2Address(bytes32,bytes32)" + ): TypedContractMethod< + [salt: BytesLike, initCodeHash: BytesLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "computeCreate2Address(bytes32,bytes32,address)" + ): TypedContractMethod< + [salt: BytesLike, initCodeHash: BytesLike, deployer: AddressLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "computeCreateAddress" + ): TypedContractMethod< + [deployer: AddressLike, nonce: BigNumberish], + [string], + "view" + >; + getFunction( + nameOrSignature: "contains" + ): TypedContractMethod< + [subject: string, search: string], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "copyFile" + ): TypedContractMethod<[from: string, to: string], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "copyStorage" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "createDir" + ): TypedContractMethod< + [path: string, recursive: boolean], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "createWallet(string)" + ): TypedContractMethod< + [walletLabel: string], + [VmSafe.WalletStructOutput], + "nonpayable" + >; + getFunction( + nameOrSignature: "createWallet(uint256)" + ): TypedContractMethod< + [privateKey: BigNumberish], + [VmSafe.WalletStructOutput], + "nonpayable" + >; + getFunction( + nameOrSignature: "createWallet(uint256,string)" + ): TypedContractMethod< + [privateKey: BigNumberish, walletLabel: string], + [VmSafe.WalletStructOutput], + "nonpayable" + >; + getFunction( + nameOrSignature: "deployCode(string,uint256,bytes32)" + ): TypedContractMethod< + [artifactPath: string, value: BigNumberish, salt: BytesLike], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "deployCode(string,bytes,bytes32)" + ): TypedContractMethod< + [artifactPath: string, constructorArgs: BytesLike, salt: BytesLike], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "deployCode(string,uint256)" + ): TypedContractMethod< + [artifactPath: string, value: BigNumberish], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "deployCode(string,bytes32)" + ): TypedContractMethod< + [artifactPath: string, salt: BytesLike], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "deployCode(string,bytes)" + ): TypedContractMethod< + [artifactPath: string, constructorArgs: BytesLike], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "deployCode(string,bytes,uint256,bytes32)" + ): TypedContractMethod< + [ + artifactPath: string, + constructorArgs: BytesLike, + value: BigNumberish, + salt: BytesLike + ], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "deployCode(string)" + ): TypedContractMethod<[artifactPath: string], [string], "nonpayable">; + getFunction( + nameOrSignature: "deployCode(string,bytes,uint256)" + ): TypedContractMethod< + [artifactPath: string, constructorArgs: BytesLike, value: BigNumberish], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "deriveKey(string,string,uint32,string)" + ): TypedContractMethod< + [ + mnemonic: string, + derivationPath: string, + index: BigNumberish, + language: string + ], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "deriveKey(string,uint32,string)" + ): TypedContractMethod< + [mnemonic: string, index: BigNumberish, language: string], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "deriveKey(string,uint32)" + ): TypedContractMethod< + [mnemonic: string, index: BigNumberish], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "deriveKey(string,string,uint32)" + ): TypedContractMethod< + [mnemonic: string, derivationPath: string, index: BigNumberish], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "ensNamehash" + ): TypedContractMethod<[name: string], [string], "view">; + getFunction( + nameOrSignature: "envAddress(string)" + ): TypedContractMethod<[name: string], [string], "view">; + getFunction( + nameOrSignature: "envAddress(string,string)" + ): TypedContractMethod<[name: string, delim: string], [string[]], "view">; + getFunction( + nameOrSignature: "envBool(string)" + ): TypedContractMethod<[name: string], [boolean], "view">; + getFunction( + nameOrSignature: "envBool(string,string)" + ): TypedContractMethod<[name: string, delim: string], [boolean[]], "view">; + getFunction( + nameOrSignature: "envBytes(string)" + ): TypedContractMethod<[name: string], [string], "view">; + getFunction( + nameOrSignature: "envBytes(string,string)" + ): TypedContractMethod<[name: string, delim: string], [string[]], "view">; + getFunction( + nameOrSignature: "envBytes32(string,string)" + ): TypedContractMethod<[name: string, delim: string], [string[]], "view">; + getFunction( + nameOrSignature: "envBytes32(string)" + ): TypedContractMethod<[name: string], [string], "view">; + getFunction( + nameOrSignature: "envExists" + ): TypedContractMethod<[name: string], [boolean], "view">; + getFunction( + nameOrSignature: "envInt(string,string)" + ): TypedContractMethod<[name: string, delim: string], [bigint[]], "view">; + getFunction( + nameOrSignature: "envInt(string)" + ): TypedContractMethod<[name: string], [bigint], "view">; + getFunction( + nameOrSignature: "envOr(string,string,bytes32[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: BytesLike[]], + [string[]], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string,int256[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: BigNumberish[]], + [bigint[]], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,bool)" + ): TypedContractMethod< + [name: string, defaultValue: boolean], + [boolean], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,address)" + ): TypedContractMethod< + [name: string, defaultValue: AddressLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,uint256)" + ): TypedContractMethod< + [name: string, defaultValue: BigNumberish], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string,bytes[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: BytesLike[]], + [string[]], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string,uint256[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: BigNumberish[]], + [bigint[]], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string,string[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: string[]], + [string[]], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,bytes)" + ): TypedContractMethod< + [name: string, defaultValue: BytesLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,bytes32)" + ): TypedContractMethod< + [name: string, defaultValue: BytesLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,int256)" + ): TypedContractMethod< + [name: string, defaultValue: BigNumberish], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string,address[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: AddressLike[]], + [string[]], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string)" + ): TypedContractMethod< + [name: string, defaultValue: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string,bool[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: boolean[]], + [boolean[]], + "view" + >; + getFunction( + nameOrSignature: "envString(string,string)" + ): TypedContractMethod<[name: string, delim: string], [string[]], "view">; + getFunction( + nameOrSignature: "envString(string)" + ): TypedContractMethod<[name: string], [string], "view">; + getFunction( + nameOrSignature: "envUint(string)" + ): TypedContractMethod<[name: string], [bigint], "view">; + getFunction( + nameOrSignature: "envUint(string,string)" + ): TypedContractMethod<[name: string, delim: string], [bigint[]], "view">; + getFunction( + nameOrSignature: "eth_getLogs" + ): TypedContractMethod< + [ + fromBlock: BigNumberish, + toBlock: BigNumberish, + target: AddressLike, + topics: BytesLike[] + ], + [VmSafe.EthGetLogsStructOutput[]], + "nonpayable" + >; + getFunction( + nameOrSignature: "exists" + ): TypedContractMethod<[path: string], [boolean], "view">; + getFunction( + nameOrSignature: "ffi" + ): TypedContractMethod<[commandInput: string[]], [string], "nonpayable">; + getFunction( + nameOrSignature: "foundryVersionAtLeast" + ): TypedContractMethod<[version: string], [boolean], "view">; + getFunction( + nameOrSignature: "foundryVersionCmp" + ): TypedContractMethod<[version: string], [bigint], "view">; + getFunction( + nameOrSignature: "fsMetadata" + ): TypedContractMethod< + [path: string], + [VmSafe.FsMetadataStructOutput], + "view" + >; + getFunction( + nameOrSignature: "getArtifactPathByCode" + ): TypedContractMethod<[code: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "getArtifactPathByDeployedCode" + ): TypedContractMethod<[deployedCode: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "getBlobBaseFee" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "getBlockNumber" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "getBlockTimestamp" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "getBroadcast" + ): TypedContractMethod< + [contractName: string, chainId: BigNumberish, txType: BigNumberish], + [VmSafe.BroadcastTxSummaryStructOutput], + "view" + >; + getFunction( + nameOrSignature: "getBroadcasts(string,uint64)" + ): TypedContractMethod< + [contractName: string, chainId: BigNumberish], + [VmSafe.BroadcastTxSummaryStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "getBroadcasts(string,uint64,uint8)" + ): TypedContractMethod< + [contractName: string, chainId: BigNumberish, txType: BigNumberish], + [VmSafe.BroadcastTxSummaryStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "getChain(string)" + ): TypedContractMethod< + [chainAlias: string], + [VmSafe.ChainStructOutput], + "view" + >; + getFunction( + nameOrSignature: "getChain(uint256)" + ): TypedContractMethod< + [chainId: BigNumberish], + [VmSafe.ChainStructOutput], + "view" + >; + getFunction( + nameOrSignature: "getCode" + ): TypedContractMethod<[artifactPath: string], [string], "view">; + getFunction( + nameOrSignature: "getDeployedCode" + ): TypedContractMethod<[artifactPath: string], [string], "view">; + getFunction( + nameOrSignature: "getDeployment(string,uint64)" + ): TypedContractMethod< + [contractName: string, chainId: BigNumberish], + [string], + "view" + >; + getFunction( + nameOrSignature: "getDeployment(string)" + ): TypedContractMethod<[contractName: string], [string], "view">; + getFunction( + nameOrSignature: "getDeployments" + ): TypedContractMethod< + [contractName: string, chainId: BigNumberish], + [string[]], + "view" + >; + getFunction( + nameOrSignature: "getFoundryVersion" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "getLabel" + ): TypedContractMethod<[account: AddressLike], [string], "view">; + getFunction( + nameOrSignature: "getMappingKeyAndParentOf" + ): TypedContractMethod< + [target: AddressLike, elementSlot: BytesLike], + [ + [boolean, string, string] & { + found: boolean; + key: string; + parent: string; + } + ], + "nonpayable" + >; + getFunction( + nameOrSignature: "getMappingLength" + ): TypedContractMethod< + [target: AddressLike, mappingSlot: BytesLike], + [bigint], + "nonpayable" + >; + getFunction( + nameOrSignature: "getMappingSlotAt" + ): TypedContractMethod< + [target: AddressLike, mappingSlot: BytesLike, idx: BigNumberish], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "getNonce(address)" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "getNonce((address,uint256,uint256,uint256))" + ): TypedContractMethod<[wallet: VmSafe.WalletStruct], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "getRecordedLogs" + ): TypedContractMethod<[], [VmSafe.LogStructOutput[]], "nonpayable">; + getFunction( + nameOrSignature: "getStateDiff" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "getStateDiffJson" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "getWallets" + ): TypedContractMethod<[], [string[]], "nonpayable">; + getFunction( + nameOrSignature: "indexOf" + ): TypedContractMethod<[input: string, key: string], [bigint], "view">; + getFunction( + nameOrSignature: "isContext" + ): TypedContractMethod<[context: BigNumberish], [boolean], "view">; + getFunction( + nameOrSignature: "isDir" + ): TypedContractMethod<[path: string], [boolean], "view">; + getFunction( + nameOrSignature: "isFile" + ): TypedContractMethod<[path: string], [boolean], "view">; + getFunction( + nameOrSignature: "keyExists" + ): TypedContractMethod<[json: string, key: string], [boolean], "view">; + getFunction( + nameOrSignature: "keyExistsJson" + ): TypedContractMethod<[json: string, key: string], [boolean], "view">; + getFunction( + nameOrSignature: "keyExistsToml" + ): TypedContractMethod<[toml: string, key: string], [boolean], "view">; + getFunction( + nameOrSignature: "label" + ): TypedContractMethod< + [account: AddressLike, newLabel: string], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "lastCallGas" + ): TypedContractMethod<[], [VmSafe.GasStructOutput], "view">; + getFunction( + nameOrSignature: "load" + ): TypedContractMethod< + [target: AddressLike, slot: BytesLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "parseAddress" + ): TypedContractMethod<[stringifiedValue: string], [string], "view">; + getFunction( + nameOrSignature: "parseBool" + ): TypedContractMethod<[stringifiedValue: string], [boolean], "view">; + getFunction( + nameOrSignature: "parseBytes" + ): TypedContractMethod<[stringifiedValue: string], [string], "view">; + getFunction( + nameOrSignature: "parseBytes32" + ): TypedContractMethod<[stringifiedValue: string], [string], "view">; + getFunction( + nameOrSignature: "parseInt" + ): TypedContractMethod<[stringifiedValue: string], [bigint], "view">; + getFunction( + nameOrSignature: "parseJson(string)" + ): TypedContractMethod<[json: string], [string], "view">; + getFunction( + nameOrSignature: "parseJson(string,string)" + ): TypedContractMethod<[json: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseJsonAddress" + ): TypedContractMethod<[json: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseJsonAddressArray" + ): TypedContractMethod<[json: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseJsonBool" + ): TypedContractMethod<[json: string, key: string], [boolean], "view">; + getFunction( + nameOrSignature: "parseJsonBoolArray" + ): TypedContractMethod<[json: string, key: string], [boolean[]], "view">; + getFunction( + nameOrSignature: "parseJsonBytes" + ): TypedContractMethod<[json: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseJsonBytes32" + ): TypedContractMethod<[json: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseJsonBytes32Array" + ): TypedContractMethod<[json: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseJsonBytesArray" + ): TypedContractMethod<[json: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseJsonInt" + ): TypedContractMethod<[json: string, key: string], [bigint], "view">; + getFunction( + nameOrSignature: "parseJsonIntArray" + ): TypedContractMethod<[json: string, key: string], [bigint[]], "view">; + getFunction( + nameOrSignature: "parseJsonKeys" + ): TypedContractMethod<[json: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseJsonString" + ): TypedContractMethod<[json: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseJsonStringArray" + ): TypedContractMethod<[json: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseJsonType(string,string)" + ): TypedContractMethod< + [json: string, typeDescription: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "parseJsonType(string,string,string)" + ): TypedContractMethod< + [json: string, key: string, typeDescription: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "parseJsonTypeArray" + ): TypedContractMethod< + [json: string, key: string, typeDescription: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "parseJsonUint" + ): TypedContractMethod<[json: string, key: string], [bigint], "view">; + getFunction( + nameOrSignature: "parseJsonUintArray" + ): TypedContractMethod<[json: string, key: string], [bigint[]], "view">; + getFunction( + nameOrSignature: "parseToml(string,string)" + ): TypedContractMethod<[toml: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseToml(string)" + ): TypedContractMethod<[toml: string], [string], "view">; + getFunction( + nameOrSignature: "parseTomlAddress" + ): TypedContractMethod<[toml: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseTomlAddressArray" + ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseTomlBool" + ): TypedContractMethod<[toml: string, key: string], [boolean], "view">; + getFunction( + nameOrSignature: "parseTomlBoolArray" + ): TypedContractMethod<[toml: string, key: string], [boolean[]], "view">; + getFunction( + nameOrSignature: "parseTomlBytes" + ): TypedContractMethod<[toml: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseTomlBytes32" + ): TypedContractMethod<[toml: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseTomlBytes32Array" + ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseTomlBytesArray" + ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseTomlInt" + ): TypedContractMethod<[toml: string, key: string], [bigint], "view">; + getFunction( + nameOrSignature: "parseTomlIntArray" + ): TypedContractMethod<[toml: string, key: string], [bigint[]], "view">; + getFunction( + nameOrSignature: "parseTomlKeys" + ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseTomlString" + ): TypedContractMethod<[toml: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseTomlStringArray" + ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseTomlType(string,string)" + ): TypedContractMethod< + [toml: string, typeDescription: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "parseTomlType(string,string,string)" + ): TypedContractMethod< + [toml: string, key: string, typeDescription: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "parseTomlTypeArray" + ): TypedContractMethod< + [toml: string, key: string, typeDescription: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "parseTomlUint" + ): TypedContractMethod<[toml: string, key: string], [bigint], "view">; + getFunction( + nameOrSignature: "parseTomlUintArray" + ): TypedContractMethod<[toml: string, key: string], [bigint[]], "view">; + getFunction( + nameOrSignature: "parseUint" + ): TypedContractMethod<[stringifiedValue: string], [bigint], "view">; + getFunction( + nameOrSignature: "pauseGasMetering" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "pauseTracing" + ): TypedContractMethod<[], [void], "view">; + getFunction( + nameOrSignature: "projectRoot" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "prompt" + ): TypedContractMethod<[promptText: string], [string], "nonpayable">; + getFunction( + nameOrSignature: "promptAddress" + ): TypedContractMethod<[promptText: string], [string], "nonpayable">; + getFunction( + nameOrSignature: "promptSecret" + ): TypedContractMethod<[promptText: string], [string], "nonpayable">; + getFunction( + nameOrSignature: "promptSecretUint" + ): TypedContractMethod<[promptText: string], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "promptUint" + ): TypedContractMethod<[promptText: string], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "publicKeyP256" + ): TypedContractMethod< + [privateKey: BigNumberish], + [[bigint, bigint] & { publicKeyX: bigint; publicKeyY: bigint }], + "view" + >; + getFunction( + nameOrSignature: "randomAddress" + ): TypedContractMethod<[], [string], "nonpayable">; + getFunction( + nameOrSignature: "randomBool" + ): TypedContractMethod<[], [boolean], "view">; + getFunction( + nameOrSignature: "randomBytes" + ): TypedContractMethod<[len: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "randomBytes4" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "randomBytes8" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "randomInt()" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "randomInt(uint256)" + ): TypedContractMethod<[bits: BigNumberish], [bigint], "view">; + getFunction( + nameOrSignature: "randomUint()" + ): TypedContractMethod<[], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "randomUint(uint256)" + ): TypedContractMethod<[bits: BigNumberish], [bigint], "view">; + getFunction( + nameOrSignature: "randomUint(uint256,uint256)" + ): TypedContractMethod< + [min: BigNumberish, max: BigNumberish], + [bigint], + "nonpayable" + >; + getFunction( + nameOrSignature: "readDir(string,uint64)" + ): TypedContractMethod< + [path: string, maxDepth: BigNumberish], + [VmSafe.DirEntryStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "readDir(string,uint64,bool)" + ): TypedContractMethod< + [path: string, maxDepth: BigNumberish, followLinks: boolean], + [VmSafe.DirEntryStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "readDir(string)" + ): TypedContractMethod< + [path: string], + [VmSafe.DirEntryStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "readFile" + ): TypedContractMethod<[path: string], [string], "view">; + getFunction( + nameOrSignature: "readFileBinary" + ): TypedContractMethod<[path: string], [string], "view">; + getFunction( + nameOrSignature: "readLine" + ): TypedContractMethod<[path: string], [string], "view">; + getFunction( + nameOrSignature: "readLink" + ): TypedContractMethod<[linkPath: string], [string], "view">; + getFunction( + nameOrSignature: "record" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "recordLogs" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "rememberKey" + ): TypedContractMethod<[privateKey: BigNumberish], [string], "nonpayable">; + getFunction( + nameOrSignature: "rememberKeys(string,string,uint32)" + ): TypedContractMethod< + [mnemonic: string, derivationPath: string, count: BigNumberish], + [string[]], + "nonpayable" + >; + getFunction( + nameOrSignature: "rememberKeys(string,string,string,uint32)" + ): TypedContractMethod< + [ + mnemonic: string, + derivationPath: string, + language: string, + count: BigNumberish + ], + [string[]], + "nonpayable" + >; + getFunction( + nameOrSignature: "removeDir" + ): TypedContractMethod< + [path: string, recursive: boolean], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "removeFile" + ): TypedContractMethod<[path: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "replace" + ): TypedContractMethod< + [input: string, from: string, to: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "resetGasMetering" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "resumeGasMetering" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "resumeTracing" + ): TypedContractMethod<[], [void], "view">; + getFunction( + nameOrSignature: "rpc(string,string,string)" + ): TypedContractMethod< + [urlOrAlias: string, method: string, params: string], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "rpc(string,string)" + ): TypedContractMethod< + [method: string, params: string], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "rpcUrl" + ): TypedContractMethod<[rpcAlias: string], [string], "view">; + getFunction( + nameOrSignature: "rpcUrlStructs" + ): TypedContractMethod<[], [VmSafe.RpcStructOutput[]], "view">; + getFunction( + nameOrSignature: "rpcUrls" + ): TypedContractMethod<[], [[string, string][]], "view">; + getFunction( + nameOrSignature: "serializeAddress(string,string,address[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: AddressLike[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeAddress(string,string,address)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: AddressLike], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeBool(string,string,bool[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: boolean[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeBool(string,string,bool)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: boolean], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeBytes(string,string,bytes[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: BytesLike[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeBytes(string,string,bytes)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: BytesLike], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeBytes32(string,string,bytes32[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: BytesLike[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeBytes32(string,string,bytes32)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: BytesLike], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeInt(string,string,int256)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: BigNumberish], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeInt(string,string,int256[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: BigNumberish[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeJson" + ): TypedContractMethod< + [objectKey: string, value: string], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeJsonType(string,bytes)" + ): TypedContractMethod< + [typeDescription: string, value: BytesLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "serializeJsonType(string,string,string,bytes)" + ): TypedContractMethod< + [ + objectKey: string, + valueKey: string, + typeDescription: string, + value: BytesLike + ], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeString(string,string,string[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: string[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeString(string,string,string)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: string], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeUint(string,string,uint256)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: BigNumberish], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeUint(string,string,uint256[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: BigNumberish[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeUintToHex" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: BigNumberish], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "setArbitraryStorage(address,bool)" + ): TypedContractMethod< + [target: AddressLike, overwrite: boolean], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setArbitraryStorage(address)" + ): TypedContractMethod<[target: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "setEnv" + ): TypedContractMethod<[name: string, value: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "shuffle" + ): TypedContractMethod<[array: BigNumberish[]], [bigint[]], "nonpayable">; + getFunction( + nameOrSignature: "sign(bytes32)" + ): TypedContractMethod< + [digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "view" + >; + getFunction( + nameOrSignature: "sign(address,bytes32)" + ): TypedContractMethod< + [signer: AddressLike, digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "view" + >; + getFunction( + nameOrSignature: "sign((address,uint256,uint256,uint256),bytes32)" + ): TypedContractMethod< + [wallet: VmSafe.WalletStruct, digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "nonpayable" + >; + getFunction( + nameOrSignature: "sign(uint256,bytes32)" + ): TypedContractMethod< + [privateKey: BigNumberish, digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "view" + >; + getFunction( + nameOrSignature: "signAndAttachDelegation(address,uint256)" + ): TypedContractMethod< + [implementation: AddressLike, privateKey: BigNumberish], + [VmSafe.SignedDelegationStructOutput], + "nonpayable" + >; + getFunction( + nameOrSignature: "signAndAttachDelegation(address,uint256,uint64)" + ): TypedContractMethod< + [ + implementation: AddressLike, + privateKey: BigNumberish, + nonce: BigNumberish + ], + [VmSafe.SignedDelegationStructOutput], + "nonpayable" + >; + getFunction( + nameOrSignature: "signCompact((address,uint256,uint256,uint256),bytes32)" + ): TypedContractMethod< + [wallet: VmSafe.WalletStruct, digest: BytesLike], + [[string, string] & { r: string; vs: string }], + "nonpayable" + >; + getFunction( + nameOrSignature: "signCompact(address,bytes32)" + ): TypedContractMethod< + [signer: AddressLike, digest: BytesLike], + [[string, string] & { r: string; vs: string }], + "view" + >; + getFunction( + nameOrSignature: "signCompact(bytes32)" + ): TypedContractMethod< + [digest: BytesLike], + [[string, string] & { r: string; vs: string }], + "view" + >; + getFunction( + nameOrSignature: "signCompact(uint256,bytes32)" + ): TypedContractMethod< + [privateKey: BigNumberish, digest: BytesLike], + [[string, string] & { r: string; vs: string }], + "view" + >; + getFunction( + nameOrSignature: "signDelegation(address,uint256)" + ): TypedContractMethod< + [implementation: AddressLike, privateKey: BigNumberish], + [VmSafe.SignedDelegationStructOutput], + "nonpayable" + >; + getFunction( + nameOrSignature: "signDelegation(address,uint256,uint64)" + ): TypedContractMethod< + [ + implementation: AddressLike, + privateKey: BigNumberish, + nonce: BigNumberish + ], + [VmSafe.SignedDelegationStructOutput], + "nonpayable" + >; + getFunction( + nameOrSignature: "signP256" + ): TypedContractMethod< + [privateKey: BigNumberish, digest: BytesLike], + [[string, string] & { r: string; s: string }], + "view" + >; + getFunction( + nameOrSignature: "sleep" + ): TypedContractMethod<[duration: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "sort" + ): TypedContractMethod<[array: BigNumberish[]], [bigint[]], "nonpayable">; + getFunction( + nameOrSignature: "split" + ): TypedContractMethod< + [input: string, delimiter: string], + [string[]], + "view" + >; + getFunction( + nameOrSignature: "startBroadcast()" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "startBroadcast(address)" + ): TypedContractMethod<[signer: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "startBroadcast(uint256)" + ): TypedContractMethod<[privateKey: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "startDebugTraceRecording" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "startMappingRecording" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "startStateDiffRecording" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "stopAndReturnDebugTraceRecording" + ): TypedContractMethod<[], [VmSafe.DebugStepStructOutput[]], "nonpayable">; + getFunction( + nameOrSignature: "stopAndReturnStateDiff" + ): TypedContractMethod< + [], + [VmSafe.AccountAccessStructOutput[]], + "nonpayable" + >; + getFunction( + nameOrSignature: "stopBroadcast" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "stopMappingRecording" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "toBase64(string)" + ): TypedContractMethod<[data: string], [string], "view">; + getFunction( + nameOrSignature: "toBase64(bytes)" + ): TypedContractMethod<[data: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "toBase64URL(string)" + ): TypedContractMethod<[data: string], [string], "view">; + getFunction( + nameOrSignature: "toBase64URL(bytes)" + ): TypedContractMethod<[data: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "toLowercase" + ): TypedContractMethod<[input: string], [string], "view">; + getFunction( + nameOrSignature: "toString(address)" + ): TypedContractMethod<[value: AddressLike], [string], "view">; + getFunction( + nameOrSignature: "toString(uint256)" + ): TypedContractMethod<[value: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "toString(bytes)" + ): TypedContractMethod<[value: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "toString(bool)" + ): TypedContractMethod<[value: boolean], [string], "view">; + getFunction( + nameOrSignature: "toString(int256)" + ): TypedContractMethod<[value: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "toString(bytes32)" + ): TypedContractMethod<[value: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "toUppercase" + ): TypedContractMethod<[input: string], [string], "view">; + getFunction( + nameOrSignature: "trim" + ): TypedContractMethod<[input: string], [string], "view">; + getFunction( + nameOrSignature: "tryFfi" + ): TypedContractMethod< + [commandInput: string[]], + [VmSafe.FfiResultStructOutput], + "nonpayable" + >; + getFunction( + nameOrSignature: "unixTime" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "writeFile" + ): TypedContractMethod<[path: string, data: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "writeFileBinary" + ): TypedContractMethod<[path: string, data: BytesLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "writeJson(string,string,string)" + ): TypedContractMethod< + [json: string, path: string, valueKey: string], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "writeJson(string,string)" + ): TypedContractMethod<[json: string, path: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "writeLine" + ): TypedContractMethod<[path: string, data: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "writeToml(string,string,string)" + ): TypedContractMethod< + [json: string, path: string, valueKey: string], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "writeToml(string,string)" + ): TypedContractMethod<[json: string, path: string], [void], "nonpayable">; + + filters: {}; +} diff --git a/typechain-types/forge-std/Vm.sol/index.ts b/typechain-types/forge-std/Vm.sol/index.ts new file mode 100644 index 00000000..6ea1a166 --- /dev/null +++ b/typechain-types/forge-std/Vm.sol/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { Vm } from "./Vm"; +export type { VmSafe } from "./VmSafe"; diff --git a/typechain-types/forge-std/index.ts b/typechain-types/forge-std/index.ts new file mode 100644 index 00000000..6531f389 --- /dev/null +++ b/typechain-types/forge-std/index.ts @@ -0,0 +1,14 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as stdErrorSol from "./StdError.sol"; +export type { stdErrorSol }; +import type * as stdStorageSol from "./StdStorage.sol"; +export type { stdStorageSol }; +import type * as vmSol from "./Vm.sol"; +export type { vmSol }; +import type * as interfaces from "./interfaces"; +export type { interfaces }; +export type { StdAssertions } from "./StdAssertions"; +export type { StdInvariant } from "./StdInvariant"; +export type { Test } from "./Test"; diff --git a/typechain-types/forge-std/interfaces/IMulticall3.ts b/typechain-types/forge-std/interfaces/IMulticall3.ts new file mode 100644 index 00000000..cd484dee --- /dev/null +++ b/typechain-types/forge-std/interfaces/IMulticall3.ts @@ -0,0 +1,416 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../common"; + +export declare namespace IMulticall3 { + export type CallStruct = { target: AddressLike; callData: BytesLike }; + + export type CallStructOutput = [target: string, callData: string] & { + target: string; + callData: string; + }; + + export type Call3Struct = { + target: AddressLike; + allowFailure: boolean; + callData: BytesLike; + }; + + export type Call3StructOutput = [ + target: string, + allowFailure: boolean, + callData: string + ] & { target: string; allowFailure: boolean; callData: string }; + + export type ResultStruct = { success: boolean; returnData: BytesLike }; + + export type ResultStructOutput = [success: boolean, returnData: string] & { + success: boolean; + returnData: string; + }; + + export type Call3ValueStruct = { + target: AddressLike; + allowFailure: boolean; + value: BigNumberish; + callData: BytesLike; + }; + + export type Call3ValueStructOutput = [ + target: string, + allowFailure: boolean, + value: bigint, + callData: string + ] & { + target: string; + allowFailure: boolean; + value: bigint; + callData: string; + }; +} + +export interface IMulticall3Interface extends Interface { + getFunction( + nameOrSignature: + | "aggregate" + | "aggregate3" + | "aggregate3Value" + | "blockAndAggregate" + | "getBasefee" + | "getBlockHash" + | "getBlockNumber" + | "getChainId" + | "getCurrentBlockCoinbase" + | "getCurrentBlockDifficulty" + | "getCurrentBlockGasLimit" + | "getCurrentBlockTimestamp" + | "getEthBalance" + | "getLastBlockHash" + | "tryAggregate" + | "tryBlockAndAggregate" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "aggregate", + values: [IMulticall3.CallStruct[]] + ): string; + encodeFunctionData( + functionFragment: "aggregate3", + values: [IMulticall3.Call3Struct[]] + ): string; + encodeFunctionData( + functionFragment: "aggregate3Value", + values: [IMulticall3.Call3ValueStruct[]] + ): string; + encodeFunctionData( + functionFragment: "blockAndAggregate", + values: [IMulticall3.CallStruct[]] + ): string; + encodeFunctionData( + functionFragment: "getBasefee", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getBlockHash", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getBlockNumber", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getChainId", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getCurrentBlockCoinbase", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getCurrentBlockDifficulty", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getCurrentBlockGasLimit", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getCurrentBlockTimestamp", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getEthBalance", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "getLastBlockHash", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "tryAggregate", + values: [boolean, IMulticall3.CallStruct[]] + ): string; + encodeFunctionData( + functionFragment: "tryBlockAndAggregate", + values: [boolean, IMulticall3.CallStruct[]] + ): string; + + decodeFunctionResult(functionFragment: "aggregate", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "aggregate3", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "aggregate3Value", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "blockAndAggregate", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "getBasefee", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getBlockHash", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getBlockNumber", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "getChainId", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getCurrentBlockCoinbase", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getCurrentBlockDifficulty", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getCurrentBlockGasLimit", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getCurrentBlockTimestamp", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getEthBalance", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getLastBlockHash", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "tryAggregate", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "tryBlockAndAggregate", + data: BytesLike + ): Result; +} + +export interface IMulticall3 extends BaseContract { + connect(runner?: ContractRunner | null): IMulticall3; + waitForDeployment(): Promise; + + interface: IMulticall3Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + aggregate: TypedContractMethod< + [calls: IMulticall3.CallStruct[]], + [[bigint, string[]] & { blockNumber: bigint; returnData: string[] }], + "payable" + >; + + aggregate3: TypedContractMethod< + [calls: IMulticall3.Call3Struct[]], + [IMulticall3.ResultStructOutput[]], + "payable" + >; + + aggregate3Value: TypedContractMethod< + [calls: IMulticall3.Call3ValueStruct[]], + [IMulticall3.ResultStructOutput[]], + "payable" + >; + + blockAndAggregate: TypedContractMethod< + [calls: IMulticall3.CallStruct[]], + [ + [bigint, string, IMulticall3.ResultStructOutput[]] & { + blockNumber: bigint; + blockHash: string; + returnData: IMulticall3.ResultStructOutput[]; + } + ], + "payable" + >; + + getBasefee: TypedContractMethod<[], [bigint], "view">; + + getBlockHash: TypedContractMethod< + [blockNumber: BigNumberish], + [string], + "view" + >; + + getBlockNumber: TypedContractMethod<[], [bigint], "view">; + + getChainId: TypedContractMethod<[], [bigint], "view">; + + getCurrentBlockCoinbase: TypedContractMethod<[], [string], "view">; + + getCurrentBlockDifficulty: TypedContractMethod<[], [bigint], "view">; + + getCurrentBlockGasLimit: TypedContractMethod<[], [bigint], "view">; + + getCurrentBlockTimestamp: TypedContractMethod<[], [bigint], "view">; + + getEthBalance: TypedContractMethod<[addr: AddressLike], [bigint], "view">; + + getLastBlockHash: TypedContractMethod<[], [string], "view">; + + tryAggregate: TypedContractMethod< + [requireSuccess: boolean, calls: IMulticall3.CallStruct[]], + [IMulticall3.ResultStructOutput[]], + "payable" + >; + + tryBlockAndAggregate: TypedContractMethod< + [requireSuccess: boolean, calls: IMulticall3.CallStruct[]], + [ + [bigint, string, IMulticall3.ResultStructOutput[]] & { + blockNumber: bigint; + blockHash: string; + returnData: IMulticall3.ResultStructOutput[]; + } + ], + "payable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "aggregate" + ): TypedContractMethod< + [calls: IMulticall3.CallStruct[]], + [[bigint, string[]] & { blockNumber: bigint; returnData: string[] }], + "payable" + >; + getFunction( + nameOrSignature: "aggregate3" + ): TypedContractMethod< + [calls: IMulticall3.Call3Struct[]], + [IMulticall3.ResultStructOutput[]], + "payable" + >; + getFunction( + nameOrSignature: "aggregate3Value" + ): TypedContractMethod< + [calls: IMulticall3.Call3ValueStruct[]], + [IMulticall3.ResultStructOutput[]], + "payable" + >; + getFunction( + nameOrSignature: "blockAndAggregate" + ): TypedContractMethod< + [calls: IMulticall3.CallStruct[]], + [ + [bigint, string, IMulticall3.ResultStructOutput[]] & { + blockNumber: bigint; + blockHash: string; + returnData: IMulticall3.ResultStructOutput[]; + } + ], + "payable" + >; + getFunction( + nameOrSignature: "getBasefee" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "getBlockHash" + ): TypedContractMethod<[blockNumber: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "getBlockNumber" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "getChainId" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "getCurrentBlockCoinbase" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "getCurrentBlockDifficulty" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "getCurrentBlockGasLimit" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "getCurrentBlockTimestamp" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "getEthBalance" + ): TypedContractMethod<[addr: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "getLastBlockHash" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "tryAggregate" + ): TypedContractMethod< + [requireSuccess: boolean, calls: IMulticall3.CallStruct[]], + [IMulticall3.ResultStructOutput[]], + "payable" + >; + getFunction( + nameOrSignature: "tryBlockAndAggregate" + ): TypedContractMethod< + [requireSuccess: boolean, calls: IMulticall3.CallStruct[]], + [ + [bigint, string, IMulticall3.ResultStructOutput[]] & { + blockNumber: bigint; + blockHash: string; + returnData: IMulticall3.ResultStructOutput[]; + } + ], + "payable" + >; + + filters: {}; +} diff --git a/typechain-types/forge-std/interfaces/index.ts b/typechain-types/forge-std/interfaces/index.ts new file mode 100644 index 00000000..a368e0a3 --- /dev/null +++ b/typechain-types/forge-std/interfaces/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IMulticall3 } from "./IMulticall3"; diff --git a/typechain-types/hardhat.d.ts b/typechain-types/hardhat.d.ts new file mode 100644 index 00000000..31f8910b --- /dev/null +++ b/typechain-types/hardhat.d.ts @@ -0,0 +1,2223 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { ethers } from "ethers"; +import { + DeployContractOptions, + FactoryOptions, + HardhatEthersHelpers as HardhatEthersHelpersBase, +} from "@nomicfoundation/hardhat-ethers/types"; + +import * as Contracts from "."; + +declare module "hardhat/types/runtime" { + interface HardhatEthersHelpers extends HardhatEthersHelpersBase { + getContractFactory( + name: "AccessControlUpgradeable", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "Initializable", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "UUPSUpgradeable", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ContextUpgradeable", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ERC165Upgradeable", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "PausableUpgradeable", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ReentrancyGuardUpgradeable", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IAccessControl", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IERC1822Proxiable", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IERC1155Errors", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IERC20Errors", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IERC721Errors", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IERC1363", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IERC1967", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IBeacon", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ERC1967Proxy", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ERC1967Utils", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "Proxy", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ERC20", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IERC20Metadata", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IERC20", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "SafeERC20", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "Address", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "Errors", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IERC165", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IERC20", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IUniswapV2Callee", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IUniswapV2ERC20", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IUniswapV2Factory", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IUniswapV2Pair", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "UniswapV2ERC20", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "UniswapV2Factory", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "UniswapV2Pair", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IERC20", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IUniswapV2Router01", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IUniswapV2Router02", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IWETH", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "UniswapV2Router02", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IUniswapV3SwapCallback", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ISwapRouter", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "INotSupportedMethods", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ERC20Custody", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "GatewayEVM", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IERC20Custody", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IERC20CustodyErrors", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IERC20CustodyEvents", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "Callable", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IGatewayEVM", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IGatewayEVMErrors", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IGatewayEVMEvents", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IZetaConnectorEvents", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IZetaNonEthNew", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ZetaConnectorBase", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ZetaConnectorNative", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ZetaConnectorNonNative", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "Abortable", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "Revertable", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "GatewayZEVM", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IGatewayZEVM", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IGatewayZEVMErrors", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IGatewayZEVMEvents", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ISystem", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IWETH9", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IZRC20", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IZRC20Metadata", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ZRC20Events", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "UniversalContract", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ZContract", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "SystemContract", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "SystemContractErrors", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "WETH9", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ZRC20", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ZRC20Errors", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "BytesHelperLib", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ZetaEthMock", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "OnlySystem", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "Revertable", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IERC20", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IWETH", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IZRC20", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IZRC20Metadata", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ZRC20Events", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "Math", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "UniswapV2Library", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "MockZRC20", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "TestUniswapRouter", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "WZETA", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "SwapHelperLib", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "SwapLibrary", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "SystemContract", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "SystemContractErrors", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "EVMSetup", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ITestERC20", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IZetaNonEth", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "FoundrySetup", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ERC20Mock", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IZRC20Mock", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ZRC20Mock", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "NodeLogicMock", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "WrapGatewayEVM", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "WrapGatewayZEVM", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "TokenSetup", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IUniswapV2Factory", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IUniswapV2Router02", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "UniswapV2SetupLib", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "INonfungiblePositionManager", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IUniswapV3Factory", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IUniswapV3Pool", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "UniswapV3SetupLib", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ZetaSetup", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "TestZRC20", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "UniversalContract", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ZContract", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IMulticall3", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "StdAssertions", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "StdError", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "StdInvariant", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "StdStorageSafe", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "Test", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "Vm", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "VmSafe", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + + getContractAt( + name: "AccessControlUpgradeable", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "Initializable", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "UUPSUpgradeable", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "ContextUpgradeable", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "ERC165Upgradeable", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "PausableUpgradeable", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "ReentrancyGuardUpgradeable", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IAccessControl", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IERC1822Proxiable", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IERC1155Errors", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IERC20Errors", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IERC721Errors", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IERC1363", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IERC1967", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IBeacon", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "ERC1967Proxy", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "ERC1967Utils", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "Proxy", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "ERC20", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IERC20Metadata", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IERC20", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "SafeERC20", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "Address", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "Errors", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IERC165", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IERC20", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IUniswapV2Callee", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IUniswapV2ERC20", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IUniswapV2Factory", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IUniswapV2Pair", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "UniswapV2ERC20", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "UniswapV2Factory", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "UniswapV2Pair", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IERC20", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IUniswapV2Router01", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IUniswapV2Router02", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IWETH", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "UniswapV2Router02", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IUniswapV3SwapCallback", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "ISwapRouter", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "INotSupportedMethods", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "ERC20Custody", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "GatewayEVM", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IERC20Custody", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IERC20CustodyErrors", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IERC20CustodyEvents", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "Callable", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IGatewayEVM", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IGatewayEVMErrors", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IGatewayEVMEvents", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IZetaConnectorEvents", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IZetaNonEthNew", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "ZetaConnectorBase", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "ZetaConnectorNative", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "ZetaConnectorNonNative", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "Abortable", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "Revertable", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "GatewayZEVM", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IGatewayZEVM", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IGatewayZEVMErrors", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IGatewayZEVMEvents", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "ISystem", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IWETH9", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IZRC20", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IZRC20Metadata", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "ZRC20Events", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "UniversalContract", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "ZContract", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "SystemContract", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "SystemContractErrors", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "WETH9", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "ZRC20", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "ZRC20Errors", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "BytesHelperLib", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "ZetaEthMock", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "OnlySystem", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "Revertable", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IERC20", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IWETH", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IZRC20", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IZRC20Metadata", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "ZRC20Events", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "Math", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "UniswapV2Library", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "MockZRC20", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "TestUniswapRouter", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "WZETA", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "SwapHelperLib", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "SwapLibrary", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "SystemContract", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "SystemContractErrors", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "EVMSetup", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "ITestERC20", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IZetaNonEth", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "FoundrySetup", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "ERC20Mock", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IZRC20Mock", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "ZRC20Mock", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "NodeLogicMock", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "WrapGatewayEVM", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "WrapGatewayZEVM", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "TokenSetup", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IUniswapV2Factory", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IUniswapV2Router02", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "UniswapV2SetupLib", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "INonfungiblePositionManager", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IUniswapV3Factory", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IUniswapV3Pool", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "UniswapV3SetupLib", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "ZetaSetup", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "TestZRC20", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "UniversalContract", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "ZContract", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IMulticall3", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "StdAssertions", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "StdError", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "StdInvariant", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "StdStorageSafe", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "Test", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "Vm", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "VmSafe", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + + deployContract( + name: "AccessControlUpgradeable", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Initializable", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "UUPSUpgradeable", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ContextUpgradeable", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ERC165Upgradeable", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "PausableUpgradeable", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ReentrancyGuardUpgradeable", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IAccessControl", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC1822Proxiable", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC1155Errors", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC20Errors", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC721Errors", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC1363", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC1967", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IBeacon", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ERC1967Proxy", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ERC1967Utils", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Proxy", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ERC20", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC20Metadata", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC20", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "SafeERC20", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Address", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Errors", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC165", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC20", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IUniswapV2Callee", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IUniswapV2ERC20", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IUniswapV2Factory", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IUniswapV2Pair", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "UniswapV2ERC20", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "UniswapV2Factory", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "UniswapV2Pair", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC20", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IUniswapV2Router01", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IUniswapV2Router02", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IWETH", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "UniswapV2Router02", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IUniswapV3SwapCallback", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ISwapRouter", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "INotSupportedMethods", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ERC20Custody", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "GatewayEVM", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC20Custody", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC20CustodyErrors", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC20CustodyEvents", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Callable", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IGatewayEVM", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IGatewayEVMErrors", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IGatewayEVMEvents", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IZetaConnectorEvents", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IZetaNonEthNew", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ZetaConnectorBase", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ZetaConnectorNative", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ZetaConnectorNonNative", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Abortable", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Revertable", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "GatewayZEVM", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IGatewayZEVM", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IGatewayZEVMErrors", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IGatewayZEVMEvents", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ISystem", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IWETH9", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IZRC20", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IZRC20Metadata", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ZRC20Events", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "UniversalContract", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ZContract", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "SystemContract", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "SystemContractErrors", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "WETH9", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ZRC20", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ZRC20Errors", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "BytesHelperLib", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ZetaEthMock", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "OnlySystem", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Revertable", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC20", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IWETH", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IZRC20", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IZRC20Metadata", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ZRC20Events", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Math", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "UniswapV2Library", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "MockZRC20", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "TestUniswapRouter", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "WZETA", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "SwapHelperLib", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "SwapLibrary", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "SystemContract", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "SystemContractErrors", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "EVMSetup", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ITestERC20", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IZetaNonEth", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "FoundrySetup", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ERC20Mock", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IZRC20Mock", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ZRC20Mock", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "NodeLogicMock", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "WrapGatewayEVM", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "WrapGatewayZEVM", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "TokenSetup", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IUniswapV2Factory", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IUniswapV2Router02", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "UniswapV2SetupLib", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "INonfungiblePositionManager", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IUniswapV3Factory", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IUniswapV3Pool", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "UniswapV3SetupLib", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ZetaSetup", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "TestZRC20", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "UniversalContract", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ZContract", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IMulticall3", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "StdAssertions", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "StdError", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "StdInvariant", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "StdStorageSafe", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Test", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Vm", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "VmSafe", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + + deployContract( + name: "AccessControlUpgradeable", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Initializable", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "UUPSUpgradeable", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ContextUpgradeable", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ERC165Upgradeable", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "PausableUpgradeable", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ReentrancyGuardUpgradeable", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IAccessControl", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC1822Proxiable", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC1155Errors", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC20Errors", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC721Errors", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC1363", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC1967", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IBeacon", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ERC1967Proxy", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ERC1967Utils", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Proxy", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ERC20", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC20Metadata", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC20", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "SafeERC20", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Address", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Errors", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC165", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC20", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IUniswapV2Callee", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IUniswapV2ERC20", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IUniswapV2Factory", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IUniswapV2Pair", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "UniswapV2ERC20", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "UniswapV2Factory", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "UniswapV2Pair", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC20", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IUniswapV2Router01", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IUniswapV2Router02", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IWETH", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "UniswapV2Router02", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IUniswapV3SwapCallback", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ISwapRouter", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "INotSupportedMethods", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ERC20Custody", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "GatewayEVM", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC20Custody", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC20CustodyErrors", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC20CustodyEvents", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Callable", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IGatewayEVM", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IGatewayEVMErrors", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IGatewayEVMEvents", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IZetaConnectorEvents", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IZetaNonEthNew", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ZetaConnectorBase", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ZetaConnectorNative", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ZetaConnectorNonNative", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Abortable", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Revertable", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "GatewayZEVM", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IGatewayZEVM", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IGatewayZEVMErrors", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IGatewayZEVMEvents", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ISystem", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IWETH9", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IZRC20", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IZRC20Metadata", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ZRC20Events", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "UniversalContract", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ZContract", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "SystemContract", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "SystemContractErrors", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "WETH9", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ZRC20", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ZRC20Errors", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "BytesHelperLib", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ZetaEthMock", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "OnlySystem", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Revertable", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC20", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IWETH", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IZRC20", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IZRC20Metadata", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ZRC20Events", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Math", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "UniswapV2Library", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "MockZRC20", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "TestUniswapRouter", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "WZETA", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "SwapHelperLib", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "SwapLibrary", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "SystemContract", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "SystemContractErrors", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "EVMSetup", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ITestERC20", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IZetaNonEth", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "FoundrySetup", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ERC20Mock", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IZRC20Mock", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ZRC20Mock", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "NodeLogicMock", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "WrapGatewayEVM", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "WrapGatewayZEVM", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "TokenSetup", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IUniswapV2Factory", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IUniswapV2Router02", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "UniswapV2SetupLib", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "INonfungiblePositionManager", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IUniswapV3Factory", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IUniswapV3Pool", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "UniswapV3SetupLib", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ZetaSetup", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "TestZRC20", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "UniversalContract", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ZContract", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IMulticall3", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "StdAssertions", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "StdError", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "StdInvariant", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "StdStorageSafe", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Test", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Vm", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "VmSafe", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + + // default types + getContractFactory( + name: string, + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + abi: any[], + bytecode: ethers.BytesLike, + signer?: ethers.Signer + ): Promise; + getContractAt( + nameOrAbi: string | any[], + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + deployContract( + name: string, + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: string, + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + } +} diff --git a/typechain-types/index.ts b/typechain-types/index.ts new file mode 100644 index 00000000..c69db839 --- /dev/null +++ b/typechain-types/index.ts @@ -0,0 +1,228 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as openzeppelin from "./@openzeppelin"; +export type { openzeppelin }; +import type * as uniswap from "./@uniswap"; +export type { uniswap }; +import type * as zetachain from "./@zetachain"; +export type { zetachain }; +import type * as contracts from "./contracts"; +export type { contracts }; +import type * as forgeStd from "./forge-std"; +export type { forgeStd }; +export * as factories from "./factories"; +export type { AccessControlUpgradeable } from "./@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable"; +export { AccessControlUpgradeable__factory } from "./factories/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable__factory"; +export type { Initializable } from "./@openzeppelin/contracts-upgradeable/proxy/utils/Initializable"; +export { Initializable__factory } from "./factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory"; +export type { UUPSUpgradeable } from "./@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable"; +export { UUPSUpgradeable__factory } from "./factories/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable__factory"; +export type { ContextUpgradeable } from "./@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable"; +export { ContextUpgradeable__factory } from "./factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory"; +export type { ERC165Upgradeable } from "./@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable"; +export { ERC165Upgradeable__factory } from "./factories/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable__factory"; +export type { PausableUpgradeable } from "./@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable"; +export { PausableUpgradeable__factory } from "./factories/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable__factory"; +export type { ReentrancyGuardUpgradeable } from "./@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable"; +export { ReentrancyGuardUpgradeable__factory } from "./factories/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable__factory"; +export type { IAccessControl } from "./@openzeppelin/contracts/access/IAccessControl"; +export { IAccessControl__factory } from "./factories/@openzeppelin/contracts/access/IAccessControl__factory"; +export type { IERC1822Proxiable } from "./@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable"; +export { IERC1822Proxiable__factory } from "./factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory"; +export type { IERC1155Errors } from "./@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors"; +export { IERC1155Errors__factory } from "./factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors__factory"; +export type { IERC20Errors } from "./@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors"; +export { IERC20Errors__factory } from "./factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors__factory"; +export type { IERC721Errors } from "./@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors"; +export { IERC721Errors__factory } from "./factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors__factory"; +export type { IERC1363 } from "./@openzeppelin/contracts/interfaces/IERC1363"; +export { IERC1363__factory } from "./factories/@openzeppelin/contracts/interfaces/IERC1363__factory"; +export type { IERC1967 } from "./@openzeppelin/contracts/interfaces/IERC1967"; +export { IERC1967__factory } from "./factories/@openzeppelin/contracts/interfaces/IERC1967__factory"; +export type { IBeacon } from "./@openzeppelin/contracts/proxy/beacon/IBeacon"; +export { IBeacon__factory } from "./factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory"; +export type { ERC1967Proxy } from "./@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy"; +export { ERC1967Proxy__factory } from "./factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory"; +export type { ERC1967Utils } from "./@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils"; +export { ERC1967Utils__factory } from "./factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils__factory"; +export type { Proxy } from "./@openzeppelin/contracts/proxy/Proxy"; +export { Proxy__factory } from "./factories/@openzeppelin/contracts/proxy/Proxy__factory"; +export type { ERC20 } from "./@openzeppelin/contracts/token/ERC20/ERC20"; +export { ERC20__factory } from "./factories/@openzeppelin/contracts/token/ERC20/ERC20__factory"; +export type { IERC20Metadata } from "./@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata"; +export { IERC20Metadata__factory } from "./factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory"; +export type { IERC20 } from "./@openzeppelin/contracts/token/ERC20/IERC20"; +export { IERC20__factory } from "./factories/@openzeppelin/contracts/token/ERC20/IERC20__factory"; +export type { SafeERC20 } from "./@openzeppelin/contracts/token/ERC20/utils/SafeERC20"; +export { SafeERC20__factory } from "./factories/@openzeppelin/contracts/token/ERC20/utils/SafeERC20__factory"; +export type { Address } from "./@openzeppelin/contracts/utils/Address"; +export { Address__factory } from "./factories/@openzeppelin/contracts/utils/Address__factory"; +export type { Errors } from "./@openzeppelin/contracts/utils/Errors"; +export { Errors__factory } from "./factories/@openzeppelin/contracts/utils/Errors__factory"; +export type { IERC165 } from "./@openzeppelin/contracts/utils/introspection/IERC165"; +export { IERC165__factory } from "./factories/@openzeppelin/contracts/utils/introspection/IERC165__factory"; +export type { IUniswapV2Callee } from "./@uniswap/v2-core/contracts/interfaces/IUniswapV2Callee"; +export { IUniswapV2Callee__factory } from "./factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Callee__factory"; +export type { IUniswapV2ERC20 } from "./@uniswap/v2-core/contracts/interfaces/IUniswapV2ERC20"; +export { IUniswapV2ERC20__factory } from "./factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2ERC20__factory"; +export type { IUniswapV2Factory } from "./@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory"; +export { IUniswapV2Factory__factory } from "./factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory__factory"; +export type { IUniswapV2Pair } from "./@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair"; +export { IUniswapV2Pair__factory } from "./factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair__factory"; +export type { UniswapV2ERC20 } from "./@uniswap/v2-core/contracts/UniswapV2ERC20"; +export { UniswapV2ERC20__factory } from "./factories/@uniswap/v2-core/contracts/UniswapV2ERC20__factory"; +export type { UniswapV2Factory } from "./@uniswap/v2-core/contracts/UniswapV2Factory"; +export { UniswapV2Factory__factory } from "./factories/@uniswap/v2-core/contracts/UniswapV2Factory__factory"; +export type { UniswapV2Pair } from "./@uniswap/v2-core/contracts/UniswapV2Pair"; +export { UniswapV2Pair__factory } from "./factories/@uniswap/v2-core/contracts/UniswapV2Pair__factory"; +export type { IUniswapV2Router01 } from "./@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01"; +export { IUniswapV2Router01__factory } from "./factories/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01__factory"; +export type { IUniswapV2Router02 } from "./@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02"; +export { IUniswapV2Router02__factory } from "./factories/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02__factory"; +export type { IWETH } from "./@uniswap/v2-periphery/contracts/interfaces/IWETH"; +export { IWETH__factory } from "./factories/@uniswap/v2-periphery/contracts/interfaces/IWETH__factory"; +export type { UniswapV2Router02 } from "./@uniswap/v2-periphery/contracts/UniswapV2Router02"; +export { UniswapV2Router02__factory } from "./factories/@uniswap/v2-periphery/contracts/UniswapV2Router02__factory"; +export type { IUniswapV3SwapCallback } from "./@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback"; +export { IUniswapV3SwapCallback__factory } from "./factories/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback__factory"; +export type { ISwapRouter } from "./@uniswap/v3-periphery/contracts/interfaces/ISwapRouter"; +export { ISwapRouter__factory } from "./factories/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter__factory"; +export type { INotSupportedMethods } from "./@zetachain/protocol-contracts/contracts/Errors.sol/INotSupportedMethods"; +export { INotSupportedMethods__factory } from "./factories/@zetachain/protocol-contracts/contracts/Errors.sol/INotSupportedMethods__factory"; +export type { ERC20Custody } from "./@zetachain/protocol-contracts/contracts/evm/ERC20Custody"; +export { ERC20Custody__factory } from "./factories/@zetachain/protocol-contracts/contracts/evm/ERC20Custody__factory"; +export type { GatewayEVM } from "./@zetachain/protocol-contracts/contracts/evm/GatewayEVM"; +export { GatewayEVM__factory } from "./factories/@zetachain/protocol-contracts/contracts/evm/GatewayEVM__factory"; +export type { IERC20Custody } from "./@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20Custody"; +export { IERC20Custody__factory } from "./factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20Custody__factory"; +export type { IERC20CustodyErrors } from "./@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyErrors"; +export { IERC20CustodyErrors__factory } from "./factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyErrors__factory"; +export type { IERC20CustodyEvents } from "./@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyEvents"; +export { IERC20CustodyEvents__factory } from "./factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IERC20Custody.sol/IERC20CustodyEvents__factory"; +export type { Callable } from "./@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/Callable"; +export { Callable__factory } from "./factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/Callable__factory"; +export type { IGatewayEVM } from "./@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVM"; +export { IGatewayEVM__factory } from "./factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVM__factory"; +export type { IGatewayEVMErrors } from "./@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMErrors"; +export { IGatewayEVMErrors__factory } from "./factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMErrors__factory"; +export type { IGatewayEVMEvents } from "./@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMEvents"; +export { IGatewayEVMEvents__factory } from "./factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IGatewayEVM.sol/IGatewayEVMEvents__factory"; +export type { IZetaConnectorEvents } from "./@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/IZetaConnectorEvents"; +export { IZetaConnectorEvents__factory } from "./factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaConnector.sol/IZetaConnectorEvents__factory"; +export type { IZetaNonEthNew } from "./@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaNonEthNew"; +export { IZetaNonEthNew__factory } from "./factories/@zetachain/protocol-contracts/contracts/evm/interfaces/IZetaNonEthNew__factory"; +export type { ZetaConnectorBase } from "./@zetachain/protocol-contracts/contracts/evm/ZetaConnectorBase"; +export { ZetaConnectorBase__factory } from "./factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorBase__factory"; +export type { ZetaConnectorNative } from "./@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNative"; +export { ZetaConnectorNative__factory } from "./factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNative__factory"; +export type { ZetaConnectorNonNative } from "./@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNonNative"; +export { ZetaConnectorNonNative__factory } from "./factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNonNative__factory"; +export type { Abortable } from "./@zetachain/protocol-contracts/contracts/Revert.sol/Abortable"; +export { Abortable__factory } from "./factories/@zetachain/protocol-contracts/contracts/Revert.sol/Abortable__factory"; +export type { Revertable } from "./@zetachain/protocol-contracts/contracts/Revert.sol/Revertable"; +export { Revertable__factory } from "./factories/@zetachain/protocol-contracts/contracts/Revert.sol/Revertable__factory"; +export type { GatewayZEVM } from "./@zetachain/protocol-contracts/contracts/zevm/GatewayZEVM"; +export { GatewayZEVM__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/GatewayZEVM__factory"; +export type { IGatewayZEVM } from "./@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVM"; +export { IGatewayZEVM__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVM__factory"; +export type { IGatewayZEVMErrors } from "./@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMErrors"; +export { IGatewayZEVMErrors__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMErrors__factory"; +export type { IGatewayZEVMEvents } from "./@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMEvents"; +export { IGatewayZEVMEvents__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMEvents__factory"; +export type { ISystem } from "./@zetachain/protocol-contracts/contracts/zevm/interfaces/ISystem"; +export { ISystem__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/ISystem__factory"; +export type { IWETH9 } from "./@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/IWETH9"; +export { IWETH9__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IWZETA.sol/IWETH9__factory"; +export type { IZRC20 } from "./@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20"; +export { IZRC20__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20__factory"; +export type { IZRC20Metadata } from "./@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata"; +export { IZRC20Metadata__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata__factory"; +export type { ZRC20Events } from "./@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/ZRC20Events"; +export { ZRC20Events__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/ZRC20Events__factory"; +export type { UniversalContract } from "./@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/UniversalContract"; +export { UniversalContract__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/UniversalContract__factory"; +export type { ZContract } from "./@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/ZContract"; +export { ZContract__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/ZContract__factory"; +export type { SystemContract } from "./@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContract"; +export { SystemContract__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContract__factory"; +export type { SystemContractErrors } from "./@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContractErrors"; +export { SystemContractErrors__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContractErrors__factory"; +export type { WETH9 } from "./@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/WETH9"; +export { WETH9__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/WZETA.sol/WETH9__factory"; +export type { ZRC20 } from "./@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20"; +export { ZRC20__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20__factory"; +export type { ZRC20Errors } from "./@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20Errors"; +export { ZRC20Errors__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20Errors__factory"; +export type { BytesHelperLib } from "./contracts/BytesHelperLib"; +export { BytesHelperLib__factory } from "./factories/contracts/BytesHelperLib__factory"; +export type { ZetaEthMock } from "./contracts/EthZetaMock.sol/ZetaEthMock"; +export { ZetaEthMock__factory } from "./factories/contracts/EthZetaMock.sol/ZetaEthMock__factory"; +export type { OnlySystem } from "./contracts/OnlySystem"; +export { OnlySystem__factory } from "./factories/contracts/OnlySystem__factory"; +export type { Math } from "./contracts/shared/libraries/SafeMath.sol/Math"; +export { Math__factory } from "./factories/contracts/shared/libraries/SafeMath.sol/Math__factory"; +export type { UniswapV2Library } from "./contracts/shared/libraries/UniswapV2Library"; +export { UniswapV2Library__factory } from "./factories/contracts/shared/libraries/UniswapV2Library__factory"; +export type { MockZRC20 } from "./contracts/shared/MockZRC20"; +export { MockZRC20__factory } from "./factories/contracts/shared/MockZRC20__factory"; +export type { TestUniswapRouter } from "./contracts/shared/TestUniswapRouter"; +export { TestUniswapRouter__factory } from "./factories/contracts/shared/TestUniswapRouter__factory"; +export type { WZETA } from "./contracts/shared/WZETA"; +export { WZETA__factory } from "./factories/contracts/shared/WZETA__factory"; +export type { SwapHelperLib } from "./contracts/SwapHelperLib"; +export { SwapHelperLib__factory } from "./factories/contracts/SwapHelperLib__factory"; +export type { SwapLibrary } from "./contracts/SwapHelpers.sol/SwapLibrary"; +export { SwapLibrary__factory } from "./factories/contracts/SwapHelpers.sol/SwapLibrary__factory"; +export type { EVMSetup } from "./contracts/testing/EVMSetup.t.sol/EVMSetup"; +export { EVMSetup__factory } from "./factories/contracts/testing/EVMSetup.t.sol/EVMSetup__factory"; +export type { ITestERC20 } from "./contracts/testing/EVMSetup.t.sol/ITestERC20"; +export { ITestERC20__factory } from "./factories/contracts/testing/EVMSetup.t.sol/ITestERC20__factory"; +export type { IZetaNonEth } from "./contracts/testing/EVMSetup.t.sol/IZetaNonEth"; +export { IZetaNonEth__factory } from "./factories/contracts/testing/EVMSetup.t.sol/IZetaNonEth__factory"; +export type { FoundrySetup } from "./contracts/testing/FoundrySetup.t.sol/FoundrySetup"; +export { FoundrySetup__factory } from "./factories/contracts/testing/FoundrySetup.t.sol/FoundrySetup__factory"; +export type { ERC20Mock } from "./contracts/testing/mock/ERC20Mock"; +export { ERC20Mock__factory } from "./factories/contracts/testing/mock/ERC20Mock__factory"; +export type { IZRC20Mock } from "./contracts/testing/mock/ZRC20Mock.sol/IZRC20Mock"; +export { IZRC20Mock__factory } from "./factories/contracts/testing/mock/ZRC20Mock.sol/IZRC20Mock__factory"; +export type { ZRC20Mock } from "./contracts/testing/mock/ZRC20Mock.sol/ZRC20Mock"; +export { ZRC20Mock__factory } from "./factories/contracts/testing/mock/ZRC20Mock.sol/ZRC20Mock__factory"; +export type { NodeLogicMock } from "./contracts/testing/mockGateway/NodeLogicMock"; +export { NodeLogicMock__factory } from "./factories/contracts/testing/mockGateway/NodeLogicMock__factory"; +export type { WrapGatewayEVM } from "./contracts/testing/mockGateway/WrapGatewayEVM"; +export { WrapGatewayEVM__factory } from "./factories/contracts/testing/mockGateway/WrapGatewayEVM__factory"; +export type { WrapGatewayZEVM } from "./contracts/testing/mockGateway/WrapGatewayZEVM"; +export { WrapGatewayZEVM__factory } from "./factories/contracts/testing/mockGateway/WrapGatewayZEVM__factory"; +export type { TokenSetup } from "./contracts/testing/TokenSetup.t.sol/TokenSetup"; +export { TokenSetup__factory } from "./factories/contracts/testing/TokenSetup.t.sol/TokenSetup__factory"; +export type { UniswapV2SetupLib } from "./contracts/testing/UniswapV2SetupLib.sol/UniswapV2SetupLib"; +export { UniswapV2SetupLib__factory } from "./factories/contracts/testing/UniswapV2SetupLib.sol/UniswapV2SetupLib__factory"; +export type { INonfungiblePositionManager } from "./contracts/testing/UniswapV3SetupLib.sol/INonfungiblePositionManager"; +export { INonfungiblePositionManager__factory } from "./factories/contracts/testing/UniswapV3SetupLib.sol/INonfungiblePositionManager__factory"; +export type { IUniswapV3Factory } from "./contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Factory"; +export { IUniswapV3Factory__factory } from "./factories/contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Factory__factory"; +export type { IUniswapV3Pool } from "./contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Pool"; +export { IUniswapV3Pool__factory } from "./factories/contracts/testing/UniswapV3SetupLib.sol/IUniswapV3Pool__factory"; +export type { UniswapV3SetupLib } from "./contracts/testing/UniswapV3SetupLib.sol/UniswapV3SetupLib"; +export { UniswapV3SetupLib__factory } from "./factories/contracts/testing/UniswapV3SetupLib.sol/UniswapV3SetupLib__factory"; +export type { ZetaSetup } from "./contracts/testing/ZetaSetup.t.sol/ZetaSetup"; +export { ZetaSetup__factory } from "./factories/contracts/testing/ZetaSetup.t.sol/ZetaSetup__factory"; +export type { TestZRC20 } from "./contracts/TestZRC20"; +export { TestZRC20__factory } from "./factories/contracts/TestZRC20__factory"; +export type { IMulticall3 } from "./forge-std/interfaces/IMulticall3"; +export { IMulticall3__factory } from "./factories/forge-std/interfaces/IMulticall3__factory"; +export type { StdAssertions } from "./forge-std/StdAssertions"; +export { StdAssertions__factory } from "./factories/forge-std/StdAssertions__factory"; +export type { StdError } from "./forge-std/StdError.sol/StdError"; +export { StdError__factory } from "./factories/forge-std/StdError.sol/StdError__factory"; +export type { StdInvariant } from "./forge-std/StdInvariant"; +export { StdInvariant__factory } from "./factories/forge-std/StdInvariant__factory"; +export type { StdStorageSafe } from "./forge-std/StdStorage.sol/StdStorageSafe"; +export { StdStorageSafe__factory } from "./factories/forge-std/StdStorage.sol/StdStorageSafe__factory"; +export type { Test } from "./forge-std/Test"; +export { Test__factory } from "./factories/forge-std/Test__factory"; +export type { Vm } from "./forge-std/Vm.sol/Vm"; +export { Vm__factory } from "./factories/forge-std/Vm.sol/Vm__factory"; +export type { VmSafe } from "./forge-std/Vm.sol/VmSafe"; +export { VmSafe__factory } from "./factories/forge-std/Vm.sol/VmSafe__factory"; From 8b6e8575b517db85ac8e956ff7dd559c0c1f70fe Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Mon, 7 Jul 2025 09:39:42 +0300 Subject: [PATCH 28/44] fix build --- lib/forge-std | 1 - package.json | 4 +++- yarn.lock | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) delete mode 160000 lib/forge-std diff --git a/lib/forge-std b/lib/forge-std deleted file mode 160000 index 77041d2c..00000000 --- a/lib/forge-std +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 77041d2ce690e692d6e03cc812b57d1ddaa4d505 diff --git a/package.json b/package.json index b0d3ce8c..7149283e 100644 --- a/package.json +++ b/package.json @@ -69,6 +69,7 @@ "@types/chai": "^4.2.0", "@types/jest": "^29.5.14", "@types/lodash": "^4.14.202", + "@types/minimatch": "^6.0.0", "@types/mocha": ">=9.1.0", "@types/node": ">=12.0.0", "@types/spinnies": "^0.5.3", @@ -119,10 +120,10 @@ "@openzeppelin/contracts-upgradeable": "^5.0.2", "@solana/wallet-adapter-react": "^0.15.35", "@solana/web3.js": "1.95.8", - "@types/inquirer": "^9.0.7", "@ton/core": "^0.60.1", "@ton/crypto": "^3.3.0", "@ton/ton": "^15.2.1", + "@types/inquirer": "^9.0.7", "@uniswap/v2-periphery": "^1.1.0-beta.0", "@uniswap/v3-core": "^1.0.1", "@uniswap/v3-periphery": "^1.4.4", @@ -149,6 +150,7 @@ "hardhat": "^2.22.8", "inquirer": "^12.5.2", "lodash": "^4.17.21", + "minimatch": "^10.0.3", "ora": "5.4.1", "spinnies": "^0.5.1", "table": "^6.9.0", diff --git a/yarn.lock b/yarn.lock index 03a5fa3f..d4c3189c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2971,7 +2971,7 @@ resolved "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz#c48c2e27b65d2a153b19bfc1a317e30872e01eef" integrity sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw== -"@types/minimatch@*": +"@types/minimatch@*", "@types/minimatch@^6.0.0": version "6.0.0" resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-6.0.0.tgz#4d207b1cc941367bdcd195a3a781a7e4fc3b1e03" integrity sha512-zmPitbQ8+6zNutpwgcQuLcsEpn/Cj54Kbn7L5pX0Os5kdWplB7xPgEh/g+SWOB/qmows2gpuCaPyduq8ZZRnxA== @@ -8346,7 +8346,7 @@ minimalistic-crypto-utils@^1.0.1: resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== -minimatch@*: +minimatch@*, minimatch@^10.0.3: version "10.0.3" resolved "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz#cf7a0314a16c4d9ab73a7730a0e8e3c3502d47aa" integrity sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw== From 4dc7f2c35f78788d3e59926e8d0860e256cbbb2b Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Mon, 7 Jul 2025 11:34:15 +0300 Subject: [PATCH 29/44] move pools command inside zetachain namespace --- packages/commands/src/index.ts | 1 - packages/commands/src/program.ts | 2 -- packages/commands/src/zetachain/index.ts | 2 ++ .../commands/src/{ => zetachain}/pools/create.ts | 10 +++++++--- .../commands/src/{ => zetachain}/pools/deploy.ts | 6 +++--- .../commands/src/{ => zetachain}/pools/index.ts | 3 ++- .../src/{ => zetachain}/pools/liquidity/add.ts | 14 +++++++------- .../src/{ => zetachain}/pools/liquidity/index.ts | 0 .../commands/src/{ => zetachain}/pools/show.ts | 10 +++++++--- .../pools/constants.ts => src/constants/pools.ts | 0 types/pools.ts | 2 +- 11 files changed, 29 insertions(+), 21 deletions(-) rename packages/commands/src/{ => zetachain}/pools/create.ts (95%) rename packages/commands/src/{ => zetachain}/pools/deploy.ts (97%) rename packages/commands/src/{ => zetachain}/pools/index.ts (87%) rename packages/commands/src/{ => zetachain}/pools/liquidity/add.ts (98%) rename packages/commands/src/{ => zetachain}/pools/liquidity/index.ts (100%) rename packages/commands/src/{ => zetachain}/pools/show.ts (94%) rename packages/commands/src/pools/constants.ts => src/constants/pools.ts (100%) diff --git a/packages/commands/src/index.ts b/packages/commands/src/index.ts index d87f06ab..8f17c9a3 100644 --- a/packages/commands/src/index.ts +++ b/packages/commands/src/index.ts @@ -1,7 +1,6 @@ export * from "./accounts"; export * from "./bitcoin"; export * from "./evm"; -export * from "./pools"; export * from "./query"; export * from "./solana"; export * from "./sui"; diff --git a/packages/commands/src/program.ts b/packages/commands/src/program.ts index e0aec57b..85ba4e7a 100644 --- a/packages/commands/src/program.ts +++ b/packages/commands/src/program.ts @@ -5,7 +5,6 @@ import { showRequiredOptions } from "../../../utils/common.command.helpers"; import { accountsCommand } from "./accounts"; import { bitcoinCommand } from "./bitcoin"; import { evmCommand } from "./evm"; -import { poolsCommand } from "./pools"; import { queryCommand } from "./query"; import { solanaCommand } from "./solana"; import { suiCommand } from "./sui"; @@ -19,7 +18,6 @@ export const toolkitCommand = new Command("toolkit") toolkitCommand.addCommand(accountsCommand); toolkitCommand.addCommand(bitcoinCommand); toolkitCommand.addCommand(evmCommand); -toolkitCommand.addCommand(poolsCommand); toolkitCommand.addCommand(queryCommand); toolkitCommand.addCommand(solanaCommand); toolkitCommand.addCommand(suiCommand); diff --git a/packages/commands/src/zetachain/index.ts b/packages/commands/src/zetachain/index.ts index 0622089c..c3844e18 100644 --- a/packages/commands/src/zetachain/index.ts +++ b/packages/commands/src/zetachain/index.ts @@ -1,6 +1,7 @@ import { Command } from "commander"; import { callCommand } from "./call"; +import { poolsCommand } from "./pools"; import { withdrawCommand } from "./withdraw"; import { withdrawAndCallCommand } from "./withdrawAndCall"; @@ -10,4 +11,5 @@ export const zetachainCommand = new Command("zetachain") .addCommand(callCommand) .addCommand(withdrawCommand) .addCommand(withdrawAndCallCommand) + .addCommand(poolsCommand) .helpCommand(false); diff --git a/packages/commands/src/pools/create.ts b/packages/commands/src/zetachain/pools/create.ts similarity index 95% rename from packages/commands/src/pools/create.ts rename to packages/commands/src/zetachain/pools/create.ts index c492df43..3dc49259 100644 --- a/packages/commands/src/pools/create.ts +++ b/packages/commands/src/zetachain/pools/create.ts @@ -3,12 +3,16 @@ import * as UniswapV3Pool from "@uniswap/v3-core/artifacts/contracts/UniswapV3Po import { Command } from "commander"; import { Contract, ethers, JsonRpcProvider, Wallet } from "ethers"; +import { + DEFAULT_FACTORY, + DEFAULT_FEE, + DEFAULT_RPC, +} from "../../../../../src/constants/pools"; import { type CreatePoolOptions, createPoolOptionsSchema, PoolCreationError, -} from "../../../../types/pools"; -import { DEFAULT_FACTORY, DEFAULT_FEE, DEFAULT_RPC } from "./constants"; +} from "../../../../../types/pools"; const main = async (options: CreatePoolOptions): Promise => { try { @@ -96,7 +100,7 @@ const main = async (options: CreatePoolOptions): Promise => { }; export const createCommand = new Command("create") - .description("Create a new Uniswap V3 pool") + .summary("Create a new Uniswap V3 pool") .requiredOption( "--private-key ", "Private key for signing transactions" diff --git a/packages/commands/src/pools/deploy.ts b/packages/commands/src/zetachain/pools/deploy.ts similarity index 97% rename from packages/commands/src/pools/deploy.ts rename to packages/commands/src/zetachain/pools/deploy.ts index 635f336f..5081e2d5 100644 --- a/packages/commands/src/pools/deploy.ts +++ b/packages/commands/src/zetachain/pools/deploy.ts @@ -4,12 +4,12 @@ import * as SwapRouter from "@uniswap/v3-periphery/artifacts/contracts/SwapRoute import { Command } from "commander"; import { ContractFactory, ethers, JsonRpcProvider, Wallet } from "ethers"; +import { DEFAULT_RPC, DEFAULT_WZETA } from "../../../../../src/constants/pools"; import { DeploymentError, type DeployOptions, deployOptionsSchema, -} from "../../../../types/pools"; -import { DEFAULT_RPC, DEFAULT_WZETA } from "./constants"; +} from "../../../../../types/pools"; const deployOpts = { gasLimit: 8000000, @@ -180,7 +180,7 @@ const main = async (options: DeployOptions): Promise => { }; export const deployCommand = new Command("deploy") - .description("Deploy Uniswap V3 contracts") + .summary("Deploy Uniswap V3 contracts") .requiredOption("--private-key ", "Private key for deployment") .option("--rpc ", "RPC URL for the network", DEFAULT_RPC) .option("--wzeta ", "WZETA token address", DEFAULT_WZETA) diff --git a/packages/commands/src/pools/index.ts b/packages/commands/src/zetachain/pools/index.ts similarity index 87% rename from packages/commands/src/pools/index.ts rename to packages/commands/src/zetachain/pools/index.ts index 85bcb6fd..b5e077dc 100644 --- a/packages/commands/src/pools/index.ts +++ b/packages/commands/src/zetachain/pools/index.ts @@ -6,7 +6,8 @@ import { liquidityCommand } from "./liquidity"; import { showCommand } from "./show"; export const poolsCommand = new Command("pools") - .description("Manage Uniswap V3 pools") + .summary("ZetaChain pools commands") + .alias("p") .addCommand(deployCommand) .addCommand(createCommand) .addCommand(showCommand) diff --git a/packages/commands/src/pools/liquidity/add.ts b/packages/commands/src/zetachain/pools/liquidity/add.ts similarity index 98% rename from packages/commands/src/pools/liquidity/add.ts rename to packages/commands/src/zetachain/pools/liquidity/add.ts index ae445756..545961be 100644 --- a/packages/commands/src/pools/liquidity/add.ts +++ b/packages/commands/src/zetachain/pools/liquidity/add.ts @@ -4,17 +4,17 @@ import { Command } from "commander"; import { Contract, ethers, JsonRpcProvider, Log, Wallet } from "ethers"; import inquirer from "inquirer"; -import { - type AddLiquidityOptions, - addLiquidityOptionsSchema, - MintParams, -} from "../../../../../types/pools"; import { DEFAULT_FACTORY, DEFAULT_FEE, DEFAULT_POSITION_MANAGER, DEFAULT_RPC, -} from "../constants"; +} from "../../../../../../src/constants/pools"; +import { + type AddLiquidityOptions, + addLiquidityOptionsSchema, + MintParams, +} from "../../../../../../types/pools"; const main = async (options: AddLiquidityOptions): Promise => { try { @@ -269,7 +269,7 @@ const main = async (options: AddLiquidityOptions): Promise => { }; export const addCommand = new Command("add") - .description("Add liquidity to a Uniswap V3 pool") + .summary("Add liquidity to a Uniswap V3 pool") .option("--rpc ", "RPC URL for the network", DEFAULT_RPC) .requiredOption( "--tokens ", diff --git a/packages/commands/src/pools/liquidity/index.ts b/packages/commands/src/zetachain/pools/liquidity/index.ts similarity index 100% rename from packages/commands/src/pools/liquidity/index.ts rename to packages/commands/src/zetachain/pools/liquidity/index.ts diff --git a/packages/commands/src/pools/show.ts b/packages/commands/src/zetachain/pools/show.ts similarity index 94% rename from packages/commands/src/pools/show.ts rename to packages/commands/src/zetachain/pools/show.ts index 6c0b428c..e7461030 100644 --- a/packages/commands/src/pools/show.ts +++ b/packages/commands/src/zetachain/pools/show.ts @@ -3,12 +3,16 @@ import * as UniswapV3Pool from "@uniswap/v3-core/artifacts/contracts/UniswapV3Po import { Command, Option } from "commander"; import { Contract, ethers, JsonRpcProvider } from "ethers"; +import { + DEFAULT_FACTORY, + DEFAULT_FEE, + DEFAULT_RPC, +} from "../../../../../src/constants/pools"; import { type ShowPoolOptions, showPoolOptionsSchema, Slot0Result, -} from "../../../../types/pools"; -import { DEFAULT_FACTORY, DEFAULT_FEE, DEFAULT_RPC } from "./constants"; +} from "../../../../../types/pools"; const main = async (options: ShowPoolOptions): Promise => { try { @@ -85,7 +89,7 @@ const main = async (options: ShowPoolOptions): Promise => { }; export const showCommand = new Command("show") - .description("Show information about a Uniswap V3 pool") + .summary("Show information about a Uniswap V3 pool") .option("--rpc ", "RPC URL for the network", DEFAULT_RPC) .addOption( new Option("--pool ", "Pool contract address").conflicts("tokens") diff --git a/packages/commands/src/pools/constants.ts b/src/constants/pools.ts similarity index 100% rename from packages/commands/src/pools/constants.ts rename to src/constants/pools.ts diff --git a/types/pools.ts b/types/pools.ts index 86eb8878..c0ad4070 100644 --- a/types/pools.ts +++ b/types/pools.ts @@ -6,7 +6,7 @@ import { DEFAULT_FEE, DEFAULT_RPC, DEFAULT_WZETA, -} from "../packages/commands/src/pools/constants"; +} from "../src/constants/pools"; export interface MintParams { amount0Desired: bigint; From 1fd27fd05565966d11a300241e21608da90072cf Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Mon, 7 Jul 2025 11:44:16 +0300 Subject: [PATCH 30/44] show quotes --- packages/commands/src/zetachain/pools/show.ts | 37 +++++++++++++++++-- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/packages/commands/src/zetachain/pools/show.ts b/packages/commands/src/zetachain/pools/show.ts index e7461030..03452428 100644 --- a/packages/commands/src/zetachain/pools/show.ts +++ b/packages/commands/src/zetachain/pools/show.ts @@ -8,12 +8,28 @@ import { DEFAULT_FEE, DEFAULT_RPC, } from "../../../../../src/constants/pools"; +import { IERC20Metadata__factory } from "../../../../../typechain-types"; import { type ShowPoolOptions, showPoolOptionsSchema, Slot0Result, } from "../../../../../types/pools"; +// Helper function to get token symbol +const getTokenSymbol = async ( + provider: JsonRpcProvider, + tokenAddress: string +): Promise => { + try { + const token = IERC20Metadata__factory.connect(tokenAddress, provider); + const symbol = await token.symbol(); + return symbol; + } catch (error) { + // If symbol call fails, return the address + return tokenAddress; + } +}; + const main = async (options: ShowPoolOptions): Promise => { try { // Validate options @@ -65,17 +81,30 @@ const main = async (options: ShowPoolOptions): Promise => { pool.slot0(), ])) as [string, string, bigint, bigint, bigint, Slot0Result]; + // Get token symbols + const [token0Symbol, token1Symbol] = await Promise.all([ + getTokenSymbol(provider, token0), + getTokenSymbol(provider, token1), + ]); + // Calculate price from sqrtPriceX96 const sqrtPriceX96 = slot0.sqrtPriceX96; - const price = (Number(sqrtPriceX96) / 2 ** 96) ** 2; + const sqrtPrice = Number(sqrtPriceX96) / 2 ** 96; + const priceToken1PerToken0 = sqrtPrice ** 2; + const priceToken0PerToken1 = 1 / priceToken1PerToken0; console.log("\nPool Information:"); console.log("Pool Address:", poolAddress); - console.log("Token 0:", token0); - console.log("Token 1:", token1); + console.log("Token 0:", `${token0Symbol} (${token0})`); + console.log("Token 1:", `${token1Symbol} (${token1})`); console.log("Fee Tier:", `${Number(fee) / 10000}%`); console.log("Tick Spacing:", tickSpacing.toString()); - console.log("Current Price:", price.toFixed(6)); + console.log( + `1 ${token0Symbol} = ${priceToken1PerToken0.toFixed(6)} ${token1Symbol}` + ); + console.log( + `1 ${token1Symbol} = ${priceToken0PerToken1.toFixed(6)} ${token0Symbol}` + ); console.log("Liquidity:", liquidity.toString()); console.log("Current Tick:", slot0.tick.toString()); } catch (error) { From 583a15233cb2c1c211ee18931317caf636a34b36 Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Mon, 7 Jul 2025 12:36:41 +0300 Subject: [PATCH 31/44] wip --- package.json | 2 + .../commands/src/zetachain/pools/create.ts | 208 ++++++++++-------- .../src/zetachain/pools/liquidity/index.ts | 6 +- .../src/zetachain/pools/liquidity/remove.ts | 124 +++++++++++ .../src/zetachain/pools/liquidity/show.ts | 97 ++++++++ types/pools.ts | 19 ++ yarn.lock | 113 +++++++++- 7 files changed, 473 insertions(+), 96 deletions(-) create mode 100644 packages/commands/src/zetachain/pools/liquidity/remove.ts create mode 100644 packages/commands/src/zetachain/pools/liquidity/show.ts diff --git a/package.json b/package.json index 7149283e..a397b5cf 100644 --- a/package.json +++ b/package.json @@ -127,6 +127,7 @@ "@uniswap/v2-periphery": "^1.1.0-beta.0", "@uniswap/v3-core": "^1.0.1", "@uniswap/v3-periphery": "^1.4.4", + "@uniswap/v3-sdk": "^3.25.2", "@zetachain/faucet-cli": "^4.1.1", "@zetachain/networks": "14.0.0-rc1", "@zetachain/protocol-contracts": "13.0.0", @@ -149,6 +150,7 @@ "handlebars": "4.7.7", "hardhat": "^2.22.8", "inquirer": "^12.5.2", + "jsbi": "^4.3.2", "lodash": "^4.17.21", "minimatch": "^10.0.3", "ora": "5.4.1", diff --git a/packages/commands/src/zetachain/pools/create.ts b/packages/commands/src/zetachain/pools/create.ts index 3dc49259..cb7a1a6b 100644 --- a/packages/commands/src/zetachain/pools/create.ts +++ b/packages/commands/src/zetachain/pools/create.ts @@ -1,7 +1,7 @@ import * as UniswapV3Factory from "@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json"; import * as UniswapV3Pool from "@uniswap/v3-core/artifacts/contracts/UniswapV3Pool.sol/UniswapV3Pool.json"; import { Command } from "commander"; -import { Contract, ethers, JsonRpcProvider, Wallet } from "ethers"; +import { Contract, JsonRpcProvider, Wallet, ethers } from "ethers"; import { DEFAULT_FACTORY, @@ -13,115 +13,139 @@ import { createPoolOptionsSchema, PoolCreationError, } from "../../../../../types/pools"; +import { IERC20Metadata__factory } from "../../../../../typechain-types"; -const main = async (options: CreatePoolOptions): Promise => { - try { - const validatedOptions = createPoolOptionsSchema.parse(options); +/* ╭─────────────────── helpers ────────────────────╮ */ +const SCALE = 1_000_000n; // 6-dp USD → int +const TWO_192 = 1n << 192n; - if (validatedOptions.tokens.length !== 2) { - throw new Error("Exactly 2 token addresses must be provided"); - } +/** integer √ via Newton (both args BigInt) */ +function sqrtBig(n: bigint): bigint { + if (n < 0n) throw new Error("sqrt of negative"); + if (n < 2n) return n; + let x0 = n >> 1n; + let x1 = (x0 + n / x0) >> 1n; + while (x1 < x0) { + x0 = x1; + x1 = (x0 + n / x0) >> 1n; + } + return x0; +} - if (!validatedOptions.prices || validatedOptions.prices.length !== 2) { - throw new Error("Exactly 2 prices must be provided using --prices"); - } +/** build sqrtPriceX96 (Q64.96) for token1/token0 ratio in base-units */ +function buildSqrtPriceX96( + usd0: number, + usd1: number, + dec0: number, + dec1: number, + isCliOrderToken0: boolean +): bigint { + // map USD prices into factory-sorted order + const priceToken0Usd = isCliOrderToken0 ? usd0 : usd1; + const priceToken1Usd = isCliOrderToken0 ? usd1 : usd0; - const [price0, price1] = validatedOptions.prices.map(Number); - if (price0 <= 0 || price1 <= 0 || isNaN(price0) || isNaN(price1)) { - throw new Error("Both prices must be valid positive numbers"); - } + // integer USD (6 decimals) to avoid FP + const p0 = BigInt(Math.round(priceToken0Usd * Number(SCALE))); + const p1 = BigInt(Math.round(priceToken1Usd * Number(SCALE))); - // Initialize provider and signer - const provider = new JsonRpcProvider(validatedOptions.rpc); - const signer = new Wallet(validatedOptions.privateKey, provider); + // ratio (token1 / token0) in base units + const ratio = (p0 * 10n ** BigInt(dec1)) / (p1 * 10n ** BigInt(dec0)); - console.log("Creating Uniswap V3 pool..."); - console.log("Signer address:", await signer.getAddress()); - console.log( - "Balance:", - ethers.formatEther(await provider.getBalance(await signer.getAddress())), - "ZETA" - ); + // sqrtPriceX96 = floor( sqrt(ratio) * 2^96 ) + return sqrtBig(ratio * TWO_192); +} +/* ╰───────────────────────────────────────────────╯ */ - // Initialize factory contract - const uniswapV3FactoryInstance = new Contract( - validatedOptions.factory, +const main = async (raw: CreatePoolOptions): Promise => { + try { + const o = createPoolOptionsSchema.parse(raw); + const [usdA, usdB] = o.prices.map(Number); + if (usdA <= 0 || usdB <= 0 || Number.isNaN(usdA) || Number.isNaN(usdB)) { + throw new Error("--prices must be positive numbers"); + } + + const provider = new JsonRpcProvider(o.rpc ?? DEFAULT_RPC); + const signer = new Wallet(o.privateKey, provider); + + /* ─── factory & existing pool check ─────────────────── */ + const factory = new Contract( + o.factory ?? DEFAULT_FACTORY, UniswapV3Factory.abi, signer ); - // Create the pool - console.log("\nCreating pool..."); - const fee = validatedOptions.fee; - const createPoolTx = (await uniswapV3FactoryInstance.createPool( - validatedOptions.tokens[0], - validatedOptions.tokens[1], - fee - )) as ethers.TransactionResponse; - console.log("Pool creation transaction hash:", createPoolTx.hash); - await createPoolTx.wait(); - - // Get the pool address - const poolAddress = (await uniswapV3FactoryInstance.getPool( - validatedOptions.tokens[0], - validatedOptions.tokens[1], - fee - )) as string; - console.log("Pool deployed at:", poolAddress); - - // Initialize the pool - const pool = new Contract(poolAddress, UniswapV3Pool.abi, signer); - - // Calculate sqrtPriceX96 from USD prices - const initialPrice = price1 / price0; - const sqrtPrice = Math.sqrt(initialPrice); - const sqrtPriceX96 = BigInt(Math.floor(sqrtPrice * 2 ** 96)); - - const initTx = (await pool.initialize( - sqrtPriceX96 - )) as ethers.TransactionResponse; - console.log("Pool initialization transaction hash:", initTx.hash); - await initTx.wait(); - - console.log("\nPool created and initialized successfully!"); - console.log("Pool address:", poolAddress); - } catch (error) { - const poolError = error as PoolCreationError; - console.error("\nPool creation failed with error:"); - console.error("Error message:", poolError.message); - if (poolError.receipt) { - console.error("Transaction receipt:", poolError.receipt); + let poolAddr = await factory.getPool( + o.tokens[0], + o.tokens[1], + o.fee ?? DEFAULT_FEE + ); + + if (poolAddr === ethers.ZeroAddress) { + console.log("Creating pool…"); + const tx = await factory.createPool( + o.tokens[0], + o.tokens[1], + o.fee ?? DEFAULT_FEE + ); + await tx.wait(); + poolAddr = await factory.getPool( + o.tokens[0], + o.tokens[1], + o.fee ?? DEFAULT_FEE + ); + console.log("✦ createPool tx:", tx.hash); + } else { + console.log("Pool already exists:", poolAddr); } - if (poolError.transaction) { - console.error("Transaction details:", poolError.transaction); + + /* ─── pool contract ─────────────────────────────────── */ + const pool = new Contract(poolAddr, UniswapV3Pool.abi, signer); + const [token0, token1] = await Promise.all([pool.token0(), pool.token1()]); + const [dec0, dec1] = await Promise.all([ + IERC20Metadata__factory.connect(token0, provider).decimals(), + IERC20Metadata__factory.connect(token1, provider).decimals(), + ]); + + /* ─── compute sqrtPriceX96 ──────────────────────────── */ + const isCliOrderToken0 = token0.toLowerCase() === o.tokens[0].toLowerCase(); + const sqrtPriceX96 = buildSqrtPriceX96( + usdA, + usdB, + Number(dec0), + Number(dec1), + isCliOrderToken0 + ); + + /* ─── initialise if not yet initialised ─────────────── */ + const slot0 = await pool.slot0().catch(() => null); + if (!slot0 || slot0.sqrtPriceX96 === 0n) { + const initTx = await pool.initialize(sqrtPriceX96); + await initTx.wait(); + console.log("✓ Pool initialised (tx:", initTx.hash, ")"); + } else { + console.log("Pool already initialised; skipped."); } + + console.log("Done ✔ address =", poolAddr); + } catch (err) { + const e = err as PoolCreationError; + console.error("Pool creation failed:", e.message); + if (e.transaction) console.error("tx:", e.transaction); + if (e.receipt) console.error("receipt:", e.receipt); process.exit(1); } }; +/* ─── CLI wiring ───────────────────────────────────────────── */ export const createCommand = new Command("create") - .summary("Create a new Uniswap V3 pool") - .requiredOption( - "--private-key ", - "Private key for signing transactions" - ) - .option("--rpc ", "RPC URL for the network", DEFAULT_RPC) - .option( - "--factory ", - "Uniswap V3 Factory contract address", - DEFAULT_FACTORY - ) - .requiredOption( - "--tokens ", - "Token addresses for the pool (exactly 2 required)" - ) - .option( - "--fee ", - "Fee tier for the pool (3000 = 0.3%)", - DEFAULT_FEE.toString() - ) + .summary("Create & initialise a Uniswap V3 pool at a USD price ratio") + .requiredOption("--private-key ", "Private key paying gas") + .requiredOption("--tokens ", "Two token addresses (CLI order)") .requiredOption( - "--prices ", - "USD prices of the two tokens in the same order as --tokens" + "--prices ", + "USD prices for the tokens in same order" ) + .option("--fee ", "Fee tier (e.g. 3000 = 0.3%)", DEFAULT_FEE.toString()) + .option("--factory ", "Uniswap V3 Factory", DEFAULT_FACTORY) + .option("--rpc ", "JSON-RPC endpoint", DEFAULT_RPC) .action(main); diff --git a/packages/commands/src/zetachain/pools/liquidity/index.ts b/packages/commands/src/zetachain/pools/liquidity/index.ts index efe69f3a..2b4b62d3 100644 --- a/packages/commands/src/zetachain/pools/liquidity/index.ts +++ b/packages/commands/src/zetachain/pools/liquidity/index.ts @@ -1,7 +1,11 @@ import { Command } from "commander"; import { addCommand } from "./add"; +import { removeCommand } from "./remove"; +import { showCommand } from "./show"; export const liquidityCommand = new Command("liquidity") .description("Manage liquidity in Uniswap V3 pools") - .addCommand(addCommand); + .addCommand(addCommand) + .addCommand(removeCommand) + .addCommand(showCommand); diff --git a/packages/commands/src/zetachain/pools/liquidity/remove.ts b/packages/commands/src/zetachain/pools/liquidity/remove.ts new file mode 100644 index 00000000..fc4269f4 --- /dev/null +++ b/packages/commands/src/zetachain/pools/liquidity/remove.ts @@ -0,0 +1,124 @@ +// src/cli/commands/pools/liquidity/remove.ts +import * as NonfungiblePositionManager from "@uniswap/v3-periphery/artifacts/contracts/NonfungiblePositionManager.sol/NonfungiblePositionManager.json"; +import { Command } from "commander"; +import { Contract, ethers, JsonRpcProvider, Wallet } from "ethers"; +import inquirer from "inquirer"; + +import { + DEFAULT_POSITION_MANAGER, + DEFAULT_RPC, +} from "../../../../../../src/constants/pools"; +import { + type RemoveLiquidityOptions, + removeLiquidityOptionsSchema, +} from "../../../../../../types/pools"; + +const MaxUint128 = (1n << 128n) - 1n; // 2¹²⁸-1 + +const main = async (options: RemoveLiquidityOptions): Promise => { + try { + const o = removeLiquidityOptionsSchema.parse(options); + + /* ─── 1. Provider & signer ─────────────────────────────────────────────── */ + const provider = new JsonRpcProvider(o.rpc ?? DEFAULT_RPC); + const signer = new Wallet(o.privateKey, provider); + const pm = new Contract( + DEFAULT_POSITION_MANAGER, + NonfungiblePositionManager.abi, + signer + ); + + /* ─── 2. Select a position NFT ─────────────────────────────────────────── */ + let tokenId = o.tokenId; + if (!tokenId) { + const bal = await pm.balanceOf(signer.address); + if (bal === 0n) throw new Error("Signer owns no liquidity positions"); + + const ids: bigint[] = []; + for (let i = 0n; i < bal; i++) { + ids.push(await pm.tokenOfOwnerByIndex(signer.address, i)); + } + + const { chosen } = await inquirer.prompt([ + { + type: "list", + name: "chosen", + message: "Select position to remove liquidity from", + choices: ids.map((id) => ({ name: id.toString(), value: id })), + }, + ]); + tokenId = chosen.toString(); + } + + /* ─── 3. Fetch position info ───────────────────────────────────────────── */ + const pos = await pm.positions(tokenId); + const liquidity = pos.liquidity as bigint; + if (liquidity === 0n) { + console.log("Position already has zero liquidity"); + return; + } + + console.log("\nPosition", tokenId!.toString()); + console.log("Liquidity:", liquidity.toString()); + console.log("Token0:", pos.token0); + console.log("Token1:", pos.token1); + if ( + !( + await inquirer.prompt([ + { + type: "confirm", + name: "ok", + message: "Remove ALL liquidity and collect the tokens?", + default: false, + }, + ]) + ).ok + ) { + process.exit(0); + } + + /* ─── 4. decreaseLiquidity ─────────────────────────────────────────────── */ + const deadline = Math.floor(Date.now() / 1e3) + 60 * 20; + const decTx = await pm.decreaseLiquidity({ + tokenId, + liquidity, + amount0Min: 0, + amount1Min: 0, + deadline, + }); + await decTx.wait(); + console.log("✓ Liquidity removed (tx:", decTx.hash + ")"); + + /* ─── 5. collect ───────────────────────────────────────────────────────── */ + const colTx = await pm.collect({ + tokenId, + recipient: signer.address, + amount0Max: MaxUint128, + amount1Max: MaxUint128, + }); + await colTx.wait(); + console.log("✓ Fees + principal collected (tx:", colTx.hash + ")"); + + /* ─── 6. burn (optional) ───────────────────────────────────────────────── */ + if (o.burn) { + const burnTx = await pm.burn(tokenId); + await burnTx.wait(); + console.log("✓ Empty NFT burned (tx:", burnTx.hash + ")"); + } + } catch (e) { + console.error( + "\nRemove-liquidity failed:", + e instanceof Error ? e.message : e + ); + process.exit(1); + } +}; + +/* ─── CLI wiring ───────────────────────────────────────────────────────────── */ +export const removeCommand = new Command("remove") + .summary("Remove liquidity from a Uniswap V3 position") + .option("--rpc ", "RPC URL", DEFAULT_RPC) + .option("--token-id ", "Position NFT ID (prompted if omitted)") + .option("--burn", "Burn the NFT after withdrawing", false) + .requiredOption("--private-key ", "Private key of the position owner") + .action(main); diff --git a/packages/commands/src/zetachain/pools/liquidity/show.ts b/packages/commands/src/zetachain/pools/liquidity/show.ts new file mode 100644 index 00000000..661644ab --- /dev/null +++ b/packages/commands/src/zetachain/pools/liquidity/show.ts @@ -0,0 +1,97 @@ +import * as NonfungiblePositionManager from "@uniswap/v3-periphery/artifacts/contracts/NonfungiblePositionManager.sol/NonfungiblePositionManager.json"; +import { IERC20Metadata__factory } from "../../../../../../typechain-types"; +import { Command } from "commander"; +import { Contract, JsonRpcProvider, Wallet, ethers } from "ethers"; +import { + DEFAULT_POSITION_MANAGER, + DEFAULT_FACTORY, + DEFAULT_RPC, +} from "../../../../../../src/constants/pools"; +import { + ShowLiquidityOptions, + showLiquidityOptionsSchema, +} from "../../../../../../types/pools"; +import * as UniswapV3Factory from "@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json"; + +const main = async (raw: ShowLiquidityOptions) => { + try { + /* ─── 1. Parse CLI options ───────────────────────────────────────────── */ + const o = showLiquidityOptionsSchema.parse(raw); + const provider = new JsonRpcProvider(o.rpc); + const signer = new Wallet(o.privateKey, provider); + const addr = await signer.getAddress(); + + /* ─── 2. Load contracts ──────────────────────────────────────────────── */ + const pm = new Contract( + DEFAULT_POSITION_MANAGER, + NonfungiblePositionManager.abi, + provider + ); + const fac = new Contract(DEFAULT_FACTORY, UniswapV3Factory.abi, provider); + + /* ─── 3. Enumerate NFTs ──────────────────────────────────────────────── */ + const bal = await pm.balanceOf(addr); + if (bal === 0n) { + console.log("No liquidity positions found for", addr); + return; + } + console.log(`\n${bal.toString()} Uniswap V3 position(s) for ${addr}\n`); + + for (let i = 0n; i < bal; i++) { + const id = await pm.tokenOfOwnerByIndex(addr, i); + const pos = await pm.positions(id); + + const [ + token0, + token1, + fee, + tickLower, + tickUpper, + liquidity, + tokensOwed0, + tokensOwed1, + ] = [ + pos.token0, + pos.token1, + pos.fee, + pos.tickLower, + pos.tickUpper, + pos.liquidity, + pos.tokensOwed0, + pos.tokensOwed1, + ]; + + /* symbols (fail-safe to address if call reverts) */ + const [sym0, sym1] = await Promise.all( + [token0, token1].map(async (t) => { + try { + return await IERC20Metadata__factory.connect(t, provider).symbol(); + } catch { + return t; + } + }) + ); + + /* derive pool address (handy for UI links / debugging) */ + const pool = await fac.getPool(token0, token1, fee); + + console.log(`• NFT #${id.toString()}`); + console.log(` Pool : ${pool}`); + console.log(` Pair : ${sym0}/${sym1}`); + console.log(` Fee Tier : ${Number(fee) / 1e4}%`); + console.log(` Ticks : [${tickLower}, ${tickUpper}]`); + console.log(` Liquidity : ${liquidity.toString()}`); + console.log(` Owed0/Owed1: ${tokensOwed0} / ${tokensOwed1}`); + console.log(""); + } + } catch (e) { + console.error("liquidity show failed:", e instanceof Error ? e.message : e); + process.exit(1); + } +}; + +export const showCommand = new Command("show") + .summary("List all Uniswap V3 liquidity position NFTs owned by the signer") + .option("--rpc ", "RPC URL", DEFAULT_RPC) + .requiredOption("--private-key ", "Private key of the owner wallet") + .action(main); diff --git a/types/pools.ts b/types/pools.ts index c0ad4070..5fabd953 100644 --- a/types/pools.ts +++ b/types/pools.ts @@ -73,6 +73,16 @@ export const addLiquidityOptionsSchema = z.object({ tokens: z.array(z.string()).min(2).max(2), }); +export const removeLiquidityOptionsSchema = z.object({ + rpc: z.string().default(DEFAULT_RPC), + tokenId: z + .string() + .regex(/^\d+$/, { message: "tokenId must be a numeric string" }) + .optional(), + burn: z.boolean().optional(), + privateKey: z.string(), +}); + export const createPoolOptionsSchema = z.object({ factory: z.string().default(DEFAULT_FACTORY), fee: z.string().default(DEFAULT_FEE.toString()), @@ -88,7 +98,16 @@ export const deployOptionsSchema = z.object({ wzeta: z.string().default(DEFAULT_WZETA), }); +export const showLiquidityOptionsSchema = z.object({ + rpc: z.string().default(DEFAULT_RPC), + privateKey: z.string(), +}); + export type ShowPoolOptions = z.infer; export type AddLiquidityOptions = z.infer; export type CreatePoolOptions = z.infer; export type DeployOptions = z.infer; +export type RemoveLiquidityOptions = z.infer< + typeof removeLiquidityOptionsSchema +>; +export type ShowLiquidityOptions = z.infer; diff --git a/yarn.lock b/yarn.lock index d4c3189c..23d12832 100644 --- a/yarn.lock +++ b/yarn.lock @@ -475,7 +475,7 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/abi@5.8.0", "@ethersproject/abi@^5.0.9", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.4.7", "@ethersproject/abi@^5.7.0", "@ethersproject/abi@^5.8.0": +"@ethersproject/abi@5.8.0", "@ethersproject/abi@^5.0.9", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.4.7", "@ethersproject/abi@^5.5.0", "@ethersproject/abi@^5.7.0", "@ethersproject/abi@^5.8.0": version "5.8.0" resolved "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.8.0.tgz#e79bb51940ac35fe6f3262d7fe2cdb25ad5f07d9" integrity sha512-b9YS/43ObplgyV6SlyQsG53/vkSal0MNA1fskSC4mbnCMi8R+NkcH8K9FPYNESf6jUefBUniE4SOKms0E/KK1Q== @@ -991,7 +991,7 @@ "@ethersproject/sha2" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/solidity@5.8.0": +"@ethersproject/solidity@5.8.0", "@ethersproject/solidity@^5.0.9": version "5.8.0" resolved "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.8.0.tgz#429bb9fcf5521307a9448d7358c26b93695379b9" integrity sha512-4CxFeCgmIWamOHwYN9d+QWGxye9qQLilpgTU0XhYs1OahkclF+ewO+3V1U0mvpiuQxm5EHHmv8f7ClVII8EHsA== @@ -2122,6 +2122,11 @@ resolved "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-5.3.0.tgz#79dba09ab0b4bb49f21544ea738b9de016b0ceea" integrity sha512-yVzSSyTMWO6rapGI5tuqkcLpcGGXA0UA1vScyV5EhE5yw8By3Ewex9rDUw8lfVw0iTkvR/egjfcW5vpk03lqZg== +"@openzeppelin/contracts@3.4.1-solc-0.7-2": + version "3.4.1-solc-0.7-2" + resolved "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-3.4.1-solc-0.7-2.tgz#371c67ebffe50f551c3146a9eec5fe6ffe862e92" + integrity sha512-tAG9LWg8+M2CMu7hIsqHPaTyG4uDzjr6mhvH96LvOpLZZj6tgzTluBt+LsCf1/QaYrlis6pITvpIaIhE+iZB+Q== + "@openzeppelin/contracts@3.4.2-solc-0.7": version "3.4.2-solc-0.7" resolved "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-3.4.2-solc-0.7.tgz#38f4dbab672631034076ccdf2f3201fab1726635" @@ -3278,6 +3283,33 @@ resolved "https://registry.npmjs.org/@uniswap/lib/-/lib-4.0.1-alpha.tgz#2881008e55f075344675b3bca93f020b028fbd02" integrity sha512-f6UIliwBbRsgVLxIaBANF6w09tYqc6Y/qXdsrbEmXHyFA7ILiKrIwRFXe1yOg8M3cksgVsO9N7yuL2DdCGQKBA== +"@uniswap/sdk-core@^7.7.1": + version "7.7.2" + resolved "https://registry.npmjs.org/@uniswap/sdk-core/-/sdk-core-7.7.2.tgz#dc3a9b63b343640754860dce05d06972815eaee6" + integrity sha512-0KqXw+y0opBo6eoPAEoLHEkNpOu0NG9gEk7GAYIGok+SHX89WlykWsRYeJKTg9tOwhLpcG9oHg8xZgQ390iOrA== + dependencies: + "@ethersproject/address" "^5.0.2" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "5.7.0" + "@ethersproject/strings" "5.7.0" + big.js "^5.2.2" + decimal.js-light "^2.5.0" + jsbi "^3.1.4" + tiny-invariant "^1.1.0" + toformat "^2.0.0" + +"@uniswap/swap-router-contracts@^1.3.0": + version "1.3.1" + resolved "https://registry.npmjs.org/@uniswap/swap-router-contracts/-/swap-router-contracts-1.3.1.tgz#0ebbb93eb578625618ed9489872de381f9c66fb4" + integrity sha512-mh/YNbwKb7Mut96VuEtL+Z5bRe0xVIbjjiryn+iMMrK2sFKhR4duk/86mEz0UO5gSx4pQIw9G5276P5heY/7Rg== + dependencies: + "@openzeppelin/contracts" "3.4.2-solc-0.7" + "@uniswap/v2-core" "^1.0.1" + "@uniswap/v3-core" "^1.0.0" + "@uniswap/v3-periphery" "^1.4.4" + dotenv "^14.2.0" + hardhat-watcher "^2.1.1" + "@uniswap/v2-core@1.0.0": version "1.0.0" resolved "https://registry.npmjs.org/@uniswap/v2-core/-/v2-core-1.0.0.tgz#e0fab91a7d53e8cafb5326ae4ca18351116b0844" @@ -3296,12 +3328,17 @@ "@uniswap/lib" "1.1.1" "@uniswap/v2-core" "1.0.0" +"@uniswap/v3-core@1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@uniswap/v3-core/-/v3-core-1.0.0.tgz#6c24adacc4c25dceee0ba3ca142b35adbd7e359d" + integrity sha512-kSC4djMGKMHj7sLMYVnn61k9nu+lHjMIxgg9CDQT+s2QYLoA56GbSK9Oxr+qJXzzygbkrmuY6cwgP6cW2JXPFA== + "@uniswap/v3-core@^1.0.0", "@uniswap/v3-core@^1.0.1": version "1.0.1" resolved "https://registry.npmjs.org/@uniswap/v3-core/-/v3-core-1.0.1.tgz#b6d2bdc6ba3c3fbd610bdc502395d86cd35264a0" integrity sha512-7pVk4hEm00j9tc71Y9+ssYpO6ytkeI0y7WE9P6UcmNzhxPePwyAxImuhVsTqWK9YFvzgtvzJHi64pBl4jUzKMQ== -"@uniswap/v3-periphery@^1.4.4": +"@uniswap/v3-periphery@^1.0.1", "@uniswap/v3-periphery@^1.1.1", "@uniswap/v3-periphery@^1.4.4": version "1.4.4" resolved "https://registry.npmjs.org/@uniswap/v3-periphery/-/v3-periphery-1.4.4.tgz#d2756c23b69718173c5874f37fd4ad57d2f021b7" integrity sha512-S4+m+wh8HbWSO3DKk4LwUCPZJTpCugIsHrWR86m/OrUyvSqGDTXKFfc2sMuGXCZrD1ZqO3rhQsKgdWg3Hbb2Kw== @@ -3312,6 +3349,29 @@ "@uniswap/v3-core" "^1.0.0" base64-sol "1.0.1" +"@uniswap/v3-sdk@^3.25.2": + version "3.25.2" + resolved "https://registry.npmjs.org/@uniswap/v3-sdk/-/v3-sdk-3.25.2.tgz#cb6ee174b58d86a3b3b18b3ba72f662e58c415da" + integrity sha512-0oiyJNGjUVbc958uZmAr+m4XBCjV7PfMs/OUeBv+XDl33MEYF/eH86oBhvqGDM8S/cYaK55tCXzoWkmRUByrHg== + dependencies: + "@ethersproject/abi" "^5.5.0" + "@ethersproject/solidity" "^5.0.9" + "@uniswap/sdk-core" "^7.7.1" + "@uniswap/swap-router-contracts" "^1.3.0" + "@uniswap/v3-periphery" "^1.1.1" + "@uniswap/v3-staker" "1.0.0" + tiny-invariant "^1.1.0" + tiny-warning "^1.0.3" + +"@uniswap/v3-staker@1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@uniswap/v3-staker/-/v3-staker-1.0.0.tgz#9a6915ec980852479dfc903f50baf822ff8fa66e" + integrity sha512-JV0Qc46Px5alvg6YWd+UIaGH9lDuYG/Js7ngxPit1SPaIP30AlVer1UYB7BRYeUVVxE+byUyIeN5jeQ7LLDjIw== + dependencies: + "@openzeppelin/contracts" "3.4.1-solc-0.7-2" + "@uniswap/v3-core" "1.0.0" + "@uniswap/v3-periphery" "^1.0.1" + "@unrs/resolver-binding-android-arm-eabi@1.11.0": version "1.11.0" resolved "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.0.tgz#6a64664fa35d2aaf3ed9bc82dff15ef9df23c066" @@ -4115,6 +4175,11 @@ bech32@^2.0.0: resolved "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz#078d3686535075c8c79709f054b1b226a133b355" integrity sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg== +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + bigint-buffer@^1.1.5: version "1.1.5" resolved "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz#d038f31c8e4534c1f8d0015209bf34b4fa6dd442" @@ -5021,6 +5086,11 @@ decamelize@^4.0.0: resolved "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== +decimal.js-light@^2.5.0: + version "2.5.1" + resolved "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz#134fd32508f19e208f4fb2f8dac0d2626a867934" + integrity sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg== + decode-uri-component@^0.2.0: version "0.2.2" resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" @@ -5181,6 +5251,11 @@ dotenv@16.0.3: resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07" integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ== +dotenv@^14.2.0: + version "14.3.2" + resolved "https://registry.npmjs.org/dotenv/-/dotenv-14.3.2.tgz#7c30b3a5f777c79a3429cb2db358eef6751e8369" + integrity sha512-vwEppIphpFdvaMCaHfCEv9IgwcxMljMw2TnAQBB4VWPvzXQLTb82jwmdOKzlEVUL3gNFT4l4TPKO+Bn+sqcrVQ== + dotenv@^16.1.4: version "16.6.1" resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz#773f0e69527a8315c7285d5ee73c4459d20a8020" @@ -6607,6 +6682,13 @@ hardhat-gas-reporter@^1.0.8: eth-gas-reporter "^0.2.25" sha1 "^1.1.1" +hardhat-watcher@^2.1.1: + version "2.5.0" + resolved "https://registry.npmjs.org/hardhat-watcher/-/hardhat-watcher-2.5.0.tgz#3ee76c3cb5b99f2875b78d176207745aa484ed4a" + integrity sha512-Su2qcSMIo2YO2PrmJ0/tdkf+6pSt8zf9+4URR5edMVti6+ShI8T3xhPrwugdyTOFuyj8lKHrcTZNKUFYowYiyA== + dependencies: + chokidar "^3.5.3" + hardhat@^2.22.8: version "2.25.0" resolved "https://registry.npmjs.org/hardhat/-/hardhat-2.25.0.tgz#473bf07b62a0ea30cf003e4585f71a0ffc70c739" @@ -7869,6 +7951,16 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" +jsbi@^3.1.4: + version "3.2.5" + resolved "https://registry.npmjs.org/jsbi/-/jsbi-3.2.5.tgz#b37bb90e0e5c2814c1c2a1bcd8c729888a2e37d6" + integrity sha512-aBE4n43IPvjaddScbvWRA2YlTzKEynHzu7MqOyTipdHucf/VxS63ViCjxYRg86M8Rxwbt/GfzHl1kKERkt45fQ== + +jsbi@^4.3.2: + version "4.3.2" + resolved "https://registry.npmjs.org/jsbi/-/jsbi-4.3.2.tgz#8a4d05d4e09907d73042135b6aa55a6d161ee955" + integrity sha512-9fqMSQbhJykSeii05nxKl4m6Eqn2P6rOlYiS+C5Dr/HPIU/7yZxu5qzbs40tgaFORiw2Amd0mirjxatXYMkIew== + jsesc@^3.0.2: version "3.1.0" resolved "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" @@ -10306,6 +10398,11 @@ through2@^4.0.0: dependencies: readable-stream "3" +tiny-invariant@^1.1.0: + version "1.3.3" + resolved "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz#46680b7a873a0d5d10005995eb90a70d74d60127" + integrity sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg== + tiny-secp256k1@^2.2.3: version "2.2.4" resolved "https://registry.npmjs.org/tiny-secp256k1/-/tiny-secp256k1-2.2.4.tgz#1d9e45c2facb8607847da71a0a3d9cb2fd027eb2" @@ -10313,6 +10410,11 @@ tiny-secp256k1@^2.2.3: dependencies: uint8array-tools "0.0.7" +tiny-warning@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + tinyglobby@^0.2.13, tinyglobby@^0.2.6: version "0.2.14" resolved "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz#5280b0cf3f972b050e74ae88406c0a6a58f4079d" @@ -10374,6 +10476,11 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" +toformat@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/toformat/-/toformat-2.0.0.tgz#7a043fd2dfbe9021a4e36e508835ba32056739d8" + integrity sha512-03SWBVop6nU8bpyZCx7SodpYznbZF5R4ljwNLBcTQzKOD9xuihRo/psX58llS1BMFhhAI08H3luot5GoXJz2pQ== + toidentifier@1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" From dff4ad940f36123247d22686ab7696c0acf8ad32 Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Mon, 7 Jul 2025 13:05:27 +0300 Subject: [PATCH 32/44] wip --- .../commands/src/zetachain/pools/create.ts | 9 +- .../commands/src/zetachain/pools/index.ts | 2 + .../src/zetachain/pools/liquidity/add.ts | 14 +- packages/commands/src/zetachain/pools/swap.ts | 151 ++++++++++++++++++ 4 files changed, 170 insertions(+), 6 deletions(-) create mode 100644 packages/commands/src/zetachain/pools/swap.ts diff --git a/packages/commands/src/zetachain/pools/create.ts b/packages/commands/src/zetachain/pools/create.ts index cb7a1a6b..537dd749 100644 --- a/packages/commands/src/zetachain/pools/create.ts +++ b/packages/commands/src/zetachain/pools/create.ts @@ -16,7 +16,7 @@ import { import { IERC20Metadata__factory } from "../../../../../typechain-types"; /* ╭─────────────────── helpers ────────────────────╮ */ -const SCALE = 1_000_000n; // 6-dp USD → int +const SCALE = 1_000_000_000_000_000_000n; // 1e18 const TWO_192 = 1n << 192n; /** integer √ via Newton (both args BigInt) */ @@ -50,6 +50,7 @@ function buildSqrtPriceX96( // ratio (token1 / token0) in base units const ratio = (p0 * 10n ** BigInt(dec1)) / (p1 * 10n ** BigInt(dec0)); + console.log("Ratio:", ratio.toString()); // sqrtPriceX96 = floor( sqrt(ratio) * 2^96 ) return sqrtBig(ratio * TWO_192); @@ -116,6 +117,12 @@ const main = async (raw: CreatePoolOptions): Promise => { isCliOrderToken0 ); + if (sqrtPriceX96 === 0n) { + throw new Error( + "Computed sqrtPriceX96 = 0. Check that your --prices have enough precision." + ); + } + /* ─── initialise if not yet initialised ─────────────── */ const slot0 = await pool.slot0().catch(() => null); if (!slot0 || slot0.sqrtPriceX96 === 0n) { diff --git a/packages/commands/src/zetachain/pools/index.ts b/packages/commands/src/zetachain/pools/index.ts index b5e077dc..56f5d00b 100644 --- a/packages/commands/src/zetachain/pools/index.ts +++ b/packages/commands/src/zetachain/pools/index.ts @@ -4,11 +4,13 @@ import { createCommand } from "./create"; import { deployCommand } from "./deploy"; import { liquidityCommand } from "./liquidity"; import { showCommand } from "./show"; +import { swapCommand } from "./swap"; export const poolsCommand = new Command("pools") .summary("ZetaChain pools commands") .alias("p") .addCommand(deployCommand) .addCommand(createCommand) + .addCommand(swapCommand) .addCommand(showCommand) .addCommand(liquidityCommand); diff --git a/packages/commands/src/zetachain/pools/liquidity/add.ts b/packages/commands/src/zetachain/pools/liquidity/add.ts index 545961be..74a38ef6 100644 --- a/packages/commands/src/zetachain/pools/liquidity/add.ts +++ b/packages/commands/src/zetachain/pools/liquidity/add.ts @@ -171,15 +171,19 @@ const main = async (options: AddLiquidityOptions): Promise => { signer ); + let nonce = await provider.getTransactionCount(signer.address, "pending"); + // Approve tokens console.log("\nApproving tokens..."); const approve0Tx = (await token0ContractForApproval.approve( positionManager.target, - amount0 + amount0, + { nonce: nonce++ } )) as ethers.TransactionResponse; const approve1Tx = (await token1ContractForApproval.approve( positionManager.target, - amount1 + amount1, + { nonce: nonce++ } )) as ethers.TransactionResponse; console.log("Waiting for approvals..."); @@ -211,9 +215,9 @@ const main = async (options: AddLiquidityOptions): Promise => { // Send transaction console.log("\nAdding liquidity..."); - const tx = (await positionManager.mint( - params - )) as ethers.TransactionResponse; + const tx = (await positionManager.mint(params, { + nonce: nonce++, + })) as ethers.TransactionResponse; const receipt = await tx.wait(); if (!receipt) { diff --git a/packages/commands/src/zetachain/pools/swap.ts b/packages/commands/src/zetachain/pools/swap.ts new file mode 100644 index 00000000..3eef1135 --- /dev/null +++ b/packages/commands/src/zetachain/pools/swap.ts @@ -0,0 +1,151 @@ +/******************************************************************** + * pools swap – nudge a pool’s price to a target USD ratio + *******************************************************************/ +import * as UniswapV3Factory from "@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json"; +import * as UniswapV3Pool from "@uniswap/v3-core/artifacts/contracts/UniswapV3Pool.sol/UniswapV3Pool.json"; +import * as SwapRouterArtifact from "@uniswap/v3-periphery/artifacts/contracts/SwapRouter.sol/SwapRouter.json"; +import { IERC20Metadata__factory } from "../../../../../typechain-types"; +import { Command } from "commander"; +import { Contract, JsonRpcProvider, Wallet, ethers } from "ethers"; +import { z } from "zod"; + +import { + DEFAULT_FACTORY, + DEFAULT_RPC, +} from "../../../../../src/constants/pools"; + +const DEFAULT_SWAP_ROUTER = "0x42F98DfA0Bcca632b5e979E766331E7599b83686"; +const TWO_192 = 1n << 192n; + +/* √(bigint) ------------------------------------------------------ */ +function sqrtBig(n: bigint): bigint { + if (n < 2n) return n; + let x = n, + y = (x + 1n) >> 1n; + while (y < x) { + x = y; + y = (x + n / x) >> 1n; + } + return x; +} + +/* exact sqrtPriceX96 from USD prices ----------------------------- */ +function calcSqrtPriceX96( + usd0: number, + usd1: number, + dec0: number, + dec1: number, + cliIsTok0: boolean +): bigint { + const FIX = 1e18; // 18-dp fixed USD + const p0 = BigInt(Math.round((cliIsTok0 ? usd0 : usd1) * FIX)); // token0 USD*1e18 + const p1 = BigInt(Math.round((cliIsTok0 ? usd1 : usd0) * FIX)); // token1 USD*1e18 + + // token1/token0 ratio in base-units, scaled by 2^192 for Q64.96 + const num = p1 * 10n ** BigInt(dec0); // p1 × 10^dec0 + const den = p0 * 10n ** BigInt(dec1); // p0 × 10^dec1 + if (num === 0n || den === 0n) throw new Error("bad price inputs"); + + const ratioX192 = (num << 192n) / den; // (token1/token0) × 2^192 + return sqrtBig(ratioX192); +} + +/* ------------- CLI schema -------------------------------------- */ +const swapOpts = z.object({ + privateKey: z.string(), + tokens: z.array(z.string()).length(2), + prices: z.array(z.string()).length(2), + fee: z.string().default("3000"), + amountIn: z.string().default("1"), + approve: z.boolean().default(true), + rpc: z.string().default(DEFAULT_RPC), + router: z.string().default(DEFAULT_SWAP_ROUTER), +}); +type SwapOpts = z.infer; + +/* ------------- main -------------------------------------------- */ +const main = async (raw: SwapOpts) => { + const o = swapOpts.parse(raw); + const provider = new JsonRpcProvider(o.rpc); + const signer = new Wallet(o.privateKey, provider); + const [usdA, usdB] = o.prices.map(Number); + + /* factory / pool */ + const factory = new Contract(DEFAULT_FACTORY, UniswapV3Factory.abi, provider); + const poolAddr = await factory.getPool( + o.tokens[0], + o.tokens[1], + Number(o.fee) + ); + if (poolAddr === ethers.ZeroAddress) throw new Error("Pool not found"); + + const pool = new Contract(poolAddr, UniswapV3Pool.abi, provider); + const [token0, token1] = await Promise.all([pool.token0(), pool.token1()]); + const [dec0Big, dec1Big] = await Promise.all([ + IERC20Metadata__factory.connect(token0, provider).decimals(), + IERC20Metadata__factory.connect(token1, provider).decimals(), + ]); + const dec0 = Number(dec0Big); + const dec1 = Number(dec1Big); + + const cliIsTok0 = token0.toLowerCase() === o.tokens[0].toLowerCase(); + const sqrtLimit = calcSqrtPriceX96(usdA, usdB, dec0, dec1, cliIsTok0); + + const slot0 = await pool.slot0(); + const current = slot0.sqrtPriceX96; + const zeroForOne = sqrtLimit < current; // direction + + const tokenIn = zeroForOne ? token1 : token0; + const decimalsIn = zeroForOne ? dec1 : dec0; + const amountIn = ethers.parseUnits(o.amountIn, decimalsIn); + + console.log("Pool :", poolAddr); + console.log("√P now :", current.toString()); + console.log("√P tgt :", sqrtLimit.toString()); + console.log("swap :", zeroForOne ? "token1 → token0" : "token0 → token1"); + + /* approve */ + if (o.approve) { + const erc20 = IERC20Metadata__factory.connect(tokenIn, signer); + const allowance = await erc20.allowance( + await signer.getAddress(), + o.router + ); + if (allowance < amountIn) { + console.log("Approving", o.amountIn, "…"); + const tx = await erc20.approve(o.router, amountIn); + await tx.wait(); + } + } + + /* router swap */ + const router = new Contract(o.router, SwapRouterArtifact.abi, signer); + const params = { + tokenIn, + tokenOut: zeroForOne ? token0 : token1, + fee: Number(o.fee), + recipient: await signer.getAddress(), + deadline: Math.floor(Date.now() / 1e3) + 600, + amountIn, + amountOutMinimum: 0, + sqrtPriceLimitX96: sqrtLimit, + } as const; + + const tx = await router.exactInputSingle(params, { gasLimit: 900_000 }); + console.log("tx:", tx.hash, "– waiting…"); + await tx.wait(); + console.log("✓ Done. Verify with `pools show`."); +}; + +/* ------------- export command ---------------------------------- */ +export const swapCommand = new Command("swap") + .summary("Push a pool’s price to a target USD ratio with one swap") + .requiredOption("--private-key ", "Signer private key") + .requiredOption("--tokens ", "Two token addresses (CLI order)") + .requiredOption("--prices ", "USD prices (tokenA tokenB)") + .option("--fee ", "Fee tier (default 3000)", "3000") + .option("--amount-in ", "Input token amount (default 1)", "1") + .option("--no-approve", "Skip ERC-20 approve step") + .option("--router ", "SwapRouter address", DEFAULT_SWAP_ROUTER) + .option("--rpc ", "JSON-RPC endpoint", DEFAULT_RPC) + .action(main); From d26804cb1d560b44c25c85309738147eeb48f6eb Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Mon, 7 Jul 2025 13:05:57 +0300 Subject: [PATCH 33/44] lint --- .../commands/src/zetachain/pools/create.ts | 4 ++-- .../src/zetachain/pools/liquidity/remove.ts | 20 ++++++++-------- .../src/zetachain/pools/liquidity/show.ts | 9 +++---- packages/commands/src/zetachain/pools/swap.ts | 24 +++++++++---------- types/pools.ts | 6 ++--- 5 files changed, 32 insertions(+), 31 deletions(-) diff --git a/packages/commands/src/zetachain/pools/create.ts b/packages/commands/src/zetachain/pools/create.ts index 537dd749..06a3aeb1 100644 --- a/packages/commands/src/zetachain/pools/create.ts +++ b/packages/commands/src/zetachain/pools/create.ts @@ -1,19 +1,19 @@ import * as UniswapV3Factory from "@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json"; import * as UniswapV3Pool from "@uniswap/v3-core/artifacts/contracts/UniswapV3Pool.sol/UniswapV3Pool.json"; import { Command } from "commander"; -import { Contract, JsonRpcProvider, Wallet, ethers } from "ethers"; +import { Contract, ethers, JsonRpcProvider, Wallet } from "ethers"; import { DEFAULT_FACTORY, DEFAULT_FEE, DEFAULT_RPC, } from "../../../../../src/constants/pools"; +import { IERC20Metadata__factory } from "../../../../../typechain-types"; import { type CreatePoolOptions, createPoolOptionsSchema, PoolCreationError, } from "../../../../../types/pools"; -import { IERC20Metadata__factory } from "../../../../../typechain-types"; /* ╭─────────────────── helpers ────────────────────╮ */ const SCALE = 1_000_000_000_000_000_000n; // 1e18 diff --git a/packages/commands/src/zetachain/pools/liquidity/remove.ts b/packages/commands/src/zetachain/pools/liquidity/remove.ts index fc4269f4..d74fd46f 100644 --- a/packages/commands/src/zetachain/pools/liquidity/remove.ts +++ b/packages/commands/src/zetachain/pools/liquidity/remove.ts @@ -41,10 +41,10 @@ const main = async (options: RemoveLiquidityOptions): Promise => { const { chosen } = await inquirer.prompt([ { - type: "list", - name: "chosen", - message: "Select position to remove liquidity from", choices: ids.map((id) => ({ name: id.toString(), value: id })), + message: "Select position to remove liquidity from", + name: "chosen", + type: "list", }, ]); tokenId = chosen.toString(); @@ -66,10 +66,10 @@ const main = async (options: RemoveLiquidityOptions): Promise => { !( await inquirer.prompt([ { - type: "confirm", - name: "ok", - message: "Remove ALL liquidity and collect the tokens?", default: false, + message: "Remove ALL liquidity and collect the tokens?", + name: "ok", + type: "confirm", }, ]) ).ok @@ -80,21 +80,21 @@ const main = async (options: RemoveLiquidityOptions): Promise => { /* ─── 4. decreaseLiquidity ─────────────────────────────────────────────── */ const deadline = Math.floor(Date.now() / 1e3) + 60 * 20; const decTx = await pm.decreaseLiquidity({ - tokenId, - liquidity, amount0Min: 0, amount1Min: 0, deadline, + liquidity, + tokenId, }); await decTx.wait(); console.log("✓ Liquidity removed (tx:", decTx.hash + ")"); /* ─── 5. collect ───────────────────────────────────────────────────────── */ const colTx = await pm.collect({ - tokenId, - recipient: signer.address, amount0Max: MaxUint128, amount1Max: MaxUint128, + recipient: signer.address, + tokenId, }); await colTx.wait(); console.log("✓ Fees + principal collected (tx:", colTx.hash + ")"); diff --git a/packages/commands/src/zetachain/pools/liquidity/show.ts b/packages/commands/src/zetachain/pools/liquidity/show.ts index 661644ab..0fd9d6ec 100644 --- a/packages/commands/src/zetachain/pools/liquidity/show.ts +++ b/packages/commands/src/zetachain/pools/liquidity/show.ts @@ -1,17 +1,18 @@ +import * as UniswapV3Factory from "@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json"; import * as NonfungiblePositionManager from "@uniswap/v3-periphery/artifacts/contracts/NonfungiblePositionManager.sol/NonfungiblePositionManager.json"; -import { IERC20Metadata__factory } from "../../../../../../typechain-types"; import { Command } from "commander"; -import { Contract, JsonRpcProvider, Wallet, ethers } from "ethers"; +import { Contract, ethers, JsonRpcProvider, Wallet } from "ethers"; + import { - DEFAULT_POSITION_MANAGER, DEFAULT_FACTORY, + DEFAULT_POSITION_MANAGER, DEFAULT_RPC, } from "../../../../../../src/constants/pools"; +import { IERC20Metadata__factory } from "../../../../../../typechain-types"; import { ShowLiquidityOptions, showLiquidityOptionsSchema, } from "../../../../../../types/pools"; -import * as UniswapV3Factory from "@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json"; const main = async (raw: ShowLiquidityOptions) => { try { diff --git a/packages/commands/src/zetachain/pools/swap.ts b/packages/commands/src/zetachain/pools/swap.ts index 3eef1135..1d916bd9 100644 --- a/packages/commands/src/zetachain/pools/swap.ts +++ b/packages/commands/src/zetachain/pools/swap.ts @@ -4,15 +4,15 @@ import * as UniswapV3Factory from "@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json"; import * as UniswapV3Pool from "@uniswap/v3-core/artifacts/contracts/UniswapV3Pool.sol/UniswapV3Pool.json"; import * as SwapRouterArtifact from "@uniswap/v3-periphery/artifacts/contracts/SwapRouter.sol/SwapRouter.json"; -import { IERC20Metadata__factory } from "../../../../../typechain-types"; import { Command } from "commander"; -import { Contract, JsonRpcProvider, Wallet, ethers } from "ethers"; +import { Contract, ethers, JsonRpcProvider, Wallet } from "ethers"; import { z } from "zod"; import { DEFAULT_FACTORY, DEFAULT_RPC, } from "../../../../../src/constants/pools"; +import { IERC20Metadata__factory } from "../../../../../typechain-types"; const DEFAULT_SWAP_ROUTER = "0x42F98DfA0Bcca632b5e979E766331E7599b83686"; const TWO_192 = 1n << 192n; @@ -52,14 +52,14 @@ function calcSqrtPriceX96( /* ------------- CLI schema -------------------------------------- */ const swapOpts = z.object({ - privateKey: z.string(), - tokens: z.array(z.string()).length(2), - prices: z.array(z.string()).length(2), - fee: z.string().default("3000"), amountIn: z.string().default("1"), approve: z.boolean().default(true), - rpc: z.string().default(DEFAULT_RPC), + fee: z.string().default("3000"), + prices: z.array(z.string()).length(2), + privateKey: z.string(), router: z.string().default(DEFAULT_SWAP_ROUTER), + rpc: z.string().default(DEFAULT_RPC), + tokens: z.array(z.string()).length(2), }); type SwapOpts = z.infer; @@ -121,14 +121,14 @@ const main = async (raw: SwapOpts) => { /* router swap */ const router = new Contract(o.router, SwapRouterArtifact.abi, signer); const params = { - tokenIn, - tokenOut: zeroForOne ? token0 : token1, - fee: Number(o.fee), - recipient: await signer.getAddress(), - deadline: Math.floor(Date.now() / 1e3) + 600, amountIn, amountOutMinimum: 0, + deadline: Math.floor(Date.now() / 1e3) + 600, + fee: Number(o.fee), + recipient: await signer.getAddress(), sqrtPriceLimitX96: sqrtLimit, + tokenIn, + tokenOut: zeroForOne ? token0 : token1, } as const; const tx = await router.exactInputSingle(params, { gasLimit: 900_000 }); diff --git a/types/pools.ts b/types/pools.ts index 5fabd953..f410e0de 100644 --- a/types/pools.ts +++ b/types/pools.ts @@ -74,13 +74,13 @@ export const addLiquidityOptionsSchema = z.object({ }); export const removeLiquidityOptionsSchema = z.object({ + burn: z.boolean().optional(), + privateKey: z.string(), rpc: z.string().default(DEFAULT_RPC), tokenId: z .string() .regex(/^\d+$/, { message: "tokenId must be a numeric string" }) .optional(), - burn: z.boolean().optional(), - privateKey: z.string(), }); export const createPoolOptionsSchema = z.object({ @@ -99,8 +99,8 @@ export const deployOptionsSchema = z.object({ }); export const showLiquidityOptionsSchema = z.object({ - rpc: z.string().default(DEFAULT_RPC), privateKey: z.string(), + rpc: z.string().default(DEFAULT_RPC), }); export type ShowPoolOptions = z.infer; From 1795013282f23b41183acc902434f705811f2658 Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Tue, 8 Jul 2025 15:21:28 +0300 Subject: [PATCH 34/44] wip --- .../commands/src/zetachain/pools/create.ts | 109 +++++++++--------- .../commands/src/zetachain/pools/index.ts | 5 +- 2 files changed, 59 insertions(+), 55 deletions(-) diff --git a/packages/commands/src/zetachain/pools/create.ts b/packages/commands/src/zetachain/pools/create.ts index 06a3aeb1..f3e34638 100644 --- a/packages/commands/src/zetachain/pools/create.ts +++ b/packages/commands/src/zetachain/pools/create.ts @@ -1,5 +1,9 @@ +/******************************************************************** + * pools create — create a V3 pool and initialise it if required + *******************************************************************/ import * as UniswapV3Factory from "@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json"; import * as UniswapV3Pool from "@uniswap/v3-core/artifacts/contracts/UniswapV3Pool.sol/UniswapV3Pool.json"; +import { IERC20Metadata__factory } from "../../../../../typechain-types"; import { Command } from "commander"; import { Contract, ethers, JsonRpcProvider, Wallet } from "ethers"; @@ -8,67 +12,58 @@ import { DEFAULT_FEE, DEFAULT_RPC, } from "../../../../../src/constants/pools"; -import { IERC20Metadata__factory } from "../../../../../typechain-types"; import { - type CreatePoolOptions, createPoolOptionsSchema, + type CreatePoolOptions, PoolCreationError, } from "../../../../../types/pools"; -/* ╭─────────────────── helpers ────────────────────╮ */ +/* ─── helpers ---------------------------------------------------- */ const SCALE = 1_000_000_000_000_000_000n; // 1e18 const TWO_192 = 1n << 192n; - -/** integer √ via Newton (both args BigInt) */ function sqrtBig(n: bigint): bigint { - if (n < 0n) throw new Error("sqrt of negative"); + // integer √ if (n < 2n) return n; - let x0 = n >> 1n; - let x1 = (x0 + n / x0) >> 1n; - while (x1 < x0) { - x0 = x1; - x1 = (x0 + n / x0) >> 1n; + let x = n, + y = (x + 1n) >> 1n; + while (y < x) { + x = y; + y = (x + n / x) >> 1n; } - return x0; + return x; } - -/** build sqrtPriceX96 (Q64.96) for token1/token0 ratio in base-units */ +/** sqrtPriceX96 = √(price₁ / price₀) × 2⁹⁶ (token1/token0) */ function buildSqrtPriceX96( usd0: number, usd1: number, dec0: number, dec1: number, - isCliOrderToken0: boolean + cliToken0: boolean ): bigint { - // map USD prices into factory-sorted order - const priceToken0Usd = isCliOrderToken0 ? usd0 : usd1; - const priceToken1Usd = isCliOrderToken0 ? usd1 : usd0; - - // integer USD (6 decimals) to avoid FP - const p0 = BigInt(Math.round(priceToken0Usd * Number(SCALE))); - const p1 = BigInt(Math.round(priceToken1Usd * Number(SCALE))); - - // ratio (token1 / token0) in base units - const ratio = (p0 * 10n ** BigInt(dec1)) / (p1 * 10n ** BigInt(dec0)); - console.log("Ratio:", ratio.toString()); - - // sqrtPriceX96 = floor( sqrt(ratio) * 2^96 ) - return sqrtBig(ratio * TWO_192); + // USD prices mapped to factory order + const pTok0 = BigInt(Math.round((cliToken0 ? usd0 : usd1) * 1e18)); + const pTok1 = BigInt(Math.round((cliToken0 ? usd1 : usd0) * 1e18)); + + // token1/token0 ratio in base-units, scaled by 2¹⁹² + const num = pTok1 * 10n ** BigInt(dec0); // p₁ × 10^dec₀ + const den = pTok0 * 10n ** BigInt(dec1); // p₀ × 10^dec₁ + const ratioX192 = (num << 192n) / den; // shift before divide + if (ratioX192 === 0n) throw new Error("ratio underflow – raise precision"); + + /* integer √ → Q64.96 */ + return sqrtBig(ratioX192); } -/* ╰───────────────────────────────────────────────╯ */ -const main = async (raw: CreatePoolOptions): Promise => { +/* ─── main ------------------------------------------------------- */ +const main = async (raw: CreatePoolOptions) => { try { const o = createPoolOptionsSchema.parse(raw); const [usdA, usdB] = o.prices.map(Number); - if (usdA <= 0 || usdB <= 0 || Number.isNaN(usdA) || Number.isNaN(usdB)) { - throw new Error("--prices must be positive numbers"); - } const provider = new JsonRpcProvider(o.rpc ?? DEFAULT_RPC); const signer = new Wallet(o.privateKey, provider); - /* ─── factory & existing pool check ─────────────────── */ + /* factory --------------------------------------------------- */ const factory = new Contract( o.factory ?? DEFAULT_FACTORY, UniswapV3Factory.abi, @@ -82,7 +77,7 @@ const main = async (raw: CreatePoolOptions): Promise => { ); if (poolAddr === ethers.ZeroAddress) { - console.log("Creating pool…"); + console.log("Creating pool …"); const tx = await factory.createPool( o.tokens[0], o.tokens[1], @@ -99,7 +94,7 @@ const main = async (raw: CreatePoolOptions): Promise => { console.log("Pool already exists:", poolAddr); } - /* ─── pool contract ─────────────────────────────────── */ + /* pool contract -------------------------------------------- */ const pool = new Contract(poolAddr, UniswapV3Pool.abi, signer); const [token0, token1] = await Promise.all([pool.token0(), pool.token1()]); const [dec0, dec1] = await Promise.all([ @@ -107,33 +102,35 @@ const main = async (raw: CreatePoolOptions): Promise => { IERC20Metadata__factory.connect(token1, provider).decimals(), ]); - /* ─── compute sqrtPriceX96 ──────────────────────────── */ - const isCliOrderToken0 = token0.toLowerCase() === o.tokens[0].toLowerCase(); + /* compute initial sqrtPriceX96 ----------------------------- */ + const cliToken0 = token0.toLowerCase() === o.tokens[0].toLowerCase(); const sqrtPriceX96 = buildSqrtPriceX96( usdA, usdB, Number(dec0), Number(dec1), - isCliOrderToken0 + cliToken0 ); - if (sqrtPriceX96 === 0n) { - throw new Error( - "Computed sqrtPriceX96 = 0. Check that your --prices have enough precision." - ); + /* check if initialised ------------------------------------- */ + let needInit = false; + try { + const slot0 = await pool.slot0(); + needInit = slot0.sqrtPriceX96 === 0n; + } catch { + needInit = true; // slot0() reverted → not initialised } - /* ─── initialise if not yet initialised ─────────────── */ - const slot0 = await pool.slot0().catch(() => null); - if (!slot0 || slot0.sqrtPriceX96 === 0n) { - const initTx = await pool.initialize(sqrtPriceX96); - await initTx.wait(); - console.log("✓ Pool initialised (tx:", initTx.hash, ")"); + if (needInit) { + console.log("Initialising pool …"); + const tx = await pool.initialize(sqrtPriceX96); + await tx.wait(); + console.log("✓ Pool initialised (tx:", tx.hash, ")"); } else { console.log("Pool already initialised; skipped."); } - console.log("Done ✔ address =", poolAddr); + console.log("✔ Done – pool address:", poolAddr); } catch (err) { const e = err as PoolCreationError; console.error("Pool creation failed:", e.message); @@ -143,16 +140,20 @@ const main = async (raw: CreatePoolOptions): Promise => { } }; -/* ─── CLI wiring ───────────────────────────────────────────── */ +/* ─── CLI ------------------------------------------------------- */ export const createCommand = new Command("create") - .summary("Create & initialise a Uniswap V3 pool at a USD price ratio") + .summary("Create a Uniswap V3 pool and initialise it at a USD price ratio") .requiredOption("--private-key ", "Private key paying gas") .requiredOption("--tokens ", "Two token addresses (CLI order)") .requiredOption( "--prices ", "USD prices for the tokens in same order" ) - .option("--fee ", "Fee tier (e.g. 3000 = 0.3%)", DEFAULT_FEE.toString()) + .option( + "--fee ", + "Fee tier (default 3000 = 0.3%)", + DEFAULT_FEE.toString() + ) .option("--factory ", "Uniswap V3 Factory", DEFAULT_FACTORY) .option("--rpc ", "JSON-RPC endpoint", DEFAULT_RPC) .action(main); diff --git a/packages/commands/src/zetachain/pools/index.ts b/packages/commands/src/zetachain/pools/index.ts index 56f5d00b..56b533ce 100644 --- a/packages/commands/src/zetachain/pools/index.ts +++ b/packages/commands/src/zetachain/pools/index.ts @@ -7,7 +7,10 @@ import { showCommand } from "./show"; import { swapCommand } from "./swap"; export const poolsCommand = new Command("pools") - .summary("ZetaChain pools commands") + .summary("Interact with ZetaChain Uniswap v3 pools.") + .description( + "This command group provides a set of commands for managing and interacting with Uniswap v3 pools on ZetaChain. It includes functionality for deploying new pools, creating new pools, swapping tokens, and managing liquidity positions. Note: these commands are meant to be used for testing purposes only." + ) .alias("p") .addCommand(deployCommand) .addCommand(createCommand) From 01acd19c3f6d1f22ace4354234f33fc0edbfaba8 Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Fri, 25 Jul 2025 11:09:36 +0300 Subject: [PATCH 35/44] fix pools show --- packages/commands/src/zetachain/pools/show.ts | 16 ++++++++++++---- src/constants/pools.ts | 4 ++-- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/packages/commands/src/zetachain/pools/show.ts b/packages/commands/src/zetachain/pools/show.ts index 03452428..e9bc2967 100644 --- a/packages/commands/src/zetachain/pools/show.ts +++ b/packages/commands/src/zetachain/pools/show.ts @@ -81,16 +81,24 @@ const main = async (options: ShowPoolOptions): Promise => { pool.slot0(), ])) as [string, string, bigint, bigint, bigint, Slot0Result]; - // Get token symbols - const [token0Symbol, token1Symbol] = await Promise.all([ + // Get token symbols and decimals (decimals needed for accurate price calculation) + const [token0Symbol, token1Symbol, dec0, dec1] = await Promise.all([ getTokenSymbol(provider, token0), getTokenSymbol(provider, token1), + IERC20Metadata__factory.connect(token0, provider).decimals(), + IERC20Metadata__factory.connect(token1, provider).decimals(), ]); - // Calculate price from sqrtPriceX96 + // Calculate price from sqrtPriceX96 accounting for token decimals const sqrtPriceX96 = slot0.sqrtPriceX96; const sqrtPrice = Number(sqrtPriceX96) / 2 ** 96; - const priceToken1PerToken0 = sqrtPrice ** 2; + const priceUnits = sqrtPrice ** 2; // price in base-unit ratio (token1 base units / token0 base units) + + // Adjust for token decimals to get token-level price + const decDiff = Number(dec0) - Number(dec1); + const priceToken1PerToken0 = + decDiff >= 0 ? priceUnits / 10 ** decDiff : priceUnits * 10 ** -decDiff; + const priceToken0PerToken1 = 1 / priceToken1PerToken0; console.log("\nPool Information:"); diff --git a/src/constants/pools.ts b/src/constants/pools.ts index 60af0d5b..c1c198c4 100644 --- a/src/constants/pools.ts +++ b/src/constants/pools.ts @@ -1,7 +1,7 @@ export const DEFAULT_RPC = "https://zetachain-athens.g.allthatnode.com/archive/evm"; -export const DEFAULT_FACTORY = "0xFd7416c0B1e397514C7a5fAE6750E19025ecC349"; +export const DEFAULT_FACTORY = "0x7D87f693C72D2f5cB550e55fddC88Bf9817AFe36"; export const DEFAULT_WZETA = "0x5F0b1a82749cb4E2278EC87F8BF6B618dC71a8bf"; export const DEFAULT_FEE = 3000; // 0.3% export const DEFAULT_POSITION_MANAGER = - "0x125C5598D6EFA41D9736cC868a0923435F66A3D0"; + "0x2Cf227Cb7b52CdE4AB187a09052DEEBf1312a93A"; From a3d96c56a445a3011938cf54fce7000ca769511c Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Fri, 25 Jul 2025 12:23:31 +0300 Subject: [PATCH 36/44] update defaults --- .../src/zetachain/pools/liquidity/add.ts | 24 +++++++++---------- src/constants/pools.ts | 5 ++-- types/pools.ts | 5 ++-- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/packages/commands/src/zetachain/pools/liquidity/add.ts b/packages/commands/src/zetachain/pools/liquidity/add.ts index 74a38ef6..47c7e7c8 100644 --- a/packages/commands/src/zetachain/pools/liquidity/add.ts +++ b/packages/commands/src/zetachain/pools/liquidity/add.ts @@ -71,15 +71,12 @@ const main = async (options: AddLiquidityOptions): Promise => { ); // Check if pool exists - const poolAddress = (await factory.getPool( - token0, - token1, - DEFAULT_FEE - )) as string; + const fee = parseInt(validatedOptions.fee); + const poolAddress = (await factory.getPool(token0, token1, fee)) as string; if (poolAddress === ethers.ZeroAddress) { throw new Error( `No pool exists for token pair ${symbol0}/${symbol1} with fee ${ - DEFAULT_FEE / 10000 + fee / 10000 }%` ); } @@ -121,9 +118,9 @@ const main = async (options: AddLiquidityOptions): Promise => { // Use signer's address as recipient if not provided const recipient = validatedOptions.recipient ?? signerAddress; - // Set default tick range if not provided - const tickLower = validatedOptions.tickLower ?? -887220; - const tickUpper = validatedOptions.tickUpper ?? 887220; + // Use provided tick range (now defaults to concentrated range) + const tickLower = validatedOptions.tickLower; + const tickUpper = validatedOptions.tickUpper; // Show transaction details and get confirmation console.log("\nTransaction Details:"); @@ -136,7 +133,7 @@ const main = async (options: AddLiquidityOptions): Promise => { console.log(`Pool Address: ${poolAddress}`); console.log(`Recipient: ${recipient}`); console.log(`Tick Range: [${tickLower}, ${tickUpper}]`); - console.log(`Fee: ${DEFAULT_FEE / 10000}%`); + console.log(`Fee: ${fee / 10000}%`); const { confirm } = (await inquirer.prompt([ { @@ -197,7 +194,7 @@ const main = async (options: AddLiquidityOptions): Promise => { amount1Desired: amount1, amount1Min: 0n, deadline: Math.floor(Date.now() / 1000) + 60 * 20, - fee: DEFAULT_FEE, + fee: fee, recipient, tickLower, tickUpper, @@ -291,6 +288,7 @@ export const addCommand = new Command("add") "--private-key ", "Private key of the account that will send the transaction" ) - .option("--tick-lower ", "Lower tick of the position", "-887220") - .option("--tick-upper ", "Upper tick of the position", "887220") + .option("--tick-lower ", "Lower tick of the position", "276000") + .option("--tick-upper ", "Upper tick of the position", "277000") + .option("--fee ", "Fee tier (e.g. 3000 for 0.3%, 10000 for 1%)", "10000") .action(main); diff --git a/src/constants/pools.ts b/src/constants/pools.ts index c1c198c4..96291a65 100644 --- a/src/constants/pools.ts +++ b/src/constants/pools.ts @@ -1,7 +1,8 @@ export const DEFAULT_RPC = "https://zetachain-athens.g.allthatnode.com/archive/evm"; -export const DEFAULT_FACTORY = "0x7D87f693C72D2f5cB550e55fddC88Bf9817AFe36"; +export const DEFAULT_FACTORY = "0x80F2f9B5FCd1655f29896fA422b99D00Ee43353D"; +export const DEFAULT_ROUTER = "0x9E257036f670A12edFE800C39E8A5e7Dd1EB0Ec9"; export const DEFAULT_WZETA = "0x5F0b1a82749cb4E2278EC87F8BF6B618dC71a8bf"; export const DEFAULT_FEE = 3000; // 0.3% export const DEFAULT_POSITION_MANAGER = - "0x2Cf227Cb7b52CdE4AB187a09052DEEBf1312a93A"; + "0x49840EB49077BfA64bC4660dDDDF9a8BD84365cd"; diff --git a/types/pools.ts b/types/pools.ts index f410e0de..02ec1ffb 100644 --- a/types/pools.ts +++ b/types/pools.ts @@ -59,17 +59,18 @@ export const showPoolOptionsSchema = z.object({ export const addLiquidityOptionsSchema = z.object({ amounts: z.array(z.string()).min(2).max(2), + fee: z.string().default("10000"), privateKey: z.string(), recipient: z.string().optional(), rpc: z.string().default(DEFAULT_RPC), tickLower: z .string() .transform((val) => Number(val)) - .optional(), + .default("276000"), tickUpper: z .string() .transform((val) => Number(val)) - .optional(), + .default("277000"), tokens: z.array(z.string()).min(2).max(2), }); From 439a441cb2cafceb72e8365d49d4445fe8649aa8 Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Fri, 25 Jul 2025 12:27:06 +0300 Subject: [PATCH 37/44] update defaults --- packages/commands/src/zetachain/pools/liquidity/add.ts | 6 +++--- types/pools.ts | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/commands/src/zetachain/pools/liquidity/add.ts b/packages/commands/src/zetachain/pools/liquidity/add.ts index 47c7e7c8..b10cd4b0 100644 --- a/packages/commands/src/zetachain/pools/liquidity/add.ts +++ b/packages/commands/src/zetachain/pools/liquidity/add.ts @@ -288,7 +288,7 @@ export const addCommand = new Command("add") "--private-key ", "Private key of the account that will send the transaction" ) - .option("--tick-lower ", "Lower tick of the position", "276000") - .option("--tick-upper ", "Upper tick of the position", "277000") - .option("--fee ", "Fee tier (e.g. 3000 for 0.3%, 10000 for 1%)", "10000") + .option("--tick-lower ", "Lower tick of the position", "361450") + .option("--tick-upper ", "Upper tick of the position", "361550") + .option("--fee ", "Fee tier (e.g. 500 for 0.05%, 3000 for 0.3%)", "500") .action(main); diff --git a/types/pools.ts b/types/pools.ts index 02ec1ffb..3ab61647 100644 --- a/types/pools.ts +++ b/types/pools.ts @@ -59,18 +59,18 @@ export const showPoolOptionsSchema = z.object({ export const addLiquidityOptionsSchema = z.object({ amounts: z.array(z.string()).min(2).max(2), - fee: z.string().default("10000"), + fee: z.string().default("500"), privateKey: z.string(), recipient: z.string().optional(), rpc: z.string().default(DEFAULT_RPC), tickLower: z .string() .transform((val) => Number(val)) - .default("276000"), + .default("361450"), tickUpper: z .string() .transform((val) => Number(val)) - .default("277000"), + .default("361550"), tokens: z.array(z.string()).min(2).max(2), }); From de14ad53d4530ec8a39d95315fcf5597f8e98895 Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Fri, 25 Jul 2025 13:53:40 +0300 Subject: [PATCH 38/44] fix --- packages/commands/src/zetachain/pools/create.ts | 2 +- src/constants/pools.ts | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/commands/src/zetachain/pools/create.ts b/packages/commands/src/zetachain/pools/create.ts index f3e34638..5656a3fa 100644 --- a/packages/commands/src/zetachain/pools/create.ts +++ b/packages/commands/src/zetachain/pools/create.ts @@ -58,7 +58,7 @@ function buildSqrtPriceX96( const main = async (raw: CreatePoolOptions) => { try { const o = createPoolOptionsSchema.parse(raw); - const [usdA, usdB] = o.prices.map(Number); + const [usdB, usdA] = o.prices.map(Number); const provider = new JsonRpcProvider(o.rpc ?? DEFAULT_RPC); const signer = new Wallet(o.privateKey, provider); diff --git a/src/constants/pools.ts b/src/constants/pools.ts index 96291a65..981b74e5 100644 --- a/src/constants/pools.ts +++ b/src/constants/pools.ts @@ -1,8 +1,8 @@ export const DEFAULT_RPC = "https://zetachain-athens.g.allthatnode.com/archive/evm"; -export const DEFAULT_FACTORY = "0x80F2f9B5FCd1655f29896fA422b99D00Ee43353D"; -export const DEFAULT_ROUTER = "0x9E257036f670A12edFE800C39E8A5e7Dd1EB0Ec9"; +export const DEFAULT_FACTORY = "0x83F587Ff3bec28DA8Ae025c05643FC5bd5297E05"; +export const DEFAULT_ROUTER = "0xacDaF2F4BcFBeCa8e60B5e7d3325b6142792cE3d"; export const DEFAULT_WZETA = "0x5F0b1a82749cb4E2278EC87F8BF6B618dC71a8bf"; export const DEFAULT_FEE = 3000; // 0.3% export const DEFAULT_POSITION_MANAGER = - "0x49840EB49077BfA64bC4660dDDDF9a8BD84365cd"; + "0x53715F973A6a89DbF2DB26f23E3BCb28F642b50E"; From cf8946fcde87f2b133a2baec1f9564b0a159c920 Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Fri, 25 Jul 2025 14:26:37 +0300 Subject: [PATCH 39/44] seems to be working --- .../src/zetachain/pools/liquidity/add.ts | 428 +++++++++--------- src/constants/pools.ts | 6 +- 2 files changed, 213 insertions(+), 221 deletions(-) diff --git a/packages/commands/src/zetachain/pools/liquidity/add.ts b/packages/commands/src/zetachain/pools/liquidity/add.ts index b10cd4b0..50dcadb9 100644 --- a/packages/commands/src/zetachain/pools/liquidity/add.ts +++ b/packages/commands/src/zetachain/pools/liquidity/add.ts @@ -1,7 +1,7 @@ import * as UniswapV3Factory from "@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json"; import * as NonfungiblePositionManager from "@uniswap/v3-periphery/artifacts/contracts/NonfungiblePositionManager.sol/NonfungiblePositionManager.json"; import { Command } from "commander"; -import { Contract, ethers, JsonRpcProvider, Log, Wallet } from "ethers"; +import { Contract, ethers, JsonRpcProvider, Wallet, Log } from "ethers"; import inquirer from "inquirer"; import { @@ -18,277 +18,269 @@ import { const main = async (options: AddLiquidityOptions): Promise => { try { - // Validate options + // 1. Validate CLI options const validatedOptions = addLiquidityOptionsSchema.parse(options); - // Initialize provider and signer - const provider = new JsonRpcProvider(validatedOptions.rpc); + /** + * 2. Bootstrap signer & provider + */ + const provider = new JsonRpcProvider(validatedOptions.rpc ?? DEFAULT_RPC); const signer = new Wallet(validatedOptions.privateKey, provider); - // Get token addresses + /** + * 3. Parse token addresses from CLI + */ if (validatedOptions.tokens.length !== 2) { throw new Error("Exactly 2 token addresses must be provided"); } - const [token0, token1]: [string, string] = [ - validatedOptions.tokens[0], - validatedOptions.tokens[1], - ]; - - // Initialize token contracts to get decimals and symbols - const token0Contract = new Contract( - token0, - [ - "function decimals() view returns (uint8)", - "function symbol() view returns (string)", - ], - provider - ); - const token1Contract = new Contract( - token1, - [ - "function decimals() view returns (uint8)", - "function symbol() view returns (string)", - ], - provider - ); - - // Get token decimals and symbols - const [decimals0, decimals1, symbol0, symbol1] = (await Promise.all([ - token0Contract.decimals(), - token1Contract.decimals(), - token0Contract.symbol(), - token1Contract.symbol(), - ])) as [number, number, string, string]; - const amount0 = ethers.parseUnits(validatedOptions.amounts[0], decimals0); - const amount1 = ethers.parseUnits(validatedOptions.amounts[1], decimals1); + let [inputTokenA, inputTokenB] = validatedOptions.tokens.map((addr) => + ethers.getAddress(addr) + ); - // Initialize factory contract to check if pool exists + /** + * 4. Locate (or verify) the pool — order agnostic + */ const factory = new Contract( DEFAULT_FACTORY, UniswapV3Factory.abi, provider ); - // Check if pool exists - const fee = parseInt(validatedOptions.fee); - const poolAddress = (await factory.getPool(token0, token1, fee)) as string; + const fee = Number(validatedOptions.fee ?? DEFAULT_FEE); + + const poolAddress = (await factory.getPool( + inputTokenA, + inputTokenB, + fee + )) as string; + if (poolAddress === ethers.ZeroAddress) { - throw new Error( - `No pool exists for token pair ${symbol0}/${symbol1} with fee ${ - fee / 10000 - }%` - ); + throw new Error("No pool found for supplied token pair and fee tier"); } - // Check token balances - const token0ContractForBalance = new Contract( - token0, - ["function balanceOf(address) view returns (uint256)"], - provider - ); - const token1ContractForBalance = new Contract( - token1, - ["function balanceOf(address) view returns (uint256)"], + /** + * 5. Read canonical token ordering from the pool + */ + const pool = new Contract( + poolAddress, + [ + "function token0() view returns (address)", + "function token1() view returns (address)", + "function tickSpacing() view returns (int24)", + ], provider ); + const poolToken0 = ethers.getAddress(await pool.token0()); + const poolToken1 = ethers.getAddress(await pool.token1()); + const tickSpacing = Number(await pool.tickSpacing()); + + /** + * 6. Build token helpers (decimals, symbol, balances, approve) + */ + const tokenContracts: Record = {}; + + const getTokenContract = (addr: string): Contract => { + if (!tokenContracts[addr]) { + tokenContracts[addr] = new Contract( + addr, + [ + "function decimals() view returns (uint8)", + "function symbol() view returns (string)", + "function balanceOf(address) view returns (uint256)", + "function approve(address,uint256) returns (bool)", + ], + signer + ); + } + return tokenContracts[addr]; + }; + + const [decA, symA] = await Promise.all([ + getTokenContract(inputTokenA).decimals(), + getTokenContract(inputTokenA).symbol(), + ]).then(([d, s]) => [Number(d), s as string]); + + const [decB, symB] = await Promise.all([ + getTokenContract(inputTokenB).decimals(), + getTokenContract(inputTokenB).symbol(), + ]).then(([d, s]) => [Number(d), s as string]); + + /** + * 7. Parse user-entered amounts (aligned with the order the user typed) + */ + if (validatedOptions.amounts.length !== 2) { + throw new Error("Exactly 2 amounts must be provided"); + } + const amountA = ethers.parseUnits(validatedOptions.amounts[0], decA); + const amountB = ethers.parseUnits(validatedOptions.amounts[1], decB); + + /** + * 8. Ensure we pass token0/token1 in *pool* order. Swap amounts if needed. + */ + let finalToken0 = poolToken0; + let finalToken1 = poolToken1; + + let finalAmount0: bigint; + let finalAmount1: bigint; + let symbol0: string; + let symbol1: string; + + if (inputTokenA === poolToken0) { + // user's first address matches pool.token0 ⇒ no swap + finalAmount0 = amountA; + finalAmount1 = amountB; + symbol0 = symA as string; + symbol1 = symB as string; + } else { + // user supplied in reverse order ⇒ swap + finalAmount0 = amountB; + finalAmount1 = amountA; + symbol0 = symB as string; + symbol1 = symA as string; + } + /** + * 9. Balance checks + */ const signerAddress = await signer.getAddress(); - const [balance0, balance1] = (await Promise.all([ - token0ContractForBalance.balanceOf(signerAddress), - token1ContractForBalance.balanceOf(signerAddress), - ])) as [bigint, bigint]; - - if (balance0 < amount0) { - throw new Error( - `Insufficient ${symbol0} balance. Required: ${ - validatedOptions.amounts[0] - }, Available: ${ethers.formatUnits(balance0, decimals0)}` - ); + + const [balance0, balance1] = await Promise.all([ + getTokenContract(finalToken0).balanceOf(signerAddress) as Promise, + getTokenContract(finalToken1).balanceOf(signerAddress) as Promise, + ]); + + if (balance0 < finalAmount0) { + throw new Error(`Insufficient ${symbol0} balance`); + } + if (balance1 < finalAmount1) { + throw new Error(`Insufficient ${symbol1} balance`); } - if (balance1 < amount1) { - throw new Error( - `Insufficient ${symbol1} balance. Required: ${ - validatedOptions.amounts[1] - }, Available: ${ethers.formatUnits(balance1, decimals1)}` - ); + /** + * 10. Tick range sanity & alignment + */ + if (!validatedOptions.tickLower || !validatedOptions.tickUpper) { + throw new Error("tickLower and tickUpper must be provided"); } - // Use signer's address as recipient if not provided - const recipient = validatedOptions.recipient ?? signerAddress; + const rawLower = Number(validatedOptions.tickLower); + const rawUpper = Number(validatedOptions.tickUpper); + + const tickLower = Math.floor(rawLower / tickSpacing) * tickSpacing; + const tickUpper = Math.floor(rawUpper / tickSpacing) * tickSpacing; + + if (tickLower >= tickUpper) { + throw new Error("tickLower must be smaller than tickUpper"); + } - // Use provided tick range (now defaults to concentrated range) - const tickLower = validatedOptions.tickLower; - const tickUpper = validatedOptions.tickUpper; + /** + * 11. Recipient & summary + */ + const recipient = validatedOptions.recipient ?? signerAddress; - // Show transaction details and get confirmation console.log("\nTransaction Details:"); + console.log(`Pool: ${poolAddress}`); + console.log(`Fee tier: ${fee / 10000}%`); + console.log(`Token0: ${symbol0} (${finalToken0})`); + console.log(`Token1: ${symbol1} (${finalToken1})`); console.log( - `Token0 (${symbol0}): ${validatedOptions.amounts[0]} (${token0})` + `Amount0: ${ + validatedOptions.amounts[inputTokenA === poolToken0 ? 0 : 1] + }` ); console.log( - `Token1 (${symbol1}): ${validatedOptions.amounts[1]} (${token1})` + `Amount1: ${ + validatedOptions.amounts[inputTokenA === poolToken0 ? 1 : 0] + }` ); - console.log(`Pool Address: ${poolAddress}`); - console.log(`Recipient: ${recipient}`); - console.log(`Tick Range: [${tickLower}, ${tickUpper}]`); - console.log(`Fee: ${fee / 10000}%`); - - const { confirm } = (await inquirer.prompt([ - { - default: false, - message: "Do you want to proceed with the transaction?", - name: "confirm", - type: "confirm", - }, - ])) as { confirm: boolean }; + console.log(`Tick range: [${tickLower}, ${tickUpper}]`); + console.log(`Recipient: ${recipient}`); + const { confirm } = await inquirer.prompt([ + { type: "confirm", name: "confirm", message: "Proceed?" }, + ]); if (!confirm) { - console.log("Transaction cancelled by user"); - process.exit(0); + console.log("Cancelled by user"); + return; } - // Initialize token contracts for approval - const token0ContractForApproval = new Contract( - token0, - ["function approve(address spender, uint256 amount) returns (bool)"], - signer - ); - const token1ContractForApproval = new Contract( - token1, - ["function approve(address spender, uint256 amount) returns (bool)"], - signer + /** + * 12. Approvals + */ + console.log("Approving tokens..."); + const approve0Tx = await getTokenContract(finalToken0).approve( + DEFAULT_POSITION_MANAGER, + finalAmount0 ); - - // Initialize position manager contract - const positionManager = new Contract( + const approve1Tx = await getTokenContract(finalToken1).approve( DEFAULT_POSITION_MANAGER, - NonfungiblePositionManager.abi, - signer + finalAmount1 ); - - let nonce = await provider.getTransactionCount(signer.address, "pending"); - - // Approve tokens - console.log("\nApproving tokens..."); - const approve0Tx = (await token0ContractForApproval.approve( - positionManager.target, - amount0, - { nonce: nonce++ } - )) as ethers.TransactionResponse; - const approve1Tx = (await token1ContractForApproval.approve( - positionManager.target, - amount1, - { nonce: nonce++ } - )) as ethers.TransactionResponse; - - console.log("Waiting for approvals..."); await Promise.all([approve0Tx.wait(), approve1Tx.wait()]); - console.log("Tokens approved successfully"); + console.log("Tokens approved"); - // Prepare parameters for minting + /** + * 13. Mint + */ const params: MintParams = { - amount0Desired: amount0, + token0: finalToken0, + token1: finalToken1, + fee, + tickLower, + tickUpper, + amount0Desired: finalAmount0, + amount1Desired: finalAmount1, amount0Min: 0n, - amount1Desired: amount1, amount1Min: 0n, - deadline: Math.floor(Date.now() / 1000) + 60 * 20, - fee: fee, recipient, - tickLower, - tickUpper, - token0, - token1, + deadline: Math.floor(Date.now() / 1000) + 60 * 20, }; - console.log("\nMint parameters:"); - console.log("token0:", token0); - console.log("token1:", token1); - console.log("amount0Desired:", amount0.toString()); - console.log("amount1Desired:", amount1.toString()); - console.log("tickLower:", tickLower); - console.log("tickUpper:", tickUpper); - - // Send transaction - console.log("\nAdding liquidity..."); - const tx = (await positionManager.mint(params, { - nonce: nonce++, - })) as ethers.TransactionResponse; - const receipt = await tx.wait(); - - if (!receipt) { - throw new Error("Transaction receipt is null"); - } - - // Parse transaction receipt to get token ID - const iface = positionManager.interface; - const positionManagerAddress = ethers.getAddress( - String(positionManager.target) + const positionManager = new Contract( + DEFAULT_POSITION_MANAGER, + NonfungiblePositionManager.abi, + signer ); - const transferEvent = receipt.logs - .filter((log: Log) => { - // Only try to parse logs from the position manager contract - return ( - ethers.getAddress(log.address.toString()) === positionManagerAddress - ); - }) - .map((log: Log) => { - try { - return iface.parseLog({ - data: log.data, - topics: log.topics, - }); - } catch { - return null; - } - }) - .find((event) => event?.name === "Transfer"); - - if (!transferEvent) { - throw new Error("Could not find Transfer event in transaction receipt"); - } - const tokenId = transferEvent.args[2] as bigint; - - console.log("\nLiquidity Added Successfully:"); - console.log("Transaction Hash:", tx.hash); - console.log("Position NFT ID:", tokenId.toString()); - console.log("Recipient Address:", recipient); - console.log("Token 0 Address:", token0); - console.log("Token 1 Address:", token1); - console.log("Amount0:", validatedOptions.amounts[0]); - console.log("Amount1:", validatedOptions.amounts[1]); - } catch (error) { - console.error("\nFailed to add liquidity:"); - console.error( - "Error:", - error instanceof Error ? error.message : String(error) - ); + console.log("Minting position..."); + const mintTx = await positionManager.mint(params); + const receipt = await mintTx.wait(); + + /** + * 14. Extract NFT token ID from Transfer event + */ + const iface = positionManager.interface; + const transferLog = receipt.logs.find((l: Log) => { + try { + const parsed = iface.parseLog({ data: l.data, topics: l.topics }); + return parsed?.name === "Transfer"; + } catch { + return false; + } + }); + + const tokenId = transferLog + ? iface.parseLog(transferLog)?.args[2] ?? "" + : ""; + + console.log("\nLiquidity added successfully!"); + console.log(`Position NFT ID: ${tokenId}`); + console.log(`Transaction: ${mintTx.hash}`); + } catch (err) { + console.error("Failed to add liquidity:", (err as Error).message); process.exit(1); } }; export const addCommand = new Command("add") .summary("Add liquidity to a Uniswap V3 pool") - .option("--rpc ", "RPC URL for the network", DEFAULT_RPC) - .requiredOption( - "--tokens ", - "Token addresses for the pool (exactly 2 required)" - ) - .requiredOption( - "--amounts ", - "Amounts of tokens to add (in human-readable format, e.g. 0.1 5)" - ) - .option( - "--recipient ", - "Address that will receive the liquidity position NFT (defaults to signer's address)" - ) - .requiredOption( - "--private-key ", - "Private key of the account that will send the transaction" - ) - .option("--tick-lower ", "Lower tick of the position", "361450") - .option("--tick-upper ", "Upper tick of the position", "361550") - .option("--fee ", "Fee tier (e.g. 500 for 0.05%, 3000 for 0.3%)", "500") + .requiredOption("--private-key ", "Private key") + .requiredOption("--tokens ", "Token addresses (2)") + .requiredOption("--amounts ", "Token amounts (2)") + .option("--rpc ", "JSON-RPC endpoint", DEFAULT_RPC) + .option("--tick-lower ", "Lower tick") + .option("--tick-upper ", "Upper tick") + .option("--fee ", "Fee tier", "3000") + .option("--recipient
", "Recipient address") .action(main); diff --git a/src/constants/pools.ts b/src/constants/pools.ts index 981b74e5..1ef1ec4c 100644 --- a/src/constants/pools.ts +++ b/src/constants/pools.ts @@ -1,8 +1,8 @@ export const DEFAULT_RPC = "https://zetachain-athens.g.allthatnode.com/archive/evm"; -export const DEFAULT_FACTORY = "0x83F587Ff3bec28DA8Ae025c05643FC5bd5297E05"; -export const DEFAULT_ROUTER = "0xacDaF2F4BcFBeCa8e60B5e7d3325b6142792cE3d"; +export const DEFAULT_FACTORY = "0x6e895B1FC96BADceF94a73819C438B34AbCccA32"; +export const DEFAULT_ROUTER = "0xfaeeAC553CBEeaAD3C330c4A0a110139EB7AA5CE"; export const DEFAULT_WZETA = "0x5F0b1a82749cb4E2278EC87F8BF6B618dC71a8bf"; export const DEFAULT_FEE = 3000; // 0.3% export const DEFAULT_POSITION_MANAGER = - "0x53715F973A6a89DbF2DB26f23E3BCb28F642b50E"; + "0xA0eb3b255938D9F74512c68c5c81B1097C5B88B7"; From b8e2bd33fb322f5973613b297f9f919fa20f02cf Mon Sep 17 00:00:00 2001 From: Hernan Clich Date: Thu, 31 Jul 2025 16:21:23 -0300 Subject: [PATCH 40/44] Add fixes for undefined decimals, precision loss and rounding errors --- packages/client/src/getPools.ts | 5 +- .../commands/src/zetachain/pools/create.ts | 4 +- .../src/zetachain/pools/liquidity/add.ts | 24 +++---- packages/commands/src/zetachain/pools/show.ts | 23 ++++-- packages/commands/src/zetachain/pools/swap.ts | 44 ++++++++---- utils/uniswap.ts | 71 +++++++++++++++++-- 6 files changed, 131 insertions(+), 40 deletions(-) diff --git a/packages/client/src/getPools.ts b/packages/client/src/getPools.ts index 5577de90..ed7bec94 100644 --- a/packages/client/src/getPools.ts +++ b/packages/client/src/getPools.ts @@ -39,9 +39,10 @@ export const getPools = async function ( // Step 6: Format pools with token details const foreignCoins = await this.getForeignCoins(); - return formatPoolsWithTokenDetails( + return await formatPoolsWithTokenDetails( pools, foreignCoins, - addresses.zetaTokenAddress + addresses.zetaTokenAddress, + provider ); }; diff --git a/packages/commands/src/zetachain/pools/create.ts b/packages/commands/src/zetachain/pools/create.ts index 5656a3fa..637559ea 100644 --- a/packages/commands/src/zetachain/pools/create.ts +++ b/packages/commands/src/zetachain/pools/create.ts @@ -3,7 +3,6 @@ *******************************************************************/ import * as UniswapV3Factory from "@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json"; import * as UniswapV3Pool from "@uniswap/v3-core/artifacts/contracts/UniswapV3Pool.sol/UniswapV3Pool.json"; -import { IERC20Metadata__factory } from "../../../../../typechain-types"; import { Command } from "commander"; import { Contract, ethers, JsonRpcProvider, Wallet } from "ethers"; @@ -12,9 +11,10 @@ import { DEFAULT_FEE, DEFAULT_RPC, } from "../../../../../src/constants/pools"; +import { IERC20Metadata__factory } from "../../../../../typechain-types"; import { - createPoolOptionsSchema, type CreatePoolOptions, + createPoolOptionsSchema, PoolCreationError, } from "../../../../../types/pools"; diff --git a/packages/commands/src/zetachain/pools/liquidity/add.ts b/packages/commands/src/zetachain/pools/liquidity/add.ts index 50dcadb9..063d1520 100644 --- a/packages/commands/src/zetachain/pools/liquidity/add.ts +++ b/packages/commands/src/zetachain/pools/liquidity/add.ts @@ -1,7 +1,7 @@ import * as UniswapV3Factory from "@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json"; import * as NonfungiblePositionManager from "@uniswap/v3-periphery/artifacts/contracts/NonfungiblePositionManager.sol/NonfungiblePositionManager.json"; import { Command } from "commander"; -import { Contract, ethers, JsonRpcProvider, Wallet, Log } from "ethers"; +import { Contract, ethers, JsonRpcProvider, Log, Wallet } from "ethers"; import inquirer from "inquirer"; import { @@ -34,7 +34,7 @@ const main = async (options: AddLiquidityOptions): Promise => { throw new Error("Exactly 2 token addresses must be provided"); } - let [inputTokenA, inputTokenB] = validatedOptions.tokens.map((addr) => + const [inputTokenA, inputTokenB] = validatedOptions.tokens.map((addr) => ethers.getAddress(addr) ); @@ -118,8 +118,8 @@ const main = async (options: AddLiquidityOptions): Promise => { /** * 8. Ensure we pass token0/token1 in *pool* order. Swap amounts if needed. */ - let finalToken0 = poolToken0; - let finalToken1 = poolToken1; + const finalToken0 = poolToken0; + const finalToken1 = poolToken1; let finalAmount0: bigint; let finalAmount1: bigint; @@ -198,7 +198,7 @@ const main = async (options: AddLiquidityOptions): Promise => { console.log(`Recipient: ${recipient}`); const { confirm } = await inquirer.prompt([ - { type: "confirm", name: "confirm", message: "Proceed?" }, + { message: "Proceed?", name: "confirm", type: "confirm" }, ]); if (!confirm) { console.log("Cancelled by user"); @@ -224,17 +224,17 @@ const main = async (options: AddLiquidityOptions): Promise => { * 13. Mint */ const params: MintParams = { - token0: finalToken0, - token1: finalToken1, - fee, - tickLower, - tickUpper, amount0Desired: finalAmount0, - amount1Desired: finalAmount1, amount0Min: 0n, + amount1Desired: finalAmount1, amount1Min: 0n, - recipient, deadline: Math.floor(Date.now() / 1000) + 60 * 20, + fee, + recipient, + tickLower, + tickUpper, + token0: finalToken0, + token1: finalToken1, }; const positionManager = new Contract( diff --git a/packages/commands/src/zetachain/pools/show.ts b/packages/commands/src/zetachain/pools/show.ts index e9bc2967..413c6cb9 100644 --- a/packages/commands/src/zetachain/pools/show.ts +++ b/packages/commands/src/zetachain/pools/show.ts @@ -91,14 +91,29 @@ const main = async (options: ShowPoolOptions): Promise => { // Calculate price from sqrtPriceX96 accounting for token decimals const sqrtPriceX96 = slot0.sqrtPriceX96; - const sqrtPrice = Number(sqrtPriceX96) / 2 ** 96; - const priceUnits = sqrtPrice ** 2; // price in base-unit ratio (token1 base units / token0 base units) + + // Use BigInt arithmetic to avoid precision loss for large sqrtPriceX96 values + // sqrtPrice = sqrtPriceX96 / 2^96, price = sqrtPrice^2 + // We'll work with scaled integers throughout to maintain precision + const SCALE_FACTOR = 10n ** 18n; // Scale factor for calculations + + // Calculate (sqrtPriceX96)^2 / (2^96)^2 * SCALE_FACTOR + const priceScaled = + (sqrtPriceX96 * sqrtPriceX96 * SCALE_FACTOR) / 2n ** 192n; // Adjust for token decimals to get token-level price const decDiff = Number(dec0) - Number(dec1); - const priceToken1PerToken0 = - decDiff >= 0 ? priceUnits / 10 ** decDiff : priceUnits * 10 ** -decDiff; + const decimalAdjustment = + decDiff >= 0 ? 10n ** BigInt(decDiff) : 10n ** BigInt(-decDiff); + const priceToken1PerToken0Scaled = + decDiff >= 0 + ? priceScaled / decimalAdjustment + : priceScaled * decimalAdjustment; + + // Convert to number for display (safe now since we've maintained precision through calculations) + const priceToken1PerToken0 = + Number(priceToken1PerToken0Scaled) / Number(SCALE_FACTOR); const priceToken0PerToken1 = 1 / priceToken1PerToken0; console.log("\nPool Information:"); diff --git a/packages/commands/src/zetachain/pools/swap.ts b/packages/commands/src/zetachain/pools/swap.ts index 1d916bd9..5c5ba4a7 100644 --- a/packages/commands/src/zetachain/pools/swap.ts +++ b/packages/commands/src/zetachain/pools/swap.ts @@ -15,10 +15,10 @@ import { import { IERC20Metadata__factory } from "../../../../../typechain-types"; const DEFAULT_SWAP_ROUTER = "0x42F98DfA0Bcca632b5e979E766331E7599b83686"; -const TWO_192 = 1n << 192n; +// const TWO_192 = 1n << 192n; // Removed as it's not used /* √(bigint) ------------------------------------------------------ */ -function sqrtBig(n: bigint): bigint { +const sqrtBig = (n: bigint): bigint => { if (n < 2n) return n; let x = n, y = (x + 1n) >> 1n; @@ -27,19 +27,29 @@ function sqrtBig(n: bigint): bigint { y = (x + n / x) >> 1n; } return x; -} +}; /* exact sqrtPriceX96 from USD prices ----------------------------- */ -function calcSqrtPriceX96( +const calcSqrtPriceX96 = ( usd0: number, usd1: number, dec0: number, dec1: number, cliIsTok0: boolean -): bigint { - const FIX = 1e18; // 18-dp fixed USD - const p0 = BigInt(Math.round((cliIsTok0 ? usd0 : usd1) * FIX)); // token0 USD*1e18 - const p1 = BigInt(Math.round((cliIsTok0 ? usd1 : usd0) * FIX)); // token1 USD*1e18 +): bigint => { + // Use proper decimal handling to avoid floating point precision errors + const FIX_SCALE = 18; + + // Helper function to convert decimal to BigInt with proper scaling + const decimalToBigInt = (value: number): bigint => { + const str = value.toFixed(FIX_SCALE); + const [whole, fraction = ""] = str.split("."); + const paddedFraction = fraction.padEnd(FIX_SCALE, "0"); + return BigInt(whole + paddedFraction); + }; + + const p0 = decimalToBigInt(cliIsTok0 ? usd0 : usd1); // token0 USD * 10^18 + const p1 = decimalToBigInt(cliIsTok0 ? usd1 : usd0); // token1 USD * 10^18 // token1/token0 ratio in base-units, scaled by 2^192 for Q64.96 const num = p1 * 10n ** BigInt(dec0); // p1 × 10^dec0 @@ -48,7 +58,7 @@ function calcSqrtPriceX96( const ratioX192 = (num << 192n) / den; // (token1/token0) × 2^192 return sqrtBig(ratioX192); -} +}; /* ------------- CLI schema -------------------------------------- */ const swapOpts = z.object({ @@ -72,15 +82,18 @@ const main = async (raw: SwapOpts) => { /* factory / pool */ const factory = new Contract(DEFAULT_FACTORY, UniswapV3Factory.abi, provider); - const poolAddr = await factory.getPool( + const poolAddr = (await factory.getPool( o.tokens[0], o.tokens[1], Number(o.fee) - ); + )) as string; if (poolAddr === ethers.ZeroAddress) throw new Error("Pool not found"); const pool = new Contract(poolAddr, UniswapV3Pool.abi, provider); - const [token0, token1] = await Promise.all([pool.token0(), pool.token1()]); + const [token0, token1] = (await Promise.all([ + pool.token0(), + pool.token1(), + ])) as [string, string]; const [dec0Big, dec1Big] = await Promise.all([ IERC20Metadata__factory.connect(token0, provider).decimals(), IERC20Metadata__factory.connect(token1, provider).decimals(), @@ -91,7 +104,7 @@ const main = async (raw: SwapOpts) => { const cliIsTok0 = token0.toLowerCase() === o.tokens[0].toLowerCase(); const sqrtLimit = calcSqrtPriceX96(usdA, usdB, dec0, dec1, cliIsTok0); - const slot0 = await pool.slot0(); + const slot0 = (await pool.slot0()) as { sqrtPriceX96: bigint }; const current = slot0.sqrtPriceX96; const zeroForOne = sqrtLimit < current; // direction @@ -131,7 +144,10 @@ const main = async (raw: SwapOpts) => { tokenOut: zeroForOne ? token0 : token1, } as const; - const tx = await router.exactInputSingle(params, { gasLimit: 900_000 }); + const tx = (await router.exactInputSingle(params, { gasLimit: 900_000 })) as { + hash: string; + wait: () => Promise; + }; console.log("tx:", tx.hash, "– waiting…"); await tx.wait(); console.log("✓ Done. Verify with `pools show`."); diff --git a/utils/uniswap.ts b/utils/uniswap.ts index 570bf449..76b6b651 100644 --- a/utils/uniswap.ts +++ b/utils/uniswap.ts @@ -234,14 +234,66 @@ export const getPoolData = async ( return pools; }; +/** + * Fetch missing token details from contracts + */ +const fetchMissingTokenDetails = async ( + provider: ethers.JsonRpcProvider, + pools: Pool[] +): Promise => { + const IERC20 = [ + "function symbol() view returns (string)", + "function decimals() view returns (uint8)", + ]; + + const poolsWithDetails = await Promise.all( + pools.map(async (pool) => { + const t0NeedsDetails = !pool.t0.symbol || pool.t0.decimals === undefined; + const t1NeedsDetails = !pool.t1.symbol || pool.t1.decimals === undefined; + + if (!t0NeedsDetails && !t1NeedsDetails) { + return pool; + } + + const fetchDetails = async (address: string) => { + try { + const contract = new ethers.Contract(address, IERC20, provider); + const [symbol, decimals] = await Promise.all([ + contract.symbol() as Promise, + contract.decimals() as Promise, + ]); + return { decimals: Number(decimals), symbol }; + } catch (error) { + console.warn(`Failed to fetch details for token ${address}:`, error); + return { decimals: 18, symbol: "UNKNOWN" }; + } + }; + + const [t0Details, t1Details] = await Promise.all([ + t0NeedsDetails ? fetchDetails(pool.t0.address) : Promise.resolve({}), + t1NeedsDetails ? fetchDetails(pool.t1.address) : Promise.resolve({}), + ]); + + return { + ...pool, + t0: { ...pool.t0, ...t0Details }, + t1: { ...pool.t1, ...t1Details }, + }; + }) + ); + + return poolsWithDetails; +}; + /** * Format pools with token details (symbols and decimals) */ -export const formatPoolsWithTokenDetails = ( +export const formatPoolsWithTokenDetails = async ( pools: Pool[], foreignCoins: ForeignCoin[], - zetaTokenAddress: string -): Pool[] => { + zetaTokenAddress: string, + provider: ethers.JsonRpcProvider +): Promise => { // Create a mapping of ZRC20 details for quick lookup const zrc20Details = foreignCoins.reduce((acc: Zrc20Details, coin) => { const address = coin.zrc20_contract_address.toLowerCase(); @@ -256,7 +308,7 @@ export const formatPoolsWithTokenDetails = ( const zetaDetails = { decimals: 18, symbol: "WZETA" }; const zetaAddressLower = zetaTokenAddress.toLowerCase(); - return pools.map((pool) => { + const poolsWithBasicDetails = pools.map((pool) => { const t0AddressLower = pool.t0.address.toLowerCase(); const t1AddressLower = pool.t1.address.toLowerCase(); @@ -264,12 +316,12 @@ export const formatPoolsWithTokenDetails = ( const t0Details = t0AddressLower === zetaAddressLower ? zetaDetails - : zrc20Details[t0AddressLower] || {}; + : zrc20Details[t0AddressLower]; const t1Details = t1AddressLower === zetaAddressLower ? zetaDetails - : zrc20Details[t1AddressLower] || {}; + : zrc20Details[t1AddressLower]; return { ...pool, @@ -283,4 +335,11 @@ export const formatPoolsWithTokenDetails = ( }, }; }); + + // Fetch missing details from contracts for any tokens not found in foreignCoins + const poolsWithCompleteDetails = await fetchMissingTokenDetails( + provider, + poolsWithBasicDetails + ); + return poolsWithCompleteDetails; }; From 16bca71c769efef62fad32882b08450b44a1935e Mon Sep 17 00:00:00 2001 From: Hernan Clich Date: Thu, 31 Jul 2025 16:49:48 -0300 Subject: [PATCH 41/44] Merge branch 'main' into pools-commands --- .github/dependabot.yml | 1 - .github/workflows/build.yaml | 3 + .github/workflows/docs.yaml | 3 + .github/workflows/lint.yaml | 3 + .github/workflows/publish-npm.yaml | 3 + .github/workflows/test.yaml | 3 + .gitignore | 1 + docs/index.md | 6 +- package.json | 24 +- .../commands/src/bitcoin/inscription/call.ts | 115 ++- .../src/bitcoin/inscription/deposit.ts | 92 +- .../src/bitcoin/inscription/depositAndCall.ts | 119 +-- .../src/bitcoin/inscription/encode.ts | 6 +- packages/commands/src/bitcoin/memo/call.ts | 12 +- packages/commands/src/bitcoin/memo/deposit.ts | 12 +- .../src/bitcoin/memo/depositAndCall.ts | 12 +- packages/commands/src/faucet.ts | 55 ++ packages/commands/src/program.ts | 2 + packages/tasks/src/faucet.ts | 7 +- .../chains/bitcoin/inscription/encode.ts | 5 - .../bitcoin/inscription/makeCommitPsbt.ts | 127 +++ .../bitcoin/inscription/makeRevealPsbt.ts | 87 ++ src/constants/faucet.ts | 8 + src/schemas/evm.ts | 5 +- src/utils/faucet/drip.ts | 60 ++ src/utils/faucet/github.ts | 285 ++++++ src/utils/faucet/validation.ts | 64 ++ test/bitcoinEncode.test.ts | 6 +- .../contracts/Revert.sol/Revertable.ts | 4 +- .../contracts/evm/ZetaConnectorBase.ts | 132 +-- .../contracts/evm/ZetaConnectorNative.ts | 59 +- .../contracts/evm/ZetaConnectorNonNative.ts | 29 +- .../contracts/helpers/index.ts | 5 + .../IBaseRegistry.sol/IBaseRegistry.ts | 881 +++++++++++++++++ .../IBaseRegistry.sol/IBaseRegistryErrors.ts | 69 ++ .../IBaseRegistry.sol/IBaseRegistryEvents.ts | 413 ++++++++ .../interfaces/IBaseRegistry.sol/index.ts | 6 + .../contracts/helpers/interfaces/index.ts | 5 + .../protocol-contracts/contracts/index.ts | 2 + .../contracts/zevm/GatewayZEVM.ts | 205 ++-- .../contracts/zevm/index.ts | 2 + .../zevm/interfaces/ICoreRegistry.ts | 895 ++++++++++++++++++ .../IGatewayZEVM.sol/IGatewayZEVM.ts | 61 +- .../zevm/interfaces/IZRC20.sol/IZRC20.ts | 14 + .../interfaces/IZRC20.sol/IZRC20Metadata.ts | 14 + .../UniversalContract.ts | 54 +- .../contracts/zevm/interfaces/index.ts | 1 + .../zevm/libraries/GatewayZEVMValidations.ts | 69 ++ .../contracts/zevm/libraries/index.ts | 4 + .../testing/mock/ZRC20Mock.sol/IZRC20Mock.ts | 14 + .../INotSupportedMethods__factory.ts | 5 - .../Revert.sol/Revertable__factory.ts | 2 +- .../contracts/evm/ERC20Custody__factory.ts | 2 +- .../contracts/evm/GatewayEVM__factory.ts | 23 +- .../evm/ZetaConnectorBase__factory.ts | 144 +-- .../evm/ZetaConnectorNative__factory.ts | 43 +- .../evm/ZetaConnectorNonNative__factory.ts | 28 +- .../contracts/helpers/index.ts | 4 + .../IBaseRegistryErrors__factory.ts | 136 +++ .../IBaseRegistryEvents__factory.ts | 236 +++++ .../IBaseRegistry__factory.ts | 827 ++++++++++++++++ .../interfaces/IBaseRegistry.sol/index.ts | 6 + .../contracts/helpers/interfaces/index.ts | 4 + .../protocol-contracts/contracts/index.ts | 1 + .../contracts/zevm/GatewayZEVM__factory.ts | 176 +++- .../SystemContract__factory.ts | 2 +- .../zevm/ZRC20.sol/ZRC20__factory.ts | 2 +- .../contracts/zevm/index.ts | 1 + .../zevm/interfaces/ICoreRegistry__factory.ts | 840 ++++++++++++++++ .../IGatewayZEVMErrors__factory.ts | 14 +- .../IGatewayZEVM.sol/IGatewayZEVM__factory.ts | 34 +- .../IZRC20.sol/IZRC20Metadata__factory.ts | 13 + .../interfaces/IZRC20.sol/IZRC20__factory.ts | 13 + .../UniversalContract__factory.ts | 66 ++ .../contracts/zevm/interfaces/index.ts | 1 + .../GatewayZEVMValidations__factory.ts | 78 ++ .../contracts/zevm/libraries/index.ts | 4 + .../contracts/OnlySystem__factory.ts | 2 +- .../EVMSetup.t.sol/EVMSetup__factory.ts | 2 +- .../FoundrySetup__factory.ts | 2 +- .../TokenSetup.t.sol/TokenSetup__factory.ts | 2 +- .../ZetaSetup.t.sol/ZetaSetup__factory.ts | 2 +- .../mock/ZRC20Mock.sol/IZRC20Mock__factory.ts | 13 + .../mock/ZRC20Mock.sol/ZRC20Mock__factory.ts | 2 +- .../mockGateway/NodeLogicMock__factory.ts | 2 +- .../mockGateway/WrapGatewayEVM__factory.ts | 2 +- .../mockGateway/WrapGatewayZEVM__factory.ts | 2 +- typechain-types/hardhat.d.ts | 90 ++ typechain-types/index.ts | 10 + types/bitcoin.constants.ts | 23 +- types/bitcoin.types.ts | 10 +- types/faucet.types.ts | 8 + utils/bitcoin.command.helpers.ts | 101 +- utils/bitcoin.helpers.ts | 79 +- utils/getAddress.ts | 4 +- utils/index.ts | 2 +- utils/validateSigner.ts | 9 + yarn.lock | 624 +----------- 98 files changed, 6323 insertions(+), 1437 deletions(-) create mode 100644 packages/commands/src/faucet.ts rename utils/bitcoinEncode.ts => src/chains/bitcoin/inscription/encode.ts (98%) create mode 100644 src/chains/bitcoin/inscription/makeCommitPsbt.ts create mode 100644 src/chains/bitcoin/inscription/makeRevealPsbt.ts create mode 100644 src/constants/faucet.ts create mode 100644 src/utils/faucet/drip.ts create mode 100644 src/utils/faucet/github.ts create mode 100644 src/utils/faucet/validation.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/helpers/index.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/IBaseRegistry.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/IBaseRegistryErrors.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/IBaseRegistryEvents.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/index.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/helpers/interfaces/index.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/ICoreRegistry.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/libraries/GatewayZEVMValidations.ts create mode 100644 typechain-types/@zetachain/protocol-contracts/contracts/zevm/libraries/index.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/helpers/index.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/IBaseRegistryErrors__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/IBaseRegistryEvents__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/IBaseRegistry__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/index.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/helpers/interfaces/index.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/ICoreRegistry__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/libraries/GatewayZEVMValidations__factory.ts create mode 100644 typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/libraries/index.ts create mode 100644 types/faucet.types.ts diff --git a/.github/dependabot.yml b/.github/dependabot.yml index ae184c1a..a3b99b1d 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -11,5 +11,4 @@ updates: allow: - dependency-name: "@zetachain/networks" - dependency-name: "@zetachain/protocol-contracts" - - dependency-name: "@zetachain/faucet-cli" - dependency-name: "@zetachain/addresses" diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 337015f5..33b580c5 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -24,5 +24,8 @@ jobs: - name: Install Dependencies run: yarn install + - name: Run Soldeer + run: yarn soldeer + - name: Build run: yarn build diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index 1ae1bca6..6b314732 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -29,6 +29,9 @@ jobs: - name: Install dependencies run: yarn install + - name: Run Soldeer + run: yarn soldeer + - name: Generate docs run: yarn docs diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index e3d86f4f..d48d836e 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -24,5 +24,8 @@ jobs: - name: Install Dependencies run: yarn install + - name: Run Soldeer + run: yarn soldeer + - name: Lint run: yarn lint:js diff --git a/.github/workflows/publish-npm.yaml b/.github/workflows/publish-npm.yaml index 48ae03d8..2f3dfed3 100644 --- a/.github/workflows/publish-npm.yaml +++ b/.github/workflows/publish-npm.yaml @@ -24,6 +24,9 @@ jobs: - name: Install Dependencies run: yarn install + - name: Run Soldeer + run: yarn soldeer + - name: Build run: yarn build diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 4a0177f8..f799252a 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -24,5 +24,8 @@ jobs: - name: Install Dependencies run: yarn install + - name: Run Soldeer + run: yarn soldeer + - name: Test run: yarn test diff --git a/.gitignore b/.gitignore index b01ec1d0..e2724be5 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,7 @@ artifacts access_token lib +lib/forge-std out cache_hardhat diff --git a/docs/index.md b/docs/index.md index 3013f75c..2a69f7f3 100644 --- a/docs/index.md +++ b/docs/index.md @@ -120,7 +120,7 @@ Configuration options including signer and optional gateway address ###### signer -`Wallet` = `...` +`AbstractSigner`\<`null` \| `Provider`\> = `...` ###### txOptions? @@ -208,7 +208,7 @@ Configuration options including signer and optional gateway address ###### signer -`Wallet` = `...` +`AbstractSigner`\<`null` \| `Provider`\> = `...` ###### txOptions? @@ -305,7 +305,7 @@ Configuration options including signer and optional gateway address ###### signer -`Wallet` = `...` +`AbstractSigner`\<`null` \| `Provider`\> = `...` ###### txOptions? diff --git a/package.json b/package.json index e08924a5..5b45a93c 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,16 @@ "description": "A library of ZetaChain helper utilities, contracts, and Hardhat tasks for smart-contract development", "main": "", "exports": { + "./chains": { + "import": "./dist/src/chains/index.js", + "require": "./dist/src/chains/index.js", + "types": "./dist/src/chains/index.d.ts" + }, + "./chains/evm": { + "import": "./dist/src/chains/evm/index.js", + "require": "./dist/src/chains/evm/index.js", + "types": "./dist/src/chains/evm/index.d.ts" + }, "./tasks": "./dist/packages/tasks/src/index.js", "./commands": "./dist/packages/commands/src/index.js", "./client": { @@ -21,11 +31,6 @@ "require": "./dist/packages/test/src/index.js", "types": "./dist/packages/test/src/index.d.ts" }, - "./chains": { - "import": "./dist/src/chains/index.js", - "require": "./dist/src/chains/index.js", - "types": "./dist/src/chains/index.d.ts" - }, "./typechain-types": { "types": "./dist/typechain-types/index.ts" } @@ -44,9 +49,9 @@ "copy-types": "npx cpx './typechain-types/**/*' ./dist/typechain-types", "test": "jest", "test:watch": "jest --watch", + "soldeer": "forge soldeer update", "zetachain:build": "yarn build && node dist/packages/commands/src/program.js", - "zetachain": "npx ts-node packages/commands/src/program.ts", - "postinstall": "forge soldeer update" + "zetachain": "npx ts-node packages/commands/src/program.ts" }, "keywords": [], "author": "ZetaChain", @@ -129,19 +134,18 @@ "@uniswap/v3-core": "^1.0.1", "@uniswap/v3-periphery": "^1.4.4", "@uniswap/v3-sdk": "^3.25.2", - "@zetachain/faucet-cli": "^4.1.1", "@zetachain/networks": "14.0.0-rc1", "@zetachain/protocol-contracts": "13.0.0", "@zetachain/protocol-contracts-solana": "^5.0.0", "@zetachain/protocol-contracts-ton": "1.0.0-rc4", "@zetachain/standard-contracts": "^2.0.1", - "@zetachain/toolkit": "^15.0.2", "axios": "^1.4.0", "bech32": "^2.0.0", "bip39": "^3.1.0", "bitcoinjs-lib": "^6.1.7", "bs58": "^6.0.0", "commander": "^13.1.0", + "dayjs": "^1.11.13", "dotenv": "16.0.3", "ecpair": "^2.1.0", "envfile": "^6.18.0", @@ -162,4 +166,4 @@ "zod": "^3.24.2" }, "packageManager": "yarn@1.22.21+sha1.1959a18351b811cdeedbd484a8f86c3cc3bbaf72" -} \ No newline at end of file +} diff --git a/packages/commands/src/bitcoin/inscription/call.ts b/packages/commands/src/bitcoin/inscription/call.ts index 448a09f2..c8290f80 100644 --- a/packages/commands/src/bitcoin/inscription/call.ts +++ b/packages/commands/src/bitcoin/inscription/call.ts @@ -1,9 +1,18 @@ +import * as bitcoin from "bitcoinjs-lib"; import { ethers } from "ethers"; import { z } from "zod"; +import { + bitcoinEncode, + OpCode, +} from "../../../../../src/chains/bitcoin/inscription/encode"; +import { makeCommitPsbt } from "../../../../../src/chains/bitcoin/inscription/makeCommitPsbt"; +import { makeRevealPsbt } from "../../../../../src/chains/bitcoin/inscription/makeRevealPsbt"; import { BITCOIN_FEES, ESTIMATED_VIRTUAL_SIZE, + X_ONLY_PUBKEY_END_INDEX, + X_ONLY_PUBKEY_START_INDEX, } from "../../../../../types/bitcoin.constants"; import { inscriptionCallOptionsSchema } from "../../../../../types/bitcoin.types"; import { handleError } from "../../../../../utils"; @@ -11,43 +20,46 @@ import { broadcastBtcTransaction, createBitcoinInscriptionCommandWithCommonOptions, displayAndConfirmTransaction, - fetchUtxos, setupBitcoinKeyPair, } from "../../../../../utils/bitcoin.command.helpers"; import { calculateRevealFee, - makeCommitTransaction, - makeRevealTransaction, + prepareUtxos, } from "../../../../../utils/bitcoin.helpers"; -import { bitcoinEncode, OpCode } from "../../../../../utils/bitcoinEncode"; import { trim0x } from "../../../../../utils/trim0x"; import { validateAndParseSchema } from "../../../../../utils/validateAndParseSchema"; type CallOptions = z.infer; -/** - * Main function that executes the call operation. - * Creates and broadcasts both commit and reveal transactions to perform a cross-chain call. - * - * @param options - Command options including amounts, addresses, and contract parameters - */ const main = async (options: CallOptions) => { try { + const network = + options.network === "signet" + ? bitcoin.networks.testnet + : bitcoin.networks.bitcoin; + + // Generate keyPair & address const { key, address } = setupBitcoinKeyPair( options.privateKey, - options.name + options.name, + network ); - const utxos = await fetchUtxos(address, options.bitcoinApi); + const revertAddress = options.revertAddress || address; - let data; - let payload; + let encodedMessage: string | undefined; + let data: Buffer; + if (options.types && options.values && options.receiver) { - payload = new ethers.AbiCoder().encode(options.types, options.values); + // ABI‑encode types/values when provided + encodedMessage = new ethers.AbiCoder().encode( + options.types, + options.values + ); data = Buffer.from( bitcoinEncode( options.receiver, - Buffer.from(trim0x(payload), "hex"), + Buffer.from(trim0x(encodedMessage), "hex"), revertAddress, OpCode.Call, options.format @@ -55,28 +67,35 @@ const main = async (options: CallOptions) => { "hex" ); } else if (options.data) { + // Use raw hex data data = Buffer.from(options.data, "hex"); } else { - throw new Error("Provide either data or types, values, receiver"); + throw new Error( + "Provide either --data or --types, --values, and --receiver" + ); } - const inscriptionFee = BITCOIN_FEES.DEFAULT_COMMIT_FEE_SAT; + const preparedUtxos = await prepareUtxos(address, options.bitcoinApi); - const commit = await makeCommitTransaction( - key, - utxos, - address, - data, - options.bitcoinApi, - 0 - ); + const commitFee = options.commitFee ?? BITCOIN_FEES.DEFAULT_COMMIT_FEE_SAT; + + const commit = makeCommitPsbt({ + amount: 0, + changeAddress: address, + feeSat: commitFee, + inscriptionData: data, + internalPubkey: key.publicKey.subarray( + X_ONLY_PUBKEY_START_INDEX, + X_ONLY_PUBKEY_END_INDEX + ), + // amount (sat) – call does not transfer value + network, + + utxos: preparedUtxos, + }); const { revealFee, vsize } = calculateRevealFee( - { - controlBlock: commit.controlBlock, - internalKey: commit.internalKey, - leafScript: commit.leafScript, - }, + commit, BITCOIN_FEES.DEFAULT_REVEAL_FEE_RATE ); @@ -85,47 +104,47 @@ const main = async (options: CallOptions) => { ); await displayAndConfirmTransaction({ + ...options, amount: "0", depositFee, - encodedMessage: payload, - encodingFormat: options.format, - gateway: options.gateway, - inscriptionCommitFee: inscriptionFee, - inscriptionRevealFee: revealFee, - network: options.bitcoinApi, + encodedMessage, operation: "Call", rawInscriptionData: data.toString("hex"), - receiver: options.receiver, + revealFee, revertAddress, sender: address, }); + const commitPsbt = bitcoin.Psbt.fromBase64(commit.unsignedPsbtBase64); + commitPsbt.signAllInputs(key); + commitPsbt.finalizeAllInputs(); + + const commitTxHex = commitPsbt.extractTransaction().toHex(); const commitTxid = await broadcastBtcTransaction( - commit.txHex, + commitTxHex, options.bitcoinApi ); - console.log("Commit TXID:", commitTxid); - const revealHex = makeRevealTransaction( + const revealInfo = makeRevealPsbt( commitTxid, 0, revealFee + depositFee, options.gateway, BITCOIN_FEES.DEFAULT_REVEAL_FEE_RATE, - { - controlBlock: commit.controlBlock, - internalKey: commit.internalKey, - leafScript: commit.leafScript, - }, - key + commit, + network ); + const revealPsbt = bitcoin.Psbt.fromBase64(revealInfo.unsignedPsbtBase64); + revealPsbt.signAllInputs(key); + revealPsbt.finalizeAllInputs(); + + const revealHex = revealPsbt.extractTransaction().toHex(); const revealTxid = await broadcastBtcTransaction( revealHex, options.bitcoinApi ); - console.log("Reveal TXID:", revealTxid); } catch (error) { handleError({ diff --git a/packages/commands/src/bitcoin/inscription/deposit.ts b/packages/commands/src/bitcoin/inscription/deposit.ts index 6b368676..bde8bad6 100644 --- a/packages/commands/src/bitcoin/inscription/deposit.ts +++ b/packages/commands/src/bitcoin/inscription/deposit.ts @@ -1,8 +1,17 @@ +import * as bitcoin from "bitcoinjs-lib"; import { z } from "zod"; +import { + bitcoinEncode, + OpCode, +} from "../../../../../src/chains/bitcoin/inscription/encode"; +import { makeCommitPsbt } from "../../../../../src/chains/bitcoin/inscription/makeCommitPsbt"; +import { makeRevealPsbt } from "../../../../../src/chains/bitcoin/inscription/makeRevealPsbt"; import { BITCOIN_FEES, ESTIMATED_VIRTUAL_SIZE, + X_ONLY_PUBKEY_END_INDEX, + X_ONLY_PUBKEY_START_INDEX, } from "../../../../../types/bitcoin.constants"; import { inscriptionDepositOptionsSchema } from "../../../../../types/bitcoin.types"; import { handleError } from "../../../../../utils"; @@ -10,35 +19,38 @@ import { broadcastBtcTransaction, createBitcoinInscriptionCommandWithCommonOptions, displayAndConfirmTransaction, - fetchUtxos, setupBitcoinKeyPair, } from "../../../../../utils/bitcoin.command.helpers"; import { calculateRevealFee, - makeCommitTransaction, - makeRevealTransaction, + prepareUtxos, safeParseBitcoinAmount, } from "../../../../../utils/bitcoin.helpers"; -import { bitcoinEncode, OpCode } from "../../../../../utils/bitcoinEncode"; import { validateAndParseSchema } from "../../../../../utils/validateAndParseSchema"; type DepositOptions = z.infer; const main = async (options: DepositOptions) => { try { + const network = + options.network === "signet" + ? bitcoin.networks.testnet + : bitcoin.networks.bitcoin; + const { key, address } = setupBitcoinKeyPair( options.privateKey, - options.name + options.name, + network ); - const utxos = await fetchUtxos(address, options.bitcoinApi); const revertAddress = options.revertAddress || address; - let data; + + let data: Buffer; if (options.receiver) { data = Buffer.from( bitcoinEncode( options.receiver, - Buffer.from(""), // Empty payload for deposit + Buffer.from(""), // empty payload for deposit revertAddress, OpCode.Deposit, options.format @@ -52,71 +64,69 @@ const main = async (options: DepositOptions) => { } const amount = safeParseBitcoinAmount(options.amount); - const inscriptionFee = BITCOIN_FEES.DEFAULT_COMMIT_FEE_SAT; - - const commit = await makeCommitTransaction( - key, - utxos, - address, - data, - options.bitcoinApi, - amount - ); + const preparedUtxos = await prepareUtxos(address, options.bitcoinApi); + + const commit = makeCommitPsbt({ + amount, + changeAddress: address, + feeSat: options.commitFee, + inscriptionData: data, + internalPubkey: key.publicKey.subarray( + X_ONLY_PUBKEY_START_INDEX, + X_ONLY_PUBKEY_END_INDEX + ), + network, + utxos: preparedUtxos, + }); const { revealFee, vsize } = calculateRevealFee( - { - controlBlock: commit.controlBlock, - internalKey: commit.internalKey, - leafScript: commit.leafScript, - }, + commit, BITCOIN_FEES.DEFAULT_REVEAL_FEE_RATE ); - const depositFee = Math.ceil( (ESTIMATED_VIRTUAL_SIZE * 2 * revealFee) / vsize ); await displayAndConfirmTransaction({ - amount: options.amount, + ...options, depositFee, - encodingFormat: options.format, - gateway: options.gateway, - inscriptionCommitFee: inscriptionFee, - inscriptionRevealFee: revealFee, - network: options.bitcoinApi, operation: "Deposit", rawInscriptionData: data.toString("hex"), - receiver: options.receiver, + revealFee, revertAddress, sender: address, }); + const commitPsbt = bitcoin.Psbt.fromBase64(commit.unsignedPsbtBase64); + commitPsbt.signAllInputs(key); + commitPsbt.finalizeAllInputs(); + const commitTxHex = commitPsbt.extractTransaction().toHex(); + const commitTxid = await broadcastBtcTransaction( - commit.txHex, + commitTxHex, options.bitcoinApi ); - console.log("Commit TXID:", commitTxid); - const revealHex = makeRevealTransaction( + const revealInfo = makeRevealPsbt( commitTxid, 0, amount + revealFee + depositFee, options.gateway, BITCOIN_FEES.DEFAULT_REVEAL_FEE_RATE, - { - controlBlock: commit.controlBlock, - internalKey: commit.internalKey, - leafScript: commit.leafScript, - }, - key + commit, + network ); + const revealPsbt = bitcoin.Psbt.fromBase64(revealInfo.unsignedPsbtBase64); + revealPsbt.signAllInputs(key); + revealPsbt.finalizeAllInputs(); + const revealHex = revealPsbt.extractTransaction().toHex(); + const revealTxid = await broadcastBtcTransaction( revealHex, options.bitcoinApi ); - console.log("Reveal TXID:", revealTxid); } catch (error) { handleError({ diff --git a/packages/commands/src/bitcoin/inscription/depositAndCall.ts b/packages/commands/src/bitcoin/inscription/depositAndCall.ts index 9ab98003..1dbff105 100644 --- a/packages/commands/src/bitcoin/inscription/depositAndCall.ts +++ b/packages/commands/src/bitcoin/inscription/depositAndCall.ts @@ -1,9 +1,18 @@ +import * as bitcoin from "bitcoinjs-lib"; import { ethers } from "ethers"; import { z } from "zod"; +import { + bitcoinEncode, + OpCode, +} from "../../../../../src/chains/bitcoin/inscription/encode"; +import { makeCommitPsbt } from "../../../../../src/chains/bitcoin/inscription/makeCommitPsbt"; +import { makeRevealPsbt } from "../../../../../src/chains/bitcoin/inscription/makeRevealPsbt"; import { BITCOIN_FEES, ESTIMATED_VIRTUAL_SIZE, + X_ONLY_PUBKEY_END_INDEX, + X_ONLY_PUBKEY_START_INDEX, } from "../../../../../types/bitcoin.constants"; import { inscriptionDepositAndCallOptionsSchema } from "../../../../../types/bitcoin.types"; import { handleError } from "../../../../../utils"; @@ -11,16 +20,13 @@ import { broadcastBtcTransaction, createBitcoinInscriptionCommandWithCommonOptions, displayAndConfirmTransaction, - fetchUtxos, setupBitcoinKeyPair, } from "../../../../../utils/bitcoin.command.helpers"; import { calculateRevealFee, - makeCommitTransaction, - makeRevealTransaction, + prepareUtxos, safeParseBitcoinAmount, } from "../../../../../utils/bitcoin.helpers"; -import { bitcoinEncode, OpCode } from "../../../../../utils/bitcoinEncode"; import { trim0x } from "../../../../../utils/trim0x"; import { validateAndParseSchema } from "../../../../../utils/validateAndParseSchema"; @@ -28,30 +34,33 @@ type DepositAndCallOptions = z.infer< typeof inscriptionDepositAndCallOptionsSchema >; -/** - * Main function that executes the deposit-and-call operation. - * Creates and broadcasts both commit and reveal transactions to perform a cross-chain call. - * - * @param options - Command options including amounts, addresses, and contract parameters - */ const main = async (options: DepositAndCallOptions) => { try { + const network = + options.network === "signet" + ? bitcoin.networks.testnet + : bitcoin.networks.bitcoin; + const { key, address } = setupBitcoinKeyPair( options.privateKey, - options.name + options.name, + network ); - const utxos = await fetchUtxos(address, options.bitcoinApi); + const revertAddress = options.revertAddress || address; - let data; - let payload; + let encodedMessage: string | undefined; + let data: Buffer; + if (options.types && options.values && options.receiver) { - // Encode contract call data for inscription - payload = new ethers.AbiCoder().encode(options.types, options.values); + encodedMessage = new ethers.AbiCoder().encode( + options.types, + options.values + ); data = Buffer.from( bitcoinEncode( options.receiver, - Buffer.from(trim0x(payload), "hex"), + Buffer.from(trim0x(encodedMessage), "hex"), revertAddress, OpCode.DepositAndCall, options.format @@ -61,27 +70,31 @@ const main = async (options: DepositAndCallOptions) => { } else if (options.data) { data = Buffer.from(options.data, "hex"); } else { - throw new Error("Provide either --data or --types, --values, --receiver"); + throw new Error( + "Provide either --data or --types, --values, and --receiver" + ); } + const preparedUtxos = await prepareUtxos(address, options.bitcoinApi); + const amount = safeParseBitcoinAmount(options.amount); - const inscriptionFee = BITCOIN_FEES.DEFAULT_COMMIT_FEE_SAT; - - const commit = await makeCommitTransaction( - key, - utxos, - address, - data, - options.bitcoinApi, - amount - ); + const commitFee = options.commitFee ?? BITCOIN_FEES.DEFAULT_COMMIT_FEE_SAT; + + const commit = makeCommitPsbt({ + amount, + changeAddress: address, + feeSat: commitFee, + inscriptionData: data, + internalPubkey: key.publicKey.subarray( + X_ONLY_PUBKEY_START_INDEX, + X_ONLY_PUBKEY_END_INDEX + ), + network, + utxos: preparedUtxos, + }); const { revealFee, vsize } = calculateRevealFee( - { - controlBlock: commit.controlBlock, - internalKey: commit.internalKey, - leafScript: commit.leafScript, - }, + commit, BITCOIN_FEES.DEFAULT_REVEAL_FEE_RATE ); @@ -90,51 +103,50 @@ const main = async (options: DepositAndCallOptions) => { ); await displayAndConfirmTransaction({ - amount: options.amount, + ...options, depositFee, - encodedMessage: payload, - encodingFormat: options.format, - gateway: options.gateway, - inscriptionCommitFee: inscriptionFee, - inscriptionRevealFee: revealFee, - network: options.bitcoinApi, + encodedMessage, operation: "DepositAndCall", rawInscriptionData: data.toString("hex"), - receiver: options.receiver, + revealFee, revertAddress, sender: address, }); + const commitPsbt = bitcoin.Psbt.fromBase64(commit.unsignedPsbtBase64); + commitPsbt.signAllInputs(key); + commitPsbt.finalizeAllInputs(); + + const commitTxHex = commitPsbt.extractTransaction().toHex(); const commitTxid = await broadcastBtcTransaction( - commit.txHex, + commitTxHex, options.bitcoinApi ); - console.log("Commit TXID:", commitTxid); - const revealHex = makeRevealTransaction( + const revealInfo = makeRevealPsbt( commitTxid, 0, amount + revealFee + depositFee, options.gateway, BITCOIN_FEES.DEFAULT_REVEAL_FEE_RATE, - { - controlBlock: commit.controlBlock, - internalKey: commit.internalKey, - leafScript: commit.leafScript, - }, - key + commit, + network ); + const revealPsbt = bitcoin.Psbt.fromBase64(revealInfo.unsignedPsbtBase64); + revealPsbt.signAllInputs(key); + revealPsbt.finalizeAllInputs(); + + const revealHex = revealPsbt.extractTransaction().toHex(); const revealTxid = await broadcastBtcTransaction( revealHex, options.bitcoinApi ); - console.log("Reveal TXID:", revealTxid); } catch (error) { handleError({ - context: "Error making a Bitcoin inscription deposit and call", + context: "Error making a Bitcoin inscription deposit-and-call", error, shouldThrow: false, }); @@ -143,8 +155,7 @@ const main = async (options: DepositAndCallOptions) => { }; /** - * Command definition for deposit-and-call - * This allows users to deposit BTC and call a contract on ZetaChain using Bitcoin inscriptions + * Command definition for deposit‑and‑call. */ export const depositAndCallCommand = createBitcoinInscriptionCommandWithCommonOptions("deposit-and-call") diff --git a/packages/commands/src/bitcoin/inscription/encode.ts b/packages/commands/src/bitcoin/inscription/encode.ts index d0cd1462..e9bcb8e6 100644 --- a/packages/commands/src/bitcoin/inscription/encode.ts +++ b/packages/commands/src/bitcoin/inscription/encode.ts @@ -3,13 +3,13 @@ import { Command, Option } from "commander"; import { ethers } from "ethers"; import { z } from "zod"; -import { formatEncodingChoices } from "../../../../../types/bitcoin.types"; -import { typesAndValuesLengthRefineRule } from "../../../../../types/shared.schema"; import { bitcoinEncode, EncodingFormat, OpCode, -} from "../../../../../utils/bitcoinEncode"; +} from "../../../../../src/chains/bitcoin/inscription/encode"; +import { formatEncodingChoices } from "../../../../../types/bitcoin.types"; +import { typesAndValuesLengthRefineRule } from "../../../../../types/shared.schema"; import { trim0x } from "../../../../../utils/trim0x"; const encodeOptionsSchema = z diff --git a/packages/commands/src/bitcoin/memo/call.ts b/packages/commands/src/bitcoin/memo/call.ts index 42bcd572..396efdfb 100644 --- a/packages/commands/src/bitcoin/memo/call.ts +++ b/packages/commands/src/bitcoin/memo/call.ts @@ -1,3 +1,4 @@ +import * as bitcoin from "bitcoinjs-lib"; import { z } from "zod"; import { memoCallOptionsSchema } from "../../../../../types/bitcoin.types"; @@ -26,9 +27,15 @@ type CallOptions = z.infer; */ const main = async (options: CallOptions) => { try { + const network = + options.network === "signet" + ? bitcoin.networks.testnet + : bitcoin.networks.bitcoin; + const { key, address } = setupBitcoinKeyPair( options.privateKey, - options.name + options.name, + network ); const utxos = await fetchUtxos(address, options.bitcoinApi); @@ -44,7 +51,8 @@ const main = async (options: CallOptions) => { depositFee, options.gateway, address, - memo || "" + memo || "", + options.network ); const tx = await bitcoinMakeTransactionWithMemo({ diff --git a/packages/commands/src/bitcoin/memo/deposit.ts b/packages/commands/src/bitcoin/memo/deposit.ts index 6b6343df..92b18456 100644 --- a/packages/commands/src/bitcoin/memo/deposit.ts +++ b/packages/commands/src/bitcoin/memo/deposit.ts @@ -1,3 +1,4 @@ +import * as bitcoin from "bitcoinjs-lib"; import { z } from "zod"; import { memoDepositOptionsSchema } from "../../../../../types/bitcoin.types"; @@ -21,9 +22,15 @@ type DepositOptions = z.infer; const main = async (options: DepositOptions) => { try { + const network = + options.network === "signet" + ? bitcoin.networks.testnet + : bitcoin.networks.bitcoin; + const { key, address } = setupBitcoinKeyPair( options.privateKey, - options.name + options.name, + network ); const utxos = await fetchUtxos(address, options.bitcoinApi); @@ -39,7 +46,8 @@ const main = async (options: DepositOptions) => { depositFee, options.gateway, address, - memo || "" + memo || "", + options.network ); const tx = await bitcoinMakeTransactionWithMemo({ diff --git a/packages/commands/src/bitcoin/memo/depositAndCall.ts b/packages/commands/src/bitcoin/memo/depositAndCall.ts index f7700d3f..201f5a38 100644 --- a/packages/commands/src/bitcoin/memo/depositAndCall.ts +++ b/packages/commands/src/bitcoin/memo/depositAndCall.ts @@ -1,3 +1,4 @@ +import * as bitcoin from "bitcoinjs-lib"; import { z } from "zod"; import { memoDepositAndCallOptionsSchema } from "../../../../../types/bitcoin.types"; @@ -27,9 +28,15 @@ type DepositAndCallOptions = z.infer; */ const main = async (options: DepositAndCallOptions) => { try { + const network = + options.network === "signet" + ? bitcoin.networks.testnet + : bitcoin.networks.bitcoin; + const { key, address } = setupBitcoinKeyPair( options.privateKey, - options.name + options.name, + network ); const utxos = await fetchUtxos(address, options.bitcoinApi); @@ -45,7 +52,8 @@ const main = async (options: DepositAndCallOptions) => { depositFee, options.gateway, address, - memo || "" + memo || "", + options.network ); const tx = await bitcoinMakeTransactionWithMemo({ diff --git a/packages/commands/src/faucet.ts b/packages/commands/src/faucet.ts new file mode 100644 index 00000000..920f14b4 --- /dev/null +++ b/packages/commands/src/faucet.ts @@ -0,0 +1,55 @@ +import { Command, Option } from "commander"; +import { z } from "zod"; + +import { drip } from "../../../src/utils/faucet/drip"; +import { faucetOptionsSchema } from "../../../types/faucet.types"; +import { DEFAULT_ACCOUNT_NAME } from "../../../types/shared.constants"; +import { handleError, validateAndParseSchema } from "../../../utils"; +import { resolveEvmAddress } from "../../../utils/addressResolver"; + +type FaucetOptions = z.infer; + +const main = async (options: FaucetOptions) => { + try { + const address = resolveEvmAddress({ + accountName: options.name, + evmAddress: options.address, + }); + + if (!address) { + throw new Error( + "Please, create an account or provide an address as an argument." + ); + } + + await drip({ address }); + } catch (error) { + handleError({ + context: "Error requesting tokens from faucet", + error, + shouldThrow: false, + }); + } +}; + +export const faucetCommand = new Command() + .name("faucet") + .description("Request testnet ZETA tokens from the faucet.") + .addOption( + new Option("--address
", "Recipient address.").conflicts(["name"]) + ) + .addOption( + new Option("--name ", "Account name to use if address not provided") + .default(DEFAULT_ACCOUNT_NAME) + .conflicts(["address"]) + ) + .action(async (options) => { + const validatedOptions = validateAndParseSchema( + options, + faucetOptionsSchema, + { + exitOnError: true, + } + ); + await main(validatedOptions); + }); diff --git a/packages/commands/src/program.ts b/packages/commands/src/program.ts index 85ba4e7a..73f3c487 100644 --- a/packages/commands/src/program.ts +++ b/packages/commands/src/program.ts @@ -5,6 +5,7 @@ import { showRequiredOptions } from "../../../utils/common.command.helpers"; import { accountsCommand } from "./accounts"; import { bitcoinCommand } from "./bitcoin"; import { evmCommand } from "./evm"; +import { faucetCommand } from "./faucet"; import { queryCommand } from "./query"; import { solanaCommand } from "./solana"; import { suiCommand } from "./sui"; @@ -18,6 +19,7 @@ export const toolkitCommand = new Command("toolkit") toolkitCommand.addCommand(accountsCommand); toolkitCommand.addCommand(bitcoinCommand); toolkitCommand.addCommand(evmCommand); +toolkitCommand.addCommand(faucetCommand); toolkitCommand.addCommand(queryCommand); toolkitCommand.addCommand(solanaCommand); toolkitCommand.addCommand(suiCommand); diff --git a/packages/tasks/src/faucet.ts b/packages/tasks/src/faucet.ts index 12b69d04..e01964d4 100644 --- a/packages/tasks/src/faucet.ts +++ b/packages/tasks/src/faucet.ts @@ -1,18 +1,15 @@ -// @ts-expect-error @description Could not find a declaration file for drip module -import { drip } from "@zetachain/faucet-cli/dist/commands/drip"; import * as dotenv from "dotenv"; import { ethers } from "ethers"; import { task } from "hardhat/config"; import { z } from "zod"; +import { drip } from "../../../src/utils/faucet/drip"; import { evmAddressSchema } from "../../../types/shared.schema"; import { validateAndParseSchema } from "../../../utils"; import { walletError } from "./balances"; dotenv.config(); -const typedDripFunction = drip as (args: { address: string }) => Promise; - const faucetError = ` * Alternatively, you can request tokens on any address by using the --address flag: @@ -41,7 +38,7 @@ const main = async (args: FaucetArgs) => { try { const address = getRecipientAddress(parsedArgs.address); - await typedDripFunction({ address }); + await drip({ address }); } catch (error) { console.error(error); } diff --git a/utils/bitcoinEncode.ts b/src/chains/bitcoin/inscription/encode.ts similarity index 98% rename from utils/bitcoinEncode.ts rename to src/chains/bitcoin/inscription/encode.ts index c4adf21e..cab8b71f 100644 --- a/utils/bitcoinEncode.ts +++ b/src/chains/bitcoin/inscription/encode.ts @@ -1,13 +1,10 @@ import { ethers } from "ethers"; -// Define types export type Address = string; export type BtcAddress = string; -// Memo identifier byte const MemoIdentifier = 0x5a; -// Enums export enum OpCode { Call = 0b0010, Deposit = 0b0000, @@ -21,7 +18,6 @@ export enum EncodingFormat { CompactShort = 0b0001, } -// Header Class class Header { encodingFmt: EncodingFormat; opCode: OpCode; @@ -32,7 +28,6 @@ class Header { } } -// FieldsV0 Class class FieldsV0 { receiver: Address; payload: Buffer; diff --git a/src/chains/bitcoin/inscription/makeCommitPsbt.ts b/src/chains/bitcoin/inscription/makeCommitPsbt.ts new file mode 100644 index 00000000..f2b31ec4 --- /dev/null +++ b/src/chains/bitcoin/inscription/makeCommitPsbt.ts @@ -0,0 +1,127 @@ +import * as bitcoin from "bitcoinjs-lib"; + +import { + BITCOIN_FEES, + BITCOIN_SCRIPT, + ESTIMATED_VIRTUAL_SIZE, +} from "../../../../types/bitcoin.constants"; +import { calculateRevealFee } from "../../../../utils/bitcoin.helpers"; + +export const LEAF_VERSION_TAPSCRIPT = BITCOIN_SCRIPT.LEAF_VERSION_TAPSCRIPT; + +export type PreparedUtxo = { + scriptPubKey: Buffer; + txid: string; + value: number; + vout: number; +}; + +// Insert parameter interface for the new single-object argument +export interface MakeCommitPsbtParams { + amount: number; + changeAddress: string; + feeSat?: number; + inscriptionData: Buffer; + internalPubkey: Buffer; + network: bitcoin.Network; + utxos: PreparedUtxo[]; +} + +export const makeCommitPsbt = ({ + internalPubkey, + utxos, + changeAddress, + inscriptionData, + amount, + network, + feeSat = BITCOIN_FEES.DEFAULT_COMMIT_FEE_SAT, +}: MakeCommitPsbtParams): { + controlBlock: Buffer; + internalKey: Buffer; + leafScript: Buffer; + signingIndexes: number[]; + unsignedPsbtBase64: string; +} => { + const scriptItems = [ + internalPubkey, + bitcoin.opcodes.OP_CHECKSIG, + bitcoin.opcodes.OP_FALSE, + bitcoin.opcodes.OP_IF, + ]; + + const MAX_SCRIPT_ELEMENT_SIZE = 520; + if (inscriptionData.length > MAX_SCRIPT_ELEMENT_SIZE) { + for (let i = 0; i < inscriptionData.length; i += MAX_SCRIPT_ELEMENT_SIZE) { + const end = Math.min(i + MAX_SCRIPT_ELEMENT_SIZE, inscriptionData.length); + scriptItems.push(inscriptionData.slice(i, end)); + } + } else { + scriptItems.push(inscriptionData); + } + + scriptItems.push(bitcoin.opcodes.OP_ENDIF); + + const leafScript = bitcoin.script.compile(scriptItems); + + const { output: commitScript, witness } = bitcoin.payments.p2tr({ + internalPubkey, + network, + redeem: { output: leafScript, redeemVersion: LEAF_VERSION_TAPSCRIPT }, + scriptTree: { output: leafScript }, + }); + + if (!witness) throw new Error("taproot build failed"); + + const { revealFee, vsize } = calculateRevealFee( + { + controlBlock: witness[witness.length - 1], + internalKey: internalPubkey, + leafScript, + }, + BITCOIN_FEES.DEFAULT_REVEAL_FEE_RATE + ); + + const depositFee = Math.ceil( + (ESTIMATED_VIRTUAL_SIZE * 2 * revealFee) / vsize + ); + const amountSat = amount + revealFee + depositFee; + + const sortedUtxos = utxos.sort((a, b) => a.value - b.value); + + let inTotal = 0; + const picks: PreparedUtxo[] = []; + for (const u of sortedUtxos) { + inTotal += u.value; + picks.push(u); + if (inTotal >= amountSat + feeSat) break; + } + if (inTotal < amountSat + feeSat) throw new Error("Not enough funds"); + + const changeSat = inTotal - amountSat - feeSat; + + if (!commitScript) throw new Error("taproot build failed"); + + const psbt = new bitcoin.Psbt({ network }); + psbt.addOutput({ script: commitScript, value: amountSat }); + if (changeSat > 0) + psbt.addOutput({ address: changeAddress, value: changeSat }); + + picks.forEach((u) => { + psbt.addInput({ + hash: u.txid, + index: u.vout, + witnessUtxo: { + script: u.scriptPubKey, + value: u.value, + }, + }); + }); + + return { + controlBlock: witness[witness.length - 1], + internalKey: internalPubkey, + leafScript, + signingIndexes: picks.map((_, i) => i), + unsignedPsbtBase64: psbt.toBase64(), + }; +}; diff --git a/src/chains/bitcoin/inscription/makeRevealPsbt.ts b/src/chains/bitcoin/inscription/makeRevealPsbt.ts new file mode 100644 index 00000000..fa54ddaf --- /dev/null +++ b/src/chains/bitcoin/inscription/makeRevealPsbt.ts @@ -0,0 +1,87 @@ +import * as bitcoin from "bitcoinjs-lib"; + +import { + BITCOIN_LIMITS, + BITCOIN_SCRIPT, +} from "../../../../types/bitcoin.constants"; +import { calculateRevealFee } from "../../../../utils/bitcoin.helpers"; + +export interface CommitData { + controlBlock: Buffer; + internalKey: Buffer; // 32‑byte x‑only pubkey + leafScript: Buffer; // compiled tapscript from the commit +} + +/** Return type – ready for Dynamic Labs */ +export interface RevealPsbtResult { + // satoshi fee we just budgeted + outputValue: number; + // always [0] – only one input + revealFee: number; + // feed this to signPsbt + signingIndexes: number[]; + unsignedPsbtBase64: string; // value that arrives at `to` +} + +/** + * Build a reveal‑TX PSBT. + * + * @param commitTxId txid of the commit transaction + * @param commitVout output index spent (usually 0) + * @param commitValue value (sat) locked in that output + * @param to gateway/recipient address + * @param feeRate sat/vbyte you want to pay for the reveal + * @param commitData controlBlock + internalKey + leafScript from makeCommitPsbt + * @param network bitcoin.networks.bitcoin | testnet | regtest … + */ +export const makeRevealPsbt = ( + commitTxId: string, + commitVout: number, + commitValue: number, + to: string, + feeRate: number, + commitData: CommitData, + network: bitcoin.Network, + dust = BITCOIN_LIMITS.DUST_THRESHOLD.P2WPKH // keep same dust guard +): RevealPsbtResult => { + const { output: commitScript } = bitcoin.payments.p2tr({ + internalPubkey: commitData.internalKey, + network, + scriptTree: { output: commitData.leafScript }, + }); + if (!commitScript) throw new Error("could not rebuild commit script"); + + const { revealFee } = calculateRevealFee(commitData, feeRate); + + const outputValue = commitValue - revealFee; + if (outputValue < dust) { + throw new Error( + `Commit output (${commitValue} sat) cannot cover reveal fee ` + + `(${revealFee} sat) plus dust (${dust} sat)` + ); + } + + const psbt = new bitcoin.Psbt({ network }); + + psbt.addInput({ + hash: commitTxId, + index: commitVout, + tapLeafScript: [ + { + controlBlock: commitData.controlBlock, + leafVersion: BITCOIN_SCRIPT.LEAF_VERSION_TAPSCRIPT, + script: commitData.leafScript, + }, + ], + witnessUtxo: { script: commitScript, value: commitValue }, + }); + + psbt.addOutput({ address: to, value: outputValue }); + + return { + outputValue, + revealFee, + signingIndexes: [0], + unsignedPsbtBase64: psbt.toBase64(), + }; +}; diff --git a/src/constants/faucet.ts b/src/constants/faucet.ts new file mode 100644 index 00000000..d1fe12b0 --- /dev/null +++ b/src/constants/faucet.ts @@ -0,0 +1,8 @@ +export const LD_CLIENT_SIDE_ID = "6454092189ffbf1251467c89"; +export const FAUCET_BASE_URL = "https://faucet-backend.cl05.zetachain.com"; +export const CLIENT_ID = "Iv1.09b6b391674ad245"; // Zeta App +export const GITHUB_REQUEST_CODE_URL = "https://github.com/login/device/code"; +export const GITHUB_REQUEST_TOKEN_URL = + "https://github.com/login/oauth/access_token"; +export const GITHUB_WHOAMI_URL = "https://api.github.com/user"; +export const ACCESS_TOKEN_FILE_PATH = "~/.zetachain/faucet_access_token.json"; diff --git a/src/schemas/evm.ts b/src/schemas/evm.ts index a230598a..8087e931 100644 --- a/src/schemas/evm.ts +++ b/src/schemas/evm.ts @@ -2,6 +2,7 @@ import { ethers } from "ethers"; import { z } from "zod"; import { bigNumberishSchema } from "../../types/shared.schema"; +import { isValidEthersSigner } from "../../utils/validateSigner"; export const revertOptionsSchema = z.object({ abortAddress: z.string().optional(), @@ -19,7 +20,9 @@ export const txOptionsSchema = z.object({ export const evmOptionsSchema = z.object({ gateway: z.string().optional(), - signer: z.instanceof(ethers.Wallet), + signer: z.custom(isValidEthersSigner, { + message: "signer must be an ethers Signer", + }), txOptions: txOptionsSchema.optional(), }); diff --git a/src/utils/faucet/drip.ts b/src/utils/faucet/drip.ts new file mode 100644 index 00000000..dbb3a1ff --- /dev/null +++ b/src/utils/faucet/drip.ts @@ -0,0 +1,60 @@ +import axios, { isAxiosError } from "axios"; + +import { FAUCET_BASE_URL } from "../../constants/faucet"; +import { getGithubAccessToken } from "./github"; +import { validateGithubAccount } from "./validation"; + +interface DripParams { + address: string; +} + +export const drip = async ({ address }: DripParams) => { + try { + const token = await getGithubAccessToken(); + + if (!token) { + console.error("❌ Cannot complete request without GitHub access token."); + + return; + } + + try { + await validateGithubAccount(token); + } catch (error: unknown) { + const errorMessage = + error instanceof Error ? error.message : String(error); + console.error("❌ Invalid GitHub account.", errorMessage); + + return; + } + + console.info(`🔄 Requesting assets for ${address} in ZetaChain Athens`); + + const { data } = await axios.post( + `${FAUCET_BASE_URL}/drip`, + { address }, + { + headers: { + Authorization: `Bearer ${token}`, + }, + } + ); + + const message = data || "Queued for faucet drip"; + + console.info( + `✅ ${message}. Please wait a few minutes for the assets to arrive.` + ); + } catch (error: unknown) { + if (isAxiosError(error)) { + console.error( + "❌ Could not request assets from faucet.", + error.response?.data || error.message + ); + } else { + const errorMessage = + error instanceof Error ? error.message : String(error); + console.error("❌ Could not request assets from faucet.", errorMessage); + } + } +}; diff --git a/src/utils/faucet/github.ts b/src/utils/faucet/github.ts new file mode 100644 index 00000000..1c75be79 --- /dev/null +++ b/src/utils/faucet/github.ts @@ -0,0 +1,285 @@ +import axios from "axios"; +import os from "os"; +import path from "path"; +import { createInterface } from "readline"; +import { z } from "zod"; + +import { + safeExists, + safeMkdir, + safeReadJson, + safeUnlink, + safeWriteFile, +} from "../../../utils/fsUtils"; +import { + ACCESS_TOKEN_FILE_PATH, + CLIENT_ID, + GITHUB_REQUEST_CODE_URL, + GITHUB_REQUEST_TOKEN_URL, + GITHUB_WHOAMI_URL, +} from "../../constants/faucet"; + +// Zod schema for token data validation +const TokenDataSchema = z.object({ + access_token: z.string(), +}); + +type TokenData = z.infer; + +const getTokenFilePath = () => { + const homeDir = os.homedir(); + return path.resolve(ACCESS_TOKEN_FILE_PATH.replace("~", homeDir)); +}; + +const readTokenFromFile = (): TokenData => { + const filePath = getTokenFilePath(); + + if (!safeExists(filePath)) { + throw new Error("Token file does not exist"); + } + + try { + const parsed = safeReadJson(filePath); + const validationResult = TokenDataSchema.safeParse(parsed); + + if (validationResult.success) { + return validationResult.data; + } + + throw new Error( + `Invalid token data format: ${validationResult.error.message}` + ); + } catch (error) { + // If it's a file not found error, re-throw as a simple "does not exist" message + if (error instanceof Error && error.message.includes("ENOENT")) { + throw new Error("Token file does not exist"); + } + + throw new Error( + `Failed to read or validate token data: ${ + error instanceof Error ? error.message : String(error) + }` + ); + } +}; + +const writeTokenToFile = (token: TokenData) => { + const filePath = getTokenFilePath(); + const dirPath = path.dirname(filePath); + + // Ensure the directory exists using safe helper + safeMkdir(dirPath); + + // Write token data using safe helper + safeWriteFile(filePath, token); +}; + +const requestDeviceCode = async () => { + try { + const requestCodeSchema = z.object({ + device_code: z.string(), + expires_in: z.number(), + interval: z.number(), + user_code: z.string(), + verification_uri: z.string(), + }); + + const response = await axios({ + headers: { + Accept: "application/json", + }, + method: "post", + params: { + client_id: CLIENT_ID, + }, + url: GITHUB_REQUEST_CODE_URL, + }); + + const parseResult = requestCodeSchema.safeParse(response.data); + + if (parseResult.success) { + return parseResult.data; + } + + console.error( + "❌ Could not parse device code from GitHub.", + response.data, + parseResult.error.message + ); + } catch (error: unknown) { + const errorMessage = error instanceof Error ? error.message : String(error); + console.error( + "❌ Could not request device code from GitHub.", + errorMessage + ); + } + + return null; +}; + +const requestToken = async (deviceCode: string) => { + try { + const accessTokenSchema = z.object({ + access_token: z.string().optional(), + error: z.string().optional(), + error_description: z.string().optional(), + error_uri: z.string().optional(), + }); + + const response = await axios({ + headers: { + Accept: "application/json", + }, + method: "post", + params: { + client_id: CLIENT_ID, + device_code: deviceCode, + grant_type: "urn:ietf:params:oauth:grant-type:device_code", + }, + url: GITHUB_REQUEST_TOKEN_URL, + }); + + const parseResult = accessTokenSchema.safeParse(response.data); + + if (parseResult.success) { + return parseResult.data; + } + + console.error( + "❌ Could not parse access token from GitHub.", + response.data, + parseResult.error.message + ); + } catch (error: unknown) { + const errorMessage = error instanceof Error ? error.message : String(error); + console.error( + "❌ Could not request access token from GitHub.", + errorMessage + ); + } + + return null; +}; + +const whoami = async (accessToken?: string) => { + try { + const whoamiSchema = z.object({ + login: z.string(), + }); + + const response = await axios.get(GITHUB_WHOAMI_URL, { + headers: { + Accept: "application/json", + Authorization: `Bearer ${accessToken}`, + }, + }); + + const parseResult = whoamiSchema.safeParse(response.data); + + if (parseResult.success) { + return parseResult.data; + } + } catch (error: unknown) { + const errorMessage = error instanceof Error ? error.message : String(error); + console.error("❌ Could not request user from GitHub.", errorMessage); + } + + return null; +}; + +export const getGithubAccessToken = async (): Promise => { + const readline = createInterface({ + input: process.stdin, + output: process.stdout, + }); + + const readLineAsync = (msg: string) => { + return new Promise((resolve) => { + readline.question(msg, (userRes) => { + resolve(userRes); + }); + }); + }; + + try { + // Checking saved access token. + const { access_token } = readTokenFromFile(); + + const whoamiInfo = await whoami(access_token); + + if (whoamiInfo?.login) { + console.info(`🪪 GitHub logged as ${whoamiInfo.login}.`); + readline.close(); + return access_token; + } + + console.error("❌ Invalid access token."); + } catch (error: unknown) { + // Need to request a new access token. + + // Requesting device code. + const deviceCodeInfo = await requestDeviceCode(); + + if (!deviceCodeInfo) { + console.error("❌ Cannot continue without device code."); + readline.close(); + return null; + } + + const deviceCode = deviceCodeInfo.device_code; + + // Asking user to confirm device verification. + await readLineAsync( + `🔐 Please confirm GitHub login at: '${deviceCodeInfo.verification_uri}' using this code: '${deviceCodeInfo.user_code}', and then press Enter to continue.` + ); + + // Requesting access token. + const accessTokenInfo = await requestToken(deviceCode); + if ( + !accessTokenInfo || + accessTokenInfo.error || + !accessTokenInfo.access_token + ) { + console.error( + "❌", + accessTokenInfo?.error_description || + "Failed to get access token from GitHub." + ); + + readline.close(); + return null; + } + + // Verifiying access token. + const whoamiInfo = await whoami(accessTokenInfo.access_token); + + if (!whoamiInfo?.login) { + console.error("❌ Failed to verify access token from GitHub."); + + readline.close(); + return null; + } + + // Saving access token. + writeTokenToFile({ access_token: accessTokenInfo.access_token }); + + console.info(`🪪 GitHub logged as ${whoamiInfo.login}.`); + + readline.close(); + return accessTokenInfo.access_token; + } + + readline.close(); + return null; +}; + +export const logoutGithub = () => { + const filePath = getTokenFilePath(); + if (safeExists(filePath)) { + safeUnlink(filePath); + + console.info("👤 GitHub logged out."); + } else { + console.info("👤 GitHub not logged in."); + } +}; diff --git a/src/utils/faucet/validation.ts b/src/utils/faucet/validation.ts new file mode 100644 index 00000000..b9459eaf --- /dev/null +++ b/src/utils/faucet/validation.ts @@ -0,0 +1,64 @@ +import axios from "axios"; +import dayjs from "dayjs"; +import { z } from "zod"; + +import { GITHUB_WHOAMI_URL } from "../../constants/faucet"; + +const githubUserSchema = z.object({ + created_at: z.string(), + id: z.number(), + login: z.string(), + public_repos: z.number(), + two_factor_authentication: z.boolean().optional(), +}); + +const githubUserByIdApiResponseSchema = z.object({ + id: z.number(), + login: z.string(), + url: z.string(), +}); + +export const validateGithubAccount = async (token: string) => { + try { + const { data: userResponse } = await axios.get(GITHUB_WHOAMI_URL, { + headers: { + Authorization: `Bearer ${token}`, + }, + }); + + const githubUser = githubUserSchema.parse(userResponse); + + const { data: userByIdResponse } = await axios.get( + `${GITHUB_WHOAMI_URL}/${githubUser.id}`, + { + headers: { + Accept: "application/json", + Authorization: `Bearer ${token}`, + }, + } + ); + + const githubAccountFromUserByIdApi = + githubUserByIdApiResponseSchema.parse(userByIdResponse); + + if (githubAccountFromUserByIdApi.id !== githubUser.id) { + throw new Error("Account mismatch."); + } + + if (githubUser.public_repos < 1) { + throw new Error("Account has no public repos."); + } + + const accountCreationDate = dayjs(githubUser.created_at); + const now = dayjs(); + + if (now.diff(accountCreationDate, "month") < 3) { + throw new Error("Account is too new."); + } + + return githubUser; + } catch (error) { + const errorMessage = error instanceof Error ? error.message : String(error); + throw new Error(`Failed to validate GitHub account: ${errorMessage}`); + } +}; diff --git a/test/bitcoinEncode.test.ts b/test/bitcoinEncode.test.ts index 7f04c7b8..c8240e23 100644 --- a/test/bitcoinEncode.test.ts +++ b/test/bitcoinEncode.test.ts @@ -1,6 +1,10 @@ import { ethers } from "ethers"; -import { Address, bitcoinEncode, BtcAddress } from "../utils/bitcoinEncode"; +import { + Address, + bitcoinEncode, + BtcAddress, +} from "../src/chains/bitcoin/inscription/encode"; import { trim0x } from "../utils/trim0x"; describe("bitcoinEncode", () => { diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/Revert.sol/Revertable.ts b/typechain-types/@zetachain/protocol-contracts/contracts/Revert.sol/Revertable.ts index 072e91fe..d6cb401c 100644 --- a/typechain-types/@zetachain/protocol-contracts/contracts/Revert.sol/Revertable.ts +++ b/typechain-types/@zetachain/protocol-contracts/contracts/Revert.sol/Revertable.ts @@ -92,7 +92,7 @@ export interface Revertable extends BaseContract { onRevert: TypedContractMethod< [revertContext: RevertContextStruct], [void], - "nonpayable" + "payable" >; getFunction( @@ -104,7 +104,7 @@ export interface Revertable extends BaseContract { ): TypedContractMethod< [revertContext: RevertContextStruct], [void], - "nonpayable" + "payable" >; filters: {}; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorBase.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorBase.ts index e3e648f9..7d665061 100644 --- a/typechain-types/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorBase.ts +++ b/typechain-types/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorBase.ts @@ -37,10 +37,6 @@ export type RevertContextStructOutput = [ revertMessage: string ] & { sender: string; asset: string; amount: bigint; revertMessage: string }; -export type MessageContextStruct = { sender: AddressLike }; - -export type MessageContextStructOutput = [sender: string] & { sender: string }; - export interface ZetaConnectorBaseInterface extends Interface { getFunction( nameOrSignature: @@ -49,6 +45,7 @@ export interface ZetaConnectorBaseInterface extends Interface { | "TSS_ROLE" | "UPGRADE_INTERFACE_VERSION" | "WITHDRAWER_ROLE" + | "deposit" | "gateway" | "getRoleAdmin" | "grantRole" @@ -57,7 +54,6 @@ export interface ZetaConnectorBaseInterface extends Interface { | "pause" | "paused" | "proxiableUUID" - | "receiveTokens" | "renounceRole" | "revokeRole" | "supportsInterface" @@ -65,9 +61,6 @@ export interface ZetaConnectorBaseInterface extends Interface { | "unpause" | "updateTSSAddress" | "upgradeToAndCall" - | "withdraw" - | "withdrawAndCall" - | "withdrawAndRevert" | "zetaToken" ): FunctionFragment; @@ -103,6 +96,10 @@ export interface ZetaConnectorBaseInterface extends Interface { functionFragment: "WITHDRAWER_ROLE", values?: undefined ): string; + encodeFunctionData( + functionFragment: "deposit", + values: [BigNumberish] + ): string; encodeFunctionData(functionFragment: "gateway", values?: undefined): string; encodeFunctionData( functionFragment: "getRoleAdmin", @@ -126,10 +123,6 @@ export interface ZetaConnectorBaseInterface extends Interface { functionFragment: "proxiableUUID", values?: undefined ): string; - encodeFunctionData( - functionFragment: "receiveTokens", - values: [BigNumberish] - ): string; encodeFunctionData( functionFragment: "renounceRole", values: [BytesLike, AddressLike] @@ -155,30 +148,6 @@ export interface ZetaConnectorBaseInterface extends Interface { functionFragment: "upgradeToAndCall", values: [AddressLike, BytesLike] ): string; - encodeFunctionData( - functionFragment: "withdraw", - values: [AddressLike, BigNumberish, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "withdrawAndCall", - values: [ - MessageContextStruct, - AddressLike, - BigNumberish, - BytesLike, - BytesLike - ] - ): string; - encodeFunctionData( - functionFragment: "withdrawAndRevert", - values: [ - AddressLike, - BigNumberish, - BytesLike, - BytesLike, - RevertContextStruct - ] - ): string; encodeFunctionData(functionFragment: "zetaToken", values?: undefined): string; decodeFunctionResult( @@ -198,6 +167,7 @@ export interface ZetaConnectorBaseInterface extends Interface { functionFragment: "WITHDRAWER_ROLE", data: BytesLike ): Result; + decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; decodeFunctionResult(functionFragment: "gateway", data: BytesLike): Result; decodeFunctionResult( functionFragment: "getRoleAdmin", @@ -212,10 +182,6 @@ export interface ZetaConnectorBaseInterface extends Interface { functionFragment: "proxiableUUID", data: BytesLike ): Result; - decodeFunctionResult( - functionFragment: "receiveTokens", - data: BytesLike - ): Result; decodeFunctionResult( functionFragment: "renounceRole", data: BytesLike @@ -235,15 +201,6 @@ export interface ZetaConnectorBaseInterface extends Interface { functionFragment: "upgradeToAndCall", data: BytesLike ): Result; - decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "withdrawAndCall", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "withdrawAndRevert", - data: BytesLike - ): Result; decodeFunctionResult(functionFragment: "zetaToken", data: BytesLike): Result; } @@ -478,6 +435,8 @@ export interface ZetaConnectorBase extends BaseContract { WITHDRAWER_ROLE: TypedContractMethod<[], [string], "view">; + deposit: TypedContractMethod<[amount: BigNumberish], [void], "nonpayable">; + gateway: TypedContractMethod<[], [string], "view">; getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">; @@ -511,12 +470,6 @@ export interface ZetaConnectorBase extends BaseContract { proxiableUUID: TypedContractMethod<[], [string], "view">; - receiveTokens: TypedContractMethod< - [amount: BigNumberish], - [void], - "nonpayable" - >; - renounceRole: TypedContractMethod< [role: BytesLike, callerConfirmation: AddressLike], [void], @@ -551,36 +504,6 @@ export interface ZetaConnectorBase extends BaseContract { "payable" >; - withdraw: TypedContractMethod< - [to: AddressLike, amount: BigNumberish, internalSendHash: BytesLike], - [void], - "nonpayable" - >; - - withdrawAndCall: TypedContractMethod< - [ - messageContext: MessageContextStruct, - to: AddressLike, - amount: BigNumberish, - data: BytesLike, - internalSendHash: BytesLike - ], - [void], - "nonpayable" - >; - - withdrawAndRevert: TypedContractMethod< - [ - to: AddressLike, - amount: BigNumberish, - data: BytesLike, - internalSendHash: BytesLike, - revertContext: RevertContextStruct - ], - [void], - "nonpayable" - >; - zetaToken: TypedContractMethod<[], [string], "view">; getFunction( @@ -602,6 +525,9 @@ export interface ZetaConnectorBase extends BaseContract { getFunction( nameOrSignature: "WITHDRAWER_ROLE" ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "deposit" + ): TypedContractMethod<[amount: BigNumberish], [void], "nonpayable">; getFunction( nameOrSignature: "gateway" ): TypedContractMethod<[], [string], "view">; @@ -643,9 +569,6 @@ export interface ZetaConnectorBase extends BaseContract { getFunction( nameOrSignature: "proxiableUUID" ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "receiveTokens" - ): TypedContractMethod<[amount: BigNumberish], [void], "nonpayable">; getFunction( nameOrSignature: "renounceRole" ): TypedContractMethod< @@ -679,39 +602,6 @@ export interface ZetaConnectorBase extends BaseContract { [void], "payable" >; - getFunction( - nameOrSignature: "withdraw" - ): TypedContractMethod< - [to: AddressLike, amount: BigNumberish, internalSendHash: BytesLike], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdrawAndCall" - ): TypedContractMethod< - [ - messageContext: MessageContextStruct, - to: AddressLike, - amount: BigNumberish, - data: BytesLike, - internalSendHash: BytesLike - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "withdrawAndRevert" - ): TypedContractMethod< - [ - to: AddressLike, - amount: BigNumberish, - data: BytesLike, - internalSendHash: BytesLike, - revertContext: RevertContextStruct - ], - [void], - "nonpayable" - >; getFunction( nameOrSignature: "zetaToken" ): TypedContractMethod<[], [string], "view">; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNative.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNative.ts index 2a1aecb3..9d754e3f 100644 --- a/typechain-types/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNative.ts +++ b/typechain-types/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNative.ts @@ -49,6 +49,7 @@ export interface ZetaConnectorNativeInterface extends Interface { | "TSS_ROLE" | "UPGRADE_INTERFACE_VERSION" | "WITHDRAWER_ROLE" + | "deposit" | "gateway" | "getRoleAdmin" | "grantRole" @@ -57,7 +58,6 @@ export interface ZetaConnectorNativeInterface extends Interface { | "pause" | "paused" | "proxiableUUID" - | "receiveTokens" | "renounceRole" | "revokeRole" | "supportsInterface" @@ -103,6 +103,10 @@ export interface ZetaConnectorNativeInterface extends Interface { functionFragment: "WITHDRAWER_ROLE", values?: undefined ): string; + encodeFunctionData( + functionFragment: "deposit", + values: [BigNumberish] + ): string; encodeFunctionData(functionFragment: "gateway", values?: undefined): string; encodeFunctionData( functionFragment: "getRoleAdmin", @@ -126,10 +130,6 @@ export interface ZetaConnectorNativeInterface extends Interface { functionFragment: "proxiableUUID", values?: undefined ): string; - encodeFunctionData( - functionFragment: "receiveTokens", - values: [BigNumberish] - ): string; encodeFunctionData( functionFragment: "renounceRole", values: [BytesLike, AddressLike] @@ -157,27 +157,15 @@ export interface ZetaConnectorNativeInterface extends Interface { ): string; encodeFunctionData( functionFragment: "withdraw", - values: [AddressLike, BigNumberish, BytesLike] + values: [AddressLike, BigNumberish] ): string; encodeFunctionData( functionFragment: "withdrawAndCall", - values: [ - MessageContextStruct, - AddressLike, - BigNumberish, - BytesLike, - BytesLike - ] + values: [MessageContextStruct, AddressLike, BigNumberish, BytesLike] ): string; encodeFunctionData( functionFragment: "withdrawAndRevert", - values: [ - AddressLike, - BigNumberish, - BytesLike, - BytesLike, - RevertContextStruct - ] + values: [AddressLike, BigNumberish, BytesLike, RevertContextStruct] ): string; encodeFunctionData(functionFragment: "zetaToken", values?: undefined): string; @@ -198,6 +186,7 @@ export interface ZetaConnectorNativeInterface extends Interface { functionFragment: "WITHDRAWER_ROLE", data: BytesLike ): Result; + decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; decodeFunctionResult(functionFragment: "gateway", data: BytesLike): Result; decodeFunctionResult( functionFragment: "getRoleAdmin", @@ -212,10 +201,6 @@ export interface ZetaConnectorNativeInterface extends Interface { functionFragment: "proxiableUUID", data: BytesLike ): Result; - decodeFunctionResult( - functionFragment: "receiveTokens", - data: BytesLike - ): Result; decodeFunctionResult( functionFragment: "renounceRole", data: BytesLike @@ -478,6 +463,8 @@ export interface ZetaConnectorNative extends BaseContract { WITHDRAWER_ROLE: TypedContractMethod<[], [string], "view">; + deposit: TypedContractMethod<[amount: BigNumberish], [void], "nonpayable">; + gateway: TypedContractMethod<[], [string], "view">; getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">; @@ -511,12 +498,6 @@ export interface ZetaConnectorNative extends BaseContract { proxiableUUID: TypedContractMethod<[], [string], "view">; - receiveTokens: TypedContractMethod< - [amount: BigNumberish], - [void], - "nonpayable" - >; - renounceRole: TypedContractMethod< [role: BytesLike, callerConfirmation: AddressLike], [void], @@ -552,7 +533,7 @@ export interface ZetaConnectorNative extends BaseContract { >; withdraw: TypedContractMethod< - [to: AddressLike, amount: BigNumberish, arg2: BytesLike], + [to: AddressLike, amount: BigNumberish], [void], "nonpayable" >; @@ -562,8 +543,7 @@ export interface ZetaConnectorNative extends BaseContract { messageContext: MessageContextStruct, to: AddressLike, amount: BigNumberish, - data: BytesLike, - arg4: BytesLike + data: BytesLike ], [void], "nonpayable" @@ -574,7 +554,6 @@ export interface ZetaConnectorNative extends BaseContract { to: AddressLike, amount: BigNumberish, data: BytesLike, - arg3: BytesLike, revertContext: RevertContextStruct ], [void], @@ -602,6 +581,9 @@ export interface ZetaConnectorNative extends BaseContract { getFunction( nameOrSignature: "WITHDRAWER_ROLE" ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "deposit" + ): TypedContractMethod<[amount: BigNumberish], [void], "nonpayable">; getFunction( nameOrSignature: "gateway" ): TypedContractMethod<[], [string], "view">; @@ -643,9 +625,6 @@ export interface ZetaConnectorNative extends BaseContract { getFunction( nameOrSignature: "proxiableUUID" ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "receiveTokens" - ): TypedContractMethod<[amount: BigNumberish], [void], "nonpayable">; getFunction( nameOrSignature: "renounceRole" ): TypedContractMethod< @@ -682,7 +661,7 @@ export interface ZetaConnectorNative extends BaseContract { getFunction( nameOrSignature: "withdraw" ): TypedContractMethod< - [to: AddressLike, amount: BigNumberish, arg2: BytesLike], + [to: AddressLike, amount: BigNumberish], [void], "nonpayable" >; @@ -693,8 +672,7 @@ export interface ZetaConnectorNative extends BaseContract { messageContext: MessageContextStruct, to: AddressLike, amount: BigNumberish, - data: BytesLike, - arg4: BytesLike + data: BytesLike ], [void], "nonpayable" @@ -706,7 +684,6 @@ export interface ZetaConnectorNative extends BaseContract { to: AddressLike, amount: BigNumberish, data: BytesLike, - arg3: BytesLike, revertContext: RevertContextStruct ], [void], diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNonNative.ts b/typechain-types/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNonNative.ts index 06b564bd..baaca653 100644 --- a/typechain-types/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNonNative.ts +++ b/typechain-types/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNonNative.ts @@ -49,6 +49,7 @@ export interface ZetaConnectorNonNativeInterface extends Interface { | "TSS_ROLE" | "UPGRADE_INTERFACE_VERSION" | "WITHDRAWER_ROLE" + | "deposit" | "gateway" | "getRoleAdmin" | "grantRole" @@ -58,7 +59,6 @@ export interface ZetaConnectorNonNativeInterface extends Interface { | "pause" | "paused" | "proxiableUUID" - | "receiveTokens" | "renounceRole" | "revokeRole" | "setMaxSupply" @@ -106,6 +106,10 @@ export interface ZetaConnectorNonNativeInterface extends Interface { functionFragment: "WITHDRAWER_ROLE", values?: undefined ): string; + encodeFunctionData( + functionFragment: "deposit", + values: [BigNumberish] + ): string; encodeFunctionData(functionFragment: "gateway", values?: undefined): string; encodeFunctionData( functionFragment: "getRoleAdmin", @@ -130,10 +134,6 @@ export interface ZetaConnectorNonNativeInterface extends Interface { functionFragment: "proxiableUUID", values?: undefined ): string; - encodeFunctionData( - functionFragment: "receiveTokens", - values: [BigNumberish] - ): string; encodeFunctionData( functionFragment: "renounceRole", values: [BytesLike, AddressLike] @@ -206,6 +206,7 @@ export interface ZetaConnectorNonNativeInterface extends Interface { functionFragment: "WITHDRAWER_ROLE", data: BytesLike ): Result; + decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; decodeFunctionResult(functionFragment: "gateway", data: BytesLike): Result; decodeFunctionResult( functionFragment: "getRoleAdmin", @@ -221,10 +222,6 @@ export interface ZetaConnectorNonNativeInterface extends Interface { functionFragment: "proxiableUUID", data: BytesLike ): Result; - decodeFunctionResult( - functionFragment: "receiveTokens", - data: BytesLike - ): Result; decodeFunctionResult( functionFragment: "renounceRole", data: BytesLike @@ -503,6 +500,8 @@ export interface ZetaConnectorNonNative extends BaseContract { WITHDRAWER_ROLE: TypedContractMethod<[], [string], "view">; + deposit: TypedContractMethod<[amount: BigNumberish], [void], "nonpayable">; + gateway: TypedContractMethod<[], [string], "view">; getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">; @@ -538,12 +537,6 @@ export interface ZetaConnectorNonNative extends BaseContract { proxiableUUID: TypedContractMethod<[], [string], "view">; - receiveTokens: TypedContractMethod< - [amount: BigNumberish], - [void], - "nonpayable" - >; - renounceRole: TypedContractMethod< [role: BytesLike, callerConfirmation: AddressLike], [void], @@ -635,6 +628,9 @@ export interface ZetaConnectorNonNative extends BaseContract { getFunction( nameOrSignature: "WITHDRAWER_ROLE" ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "deposit" + ): TypedContractMethod<[amount: BigNumberish], [void], "nonpayable">; getFunction( nameOrSignature: "gateway" ): TypedContractMethod<[], [string], "view">; @@ -679,9 +675,6 @@ export interface ZetaConnectorNonNative extends BaseContract { getFunction( nameOrSignature: "proxiableUUID" ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "receiveTokens" - ): TypedContractMethod<[amount: BigNumberish], [void], "nonpayable">; getFunction( nameOrSignature: "renounceRole" ): TypedContractMethod< diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/helpers/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/helpers/index.ts new file mode 100644 index 00000000..92159233 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/helpers/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as interfaces from "./interfaces"; +export type { interfaces }; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/IBaseRegistry.ts b/typechain-types/@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/IBaseRegistry.ts new file mode 100644 index 00000000..c1553166 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/IBaseRegistry.ts @@ -0,0 +1,881 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../../../../common"; + +export type ChainInfoDTOStruct = { + active: boolean; + chainId: BigNumberish; + gasZRC20: AddressLike; + registry: BytesLike; +}; + +export type ChainInfoDTOStructOutput = [ + active: boolean, + chainId: bigint, + gasZRC20: string, + registry: string +] & { active: boolean; chainId: bigint; gasZRC20: string; registry: string }; + +export type ContractInfoDTOStruct = { + active: boolean; + addressBytes: BytesLike; + contractType: string; + chainId: BigNumberish; +}; + +export type ContractInfoDTOStructOutput = [ + active: boolean, + addressBytes: string, + contractType: string, + chainId: bigint +] & { + active: boolean; + addressBytes: string; + contractType: string; + chainId: bigint; +}; + +export type ZRC20InfoStruct = { + active: boolean; + address_: AddressLike; + originAddress: BytesLike; + originChainId: BigNumberish; + symbol: string; + coinType: string; + decimals: BigNumberish; +}; + +export type ZRC20InfoStructOutput = [ + active: boolean, + address_: string, + originAddress: string, + originChainId: bigint, + symbol: string, + coinType: string, + decimals: bigint +] & { + active: boolean; + address_: string; + originAddress: string; + originChainId: bigint; + symbol: string; + coinType: string; + decimals: bigint; +}; + +export interface IBaseRegistryInterface extends Interface { + getFunction( + nameOrSignature: + | "changeChainStatus" + | "getActiveChains" + | "getAllChains" + | "getAllContracts" + | "getAllZRC20Tokens" + | "getChainInfo" + | "getChainMetadata" + | "getContractConfiguration" + | "getContractInfo" + | "getZRC20AddressByForeignAsset" + | "getZRC20TokenInfo" + | "registerContract" + | "registerZRC20Token" + | "setContractActive" + | "setZRC20TokenActive" + | "updateChainMetadata" + | "updateContractConfiguration" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "AdminChanged" + | "ChainMetadataUpdated" + | "ChainStatusChanged" + | "ContractConfigurationUpdated" + | "ContractRegistered" + | "ContractStatusChanged" + | "RegistryManagerChanged" + | "ZRC20TokenRegistered" + | "ZRC20TokenUpdated" + ): EventFragment; + + encodeFunctionData( + functionFragment: "changeChainStatus", + values: [BigNumberish, AddressLike, BytesLike, boolean] + ): string; + encodeFunctionData( + functionFragment: "getActiveChains", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getAllChains", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getAllContracts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getAllZRC20Tokens", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getChainInfo", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getChainMetadata", + values: [BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "getContractConfiguration", + values: [BigNumberish, string, string] + ): string; + encodeFunctionData( + functionFragment: "getContractInfo", + values: [BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "getZRC20AddressByForeignAsset", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "getZRC20TokenInfo", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "registerContract", + values: [BigNumberish, string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "registerZRC20Token", + values: [AddressLike, string, BigNumberish, BytesLike, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "setContractActive", + values: [BigNumberish, string, boolean] + ): string; + encodeFunctionData( + functionFragment: "setZRC20TokenActive", + values: [AddressLike, boolean] + ): string; + encodeFunctionData( + functionFragment: "updateChainMetadata", + values: [BigNumberish, string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "updateContractConfiguration", + values: [BigNumberish, string, string, BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "changeChainStatus", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getActiveChains", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getAllChains", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getAllContracts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getAllZRC20Tokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getChainInfo", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getChainMetadata", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getContractConfiguration", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getContractInfo", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getZRC20AddressByForeignAsset", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getZRC20TokenInfo", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "registerContract", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "registerZRC20Token", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setContractActive", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setZRC20TokenActive", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "updateChainMetadata", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "updateContractConfiguration", + data: BytesLike + ): Result; +} + +export namespace AdminChangedEvent { + export type InputTuple = [oldAdmin: AddressLike, newAdmin: AddressLike]; + export type OutputTuple = [oldAdmin: string, newAdmin: string]; + export interface OutputObject { + oldAdmin: string; + newAdmin: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ChainMetadataUpdatedEvent { + export type InputTuple = [ + chainId: BigNumberish, + key: string, + value: BytesLike + ]; + export type OutputTuple = [chainId: bigint, key: string, value: string]; + export interface OutputObject { + chainId: bigint; + key: string; + value: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ChainStatusChangedEvent { + export type InputTuple = [chainId: BigNumberish, newStatus: boolean]; + export type OutputTuple = [chainId: bigint, newStatus: boolean]; + export interface OutputObject { + chainId: bigint; + newStatus: boolean; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ContractConfigurationUpdatedEvent { + export type InputTuple = [ + chainId: BigNumberish, + contractType: string, + key: string, + value: BytesLike + ]; + export type OutputTuple = [ + chainId: bigint, + contractType: string, + key: string, + value: string + ]; + export interface OutputObject { + chainId: bigint; + contractType: string; + key: string; + value: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ContractRegisteredEvent { + export type InputTuple = [ + chainId: BigNumberish, + contractType: string, + addressBytes: BytesLike + ]; + export type OutputTuple = [ + chainId: bigint, + contractType: string, + addressBytes: string + ]; + export interface OutputObject { + chainId: bigint; + contractType: string; + addressBytes: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ContractStatusChangedEvent { + export type InputTuple = [addressBytes: BytesLike]; + export type OutputTuple = [addressBytes: string]; + export interface OutputObject { + addressBytes: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RegistryManagerChangedEvent { + export type InputTuple = [ + oldRegistryManager: AddressLike, + newRegistryManager: AddressLike + ]; + export type OutputTuple = [ + oldRegistryManager: string, + newRegistryManager: string + ]; + export interface OutputObject { + oldRegistryManager: string; + newRegistryManager: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ZRC20TokenRegisteredEvent { + export type InputTuple = [ + originAddress: BytesLike, + address_: AddressLike, + decimals: BigNumberish, + originChainId: BigNumberish, + symbol: string + ]; + export type OutputTuple = [ + originAddress: string, + address_: string, + decimals: bigint, + originChainId: bigint, + symbol: string + ]; + export interface OutputObject { + originAddress: string; + address_: string; + decimals: bigint; + originChainId: bigint; + symbol: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ZRC20TokenUpdatedEvent { + export type InputTuple = [address_: AddressLike, active: boolean]; + export type OutputTuple = [address_: string, active: boolean]; + export interface OutputObject { + address_: string; + active: boolean; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IBaseRegistry extends BaseContract { + connect(runner?: ContractRunner | null): IBaseRegistry; + waitForDeployment(): Promise; + + interface: IBaseRegistryInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + changeChainStatus: TypedContractMethod< + [ + chainId: BigNumberish, + gasZRC20: AddressLike, + registry: BytesLike, + activation: boolean + ], + [void], + "nonpayable" + >; + + getActiveChains: TypedContractMethod<[], [bigint[]], "view">; + + getAllChains: TypedContractMethod<[], [ChainInfoDTOStructOutput[]], "view">; + + getAllContracts: TypedContractMethod< + [], + [ContractInfoDTOStructOutput[]], + "view" + >; + + getAllZRC20Tokens: TypedContractMethod<[], [ZRC20InfoStructOutput[]], "view">; + + getChainInfo: TypedContractMethod< + [chainId: BigNumberish], + [[string, string] & { gasZRC20: string; registry: string }], + "view" + >; + + getChainMetadata: TypedContractMethod< + [chainId: BigNumberish, key: string], + [string], + "view" + >; + + getContractConfiguration: TypedContractMethod< + [chainId: BigNumberish, contractType: string, key: string], + [string], + "view" + >; + + getContractInfo: TypedContractMethod< + [chainId: BigNumberish, contractType: string], + [[boolean, string] & { active: boolean; addressBytes: string }], + "view" + >; + + getZRC20AddressByForeignAsset: TypedContractMethod< + [originChainId: BigNumberish, originAddress: BytesLike], + [string], + "view" + >; + + getZRC20TokenInfo: TypedContractMethod< + [address_: AddressLike], + [ + [boolean, string, bigint, string, string, bigint] & { + active: boolean; + symbol: string; + originChainId: bigint; + originAddress: string; + coinType: string; + decimals: bigint; + } + ], + "view" + >; + + registerContract: TypedContractMethod< + [chainId: BigNumberish, contractType: string, addressBytes: BytesLike], + [void], + "nonpayable" + >; + + registerZRC20Token: TypedContractMethod< + [ + address_: AddressLike, + symbol: string, + originChainId: BigNumberish, + originAddress: BytesLike, + coinType: string, + decimals: BigNumberish + ], + [void], + "nonpayable" + >; + + setContractActive: TypedContractMethod< + [chainId: BigNumberish, contractType: string, active: boolean], + [void], + "nonpayable" + >; + + setZRC20TokenActive: TypedContractMethod< + [address_: AddressLike, active: boolean], + [void], + "nonpayable" + >; + + updateChainMetadata: TypedContractMethod< + [chainId: BigNumberish, key: string, value: BytesLike], + [void], + "nonpayable" + >; + + updateContractConfiguration: TypedContractMethod< + [ + chainId: BigNumberish, + contractType: string, + key: string, + value: BytesLike + ], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "changeChainStatus" + ): TypedContractMethod< + [ + chainId: BigNumberish, + gasZRC20: AddressLike, + registry: BytesLike, + activation: boolean + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "getActiveChains" + ): TypedContractMethod<[], [bigint[]], "view">; + getFunction( + nameOrSignature: "getAllChains" + ): TypedContractMethod<[], [ChainInfoDTOStructOutput[]], "view">; + getFunction( + nameOrSignature: "getAllContracts" + ): TypedContractMethod<[], [ContractInfoDTOStructOutput[]], "view">; + getFunction( + nameOrSignature: "getAllZRC20Tokens" + ): TypedContractMethod<[], [ZRC20InfoStructOutput[]], "view">; + getFunction( + nameOrSignature: "getChainInfo" + ): TypedContractMethod< + [chainId: BigNumberish], + [[string, string] & { gasZRC20: string; registry: string }], + "view" + >; + getFunction( + nameOrSignature: "getChainMetadata" + ): TypedContractMethod< + [chainId: BigNumberish, key: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "getContractConfiguration" + ): TypedContractMethod< + [chainId: BigNumberish, contractType: string, key: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "getContractInfo" + ): TypedContractMethod< + [chainId: BigNumberish, contractType: string], + [[boolean, string] & { active: boolean; addressBytes: string }], + "view" + >; + getFunction( + nameOrSignature: "getZRC20AddressByForeignAsset" + ): TypedContractMethod< + [originChainId: BigNumberish, originAddress: BytesLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "getZRC20TokenInfo" + ): TypedContractMethod< + [address_: AddressLike], + [ + [boolean, string, bigint, string, string, bigint] & { + active: boolean; + symbol: string; + originChainId: bigint; + originAddress: string; + coinType: string; + decimals: bigint; + } + ], + "view" + >; + getFunction( + nameOrSignature: "registerContract" + ): TypedContractMethod< + [chainId: BigNumberish, contractType: string, addressBytes: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "registerZRC20Token" + ): TypedContractMethod< + [ + address_: AddressLike, + symbol: string, + originChainId: BigNumberish, + originAddress: BytesLike, + coinType: string, + decimals: BigNumberish + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setContractActive" + ): TypedContractMethod< + [chainId: BigNumberish, contractType: string, active: boolean], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setZRC20TokenActive" + ): TypedContractMethod< + [address_: AddressLike, active: boolean], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "updateChainMetadata" + ): TypedContractMethod< + [chainId: BigNumberish, key: string, value: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "updateContractConfiguration" + ): TypedContractMethod< + [ + chainId: BigNumberish, + contractType: string, + key: string, + value: BytesLike + ], + [void], + "nonpayable" + >; + + getEvent( + key: "AdminChanged" + ): TypedContractEvent< + AdminChangedEvent.InputTuple, + AdminChangedEvent.OutputTuple, + AdminChangedEvent.OutputObject + >; + getEvent( + key: "ChainMetadataUpdated" + ): TypedContractEvent< + ChainMetadataUpdatedEvent.InputTuple, + ChainMetadataUpdatedEvent.OutputTuple, + ChainMetadataUpdatedEvent.OutputObject + >; + getEvent( + key: "ChainStatusChanged" + ): TypedContractEvent< + ChainStatusChangedEvent.InputTuple, + ChainStatusChangedEvent.OutputTuple, + ChainStatusChangedEvent.OutputObject + >; + getEvent( + key: "ContractConfigurationUpdated" + ): TypedContractEvent< + ContractConfigurationUpdatedEvent.InputTuple, + ContractConfigurationUpdatedEvent.OutputTuple, + ContractConfigurationUpdatedEvent.OutputObject + >; + getEvent( + key: "ContractRegistered" + ): TypedContractEvent< + ContractRegisteredEvent.InputTuple, + ContractRegisteredEvent.OutputTuple, + ContractRegisteredEvent.OutputObject + >; + getEvent( + key: "ContractStatusChanged" + ): TypedContractEvent< + ContractStatusChangedEvent.InputTuple, + ContractStatusChangedEvent.OutputTuple, + ContractStatusChangedEvent.OutputObject + >; + getEvent( + key: "RegistryManagerChanged" + ): TypedContractEvent< + RegistryManagerChangedEvent.InputTuple, + RegistryManagerChangedEvent.OutputTuple, + RegistryManagerChangedEvent.OutputObject + >; + getEvent( + key: "ZRC20TokenRegistered" + ): TypedContractEvent< + ZRC20TokenRegisteredEvent.InputTuple, + ZRC20TokenRegisteredEvent.OutputTuple, + ZRC20TokenRegisteredEvent.OutputObject + >; + getEvent( + key: "ZRC20TokenUpdated" + ): TypedContractEvent< + ZRC20TokenUpdatedEvent.InputTuple, + ZRC20TokenUpdatedEvent.OutputTuple, + ZRC20TokenUpdatedEvent.OutputObject + >; + + filters: { + "AdminChanged(address,address)": TypedContractEvent< + AdminChangedEvent.InputTuple, + AdminChangedEvent.OutputTuple, + AdminChangedEvent.OutputObject + >; + AdminChanged: TypedContractEvent< + AdminChangedEvent.InputTuple, + AdminChangedEvent.OutputTuple, + AdminChangedEvent.OutputObject + >; + + "ChainMetadataUpdated(uint256,string,bytes)": TypedContractEvent< + ChainMetadataUpdatedEvent.InputTuple, + ChainMetadataUpdatedEvent.OutputTuple, + ChainMetadataUpdatedEvent.OutputObject + >; + ChainMetadataUpdated: TypedContractEvent< + ChainMetadataUpdatedEvent.InputTuple, + ChainMetadataUpdatedEvent.OutputTuple, + ChainMetadataUpdatedEvent.OutputObject + >; + + "ChainStatusChanged(uint256,bool)": TypedContractEvent< + ChainStatusChangedEvent.InputTuple, + ChainStatusChangedEvent.OutputTuple, + ChainStatusChangedEvent.OutputObject + >; + ChainStatusChanged: TypedContractEvent< + ChainStatusChangedEvent.InputTuple, + ChainStatusChangedEvent.OutputTuple, + ChainStatusChangedEvent.OutputObject + >; + + "ContractConfigurationUpdated(uint256,string,string,bytes)": TypedContractEvent< + ContractConfigurationUpdatedEvent.InputTuple, + ContractConfigurationUpdatedEvent.OutputTuple, + ContractConfigurationUpdatedEvent.OutputObject + >; + ContractConfigurationUpdated: TypedContractEvent< + ContractConfigurationUpdatedEvent.InputTuple, + ContractConfigurationUpdatedEvent.OutputTuple, + ContractConfigurationUpdatedEvent.OutputObject + >; + + "ContractRegistered(uint256,string,bytes)": TypedContractEvent< + ContractRegisteredEvent.InputTuple, + ContractRegisteredEvent.OutputTuple, + ContractRegisteredEvent.OutputObject + >; + ContractRegistered: TypedContractEvent< + ContractRegisteredEvent.InputTuple, + ContractRegisteredEvent.OutputTuple, + ContractRegisteredEvent.OutputObject + >; + + "ContractStatusChanged(bytes)": TypedContractEvent< + ContractStatusChangedEvent.InputTuple, + ContractStatusChangedEvent.OutputTuple, + ContractStatusChangedEvent.OutputObject + >; + ContractStatusChanged: TypedContractEvent< + ContractStatusChangedEvent.InputTuple, + ContractStatusChangedEvent.OutputTuple, + ContractStatusChangedEvent.OutputObject + >; + + "RegistryManagerChanged(address,address)": TypedContractEvent< + RegistryManagerChangedEvent.InputTuple, + RegistryManagerChangedEvent.OutputTuple, + RegistryManagerChangedEvent.OutputObject + >; + RegistryManagerChanged: TypedContractEvent< + RegistryManagerChangedEvent.InputTuple, + RegistryManagerChangedEvent.OutputTuple, + RegistryManagerChangedEvent.OutputObject + >; + + "ZRC20TokenRegistered(bytes,address,uint8,uint256,string)": TypedContractEvent< + ZRC20TokenRegisteredEvent.InputTuple, + ZRC20TokenRegisteredEvent.OutputTuple, + ZRC20TokenRegisteredEvent.OutputObject + >; + ZRC20TokenRegistered: TypedContractEvent< + ZRC20TokenRegisteredEvent.InputTuple, + ZRC20TokenRegisteredEvent.OutputTuple, + ZRC20TokenRegisteredEvent.OutputObject + >; + + "ZRC20TokenUpdated(address,bool)": TypedContractEvent< + ZRC20TokenUpdatedEvent.InputTuple, + ZRC20TokenUpdatedEvent.OutputTuple, + ZRC20TokenUpdatedEvent.OutputObject + >; + ZRC20TokenUpdated: TypedContractEvent< + ZRC20TokenUpdatedEvent.InputTuple, + ZRC20TokenUpdatedEvent.OutputTuple, + ZRC20TokenUpdatedEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/IBaseRegistryErrors.ts b/typechain-types/@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/IBaseRegistryErrors.ts new file mode 100644 index 00000000..d06efa06 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/IBaseRegistryErrors.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../../../../../../common"; + +export interface IBaseRegistryErrorsInterface extends Interface {} + +export interface IBaseRegistryErrors extends BaseContract { + connect(runner?: ContractRunner | null): IBaseRegistryErrors; + waitForDeployment(): Promise; + + interface: IBaseRegistryErrorsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/IBaseRegistryEvents.ts b/typechain-types/@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/IBaseRegistryEvents.ts new file mode 100644 index 00000000..a784b0db --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/IBaseRegistryEvents.ts @@ -0,0 +1,413 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, +} from "../../../../../../common"; + +export interface IBaseRegistryEventsInterface extends Interface { + getEvent( + nameOrSignatureOrTopic: + | "AdminChanged" + | "ChainMetadataUpdated" + | "ChainStatusChanged" + | "ContractConfigurationUpdated" + | "ContractRegistered" + | "ContractStatusChanged" + | "RegistryManagerChanged" + | "ZRC20TokenRegistered" + | "ZRC20TokenUpdated" + ): EventFragment; +} + +export namespace AdminChangedEvent { + export type InputTuple = [oldAdmin: AddressLike, newAdmin: AddressLike]; + export type OutputTuple = [oldAdmin: string, newAdmin: string]; + export interface OutputObject { + oldAdmin: string; + newAdmin: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ChainMetadataUpdatedEvent { + export type InputTuple = [ + chainId: BigNumberish, + key: string, + value: BytesLike + ]; + export type OutputTuple = [chainId: bigint, key: string, value: string]; + export interface OutputObject { + chainId: bigint; + key: string; + value: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ChainStatusChangedEvent { + export type InputTuple = [chainId: BigNumberish, newStatus: boolean]; + export type OutputTuple = [chainId: bigint, newStatus: boolean]; + export interface OutputObject { + chainId: bigint; + newStatus: boolean; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ContractConfigurationUpdatedEvent { + export type InputTuple = [ + chainId: BigNumberish, + contractType: string, + key: string, + value: BytesLike + ]; + export type OutputTuple = [ + chainId: bigint, + contractType: string, + key: string, + value: string + ]; + export interface OutputObject { + chainId: bigint; + contractType: string; + key: string; + value: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ContractRegisteredEvent { + export type InputTuple = [ + chainId: BigNumberish, + contractType: string, + addressBytes: BytesLike + ]; + export type OutputTuple = [ + chainId: bigint, + contractType: string, + addressBytes: string + ]; + export interface OutputObject { + chainId: bigint; + contractType: string; + addressBytes: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ContractStatusChangedEvent { + export type InputTuple = [addressBytes: BytesLike]; + export type OutputTuple = [addressBytes: string]; + export interface OutputObject { + addressBytes: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RegistryManagerChangedEvent { + export type InputTuple = [ + oldRegistryManager: AddressLike, + newRegistryManager: AddressLike + ]; + export type OutputTuple = [ + oldRegistryManager: string, + newRegistryManager: string + ]; + export interface OutputObject { + oldRegistryManager: string; + newRegistryManager: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ZRC20TokenRegisteredEvent { + export type InputTuple = [ + originAddress: BytesLike, + address_: AddressLike, + decimals: BigNumberish, + originChainId: BigNumberish, + symbol: string + ]; + export type OutputTuple = [ + originAddress: string, + address_: string, + decimals: bigint, + originChainId: bigint, + symbol: string + ]; + export interface OutputObject { + originAddress: string; + address_: string; + decimals: bigint; + originChainId: bigint; + symbol: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ZRC20TokenUpdatedEvent { + export type InputTuple = [address_: AddressLike, active: boolean]; + export type OutputTuple = [address_: string, active: boolean]; + export interface OutputObject { + address_: string; + active: boolean; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IBaseRegistryEvents extends BaseContract { + connect(runner?: ContractRunner | null): IBaseRegistryEvents; + waitForDeployment(): Promise; + + interface: IBaseRegistryEventsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + getEvent( + key: "AdminChanged" + ): TypedContractEvent< + AdminChangedEvent.InputTuple, + AdminChangedEvent.OutputTuple, + AdminChangedEvent.OutputObject + >; + getEvent( + key: "ChainMetadataUpdated" + ): TypedContractEvent< + ChainMetadataUpdatedEvent.InputTuple, + ChainMetadataUpdatedEvent.OutputTuple, + ChainMetadataUpdatedEvent.OutputObject + >; + getEvent( + key: "ChainStatusChanged" + ): TypedContractEvent< + ChainStatusChangedEvent.InputTuple, + ChainStatusChangedEvent.OutputTuple, + ChainStatusChangedEvent.OutputObject + >; + getEvent( + key: "ContractConfigurationUpdated" + ): TypedContractEvent< + ContractConfigurationUpdatedEvent.InputTuple, + ContractConfigurationUpdatedEvent.OutputTuple, + ContractConfigurationUpdatedEvent.OutputObject + >; + getEvent( + key: "ContractRegistered" + ): TypedContractEvent< + ContractRegisteredEvent.InputTuple, + ContractRegisteredEvent.OutputTuple, + ContractRegisteredEvent.OutputObject + >; + getEvent( + key: "ContractStatusChanged" + ): TypedContractEvent< + ContractStatusChangedEvent.InputTuple, + ContractStatusChangedEvent.OutputTuple, + ContractStatusChangedEvent.OutputObject + >; + getEvent( + key: "RegistryManagerChanged" + ): TypedContractEvent< + RegistryManagerChangedEvent.InputTuple, + RegistryManagerChangedEvent.OutputTuple, + RegistryManagerChangedEvent.OutputObject + >; + getEvent( + key: "ZRC20TokenRegistered" + ): TypedContractEvent< + ZRC20TokenRegisteredEvent.InputTuple, + ZRC20TokenRegisteredEvent.OutputTuple, + ZRC20TokenRegisteredEvent.OutputObject + >; + getEvent( + key: "ZRC20TokenUpdated" + ): TypedContractEvent< + ZRC20TokenUpdatedEvent.InputTuple, + ZRC20TokenUpdatedEvent.OutputTuple, + ZRC20TokenUpdatedEvent.OutputObject + >; + + filters: { + "AdminChanged(address,address)": TypedContractEvent< + AdminChangedEvent.InputTuple, + AdminChangedEvent.OutputTuple, + AdminChangedEvent.OutputObject + >; + AdminChanged: TypedContractEvent< + AdminChangedEvent.InputTuple, + AdminChangedEvent.OutputTuple, + AdminChangedEvent.OutputObject + >; + + "ChainMetadataUpdated(uint256,string,bytes)": TypedContractEvent< + ChainMetadataUpdatedEvent.InputTuple, + ChainMetadataUpdatedEvent.OutputTuple, + ChainMetadataUpdatedEvent.OutputObject + >; + ChainMetadataUpdated: TypedContractEvent< + ChainMetadataUpdatedEvent.InputTuple, + ChainMetadataUpdatedEvent.OutputTuple, + ChainMetadataUpdatedEvent.OutputObject + >; + + "ChainStatusChanged(uint256,bool)": TypedContractEvent< + ChainStatusChangedEvent.InputTuple, + ChainStatusChangedEvent.OutputTuple, + ChainStatusChangedEvent.OutputObject + >; + ChainStatusChanged: TypedContractEvent< + ChainStatusChangedEvent.InputTuple, + ChainStatusChangedEvent.OutputTuple, + ChainStatusChangedEvent.OutputObject + >; + + "ContractConfigurationUpdated(uint256,string,string,bytes)": TypedContractEvent< + ContractConfigurationUpdatedEvent.InputTuple, + ContractConfigurationUpdatedEvent.OutputTuple, + ContractConfigurationUpdatedEvent.OutputObject + >; + ContractConfigurationUpdated: TypedContractEvent< + ContractConfigurationUpdatedEvent.InputTuple, + ContractConfigurationUpdatedEvent.OutputTuple, + ContractConfigurationUpdatedEvent.OutputObject + >; + + "ContractRegistered(uint256,string,bytes)": TypedContractEvent< + ContractRegisteredEvent.InputTuple, + ContractRegisteredEvent.OutputTuple, + ContractRegisteredEvent.OutputObject + >; + ContractRegistered: TypedContractEvent< + ContractRegisteredEvent.InputTuple, + ContractRegisteredEvent.OutputTuple, + ContractRegisteredEvent.OutputObject + >; + + "ContractStatusChanged(bytes)": TypedContractEvent< + ContractStatusChangedEvent.InputTuple, + ContractStatusChangedEvent.OutputTuple, + ContractStatusChangedEvent.OutputObject + >; + ContractStatusChanged: TypedContractEvent< + ContractStatusChangedEvent.InputTuple, + ContractStatusChangedEvent.OutputTuple, + ContractStatusChangedEvent.OutputObject + >; + + "RegistryManagerChanged(address,address)": TypedContractEvent< + RegistryManagerChangedEvent.InputTuple, + RegistryManagerChangedEvent.OutputTuple, + RegistryManagerChangedEvent.OutputObject + >; + RegistryManagerChanged: TypedContractEvent< + RegistryManagerChangedEvent.InputTuple, + RegistryManagerChangedEvent.OutputTuple, + RegistryManagerChangedEvent.OutputObject + >; + + "ZRC20TokenRegistered(bytes,address,uint8,uint256,string)": TypedContractEvent< + ZRC20TokenRegisteredEvent.InputTuple, + ZRC20TokenRegisteredEvent.OutputTuple, + ZRC20TokenRegisteredEvent.OutputObject + >; + ZRC20TokenRegistered: TypedContractEvent< + ZRC20TokenRegisteredEvent.InputTuple, + ZRC20TokenRegisteredEvent.OutputTuple, + ZRC20TokenRegisteredEvent.OutputObject + >; + + "ZRC20TokenUpdated(address,bool)": TypedContractEvent< + ZRC20TokenUpdatedEvent.InputTuple, + ZRC20TokenUpdatedEvent.OutputTuple, + ZRC20TokenUpdatedEvent.OutputObject + >; + ZRC20TokenUpdated: TypedContractEvent< + ZRC20TokenUpdatedEvent.InputTuple, + ZRC20TokenUpdatedEvent.OutputTuple, + ZRC20TokenUpdatedEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/index.ts new file mode 100644 index 00000000..21436263 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IBaseRegistry } from "./IBaseRegistry"; +export type { IBaseRegistryErrors } from "./IBaseRegistryErrors"; +export type { IBaseRegistryEvents } from "./IBaseRegistryEvents"; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/helpers/interfaces/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/helpers/interfaces/index.ts new file mode 100644 index 00000000..dae2d1fc --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/helpers/interfaces/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as iBaseRegistrySol from "./IBaseRegistry.sol"; +export type { iBaseRegistrySol }; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/index.ts index 4c40819e..2962210e 100644 --- a/typechain-types/@zetachain/protocol-contracts/contracts/index.ts +++ b/typechain-types/@zetachain/protocol-contracts/contracts/index.ts @@ -7,5 +7,7 @@ import type * as revertSol from "./Revert.sol"; export type { revertSol }; import type * as evm from "./evm"; export type { evm }; +import type * as helpers from "./helpers"; +export type { helpers }; import type * as zevm from "./zevm"; export type { zevm }; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/GatewayZEVM.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/GatewayZEVM.ts index ce43c203..3ce88a49 100644 --- a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/GatewayZEVM.ts +++ b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/GatewayZEVM.ts @@ -110,18 +110,23 @@ export interface GatewayZEVMInterface extends Interface { getFunction( nameOrSignature: | "DEFAULT_ADMIN_ROLE" - | "MAX_MESSAGE_SIZE" | "PAUSER_ROLE" | "PROTOCOL_ADDRESS" + | "REGISTRY" | "UPGRADE_INTERFACE_VERSION" | "call" - | "deposit" - | "depositAndCall((bytes,address,uint256),uint256,address,bytes)" + | "deposit(address)" + | "deposit(address,uint256,address)" + | "depositAndCall((bytes,address,uint256),address,bytes)" | "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)" - | "depositAndRevert" + | "depositAndRevert(address,uint256,address,(address,address,uint256,bytes))" + | "depositAndRevert(address,(address,address,uint256,bytes))" | "execute" | "executeAbort" | "executeRevert" + | "getMaxMessageSize" + | "getMaxRevertGasLimit" + | "getMinGasLimit" | "getRoleAdmin" | "grantRole" | "hasRole" @@ -159,10 +164,6 @@ export interface GatewayZEVMInterface extends Interface { functionFragment: "DEFAULT_ADMIN_ROLE", values?: undefined ): string; - encodeFunctionData( - functionFragment: "MAX_MESSAGE_SIZE", - values?: undefined - ): string; encodeFunctionData( functionFragment: "PAUSER_ROLE", values?: undefined @@ -171,6 +172,7 @@ export interface GatewayZEVMInterface extends Interface { functionFragment: "PROTOCOL_ADDRESS", values?: undefined ): string; + encodeFunctionData(functionFragment: "REGISTRY", values?: undefined): string; encodeFunctionData( functionFragment: "UPGRADE_INTERFACE_VERSION", values?: undefined @@ -186,12 +188,16 @@ export interface GatewayZEVMInterface extends Interface { ] ): string; encodeFunctionData( - functionFragment: "deposit", + functionFragment: "deposit(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "deposit(address,uint256,address)", values: [AddressLike, BigNumberish, AddressLike] ): string; encodeFunctionData( - functionFragment: "depositAndCall((bytes,address,uint256),uint256,address,bytes)", - values: [MessageContextStruct, BigNumberish, AddressLike, BytesLike] + functionFragment: "depositAndCall((bytes,address,uint256),address,bytes)", + values: [MessageContextStruct, AddressLike, BytesLike] ): string; encodeFunctionData( functionFragment: "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)", @@ -204,9 +210,13 @@ export interface GatewayZEVMInterface extends Interface { ] ): string; encodeFunctionData( - functionFragment: "depositAndRevert", + functionFragment: "depositAndRevert(address,uint256,address,(address,address,uint256,bytes))", values: [AddressLike, BigNumberish, AddressLike, RevertContextStruct] ): string; + encodeFunctionData( + functionFragment: "depositAndRevert(address,(address,address,uint256,bytes))", + values: [AddressLike, RevertContextStruct] + ): string; encodeFunctionData( functionFragment: "execute", values: [ @@ -225,6 +235,18 @@ export interface GatewayZEVMInterface extends Interface { functionFragment: "executeRevert", values: [AddressLike, RevertContextStruct] ): string; + encodeFunctionData( + functionFragment: "getMaxMessageSize", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getMaxRevertGasLimit", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getMinGasLimit", + values?: undefined + ): string; encodeFunctionData( functionFragment: "getRoleAdmin", values: [BytesLike] @@ -300,10 +322,6 @@ export interface GatewayZEVMInterface extends Interface { functionFragment: "DEFAULT_ADMIN_ROLE", data: BytesLike ): Result; - decodeFunctionResult( - functionFragment: "MAX_MESSAGE_SIZE", - data: BytesLike - ): Result; decodeFunctionResult( functionFragment: "PAUSER_ROLE", data: BytesLike @@ -312,14 +330,22 @@ export interface GatewayZEVMInterface extends Interface { functionFragment: "PROTOCOL_ADDRESS", data: BytesLike ): Result; + decodeFunctionResult(functionFragment: "REGISTRY", data: BytesLike): Result; decodeFunctionResult( functionFragment: "UPGRADE_INTERFACE_VERSION", data: BytesLike ): Result; decodeFunctionResult(functionFragment: "call", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; decodeFunctionResult( - functionFragment: "depositAndCall((bytes,address,uint256),uint256,address,bytes)", + functionFragment: "deposit(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deposit(address,uint256,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "depositAndCall((bytes,address,uint256),address,bytes)", data: BytesLike ): Result; decodeFunctionResult( @@ -327,7 +353,11 @@ export interface GatewayZEVMInterface extends Interface { data: BytesLike ): Result; decodeFunctionResult( - functionFragment: "depositAndRevert", + functionFragment: "depositAndRevert(address,uint256,address,(address,address,uint256,bytes))", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "depositAndRevert(address,(address,address,uint256,bytes))", data: BytesLike ): Result; decodeFunctionResult(functionFragment: "execute", data: BytesLike): Result; @@ -339,6 +369,18 @@ export interface GatewayZEVMInterface extends Interface { functionFragment: "executeRevert", data: BytesLike ): Result; + decodeFunctionResult( + functionFragment: "getMaxMessageSize", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getMaxRevertGasLimit", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getMinGasLimit", + data: BytesLike + ): Result; decodeFunctionResult( functionFragment: "getRoleAdmin", data: BytesLike @@ -653,12 +695,12 @@ export interface GatewayZEVM extends BaseContract { DEFAULT_ADMIN_ROLE: TypedContractMethod<[], [string], "view">; - MAX_MESSAGE_SIZE: TypedContractMethod<[], [bigint], "view">; - PAUSER_ROLE: TypedContractMethod<[], [string], "view">; PROTOCOL_ADDRESS: TypedContractMethod<[], [string], "view">; + REGISTRY: TypedContractMethod<[], [string], "view">; + UPGRADE_INTERFACE_VERSION: TypedContractMethod<[], [string], "view">; call: TypedContractMethod< @@ -673,21 +715,22 @@ export interface GatewayZEVM extends BaseContract { "nonpayable" >; - deposit: TypedContractMethod< + "deposit(address)": TypedContractMethod< + [target: AddressLike], + [void], + "payable" + >; + + "deposit(address,uint256,address)": TypedContractMethod< [zrc20: AddressLike, amount: BigNumberish, target: AddressLike], [void], "nonpayable" >; - "depositAndCall((bytes,address,uint256),uint256,address,bytes)": TypedContractMethod< - [ - context: MessageContextStruct, - amount: BigNumberish, - target: AddressLike, - message: BytesLike - ], + "depositAndCall((bytes,address,uint256),address,bytes)": TypedContractMethod< + [context: MessageContextStruct, target: AddressLike, message: BytesLike], [void], - "nonpayable" + "payable" >; "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)": TypedContractMethod< @@ -702,7 +745,7 @@ export interface GatewayZEVM extends BaseContract { "nonpayable" >; - depositAndRevert: TypedContractMethod< + "depositAndRevert(address,uint256,address,(address,address,uint256,bytes))": TypedContractMethod< [ zrc20: AddressLike, amount: BigNumberish, @@ -713,6 +756,12 @@ export interface GatewayZEVM extends BaseContract { "nonpayable" >; + "depositAndRevert(address,(address,address,uint256,bytes))": TypedContractMethod< + [target: AddressLike, revertContext: RevertContextStruct], + [void], + "payable" + >; + execute: TypedContractMethod< [ context: MessageContextStruct, @@ -737,6 +786,12 @@ export interface GatewayZEVM extends BaseContract { "nonpayable" >; + getMaxMessageSize: TypedContractMethod<[], [bigint], "view">; + + getMaxRevertGasLimit: TypedContractMethod<[], [bigint], "view">; + + getMinGasLimit: TypedContractMethod<[], [bigint], "view">; + getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">; grantRole: TypedContractMethod< @@ -802,26 +857,26 @@ export interface GatewayZEVM extends BaseContract { "withdraw(bytes,uint256,uint256,(address,bool,address,bytes,uint256))": TypedContractMethod< [ - arg0: BytesLike, - arg1: BigNumberish, - arg2: BigNumberish, - arg3: RevertOptionsStruct + receiver: BytesLike, + amount: BigNumberish, + chainId: BigNumberish, + revertOptions: RevertOptionsStruct ], [void], - "view" + "nonpayable" >; "withdrawAndCall(bytes,uint256,uint256,bytes,(uint256,bool),(address,bool,address,bytes,uint256))": TypedContractMethod< [ - arg0: BytesLike, - arg1: BigNumberish, - arg2: BigNumberish, - arg3: BytesLike, - arg4: CallOptionsStruct, - arg5: RevertOptionsStruct + receiver: BytesLike, + amount: BigNumberish, + chainId: BigNumberish, + message: BytesLike, + callOptions: CallOptionsStruct, + revertOptions: RevertOptionsStruct ], [void], - "view" + "nonpayable" >; "withdrawAndCall(bytes,uint256,address,bytes,(uint256,bool),(address,bool,address,bytes,uint256))": TypedContractMethod< @@ -846,15 +901,15 @@ export interface GatewayZEVM extends BaseContract { getFunction( nameOrSignature: "DEFAULT_ADMIN_ROLE" ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "MAX_MESSAGE_SIZE" - ): TypedContractMethod<[], [bigint], "view">; getFunction( nameOrSignature: "PAUSER_ROLE" ): TypedContractMethod<[], [string], "view">; getFunction( nameOrSignature: "PROTOCOL_ADDRESS" ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "REGISTRY" + ): TypedContractMethod<[], [string], "view">; getFunction( nameOrSignature: "UPGRADE_INTERFACE_VERSION" ): TypedContractMethod<[], [string], "view">; @@ -872,23 +927,21 @@ export interface GatewayZEVM extends BaseContract { "nonpayable" >; getFunction( - nameOrSignature: "deposit" + nameOrSignature: "deposit(address)" + ): TypedContractMethod<[target: AddressLike], [void], "payable">; + getFunction( + nameOrSignature: "deposit(address,uint256,address)" ): TypedContractMethod< [zrc20: AddressLike, amount: BigNumberish, target: AddressLike], [void], "nonpayable" >; getFunction( - nameOrSignature: "depositAndCall((bytes,address,uint256),uint256,address,bytes)" + nameOrSignature: "depositAndCall((bytes,address,uint256),address,bytes)" ): TypedContractMethod< - [ - context: MessageContextStruct, - amount: BigNumberish, - target: AddressLike, - message: BytesLike - ], + [context: MessageContextStruct, target: AddressLike, message: BytesLike], [void], - "nonpayable" + "payable" >; getFunction( nameOrSignature: "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)" @@ -904,7 +957,7 @@ export interface GatewayZEVM extends BaseContract { "nonpayable" >; getFunction( - nameOrSignature: "depositAndRevert" + nameOrSignature: "depositAndRevert(address,uint256,address,(address,address,uint256,bytes))" ): TypedContractMethod< [ zrc20: AddressLike, @@ -915,6 +968,13 @@ export interface GatewayZEVM extends BaseContract { [void], "nonpayable" >; + getFunction( + nameOrSignature: "depositAndRevert(address,(address,address,uint256,bytes))" + ): TypedContractMethod< + [target: AddressLike, revertContext: RevertContextStruct], + [void], + "payable" + >; getFunction( nameOrSignature: "execute" ): TypedContractMethod< @@ -942,6 +1002,15 @@ export interface GatewayZEVM extends BaseContract { [void], "nonpayable" >; + getFunction( + nameOrSignature: "getMaxMessageSize" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "getMaxRevertGasLimit" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "getMinGasLimit" + ): TypedContractMethod<[], [bigint], "view">; getFunction( nameOrSignature: "getRoleAdmin" ): TypedContractMethod<[role: BytesLike], [string], "view">; @@ -1018,27 +1087,27 @@ export interface GatewayZEVM extends BaseContract { nameOrSignature: "withdraw(bytes,uint256,uint256,(address,bool,address,bytes,uint256))" ): TypedContractMethod< [ - arg0: BytesLike, - arg1: BigNumberish, - arg2: BigNumberish, - arg3: RevertOptionsStruct + receiver: BytesLike, + amount: BigNumberish, + chainId: BigNumberish, + revertOptions: RevertOptionsStruct ], [void], - "view" + "nonpayable" >; getFunction( nameOrSignature: "withdrawAndCall(bytes,uint256,uint256,bytes,(uint256,bool),(address,bool,address,bytes,uint256))" ): TypedContractMethod< [ - arg0: BytesLike, - arg1: BigNumberish, - arg2: BigNumberish, - arg3: BytesLike, - arg4: CallOptionsStruct, - arg5: RevertOptionsStruct + receiver: BytesLike, + amount: BigNumberish, + chainId: BigNumberish, + message: BytesLike, + callOptions: CallOptionsStruct, + revertOptions: RevertOptionsStruct ], [void], - "view" + "nonpayable" >; getFunction( nameOrSignature: "withdrawAndCall(bytes,uint256,address,bytes,(uint256,bool),(address,bool,address,bytes,uint256))" diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/index.ts index 007d930b..cb19cb2a 100644 --- a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/index.ts +++ b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/index.ts @@ -9,4 +9,6 @@ import type * as zrc20Sol from "./ZRC20.sol"; export type { zrc20Sol }; import type * as interfaces from "./interfaces"; export type { interfaces }; +import type * as libraries from "./libraries"; +export type { libraries }; export type { GatewayZEVM } from "./GatewayZEVM"; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/ICoreRegistry.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/ICoreRegistry.ts new file mode 100644 index 00000000..4b803c4e --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/ICoreRegistry.ts @@ -0,0 +1,895 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../../../common"; + +export type ChainInfoDTOStruct = { + active: boolean; + chainId: BigNumberish; + gasZRC20: AddressLike; + registry: BytesLike; +}; + +export type ChainInfoDTOStructOutput = [ + active: boolean, + chainId: bigint, + gasZRC20: string, + registry: string +] & { active: boolean; chainId: bigint; gasZRC20: string; registry: string }; + +export type ContractInfoDTOStruct = { + active: boolean; + addressBytes: BytesLike; + contractType: string; + chainId: BigNumberish; +}; + +export type ContractInfoDTOStructOutput = [ + active: boolean, + addressBytes: string, + contractType: string, + chainId: bigint +] & { + active: boolean; + addressBytes: string; + contractType: string; + chainId: bigint; +}; + +export type ZRC20InfoStruct = { + active: boolean; + address_: AddressLike; + originAddress: BytesLike; + originChainId: BigNumberish; + symbol: string; + coinType: string; + decimals: BigNumberish; +}; + +export type ZRC20InfoStructOutput = [ + active: boolean, + address_: string, + originAddress: string, + originChainId: bigint, + symbol: string, + coinType: string, + decimals: bigint +] & { + active: boolean; + address_: string; + originAddress: string; + originChainId: bigint; + symbol: string; + coinType: string; + decimals: bigint; +}; + +export interface ICoreRegistryInterface extends Interface { + getFunction( + nameOrSignature: + | "changeChainStatus" + | "gatewayZEVM" + | "getActiveChains" + | "getAllChains" + | "getAllContracts" + | "getAllZRC20Tokens" + | "getChainInfo" + | "getChainMetadata" + | "getContractConfiguration" + | "getContractInfo" + | "getZRC20AddressByForeignAsset" + | "getZRC20TokenInfo" + | "registerContract" + | "registerZRC20Token" + | "setContractActive" + | "setZRC20TokenActive" + | "updateChainMetadata" + | "updateContractConfiguration" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "AdminChanged" + | "ChainMetadataUpdated" + | "ChainStatusChanged" + | "ContractConfigurationUpdated" + | "ContractRegistered" + | "ContractStatusChanged" + | "RegistryManagerChanged" + | "ZRC20TokenRegistered" + | "ZRC20TokenUpdated" + ): EventFragment; + + encodeFunctionData( + functionFragment: "changeChainStatus", + values: [BigNumberish, AddressLike, BytesLike, boolean] + ): string; + encodeFunctionData( + functionFragment: "gatewayZEVM", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getActiveChains", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getAllChains", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getAllContracts", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getAllZRC20Tokens", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getChainInfo", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getChainMetadata", + values: [BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "getContractConfiguration", + values: [BigNumberish, string, string] + ): string; + encodeFunctionData( + functionFragment: "getContractInfo", + values: [BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "getZRC20AddressByForeignAsset", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "getZRC20TokenInfo", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "registerContract", + values: [BigNumberish, string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "registerZRC20Token", + values: [AddressLike, string, BigNumberish, BytesLike, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "setContractActive", + values: [BigNumberish, string, boolean] + ): string; + encodeFunctionData( + functionFragment: "setZRC20TokenActive", + values: [AddressLike, boolean] + ): string; + encodeFunctionData( + functionFragment: "updateChainMetadata", + values: [BigNumberish, string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "updateContractConfiguration", + values: [BigNumberish, string, string, BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "changeChainStatus", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "gatewayZEVM", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getActiveChains", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getAllChains", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getAllContracts", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getAllZRC20Tokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getChainInfo", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getChainMetadata", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getContractConfiguration", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getContractInfo", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getZRC20AddressByForeignAsset", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getZRC20TokenInfo", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "registerContract", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "registerZRC20Token", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setContractActive", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setZRC20TokenActive", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "updateChainMetadata", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "updateContractConfiguration", + data: BytesLike + ): Result; +} + +export namespace AdminChangedEvent { + export type InputTuple = [oldAdmin: AddressLike, newAdmin: AddressLike]; + export type OutputTuple = [oldAdmin: string, newAdmin: string]; + export interface OutputObject { + oldAdmin: string; + newAdmin: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ChainMetadataUpdatedEvent { + export type InputTuple = [ + chainId: BigNumberish, + key: string, + value: BytesLike + ]; + export type OutputTuple = [chainId: bigint, key: string, value: string]; + export interface OutputObject { + chainId: bigint; + key: string; + value: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ChainStatusChangedEvent { + export type InputTuple = [chainId: BigNumberish, newStatus: boolean]; + export type OutputTuple = [chainId: bigint, newStatus: boolean]; + export interface OutputObject { + chainId: bigint; + newStatus: boolean; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ContractConfigurationUpdatedEvent { + export type InputTuple = [ + chainId: BigNumberish, + contractType: string, + key: string, + value: BytesLike + ]; + export type OutputTuple = [ + chainId: bigint, + contractType: string, + key: string, + value: string + ]; + export interface OutputObject { + chainId: bigint; + contractType: string; + key: string; + value: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ContractRegisteredEvent { + export type InputTuple = [ + chainId: BigNumberish, + contractType: string, + addressBytes: BytesLike + ]; + export type OutputTuple = [ + chainId: bigint, + contractType: string, + addressBytes: string + ]; + export interface OutputObject { + chainId: bigint; + contractType: string; + addressBytes: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ContractStatusChangedEvent { + export type InputTuple = [addressBytes: BytesLike]; + export type OutputTuple = [addressBytes: string]; + export interface OutputObject { + addressBytes: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RegistryManagerChangedEvent { + export type InputTuple = [ + oldRegistryManager: AddressLike, + newRegistryManager: AddressLike + ]; + export type OutputTuple = [ + oldRegistryManager: string, + newRegistryManager: string + ]; + export interface OutputObject { + oldRegistryManager: string; + newRegistryManager: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ZRC20TokenRegisteredEvent { + export type InputTuple = [ + originAddress: BytesLike, + address_: AddressLike, + decimals: BigNumberish, + originChainId: BigNumberish, + symbol: string + ]; + export type OutputTuple = [ + originAddress: string, + address_: string, + decimals: bigint, + originChainId: bigint, + symbol: string + ]; + export interface OutputObject { + originAddress: string; + address_: string; + decimals: bigint; + originChainId: bigint; + symbol: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ZRC20TokenUpdatedEvent { + export type InputTuple = [address_: AddressLike, active: boolean]; + export type OutputTuple = [address_: string, active: boolean]; + export interface OutputObject { + address_: string; + active: boolean; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ICoreRegistry extends BaseContract { + connect(runner?: ContractRunner | null): ICoreRegistry; + waitForDeployment(): Promise; + + interface: ICoreRegistryInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + changeChainStatus: TypedContractMethod< + [ + chainId: BigNumberish, + gasZRC20: AddressLike, + registry: BytesLike, + activation: boolean + ], + [void], + "nonpayable" + >; + + gatewayZEVM: TypedContractMethod<[], [string], "nonpayable">; + + getActiveChains: TypedContractMethod<[], [bigint[]], "view">; + + getAllChains: TypedContractMethod<[], [ChainInfoDTOStructOutput[]], "view">; + + getAllContracts: TypedContractMethod< + [], + [ContractInfoDTOStructOutput[]], + "view" + >; + + getAllZRC20Tokens: TypedContractMethod<[], [ZRC20InfoStructOutput[]], "view">; + + getChainInfo: TypedContractMethod< + [chainId: BigNumberish], + [[string, string] & { gasZRC20: string; registry: string }], + "view" + >; + + getChainMetadata: TypedContractMethod< + [chainId: BigNumberish, key: string], + [string], + "view" + >; + + getContractConfiguration: TypedContractMethod< + [chainId: BigNumberish, contractType: string, key: string], + [string], + "view" + >; + + getContractInfo: TypedContractMethod< + [chainId: BigNumberish, contractType: string], + [[boolean, string] & { active: boolean; addressBytes: string }], + "view" + >; + + getZRC20AddressByForeignAsset: TypedContractMethod< + [originChainId: BigNumberish, originAddress: BytesLike], + [string], + "view" + >; + + getZRC20TokenInfo: TypedContractMethod< + [address_: AddressLike], + [ + [boolean, string, bigint, string, string, bigint] & { + active: boolean; + symbol: string; + originChainId: bigint; + originAddress: string; + coinType: string; + decimals: bigint; + } + ], + "view" + >; + + registerContract: TypedContractMethod< + [chainId: BigNumberish, contractType: string, addressBytes: BytesLike], + [void], + "nonpayable" + >; + + registerZRC20Token: TypedContractMethod< + [ + address_: AddressLike, + symbol: string, + originChainId: BigNumberish, + originAddress: BytesLike, + coinType: string, + decimals: BigNumberish + ], + [void], + "nonpayable" + >; + + setContractActive: TypedContractMethod< + [chainId: BigNumberish, contractType: string, active: boolean], + [void], + "nonpayable" + >; + + setZRC20TokenActive: TypedContractMethod< + [address_: AddressLike, active: boolean], + [void], + "nonpayable" + >; + + updateChainMetadata: TypedContractMethod< + [chainId: BigNumberish, key: string, value: BytesLike], + [void], + "nonpayable" + >; + + updateContractConfiguration: TypedContractMethod< + [ + chainId: BigNumberish, + contractType: string, + key: string, + value: BytesLike + ], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "changeChainStatus" + ): TypedContractMethod< + [ + chainId: BigNumberish, + gasZRC20: AddressLike, + registry: BytesLike, + activation: boolean + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "gatewayZEVM" + ): TypedContractMethod<[], [string], "nonpayable">; + getFunction( + nameOrSignature: "getActiveChains" + ): TypedContractMethod<[], [bigint[]], "view">; + getFunction( + nameOrSignature: "getAllChains" + ): TypedContractMethod<[], [ChainInfoDTOStructOutput[]], "view">; + getFunction( + nameOrSignature: "getAllContracts" + ): TypedContractMethod<[], [ContractInfoDTOStructOutput[]], "view">; + getFunction( + nameOrSignature: "getAllZRC20Tokens" + ): TypedContractMethod<[], [ZRC20InfoStructOutput[]], "view">; + getFunction( + nameOrSignature: "getChainInfo" + ): TypedContractMethod< + [chainId: BigNumberish], + [[string, string] & { gasZRC20: string; registry: string }], + "view" + >; + getFunction( + nameOrSignature: "getChainMetadata" + ): TypedContractMethod< + [chainId: BigNumberish, key: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "getContractConfiguration" + ): TypedContractMethod< + [chainId: BigNumberish, contractType: string, key: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "getContractInfo" + ): TypedContractMethod< + [chainId: BigNumberish, contractType: string], + [[boolean, string] & { active: boolean; addressBytes: string }], + "view" + >; + getFunction( + nameOrSignature: "getZRC20AddressByForeignAsset" + ): TypedContractMethod< + [originChainId: BigNumberish, originAddress: BytesLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "getZRC20TokenInfo" + ): TypedContractMethod< + [address_: AddressLike], + [ + [boolean, string, bigint, string, string, bigint] & { + active: boolean; + symbol: string; + originChainId: bigint; + originAddress: string; + coinType: string; + decimals: bigint; + } + ], + "view" + >; + getFunction( + nameOrSignature: "registerContract" + ): TypedContractMethod< + [chainId: BigNumberish, contractType: string, addressBytes: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "registerZRC20Token" + ): TypedContractMethod< + [ + address_: AddressLike, + symbol: string, + originChainId: BigNumberish, + originAddress: BytesLike, + coinType: string, + decimals: BigNumberish + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setContractActive" + ): TypedContractMethod< + [chainId: BigNumberish, contractType: string, active: boolean], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setZRC20TokenActive" + ): TypedContractMethod< + [address_: AddressLike, active: boolean], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "updateChainMetadata" + ): TypedContractMethod< + [chainId: BigNumberish, key: string, value: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "updateContractConfiguration" + ): TypedContractMethod< + [ + chainId: BigNumberish, + contractType: string, + key: string, + value: BytesLike + ], + [void], + "nonpayable" + >; + + getEvent( + key: "AdminChanged" + ): TypedContractEvent< + AdminChangedEvent.InputTuple, + AdminChangedEvent.OutputTuple, + AdminChangedEvent.OutputObject + >; + getEvent( + key: "ChainMetadataUpdated" + ): TypedContractEvent< + ChainMetadataUpdatedEvent.InputTuple, + ChainMetadataUpdatedEvent.OutputTuple, + ChainMetadataUpdatedEvent.OutputObject + >; + getEvent( + key: "ChainStatusChanged" + ): TypedContractEvent< + ChainStatusChangedEvent.InputTuple, + ChainStatusChangedEvent.OutputTuple, + ChainStatusChangedEvent.OutputObject + >; + getEvent( + key: "ContractConfigurationUpdated" + ): TypedContractEvent< + ContractConfigurationUpdatedEvent.InputTuple, + ContractConfigurationUpdatedEvent.OutputTuple, + ContractConfigurationUpdatedEvent.OutputObject + >; + getEvent( + key: "ContractRegistered" + ): TypedContractEvent< + ContractRegisteredEvent.InputTuple, + ContractRegisteredEvent.OutputTuple, + ContractRegisteredEvent.OutputObject + >; + getEvent( + key: "ContractStatusChanged" + ): TypedContractEvent< + ContractStatusChangedEvent.InputTuple, + ContractStatusChangedEvent.OutputTuple, + ContractStatusChangedEvent.OutputObject + >; + getEvent( + key: "RegistryManagerChanged" + ): TypedContractEvent< + RegistryManagerChangedEvent.InputTuple, + RegistryManagerChangedEvent.OutputTuple, + RegistryManagerChangedEvent.OutputObject + >; + getEvent( + key: "ZRC20TokenRegistered" + ): TypedContractEvent< + ZRC20TokenRegisteredEvent.InputTuple, + ZRC20TokenRegisteredEvent.OutputTuple, + ZRC20TokenRegisteredEvent.OutputObject + >; + getEvent( + key: "ZRC20TokenUpdated" + ): TypedContractEvent< + ZRC20TokenUpdatedEvent.InputTuple, + ZRC20TokenUpdatedEvent.OutputTuple, + ZRC20TokenUpdatedEvent.OutputObject + >; + + filters: { + "AdminChanged(address,address)": TypedContractEvent< + AdminChangedEvent.InputTuple, + AdminChangedEvent.OutputTuple, + AdminChangedEvent.OutputObject + >; + AdminChanged: TypedContractEvent< + AdminChangedEvent.InputTuple, + AdminChangedEvent.OutputTuple, + AdminChangedEvent.OutputObject + >; + + "ChainMetadataUpdated(uint256,string,bytes)": TypedContractEvent< + ChainMetadataUpdatedEvent.InputTuple, + ChainMetadataUpdatedEvent.OutputTuple, + ChainMetadataUpdatedEvent.OutputObject + >; + ChainMetadataUpdated: TypedContractEvent< + ChainMetadataUpdatedEvent.InputTuple, + ChainMetadataUpdatedEvent.OutputTuple, + ChainMetadataUpdatedEvent.OutputObject + >; + + "ChainStatusChanged(uint256,bool)": TypedContractEvent< + ChainStatusChangedEvent.InputTuple, + ChainStatusChangedEvent.OutputTuple, + ChainStatusChangedEvent.OutputObject + >; + ChainStatusChanged: TypedContractEvent< + ChainStatusChangedEvent.InputTuple, + ChainStatusChangedEvent.OutputTuple, + ChainStatusChangedEvent.OutputObject + >; + + "ContractConfigurationUpdated(uint256,string,string,bytes)": TypedContractEvent< + ContractConfigurationUpdatedEvent.InputTuple, + ContractConfigurationUpdatedEvent.OutputTuple, + ContractConfigurationUpdatedEvent.OutputObject + >; + ContractConfigurationUpdated: TypedContractEvent< + ContractConfigurationUpdatedEvent.InputTuple, + ContractConfigurationUpdatedEvent.OutputTuple, + ContractConfigurationUpdatedEvent.OutputObject + >; + + "ContractRegistered(uint256,string,bytes)": TypedContractEvent< + ContractRegisteredEvent.InputTuple, + ContractRegisteredEvent.OutputTuple, + ContractRegisteredEvent.OutputObject + >; + ContractRegistered: TypedContractEvent< + ContractRegisteredEvent.InputTuple, + ContractRegisteredEvent.OutputTuple, + ContractRegisteredEvent.OutputObject + >; + + "ContractStatusChanged(bytes)": TypedContractEvent< + ContractStatusChangedEvent.InputTuple, + ContractStatusChangedEvent.OutputTuple, + ContractStatusChangedEvent.OutputObject + >; + ContractStatusChanged: TypedContractEvent< + ContractStatusChangedEvent.InputTuple, + ContractStatusChangedEvent.OutputTuple, + ContractStatusChangedEvent.OutputObject + >; + + "RegistryManagerChanged(address,address)": TypedContractEvent< + RegistryManagerChangedEvent.InputTuple, + RegistryManagerChangedEvent.OutputTuple, + RegistryManagerChangedEvent.OutputObject + >; + RegistryManagerChanged: TypedContractEvent< + RegistryManagerChangedEvent.InputTuple, + RegistryManagerChangedEvent.OutputTuple, + RegistryManagerChangedEvent.OutputObject + >; + + "ZRC20TokenRegistered(bytes,address,uint8,uint256,string)": TypedContractEvent< + ZRC20TokenRegisteredEvent.InputTuple, + ZRC20TokenRegisteredEvent.OutputTuple, + ZRC20TokenRegisteredEvent.OutputObject + >; + ZRC20TokenRegistered: TypedContractEvent< + ZRC20TokenRegisteredEvent.InputTuple, + ZRC20TokenRegisteredEvent.OutputTuple, + ZRC20TokenRegisteredEvent.OutputObject + >; + + "ZRC20TokenUpdated(address,bool)": TypedContractEvent< + ZRC20TokenUpdatedEvent.InputTuple, + ZRC20TokenUpdatedEvent.OutputTuple, + ZRC20TokenUpdatedEvent.OutputObject + >; + ZRC20TokenUpdated: TypedContractEvent< + ZRC20TokenUpdatedEvent.InputTuple, + ZRC20TokenUpdatedEvent.OutputTuple, + ZRC20TokenUpdatedEvent.OutputObject + >; + }; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVM.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVM.ts index 4fa36464..f5a423ae 100644 --- a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVM.ts +++ b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVM.ts @@ -85,8 +85,9 @@ export interface IGatewayZEVMInterface extends Interface { getFunction( nameOrSignature: | "call" - | "deposit" - | "depositAndCall((bytes,address,uint256),uint256,address,bytes)" + | "deposit(address)" + | "deposit(address,uint256,address)" + | "depositAndCall((bytes,address,uint256),address,bytes)" | "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)" | "depositAndRevert" | "execute" @@ -112,12 +113,16 @@ export interface IGatewayZEVMInterface extends Interface { ] ): string; encodeFunctionData( - functionFragment: "deposit", + functionFragment: "deposit(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "deposit(address,uint256,address)", values: [AddressLike, BigNumberish, AddressLike] ): string; encodeFunctionData( - functionFragment: "depositAndCall((bytes,address,uint256),uint256,address,bytes)", - values: [MessageContextStruct, BigNumberish, AddressLike, BytesLike] + functionFragment: "depositAndCall((bytes,address,uint256),address,bytes)", + values: [MessageContextStruct, AddressLike, BytesLike] ): string; encodeFunctionData( functionFragment: "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)", @@ -179,9 +184,16 @@ export interface IGatewayZEVMInterface extends Interface { ): string; decodeFunctionResult(functionFragment: "call", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; decodeFunctionResult( - functionFragment: "depositAndCall((bytes,address,uint256),uint256,address,bytes)", + functionFragment: "deposit(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deposit(address,uint256,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "depositAndCall((bytes,address,uint256),address,bytes)", data: BytesLike ): Result; decodeFunctionResult( @@ -387,21 +399,22 @@ export interface IGatewayZEVM extends BaseContract { "nonpayable" >; - deposit: TypedContractMethod< + "deposit(address)": TypedContractMethod< + [target: AddressLike], + [void], + "payable" + >; + + "deposit(address,uint256,address)": TypedContractMethod< [zrc20: AddressLike, amount: BigNumberish, target: AddressLike], [void], "nonpayable" >; - "depositAndCall((bytes,address,uint256),uint256,address,bytes)": TypedContractMethod< - [ - context: MessageContextStruct, - amount: BigNumberish, - target: AddressLike, - message: BytesLike - ], + "depositAndCall((bytes,address,uint256),address,bytes)": TypedContractMethod< + [context: MessageContextStruct, target: AddressLike, message: BytesLike], [void], - "nonpayable" + "payable" >; "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)": TypedContractMethod< @@ -511,23 +524,21 @@ export interface IGatewayZEVM extends BaseContract { "nonpayable" >; getFunction( - nameOrSignature: "deposit" + nameOrSignature: "deposit(address)" + ): TypedContractMethod<[target: AddressLike], [void], "payable">; + getFunction( + nameOrSignature: "deposit(address,uint256,address)" ): TypedContractMethod< [zrc20: AddressLike, amount: BigNumberish, target: AddressLike], [void], "nonpayable" >; getFunction( - nameOrSignature: "depositAndCall((bytes,address,uint256),uint256,address,bytes)" + nameOrSignature: "depositAndCall((bytes,address,uint256),address,bytes)" ): TypedContractMethod< - [ - context: MessageContextStruct, - amount: BigNumberish, - target: AddressLike, - message: BytesLike - ], + [context: MessageContextStruct, target: AddressLike, message: BytesLike], [void], - "nonpayable" + "payable" >; getFunction( nameOrSignature: "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)" diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20.ts index 2c976c2b..2db11dae 100644 --- a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20.ts +++ b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20.ts @@ -26,6 +26,7 @@ export interface IZRC20Interface extends Interface { nameOrSignature: | "GAS_LIMIT" | "PROTOCOL_FLAT_FEE" + | "SYSTEM_CONTRACT_ADDRESS" | "allowance" | "approve" | "balanceOf" @@ -46,6 +47,10 @@ export interface IZRC20Interface extends Interface { functionFragment: "PROTOCOL_FLAT_FEE", values?: undefined ): string; + encodeFunctionData( + functionFragment: "SYSTEM_CONTRACT_ADDRESS", + values?: undefined + ): string; encodeFunctionData( functionFragment: "allowance", values: [AddressLike, AddressLike] @@ -95,6 +100,10 @@ export interface IZRC20Interface extends Interface { functionFragment: "PROTOCOL_FLAT_FEE", data: BytesLike ): Result; + decodeFunctionResult( + functionFragment: "SYSTEM_CONTRACT_ADDRESS", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; @@ -169,6 +178,8 @@ export interface IZRC20 extends BaseContract { PROTOCOL_FLAT_FEE: TypedContractMethod<[], [bigint], "view">; + SYSTEM_CONTRACT_ADDRESS: TypedContractMethod<[], [string], "view">; + allowance: TypedContractMethod< [owner: AddressLike, spender: AddressLike], [bigint], @@ -233,6 +244,9 @@ export interface IZRC20 extends BaseContract { getFunction( nameOrSignature: "PROTOCOL_FLAT_FEE" ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "SYSTEM_CONTRACT_ADDRESS" + ): TypedContractMethod<[], [string], "view">; getFunction( nameOrSignature: "allowance" ): TypedContractMethod< diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata.ts index fcb32db1..eaff48ae 100644 --- a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata.ts +++ b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata.ts @@ -26,6 +26,7 @@ export interface IZRC20MetadataInterface extends Interface { nameOrSignature: | "GAS_LIMIT" | "PROTOCOL_FLAT_FEE" + | "SYSTEM_CONTRACT_ADDRESS" | "allowance" | "approve" | "balanceOf" @@ -49,6 +50,10 @@ export interface IZRC20MetadataInterface extends Interface { functionFragment: "PROTOCOL_FLAT_FEE", values?: undefined ): string; + encodeFunctionData( + functionFragment: "SYSTEM_CONTRACT_ADDRESS", + values?: undefined + ): string; encodeFunctionData( functionFragment: "allowance", values: [AddressLike, AddressLike] @@ -101,6 +106,10 @@ export interface IZRC20MetadataInterface extends Interface { functionFragment: "PROTOCOL_FLAT_FEE", data: BytesLike ): Result; + decodeFunctionResult( + functionFragment: "SYSTEM_CONTRACT_ADDRESS", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; @@ -178,6 +187,8 @@ export interface IZRC20Metadata extends BaseContract { PROTOCOL_FLAT_FEE: TypedContractMethod<[], [bigint], "view">; + SYSTEM_CONTRACT_ADDRESS: TypedContractMethod<[], [string], "view">; + allowance: TypedContractMethod< [owner: AddressLike, spender: AddressLike], [bigint], @@ -248,6 +259,9 @@ export interface IZRC20Metadata extends BaseContract { getFunction( nameOrSignature: "PROTOCOL_FLAT_FEE" ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "SYSTEM_CONTRACT_ADDRESS" + ): TypedContractMethod<[], [string], "view">; getFunction( nameOrSignature: "allowance" ): TypedContractMethod< diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/UniversalContract.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/UniversalContract.ts index 89d53bb2..07664834 100644 --- a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/UniversalContract.ts +++ b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/UniversalContract.ts @@ -34,14 +34,35 @@ export type MessageContextStructOutput = [ ] & { sender: string; senderEVM: string; chainID: bigint }; export interface UniversalContractInterface extends Interface { - getFunction(nameOrSignature: "onCall"): FunctionFragment; + getFunction( + nameOrSignature: + | "gateway" + | "onCall((bytes,address,uint256),address,uint256,bytes)" + | "onCall((bytes,address,uint256),bytes)" + | "registry" + ): FunctionFragment; + encodeFunctionData(functionFragment: "gateway", values?: undefined): string; encodeFunctionData( - functionFragment: "onCall", + functionFragment: "onCall((bytes,address,uint256),address,uint256,bytes)", values: [MessageContextStruct, AddressLike, BigNumberish, BytesLike] ): string; + encodeFunctionData( + functionFragment: "onCall((bytes,address,uint256),bytes)", + values: [MessageContextStruct, BytesLike] + ): string; + encodeFunctionData(functionFragment: "registry", values?: undefined): string; - decodeFunctionResult(functionFragment: "onCall", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "gateway", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "onCall((bytes,address,uint256),address,uint256,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "onCall((bytes,address,uint256),bytes)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "registry", data: BytesLike): Result; } export interface UniversalContract extends BaseContract { @@ -87,7 +108,9 @@ export interface UniversalContract extends BaseContract { event?: TCEvent ): Promise; - onCall: TypedContractMethod< + gateway: TypedContractMethod<[], [string], "view">; + + "onCall((bytes,address,uint256),address,uint256,bytes)": TypedContractMethod< [ context: MessageContextStruct, zrc20: AddressLike, @@ -98,12 +121,23 @@ export interface UniversalContract extends BaseContract { "nonpayable" >; + "onCall((bytes,address,uint256),bytes)": TypedContractMethod< + [context: MessageContextStruct, message: BytesLike], + [void], + "payable" + >; + + registry: TypedContractMethod<[], [string], "view">; + getFunction( key: string | FunctionFragment ): T; getFunction( - nameOrSignature: "onCall" + nameOrSignature: "gateway" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "onCall((bytes,address,uint256),address,uint256,bytes)" ): TypedContractMethod< [ context: MessageContextStruct, @@ -114,6 +148,16 @@ export interface UniversalContract extends BaseContract { [void], "nonpayable" >; + getFunction( + nameOrSignature: "onCall((bytes,address,uint256),bytes)" + ): TypedContractMethod< + [context: MessageContextStruct, message: BytesLike], + [void], + "payable" + >; + getFunction( + nameOrSignature: "registry" + ): TypedContractMethod<[], [string], "view">; filters: {}; } diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/index.ts index c598744d..66a7dd93 100644 --- a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/index.ts +++ b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/interfaces/index.ts @@ -9,4 +9,5 @@ import type * as izrc20Sol from "./IZRC20.sol"; export type { izrc20Sol }; import type * as universalContractSol from "./UniversalContract.sol"; export type { universalContractSol }; +export type { ICoreRegistry } from "./ICoreRegistry"; export type { ISystem } from "./ISystem"; diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/libraries/GatewayZEVMValidations.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/libraries/GatewayZEVMValidations.ts new file mode 100644 index 00000000..54426b03 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/libraries/GatewayZEVMValidations.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../../../../../common"; + +export interface GatewayZEVMValidationsInterface extends Interface {} + +export interface GatewayZEVMValidations extends BaseContract { + connect(runner?: ContractRunner | null): GatewayZEVMValidations; + waitForDeployment(): Promise; + + interface: GatewayZEVMValidationsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/typechain-types/@zetachain/protocol-contracts/contracts/zevm/libraries/index.ts b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/libraries/index.ts new file mode 100644 index 00000000..106fc379 --- /dev/null +++ b/typechain-types/@zetachain/protocol-contracts/contracts/zevm/libraries/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { GatewayZEVMValidations } from "./GatewayZEVMValidations"; diff --git a/typechain-types/contracts/testing/mock/ZRC20Mock.sol/IZRC20Mock.ts b/typechain-types/contracts/testing/mock/ZRC20Mock.sol/IZRC20Mock.ts index 52bcf38d..2033959a 100644 --- a/typechain-types/contracts/testing/mock/ZRC20Mock.sol/IZRC20Mock.ts +++ b/typechain-types/contracts/testing/mock/ZRC20Mock.sol/IZRC20Mock.ts @@ -26,6 +26,7 @@ export interface IZRC20MockInterface extends Interface { nameOrSignature: | "GAS_LIMIT" | "PROTOCOL_FLAT_FEE" + | "SYSTEM_CONTRACT_ADDRESS" | "allowance" | "approve" | "balanceOf" @@ -48,6 +49,10 @@ export interface IZRC20MockInterface extends Interface { functionFragment: "PROTOCOL_FLAT_FEE", values?: undefined ): string; + encodeFunctionData( + functionFragment: "SYSTEM_CONTRACT_ADDRESS", + values?: undefined + ): string; encodeFunctionData( functionFragment: "allowance", values: [AddressLike, AddressLike] @@ -108,6 +113,10 @@ export interface IZRC20MockInterface extends Interface { functionFragment: "PROTOCOL_FLAT_FEE", data: BytesLike ): Result; + decodeFunctionResult( + functionFragment: "SYSTEM_CONTRACT_ADDRESS", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; @@ -190,6 +199,8 @@ export interface IZRC20Mock extends BaseContract { PROTOCOL_FLAT_FEE: TypedContractMethod<[], [bigint], "view">; + SYSTEM_CONTRACT_ADDRESS: TypedContractMethod<[], [string], "view">; + allowance: TypedContractMethod< [owner: AddressLike, spender: AddressLike], [bigint], @@ -270,6 +281,9 @@ export interface IZRC20Mock extends BaseContract { getFunction( nameOrSignature: "PROTOCOL_FLAT_FEE" ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "SYSTEM_CONTRACT_ADDRESS" + ): TypedContractMethod<[], [string], "view">; getFunction( nameOrSignature: "allowance" ): TypedContractMethod< diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/Errors.sol/INotSupportedMethods__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/Errors.sol/INotSupportedMethods__factory.ts index ba0493ab..b706700e 100644 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/Errors.sol/INotSupportedMethods__factory.ts +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/Errors.sol/INotSupportedMethods__factory.ts @@ -14,11 +14,6 @@ const _abi = [ name: "CallOnRevertNotSupported", type: "error", }, - { - inputs: [], - name: "ZETANotSupported", - type: "error", - }, ] as const; export class INotSupportedMethods__factory { diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/Revert.sol/Revertable__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/Revert.sol/Revertable__factory.ts index fd3bcc5a..016f826d 100644 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/Revert.sol/Revertable__factory.ts +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/Revert.sol/Revertable__factory.ts @@ -41,7 +41,7 @@ const _abi = [ ], name: "onRevert", outputs: [], - stateMutability: "nonpayable", + stateMutability: "payable", type: "function", }, ] as const; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ERC20Custody__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ERC20Custody__factory.ts index 2cc910da..6da6b598 100644 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ERC20Custody__factory.ts +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ERC20Custody__factory.ts @@ -974,7 +974,7 @@ const _abi = [ ] as const; const _bytecode = - "0x60a0806040523460295730608052611e8d908161002f8239608051818181610f090152610fda0152f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a71461131857508063116191b6146112f1578063248a9ca3146112ca578063252f07bf146112a45780632f2ff15d1461127257806336568abe1461122d5780633f4ba83a146111ab5780634f1ef28614610f5e57806352d1902d14610ef6578063570618e114610ecd5780635b11259114610ea45780635c975abb14610e745780638456cb5914610dff57806385f438c114610dd657806391d1485414610d80578063950837aa14610cb457806399a3c35614610ade5780639a59042714610a725780639b19251a146109f4578063a217fddf146109d8578063ad0818521461082d578063ad3cb1cc146107b3578063c0c53b8b1461057f578063d547741f14610544578063d936547e14610505578063d9caed1214610442578063e609055e146101e8578063e63ab1e9146101ad5763eab103df1461016057600080fd5b346101aa5760203660031901126101aa576004358015158091036101a65761018661157a565b6002805460ff60a01b191660a09290921b60ff60a01b1691909117905580f35b5080fd5b80fd5b50346101aa57806003193601126101aa5760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346101aa5760803660031901126101aa5760043567ffffffffffffffff81116101a65761021a903690600401611417565b6024356001600160a01b03811692919083810361043e5760643567ffffffffffffffff811161043a57610251903690600401611417565b9061025a611b7e565b610262611bba565b60ff60025460a01c161561042b57858752600160205260ff6040882054161561041c576040516370a0823160e01b8152306004820152926020846024818a5afa9384156103db5788946103e6575b506102ee90604051906323b872dd60e01b60208301523360248301523060448301526044356064830152606482526102e96084836113c3565b611c21565b6040516370a0823160e01b8152306004820152926020846024818a5afa9384156103db5788946103a2575b50830392831161038e5791610376917f1dafa057cc5c3bccb5ad974129a2bccd3c74002d9dfd7062404ba9523b18d6ae959493610363604051968796606088526060880191611466565b9260208601528483036040860152611466565b0390a26001600080516020611df88339815191525580f35b634e487b7160e01b87526011600452602487fd5b9093506020813d6020116103d3575b816103be602093836113c3565b810103126103ce57519238610319565b600080fd5b3d91506103b1565b6040513d8a823e3d90fd5b9093506020813d602011610414575b81610402602093836113c3565b810103126103ce5751926102ee6102b0565b3d91506103f5565b630b094f2760e31b8752600487fd5b6373cba66360e01b8752600487fd5b8580fd5b8480fd5b50346101aa5760603660031901126101aa5761045c611383565b61046461136d565b60443590610470611b7e565b6104786115cd565b610480611bba565b6001600160a01b03168084526001602052604084205490929060ff16156104f6576020816104d0847fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb9487611be4565b6040519384526001600160a01b031692a36001600080516020611df88339815191525580f35b630b094f2760e31b8452600484fd5b50346101aa5760203660031901126101aa5760209060ff906040906001600160a01b03610530611383565b168152600184522054166040519015158152f35b50346101aa5760403660031901126101aa5761057b60043561056461136d565b9061057661057182611445565b611669565b611ade565b5080f35b50346101aa5760603660031901126101aa57610599611383565b6105a161136d565b6105a9611399565b600080516020611e38833981519152549260ff8460401c16159367ffffffffffffffff8116801590816107ab575b60011490816107a1575b159081610798575b506107895767ffffffffffffffff198116600117600080516020611e38833981519152558461075c575b506001600160a01b03168015801561074b575b801561073a575b61072b576106c992916106c391610642611c88565b61064a611c88565b610652611c88565b6001600080516020611df88339815191525561066c611c88565b610674611c88565b86546001600160a01b0319908116919091178755600280549091166001600160a01b0385161790556106a5816117c5565b506106af8161185f565b506106b98361185f565b506106c3836116b3565b5061173f565b506106d15780f35b68ff000000000000000019600080516020611e388339815191525416600080516020611e38833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b63d92e233d60e01b8552600485fd5b506001600160a01b0382161561062d565b506001600160a01b03831615610626565b68ffffffffffffffffff19166801000000000000000117600080516020611e388339815191525538610613565b63f92ee8a960e01b8652600486fd5b905015386105e9565b303b1591506105e1565b8691506105d7565b50346101aa57806003193601126101aa5760408051916107d382846113c3565b60058352640352e302e360dc1b6020840152815192839160208352815191826020850152815b838110610816575050828201840152601f01601f19168101030190f35b6020828201810151888301880152879550016107f9565b50346101aa57366003190160a081126101a6576020136101aa5761084f61136d565b610857611399565b906064359160843567ffffffffffffffff811161043e5761087c903690600401611417565b9091610886611b7e565b61088e6115cd565b610896611bba565b6001600160a01b03168086526001602052604086205490949060ff16156109c95785546108ce9082906001600160a01b031687611be4565b85546001600160a01b0316938690853b156101a657604051633ddf4d7d60e11b815290829082906001600160a01b03610905611383565b166004830152602482018a90526001600160a01b0316604482018190526064820186905260a060848301529781838161094260a482018b8d611466565b03925af180156109be576109a9575b50506109917f6478cbb6e28c0823c691dfd74c01c985634faddd4c401b990fe4ec26277ea8d5936040519384938452604060208501526040840191611466565b0390a36001600080516020611df88339815191525580f35b816109b3916113c3565b61043a578538610951565b6040513d84823e3d90fd5b630b094f2760e31b8652600486fd5b50346101aa57806003193601126101aa57602090604051908152f35b50346101aa5760203660031901126101aa57610a0e611383565b610a1661161b565b6001600160a01b03168015610a6357808252600160205260408220600160ff198254161790557faab7954e9d246b167ef88aeddad35209ca2489d95a8aeb59e288d9b19fae5a548280a280f35b63d92e233d60e01b8252600482fd5b50346101aa5760203660031901126101aa57610a8c611383565b610a9461161b565b6001600160a01b03168015610a6357808252600160205260408220805460ff191690557f51085ddf9ebdded84b76e829eb58c4078e4b5bdf97d9a94723f336039da467918280a280f35b50346101aa5760a03660031901126101aa57610af8611383565b610b0061136d565b9060443560643567ffffffffffffffff811161043e57610b24903690600401611417565b9190936084359067ffffffffffffffff8211610cb057608082600401926003199036030112610cb057610b55611b7e565b610b5d6115cd565b610b65611bba565b6001600160a01b03168087526001602052604087205490959060ff161561041c578654610b9d9084906001600160a01b031688611be4565b86546001600160a01b031694853b15610cac5787604051809263aa0c0fc160e01b825289600483015260018060a01b03169788602483015286604483015260a06064830152818381610c08610bf660a483018d8b611466565b8281036003190160848401528a611487565b03925af180156103db57610c6a575b507f7b53ec10a80164e60591c43d9c222e9354886981b880a3fba19c9ceb77fb9721939291610c5c610991926040519586958652606060208701526060860191611466565b908382036040850152611487565b91610c5c88610ca0610991949a7f7b53ec10a80164e60591c43d9c222e9354886981b880a3fba19c9ceb77fb97219897966113c3565b98925050919293610c17565b8780fd5b8680fd5b50346101aa5760203660031901126101aa57610cce611383565b610cd661157a565b6001600160a01b038116908115610d7157600254610d219190610d01906001600160a01b03166119b2565b50600254610d17906001600160a01b0316611a48565b506106c3816116b3565b50600254604080516001600160a01b0383168152602081018490527f4d3470c839d3c4dd664eec934b920c12fe0966e3185103dd40149496815df2b69190a16001600160a01b0319161760025580f35b63d92e233d60e01b8352600483fd5b50346101aa5760403660031901126101aa5760ff6040602092610da161136d565b6004358252600080516020611d9883398151915285528282206001600160a01b03909116825284522054604051911615158152f35b50346101aa57806003193601126101aa576020604051600080516020611d788339815191528152f35b50346101aa57806003193601126101aa57610e18611508565b610e20611bba565b600160ff19600080516020611dd8833981519152541617600080516020611dd8833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101aa57806003193601126101aa57602060ff600080516020611dd883398151915254166040519015158152f35b50346101aa57806003193601126101aa576002546040516001600160a01b039091168152602090f35b50346101aa57806003193601126101aa576020604051600080516020611d588339815191528152f35b50346101aa57806003193601126101aa577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610f4f576020604051600080516020611d388339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101aa57610f73611383565b6024359067ffffffffffffffff82116111a757366023830112156111a75781600401359083610fa1836113fb565b93610faf60405195866113c3565b838552602085019336602482840101116111a757806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611184575b506111755761101261157a565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181611141575b5061105557634c9c8ce360e01b86526004859052602486fd5b9384600080516020611d3883398151915287960361112f5750823b1561111d57600080516020611d3883398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a28051156111025761057b9382915190845af43d156110fa573d916110de836113fb565b926110ec60405194856113c3565b83523d85602085013e611cb6565b606091611cb6565b505050503461110e5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d60201161116d575b8161115d602093836113c3565b81010312610cb05751903861103c565b3d9150611150565b63703e46dd60e11b8452600484fd5b600080516020611d38833981519152546001600160a01b03161415905038611005565b8280fd5b50346101aa57806003193601126101aa576111c4611508565b600080516020611dd88339815191525460ff81161561121e5760ff1916600080516020611dd8833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346101aa5760403660031901126101aa5761124761136d565b336001600160a01b038216036112635761057b90600435611ade565b63334bd91960e11b8252600482fd5b50346101aa5760403660031901126101aa5761057b60043561129261136d565b9061129f61057182611445565b61191b565b50346101aa57806003193601126101aa57602060ff60025460a01c166040519015158152f35b50346101aa5760203660031901126101aa5760206112e9600435611445565b604051908152f35b50346101aa57806003193601126101aa57546040516001600160a01b039091168152602090f35b9050346101a65760203660031901126101a65760043563ffffffff60e01b81168091036111a75760209250637965db0b60e01b811490811561135c575b5015158152f35b6301ffc9a760e01b14905038611355565b602435906001600160a01b03821682036103ce57565b600435906001600160a01b03821682036103ce57565b604435906001600160a01b03821682036103ce57565b35906001600160a01b03821682036103ce57565b90601f8019910116810190811067ffffffffffffffff8211176113e557604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116113e557601f01601f191660200190565b9181601f840112156103ce5782359167ffffffffffffffff83116103ce57602083818601950101116103ce57565b600052600080516020611d9883398151915260205260016040600020015490565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160a01b03611498826113af565b1682526001600160a01b036114af602083016113af565b166020830152604081013560408301526060810135601e19823603018112156103ce57016020813591019067ffffffffffffffff81116103ce5780360382136103ce576080838160606115059601520191611466565b90565b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561154157565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16156115b357565b63e2517d3f60e01b60005233600452600060245260446000fd5b336000908152600080516020611e18833981519152602052604090205460ff16156115f457565b63e2517d3f60e01b60005233600452600080516020611d7883398151915260245260446000fd5b336000908152600080516020611db8833981519152602052604090205460ff161561164257565b63e2517d3f60e01b60005233600452600080516020611d5883398151915260245260446000fd5b6000818152600080516020611d988339815191526020908152604080832033845290915290205460ff161561169b5750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b0381166000908152600080516020611e18833981519152602052604090205460ff16611739576001600160a01b03166000818152600080516020611e1883398151915260205260408120805460ff19166001179055339190600080516020611d7883398151915290600080516020611d188339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020611db8833981519152602052604090205460ff16611739576001600160a01b03166000818152600080516020611db883398151915260205260408120805460ff19166001179055339190600080516020611d5883398151915290600080516020611d188339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16611739576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff19166001179055339190600080516020611d188339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff16611739576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a90600080516020611d188339815191529080a4600190565b6000818152600080516020611d98833981519152602090815260408083206001600160a01b038616845290915290205460ff166119ab576000818152600080516020611d98833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff1916600117905533929190600080516020611d188339815191529080a4600190565b5050600090565b6001600160a01b0381166000908152600080516020611e18833981519152602052604090205460ff1615611739576001600160a01b03166000818152600080516020611e1883398151915260205260408120805460ff19169055339190600080516020611d78833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381166000908152600080516020611db8833981519152602052604090205460ff1615611739576001600160a01b03166000818152600080516020611db883398151915260205260408120805460ff19169055339190600080516020611d58833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020611d98833981519152602090815260408083206001600160a01b038616845290915290205460ff16156119ab576000818152600080516020611d98833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6002600080516020611df88339815191525414611ba9576002600080516020611df883398151915255565b633ee5aeb560e01b60005260046000fd5b60ff600080516020611dd88339815191525416611bd357565b63d93c066560e01b60005260046000fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152611c1f916102e96064836113c3565b565b906000602091828151910182855af115611c7c576000513d611c7357506001600160a01b0381163b155b611c525750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b60011415611c4b565b6040513d6000823e3d90fd5b60ff600080516020611e388339815191525460401c1615611ca557565b631afcd79f60e31b60005260046000fd5b90611cdc5750805115611ccb57805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611d0e575b611ced575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15611ce556fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8619cecd8b9e095ab43867f5b69d492180450fe862e6b50bfbfb24b75dd84c8a10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009e55e7b9c223644eee376bcbcf651816b24106427c658526e048949da61b2c08cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00395f4e35a18c2b5e556b3b2ff855307e76c0b3cc1ca71e19a70e83037e08e7b3f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212206353f97c2bca70990562e73c05a556d800ce6f131c5458a0f2aa0fe6f1af58ff64736f6c634300081a0033"; + "0x60a0806040523460295730608052611e83908161002f8239608051818181610eff0152610fd00152f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a71461130e57508063116191b6146112e7578063248a9ca3146112c0578063252f07bf1461129a5780632f2ff15d1461126857806336568abe146112235780633f4ba83a146111a15780634f1ef28614610f5457806352d1902d14610eec578063570618e114610ec35780635b11259114610e9a5780635c975abb14610e6a5780638456cb5914610df557806385f438c114610dcc57806391d1485414610d76578063950837aa14610caa57806399a3c35614610ad45780639a59042714610a685780639b19251a146109ea578063a217fddf146109ce578063ad08185214610823578063ad3cb1cc146107a9578063c0c53b8b1461057f578063d547741f14610544578063d936547e14610505578063d9caed1214610442578063e609055e146101e8578063e63ab1e9146101ad5763eab103df1461016057600080fd5b346101aa5760203660031901126101aa576004358015158091036101a657610186611570565b6002805460ff60a01b191660a09290921b60ff60a01b1691909117905580f35b5080fd5b80fd5b50346101aa57806003193601126101aa5760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346101aa5760803660031901126101aa5760043567ffffffffffffffff81116101a65761021a90369060040161140d565b6024356001600160a01b03811692919083810361043e5760643567ffffffffffffffff811161043a5761025190369060040161140d565b9061025a611b74565b610262611bb0565b60ff60025460a01c161561042b57858752600160205260ff6040882054161561041c576040516370a0823160e01b8152306004820152926020846024818a5afa9384156103db5788946103e6575b506102ee90604051906323b872dd60e01b60208301523360248301523060448301526044356064830152606482526102e96084836113b9565b611c17565b6040516370a0823160e01b8152306004820152926020846024818a5afa9384156103db5788946103a2575b50830392831161038e5791610376917f1dafa057cc5c3bccb5ad974129a2bccd3c74002d9dfd7062404ba9523b18d6ae95949361036360405196879660608852606088019161145c565b926020860152848303604086015261145c565b0390a26001600080516020611dee8339815191525580f35b634e487b7160e01b87526011600452602487fd5b9093506020813d6020116103d3575b816103be602093836113b9565b810103126103ce57519238610319565b600080fd5b3d91506103b1565b6040513d8a823e3d90fd5b9093506020813d602011610414575b81610402602093836113b9565b810103126103ce5751926102ee6102b0565b3d91506103f5565b630b094f2760e31b8752600487fd5b6373cba66360e01b8752600487fd5b8580fd5b8480fd5b50346101aa5760603660031901126101aa5761045c611379565b610464611363565b60443590610470611b74565b6104786115c3565b610480611bb0565b6001600160a01b03168084526001602052604084205490929060ff16156104f6576020816104d0847fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb9487611bda565b6040519384526001600160a01b031692a36001600080516020611dee8339815191525580f35b630b094f2760e31b8452600484fd5b50346101aa5760203660031901126101aa5760209060ff906040906001600160a01b03610530611379565b168152600184522054166040519015158152f35b50346101aa5760403660031901126101aa5761057b600435610564611363565b906105766105718261143b565b61165f565b611ad4565b5080f35b50346101aa5760603660031901126101aa57610599611379565b6105a1611363565b6105a961138f565b600080516020611e2e833981519152549260ff8460401c16159367ffffffffffffffff8116801590816107a1575b6001149081610797575b15908161078e575b5061077f5767ffffffffffffffff198116600117600080516020611e2e8339815191525584610752575b506001600160a01b031680158015610741575b8015610730575b610721576106bf92916106b991610642611c7e565b61064a611c7e565b610652611c7e565b6001600080516020611dee8339815191525561066c611c7e565b610674611c7e565b86546001600160a01b0319908116919091178755600280549091166001600160a01b0385161790556106a5816117bb565b506106af81611855565b506106b9836116a9565b50611735565b506106c75780f35b68ff000000000000000019600080516020611e2e8339815191525416600080516020611e2e833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b63d92e233d60e01b8552600485fd5b506001600160a01b0382161561062d565b506001600160a01b03831615610626565b68ffffffffffffffffff19166801000000000000000117600080516020611e2e8339815191525538610613565b63f92ee8a960e01b8652600486fd5b905015386105e9565b303b1591506105e1565b8691506105d7565b50346101aa57806003193601126101aa5760408051916107c982846113b9565b60058352640352e302e360dc1b6020840152815192839160208352815191826020850152815b83811061080c575050828201840152601f01601f19168101030190f35b6020828201810151888301880152879550016107ef565b50346101aa57366003190160a081126101a6576020136101aa57610845611363565b61084d61138f565b906064359160843567ffffffffffffffff811161043e5761087290369060040161140d565b909161087c611b74565b6108846115c3565b61088c611bb0565b6001600160a01b03168086526001602052604086205490949060ff16156109bf5785546108c49082906001600160a01b031687611bda565b85546001600160a01b0316938690853b156101a657604051633ddf4d7d60e11b815290829082906001600160a01b036108fb611379565b166004830152602482018a90526001600160a01b0316604482018190526064820186905260a060848301529781838161093860a482018b8d61145c565b03925af180156109b45761099f575b50506109877f6478cbb6e28c0823c691dfd74c01c985634faddd4c401b990fe4ec26277ea8d593604051938493845260406020850152604084019161145c565b0390a36001600080516020611dee8339815191525580f35b816109a9916113b9565b61043a578538610947565b6040513d84823e3d90fd5b630b094f2760e31b8652600486fd5b50346101aa57806003193601126101aa57602090604051908152f35b50346101aa5760203660031901126101aa57610a04611379565b610a0c611611565b6001600160a01b03168015610a5957808252600160205260408220600160ff198254161790557faab7954e9d246b167ef88aeddad35209ca2489d95a8aeb59e288d9b19fae5a548280a280f35b63d92e233d60e01b8252600482fd5b50346101aa5760203660031901126101aa57610a82611379565b610a8a611611565b6001600160a01b03168015610a5957808252600160205260408220805460ff191690557f51085ddf9ebdded84b76e829eb58c4078e4b5bdf97d9a94723f336039da467918280a280f35b50346101aa5760a03660031901126101aa57610aee611379565b610af6611363565b9060443560643567ffffffffffffffff811161043e57610b1a90369060040161140d565b9190936084359067ffffffffffffffff8211610ca657608082600401926003199036030112610ca657610b4b611b74565b610b536115c3565b610b5b611bb0565b6001600160a01b03168087526001602052604087205490959060ff161561041c578654610b939084906001600160a01b031688611bda565b86546001600160a01b031694853b15610ca25787604051809263aa0c0fc160e01b825289600483015260018060a01b03169788602483015286604483015260a06064830152818381610bfe610bec60a483018d8b61145c565b8281036003190160848401528a61147d565b03925af180156103db57610c60575b507f7b53ec10a80164e60591c43d9c222e9354886981b880a3fba19c9ceb77fb9721939291610c5261098792604051958695865260606020870152606086019161145c565b90838203604085015261147d565b91610c5288610c96610987949a7f7b53ec10a80164e60591c43d9c222e9354886981b880a3fba19c9ceb77fb97219897966113b9565b98925050919293610c0d565b8780fd5b8680fd5b50346101aa5760203660031901126101aa57610cc4611379565b610ccc611570565b6001600160a01b038116908115610d6757600254610d179190610cf7906001600160a01b03166119a8565b50600254610d0d906001600160a01b0316611a3e565b506106b9816116a9565b50600254604080516001600160a01b0383168152602081018490527f4d3470c839d3c4dd664eec934b920c12fe0966e3185103dd40149496815df2b69190a16001600160a01b0319161760025580f35b63d92e233d60e01b8352600483fd5b50346101aa5760403660031901126101aa5760ff6040602092610d97611363565b6004358252600080516020611d8e83398151915285528282206001600160a01b03909116825284522054604051911615158152f35b50346101aa57806003193601126101aa576020604051600080516020611d6e8339815191528152f35b50346101aa57806003193601126101aa57610e0e6114fe565b610e16611bb0565b600160ff19600080516020611dce833981519152541617600080516020611dce833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101aa57806003193601126101aa57602060ff600080516020611dce83398151915254166040519015158152f35b50346101aa57806003193601126101aa576002546040516001600160a01b039091168152602090f35b50346101aa57806003193601126101aa576020604051600080516020611d4e8339815191528152f35b50346101aa57806003193601126101aa577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610f45576020604051600080516020611d2e8339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101aa57610f69611379565b6024359067ffffffffffffffff821161119d573660238301121561119d5781600401359083610f97836113f1565b93610fa560405195866113b9565b8385526020850193366024828401011161119d57806024602093018637850101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630811490811561117a575b5061116b57611008611570565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181611137575b5061104b57634c9c8ce360e01b86526004859052602486fd5b9384600080516020611d2e8339815191528796036111255750823b1561111357600080516020611d2e83398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a28051156110f85761057b9382915190845af43d156110f0573d916110d4836113f1565b926110e260405194856113b9565b83523d85602085013e611cac565b606091611cac565b50505050346111045780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011611163575b81611153602093836113b9565b81010312610ca657519038611032565b3d9150611146565b63703e46dd60e11b8452600484fd5b600080516020611d2e833981519152546001600160a01b03161415905038610ffb565b8280fd5b50346101aa57806003193601126101aa576111ba6114fe565b600080516020611dce8339815191525460ff8116156112145760ff1916600080516020611dce833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346101aa5760403660031901126101aa5761123d611363565b336001600160a01b038216036112595761057b90600435611ad4565b63334bd91960e11b8252600482fd5b50346101aa5760403660031901126101aa5761057b600435611288611363565b906112956105718261143b565b611911565b50346101aa57806003193601126101aa57602060ff60025460a01c166040519015158152f35b50346101aa5760203660031901126101aa5760206112df60043561143b565b604051908152f35b50346101aa57806003193601126101aa57546040516001600160a01b039091168152602090f35b9050346101a65760203660031901126101a65760043563ffffffff60e01b811680910361119d5760209250637965db0b60e01b8114908115611352575b5015158152f35b6301ffc9a760e01b1490503861134b565b602435906001600160a01b03821682036103ce57565b600435906001600160a01b03821682036103ce57565b604435906001600160a01b03821682036103ce57565b35906001600160a01b03821682036103ce57565b90601f8019910116810190811067ffffffffffffffff8211176113db57604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116113db57601f01601f191660200190565b9181601f840112156103ce5782359167ffffffffffffffff83116103ce57602083818601950101116103ce57565b600052600080516020611d8e83398151915260205260016040600020015490565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160a01b0361148e826113a5565b1682526001600160a01b036114a5602083016113a5565b166020830152604081013560408301526060810135601e19823603018112156103ce57016020813591019067ffffffffffffffff81116103ce5780360382136103ce576080838160606114fb960152019161145c565b90565b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561153757565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16156115a957565b63e2517d3f60e01b60005233600452600060245260446000fd5b336000908152600080516020611e0e833981519152602052604090205460ff16156115ea57565b63e2517d3f60e01b60005233600452600080516020611d6e83398151915260245260446000fd5b336000908152600080516020611dae833981519152602052604090205460ff161561163857565b63e2517d3f60e01b60005233600452600080516020611d4e83398151915260245260446000fd5b6000818152600080516020611d8e8339815191526020908152604080832033845290915290205460ff16156116915750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b0381166000908152600080516020611e0e833981519152602052604090205460ff1661172f576001600160a01b03166000818152600080516020611e0e83398151915260205260408120805460ff19166001179055339190600080516020611d6e83398151915290600080516020611d0e8339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020611dae833981519152602052604090205460ff1661172f576001600160a01b03166000818152600080516020611dae83398151915260205260408120805460ff19166001179055339190600080516020611d4e83398151915290600080516020611d0e8339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1661172f576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff19166001179055339190600080516020611d0e8339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1661172f576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a90600080516020611d0e8339815191529080a4600190565b6000818152600080516020611d8e833981519152602090815260408083206001600160a01b038616845290915290205460ff166119a1576000818152600080516020611d8e833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff1916600117905533929190600080516020611d0e8339815191529080a4600190565b5050600090565b6001600160a01b0381166000908152600080516020611e0e833981519152602052604090205460ff161561172f576001600160a01b03166000818152600080516020611e0e83398151915260205260408120805460ff19169055339190600080516020611d6e833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381166000908152600080516020611dae833981519152602052604090205460ff161561172f576001600160a01b03166000818152600080516020611dae83398151915260205260408120805460ff19169055339190600080516020611d4e833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020611d8e833981519152602090815260408083206001600160a01b038616845290915290205460ff16156119a1576000818152600080516020611d8e833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6002600080516020611dee8339815191525414611b9f576002600080516020611dee83398151915255565b633ee5aeb560e01b60005260046000fd5b60ff600080516020611dce8339815191525416611bc957565b63d93c066560e01b60005260046000fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152611c15916102e96064836113b9565b565b906000602091828151910182855af115611c72576000513d611c6957506001600160a01b0381163b155b611c485750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b60011415611c41565b6040513d6000823e3d90fd5b60ff600080516020611e2e8339815191525460401c1615611c9b57565b631afcd79f60e31b60005260046000fd5b90611cd25750805115611cc157805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611d04575b611ce3575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15611cdb56fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8619cecd8b9e095ab43867f5b69d492180450fe862e6b50bfbfb24b75dd84c8a10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009e55e7b9c223644eee376bcbcf651816b24106427c658526e048949da61b2c08cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00395f4e35a18c2b5e556b3b2ff855307e76c0b3cc1ca71e19a70e83037e08e7b3f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220702fb670414d490d4bc4c9faff686ceb6c14d575e3941d5f000714bc96bea29764736f6c634300081a0033"; type ERC20CustodyConstructorParams = | [signer?: Signer] diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/GatewayEVM__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/GatewayEVM__factory.ts index 3d552cf9..d35a4699 100644 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/GatewayEVM__factory.ts +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/GatewayEVM__factory.ts @@ -186,6 +186,22 @@ const _abi = [ name: "ReentrancyGuardReentrantCall", type: "error", }, + { + inputs: [ + { + internalType: "uint256", + name: "provided", + type: "uint256", + }, + { + internalType: "uint256", + name: "maximum", + type: "uint256", + }, + ], + name: "RevertGasLimitExceeded", + type: "error", + }, { inputs: [ { @@ -213,11 +229,6 @@ const _abi = [ name: "UUPSUnsupportedProxiableUUID", type: "error", }, - { - inputs: [], - name: "ZETANotSupported", - type: "error", - }, { inputs: [], name: "ZeroAddress", @@ -1487,7 +1498,7 @@ const _abi = [ ] as const; const _bytecode = - "0x60a080604052346100ea57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b6040516128fe90816100f0823960805181818161120b01526112db0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880610054565b63f92ee8a960e01b60005260046000fd5b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a7146119015750806310188aef1461188f578063102614b01461179f5780631becceb4146116c457806321e093b11461169b578063248a9ca3146116745780632f2ff15d1461164257806336568abe146115fd57806338e22527146115035780633f4ba83a146114815780634f1ef2861461126057806352d1902d146111f857806357bec62f146111cf5780635b112591146111a65780635c975abb146111765780635d62c8601461113b578063726ac97c1461100c578063744b9b8b14610f295780637bbe9afa14610b1c5780638456cb5914610aa757806391d1485414610a4e578063950837aa146109ab578063a217fddf1461098f578063a2ba193414610972578063a783c78914610949578063aa0c0fc1146107f8578063ad3cb1cc146107ab578063ae7a3a6f1461072f578063c0c53b8b14610519578063cb7ba8e5146103a9578063d09e3b7814610236578063d547741f146101fb578063dda79b75146101d45763e63ab1e91461019757600080fd5b346101d157806003193601126101d15760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b80fd5b50346101d157806003193601126101d157546040516001600160a01b039091168152602090f35b50346101d15760403660031901126101d15761023260043561021b611987565b9061022d61022882611bf9565b611ea1565b6123d1565b5080f35b50346101d15760a03660031901126101d157610250611956565b60243561025b611971565b916064356001600160401b0381116103a55761027b9036906004016119b1565b608435946001600160401b0386116103a157856004019360a0600319883603011261039d576102a8612220565b851561038e576001600160a01b031695861561037f576064016104006102d96102d18388611ae2565b905085611bd6565b116103515750610347927fa795d4377323e4c2d4c346b8050a7dd504c4043be8884c81b8d9690706c8388f94928261031588610339953361224a565b60405197885260018060a01b03166020880152608060408801526080870191611b45565b908482036060860152611b66565b918033930390a380f35b8761036a8461036260449489611ae2565b919050611bd6565b634fe7bc4760e11b8252600452610400602452fd5b63d92e233d60e01b8852600488fd5b63951e19ed60e01b8852600488fd5b8780fd5b8680fd5b8480fd5b5060603660031901126101d1576103be611956565b906024356001600160401b038111610515576103de9036906004016119b1565b604493919335906001600160401b038211610511576080826004019260031990360301126105115761040e612471565b610416611d6f565b61041e612220565b6001600160a01b03831692831561050257848080809334905af1610440611c4a565b50156104f3578394833b156103a557604051636481451b60e11b8152602060048201528581806104736024820188611c92565b038183895af19081156104e85786916104d3575b50506104bb7fde7603a6ed5d07c9f43597ccfe9043d15b66d3284f0de321f5cdf56329e6e035936040519384933485611cf0565b0390a360016000805160206128698339815191525580f35b816104dd91611a90565b6103a5578438610487565b6040513d88823e3d90fd5b632b3f6d1160e21b8452600484fd5b63d92e233d60e01b8552600485fd5b8380fd5b5080fd5b50346101d15760603660031901126101d157610533611956565b61053b611987565b610543611971565b916000805160206128a9833981519152549260ff8460401c1615936001600160401b03811680159081610727575b600114908161071d575b159081610714575b506107055767ffffffffffffffff1981166001176000805160206128a983398151915255846106d8575b506001600160a01b03821690811580156106c7575b6106b8579061061861063b93926105d7612719565b6105df612719565b6105e7612719565b600160008051602061286983398151915255610601612719565b610609612719565b61061281612033565b506120cd565b50610622826120cd565b506001600160601b0360a01b6001541617600155611fad565b5060018060a01b03166001600160601b0360a01b600354161760035561065e5780f35b68ff0000000000000000196000805160206128a983398151915254166000805160206128a9833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b63d92e233d60e01b8652600486fd5b506001600160a01b038416156105c2565b68ffffffffffffffffff191668010000000000000001176000805160206128a983398151915255386105ad565b63f92ee8a960e01b8652600486fd5b90501538610583565b303b15915061057b565b869150610571565b50346101d15760203660031901126101d157610749611956565b610751611d1c565b6001600160a01b03811690811561079c5782546001600160a01b031661078d5761077a90611eeb565b5081546001600160a01b03191617815580f35b631666fe6f60e31b8352600483fd5b63d92e233d60e01b8352600483fd5b50346101d157806003193601126101d157506107f46040516107ce604082611a90565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611a6b565b0390f35b50346101d15760a03660031901126101d157610812611956565b61081a611987565b906044356064356001600160401b0381116103a55761083d9036906004016119b1565b91608435926001600160401b0384116103a1576080846004019460031990360301126103a15761086b612471565b610873611e2f565b61087b612220565b811561093a576001600160a01b03861694851561037f576001600160a01b0316956108a890839088612682565b843b156103a157604051636481451b60e11b81526020600482015287908181806108d5602482018a611c92565b0381838b5af1801561092f5761091a575b50507fde7603a6ed5d07c9f43597ccfe9043d15b66d3284f0de321f5cdf56329e6e035936104bb9160405194859485611cf0565b8161092491611a90565b6103a15786386108e6565b6040513d84823e3d90fd5b63951e19ed60e01b8752600487fd5b50346101d157806003193601126101d15760206040516000805160206127a98339815191528152f35b50346101d157806003193601126101d15760206040516104008152f35b50346101d157806003193601126101d157602090604051908152f35b50346101d15760203660031901126101d1576109c5611956565b6109cd611d1c565b6001600160a01b03811690811561079c576001546109fe91906109f8906001600160a01b031661233b565b50611fad565b50600154604080516001600160a01b0383168152602081018490527f3a7b8d6372645f474fe60c115a2ef21421306a3ed4664fa0023c461413c085799190a16001600160a01b0319161760015580f35b50346101d15760403660031901126101d1576040610a6a611987565b916004358152600080516020612829833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346101d157806003193601126101d157610ac0611dbd565b610ac8612220565b600160ff19600080516020612849833981519152541617600080516020612849833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101d157366003190160a08112610515576020136101d157610b3e611987565b610b46611971565b906064356084356001600160401b0381116103a557610b699036906004016119b1565b610b74929192612471565b610b7c611e2f565b610b84612220565b8115610f1a576001600160a01b038516948515610f0b57610ba58186612622565b15610eea5760405163095ea7b360e01b81526001600160a01b03828116600483015260248201859052861695906020816044818c8b5af1908115610e55578991610ecb575b5015610eb457610c1b91906001600160a01b03610c05611c1a565b16610ea957610c1584878461258a565b50612622565b15610e92576040516370a0823160e01b8152306004820152602081602481885afa908115610d52578791610e60575b5080610c73575b50906104bb600080516020612809833981519152939260405193849384611c30565b6003546001600160a01b03168503610dbe5760025460405163095ea7b360e01b81526001600160a01b039091166004820152602481018290526020816044818b8a5af1908115610db3578891610d84575b5015610d61576002548791906001600160a01b0316803b15610d5d5760248392604051948593849263743e0c9b60e01b845260048401525af18015610d5257610d28575b50906104bb60008051602061280983398151915293925b91929350610c51565b86610d48600080516020612809833981519152959493986104bb93611a90565b9691929350610d08565b6040513d89823e3d90fd5b8280fd5b60025463482b72c160e11b885260048690526001600160a01b0316602452604487fd5b610da6915060203d602011610dac575b610d9e8183611a90565b810190611c7a565b38610cc4565b503d610d94565b6040513d8a823e3d90fd5b8654604051636c9b2a3f60e11b8152600481018790526001600160a01b0390911690602081602481855afa908115610e55578991610e36575b5015610e225791610e1d6104bb9260008051602061280983398151915296959488612682565b610d1f565b631387a34960e01b88526004869052602488fd5b610e4f915060203d602011610dac57610d9e8183611a90565b38610df7565b6040513d8b823e3d90fd5b90506020813d602011610e8a575b81610e7b60209383611a90565b810103126103a1575138610c4a565b3d9150610e6e565b604486868663482b72c160e11b8352600452602452fd5b610c158487846124ad565b604488888863482b72c160e11b8352600452602452fd5b610ee4915060203d602011610dac57610d9e8183611a90565b38610bea565b63482b72c160e11b87526001600160a01b0385166004526024869052604487fd5b63d92e233d60e01b8752600487fd5b63951e19ed60e01b8652600486fd5b50610f33366119de565b909192610f3e612220565b3415610ffd576001600160a01b03169283156105025760608201610400610f70610f688386611ae2565b905086611bd6565b11610fec5750848080803460018060a01b03600154165af1610f90611c4a565b5015610fdd577fa795d4377323e4c2d4c346b8050a7dd504c4043be8884c81b8d9690706c8388f916103396103479260405195348752886020880152608060408801526080870191611b45565b6379cacff160e01b8552600485fd5b8561036a8561036260449487611ae2565b633b38932f60e11b8552600485fd5b5060403660031901126101d157611021611956565b602435906001600160401b038211610d5d57816004019060a060031984360301126105115761104e612220565b341561112c576001600160a01b031691821561111d576064016104006110748284611ae2565b9050116110fa5750828080803460018060a01b03600154165af1611096611c4a565b50156110eb577fc6f891b65320c682b217616a62b51f218fee95d5f0ba83e758ef9ab4ee8e975c610347604051923484528560208501526080604085015285608085015260a0606085015260a0840190611b66565b6379cacff160e01b8352600483fd5b6111078491604493611ae2565b634fe7bc4760e11b835260045250610400602452fd5b63d92e233d60e01b8452600484fd5b633b38932f60e11b8452600484fd5b50346101d157806003193601126101d15760206040517f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b98152f35b50346101d157806003193601126101d157602060ff60008051602061284983398151915254166040519015158152f35b50346101d157806003193601126101d1576001546040516001600160a01b039091168152602090f35b50346101d157806003193601126101d1576002546040516001600160a01b039091168152602090f35b50346101d157806003193601126101d1577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036112515760206040516000805160206127e98339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101d157611275611956565b602435906001600160401b038211610d5d5736602383011215610d5d57816004013590836112a283611ac7565b936112b06040519586611a90565b83855260208501933660248284010111610d5d57806024602093018637850101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630811490811561145e575b5061144f57611313611d1c565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa86918161141b575b5061135657634c9c8ce360e01b86526004859052602486fd5b93846000805160206127e98339815191528796036114095750823b156113f7576000805160206127e983398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a28051156113dc576102329382915190845af46113d6611c4a565b91612747565b50505050346113e85780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011611447575b8161143760209383611a90565b810103126103a15751903861133d565b3d915061142a565b63703e46dd60e11b8452600484fd5b6000805160206127e9833981519152546001600160a01b03161415905038611306565b50346101d157806003193601126101d15761149a611dbd565b6000805160206128498339815191525460ff8116156114f45760ff1916600080516020612849833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50366003190160608112610515576020136101d157611520611987565b6044356001600160401b038111610d5d5761153f9036906004016119b1565b61154a929192612471565b611552611d6f565b61155a612220565b6001600160a01b038216918215610502576107f494507fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f919081856001600160a01b036115a5611c1a565b166115ee576115b39261258a565b935b6115c56040519283923484611c30565b0390a2600160008051602061286983398151915255604051918291602083526020830190611a6b565b6115f7926124ad565b936115b5565b50346101d15760403660031901126101d157611617611987565b336001600160a01b0382160361163357610232906004356123d1565b63334bd91960e11b8252600482fd5b50346101d15760403660031901126101d157610232600435611662611987565b9061166f61022882611bf9565b612189565b50346101d15760203660031901126101d1576020611693600435611bf9565b604051908152f35b50346101d157806003193601126101d1576003546040516001600160a01b039091168152602090f35b50346101d1576116d3366119de565b9190926116de612220565b6020830135801515810361179b5761178c576001600160a01b0316928315610502576117186117106060850185611ae2565b905082611bd6565b61040081116117745750907fd34634f30f94a646fdf4ce7078f38fc5fa0d3f0b193658facea4e3e43330d9749161176e61175f604051938493604085526040850191611b45565b82810360208401523395611b66565b0390a380f35b634fe7bc4760e11b8652600452610400602452604485fd5b630cda5ff960e11b8552600485fd5b8580fd5b50346101d15760803660031901126101d1576117b9611956565b6024356117c4611971565b91606435926001600160401b0384116103a557836004019160a0600319863603011261179b576117f2612220565b8315610f1a576001600160a01b03169384156106b8576064016104006118188285611ae2565b90501161188257507fc6f891b65320c682b217616a62b51f218fee95d5f0ba83e758ef9ab4ee8e975c918161185185610347943361224a565b60405194855260018060a01b031660208501526080604085015285608085015260a0606085015260a0840190611b66565b8561110760449285611ae2565b50346101d15760203660031901126101d1576118a9611956565b6118b1611d1c565b6001600160a01b03811690811561079c576002546001600160a01b03166118f2576118db90611eeb565b506001600160601b0360a01b600254161760025580f35b630646e00b60e11b8352600483fd5b9050346105155760203660031901126105155760043563ffffffff60e01b8116809103610d5d5760209250637965db0b60e01b8114908115611945575b5015158152f35b6301ffc9a760e01b1490503861193e565b600435906001600160a01b038216820361196c57565b600080fd5b604435906001600160a01b038216820361196c57565b602435906001600160a01b038216820361196c57565b35906001600160a01b038216820361196c57565b9181601f8401121561196c578235916001600160401b03831161196c576020838186019501011161196c57565b90606060031983011261196c576004356001600160a01b038116810361196c57916024356001600160401b03811161196c5781611a1d916004016119b1565b92909291604435906001600160401b03821161196c5760a090829003600319011261196c5760040190565b60005b838110611a5b5750506000910152565b8181015183820152602001611a4b565b90602091611a8481518092818552858086019101611a48565b601f01601f1916010190565b90601f801991011681019081106001600160401b03821117611ab157604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b038111611ab157601f01601f191660200190565b903590601e198136030182121561196c57018035906001600160401b03821161196c5760200191813603831361196c57565b9035601e198236030181121561196c5701602081359101916001600160401b03821161196c57813603831361196c57565b908060209392818452848401376000828201840152601f01601f1916010190565b906001600160a01b03611b788361199d565b168152602082013580151580910361196c5760208201526001600160a01b03611ba36040840161199d565b166040820152608080611bcd611bbc6060860186611b14565b60a0606087015260a0860191611b45565b93013591015290565b91908201809211611be357565b634e487b7160e01b600052601160045260246000fd5b60005260008051602061282983398151915260205260016040600020015490565b6004356001600160a01b038116810361196c5790565b604090611c47949281528160208201520191611b45565b90565b3d15611c75573d90611c5b82611ac7565b91611c696040519384611a90565b82523d6000602084013e565b606090565b9081602091031261196c5751801515810361196c5790565b611c479190608090611ce0906001600160a01b03611caf8261199d565b1684526001600160a01b03611cc66020830161199d565b166020850152604081013560408501526060810190611b14565b9190928160608201520191611b45565b9291611c479492611d0e928552606060208601526060850191611b45565b916040818403910152611c92565b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1615611d5557565b63e2517d3f60e01b60005233600452600060245260446000fd5b336000908152600080516020612889833981519152602052604090205460ff1615611d9657565b63e2517d3f60e01b600052336004526000805160206127a983398151915260245260446000fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1615611df657565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527f8e1abba0e730025cbab32adfc4f51c1ad3a74360c4b2cfb4780a6c5f316e0509602052604090205460ff1615611e6857565b63e2517d3f60e01b600052336004527f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b960245260446000fd5b60008181526000805160206128298339815191526020908152604080832033845290915290205460ff1615611ed35750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b03811660009081527f8e1abba0e730025cbab32adfc4f51c1ad3a74360c4b2cfb4780a6c5f316e0509602052604090205460ff16611fa7576001600160a01b031660008181527f8e1abba0e730025cbab32adfc4f51c1ad3a74360c4b2cfb4780a6c5f316e050960205260408120805460ff191660011790553391907f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b9906000805160206127c98339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020612889833981519152602052604090205460ff16611fa7576001600160a01b0316600081815260008051602061288983398151915260205260408120805460ff191660011790553391906000805160206127a9833981519152906000805160206127c98339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16611fa7576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391906000805160206127c98339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff16611fa7576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a906000805160206127c98339815191529080a4600190565b6000818152600080516020612829833981519152602090815260408083206001600160a01b038616845290915290205460ff16612219576000818152600080516020612829833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291906000805160206127c98339815191529080a4600190565b5050600090565b60ff600080516020612849833981519152541661223957565b63d93c066560e01b60005260046000fd5b60035492939290916001600160a01b03908116911681036122765763e4dd681d60e01b60005260046000fd5b600054604051636c9b2a3f60e11b8152600481018390526001600160a01b039091169490602081602481895afa90811561232f57600091612310575b50156122fb576122f99394604051936323b872dd60e01b602086015260018060a01b0316602485015260448401526064830152606482526122f4608483611a90565b6126be565b565b50631387a34960e01b60005260045260246000fd5b612329915060203d602011610dac57610d9e8183611a90565b386122b2565b6040513d6000823e3d90fd5b6001600160a01b0381166000908152600080516020612889833981519152602052604090205460ff1615611fa7576001600160a01b0316600081815260008051602061288983398151915260205260408120805460ff191690553391906000805160206127a9833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020612829833981519152602090815260408083206001600160a01b038616845290915290205460ff1615612219576000818152600080516020612829833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6002600080516020612869833981519152541461249c57600260008051602061286983398151915255565b633ee5aeb560e01b60005260046000fd5b6040516319db301560e21b815292916004356001600160a01b03811692919083900361196c57846124f581949260009683946004850152604060248501526044840191611b45565b039134906001600160a01b03165af190811561232f57600091612516575090565b903d8082843e6125268184611a90565b820191602081840312610515578051906001600160401b038211610d5d570182601f820112156105155780519161255c83611ac7565b9361256a6040519586611a90565b838552602084840101116101d1575090611c479160208085019101611a48565b9060048310156125d2575b908260009392849360405192839283378101848152039134905af16125b8611c4a565b90156125c15790565b632b3f6d1160e21b60005260046000fd5b9081356001600160e01b0319166319db301560e21b811461261157636481451b60e11b146126005790612595565b6379a2cd4b60e11b60005260046000fd5b63ed69977560e01b60005260046000fd5b60405163095ea7b360e01b81526001600160a01b039283166004820152600060248201819052909260209284926044928492165af190811561232f57600091612669575090565b611c47915060203d602011610dac57610d9e8183611a90565b60405163a9059cbb60e01b60208201526001600160a01b039290921660248301526044808301939093529181526122f9916122f4606483611a90565b906000602091828151910182855af11561232f576000513d61271057506001600160a01b0381163b155b6126ef5750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b600114156126e8565b60ff6000805160206128a98339815191525460401c161561273657565b631afcd79f60e31b60005260046000fd5b9061276d575080511561275c57805190602001fd5b63d6bda27560e01b60005260046000fd5b8151158061279f575b61277e575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b1561277656fe0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b738202dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f007bdc20c26beb8eedd348733c28a5c4c2f7f7f1183cba8898195258fcdca273bcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220e3ceedd3e1180302ea91f43717e98df4951453d3ade1c5982edc0e113031242064736f6c634300081a0033"; + "0x60a080604052346100ea57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b604051612ac290816100f082396080518181816112a801526113780152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880610054565b63f92ee8a960e01b60005260046000fd5b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a7146119be5750806310188aef1461194c578063102614b01461184c5780631becceb41461176157806321e093b114611738578063248a9ca3146117115780632f2ff15d146116df57806336568abe1461169a57806338e22527146115a05780633f4ba83a1461151e5780634f1ef286146112fd57806352d1902d1461129557806357bec62f1461126c5780635b112591146112435780635c975abb146112135780635d62c860146111d8578063726ac97c14611080578063744b9b8b14610f7c5780637bbe9afa14610b335780638456cb5914610abe57806391d1485414610a65578063950837aa146109c8578063a217fddf146109ac578063a2ba19341461098f578063a783c78914610966578063aa0c0fc114610815578063ad3cb1cc146107c8578063ae7a3a6f1461074c578063c0c53b8b14610542578063cb7ba8e5146103d2578063d09e3b7814610236578063d547741f146101fb578063dda79b75146101d45763e63ab1e91461019757600080fd5b346101d157806003193601126101d15760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b80fd5b50346101d157806003193601126101d157546040516001600160a01b039091168152602090f35b50346101d15760403660031901126101d15761023260043561021b611a44565b9061022d61022882611cb6565b611f46565b612529565b5080f35b50346101d15760a03660031901126101d157610250611a13565b60243561025b611a2e565b916064356001600160401b0381116103ce5761027b903690600401611a6e565b608435946001600160401b0386116103ca57856004019360a060031988360301126103c6576102a86122c5565b85156103b7576001600160a01b03169586156103a857606481016104006102da6102d28389611b9f565b905086611c93565b1161037a575060840135621e848081116103615750610357927fa795d4377323e4c2d4c346b8050a7dd504c4043be8884c81b8d9690706c8388f949282610325886103499533612307565b60405197885260018060a01b03166020880152608060408801526080870191611c02565b908482036060860152611c23565b918033930390a380f35b637643390f60e11b8852600452621e8480602452604487fd5b886103938561038b6044948a611b9f565b919050611c93565b634fe7bc4760e11b8252600452610400602452fd5b63d92e233d60e01b8852600488fd5b63951e19ed60e01b8852600488fd5b8780fd5b8680fd5b8480fd5b5060603660031901126101d1576103e7611a13565b906024356001600160401b03811161053e57610407903690600401611a6e565b604493919335906001600160401b03821161053a5760808260040192600319903603011261053a576104376125c9565b61043f611e14565b6104476122c5565b6001600160a01b03831692831561052b57848080809334905af1610469611d07565b501561051c578394833b156103ce57604051636481451b60e11b81526020600482015285818061049c6024820188611d37565b038183895af19081156105115786916104fc575b50506104e47fde7603a6ed5d07c9f43597ccfe9043d15b66d3284f0de321f5cdf56329e6e035936040519384933485611d95565b0390a36001600080516020612a2d8339815191525580f35b8161050691611b4d565b6103ce5784386104b0565b6040513d88823e3d90fd5b632b3f6d1160e21b8452600484fd5b63d92e233d60e01b8552600485fd5b8380fd5b5080fd5b50346101d15760603660031901126101d15761055c611a13565b610564611a44565b61056c611a2e565b600080516020612a6d833981519152549260ff8460401c1615936001600160401b03811680159081610744575b600114908161073a575b159081610731575b506107225767ffffffffffffffff198116600117600080516020612a6d83398151915255846106f5575b506001600160a01b03811691821580156106e4575b6106d5579061063f610645926105fe6128dd565b6106066128dd565b61060e6128dd565b6001600080516020612a2d833981519152556106286128dd565b6106306128dd565b610639816120d8565b50612172565b50612052565b506001600160601b0360a01b600154161760015560018060a01b03166001600160601b0360a01b600354161760035561067b5780f35b68ff000000000000000019600080516020612a6d8339815191525416600080516020612a6d833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b63d92e233d60e01b8652600486fd5b506001600160a01b038416156105ea565b68ffffffffffffffffff19166801000000000000000117600080516020612a6d83398151915255386105d5565b63f92ee8a960e01b8652600486fd5b905015386105ab565b303b1591506105a3565b869150610599565b50346101d15760203660031901126101d157610766611a13565b61076e611dc1565b6001600160a01b0381169081156107b95782546001600160a01b03166107aa5761079790611f90565b5081546001600160a01b03191617815580f35b631666fe6f60e31b8352600483fd5b63d92e233d60e01b8352600483fd5b50346101d157806003193601126101d157506108116040516107eb604082611b4d565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611b28565b0390f35b50346101d15760a03660031901126101d15761082f611a13565b610837611a44565b906044356064356001600160401b0381116103ce5761085a903690600401611a6e565b91608435926001600160401b0384116103ca576080846004019460031990360301126103ca576108886125c9565b610890611ed4565b6108986122c5565b8115610957576001600160a01b0386169485156103a8576001600160a01b0316956108c5908390886127fd565b843b156103ca57604051636481451b60e11b81526020600482015287908181806108f2602482018a611d37565b0381838b5af1801561094c57610937575b50507fde7603a6ed5d07c9f43597ccfe9043d15b66d3284f0de321f5cdf56329e6e035936104e49160405194859485611d95565b8161094191611b4d565b6103ca578638610903565b6040513d84823e3d90fd5b63951e19ed60e01b8752600487fd5b50346101d157806003193601126101d157602060405160008051602061296d8339815191528152f35b50346101d157806003193601126101d15760206040516104008152f35b50346101d157806003193601126101d157602090604051908152f35b50346101d15760203660031901126101d1576109e2611a13565b6109ea611dc1565b6001600160a01b0381169081156107b957600154610a15919061063f906001600160a01b0316612493565b50600154604080516001600160a01b0383168152602081018490527f3a7b8d6372645f474fe60c115a2ef21421306a3ed4664fa0023c461413c085799190a16001600160a01b0319161760015580f35b50346101d15760403660031901126101d1576040610a81611a44565b9160043581526000805160206129ed833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346101d157806003193601126101d157610ad7611e62565b610adf6122c5565b600160ff19600080516020612a0d833981519152541617600080516020612a0d833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101d157366003190160a0811261053e576020136101d157610b55611a44565b610b5d611a2e565b90606435906084356001600160401b0381116103ce57610b81903690600401611a6e565b929091610b8c6125c9565b610b94611ed4565b610b9c6122c5565b8115610f6d576001600160a01b038516948515610f5e57610bbd8183612786565b15610f1c5760405163095ea7b360e01b602082019081526001600160a01b0383166024830152604480830186905282528891829190610bfd606482611b4d565b519082865af1610c0b611d07565b9015610f3d57805180610efe575b50610c489190506001600160a01b03610c30611cd7565b16610eed57610c408686836126ee565b505b82612786565b15610ecd576040516370a0823160e01b81523060048201526001600160a01b03919091169390602081602481885afa908115610d8d578791610e9b575b5080610cae575b50906104e46000805160206129cd833981519152939260405193849384611ced565b6003546001600160a01b03168503610df95760025460405163095ea7b360e01b81526001600160a01b039091166004820152602481018290526020816044818b8a5af1908115610dee578891610dbf575b5015610d9c576002548791906001600160a01b0316803b15610d985760248392604051948593849263b6b55f2560e01b845260048401525af18015610d8d57610d63575b50906104e46000805160206129cd83398151915293925b91929350610c8c565b86610d836000805160206129cd833981519152959493986104e493611b4d565b9691929350610d43565b6040513d89823e3d90fd5b8280fd5b60025463482b72c160e11b885260048690526001600160a01b0316602452604487fd5b610de1915060203d602011610de7575b610dd98183611b4d565b8101906122ef565b38610cff565b503d610dcf565b6040513d8a823e3d90fd5b8654604051636c9b2a3f60e11b8152600481018790526001600160a01b0390911690602081602481855afa908115610e90578991610e71575b5015610e5d5791610e586104e4926000805160206129cd833981519152969594886127fd565b610d5a565b631387a34960e01b88526004869052602488fd5b610e8a915060203d602011610de757610dd98183611b4d565b38610e32565b6040513d8b823e3d90fd5b90506020813d602011610ec5575b81610eb660209383611b4d565b810103126103ca575138610c85565b3d9150610ea9565b63482b72c160e11b86526001600160a01b03166004526024849052604485fd5b610ef8868683612605565b50610c42565b90602080610f109383010191016122ef565b15610f1c573880610c19565b63482b72c160e11b87526001600160a01b0382166004526024869052604487fd5b63482b72c160e11b88526001600160a01b0383166004526024879052604488fd5b63d92e233d60e01b8752600487fd5b63951e19ed60e01b8652600486fd5b50610f8636611a9b565b909192610f916122c5565b3415611071576001600160a01b031692831561052b5760608201610400610fbb6102d28386611b9f565b1161106057506080820135621e848081116110475750848080803460018060a01b03600154165af1610feb611d07565b5015611038577fa795d4377323e4c2d4c346b8050a7dd504c4043be8884c81b8d9690706c8388f916103496103579260405195348752886020880152608060408801526080870191611c02565b6379cacff160e01b8552600485fd5b637643390f60e11b8652600452621e8480602452604485fd5b856103938561038b60449487611b9f565b633b38932f60e11b8552600485fd5b5060403660031901126101d157611095611a13565b602435906001600160401b038211610d9857816004019060a0600319843603011261053a576110c26122c5565b34156111c9576001600160a01b03169182156111ba57606481016104006110e98285611b9f565b905011611197575060840135621e8480811161117e5750828080803460018060a01b03600154165af161111a611d07565b501561116f577fc6f891b65320c682b217616a62b51f218fee95d5f0ba83e758ef9ab4ee8e975c610357604051923484528560208501526080604085015285608085015260a0606085015260a0840190611c23565b6379cacff160e01b8352600483fd5b637643390f60e11b8452600452621e8480602452604483fd5b846111a460449285611b9f565b634fe7bc4760e11b835260045250610400602452fd5b63d92e233d60e01b8452600484fd5b633b38932f60e11b8452600484fd5b50346101d157806003193601126101d15760206040517f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b98152f35b50346101d157806003193601126101d157602060ff600080516020612a0d83398151915254166040519015158152f35b50346101d157806003193601126101d1576001546040516001600160a01b039091168152602090f35b50346101d157806003193601126101d1576002546040516001600160a01b039091168152602090f35b50346101d157806003193601126101d1577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036112ee5760206040516000805160206129ad8339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101d157611312611a13565b602435906001600160401b038211610d985736602383011215610d98578160040135908361133f83611b84565b9361134d6040519586611b4d565b83855260208501933660248284010111610d9857806024602093018637850101526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163081149081156114fb575b506114ec576113b0611dc1565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa8691816114b8575b506113f357634c9c8ce360e01b86526004859052602486fd5b93846000805160206129ad8339815191528796036114a65750823b15611494576000805160206129ad83398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115611479576102329382915190845af4611473611d07565b9161290b565b50505050346114855780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d6020116114e4575b816114d460209383611b4d565b810103126103ca575190386113da565b3d91506114c7565b63703e46dd60e11b8452600484fd5b6000805160206129ad833981519152546001600160a01b031614159050386113a3565b50346101d157806003193601126101d157611537611e62565b600080516020612a0d8339815191525460ff8116156115915760ff1916600080516020612a0d833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b5036600319016060811261053e576020136101d1576115bd611a44565b6044356001600160401b038111610d98576115dc903690600401611a6e565b6115e79291926125c9565b6115ef611e14565b6115f76122c5565b6001600160a01b03821691821561052b5761081194507fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f919081856001600160a01b03611642611cd7565b1661168b57611650926126ee565b935b6116626040519283923484611ced565b0390a26001600080516020612a2d83398151915255604051918291602083526020830190611b28565b61169492612605565b93611652565b50346101d15760403660031901126101d1576116b4611a44565b336001600160a01b038216036116d05761023290600435612529565b63334bd91960e11b8252600482fd5b50346101d15760403660031901126101d1576102326004356116ff611a44565b9061170c61022882611cb6565b61222e565b50346101d15760203660031901126101d1576020611730600435611cb6565b604051908152f35b50346101d157806003193601126101d1576003546040516001600160a01b039091168152602090f35b50346101d15761177036611a9b565b91909261177b6122c5565b6020830135801515810361184857611839576001600160a01b031692831561052b576117b56117ad6060850185611b9f565b905082611c93565b610400811161182157506080830135621e848081116110475750907fd34634f30f94a646fdf4ce7078f38fc5fa0d3f0b193658facea4e3e43330d9749161181b61180c604051938493604085526040850191611c02565b82810360208401523395611c23565b0390a380f35b634fe7bc4760e11b8652600452610400602452604485fd5b630cda5ff960e11b8552600485fd5b8580fd5b50346101d15760803660031901126101d157611866611a13565b602435611871611a2e565b91606435926001600160401b0384116103ce57836004019160a060031986360301126118485761189f6122c5565b8315610f6d576001600160a01b03169384156106d557606481016104006118c68286611b9f565b90501161193f575060840135621e8480811161104757507fc6f891b65320c682b217616a62b51f218fee95d5f0ba83e758ef9ab4ee8e975c918161190e856103579433612307565b60405194855260018060a01b031660208501526080604085015285608085015260a0606085015260a0840190611c23565b866111a460449286611b9f565b50346101d15760203660031901126101d157611966611a13565b61196e611dc1565b6001600160a01b0381169081156107b9576002546001600160a01b03166119af5761199890611f90565b506001600160601b0360a01b600254161760025580f35b630646e00b60e11b8352600483fd5b90503461053e57602036600319011261053e5760043563ffffffff60e01b8116809103610d985760209250637965db0b60e01b8114908115611a02575b5015158152f35b6301ffc9a760e01b149050386119fb565b600435906001600160a01b0382168203611a2957565b600080fd5b604435906001600160a01b0382168203611a2957565b602435906001600160a01b0382168203611a2957565b35906001600160a01b0382168203611a2957565b9181601f84011215611a29578235916001600160401b038311611a295760208381860195010111611a2957565b906060600319830112611a29576004356001600160a01b0381168103611a2957916024356001600160401b038111611a295781611ada91600401611a6e565b92909291604435906001600160401b038211611a295760a0908290036003190112611a295760040190565b60005b838110611b185750506000910152565b8181015183820152602001611b08565b90602091611b4181518092818552858086019101611b05565b601f01601f1916010190565b90601f801991011681019081106001600160401b03821117611b6e57604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b038111611b6e57601f01601f191660200190565b903590601e1981360301821215611a2957018035906001600160401b038211611a2957602001918136038313611a2957565b9035601e1982360301811215611a295701602081359101916001600160401b038211611a29578136038313611a2957565b908060209392818452848401376000828201840152601f01601f1916010190565b906001600160a01b03611c3583611a5a565b1681526020820135801515809103611a295760208201526001600160a01b03611c6060408401611a5a565b166040820152608080611c8a611c796060860186611bd1565b60a0606087015260a0860191611c02565b93013591015290565b91908201809211611ca057565b634e487b7160e01b600052601160045260246000fd5b6000526000805160206129ed83398151915260205260016040600020015490565b6004356001600160a01b0381168103611a295790565b604090611d04949281528160208201520191611c02565b90565b3d15611d32573d90611d1882611b84565b91611d266040519384611b4d565b82523d6000602084013e565b606090565b611d049190608090611d85906001600160a01b03611d5482611a5a565b1684526001600160a01b03611d6b60208301611a5a565b166020850152604081013560408501526060810190611bd1565b9190928160608201520191611c02565b9291611d049492611db3928552606060208601526060850191611c02565b916040818403910152611d37565b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1615611dfa57565b63e2517d3f60e01b60005233600452600060245260446000fd5b336000908152600080516020612a4d833981519152602052604090205460ff1615611e3b57565b63e2517d3f60e01b6000523360045260008051602061296d83398151915260245260446000fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1615611e9b57565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527f8e1abba0e730025cbab32adfc4f51c1ad3a74360c4b2cfb4780a6c5f316e0509602052604090205460ff1615611f0d57565b63e2517d3f60e01b600052336004527f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b960245260446000fd5b60008181526000805160206129ed8339815191526020908152604080832033845290915290205460ff1615611f785750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b03811660009081527f8e1abba0e730025cbab32adfc4f51c1ad3a74360c4b2cfb4780a6c5f316e0509602052604090205460ff1661204c576001600160a01b031660008181527f8e1abba0e730025cbab32adfc4f51c1ad3a74360c4b2cfb4780a6c5f316e050960205260408120805460ff191660011790553391907f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b99060008051602061298d8339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020612a4d833981519152602052604090205460ff1661204c576001600160a01b03166000818152600080516020612a4d83398151915260205260408120805460ff1916600117905533919060008051602061296d8339815191529060008051602061298d8339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1661204c576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff1916600117905533919060008051602061298d8339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1661204c576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a9060008051602061298d8339815191529080a4600190565b60008181526000805160206129ed833981519152602090815260408083206001600160a01b038616845290915290205460ff166122be5760008181526000805160206129ed833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff191660011790553392919060008051602061298d8339815191529080a4600190565b5050600090565b60ff600080516020612a0d83398151915254166122de57565b63d93c066560e01b60005260046000fd5b90816020910312611a2957518015158103611a295790565b600354600093926001600160a01b039081169291168203612411578261232f9130908461283e565b60025460405163095ea7b360e01b81526001600160a01b0390911660048201526024810183905260208160448187865af19081156124065784916123e7575b50156123c357506002546001600160a01b031690813b15610d9857829160248392604051948593849263b6b55f2560e01b845260048401525af1801561094c576123b6575050565b816123c091611b4d565b50565b60025463482b72c160e11b84526004919091526001600160a01b0316602452604482fd5b612400915060203d602011610de757610dd98183611b4d565b3861236e565b6040513d86823e3d90fd5b8354604051636c9b2a3f60e11b8152600481018490529295946001600160a01b0390911692602081602481875afa90811561094c578291612474575b5015612460575061245e939461283e565b565b631387a34960e01b81526004869052602490fd5b61248d915060203d602011610de757610dd98183611b4d565b3861244d565b6001600160a01b0381166000908152600080516020612a4d833981519152602052604090205460ff161561204c576001600160a01b03166000818152600080516020612a4d83398151915260205260408120805460ff1916905533919060008051602061296d833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b60008181526000805160206129ed833981519152602090815260408083206001600160a01b038616845290915290205460ff16156122be5760008181526000805160206129ed833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6002600080516020612a2d83398151915254146125f4576002600080516020612a2d83398151915255565b633ee5aeb560e01b60005260046000fd5b6040516319db301560e21b815292916004356001600160a01b038116929190839003611a29578461264d81949260009683946004850152604060248501526044840191611c02565b039134906001600160a01b03165af19081156126e25760009161266e575090565b903d8082843e61267e8184611b4d565b82019160208184031261053e578051906001600160401b038211610d98570182601f8201121561053e578051916126b483611b84565b936126c26040519586611b4d565b838552602084840101116101d1575090611d049160208085019101611b05565b6040513d6000823e3d90fd5b906004831015612736575b908260009392849360405192839283378101848152039134905af161271c611d07565b90156127255790565b632b3f6d1160e21b60005260046000fd5b9081356001600160e01b0319166319db301560e21b811461277557636481451b60e11b1461276457906126f9565b6379a2cd4b60e11b60005260046000fd5b63ed69977560e01b60005260046000fd5b60405163095ea7b360e01b602082019081526001600160a01b0390931660248201526000604480830182905282529283929183906127c5606482611b4d565b51925af16127d1611d07565b90156127f757805190816127e6575050600190565b602080611d049383010191016122ef565b50600190565b60405163a9059cbb60e01b60208201526001600160a01b0392909216602483015260448083019390935291815261245e91612839606483611b4d565b612882565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815261245e91612839608483611b4d565b906000602091828151910182855af1156126e2576000513d6128d457506001600160a01b0381163b155b6128b35750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b600114156128ac565b60ff600080516020612a6d8339815191525460401c16156128fa57565b631afcd79f60e31b60005260046000fd5b90612931575080511561292057805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580612963575b612942575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b1561293a56fe0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b738202dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f007bdc20c26beb8eedd348733c28a5c4c2f7f7f1183cba8898195258fcdca273bcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212204c1dd3ca6d65db092fb8b1573967e48498ff429f5c5e4f4521adcd2c1b42bd0a64736f6c634300081a0033"; type GatewayEVMConstructorParams = | [signer?: Signer] diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorBase__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorBase__factory.ts index 0e8110af..3d292a0a 100644 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorBase__factory.ts +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorBase__factory.ts @@ -416,6 +416,19 @@ const _abi = [ stateMutability: "view", type: "function", }, + { + inputs: [ + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "deposit", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, { inputs: [], name: "gateway", @@ -551,19 +564,6 @@ const _abi = [ stateMutability: "view", type: "function", }, - { - inputs: [ - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "receiveTokens", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, { inputs: [ { @@ -670,124 +670,6 @@ const _abi = [ stateMutability: "payable", type: "function", }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes32", - name: "internalSendHash", - type: "bytes32", - }, - ], - name: "withdraw", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - ], - internalType: "struct MessageContext", - name: "messageContext", - type: "tuple", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - internalType: "bytes32", - name: "internalSendHash", - type: "bytes32", - }, - ], - name: "withdrawAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - internalType: "bytes32", - name: "internalSendHash", - type: "bytes32", - }, - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "revertMessage", - type: "bytes", - }, - ], - internalType: "struct RevertContext", - name: "revertContext", - type: "tuple", - }, - ], - name: "withdrawAndRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, { inputs: [], name: "zetaToken", diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNative__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNative__factory.ts index 0c19b8bc..bc118e3d 100644 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNative__factory.ts +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNative__factory.ts @@ -433,6 +433,19 @@ const _abi = [ stateMutability: "view", type: "function", }, + { + inputs: [ + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "deposit", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, { inputs: [], name: "gateway", @@ -568,19 +581,6 @@ const _abi = [ stateMutability: "view", type: "function", }, - { - inputs: [ - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "receiveTokens", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, { inputs: [ { @@ -699,11 +699,6 @@ const _abi = [ name: "amount", type: "uint256", }, - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, ], name: "withdraw", outputs: [], @@ -739,11 +734,6 @@ const _abi = [ name: "data", type: "bytes", }, - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, ], name: "withdrawAndCall", outputs: [], @@ -767,11 +757,6 @@ const _abi = [ name: "data", type: "bytes", }, - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, { components: [ { @@ -821,7 +806,7 @@ const _abi = [ ] as const; const _bytecode = - "0x60a0806040523460295730608052611bc4908161002f8239608051818181610bd40152610ca50152f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a71461107a57508063106e629014610fe2578063116191b614610fbb57806321e093b114610f92578063248a9ca314610f6b5780632f2ff15d14610f3957806336568abe14610ef45780633f4ba83a14610e725780634f1ef28614610c2957806352d1902d14610bc15780635b11259114610b985780635c975abb14610b685780636f8728ad146109a45780636fb9a7af1461081a578063743e0c9b146107b35780638456cb591461073e57806385f438c11461071557806391d14854146106bc578063950837aa146105ea578063a217fddf146105ce578063a783c78914610593578063ad3cb1cc14610519578063d547741f146104de578063e63ab1e9146104a35763f8c8765e1461013457600080fd5b346104a05760803660031901126104a05761014d6110cf565b6101556110ea565b906044356001600160a01b03811680820361049c576064356001600160a01b0381169490919085830361049857600080516020611b6f833981519152549567ffffffffffffffff60ff8860401c1615971680159081610490575b6001149081610486575b15908161047d575b5061046e57866101cf611259565b61043c575b600080516020611b6f833981519152549567ffffffffffffffff60ff8860401c1615971680159081610434575b600114908161042a575b159081610421575b506104125786610221611259565b6103e0575b6001600160a01b03169081159081156103ce575b81156103c5575b81156103bc575b506103ad57916102f49493916102ee936102606119df565b6102686119df565b6102706119df565b6001600080516020611b0f8339815191525561028a6119df565b6102926119df565b6001600160601b0360a01b8a541617895560018060a01b03166001600160601b0360a01b60015416176001556001600160601b0360a01b60025416176002556102da816115ad565b506102e483611489565b506102ee83611515565b50611647565b50610356575b6103015780f35b60ff60401b19600080516020611b6f8339815191525416600080516020611b6f833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b60ff60401b19600080516020611b6f8339815191525416600080516020611b6f833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a16102fa565b63d92e233d60e01b8852600488fd5b90501538610248565b84159150610241565b6001600160a01b03841615915061023a565b600160401b60ff60401b19600080516020611b6f833981519152541617600080516020611b6f83398151915255610226565b63f92ee8a960e01b8952600489fd5b90501538610213565b303b15915061020b565b889150610201565b600160401b60ff60401b19600080516020611b6f833981519152541617600080516020611b6f833981519152556101d4565b63f92ee8a960e01b8852600488fd5b905015386101c1565b303b1591506101b9565b8891506101af565b8680fd5b8480fd5b80fd5b50346104a057806003193601126104a05760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346104a05760403660031901126104a0576105156004356104fe6110ea565b9061051061050b82611196565b6113d8565b6118d8565b5080f35b50346104a057806003193601126104a05760408051916105398284611114565b60058352640352e302e360dc1b6020840152815192839160208352815191826020850152815b83811061057c575050828201840152601f01601f19168101030190f35b60208282018101518883018801528795500161055f565b50346104a057806003193601126104a05760206040517f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb8152f35b50346104a057806003193601126104a057602090604051908152f35b50346104a05760203660031901126104a0576106046110cf565b61060c611385565b6001600160a01b0381169081156106ad5760025461065d9190610637906001600160a01b031661179a565b5060025461064d906001600160a01b0316611830565b5061065781611489565b50611515565b50600254604080516001600160a01b0383168152602081018490527f33770ab682353c17917ad3e667f05905fc8dda00671ef1ed33bef9bc8db0323e9190a16001600160a01b0319161760025580f35b63d92e233d60e01b8352600483fd5b50346104a05760403660031901126104a05760406106d86110ea565b916004358152600080516020611acf833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346104a057806003193601126104a0576020604051600080516020611aaf8339815191528152f35b50346104a057806003193601126104a057610757611313565b61075f611422565b600160ff19600080516020611aef833981519152541617600080516020611aef833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346104a05760203660031901126104a0576107cd611422565b6001546040516323b872dd60e01b60208201523360248201523060448201526004356064808301919091528152610817916001600160a01b0316610812608483611114565b611978565b80f35b50346104a057366003190160a081126109a0576020136104a05761083c6110ea565b60443560643567ffffffffffffffff811161099c5761085f903690600401611168565b9091610869611289565b6108716112c5565b610879611422565b60015485546108969183916001600160a01b03908116911661144c565b84546001546001600160a01b03918216958792909116863b1561099857604051633ddf4d7d60e11b81529183918391906001600160a01b036108d66110cf565b16600484015260248301526001600160a01b0316604482018190526064820186905260a060848301529781838161091160a482018b8d6111b7565b03925af1801561098d57610978575b50506109607f23b9573b29ff81f01c7aa1968188e1cb7d5858b08582e111fdaf386d9ef9bd8d9360405193849384526040602085015260408401916111b7565b0390a26001600080516020611b0f8339815191525580f35b8161098291611114565b61049c578438610920565b6040513d84823e3d90fd5b8280fd5b8380fd5b5080fd5b50346104a05760a03660031901126104a0576109be6110cf565b906024359060443567ffffffffffffffff81116109a0576109e3903690600401611168565b909260843567ffffffffffffffff811161099c5760808160040191600319903603011261099c57610a12611289565b610a1a6112c5565b610a22611422565b6001548454610a3f9184916001600160a01b03908116911661144c565b83546001546001600160a01b03918216979116873b15610b645794610aa78798610ab99383809a996040519687958694859363aa0c0fc160e01b8552600485015260018060a01b03169c8d60248501528b604485015260a060648501528c60a48501916111b7565b828103600319016084840152896111d8565b03925af18015610b5957610b1b575b5061096090610b0d7f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff095969760405195869586526060602087015260608601916111b7565b9083820360408501526111d8565b90610b0d86610b4f7f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff0979861096095611114565b9695505090610ac8565b6040513d88823e3d90fd5b8580fd5b50346104a057806003193601126104a057602060ff600080516020611aef83398151915254166040519015158152f35b50346104a057806003193601126104a0576002546040516001600160a01b039091168152602090f35b50346104a057806003193601126104a0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610c1a576020604051600080516020611a8f8339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126104a057610c3e6110cf565b6024359067ffffffffffffffff821161099857366023830112156109985781600401359083610c6c8361114c565b93610c7a6040519586611114565b8385526020850193366024828401011161099857806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610e4f575b50610e4057610cdd611385565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181610e0c575b50610d2057634c9c8ce360e01b86526004859052602486fd5b9384600080516020611a8f833981519152879603610dfa5750823b15610de857600080516020611a8f83398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115610dcd576105159382915190845af43d15610dc5573d91610da98361114c565b92610db76040519485611114565b83523d85602085013e611a0d565b606091611a0d565b5050505034610dd95780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011610e38575b81610e2860209383611114565b8101031261049857519038610d07565b3d9150610e1b565b63703e46dd60e11b8452600484fd5b600080516020611a8f833981519152546001600160a01b03161415905038610cd0565b50346104a057806003193601126104a057610e8b611313565b600080516020611aef8339815191525460ff811615610ee55760ff1916600080516020611aef833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346104a05760403660031901126104a057610f0e6110ea565b336001600160a01b03821603610f2a57610515906004356118d8565b63334bd91960e11b8252600482fd5b50346104a05760403660031901126104a057610515600435610f596110ea565b90610f6661050b82611196565b611703565b50346104a05760203660031901126104a0576020610f8a600435611196565b604051908152f35b50346104a057806003193601126104a0576001546040516001600160a01b039091168152602090f35b50346104a057806003193601126104a057546040516001600160a01b039091168152602090f35b50346104a05760603660031901126104a057610ffc6110cf565b7f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d560206024359261102b611289565b6110336112c5565b61103b611422565b60015461105490859083906001600160a01b031661144c565b6040519384526001600160a01b031692a26001600080516020611b0f8339815191525580f35b9050346109a05760203660031901126109a05760043563ffffffff60e01b81168091036109985760209250637965db0b60e01b81149081156110be575b5015158152f35b6301ffc9a760e01b149050386110b7565b600435906001600160a01b03821682036110e557565b600080fd5b602435906001600160a01b03821682036110e557565b35906001600160a01b03821682036110e557565b90601f8019910116810190811067ffffffffffffffff82111761113657604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161113657601f01601f191660200190565b9181601f840112156110e55782359167ffffffffffffffff83116110e557602083818601950101116110e557565b600052600080516020611acf83398151915260205260016040600020015490565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160a01b036111e982611100565b1682526001600160a01b0361120060208301611100565b166020830152604081013560408301526060810135601e19823603018112156110e557016020813591019067ffffffffffffffff81116110e55780360382136110e55760808381606061125696015201916111b7565b90565b600167ffffffffffffffff19600080516020611b6f833981519152541617600080516020611b6f83398151915255565b6002600080516020611b0f83398151915254146112b4576002600080516020611b0f83398151915255565b633ee5aeb560e01b60005260046000fd5b336000908152600080516020611b2f833981519152602052604090205460ff16156112ec57565b63e2517d3f60e01b60005233600452600080516020611aaf83398151915260245260446000fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561134c57565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16156113be57565b63e2517d3f60e01b60005233600452600060245260446000fd5b6000818152600080516020611acf8339815191526020908152604080832033845290915290205460ff161561140a5750565b63e2517d3f60e01b6000523360045260245260446000fd5b60ff600080516020611aef833981519152541661143b57565b63d93c066560e01b60005260046000fd5b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815261148791610812606483611114565b565b6001600160a01b0381166000908152600080516020611b2f833981519152602052604090205460ff1661150f576001600160a01b03166000818152600080516020611b2f83398151915260205260408120805460ff19166001179055339190600080516020611aaf83398151915290600080516020611a6f8339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020611b4f833981519152602052604090205460ff1661150f576001600160a01b03166000818152600080516020611b4f83398151915260205260408120805460ff191660011790553391907f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb90600080516020611a6f8339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1661150f576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff19166001179055339190600080516020611a6f8339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1661150f576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a90600080516020611a6f8339815191529080a4600190565b6000818152600080516020611acf833981519152602090815260408083206001600160a01b038616845290915290205460ff16611793576000818152600080516020611acf833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff1916600117905533929190600080516020611a6f8339815191529080a4600190565b5050600090565b6001600160a01b0381166000908152600080516020611b2f833981519152602052604090205460ff161561150f576001600160a01b03166000818152600080516020611b2f83398151915260205260408120805460ff19169055339190600080516020611aaf833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381166000908152600080516020611b4f833981519152602052604090205460ff161561150f576001600160a01b03166000818152600080516020611b4f83398151915260205260408120805460ff191690553391907f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020611acf833981519152602090815260408083206001600160a01b038616845290915290205460ff1615611793576000818152600080516020611acf833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b906000602091828151910182855af1156119d3576000513d6119ca57506001600160a01b0381163b155b6119a95750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b600114156119a2565b6040513d6000823e3d90fd5b60ff600080516020611b6f8339815191525460401c16156119fc57565b631afcd79f60e31b60005260046000fd5b90611a335750805115611a2257805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611a65575b611a44575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15611a3c56fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00395f4e35a18c2b5e556b3b2ff855307e76c0b3cc1ca71e19a70e83037e08e7b37bdc20c26beb8eedd348733c28a5c4c2f7f7f1183cba8898195258fcdca273bcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212202bdad00032481621f5688942b2f2636896811e160d422fd2afd2200c14598d1164736f6c634300081a0033"; + "0x60a080604052346100ea57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b604051611a9390816100f082396080518181816109a70152610a780152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880610054565b63f92ee8a960e01b60005260046000fd5b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a714610f7957508063116191b614610f5257806316b12bb614610d8e57806321e093b114610d65578063248a9ca314610d3e5780632f2ff15d14610d0c57806336568abe14610cc75780633f4ba83a14610c455780634f1ef286146109fc57806352d1902d146109945780635b1125911461096b5780635c975abb1461093b5780638456cb59146108c657806385f438c11461089d57806391d1485414610844578063950837aa14610782578063a217fddf14610766578063a783c7891461072b578063ad3cb1cc146106b1578063b6b55f251461064a578063d547741f1461060f578063e63ab1e9146105d4578063f3fef3a31461053c578063f61ff82a146103b25763f8c8765e1461013457600080fd5b346103af5760803660031901126103af5761014d610fce565b610155610fe9565b6044356001600160a01b0381168082036103ab57606435926001600160a01b0384168085036103a757600080516020611a3e833981519152549560ff8760401c16159667ffffffffffffffff81168015908161039f575b6001149081610395575b15908161038c575b5061037d5767ffffffffffffffff198116600117600080516020611a3e8339815191525587610350575b506101f16118ae565b6001600160a01b031690811590811561033e575b8115610335575b811561032c575b5061031d57916102bb9493916102b59361022b6118ae565b6102336118ae565b61023b6118ae565b60016000805160206119de833981519152556102556118ae565b61025d6118ae565b6001600160601b0360a01b89541617885560018060a01b03166001600160601b0360a01b60015416176001556001600160601b0360a01b60025416176002556102a58361147c565b506102af81611358565b506113e4565b50611516565b506102c35780f35b68ff000000000000000019600080516020611a3e8339815191525416600080516020611a3e833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b63d92e233d60e01b8752600487fd5b90501538610213565b8415915061020c565b6001600160a01b038416159150610205565b68ffffffffffffffffff19166801000000000000000117600080516020611a3e83398151915255386101e8565b63f92ee8a960e01b8952600489fd5b905015386101be565b303b1591506101b6565b8991506101ac565b8680fd5b8480fd5b80fd5b50346103af57366003190160808112610538576020136103af576103d4610fe9565b60443560643567ffffffffffffffff8111610534576103f7903690600401611013565b9091610401611158565b610409611194565b6104116112f1565b600154855461042e9183916001600160a01b03908116911661131b565b84546001546001600160a01b03918216958792909116863b1561053057604051633ddf4d7d60e11b81529183918391906001600160a01b0361046e610fce565b16600484015260248301526001600160a01b0316604482018190526064820186905260a06084830152978183816104a960a482018b8d611095565b03925af1801561052557610510575b50506104f87f23b9573b29ff81f01c7aa1968188e1cb7d5858b08582e111fdaf386d9ef9bd8d936040519384938452604060208501526040840191611095565b0390a260016000805160206119de8339815191525580f35b8161051a91611041565b6103ab5784386104b8565b6040513d84823e3d90fd5b8280fd5b8380fd5b5080fd5b50346103af5760403660031901126103af57610556610fce565b7f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5602060243592610585611158565b61058d611194565b6105956112f1565b6001546105ae90859083906001600160a01b031661131b565b6040519384526001600160a01b031692a260016000805160206119de8339815191525580f35b50346103af57806003193601126103af5760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346103af5760403660031901126103af5761064660043561062f610fe9565b9061064161063c82611137565b6112a7565b6117a7565b5080f35b50346103af5760203660031901126103af576106646112f1565b6001546040516323b872dd60e01b602082015233602482015230604482015260043560648083019190915281526106ae916001600160a01b03166106a9608483611041565b611847565b80f35b50346103af57806003193601126103af5760408051916106d18284611041565b60058352640352e302e360dc1b6020840152815192839160208352815191826020850152815b838110610714575050828201840152601f01601f19168101030190f35b6020828201810151888301880152879550016106f7565b50346103af57806003193601126103af5760206040517f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb8152f35b50346103af57806003193601126103af57602090604051908152f35b50346103af5760203660031901126103af5761079c610fce565b6107a4611254565b6001600160a01b038116908115610835576002546107e591906107cf906001600160a01b0316611669565b506002546102a5906001600160a01b03166116ff565b50600254604080516001600160a01b0383168152602081018490527f33770ab682353c17917ad3e667f05905fc8dda00671ef1ed33bef9bc8db0323e9190a16001600160a01b0319161760025580f35b63d92e233d60e01b8352600483fd5b50346103af5760403660031901126103af576040610860610fe9565b91600435815260008051602061199e833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346103af57806003193601126103af57602060405160008051602061197e8339815191528152f35b50346103af57806003193601126103af576108df6111e2565b6108e76112f1565b600160ff196000805160206119be8339815191525416176000805160206119be833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346103af57806003193601126103af57602060ff6000805160206119be83398151915254166040519015158152f35b50346103af57806003193601126103af576002546040516001600160a01b039091168152602090f35b50346103af57806003193601126103af577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036109ed57602060405160008051602061195e8339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126103af57610a11610fce565b6024359067ffffffffffffffff821161053057366023830112156105305781600401359083610a3f83611079565b93610a4d6040519586611041565b8385526020850193366024828401011161053057806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610c22575b50610c1357610ab0611254565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181610bdf575b50610af357634c9c8ce360e01b86526004859052602486fd5b938460008051602061195e833981519152879603610bcd5750823b15610bbb5760008051602061195e83398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115610ba0576106469382915190845af43d15610b98573d91610b7c83611079565b92610b8a6040519485611041565b83523d85602085013e6118dc565b6060916118dc565b5050505034610bac5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011610c0b575b81610bfb60209383611041565b810103126103a757519038610ada565b3d9150610bee565b63703e46dd60e11b8452600484fd5b60008051602061195e833981519152546001600160a01b03161415905038610aa3565b50346103af57806003193601126103af57610c5e6111e2565b6000805160206119be8339815191525460ff811615610cb85760ff19166000805160206119be833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346103af5760403660031901126103af57610ce1610fe9565b336001600160a01b03821603610cfd57610646906004356117a7565b63334bd91960e11b8252600482fd5b50346103af5760403660031901126103af57610646600435610d2c610fe9565b90610d3961063c82611137565b6115d2565b50346103af5760203660031901126103af576020610d5d600435611137565b604051908152f35b50346103af57806003193601126103af576001546040516001600160a01b039091168152602090f35b50346103af5760803660031901126103af57610da8610fce565b906024359060443567ffffffffffffffff811161053857610dcd903690600401611013565b909260643567ffffffffffffffff81116105345760808160040191600319903603011261053457610dfc611158565b610e04611194565b610e0c6112f1565b6001548454610e299184916001600160a01b03908116911661131b565b83546001546001600160a01b03918216979116873b15610f4e5794610e918798610ea39383809a996040519687958694859363aa0c0fc160e01b8552600485015260018060a01b03169c8d60248501528b604485015260a060648501528c60a4850191611095565b828103600319016084840152896110b6565b03925af18015610f4357610f05575b506104f890610ef77f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff09596976040519586958652606060208701526060860191611095565b9083820360408501526110b6565b90610ef786610f397f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff097986104f895611041565b9695505090610eb2565b6040513d88823e3d90fd5b8580fd5b50346103af57806003193601126103af57546040516001600160a01b039091168152602090f35b9050346105385760203660031901126105385760043563ffffffff60e01b81168091036105305760209250637965db0b60e01b8114908115610fbd575b5015158152f35b6301ffc9a760e01b14905038610fb6565b600435906001600160a01b0382168203610fe457565b600080fd5b602435906001600160a01b0382168203610fe457565b35906001600160a01b0382168203610fe457565b9181601f84011215610fe45782359167ffffffffffffffff8311610fe45760208381860195010111610fe457565b90601f8019910116810190811067ffffffffffffffff82111761106357604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161106357601f01601f191660200190565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160a01b036110c782610fff565b1682526001600160a01b036110de60208301610fff565b166020830152604081013560408301526060810135601e1982360301811215610fe457016020813591019067ffffffffffffffff8111610fe4578036038213610fe4576080838160606111349601520191611095565b90565b60005260008051602061199e83398151915260205260016040600020015490565b60026000805160206119de83398151915254146111835760026000805160206119de83398151915255565b633ee5aeb560e01b60005260046000fd5b3360009081526000805160206119fe833981519152602052604090205460ff16156111bb57565b63e2517d3f60e01b6000523360045260008051602061197e83398151915260245260446000fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561121b57565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff161561128d57565b63e2517d3f60e01b60005233600452600060245260446000fd5b600081815260008051602061199e8339815191526020908152604080832033845290915290205460ff16156112d95750565b63e2517d3f60e01b6000523360045260245260446000fd5b60ff6000805160206119be833981519152541661130a57565b63d93c066560e01b60005260046000fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152611356916106a9606483611041565b565b6001600160a01b03811660009081526000805160206119fe833981519152602052604090205460ff166113de576001600160a01b031660008181526000805160206119fe83398151915260205260408120805460ff1916600117905533919060008051602061197e8339815191529060008051602061193e8339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020611a1e833981519152602052604090205460ff166113de576001600160a01b03166000818152600080516020611a1e83398151915260205260408120805460ff191660011790553391907f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb9060008051602061193e8339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff166113de576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff1916600117905533919060008051602061193e8339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff166113de576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a9060008051602061193e8339815191529080a4600190565b600081815260008051602061199e833981519152602090815260408083206001600160a01b038616845290915290205460ff1661166257600081815260008051602061199e833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff191660011790553392919060008051602061193e8339815191529080a4600190565b5050600090565b6001600160a01b03811660009081526000805160206119fe833981519152602052604090205460ff16156113de576001600160a01b031660008181526000805160206119fe83398151915260205260408120805460ff1916905533919060008051602061197e833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381166000908152600080516020611a1e833981519152602052604090205460ff16156113de576001600160a01b03166000818152600080516020611a1e83398151915260205260408120805460ff191690553391907f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b600081815260008051602061199e833981519152602090815260408083206001600160a01b038616845290915290205460ff161561166257600081815260008051602061199e833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b906000602091828151910182855af1156118a2576000513d61189957506001600160a01b0381163b155b6118785750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b60011415611871565b6040513d6000823e3d90fd5b60ff600080516020611a3e8339815191525460401c16156118cb57565b631afcd79f60e31b60005260046000fd5b9061190257508051156118f157805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611934575b611913575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b1561190b56fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00395f4e35a18c2b5e556b3b2ff855307e76c0b3cc1ca71e19a70e83037e08e7b37bdc20c26beb8eedd348733c28a5c4c2f7f7f1183cba8898195258fcdca273bcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220ed0cd71c9a6ddd4cad0a58b7cc7680ac50fe49f9c40f7e8c74df8bd4dee8536b64736f6c634300081a0033"; type ZetaConnectorNativeConstructorParams = | [signer?: Signer] diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNonNative__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNonNative__factory.ts index c96445ab..c3e39a3d 100644 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNonNative__factory.ts +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNonNative__factory.ts @@ -440,6 +440,19 @@ const _abi = [ stateMutability: "view", type: "function", }, + { + inputs: [ + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "deposit", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, { inputs: [], name: "gateway", @@ -588,19 +601,6 @@ const _abi = [ stateMutability: "view", type: "function", }, - { - inputs: [ - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "receiveTokens", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, { inputs: [ { @@ -854,7 +854,7 @@ const _abi = [ ] as const; const _bytecode = - "0x60a0806040523460295730608052611ce5908161002f8239608051818181610cb70152610d880152f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a71461115157508063106e6290146110c5578063116191b61461109e57806321e093b114611075578063248a9ca31461104e5780632f2ff15d1461101c57806336568abe14610fd75780633f4ba83a14610f555780634f1ef28614610d0c57806352d1902d14610ca45780635b11259114610c7b5780635c975abb14610c4b5780636f8728ad14610a8a5780636f8b44b0146109d85780636fb9a7af1461085c578063743e0c9b146107db5780638456cb591461076657806385f438c11461073d57806391d14854146106e4578063950837aa14610612578063a217fddf146105f6578063a783c789146105cd578063ad3cb1cc14610553578063d547741f14610518578063d5abeb01146104fa578063e63ab1e9146104bf5763f8c8765e1461014a57600080fd5b346104bc5760803660031901126104bc576101636111a6565b61016b6111c1565b906044356001600160a01b0381168082036104b8576064356001600160a01b038116949091908583036104b457600080516020611c90833981519152549567ffffffffffffffff60ff8860401c16159716801590816104ac575b60011490816104a2575b159081610499575b5061048a57866101e5611330565b610458575b600080516020611c90833981519152549567ffffffffffffffff60ff8860401c1615971680159081610450575b6001149081610446575b15908161043d575b5061042e5786610237611330565b6103fc575b6001600160a01b03169081159081156103ea575b81156103e1575b81156103d8575b506103c9579161030a94939161030493610276611ae0565b61027e611ae0565b610286611ae0565b6001600080516020611c30833981519152556102a0611ae0565b6102a8611ae0565b6001600160601b0360a01b8a541617895560018060a01b03166001600160601b0360a01b60015416176001556001600160601b0360a01b60025416176002556102f081611727565b506102fa83611615565b50610304836116a1565b506117c1565b50610372575b60001960035561031d5780f35b60ff60401b19600080516020611c908339815191525416600080516020611c90833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b60ff60401b19600080516020611c908339815191525416600080516020611c90833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1610310565b63d92e233d60e01b8852600488fd5b9050153861025e565b84159150610257565b6001600160a01b038416159150610250565b600160401b60ff60401b19600080516020611c90833981519152541617600080516020611c908339815191525561023c565b63f92ee8a960e01b8952600489fd5b90501538610229565b303b159150610221565b889150610217565b600160401b60ff60401b19600080516020611c90833981519152541617600080516020611c90833981519152556101ea565b63f92ee8a960e01b8852600488fd5b905015386101d7565b303b1591506101cf565b8891506101c5565b8680fd5b8480fd5b80fd5b50346104bc57806003193601126104bc5760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346104bc57806003193601126104bc576020600354604051908152f35b50346104bc5760403660031901126104bc5761054f6004356105386111c1565b9061054a6105458261126d565b6114af565b611a40565b5080f35b50346104bc57806003193601126104bc57604080519161057382846111eb565b60058352640352e302e360dc1b6020840152815192839160208352815191826020850152815b8381106105b6575050828201840152601f01601f19168101030190f35b602082820181015188830188015287955001610599565b50346104bc57806003193601126104bc576020604051600080516020611b708339815191528152f35b50346104bc57806003193601126104bc57602090604051908152f35b50346104bc5760203660031901126104bc5761062c6111a6565b61063461145c565b6001600160a01b0381169081156106d557600254610685919061065f906001600160a01b0316611914565b50600254610675906001600160a01b03166119aa565b5061067f81611615565b506116a1565b50600254604080516001600160a01b0383168152602081018490527f33770ab682353c17917ad3e667f05905fc8dda00671ef1ed33bef9bc8db0323e9190a16001600160a01b0319161760025580f35b63d92e233d60e01b8352600483fd5b50346104bc5760403660031901126104bc5760406107006111c1565b916004358152600080516020611bf0833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346104bc57806003193601126104bc576020604051600080516020611bd08339815191528152f35b50346104bc57806003193601126104bc5761077f6113ea565b6107876114f9565b600160ff19600080516020611c10833981519152541617600080516020611c10833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346104bc5760203660031901126104bc576107f56114f9565b60015481906001600160a01b0316803b156108595781809160446040518094819363079cc67960e41b835233600484015260043560248401525af1801561084e5761083d5750f35b81610847916111eb565b6104bc5780f35b6040513d84823e3d90fd5b50fd5b50346104bc57366003190160a081126109d4576020136104bc5761087e6111c1565b60443560643567ffffffffffffffff81116109d0576108a190369060040161123f565b90916108ab611360565b6108b361139c565b6108bb6114f9565b84546108d5906084359083906001600160a01b0316611523565b84546001546001600160a01b03918216958792909116863b156109cc57604051633ddf4d7d60e11b81529183918391906001600160a01b036109156111a6565b16600484015260248301526001600160a01b0316604482018190526064820186905260a060848301529781838161095060a482018b8d61128e565b03925af1801561084e576109b7575b505061099f7f23b9573b29ff81f01c7aa1968188e1cb7d5858b08582e111fdaf386d9ef9bd8d93604051938493845260406020850152604084019161128e565b0390a26001600080516020611c308339815191525580f35b816109c1916111eb565b6104b857843861095f565b8280fd5b8380fd5b5080fd5b50346104bc5760203660031901126104bc57600080516020611b708339815191528152600080516020611bf08339815191526020908152604080832033600090815292529020546004359060ff1615610a655760207f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c91610a576114f9565b80600355604051908152a180f35b63e2517d3f60e01b825233600452600080516020611b70833981519152602452604482fd5b50346104bc5760a03660031901126104bc57610aa46111a6565b906024359060443567ffffffffffffffff81116109d457610ac990369060040161123f565b909260843567ffffffffffffffff81116109d0576080816004019160031990360301126109d057610af8611360565b610b0061139c565b610b086114f9565b8354610b22906064359084906001600160a01b0316611523565b83546001546001600160a01b03918216979116873b15610c475794610b8a8798610b9c9383809a996040519687958694859363aa0c0fc160e01b8552600485015260018060a01b03169c8d60248501528b604485015260a060648501528c60a485019161128e565b828103600319016084840152896112af565b03925af18015610c3c57610bfe575b5061099f90610bf07f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff0959697604051958695865260606020870152606086019161128e565b9083820360408501526112af565b90610bf086610c327f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff0979861099f956111eb565b9695505090610bab565b6040513d88823e3d90fd5b8580fd5b50346104bc57806003193601126104bc57602060ff600080516020611c1083398151915254166040519015158152f35b50346104bc57806003193601126104bc576002546040516001600160a01b039091168152602090f35b50346104bc57806003193601126104bc577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610cfd576020604051600080516020611bb08339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126104bc57610d216111a6565b6024359067ffffffffffffffff82116109cc57366023830112156109cc5781600401359083610d4f83611223565b93610d5d60405195866111eb565b838552602085019336602482840101116109cc57806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610f32575b50610f2357610dc061145c565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181610eef575b50610e0357634c9c8ce360e01b86526004859052602486fd5b9384600080516020611bb0833981519152879603610edd5750823b15610ecb57600080516020611bb083398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115610eb05761054f9382915190845af43d15610ea8573d91610e8c83611223565b92610e9a60405194856111eb565b83523d85602085013e611b0e565b606091611b0e565b5050505034610ebc5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011610f1b575b81610f0b602093836111eb565b810103126104b457519038610dea565b3d9150610efe565b63703e46dd60e11b8452600484fd5b600080516020611bb0833981519152546001600160a01b03161415905038610db3565b50346104bc57806003193601126104bc57610f6e6113ea565b600080516020611c108339815191525460ff811615610fc85760ff1916600080516020611c10833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346104bc5760403660031901126104bc57610ff16111c1565b336001600160a01b0382160361100d5761054f90600435611a40565b63334bd91960e11b8252600482fd5b50346104bc5760403660031901126104bc5761054f60043561103c6111c1565b906110496105458261126d565b61187d565b50346104bc5760203660031901126104bc57602061106d60043561126d565b604051908152f35b50346104bc57806003193601126104bc576001546040516001600160a01b039091168152602090f35b50346104bc57806003193601126104bc57546040516001600160a01b039091168152602090f35b50346104bc5760603660031901126104bc576110df6111a6565b7f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d560206024359261110e611360565b61111661139c565b61111e6114f9565b61112b6044358583611523565b6040519384526001600160a01b031692a26001600080516020611c308339815191525580f35b9050346109d45760203660031901126109d45760043563ffffffff60e01b81168091036109cc5760209250637965db0b60e01b8114908115611195575b5015158152f35b6301ffc9a760e01b1490503861118e565b600435906001600160a01b03821682036111bc57565b600080fd5b602435906001600160a01b03821682036111bc57565b35906001600160a01b03821682036111bc57565b90601f8019910116810190811067ffffffffffffffff82111761120d57604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161120d57601f01601f191660200190565b9181601f840112156111bc5782359167ffffffffffffffff83116111bc57602083818601950101116111bc57565b600052600080516020611bf083398151915260205260016040600020015490565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160a01b036112c0826111d7565b1682526001600160a01b036112d7602083016111d7565b166020830152604081013560408301526060810135601e19823603018112156111bc57016020813591019067ffffffffffffffff81116111bc5780360382136111bc5760808381606061132d960152019161128e565b90565b600167ffffffffffffffff19600080516020611c90833981519152541617600080516020611c9083398151915255565b6002600080516020611c30833981519152541461138b576002600080516020611c3083398151915255565b633ee5aeb560e01b60005260046000fd5b336000908152600080516020611c50833981519152602052604090205460ff16156113c357565b63e2517d3f60e01b60005233600452600080516020611bd083398151915260245260446000fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561142357565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff161561149557565b63e2517d3f60e01b60005233600452600060245260446000fd5b6000818152600080516020611bf08339815191526020908152604080832033845290915290205460ff16156114e15750565b63e2517d3f60e01b6000523360045260245260446000fd5b60ff600080516020611c10833981519152541661151257565b63d93c066560e01b60005260046000fd5b6001546040516318160ddd60e01b81526000949392916001600160a01b031690602081600481855afa908115610c3c5786916115e3575b5083018084116115cf57600354106115c057803b156104b857849291836064926040519687958694630f22c5f760e11b865260018060a01b03166004860152602485015260448401525af1801561084e576115b3575050565b816115bd916111eb565b50565b63c30436e960e01b8552600485fd5b634e487b7160e01b86526011600452602486fd5b90506020813d60201161160d575b816115fe602093836111eb565b81010312610c4757513861155a565b3d91506115f1565b6001600160a01b0381166000908152600080516020611c50833981519152602052604090205460ff1661169b576001600160a01b03166000818152600080516020611c5083398151915260205260408120805460ff19166001179055339190600080516020611bd083398151915290600080516020611b908339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020611c70833981519152602052604090205460ff1661169b576001600160a01b03166000818152600080516020611c7083398151915260205260408120805460ff19166001179055339190600080516020611b7083398151915290600080516020611b908339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1661169b576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff19166001179055339190600080516020611b908339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1661169b576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a90600080516020611b908339815191529080a4600190565b6000818152600080516020611bf0833981519152602090815260408083206001600160a01b038616845290915290205460ff1661190d576000818152600080516020611bf0833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff1916600117905533929190600080516020611b908339815191529080a4600190565b5050600090565b6001600160a01b0381166000908152600080516020611c50833981519152602052604090205460ff161561169b576001600160a01b03166000818152600080516020611c5083398151915260205260408120805460ff19169055339190600080516020611bd0833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381166000908152600080516020611c70833981519152602052604090205460ff161561169b576001600160a01b03166000818152600080516020611c7083398151915260205260408120805460ff19169055339190600080516020611b70833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020611bf0833981519152602090815260408083206001600160a01b038616845290915290205460ff161561190d576000818152600080516020611bf0833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b60ff600080516020611c908339815191525460401c1615611afd57565b631afcd79f60e31b60005260046000fd5b90611b345750805115611b2357805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611b66575b611b45575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15611b3d56fe0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00395f4e35a18c2b5e556b3b2ff855307e76c0b3cc1ca71e19a70e83037e08e7b37bdc20c26beb8eedd348733c28a5c4c2f7f7f1183cba8898195258fcdca273bcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212203f211d602b36c7fdf0f3b0fe8233e5a85a6bfca3cf4c804bfdd1d764320a84b564736f6c634300081a0033"; + "0x60a080604052346100ea57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b604051611bb490816100f08239608051818181610bb60152610c870152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880610054565b63f92ee8a960e01b60005260046000fd5b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a71461105057508063106e629014610fc4578063116191b614610f9d57806321e093b114610f74578063248a9ca314610f4d5780632f2ff15d14610f1b57806336568abe14610ed65780633f4ba83a14610e545780634f1ef28614610c0b57806352d1902d14610ba35780635b11259114610b7a5780635c975abb14610b4a5780636f8728ad146109895780636f8b44b0146108d75780636fb9a7af1461075b5780638456cb59146106e657806385f438c1146106bd57806391d1485414610664578063950837aa146105a2578063a217fddf14610586578063a783c7891461055d578063ad3cb1cc146104e3578063b6b55f2514610462578063d547741f14610427578063d5abeb0114610409578063e63ab1e9146103ce5763f8c8765e1461014a57600080fd5b346103cb5760803660031901126103cb576101636110a5565b61016b6110c0565b6044356001600160a01b0381168082036103c757606435926001600160a01b0384168085036103c357600080516020611b5f833981519152549560ff8760401c16159667ffffffffffffffff8116801590816103bb575b60011490816103b1575b1590816103a8575b506103995767ffffffffffffffff198116600117600080516020611b5f833981519152558761036c575b506102076119af565b6001600160a01b031690811590811561035a575b8115610351575b8115610348575b5061033957916102d19493916102cb936102416119af565b6102496119af565b6102516119af565b6001600080516020611aff8339815191525561026b6119af565b6102736119af565b6001600160601b0360a01b89541617885560018060a01b03166001600160601b0360a01b60015416176001556001600160601b0360a01b60025416176002556102bb836115f6565b506102c5816114e4565b50611570565b50611690565b506000196003556102df5780f35b68ff000000000000000019600080516020611b5f8339815191525416600080516020611b5f833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b63d92e233d60e01b8752600487fd5b90501538610229565b84159150610222565b6001600160a01b03841615915061021b565b68ffffffffffffffffff19166801000000000000000117600080516020611b5f83398151915255386101fe565b63f92ee8a960e01b8952600489fd5b905015386101d4565b303b1591506101cc565b8991506101c2565b8680fd5b8480fd5b80fd5b50346103cb57806003193601126103cb5760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346103cb57806003193601126103cb576020600354604051908152f35b50346103cb5760403660031901126103cb5761045e6004356104476110c0565b906104596104548261116c565b61137e565b61190f565b5080f35b50346103cb5760203660031901126103cb5761047c6113c8565b60015481906001600160a01b0316803b156104e05781809160446040518094819363079cc67960e41b835233600484015260043560248401525af180156104d5576104c45750f35b816104ce916110ea565b6103cb5780f35b6040513d84823e3d90fd5b50fd5b50346103cb57806003193601126103cb57604080519161050382846110ea565b60058352640352e302e360dc1b6020840152815192839160208352815191826020850152815b838110610546575050828201840152601f01601f19168101030190f35b602082820181015188830188015287955001610529565b50346103cb57806003193601126103cb576020604051600080516020611a3f8339815191528152f35b50346103cb57806003193601126103cb57602090604051908152f35b50346103cb5760203660031901126103cb576105bc6110a5565b6105c461132b565b6001600160a01b0381169081156106555760025461060591906105ef906001600160a01b03166117e3565b506002546102bb906001600160a01b0316611879565b50600254604080516001600160a01b0383168152602081018490527f33770ab682353c17917ad3e667f05905fc8dda00671ef1ed33bef9bc8db0323e9190a16001600160a01b0319161760025580f35b63d92e233d60e01b8352600483fd5b50346103cb5760403660031901126103cb5760406106806110c0565b916004358152600080516020611abf833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346103cb57806003193601126103cb576020604051600080516020611a9f8339815191528152f35b50346103cb57806003193601126103cb576106ff6112b9565b6107076113c8565b600160ff19600080516020611adf833981519152541617600080516020611adf833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346103cb57366003190160a081126108d3576020136103cb5761077d6110c0565b60443560643567ffffffffffffffff81116108cf576107a090369060040161113e565b90916107aa61122f565b6107b261126b565b6107ba6113c8565b84546107d4906084359083906001600160a01b03166113f2565b84546001546001600160a01b03918216958792909116863b156108cb57604051633ddf4d7d60e11b81529183918391906001600160a01b036108146110a5565b16600484015260248301526001600160a01b0316604482018190526064820186905260a060848301529781838161084f60a482018b8d61118d565b03925af180156104d5576108b6575b505061089e7f23b9573b29ff81f01c7aa1968188e1cb7d5858b08582e111fdaf386d9ef9bd8d93604051938493845260406020850152604084019161118d565b0390a26001600080516020611aff8339815191525580f35b816108c0916110ea565b6103c757843861085e565b8280fd5b8380fd5b5080fd5b50346103cb5760203660031901126103cb57600080516020611a3f8339815191528152600080516020611abf8339815191526020908152604080832033600090815292529020546004359060ff16156109645760207f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c916109566113c8565b80600355604051908152a180f35b63e2517d3f60e01b825233600452600080516020611a3f833981519152602452604482fd5b50346103cb5760a03660031901126103cb576109a36110a5565b906024359060443567ffffffffffffffff81116108d3576109c890369060040161113e565b909260843567ffffffffffffffff81116108cf576080816004019160031990360301126108cf576109f761122f565b6109ff61126b565b610a076113c8565b8354610a21906064359084906001600160a01b03166113f2565b83546001546001600160a01b03918216979116873b15610b465794610a898798610a9b9383809a996040519687958694859363aa0c0fc160e01b8552600485015260018060a01b03169c8d60248501528b604485015260a060648501528c60a485019161118d565b828103600319016084840152896111ae565b03925af18015610b3b57610afd575b5061089e90610aef7f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff0959697604051958695865260606020870152606086019161118d565b9083820360408501526111ae565b90610aef86610b317f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff0979861089e956110ea565b9695505090610aaa565b6040513d88823e3d90fd5b8580fd5b50346103cb57806003193601126103cb57602060ff600080516020611adf83398151915254166040519015158152f35b50346103cb57806003193601126103cb576002546040516001600160a01b039091168152602090f35b50346103cb57806003193601126103cb577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610bfc576020604051600080516020611a7f8339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126103cb57610c206110a5565b6024359067ffffffffffffffff82116108cb57366023830112156108cb5781600401359083610c4e83611122565b93610c5c60405195866110ea565b838552602085019336602482840101116108cb57806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610e31575b50610e2257610cbf61132b565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181610dee575b50610d0257634c9c8ce360e01b86526004859052602486fd5b9384600080516020611a7f833981519152879603610ddc5750823b15610dca57600080516020611a7f83398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115610daf5761045e9382915190845af43d15610da7573d91610d8b83611122565b92610d9960405194856110ea565b83523d85602085013e6119dd565b6060916119dd565b5050505034610dbb5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011610e1a575b81610e0a602093836110ea565b810103126103c357519038610ce9565b3d9150610dfd565b63703e46dd60e11b8452600484fd5b600080516020611a7f833981519152546001600160a01b03161415905038610cb2565b50346103cb57806003193601126103cb57610e6d6112b9565b600080516020611adf8339815191525460ff811615610ec75760ff1916600080516020611adf833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346103cb5760403660031901126103cb57610ef06110c0565b336001600160a01b03821603610f0c5761045e9060043561190f565b63334bd91960e11b8252600482fd5b50346103cb5760403660031901126103cb5761045e600435610f3b6110c0565b90610f486104548261116c565b61174c565b50346103cb5760203660031901126103cb576020610f6c60043561116c565b604051908152f35b50346103cb57806003193601126103cb576001546040516001600160a01b039091168152602090f35b50346103cb57806003193601126103cb57546040516001600160a01b039091168152602090f35b50346103cb5760603660031901126103cb57610fde6110a5565b7f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d560206024359261100d61122f565b61101561126b565b61101d6113c8565b61102a60443585836113f2565b6040519384526001600160a01b031692a26001600080516020611aff8339815191525580f35b9050346108d35760203660031901126108d35760043563ffffffff60e01b81168091036108cb5760209250637965db0b60e01b8114908115611094575b5015158152f35b6301ffc9a760e01b1490503861108d565b600435906001600160a01b03821682036110bb57565b600080fd5b602435906001600160a01b03821682036110bb57565b35906001600160a01b03821682036110bb57565b90601f8019910116810190811067ffffffffffffffff82111761110c57604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161110c57601f01601f191660200190565b9181601f840112156110bb5782359167ffffffffffffffff83116110bb57602083818601950101116110bb57565b600052600080516020611abf83398151915260205260016040600020015490565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160a01b036111bf826110d6565b1682526001600160a01b036111d6602083016110d6565b166020830152604081013560408301526060810135601e19823603018112156110bb57016020813591019067ffffffffffffffff81116110bb5780360382136110bb5760808381606061122c960152019161118d565b90565b6002600080516020611aff833981519152541461125a576002600080516020611aff83398151915255565b633ee5aeb560e01b60005260046000fd5b336000908152600080516020611b1f833981519152602052604090205460ff161561129257565b63e2517d3f60e01b60005233600452600080516020611a9f83398151915260245260446000fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff16156112f257565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff161561136457565b63e2517d3f60e01b60005233600452600060245260446000fd5b6000818152600080516020611abf8339815191526020908152604080832033845290915290205460ff16156113b05750565b63e2517d3f60e01b6000523360045260245260446000fd5b60ff600080516020611adf83398151915254166113e157565b63d93c066560e01b60005260046000fd5b6001546040516318160ddd60e01b81526000949392916001600160a01b031690602081600481855afa908115610b3b5786916114b2575b50830180841161149e576003541061148f57803b156103c757849291836064926040519687958694630f22c5f760e11b865260018060a01b03166004860152602485015260448401525af180156104d557611482575050565b8161148c916110ea565b50565b63c30436e960e01b8552600485fd5b634e487b7160e01b86526011600452602486fd5b90506020813d6020116114dc575b816114cd602093836110ea565b81010312610b46575138611429565b3d91506114c0565b6001600160a01b0381166000908152600080516020611b1f833981519152602052604090205460ff1661156a576001600160a01b03166000818152600080516020611b1f83398151915260205260408120805460ff19166001179055339190600080516020611a9f83398151915290600080516020611a5f8339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020611b3f833981519152602052604090205460ff1661156a576001600160a01b03166000818152600080516020611b3f83398151915260205260408120805460ff19166001179055339190600080516020611a3f83398151915290600080516020611a5f8339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1661156a576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff19166001179055339190600080516020611a5f8339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1661156a576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a90600080516020611a5f8339815191529080a4600190565b6000818152600080516020611abf833981519152602090815260408083206001600160a01b038616845290915290205460ff166117dc576000818152600080516020611abf833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff1916600117905533929190600080516020611a5f8339815191529080a4600190565b5050600090565b6001600160a01b0381166000908152600080516020611b1f833981519152602052604090205460ff161561156a576001600160a01b03166000818152600080516020611b1f83398151915260205260408120805460ff19169055339190600080516020611a9f833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381166000908152600080516020611b3f833981519152602052604090205460ff161561156a576001600160a01b03166000818152600080516020611b3f83398151915260205260408120805460ff19169055339190600080516020611a3f833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020611abf833981519152602090815260408083206001600160a01b038616845290915290205460ff16156117dc576000818152600080516020611abf833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b60ff600080516020611b5f8339815191525460401c16156119cc57565b631afcd79f60e31b60005260046000fd5b90611a0357508051156119f257805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611a35575b611a14575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15611a0c56fe0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00395f4e35a18c2b5e556b3b2ff855307e76c0b3cc1ca71e19a70e83037e08e7b37bdc20c26beb8eedd348733c28a5c4c2f7f7f1183cba8898195258fcdca273bcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212201f643599d9d95abbad7f4e3b9a54b28b24cf3e060e9c3d9981d412ec51a528c964736f6c634300081a0033"; type ZetaConnectorNonNativeConstructorParams = | [signer?: Signer] diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/helpers/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/helpers/index.ts new file mode 100644 index 00000000..1d3444d5 --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/helpers/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as interfaces from "./interfaces"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/IBaseRegistryErrors__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/IBaseRegistryErrors__factory.ts new file mode 100644 index 00000000..b26fdc7c --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/IBaseRegistryErrors__factory.ts @@ -0,0 +1,136 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IBaseRegistryErrors, + IBaseRegistryErrorsInterface, +} from "../../../../../../../@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/IBaseRegistryErrors"; + +const _abi = [ + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + ], + name: "ChainActive", + type: "error", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + ], + name: "ChainNonActive", + type: "error", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "string", + name: "contractType", + type: "string", + }, + { + internalType: "bytes", + name: "addressBytes", + type: "bytes", + }, + ], + name: "ContractAlreadyRegistered", + type: "error", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "string", + name: "contractType", + type: "string", + }, + ], + name: "ContractNotFound", + type: "error", + }, + { + inputs: [ + { + internalType: "string", + name: "message", + type: "string", + }, + ], + name: "InvalidContractType", + type: "error", + }, + { + inputs: [], + name: "InvalidSender", + type: "error", + }, + { + inputs: [], + name: "TransferFailed", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "address_", + type: "address", + }, + ], + name: "ZRC20AlreadyRegistered", + type: "error", + }, + { + inputs: [ + { + internalType: "string", + name: "symbol", + type: "string", + }, + ], + name: "ZRC20SymbolAlreadyInUse", + type: "error", + }, + { + inputs: [], + name: "ZeroAddress", + type: "error", + }, +] as const; + +export class IBaseRegistryErrors__factory { + static readonly abi = _abi; + static createInterface(): IBaseRegistryErrorsInterface { + return new Interface(_abi) as IBaseRegistryErrorsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IBaseRegistryErrors { + return new Contract( + address, + _abi, + runner + ) as unknown as IBaseRegistryErrors; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/IBaseRegistryEvents__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/IBaseRegistryEvents__factory.ts new file mode 100644 index 00000000..eeb0c548 --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/IBaseRegistryEvents__factory.ts @@ -0,0 +1,236 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IBaseRegistryEvents, + IBaseRegistryEventsInterface, +} from "../../../../../../../@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/IBaseRegistryEvents"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "oldAdmin", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "newAdmin", + type: "address", + }, + ], + name: "AdminChanged", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "bytes", + name: "value", + type: "bytes", + }, + ], + name: "ChainMetadataUpdated", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + indexed: false, + internalType: "bool", + name: "newStatus", + type: "bool", + }, + ], + name: "ChainStatusChanged", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + indexed: false, + internalType: "string", + name: "contractType", + type: "string", + }, + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "bytes", + name: "value", + type: "bytes", + }, + ], + name: "ContractConfigurationUpdated", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + indexed: true, + internalType: "string", + name: "contractType", + type: "string", + }, + { + indexed: false, + internalType: "bytes", + name: "addressBytes", + type: "bytes", + }, + ], + name: "ContractRegistered", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes", + name: "addressBytes", + type: "bytes", + }, + ], + name: "ContractStatusChanged", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "oldRegistryManager", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "newRegistryManager", + type: "address", + }, + ], + name: "RegistryManagerChanged", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes", + name: "originAddress", + type: "bytes", + }, + { + indexed: true, + internalType: "address", + name: "address_", + type: "address", + }, + { + indexed: false, + internalType: "uint8", + name: "decimals", + type: "uint8", + }, + { + indexed: false, + internalType: "uint256", + name: "originChainId", + type: "uint256", + }, + { + indexed: false, + internalType: "string", + name: "symbol", + type: "string", + }, + ], + name: "ZRC20TokenRegistered", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "address_", + type: "address", + }, + { + indexed: false, + internalType: "bool", + name: "active", + type: "bool", + }, + ], + name: "ZRC20TokenUpdated", + type: "event", + }, +] as const; + +export class IBaseRegistryEvents__factory { + static readonly abi = _abi; + static createInterface(): IBaseRegistryEventsInterface { + return new Interface(_abi) as IBaseRegistryEventsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IBaseRegistryEvents { + return new Contract( + address, + _abi, + runner + ) as unknown as IBaseRegistryEvents; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/IBaseRegistry__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/IBaseRegistry__factory.ts new file mode 100644 index 00000000..360d56fa --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/IBaseRegistry__factory.ts @@ -0,0 +1,827 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IBaseRegistry, + IBaseRegistryInterface, +} from "../../../../../../../@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/IBaseRegistry"; + +const _abi = [ + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + ], + name: "ChainActive", + type: "error", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + ], + name: "ChainNonActive", + type: "error", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "string", + name: "contractType", + type: "string", + }, + { + internalType: "bytes", + name: "addressBytes", + type: "bytes", + }, + ], + name: "ContractAlreadyRegistered", + type: "error", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "string", + name: "contractType", + type: "string", + }, + ], + name: "ContractNotFound", + type: "error", + }, + { + inputs: [ + { + internalType: "string", + name: "message", + type: "string", + }, + ], + name: "InvalidContractType", + type: "error", + }, + { + inputs: [], + name: "InvalidSender", + type: "error", + }, + { + inputs: [], + name: "TransferFailed", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "address_", + type: "address", + }, + ], + name: "ZRC20AlreadyRegistered", + type: "error", + }, + { + inputs: [ + { + internalType: "string", + name: "symbol", + type: "string", + }, + ], + name: "ZRC20SymbolAlreadyInUse", + type: "error", + }, + { + inputs: [], + name: "ZeroAddress", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "oldAdmin", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "newAdmin", + type: "address", + }, + ], + name: "AdminChanged", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "bytes", + name: "value", + type: "bytes", + }, + ], + name: "ChainMetadataUpdated", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + indexed: false, + internalType: "bool", + name: "newStatus", + type: "bool", + }, + ], + name: "ChainStatusChanged", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + indexed: false, + internalType: "string", + name: "contractType", + type: "string", + }, + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "bytes", + name: "value", + type: "bytes", + }, + ], + name: "ContractConfigurationUpdated", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + indexed: true, + internalType: "string", + name: "contractType", + type: "string", + }, + { + indexed: false, + internalType: "bytes", + name: "addressBytes", + type: "bytes", + }, + ], + name: "ContractRegistered", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes", + name: "addressBytes", + type: "bytes", + }, + ], + name: "ContractStatusChanged", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "oldRegistryManager", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "newRegistryManager", + type: "address", + }, + ], + name: "RegistryManagerChanged", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes", + name: "originAddress", + type: "bytes", + }, + { + indexed: true, + internalType: "address", + name: "address_", + type: "address", + }, + { + indexed: false, + internalType: "uint8", + name: "decimals", + type: "uint8", + }, + { + indexed: false, + internalType: "uint256", + name: "originChainId", + type: "uint256", + }, + { + indexed: false, + internalType: "string", + name: "symbol", + type: "string", + }, + ], + name: "ZRC20TokenRegistered", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "address_", + type: "address", + }, + { + indexed: false, + internalType: "bool", + name: "active", + type: "bool", + }, + ], + name: "ZRC20TokenUpdated", + type: "event", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "address", + name: "gasZRC20", + type: "address", + }, + { + internalType: "bytes", + name: "registry", + type: "bytes", + }, + { + internalType: "bool", + name: "activation", + type: "bool", + }, + ], + name: "changeChainStatus", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "getActiveChains", + outputs: [ + { + internalType: "uint256[]", + name: "", + type: "uint256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getAllChains", + outputs: [ + { + components: [ + { + internalType: "bool", + name: "active", + type: "bool", + }, + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "address", + name: "gasZRC20", + type: "address", + }, + { + internalType: "bytes", + name: "registry", + type: "bytes", + }, + ], + internalType: "struct ChainInfoDTO[]", + name: "", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getAllContracts", + outputs: [ + { + components: [ + { + internalType: "bool", + name: "active", + type: "bool", + }, + { + internalType: "bytes", + name: "addressBytes", + type: "bytes", + }, + { + internalType: "string", + name: "contractType", + type: "string", + }, + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + ], + internalType: "struct ContractInfoDTO[]", + name: "", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getAllZRC20Tokens", + outputs: [ + { + components: [ + { + internalType: "bool", + name: "active", + type: "bool", + }, + { + internalType: "address", + name: "address_", + type: "address", + }, + { + internalType: "bytes", + name: "originAddress", + type: "bytes", + }, + { + internalType: "uint256", + name: "originChainId", + type: "uint256", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "string", + name: "coinType", + type: "string", + }, + { + internalType: "uint8", + name: "decimals", + type: "uint8", + }, + ], + internalType: "struct ZRC20Info[]", + name: "", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + ], + name: "getChainInfo", + outputs: [ + { + internalType: "address", + name: "gasZRC20", + type: "address", + }, + { + internalType: "bytes", + name: "registry", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "getChainMetadata", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "string", + name: "contractType", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "getContractConfiguration", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "string", + name: "contractType", + type: "string", + }, + ], + name: "getContractInfo", + outputs: [ + { + internalType: "bool", + name: "active", + type: "bool", + }, + { + internalType: "bytes", + name: "addressBytes", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "originChainId", + type: "uint256", + }, + { + internalType: "bytes", + name: "originAddress", + type: "bytes", + }, + ], + name: "getZRC20AddressByForeignAsset", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "address_", + type: "address", + }, + ], + name: "getZRC20TokenInfo", + outputs: [ + { + internalType: "bool", + name: "active", + type: "bool", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "uint256", + name: "originChainId", + type: "uint256", + }, + { + internalType: "bytes", + name: "originAddress", + type: "bytes", + }, + { + internalType: "string", + name: "coinType", + type: "string", + }, + { + internalType: "uint8", + name: "decimals", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "string", + name: "contractType", + type: "string", + }, + { + internalType: "bytes", + name: "addressBytes", + type: "bytes", + }, + ], + name: "registerContract", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "address_", + type: "address", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "uint256", + name: "originChainId", + type: "uint256", + }, + { + internalType: "bytes", + name: "originAddress", + type: "bytes", + }, + { + internalType: "string", + name: "coinType", + type: "string", + }, + { + internalType: "uint8", + name: "decimals", + type: "uint8", + }, + ], + name: "registerZRC20Token", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "string", + name: "contractType", + type: "string", + }, + { + internalType: "bool", + name: "active", + type: "bool", + }, + ], + name: "setContractActive", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "address_", + type: "address", + }, + { + internalType: "bool", + name: "active", + type: "bool", + }, + ], + name: "setZRC20TokenActive", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + { + internalType: "bytes", + name: "value", + type: "bytes", + }, + ], + name: "updateChainMetadata", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "string", + name: "contractType", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + { + internalType: "bytes", + name: "value", + type: "bytes", + }, + ], + name: "updateContractConfiguration", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class IBaseRegistry__factory { + static readonly abi = _abi; + static createInterface(): IBaseRegistryInterface { + return new Interface(_abi) as IBaseRegistryInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IBaseRegistry { + return new Contract(address, _abi, runner) as unknown as IBaseRegistry; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/index.ts new file mode 100644 index 00000000..df412938 --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IBaseRegistry__factory } from "./IBaseRegistry__factory"; +export { IBaseRegistryErrors__factory } from "./IBaseRegistryErrors__factory"; +export { IBaseRegistryEvents__factory } from "./IBaseRegistryEvents__factory"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/helpers/interfaces/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/helpers/interfaces/index.ts new file mode 100644 index 00000000..d7925abd --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/helpers/interfaces/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as iBaseRegistrySol from "./IBaseRegistry.sol"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/index.ts index 7860e035..5e0b51fd 100644 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/index.ts +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/index.ts @@ -4,4 +4,5 @@ export * as errorsSol from "./Errors.sol"; export * as revertSol from "./Revert.sol"; export * as evm from "./evm"; +export * as helpers from "./helpers"; export * as zevm from "./zevm"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/GatewayZEVM__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/GatewayZEVM__factory.ts index 3cec457b..9790334c 100644 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/GatewayZEVM__factory.ts +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/GatewayZEVM__factory.ts @@ -78,6 +78,11 @@ const _abi = [ name: "ERC1967NonPayable", type: "error", }, + { + inputs: [], + name: "EmptyAddress", + type: "error", + }, { inputs: [], name: "EnforcedPause", @@ -132,17 +137,12 @@ const _abi = [ }, { inputs: [], - name: "InsufficientGasLimit", - type: "error", - }, - { - inputs: [], - name: "InsufficientZRC20Amount", + name: "InsufficientAmount", type: "error", }, { inputs: [], - name: "InsufficientZetaAmount", + name: "InsufficientGasLimit", type: "error", }, { @@ -186,6 +186,22 @@ const _abi = [ name: "ReentrancyGuardReentrantCall", type: "error", }, + { + inputs: [ + { + internalType: "uint256", + name: "provided", + type: "uint256", + }, + { + internalType: "uint256", + name: "maximum", + type: "uint256", + }, + ], + name: "RevertGasLimitExceeded", + type: "error", + }, { inputs: [], name: "UUPSUnauthorizedCallContext", @@ -223,11 +239,6 @@ const _abi = [ name: "WithdrawalFailed", type: "error", }, - { - inputs: [], - name: "ZETANotSupported", - type: "error", - }, { inputs: [ { @@ -293,7 +304,7 @@ const _abi = [ }, { inputs: [], - name: "ZeroAddress", + name: "ZeroGasPrice", type: "error", }, { @@ -732,12 +743,12 @@ const _abi = [ }, { inputs: [], - name: "MAX_MESSAGE_SIZE", + name: "PAUSER_ROLE", outputs: [ { - internalType: "uint256", + internalType: "bytes32", name: "", - type: "uint256", + type: "bytes32", }, ], stateMutability: "view", @@ -745,12 +756,12 @@ const _abi = [ }, { inputs: [], - name: "PAUSER_ROLE", + name: "PROTOCOL_ADDRESS", outputs: [ { - internalType: "bytes32", + internalType: "address", name: "", - type: "bytes32", + type: "address", }, ], stateMutability: "view", @@ -758,7 +769,7 @@ const _abi = [ }, { inputs: [], - name: "PROTOCOL_ADDRESS", + name: "REGISTRY", outputs: [ { internalType: "address", @@ -854,6 +865,19 @@ const _abi = [ stateMutability: "nonpayable", type: "function", }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + ], + name: "deposit", + outputs: [], + stateMutability: "payable", + type: "function", + }, { inputs: [ { @@ -901,11 +925,6 @@ const _abi = [ name: "context", type: "tuple", }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, { internalType: "address", name: "target", @@ -919,7 +938,7 @@ const _abi = [ ], name: "depositAndCall", outputs: [], - stateMutability: "nonpayable", + stateMutability: "payable", type: "function", }, { @@ -1022,6 +1041,46 @@ const _abi = [ stateMutability: "nonpayable", type: "function", }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + components: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "asset", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "revertMessage", + type: "bytes", + }, + ], + internalType: "struct RevertContext", + name: "revertContext", + type: "tuple", + }, + ], + name: "depositAndRevert", + outputs: [], + stateMutability: "payable", + type: "function", + }, { inputs: [ { @@ -1162,6 +1221,45 @@ const _abi = [ stateMutability: "nonpayable", type: "function", }, + { + inputs: [], + name: "getMaxMessageSize", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "getMaxRevertGasLimit", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "getMinGasLimit", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [ { @@ -1413,17 +1511,17 @@ const _abi = [ inputs: [ { internalType: "bytes", - name: "", + name: "receiver", type: "bytes", }, { internalType: "uint256", - name: "", + name: "amount", type: "uint256", }, { internalType: "uint256", - name: "", + name: "chainId", type: "uint256", }, { @@ -1455,35 +1553,35 @@ const _abi = [ }, ], internalType: "struct RevertOptions", - name: "", + name: "revertOptions", type: "tuple", }, ], name: "withdraw", outputs: [], - stateMutability: "view", + stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "bytes", - name: "", + name: "receiver", type: "bytes", }, { internalType: "uint256", - name: "", + name: "amount", type: "uint256", }, { internalType: "uint256", - name: "", + name: "chainId", type: "uint256", }, { internalType: "bytes", - name: "", + name: "message", type: "bytes", }, { @@ -1500,7 +1598,7 @@ const _abi = [ }, ], internalType: "struct CallOptions", - name: "", + name: "callOptions", type: "tuple", }, { @@ -1532,13 +1630,13 @@ const _abi = [ }, ], internalType: "struct RevertOptions", - name: "", + name: "revertOptions", type: "tuple", }, ], name: "withdrawAndCall", outputs: [], - stateMutability: "view", + stateMutability: "nonpayable", type: "function", }, { @@ -1638,7 +1736,7 @@ const _abi = [ ] as const; const _bytecode = - "0x60a080604052346100ea57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b6040516127f090816100f08239608051818181610db80152610e4c0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880610054565b63f92ee8a960e01b60005260046000fd5b600080fdfe6080806040526004361015610067575b50361561001b57600080fd5b610023611f8e565b6000546001600160a01b03163314158061004f575b61003e57005b63b3af013760e01b60005260046000fd5b506000805160206126fb833981519152331415610038565b600090813560e01c90816301ffc9a714611b2b5750806306cb898314611818578063184b0793146117195780632095dedb146115e457806321501a95146113f757806321e093b1146113d0578063248a9ca3146113a95780632722feee146113805780632810ae63146112f65780632f2ff15d146112c457806336568abe1461127f5780633f4ba83a146111fd578063485cc955146110345780634f1ef28614610e0d57806352d1902d14610da55780635c975abb14610d755780637b15118b14610b445780637c0dcb5f146108885780638456cb591461081357806391d14854146107ba57806397a1cef11461074d57806397d340f5146107305780639d4ba465146105c4578063a217fddf146105a8578063ad3cb1cc1461055b578063bcf7f32b146104b4578063c39aca371461033d578063d547741f14610302578063e63ab1e9146102c75763f45346dc0361000f57346102c45760603660031901126102c4576101d3611c4a565b906024356101df611c60565b926000805160206126fb83398151915233036102b5576101fd611f8e565b6001600160a01b03811693841580156102a4575b610295578215610286576001600160a01b038116916000805160206126fb8339815191528314801561027d575b61026e5761024d918491612503565b15610256578280f35b606493632050a1dd60e11b8452600452602452604452fd5b63416aebb560e11b8552600485fd5b5030831461023e565b635d67094f60e01b8452600484fd5b63d92e233d60e01b8452600484fd5b506001600160a01b03811615610211565b632160203f60e11b8352600483fd5b80fd5b50346102c457806003193601126102c45760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346102c45760403660031901126102c457610339600435610322611c34565b9061033461032f82611efe565b6120bd565b612330565b5080f35b50346102c45761034c36611cf8565b95949291909361035a611fdf565b6000805160206126fb83398151915233036104a557610377611f8e565b6001600160a01b0381169687158015610494575b610485578315610476576001600160a01b038316926000805160206126fb8339815191528414801561046d575b61045e57846103c79184612503565b1561044357869750823b1561043f5786946103fa869260405198899788968795632de7eb0b60e11b875260048701611e8e565b03925af180156104345761041f575b50600160008051602061277b8339815191525580f35b8161042991611bb1565b6102c4578038610409565b6040513d84823e3d90fd5b8680fd5b60648785858b632050a1dd60e11b8452600452602452604452fd5b63416aebb560e11b8852600488fd5b503084146103b8565b635d67094f60e01b8752600487fd5b63d92e233d60e01b8752600487fd5b506001600160a01b0383161561038b565b632160203f60e11b8652600486fd5b50346102c4576104c336611cf8565b90936104d29695939296611fdf565b6000805160206126fb83398151915233036104a5576104ef611f8e565b6001600160a01b03811615801561054a575b61053b57859660018060a01b031691823b1561043f5786946103fa869260405198899788968795632de7eb0b60e11b875260048701611e8e565b63d92e233d60e01b8652600486fd5b506001600160a01b03871615610501565b50346102c457806003193601126102c457506105a460405161057e604082611bb1565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611cb7565b0390f35b50346102c457806003193601126102c457602090604051908152f35b50346102c45760803660031901126102c4576105de611c4a565b90602435916105eb611c60565b90606435916001600160401b03831161072c576080600319843603011261072c57610614611fdf565b6000805160206126fb833981519152330361071d57610631611f8e565b6001600160a01b038216908115801561070c575b6106fd5785156106ee576001600160a01b038116926000805160206126fb833981519152841480156106e5575b6106d657610681918791612503565b156106bc5750829350803b156106b8576103fa8392918392604051948580948193636481451b60e11b835260040160048301611e29565b5050fd5b6064949250632050a1dd60e11b8452600452602452604452fd5b63416aebb560e11b8652600486fd5b50308414610672565b635d67094f60e01b8552600485fd5b63d92e233d60e01b8552600485fd5b506001600160a01b03811615610645565b632160203f60e11b8452600484fd5b8380fd5b50346102c457806003193601126102c45760206040516108008152f35b50346102c45760803660031901126102c4576004356001600160401b0381116107b65761077e903690600401611bed565b506064356001600160401b0381116107b65760a09060031990360301126102c4576004906107aa611f8e565b63e4dd681d60e01b8152fd5b5080fd5b50346102c45760403660031901126102c45760406107d6611c34565b91600435815260008051602061273b833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346102c457806003193601126102c45761082c61204b565b610834611f8e565b600160ff1960008051602061275b83398151915254161760008051602061275b833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346102c45760803660031901126102c4576004356001600160401b0381116107b6576108b9903690600401611bed565b90602435916108c6611c60565b906064356001600160401b03811161072c57806004019060a06003198236030112610b40576108f3611f8e565b8251156106fd5785156106ee576064016108006109108284611d75565b905011610b1d5750604051630123a4f160e31b8152939485946001600160a01b03851694602082600481895afa918215610ada578792610ae5575b509061095791836123d0565b604051634d8943bb60e01b815290602082600481895afa918215610ada578792610aa3575b50604051630123a4f160e31b8152926020846004818a5afa938415610a98578894610a4f575b507f07bf64173efd8f3dfb9e4eb3834bab9d5b85a3d89a1c6425797329de0668502c9593610a49936109fd9693602093604051936109df85611b80565b84526001858501526040519889986101208a526101208a0190611cb7565b9a85890152604088015260608701526080860152610a37858903918260a08801528a8a5260c0870190602080918051845201511515910152565b01610100840152602033960190611f1f565b0390a380f35b975094925090926020873d602011610a90575b81610a6f60209383611bb1565b81010312610a8b579551879692949293909290919060206109a2565b600080fd5b3d9150610a62565b6040513d8a823e3d90fd5b965090506020863d602011610ad2575b81610ac060209383611bb1565b81010312610a8b57869551903861097c565b3d9150610ab3565b6040513d89823e3d90fd5b915095506020813d602011610b15575b81610b0260209383611bb1565b81010312610a8b5751869561095761094b565b3d9150610af5565b610b2a8591604493611d75565b63cd6f4e6d60e01b835260045250610800602452fd5b8480fd5b50346102c45760e03660031901126102c4576004356001600160401b0381116107b657610b75903690600401611bed565b9060243591610b82611c60565b906064356001600160401b03811161072c57610ba2903690600401611c8a565b9490916040366083190112610b405760c435916001600160401b038311610d7157826004019360a0600319853603011261043f57610bde611f8e565b82511561048557811561047657608435938415610d6257606401610800610c10610c088389611d75565b90508b611da7565b11610d345750968697610c278588859a999a6123d0565b604051634d8943bb60e01b815290986001600160a01b031693602082600481885afa918215610d29578992610cea575b5098610c9a9596979899610c78604051986101208a526101208a0190611cb7565b95602089015260408801526060870152608086015284830360a0860152611e08565b9160c082015260a43591821515809303610b4057610a4982917fd90f94752d2b12f364f4a2237ebe1aff24ba6127585376bf4935f6a7be17dd2a9460e08401528281036101008401523395611f1f565b959697985090506020853d602011610d21575b81610d0a60209383611bb1565b81010312610a8b5793518997969594610c9a610c57565b3d9150610cfd565b6040513d8b823e3d90fd5b87610d4d8a610d456044948a611d75565b919050611da7565b63cd6f4e6d60e01b8252600452610800602452fd5b6360ee124760e01b8852600488fd5b8580fd5b50346102c457806003193601126102c457602060ff60008051602061275b83398151915254166040519015158152f35b50346102c457806003193601126102c4577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610dfe57602060405160008051602061271b8339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126102c457610e22611c4a565b906024356001600160401b0381116107b657610e42903690600401611bed565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611011575b506110025781805260008051602061273b83398151915260209081526040808420336000908152925290205460ff1615610fea576040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa80958596610fb6575b50610ef057634c9c8ce360e01b84526004839052602484fd5b90918460008051602061271b8339815191528103610fa45750813b15610f925760008051602061271b83398151915280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a28151839015610f78578083602061033995519101845af4610f7261201b565b91612699565b50505034610f835780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011610fe2575b81610fd260209383611bb1565b81010312610b4057519438610ed7565b3d9150610fc5565b63e2517d3f60e01b8252336004526024829052604482fd5b63703e46dd60e11b8252600482fd5b60008051602061271b833981519152546001600160a01b03161415905038610e77565b50346102c45760403660031901126102c45761104e611c4a565b611056611c34565b60008051602061279b833981519152549160ff8360401c1615926001600160401b038116801590816111f5575b60011490816111eb575b1590816111e2575b506111d35767ffffffffffffffff19811660011760008051602061279b83398151915255836111a6575b506001600160a01b03169081158015611195575b61029557611124906110e361262b565b6110eb61262b565b6110f361262b565b6110fb61262b565b61110361262b565b600160008051602061277b8339815191525561111e81612107565b506121b9565b5082546001600160a01b03191617825561113b5780f35b68ff00000000000000001960008051602061279b833981519152541660008051602061279b833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b506001600160a01b038116156110d3565b68ffffffffffffffffff1916680100000000000000011760008051602061279b83398151915255386110bf565b63f92ee8a960e01b8552600485fd5b90501538611095565b303b15915061108d565b859150611083565b50346102c457806003193601126102c45761121661204b565b60008051602061275b8339815191525460ff8116156112705760ff191660008051602061275b833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346102c45760403660031901126102c457611299611c34565b336001600160a01b038216036112b55761033990600435612330565b63334bd91960e11b8252600482fd5b50346102c45760403660031901126102c4576103396004356112e4611c34565b906112f161032f82611efe565b612287565b50346102c45760e03660031901126102c4576004356001600160401b0381116107b657611327903690600401611bed565b506064356001600160401b0381116107b657611347903690600401611c8a565b505060403660831901126102c45760c4356001600160401b0381116107b65760a09060031990360301126102c4576004906107aa611f8e565b50346102c457806003193601126102c45760206040516000805160206126fb8339815191528152f35b50346102c45760203660031901126102c45760206113c8600435611efe565b604051908152f35b50346102c457806003193601126102c457546040516001600160a01b039091168152602090f35b50346102c45760803660031901126102c457600435906001600160401b0382116102c457606060031983360301126102c457602435611434611c60565b926064356001600160401b03811161072c57611454903690600401611c8a565b61145f929192611fdf565b6000805160206126fb83398151915233036115d55761147c611f8e565b6001600160a01b03861695861561053b5784156115c6576000805160206126fb833981519152871480156115bd575b6106d65785546114c9908690309033906001600160a01b03166125d9565b156115a55785546001600160a01b0316803b1561043f5786808092602460405180958193632e1a7d4d60e01b83528c60048401525af19182611590575b505061152357604486868963793cd7bf60e11b8352600452602452fd5b858080878194989697985af161153761201b565b50156115795794849560018060a01b0386541690823b1561043f5786946103fa869260405198899788968795632de7eb0b60e11b875260040160048701611e8e565b604485838863793cd7bf60e11b8352600452602452fd5b8161159a91611bb1565b61043f578638611506565b63793cd7bf60e11b8652306004526024859052604486fd5b503087146114ab565b6319c08f4960e01b8652600486fd5b632160203f60e11b8552600485fd5b50346102c45760403660031901126102c4576115fe611c4a565b90602435916001600160401b0383116107b657826004019060c060031985360301126117155761162c611fdf565b6000805160206126fb83398151915233036102b557611649611f8e565b6001600160a01b0316908115611706578293823b15611701576103fa926116ef858094604051968795869485936316a67dbf60e11b85526020600486015260a46116a76116968380611dd7565b60c060248a015260e4890191611e08565b936001600160a01b036116bc60248301611c76565b166044880152604481013560648801526116d860648201611dca565b151560848801526084810135828801520190611dd7565b8483036023190160c486015290611e08565b505050fd5b63d92e233d60e01b8352600483fd5b8280fd5b50346102c45760403660031901126102c457611733611c4a565b90602435916001600160401b0383116107b657608060031984360301126107b65761175c611fdf565b6000805160206126fb833981519152330361180957611779611f8e565b6001600160a01b03169182156117fa578282933b156106b8576117b98392918392604051958680948193636481451b60e11b835260040160048301611e29565b03925af180156117ed576117dd575b600160008051602061277b8339815191525580f35b6117e691611bb1565b38816117c8565b50604051903d90823e3d90fd5b63d92e233d60e01b8252600482fd5b632160203f60e11b8252600482fd5b50346102c45760c03660031901126102c4576004356001600160401b0381116107b657611849903690600401611bed565b611851611c34565b6044356001600160401b03811161072c57611870903690600401611c8a565b90916040366063190112610b405760a435926001600160401b038411610d7157836004019260a0600319863603011261043f576118ab611f8e565b606435938415610d625760648601926108006118d26118ca8685611d75565b905085611da7565b11611b1a57604051956118e487611b80565b86526084358015158103611b165760208701526040519160a083018381106001600160401b03821117611b025760405261191d90611c76565b825261192b60248801611dca565b926020830193845261193f60448901611c76565b9460408401958652356001600160401b038111611afe5761196690600436918b0101611bed565b95606084019687526084608085019901358952895115611aef5787516040805163fc5fecd560e01b815260048101929092526001600160a01b03929092169a91816024818e5afa908115611ae4578c908d92611ab2575b506119c982338361257d565b15611a8257505093611a7493611a3c611a2660a099957f306ee13f48319a123b222c69908e44dcf91abffc20cacc502e3cf5a4ff23e0e49b9995611a1860809a6040519d8e8181520190611cb7565b8c810360208e015291611e08565b885160408b0152602090980151151560608a0152565b87870386890152516001600160a01b03908116875290511515602087015290511660408501525160a060608501819052840190611cb7565b94519101528033930390a380f35b633338088960e11b8d526001600160a01b03166004526000805160206126fb83398151915260245260445260648bfd5b9050611ad6915060403d604011611add575b611ace8183611bb1565b810190611fb8565b90386119bd565b503d611ac4565b6040513d8e823e3d90fd5b63d92e233d60e01b8b5260048bfd5b8a80fd5b634e487b7160e01b8b52604160045260248bfd5b8980fd5b604489610d4d85610d458887611d75565b9050346107b65760203660031901126107b65760043563ffffffff60e01b81168091036117155760209250637965db0b60e01b8114908115611b6f575b5015158152f35b6301ffc9a760e01b14905038611b68565b604081019081106001600160401b03821117611b9b57604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b03821117611b9b57604052565b6001600160401b038111611b9b57601f01601f191660200190565b81601f82011215610a8b57803590611c0482611bd2565b92611c126040519485611bb1565b82845260208383010111610a8b57816000926020809301838601378301015290565b602435906001600160a01b0382168203610a8b57565b600435906001600160a01b0382168203610a8b57565b604435906001600160a01b0382168203610a8b57565b35906001600160a01b0382168203610a8b57565b9181601f84011215610a8b578235916001600160401b038311610a8b5760208381860195010111610a8b57565b919082519283825260005b848110611ce3575050826000602080949584010152601f8019910116010190565b80602080928401015182828601015201611cc2565b60a0600319820112610a8b576004356001600160401b038111610a8b5760608183036003190112610a8b57600401916024356001600160a01b0381168103610a8b5791604435916064356001600160a01b0381168103610a8b5791608435906001600160401b038211610a8b57611d7191600401611c8a565b9091565b903590601e1981360301821215610a8b57018035906001600160401b038211610a8b57602001918136038313610a8b57565b91908201809211611db457565b634e487b7160e01b600052601160045260246000fd5b35908115158203610a8b57565b9035601e1982360301811215610a8b5701602081359101916001600160401b038211610a8b578136038313610a8b57565b908060209392818452848401376000828201840152601f01601f1916010190565b60208152611e8b9160a090611e7b906001600160a01b03611e4982611c76565b166020850152600180841b03611e6160208301611c76565b166040850152604081013560608501526060810190611dd7565b9190926080808201520191611e08565b90565b90939192611e8b9593608083526040611ebb611eaa8880611dd7565b6060608088015260e0870191611e08565b966001600160a01b03611ed060208301611c76565b1660a0860152013560c08401526001600160a01b031660208301526040820152808403606090910152611e08565b60005260008051602061273b83398151915260205260016040600020015490565b906001600160a01b03611f3183611c76565b168152611f4060208301611dca565b151560208201526001600160a01b03611f5b60408401611c76565b166040820152608080611f85611f746060860186611dd7565b60a0606087015260a0860191611e08565b93013591015290565b60ff60008051602061275b8339815191525416611fa757565b63d93c066560e01b60005260046000fd5b9190826040910312610a8b5781516001600160a01b0381168103610a8b5760209092015190565b600260008051602061277b833981519152541461200a57600260008051602061277b83398151915255565b633ee5aeb560e01b60005260046000fd5b3d15612046573d9061202c82611bd2565b9161203a6040519384611bb1565b82523d6000602084013e565b606090565b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561208457565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b600081815260008051602061273b8339815191526020908152604080832033845290915290205460ff16156120ef5750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff166121b3576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50600090565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff166121b3576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b600081815260008051602061273b833981519152602090815260408083206001600160a01b038616845290915290205460ff1661232957600081815260008051602061273b833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b5050600090565b600081815260008051602061273b833981519152602090815260408083206001600160a01b038616845290915290205460ff161561232957600081815260008051602061273b833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6040805163fc5fecd560e01b8152600481019490945290916001600160a01b0381169184602481855afa9384156124df576000906000956124bb575b5061241885338361257d565b15612484575061242a833033846125d9565b1561245a578261243991612659565b1561244357505090565b637112ae7760e01b60005260045260245260446000fd5b506084916040519163489ca9b760e01b835260048301523360248301523060448301526064820152fd5b633338088960e11b60009081526001600160a01b039091166004526000805160206126fb8339815191526024526044859052606490fd5b90506124d791945060403d604011611add57611ace8183611bb1565b93903861240c565b6040513d6000823e3d90fd5b90816020910312610a8b57518015158103610a8b5790565b6040516311f9fbc960e21b81526001600160a01b039283166004820152602481019390935260209183916044918391600091165af16000918161254c575b50611e8b5750600090565b61256f91925060203d602011612576575b6125678183611bb1565b8101906124eb565b9038612541565b503d61255d565b6040516323b872dd60e01b81526001600160a01b0392831660048201526000805160206126fb8339815191526024820152604481019390935260209183916064918391600091165af16000918161254c5750611e8b5750600090565b6040516323b872dd60e01b81526001600160a01b03928316600482015292821660248401526044830193909352909160209183916064918391600091165af16000918161254c5750611e8b5750600090565b60ff60008051602061279b8339815191525460401c161561264857565b631afcd79f60e31b60005260046000fd5b604051630852cd8d60e31b81526004810192909252602090829060249082906000906001600160a01b03165af16000918161254c5750611e8b5750600090565b906126bf57508051156126ae57805190602001fd5b63d6bda27560e01b60005260046000fd5b815115806126f1575b6126d0575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b156126c856fe000000000000000000000000735b14bb79463307aacbed86daf3322b1e6226ab360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220542941658a96d6dd4010b90beba1b2fc5ed2076ef97c9889b30ab9ceda5036f064736f6c634300081a0033"; + "0x60a080604052346100ea57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b60405161313190816100f082396080518181816110ea015261117e0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880610054565b63f92ee8a960e01b60005260046000fd5b600080fdfe6080806040526004361015610067575b50361561001b57600080fd5b6100236125ec565b6000546001600160a01b03163314158061004f575b61003e57005b63b3af013760e01b60005260046000fd5b5060008051602061303c833981519152331415610038565b600090813560e01c90816301ffc9a7146120665750806306433b1b1461203757806306cb898314611d92578063184b079314611cdb5780632095dedb14611bb857806321e093b114611b91578063248a9ca314611b6a5780632722feee14611b415780632810ae63146117255780632f2ff15d146116f357806330b103421461160557806336568abe146115c05780633f4ba83a1461153e578063485cc955146113665780634f1ef2861461113f57806352d1902d146110d75780635c975abb146110a75780637b15118b14610f1e5780637c0dcb5f14610d055780638456cb5914610c9057806391d1485414610c3757806397a1cef11461082a5780639d4ba46514610705578063a217fddf146106e9578063ad3cb1cc1461069c578063bcbe93651461067f578063bcf7f32b146105fb578063c39aca37146104ea578063d547741f146104af578063e279a72a14610491578063e63ab1e914610456578063e90b9e5e1461038d578063edc5b62e1461036f578063f340fa01146102b35763f45346dc0361000f57346102b05760603660031901126102b05761020a612185565b9060243561021661219b565b60008051602061303c83398151915233036102a1576102336125ec565b61023c84612684565b61024581612684565b8115610292576102553082612f1f565b610260828286612d49565b15610269578280f35b632050a1dd60e11b83526001600160a01b03938416600452909216602452604491909152606490fd5b632ca2f52b60e11b8352600483fd5b632160203f60e11b8352600483fd5b80fd5b5060203660031901126102b0576102c8612185565b6102d0612648565b60008051602061303c8339815191523303610360576102ed6125ec565b6102f681612684565b3415610351576103063082612f1f565b8180808034855af16103166125bc565b5015610332575060016000805160206130bc8339815191525580f35b63793cd7bf60e11b82526001600160a01b031660045234602452604490fd5b632ca2f52b60e11b8252600482fd5b632160203f60e11b8252600482fd5b50346102b057806003193601126102b0576020604051621e84808152f35b50610397366121f2565b6103a2929192612648565b60008051602061303c8339815191523303610360576103bf6125ec565b6103c883612684565b34156103515781926103da3082612f1f565b6001600160a01b0316803b156104525761040b9183916040518080958194636481451b60e11b83526004830161235e565b039134905af1801561044757610432575b5060016000805160206130bc8339815191525580f35b8161043c916120ec565b6102b057803861041c565b6040513d84823e3d90fd5b5050fd5b50346102b057806003193601126102b05760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346102b057806003193601126102b0576020604051620186a08152f35b50346102b05760403660031901126102b0576104e66004356104cf61216f565b906104e16104dc826123c3565b61293a565b612bad565b5080f35b50346102b0576104f936612282565b909395949291610507612648565b60008051602061303c83398151915233036105ec576105246125ec565b61052d87612684565b61053681612684565b82156105dd576105463082612f1f565b610551838289612d49565b156105b757949586956001600160a01b031691823b156105b357869461058f869260405198899788968795632de7eb0b60e11b87526004870161257e565b03925af1801561044757610432575060016000805160206130bc8339815191525580f35b8680fd5b632050a1dd60e11b86526001600160a01b03808816600452166024526044829052606485fd5b632ca2f52b60e11b8652600486fd5b632160203f60e11b8652600486fd5b50346102b05761060a36612282565b90936106199695939296612648565b60008051602061303c83398151915233036105ec5785966106386125ec565b61064182612684565b61064a81612684565b6001600160a01b031691823b156105b357869461058f869260405198899788968795632de7eb0b60e11b87526004870161257e565b50346102b057806003193601126102b0576020604051610b408152f35b50346102b057806003193601126102b057506106e56040516106bf6040826120ec565b60058152640352e302e360dc1b602082015260405191829160208352602083019061225d565b0390f35b50346102b057806003193601126102b057602090604051908152f35b50346102b05760803660031901126102b05761071f612185565b906024359161072c61219b565b606435916001600160401b038311610826576080600319843603011261082657610754612648565b60008051602061303c8339815191523303610817576107716125ec565b61077a81612684565b61078382612684565b8415610808576107933083612f1f565b61079e858383612d49565b156107e0575091925082916001600160a01b0316803b156104525761058f8392918392604051948580948193636481451b60e11b83526004016004830161235e565b632050a1dd60e11b84526001600160a01b039081166004521660245250604491909152606490fd5b632ca2f52b60e11b8452600484fd5b632160203f60e11b8452600484fd5b8380fd5b50346102b05760803660031901126102b0576004356001600160401b038111610c335761085b903690600401612128565b604435906024356064356001600160401b038111610c2f5760a081600401916003199036030112610c2f5761088e6125ec565b610899818385612cd4565b604051632013a8cd60e21b815260048101859052908582602481737cce3eb018bf23e1fe2a32692f2c77592d1103945afa918215610c24578692610bd2575b506040516379220d9960e11b8152916020836004816001600160a01b0385165afa928315610b88578793610b93575b5060405163d7fd7afb60e01b81526004810187905292602090849060249082906001600160a01b03165afa928315610b88578793610b54575b508215610b4557604051637066b18d60e01b815286600482015260406024820152600860448201526719d85cd31a5b5a5d60c21b60648201528781608481737cce3eb018bf23e1fe2a32692f2c77592d1103945afa889181610b29575b50610afc5750620186a0925b604051637066b18d60e01b815287600482015260406024820152600f60448201526e70726f746f636f6c466c617446656560881b60648201528881608481737cce3eb018bf23e1fe2a32692f2c77592d1103945afa899181610ad8575b50610aa9575087935b80820291820403610a955791610a8f91610a56610a4f867f07bf64173efd8f3dfb9e4eb3834bab9d5b85a3d89a1c6425797329de0668502c9897966127ad565b8092612e86565b610a5f856127d0565b60018060a01b038954169360405191610a77836120bb565b8a835260016020840152604051968796339a8861250f565b0390a380f35b634e487b7160e01b88526011600452602488fd5b8051908115610acf5760208082019282019190910312610aca575193610a0f565b600080fd5b50508793610a0f565b610af59192503d808c833e610aed81836120ec565b810190612e61565b9038610a06565b8051908115610b1d5760208082019282019190910312610aca5751926109a9565b5050620186a0926109a9565b610b3e9192503d808b833e610aed81836120ec565b903861099d565b630e661aed60e41b8752600487fd5b9092506020813d602011610b80575b81610b70602093836120ec565b81010312610aca57519138610940565b3d9150610b63565b6040513d89823e3d90fd5b92506020833d602011610bca575b81610bae602093836120ec565b810103126105b3576020610bc3602494612757565b9350610907565b3d9150610ba1565b9091503d8087833e610be481836120ec565b8101906040818303126105b357610bfa81612757565b9160208201516001600160401b038111610c2057610c18920161276b565b5090386108d8565b8880fd5b6040513d88823e3d90fd5b8480fd5b5080fd5b50346102b05760403660031901126102b0576040610c5361216f565b91600435815260008051602061307c833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346102b057806003193601126102b057610ca96128c8565b610cb16125ec565b600160ff1960008051602061309c83398151915254161760008051602061309c833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346102b05760803660031901126102b0576004356001600160401b038111610c3357610d36903690600401612128565b8160243591610d4361219b565b92606435936001600160401b0385116108265760a08560040195600319903603011261082657610d716125ec565b610d7c858385612cd4565b604051630123a4f160e31b81526001600160a01b03821695906020816004818a5afa908115610c24578691610ee6575b50610db8908385612c4d565b604051634d8943bb60e01b81529096602082600481845afa918215610b88578792610eaf575b5090602060049260405193848092630123a4f160e31b82525afa918215610b88578792610e55575b5090610a8f92917f07bf64173efd8f3dfb9e4eb3834bab9d5b85a3d89a1c6425797329de0668502c96979860405192610e3e846120bb565b835260016020840152604051968796339a8861250f565b9291509495506020823d602011610ea7575b81610e74602093836120ec565b81010312610aca5790518795947f07bf64173efd8f3dfb9e4eb3834bab9d5b85a3d89a1c6425797329de0668502c610e06565b3d9150610e67565b915095506020813d602011610ede575b81610ecc602093836120ec565b81010312610aca575187956020610dde565b3d9150610ebf565b9550506020853d602011610f16575b81610f02602093836120ec565b81010312610aca57610db887955190610dac565b3d9150610ef5565b50346102b05760e03660031901126102b0576004356001600160401b038111610c3357610f4f903690600401612128565b8160243591610f5c61219b565b926064356001600160401b03811161082657610f7c9036906004016121c5565b9094906040366083190112610c2f5760c435906001600160401b0382116110a35760a0826004019260031990360301126110a357610fb86125ec565b610fc582828987896126a5565b610fd26084358486612c4d565b604051634d8943bb60e01b8152906020826004816001600160a01b0389165afa91821561109857889261103a575b5097610a8f9392917fd90f94752d2b12f364f4a2237ebe1aff24ba6127585376bf4935f6a7be17dd2a979899604051978897339b89612453565b939291509596506020833d602011611090575b8161105a602093836120ec565b81010312610aca5791518896959192917fd90f94752d2b12f364f4a2237ebe1aff24ba6127585376bf4935f6a7be17dd2a611000565b3d915061104d565b6040513d8a823e3d90fd5b8580fd5b50346102b057806003193601126102b057602060ff60008051602061309c83398151915254166040519015158152f35b50346102b057806003193601126102b0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316300361113057602060405160008051602061305c8339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126102b057611154612185565b906024356001600160401b038111610c3357611174903690600401612128565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611343575b506113345781805260008051602061307c83398151915260209081526040808420336000908152925290205460ff161561131c576040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa809585966112e8575b5061122257634c9c8ce360e01b84526004839052602484fd5b90918460008051602061305c83398151915281036112d65750813b156112c45760008051602061305c83398151915280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a281518390156112aa57808360206104e695519101845af46112a46125bc565b91612fda565b505050346112b55780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011611314575b81611304602093836120ec565b81010312610c2f57519438611209565b3d91506112f7565b63e2517d3f60e01b8252336004526024829052604482fd5b63703e46dd60e11b8252600482fd5b60008051602061305c833981519152546001600160a01b031614159050386111a9565b50346102b05760403660031901126102b057611380612185565b61138861216f565b6000805160206130dc833981519152549160ff8360401c1615926001600160401b03811680159081611536575b600114908161152c575b159081611523575b506115145767ffffffffffffffff1981166001176000805160206130dc83398151915255836114e7575b506001600160a01b031690811580156114d6575b6114c75761145690611415612f6c565b61141d612f6c565b611425612f6c565b61142d612f6c565b611435612f6c565b60016000805160206130bc8339815191525561145081612984565b50612a36565b5082546001600160a01b03191617825561146d5780f35b68ff0000000000000000196000805160206130dc83398151915254166000805160206130dc833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b637138356f60e01b8452600484fd5b506001600160a01b03811615611405565b68ffffffffffffffffff191668010000000000000001176000805160206130dc83398151915255386113f1565b63f92ee8a960e01b8552600485fd5b905015386113c7565b303b1591506113bf565b8591506113b5565b50346102b057806003193601126102b0576115576128c8565b60008051602061309c8339815191525460ff8116156115b15760ff191660008051602061309c833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346102b05760403660031901126102b0576115da61216f565b336001600160a01b038216036115f6576104e690600435612bad565b63334bd91960e11b8252600482fd5b5060603660031901126102b057600435906001600160401b0382116102b057606060031983360301126102b05761163a61216f565b916044356001600160401b0381116116ef5761165a9036906004016121c5565b611665929192612648565b60008051602061303c8339815191523303610817576116826125ec565b61168b85612684565b341561080857839461169d3082612f1f565b6001600160a01b0316803b15610c2f576116dd859361040b604051968795869485946375fcd95560e11b86526040600487015260448601906004016124cd565b8481036003190160248601529161233d565b8280fd5b50346102b05760403660031901126102b0576104e660043561171361216f565b906117206104dc826123c3565b612b04565b50346102b05760e03660031901126102b0576004356001600160401b038111610c3357611756903690600401612128565b604435906024356064356001600160401b038111610c2f5761177c9036906004016121c5565b60403660831901126110a35760c435906001600160401b0382116105b35760a0826004019260031990360301126105b3576117b56125ec565b6117c282828587896126a5565b604051632013a8cd60e21b815260048101879052926084358885602481737cce3eb018bf23e1fe2a32692f2c77592d1103945afa948515611b36578995611ae4575b506040516379220d9960e11b81526020816004816001600160a01b038a165afa908115611a96578a91611aa1575b5060405163d7fd7afb60e01b8152600481018a905290602090829060249082906001600160a01b03165afa908115611a96578a91611a64575b508015611a555781156119a5575b604051637066b18d60e01b815289600482015260406024820152600f60448201526e70726f746f636f6c466c617446656560881b60648201528a81608481737cce3eb018bf23e1fe2a32692f2c77592d1103945afa8b9181611988575b5061195e575089915b8082029182040361194a579181611928611921610a8f96947fd90f94752d2b12f364f4a2237ebe1aff24ba6127585376bf4935f6a7be17dd2a9a9998966127ad565b8097612e86565b611931876127d0565b60018060a01b038b541695604051978897339b89612453565b634e487b7160e01b8a52601160045260248afd5b805190811561197f5760208082019282019190910312610aca5751916118df565b505089916118df565b61199e9192508c3d8091833e610aed81836120ec565b90386118d6565b9050604051637066b18d60e01b815288600482015260406024820152600860448201526719d85cd31a5b5a5d60c21b60648201528981608481737cce3eb018bf23e1fe2a32692f2c77592d1103945afa8a9181611a39575b50611a0e5750620186a05b90611879565b8051908115611a2e5760208082019282019190910312610aca5751611a08565b5050620186a0611a08565b611a4e9192503d808d833e610aed81836120ec565b90386119fd565b630e661aed60e41b8a5260048afd5b90506020813d602011611a8e575b81611a7f602093836120ec565b81010312610aca57513861186b565b3d9150611a72565b6040513d8c823e3d90fd5b90506020813d602011611adc575b81611abc602093836120ec565b81010312611ad8576020611ad1602492612757565b9150611832565b8980fd5b3d9150611aaf565b9094503d808a833e611af681836120ec565b810190604081830312611ad857611b0c81612757565b9160208201516001600160401b038111611b3257611b2a920161276b565b509338611804565b8b80fd5b6040513d8b823e3d90fd5b50346102b057806003193601126102b057602060405160008051602061303c8339815191528152f35b50346102b05760203660031901126102b0576020611b896004356123c3565b604051908152f35b50346102b057806003193601126102b057546040516001600160a01b039091168152602090f35b50346102b05760403660031901126102b057611bd2612185565b906024356001600160401b038111610c33578060040160c060031983360301126116ef57611bfe612648565b60008051602061303c83398151915233036102a1578293611c1d6125ec565b611c2681612684565b6001600160a01b031691823b15611cd65761058f92611cc4858094604051968795869485936316a67dbf60e11b85526020600486015260a4611c7c611c6b838061230c565b60c060248a015260e489019161233d565b936001600160a01b03611c91602483016121b1565b16604488015260448101356064880152611cad606482016122ff565b15156084880152608481013582880152019061230c565b8483036023190160c48601529061233d565b505050fd5b50346102b057611cea366121f2565b611cf5929192612648565b60008051602061303c8339815191523303610360578192611d146125ec565b611d1d81612684565b6001600160a01b0316803b1561045257611d518392918392604051958680948193636481451b60e11b83526004830161235e565b03925af18015611d8557611d75575b60016000805160206130bc8339815191525580f35b611d7e916120ec565b3881611d60565b50604051903d90823e3d90fd5b50346102b05760c03660031901126102b0576004356001600160401b038111610c3357611dc3903690600401612128565b611dcb61216f565b6044356001600160401b03811161082657611dea9036906004016121c5565b9091906040366063190112610c2f5760a435906001600160401b0382116110a3578160040160a060031984360301126105b357611e256125ec565b60643592620186a08410612028576064810191611e428382612616565b9050610b40611e5182876127ad565b116120065750608482013596621e84808811611feb5760405195611e74876120bb565b86526084358015158103611fe75760208701526040519160a083018381106001600160401b03821117611fd357604052611ead906121b1565b8252611ebb602484016122ff565b9260208301938452611ecf604482016121b1565b9460408401958652356001600160401b038111611b325736910160040190611ef691612128565b946060830195865260808301988952611f0e8a612dc3565b8651611f1a9089612dcb565b506040519960a08b5260a08b01611f309161225d565b908a820360208c0152611f429261233d565b855160408a0152602090950151151560608901528785036080890152516001600160a01b03908116855290511515602085015290511660408301525160a060608301819052611f94919083019061225d565b92516080909101526001600160a01b03169133917f306ee13f48319a123b222c69908e44dcf91abffc20cacc502e3cf5a4ff23e0e4919081900390a380f35b634e487b7160e01b8c52604160045260248cfd5b8a80fd5b637643390f60e11b8a526004889052621e848060245260448afd5b89612013604492876127ad565b63cd6f4e6d60e01b8252600452610b40602452fd5b6360ee124760e01b8852600488fd5b50346102b057806003193601126102b0576020604051737cce3eb018bf23e1fe2a32692f2c77592d1103948152f35b905034610c33576020366003190112610c335760043563ffffffff60e01b81168091036116ef5760209250637965db0b60e01b81149081156120aa575b5015158152f35b6301ffc9a760e01b149050386120a3565b604081019081106001600160401b038211176120d657604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b038211176120d657604052565b6001600160401b0381116120d657601f01601f191660200190565b81601f82011215610aca5780359061213f8261210d565b9261214d60405194856120ec565b82845260208383010111610aca57816000926020809301838601378301015290565b602435906001600160a01b0382168203610aca57565b600435906001600160a01b0382168203610aca57565b604435906001600160a01b0382168203610aca57565b35906001600160a01b0382168203610aca57565b9181601f84011215610aca578235916001600160401b038311610aca5760208381860195010111610aca57565b906040600319830112610aca576004356001600160a01b0381168103610aca5791602435906001600160401b038211610aca576080908290036003190112610aca5760040190565b60005b83811061224d5750506000910152565b818101518382015260200161223d565b906020916122768151809281855285808601910161223a565b601f01601f1916010190565b60a0600319820112610aca576004356001600160401b038111610aca5760608183036003190112610aca57600401916024356001600160a01b0381168103610aca5791604435916064356001600160a01b0381168103610aca5791608435906001600160401b038211610aca576122fb916004016121c5565b9091565b35908115158203610aca57565b9035601e1982360301811215610aca5701602081359101916001600160401b038211610aca578136038313610aca57565b908060209392818452848401376000828201840152601f01601f1916010190565b602081526123c09160a0906123b0906001600160a01b0361237e826121b1565b166020850152600180841b03612396602083016121b1565b16604085015260408101356060850152606081019061230c565b919092608080820152019161233d565b90565b60005260008051602061307c83398151915260205260016040600020015490565b906001600160a01b036123f6836121b1565b168152612405602083016122ff565b151560208201526001600160a01b03612420604084016121b1565b16604082015260808061244a612439606086018661230c565b60a0606087015260a086019161233d565b93013591015290565b979693909261247361249f97949693966101208b526101208b019061225d565b6001600160a01b0390961660208a015260408901526060880152608087015285830360a087015261233d565b9060843560c084015260a43592831515809403610aca576123c09360e08201526101008184039101526123e4565b906040806124ec6124de858061230c565b60608652606086019161233d565b936001600160a01b03612501602083016121b1565b166020850152013591015290565b929560209561010093956123c099986125338995610120895261012089019061225d565b6001600160a01b039098168786015260408701526060860152608085015283850360a0850181905260008652815160c0860152602090910151151560e08501520191015201906123e4565b90926125996123c096949593956080845260808401906124cd565b6001600160a01b039095166020830152604082015280840360609091015261233d565b3d156125e7573d906125cd8261210d565b916125db60405193846120ec565b82523d6000602084013e565b606090565b60ff60008051602061309c833981519152541661260557565b63d93c066560e01b60005260046000fd5b903590601e1981360301821215610aca57018035906001600160401b038211610aca57602001918136038313610aca57565b60026000805160206130bc83398151915254146126735760026000805160206130bc83398151915255565b633ee5aeb560e01b60005260046000fd5b6001600160a01b03161561269457565b637138356f60e01b60005260046000fd5b6126b0919250612dc3565b1561274657620186a060843510612735576126ce6060830183612616565b919050610b406126de83836127ad565b1161271157505060800135621e848081116126f65750565b637643390f60e11b600052600452621e848060245260446000fd5b61271b92506127ad565b63cd6f4e6d60e01b600052600452610b4060245260446000fd5b6360ee124760e01b60005260046000fd5b632ca2f52b60e11b60005260046000fd5b51906001600160a01b0382168203610aca57565b81601f82011215610aca5780516127818161210d565b9261278f60405194856120ec565b81845260208284010111610aca576123c0916020808501910161223a565b919082018092116127ba57565b634e487b7160e01b600052601160045260246000fd5b6000906127ea8160018060a01b0384541630903390612ecd565b156128b15781546001600160a01b0316803b156116ef57828091602460405180948193632e1a7d4d60e01b83528760048401525af1908161289d575b506128505763793cd7bf60e11b825260008051602061303c83398151915260045260245260449150fd5b818080808460008051602061303c8339815191525af161286e6125bc565b5015612878575050565b63793cd7bf60e11b825260008051602061303c83398151915260045260245260449150fd5b836128aa919492946120ec565b9138612826565b63793cd7bf60e11b82523060045260245260449150fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561290157565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b600081815260008051602061307c8339815191526020908152604080832033845290915290205460ff161561296c5750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16612a30576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50600090565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff16612a30576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b600081815260008051602061307c833981519152602090815260408083206001600160a01b038616845290915290205460ff16612ba657600081815260008051602061307c833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b5050600090565b600081815260008051602061307c833981519152602090815260408083206001600160a01b038616845290915290205460ff1615612ba657600081815260008051602061307c833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b9091612c599083612dcb565b91612c6682303384612ecd565b15612c9e57612c758282612f9a565b15612c7f57505090565b637112ae7760e01b60005260018060a01b031660045260245260446000fd5b60405163489ca9b760e01b81526001600160a01b0390911660048201523360248201523060448201526064810191909152608490fd5b612cdd90612dc3565b156127465760608101610b40612cf38284612616565b905011612d0c575060800135621e848081116126f65750565b612d1591612616565b905063cd6f4e6d60e01b600052600452610b4060245260446000fd5b90816020910312610aca57518015158103610aca5790565b6040516311f9fbc960e21b81526001600160a01b039283166004820152602481019390935260209183916044918391600091165af160009181612d92575b506123c05750600090565b612db591925060203d602011612dbc575b612dad81836120ec565b810190612d31565b9038612d87565b503d612da3565b511561269457565b6040805163fc5fecd560e01b8152600481019390935290829060249082906001600160a01b03165afa908115612e5557600090600092612e11575b50816123c091612e86565b9150506040813d604011612e4d575b81612e2d604093836120ec565b81010312610aca576123c06020612e4383612757565b9201519190612e06565b3d9150612e20565b6040513d6000823e3d90fd5b90602082820312610aca5781516001600160401b038111610aca576123c0920161276b565b612e9282303384612ecd565b15612eaa57612ea18282612f9a565b15612c7f575050565b633338088960e11b60005260018060a01b03166004523060245260445260646000fd5b6040516323b872dd60e01b81526001600160a01b03928316600482015292821660248401526044830193909352909160209183916064918391600091165af160009181612d9257506123c05750600090565b60018060a01b031660008051602061303c8339815191528114918215612f59575b5050612f4857565b63416aebb560e11b60005260046000fd5b6001600160a01b03161490503880612f40565b60ff6000805160206130dc8339815191525460401c1615612f8957565b631afcd79f60e31b60005260046000fd5b604051630852cd8d60e31b81526004810192909252602090829060249082906000906001600160a01b03165af160009181612d9257506123c05750600090565b906130005750805115612fef57805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580613032575b613011575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b1561300956fe000000000000000000000000735b14bb79463307aacbed86daf3322b1e6226ab360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220dcfd9538ada3c73069acb60b3e0be5cfe0a45f6b61d299719994330d7b9593bc64736f6c634300081a0033"; type GatewayZEVMConstructorParams = | [signer?: Signer] diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContract__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContract__factory.ts index fe445a6a..86dd9bf2 100644 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContract__factory.ts +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContract__factory.ts @@ -439,7 +439,7 @@ const _abi = [ ] as const; const _bytecode = - "0x60c03461010057601f610b3a38819003918201601f19168301916001600160401b0383118484101761010557808492606094604052833981010312610100576100478161011b565b9061006060406100596020840161011b565b920161011b565b9173735b14bb79463307aacbed86daf3322b1e6226ab33036100ef57600380546001600160a01b0319166001600160a01b039290921691909117905560805260a0526040517f80699e81136d69cb8367ad52a994e25c722a86da654b561d0c14b61a777e7ac5600080a1610a0a9081610130823960805181818161018a015261065d015260a051816106d70152f35b632b2add3d60e01b60005260046000fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036101005756fe608080604052600436101561001357600080fd5b600090813560e01c9081630be1554714610817575080631f0e251b146107915780633ce4a5bc14610762578063513a9c051461072f578063569541b914610706578063842da36d146106c157806391dd645f146105f057806397770dff1461054c578063a7cb0507146104da578063c39aca3714610263578063c62178ac1461023a578063c63585cc146101e2578063d7fd7afb146101b9578063d936a012146101745763ee2815ba146100c657600080fd5b34610171576040366003190112610171576004356100e2610864565b9073735b14bb79463307aacbed86daf3322b1e6226ab33036101625780835260016020908152604080852080546001600160a01b0319166001600160a01b0390951694851790558051928352908201929092527fd1b36d30f6248e97c473b4d1348ca164a4ef6759022f54a58ec200326c39c45d91819081015b0390a180f35b632b2add3d60e01b8352600483fd5b80fd5b50346101715780600319360112610171576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461017157602036600319011261017157604060209160043581528083522054604051908152f35b5034610171576060366003190112610171576101fc610849565b610204610864565b604435929091906001600160a01b03841684036101715760206102288585856108d3565b6040516001600160a01b039091168152f35b50346101715780600319360112610171576004546040516001600160a01b039091168152602090f35b50346101715760a0366003190112610171576004359067ffffffffffffffff82116101715781360360606003198201126104d65761029f610864565b92604435906064356001600160a01b038116908190036104d25760843567ffffffffffffffff81116104ce57366023820112156104ce5780600401359367ffffffffffffffff85116104615736602486840101116104615773735b14bb79463307aacbed86daf3322b1e6226ab33036104bf5773735b14bb79463307aacbed86daf3322b1e6226ab831480156104b6575b6104a7576040516311f9fbc960e21b815260048101849052602481018290529697959688966001600160a01b0316906020816044818b865af1801561049c57610465575b50833b156104615760405197636f218ab760e11b8952608060048a01528560040135906022190181121561045d57850160246004820135910167ffffffffffffffff8211610459578136038113610459576103da91606060848c015260e48b01916108b2565b60248601356001600160a01b038116919082900361045957889760248b98968a968a989660448a9861042d9860a48b0152013560c4890152838801526044870152600319868503016064870152016108b2565b03925af1801561044c5761043e5780f35b6104479161087a565b388180f35b50604051903d90823e3d90fd5b8880fd5b8780fd5b8680fd5b6020813d602011610494575b8161047e6020938361087a565b8101031261045d57518015158114610374578780fd5b3d9150610471565b6040513d8a823e3d90fd5b63416aebb560e11b8752600487fd5b50308314610330565b632b2add3d60e01b8752600487fd5b8580fd5b8480fd5b5080fd5b50346101715760403660031901126101715760043560243573735b14bb79463307aacbed86daf3322b1e6226ab330361016257816040917f49f492222906ac486c3c1401fa545626df1f0c0e5a77a05597ea2ed66af9850d93855284602052808386205582519182526020820152a180f35b503461017157602036600319011261017157610566610849565b73735b14bb79463307aacbed86daf3322b1e6226ab33036105e1576001600160a01b031680156105d2576020817fdba79d534382d1a8ae108e4c8ecb27c6ae42ab8b91d44eedf88bd329f3868d5e926001600160601b0360a01b6003541617600355604051908152a180f35b63d92e233d60e01b8252600482fd5b632b2add3d60e01b8252600482fd5b50346101715760403660031901126101715760043561060d610864565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610162576003547f0ecec485166da6139b13bb7e033e9446e2d35348e80ebf1180d4afe2dba1704e9291610681916001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006108d3565b81845260026020908152604080862080546001600160a01b0319166001600160a01b0390941693841790558051938452908301919091528190810161015c565b50346101715780600319360112610171576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101715780600319360112610171576003546040516001600160a01b039091168152602090f35b503461017157602036600319011261017157602090600435815260028252604060018060a01b0391205416604051908152f35b5034610171578060031936011261017157602060405173735b14bb79463307aacbed86daf3322b1e6226ab8152f35b5034610171576020366003190112610171576107ab610849565b73735b14bb79463307aacbed86daf3322b1e6226ab33036105e1576001600160a01b031680156105d2576020817f3ade88e3922d64780e1bf4460d364c2970b69da813f9c0c07a1c187b5647636c926001600160601b0360a01b6004541617600455604051908152a180f35b9050346104d65760203660031901126104d6576004358252600160209081526040909220546001600160a01b03168152f35b600435906001600160a01b038216820361085f57565b600080fd5b602435906001600160a01b038216820361085f57565b90601f8019910116810190811067ffffffffffffffff82111761089c57604052565b634e487b7160e01b600052604160045260246000fd5b908060209392818452848401376000828201840152601f01601f1916010190565b91906001600160a01b038083169082168082146109c35710156109be57905b6001600160a01b038216156109ad576040519060208201926001600160601b03199060601b1683526001600160601b03199060601b1660348201526028815261093c60488261087a565b5190209060405191602083019160ff60f81b83526001600160601b03199060601b16602184015260358301527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f60558301526055825261099d60758361087a565b905190206001600160a01b031690565b633c5a83ed60e11b60005260046000fd5b6108f2565b63658f3e7f60e11b60005260046000fdfea26469706673582212203d5f24fd62859186e7d8a9f41a0e370a08bd7cbc34344f0eb46593f3ba299ff564736f6c634300081a0033"; + "0x60c03461010057601f610b3a38819003918201601f19168301916001600160401b0383118484101761010557808492606094604052833981010312610100576100478161011b565b9061006060406100596020840161011b565b920161011b565b9173735b14bb79463307aacbed86daf3322b1e6226ab33036100ef57600380546001600160a01b0319166001600160a01b039290921691909117905560805260a0526040517f80699e81136d69cb8367ad52a994e25c722a86da654b561d0c14b61a777e7ac5600080a1610a0a9081610130823960805181818161018a015261065d015260a051816106d70152f35b632b2add3d60e01b60005260046000fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036101005756fe608080604052600436101561001357600080fd5b600090813560e01c9081630be1554714610817575080631f0e251b146107915780633ce4a5bc14610762578063513a9c051461072f578063569541b914610706578063842da36d146106c157806391dd645f146105f057806397770dff1461054c578063a7cb0507146104da578063c39aca3714610263578063c62178ac1461023a578063c63585cc146101e2578063d7fd7afb146101b9578063d936a012146101745763ee2815ba146100c657600080fd5b34610171576040366003190112610171576004356100e2610864565b9073735b14bb79463307aacbed86daf3322b1e6226ab33036101625780835260016020908152604080852080546001600160a01b0319166001600160a01b0390951694851790558051928352908201929092527fd1b36d30f6248e97c473b4d1348ca164a4ef6759022f54a58ec200326c39c45d91819081015b0390a180f35b632b2add3d60e01b8352600483fd5b80fd5b50346101715780600319360112610171576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461017157602036600319011261017157604060209160043581528083522054604051908152f35b5034610171576060366003190112610171576101fc610849565b610204610864565b604435929091906001600160a01b03841684036101715760206102288585856108d3565b6040516001600160a01b039091168152f35b50346101715780600319360112610171576004546040516001600160a01b039091168152602090f35b50346101715760a0366003190112610171576004359067ffffffffffffffff82116101715781360360606003198201126104d65761029f610864565b92604435906064356001600160a01b038116908190036104d25760843567ffffffffffffffff81116104ce57366023820112156104ce5780600401359367ffffffffffffffff85116104615736602486840101116104615773735b14bb79463307aacbed86daf3322b1e6226ab33036104bf5773735b14bb79463307aacbed86daf3322b1e6226ab831480156104b6575b6104a7576040516311f9fbc960e21b815260048101849052602481018290529697959688966001600160a01b0316906020816044818b865af1801561049c57610465575b50833b156104615760405197636f218ab760e11b8952608060048a01528560040135906022190181121561045d57850160246004820135910167ffffffffffffffff8211610459578136038113610459576103da91606060848c015260e48b01916108b2565b60248601356001600160a01b038116919082900361045957889760248b98968a968a989660448a9861042d9860a48b0152013560c4890152838801526044870152600319868503016064870152016108b2565b03925af1801561044c5761043e5780f35b6104479161087a565b388180f35b50604051903d90823e3d90fd5b8880fd5b8780fd5b8680fd5b6020813d602011610494575b8161047e6020938361087a565b8101031261045d57518015158114610374578780fd5b3d9150610471565b6040513d8a823e3d90fd5b63416aebb560e11b8752600487fd5b50308314610330565b632b2add3d60e01b8752600487fd5b8580fd5b8480fd5b5080fd5b50346101715760403660031901126101715760043560243573735b14bb79463307aacbed86daf3322b1e6226ab330361016257816040917f49f492222906ac486c3c1401fa545626df1f0c0e5a77a05597ea2ed66af9850d93855284602052808386205582519182526020820152a180f35b503461017157602036600319011261017157610566610849565b73735b14bb79463307aacbed86daf3322b1e6226ab33036105e1576001600160a01b031680156105d2576020817fdba79d534382d1a8ae108e4c8ecb27c6ae42ab8b91d44eedf88bd329f3868d5e926001600160601b0360a01b6003541617600355604051908152a180f35b63d92e233d60e01b8252600482fd5b632b2add3d60e01b8252600482fd5b50346101715760403660031901126101715760043561060d610864565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610162576003547f0ecec485166da6139b13bb7e033e9446e2d35348e80ebf1180d4afe2dba1704e9291610681916001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006108d3565b81845260026020908152604080862080546001600160a01b0319166001600160a01b0390941693841790558051938452908301919091528190810161015c565b50346101715780600319360112610171576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101715780600319360112610171576003546040516001600160a01b039091168152602090f35b503461017157602036600319011261017157602090600435815260028252604060018060a01b0391205416604051908152f35b5034610171578060031936011261017157602060405173735b14bb79463307aacbed86daf3322b1e6226ab8152f35b5034610171576020366003190112610171576107ab610849565b73735b14bb79463307aacbed86daf3322b1e6226ab33036105e1576001600160a01b031680156105d2576020817f3ade88e3922d64780e1bf4460d364c2970b69da813f9c0c07a1c187b5647636c926001600160601b0360a01b6004541617600455604051908152a180f35b9050346104d65760203660031901126104d6576004358252600160209081526040909220546001600160a01b03168152f35b600435906001600160a01b038216820361085f57565b600080fd5b602435906001600160a01b038216820361085f57565b90601f8019910116810190811067ffffffffffffffff82111761089c57604052565b634e487b7160e01b600052604160045260246000fd5b908060209392818452848401376000828201840152601f01601f1916010190565b91906001600160a01b038083169082168082146109c35710156109be57905b6001600160a01b038216156109ad576040519060208201926001600160601b03199060601b1683526001600160601b03199060601b1660348201526028815261093c60488261087a565b5190209060405191602083019160ff60f81b83526001600160601b03199060601b16602184015260358301527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f60558301526055825261099d60758361087a565b905190206001600160a01b031690565b633c5a83ed60e11b60005260046000fd5b6108f2565b63658f3e7f60e11b60005260046000fdfea2646970667358221220731883ff6e0ceb2606a746c8c954b8de749575b0c5816517e955a814399784bd64736f6c634300081a0033"; type SystemContractConstructorParams = | [signer?: Signer] diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20__factory.ts index 183adb6f..78008304 100644 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20__factory.ts +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/ZRC20.sol/ZRC20__factory.ts @@ -724,7 +724,7 @@ const _abi = [ ] as const; const _bytecode = - "0x60c06040523461041a57611879803803806100198161041f565b92833981016101008282031261041a5781516001600160401b03811161041a5781610045918401610444565b602083015190916001600160401b03821161041a57610065918401610444565b9160408101519160ff831680930361041a576060820151936080830151600381101561041a5760a0840151916100a960e06100a260c088016104af565b96016104af565b946001600160a01b03169384158015610409575b6103f8578051906001600160401b0382116102f55760065490600182811c921680156103ee575b60208310146102d55781601f84931161037e575b50602090601f83116001146103165760009261030b575b50508160011b916000199060031b1c1916176006555b8051906001600160401b0382116102f55760075490600182811c921680156102eb575b60208310146102d55781601f849311610265575b50602090601f83116001146101fd576000926101f2575b50508160011b916000199060031b1c1916176007555b6008549560805260a05260015560018060a01b03196000541617600055610100600160a81b039060081b169160018060a81b03191617176008556040516113b590816104c4823960805181818161016b01528181610b3e01526110c7015260a051816109e40152f35b015190503880610173565b600760009081528281209350601f198516905b81811061024d5750908460019594939210610234575b505050811b01600755610189565b015160001960f88460031b161c19169055388080610226565b92936020600181928786015181550195019301610210565b60076000529091507fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688601f840160051c810191602085106102cb575b90601f859493920160051c01905b8181106102bc575061015c565b600081558493506001016102af565b90915081906102a1565b634e487b7160e01b600052602260045260246000fd5b91607f1691610148565b634e487b7160e01b600052604160045260246000fd5b01519050388061010f565b600660009081528281209350601f198516905b818110610366575090846001959493921061034d575b505050811b01600655610125565b015160001960f88460031b161c1916905538808061033f565b92936020600181928786015181550195019301610329565b60066000529091507ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f601f840160051c810191602085106103e4575b90601f859493920160051c01905b8181106103d557506100f8565b600081558493506001016103c8565b90915081906103ba565b91607f16916100e4565b63d92e233d60e01b60005260046000fd5b506001600160a01b038616156100bd565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176102f557604052565b81601f8201121561041a578051906001600160401b0382116102f557610473601f8301601f191660200161041f565b928284526020838301011161041a5760005b82811061049a57505060206000918301015290565b80602080928401015182828701015201610485565b51906001600160a01b038216820361041a5756fe608080604052600436101561001357600080fd5b60003560e01c90816306fdde0314610e7057508063091d278814610e52578063095ea7b314610e2c57806318160ddd14610e0e57806323b872dd14610d8d578063313ce56714610d6c5780633ce4a5bc14610d3d57806342966c6814610d2057806347e7ef2414610bb95780634d8943bb14610b9b57806370a0823114610b6157806385e1f4d014610b265780638b851b9514610afc57806395d89b4114610a2c578063a3413d03146109d1578063a9059cbb146109a0578063b84c82461461083b578063c47f0027146106c0578063c70126261461055e578063c835d7cc146104d5578063ccc775991461042f578063d9eeebed14610416578063dd62ed3e146103c5578063eddeb12314610365578063f2441b321461033c578063f687d12a146102cb5763fc5fecd51461014857600080fd5b346102c65760203660031901126102c657600054604051630be1554760e01b81527f00000000000000000000000000000000000000000000000000000000000000006004820181905290916001600160a01b031690602083602481855afa92831561027857600093610295575b506001600160a01b038316156102845760209060246040518094819363d7fd7afb60e01b835260048301525afa90811561027857600091610243575b508015610232576102086102119160043590611095565b600254906110a8565b604080516001600160a01b03939093168352602083019190915290f35b0390f35b630e661aed60e41b60005260046000fd5b906020823d602011610270575b8161025d60209383610f71565b8101031261026d575051386101f1565b80fd5b3d9150610250565b6040513d6000823e3d90fd5b633c7ff9cb60e11b60005260046000fd5b6102b891935060203d6020116102bf575b6102b08183610f71565b810190611076565b91386101b5565b503d6102a6565b600080fd5b346102c65760203660031901126102c65760043573735b14bb79463307aacbed86daf3322b1e6226ab330361032b576020817fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a92600155604051908152a1005b632b2add3d60e01b60005260046000fd5b346102c65760003660031901126102c6576000546040516001600160a01b039091168152602090f35b346102c65760203660031901126102c65760043573735b14bb79463307aacbed86daf3322b1e6226ab330361032b576020817fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f92600255604051908152a1005b346102c65760403660031901126102c6576103de610f45565b6103e6610f5b565b6001600160a01b039182166000908152600460209081526040808320949093168252928352819020549051908152f35b346102c65760003660031901126102c6576102116110b5565b346102c65760203660031901126102c657610448610f45565b73735b14bb79463307aacbed86daf3322b1e6226ab330361032b576001600160a01b0381169081156104c45760088054610100600160a81b03191691811b610100600160a81b03169190911790556040519081527f88815d964e380677e86d817e7d65dea59cb7b4c3b5b7a0c8ec7ea4a74f90a38790602090a1005b63d92e233d60e01b60005260046000fd5b346102c65760203660031901126102c6576104ee610f45565b73735b14bb79463307aacbed86daf3322b1e6226ab330361032b576001600160a01b031680156104c4576020817fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae926bffffffffffffffffffffffff60a01b6000541617600055604051908152a1005b346102c65760403660031901126102c65760043567ffffffffffffffff81116102c657366023820112156102c6576105a0903690602481600401359101610f93565b60206024359160006105b06110b5565b93906064604051809481936323b872dd60e01b835233600484015273735b14bb79463307aacbed86daf3322b1e6226ab602484015288604484015260018060a01b03165af190811561027857600091610681575b5015610670577f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d9559161063684336112c5565b6002549061064f60405193608085526080850190610f04565b946020840152604083015260608201528033930390a2602060405160018152f35b63053e6b6b60e11b60005260046000fd5b6020813d6020116106b8575b8161069a60209383610f71565b810103126106b4575190811515820361026d575084610604565b5080fd5b3d915061068d565b346102c6576106ce36610fda565b73735b14bb79463307aacbed86daf3322b1e6226ab330361032b57805167ffffffffffffffff811161082557610705600654611019565b601f81116107b8575b50602091601f821160011461074c57918192600092610741575b5050600019600383901b1c191660019190911b17600655005b015190508280610728565b601f1982169260066000526000805160206113608339815191529160005b8581106107a057508360019510610787575b505050811b01600655005b015160001960f88460031b161c1916905582808061077c565b9192602060018192868501518155019401920161076a565b6006600052601f820160051c60008051602061136083398151915201906020831061080f575b601f0160051c60008051602061136083398151915201905b818110610803575061070e565b600081556001016107f6565b60008051602061136083398151915291506107de565b634e487b7160e01b600052604160045260246000fd5b346102c65761084936610fda565b73735b14bb79463307aacbed86daf3322b1e6226ab330361032b57805167ffffffffffffffff811161082557610880600754611019565b601f8111610933575b50602091601f82116001146108c7579181926000926108bc575b5050600019600383901b1c191660019190911b17600755005b0151905082806108a3565b601f1982169260076000526000805160206113408339815191529160005b85811061091b57508360019510610902575b505050811b01600755005b015160001960f88460031b161c191690558280806108f7565b919260206001819286850151815501940192016108e5565b6007600052601f820160051c60008051602061134083398151915201906020831061098a575b601f0160051c60008051602061134083398151915201905b81811061097e5750610889565b60008155600101610971565b6000805160206113408339815191529150610959565b346102c65760403660031901126102c6576109c66109bc610f45565b602435903361121f565b602060405160018152f35b346102c65760003660031901126102c6577f00000000000000000000000000000000000000000000000000000000000000006040516003821015610a16576020918152f35b634e487b7160e01b600052602160045260246000fd5b346102c65760003660031901126102c6576040516000600754610a4e81611019565b8084529060018116908115610ad85750600114610a8a575b61022e83610a7681850382610f71565b604051918291602083526020830190610f04565b9190506007600052600080516020611340833981519152916000905b808210610abe57509091508101602001610a76610a66565b919260018160209254838588010152019101909291610aa6565b60ff191660208086019190915291151560051b84019091019150610a769050610a66565b346102c65760003660031901126102c65760088054604051911c6001600160a01b03168152602090f35b346102c65760003660031901126102c65760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346102c65760203660031901126102c6576001600160a01b03610b82610f45565b1660005260036020526020604060002054604051908152f35b346102c65760003660031901126102c6576020600254604051908152f35b346102c65760403660031901126102c657610bd2610f45565b6024359073735b14bb79463307aacbed86daf3322b1e6226ab33141580610d0b575b80610cf3575b610ce2576001600160a01b03169081156104c457610cce81610c3f7f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab3936005546110a8565b6005558360005260036020526040600020610c5b8282546110a8565b90558360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020604051858152a360405173735b14bb79463307aacbed86daf3322b1e6226ab60601b60208201526014815290610cba603483610f71565b604051928392604084526040840190610f04565b9060208301520390a2602060405160018152f35b636edaef2f60e11b60005260046000fd5b506008805433911c6001600160a01b03161415610bfa565b506000546001600160a01b0316331415610bf4565b346102c65760203660031901126102c6576109c6600435336112c5565b346102c65760003660031901126102c657602060405173735b14bb79463307aacbed86daf3322b1e6226ab8152f35b346102c65760003660031901126102c657602060ff60085416604051908152f35b346102c65760603660031901126102c657610da6610f45565b610dae610f5b565b90610dbd60443580938361121f565b6001600160a01b0381166000908152600460209081526040808320338452909152902054828110610dfd576109c692610df591611053565b9033906111b8565b6310bad14760e01b60005260046000fd5b346102c65760003660031901126102c6576020600554604051908152f35b346102c65760403660031901126102c6576109c6610e48610f45565b60243590336111b8565b346102c65760003660031901126102c6576020600154604051908152f35b346102c65760003660031901126102c6576000600654610e8f81611019565b8084529060018116908115610ad85750600114610eb65761022e83610a7681850382610f71565b9190506006600052600080516020611360833981519152916000905b808210610eea57509091508101602001610a76610a66565b919260018160209254838588010152019101909291610ed2565b919082519283825260005b848110610f30575050826000602080949584010152601f8019910116010190565b80602080928401015182828601015201610f0f565b600435906001600160a01b03821682036102c657565b602435906001600160a01b03821682036102c657565b90601f8019910116810190811067ffffffffffffffff82111761082557604052565b92919267ffffffffffffffff82116108255760405191610fbd601f8201601f191660200184610f71565b8294818452818301116102c6578281602093846000960137010152565b60206003198201126102c6576004359067ffffffffffffffff82116102c657806023830112156102c65781602461101693600401359101610f93565b90565b90600182811c92168015611049575b602083101461103357565b634e487b7160e01b600052602260045260246000fd5b91607f1691611028565b9190820391821161106057565b634e487b7160e01b600052601160045260246000fd5b908160209103126102c657516001600160a01b03811681036102c65790565b8181029291811591840414171561106057565b9190820180921161106057565b600054604051630be1554760e01b81527f0000000000000000000000000000000000000000000000000000000000000000600482018190529092916001600160a01b031690602084602481855afa93841561027857600094611197575b506001600160a01b038416156102845760209060246040518094819363d7fd7afb60e01b835260048301525afa90811561027857600091611165575b508015610232576102086110169160015490611095565b906020823d60201161118f575b8161117f60209383610f71565b8101031261026d5750513861114e565b3d9150611172565b6111b191945060203d6020116102bf576102b08183610f71565b9238611112565b6001600160a01b03169081156104c4576001600160a01b03169182156104c45760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260048252604060002085600052825280604060002055604051908152a3565b6001600160a01b03169081156104c4576001600160a01b03169182156104c4578160005260036020526040600020548181106112b457816112837fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93602093611053565b8460005260038352604060002055846000526003825260406000206112a98282546110a8565b9055604051908152a3565b63fe382aa760e01b60005260046000fd5b6001600160a01b031680156104c457806000526003602052604060002054918083106112b45760208161131b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93600096611053565b84865260038352604086205561133381600554611053565b600555604051908152a356fea66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688f652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3fa26469706673582212204c90788866e311a7988ea7e33ebbb42bc4848ee95a9a8938bd2520623824a00064736f6c634300081a0033"; + "0x60c06040523461041a57611879803803806100198161041f565b92833981016101008282031261041a5781516001600160401b03811161041a5781610045918401610444565b602083015190916001600160401b03821161041a57610065918401610444565b9160408101519160ff831680930361041a576060820151936080830151600381101561041a5760a0840151916100a960e06100a260c088016104af565b96016104af565b946001600160a01b03169384158015610409575b6103f8578051906001600160401b0382116102f55760065490600182811c921680156103ee575b60208310146102d55781601f84931161037e575b50602090601f83116001146103165760009261030b575b50508160011b916000199060031b1c1916176006555b8051906001600160401b0382116102f55760075490600182811c921680156102eb575b60208310146102d55781601f849311610265575b50602090601f83116001146101fd576000926101f2575b50508160011b916000199060031b1c1916176007555b6008549560805260a05260015560018060a01b03196000541617600055610100600160a81b039060081b169160018060a81b03191617176008556040516113b590816104c4823960805181818161016b01528181610b3e01526110c7015260a051816109e40152f35b015190503880610173565b600760009081528281209350601f198516905b81811061024d5750908460019594939210610234575b505050811b01600755610189565b015160001960f88460031b161c19169055388080610226565b92936020600181928786015181550195019301610210565b60076000529091507fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688601f840160051c810191602085106102cb575b90601f859493920160051c01905b8181106102bc575061015c565b600081558493506001016102af565b90915081906102a1565b634e487b7160e01b600052602260045260246000fd5b91607f1691610148565b634e487b7160e01b600052604160045260246000fd5b01519050388061010f565b600660009081528281209350601f198516905b818110610366575090846001959493921061034d575b505050811b01600655610125565b015160001960f88460031b161c1916905538808061033f565b92936020600181928786015181550195019301610329565b60066000529091507ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f601f840160051c810191602085106103e4575b90601f859493920160051c01905b8181106103d557506100f8565b600081558493506001016103c8565b90915081906103ba565b91607f16916100e4565b63d92e233d60e01b60005260046000fd5b506001600160a01b038616156100bd565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176102f557604052565b81601f8201121561041a578051906001600160401b0382116102f557610473601f8301601f191660200161041f565b928284526020838301011161041a5760005b82811061049a57505060206000918301015290565b80602080928401015182828701015201610485565b51906001600160a01b038216820361041a5756fe608080604052600436101561001357600080fd5b60003560e01c90816306fdde0314610e7057508063091d278814610e52578063095ea7b314610e2c57806318160ddd14610e0e57806323b872dd14610d8d578063313ce56714610d6c5780633ce4a5bc14610d3d57806342966c6814610d2057806347e7ef2414610bb95780634d8943bb14610b9b57806370a0823114610b6157806385e1f4d014610b265780638b851b9514610afc57806395d89b4114610a2c578063a3413d03146109d1578063a9059cbb146109a0578063b84c82461461083b578063c47f0027146106c0578063c70126261461055e578063c835d7cc146104d5578063ccc775991461042f578063d9eeebed14610416578063dd62ed3e146103c5578063eddeb12314610365578063f2441b321461033c578063f687d12a146102cb5763fc5fecd51461014857600080fd5b346102c65760203660031901126102c657600054604051630be1554760e01b81527f00000000000000000000000000000000000000000000000000000000000000006004820181905290916001600160a01b031690602083602481855afa92831561027857600093610295575b506001600160a01b038316156102845760209060246040518094819363d7fd7afb60e01b835260048301525afa90811561027857600091610243575b508015610232576102086102119160043590611095565b600254906110a8565b604080516001600160a01b03939093168352602083019190915290f35b0390f35b630e661aed60e41b60005260046000fd5b906020823d602011610270575b8161025d60209383610f71565b8101031261026d575051386101f1565b80fd5b3d9150610250565b6040513d6000823e3d90fd5b633c7ff9cb60e11b60005260046000fd5b6102b891935060203d6020116102bf575b6102b08183610f71565b810190611076565b91386101b5565b503d6102a6565b600080fd5b346102c65760203660031901126102c65760043573735b14bb79463307aacbed86daf3322b1e6226ab330361032b576020817fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a92600155604051908152a1005b632b2add3d60e01b60005260046000fd5b346102c65760003660031901126102c6576000546040516001600160a01b039091168152602090f35b346102c65760203660031901126102c65760043573735b14bb79463307aacbed86daf3322b1e6226ab330361032b576020817fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f92600255604051908152a1005b346102c65760403660031901126102c6576103de610f45565b6103e6610f5b565b6001600160a01b039182166000908152600460209081526040808320949093168252928352819020549051908152f35b346102c65760003660031901126102c6576102116110b5565b346102c65760203660031901126102c657610448610f45565b73735b14bb79463307aacbed86daf3322b1e6226ab330361032b576001600160a01b0381169081156104c45760088054610100600160a81b03191691811b610100600160a81b03169190911790556040519081527f88815d964e380677e86d817e7d65dea59cb7b4c3b5b7a0c8ec7ea4a74f90a38790602090a1005b63d92e233d60e01b60005260046000fd5b346102c65760203660031901126102c6576104ee610f45565b73735b14bb79463307aacbed86daf3322b1e6226ab330361032b576001600160a01b031680156104c4576020817fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae926bffffffffffffffffffffffff60a01b6000541617600055604051908152a1005b346102c65760403660031901126102c65760043567ffffffffffffffff81116102c657366023820112156102c6576105a0903690602481600401359101610f93565b60206024359160006105b06110b5565b93906064604051809481936323b872dd60e01b835233600484015273735b14bb79463307aacbed86daf3322b1e6226ab602484015288604484015260018060a01b03165af190811561027857600091610681575b5015610670577f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d9559161063684336112c5565b6002549061064f60405193608085526080850190610f04565b946020840152604083015260608201528033930390a2602060405160018152f35b63053e6b6b60e11b60005260046000fd5b6020813d6020116106b8575b8161069a60209383610f71565b810103126106b4575190811515820361026d575084610604565b5080fd5b3d915061068d565b346102c6576106ce36610fda565b73735b14bb79463307aacbed86daf3322b1e6226ab330361032b57805167ffffffffffffffff811161082557610705600654611019565b601f81116107b8575b50602091601f821160011461074c57918192600092610741575b5050600019600383901b1c191660019190911b17600655005b015190508280610728565b601f1982169260066000526000805160206113608339815191529160005b8581106107a057508360019510610787575b505050811b01600655005b015160001960f88460031b161c1916905582808061077c565b9192602060018192868501518155019401920161076a565b6006600052601f820160051c60008051602061136083398151915201906020831061080f575b601f0160051c60008051602061136083398151915201905b818110610803575061070e565b600081556001016107f6565b60008051602061136083398151915291506107de565b634e487b7160e01b600052604160045260246000fd5b346102c65761084936610fda565b73735b14bb79463307aacbed86daf3322b1e6226ab330361032b57805167ffffffffffffffff811161082557610880600754611019565b601f8111610933575b50602091601f82116001146108c7579181926000926108bc575b5050600019600383901b1c191660019190911b17600755005b0151905082806108a3565b601f1982169260076000526000805160206113408339815191529160005b85811061091b57508360019510610902575b505050811b01600755005b015160001960f88460031b161c191690558280806108f7565b919260206001819286850151815501940192016108e5565b6007600052601f820160051c60008051602061134083398151915201906020831061098a575b601f0160051c60008051602061134083398151915201905b81811061097e5750610889565b60008155600101610971565b6000805160206113408339815191529150610959565b346102c65760403660031901126102c6576109c66109bc610f45565b602435903361121f565b602060405160018152f35b346102c65760003660031901126102c6577f00000000000000000000000000000000000000000000000000000000000000006040516003821015610a16576020918152f35b634e487b7160e01b600052602160045260246000fd5b346102c65760003660031901126102c6576040516000600754610a4e81611019565b8084529060018116908115610ad85750600114610a8a575b61022e83610a7681850382610f71565b604051918291602083526020830190610f04565b9190506007600052600080516020611340833981519152916000905b808210610abe57509091508101602001610a76610a66565b919260018160209254838588010152019101909291610aa6565b60ff191660208086019190915291151560051b84019091019150610a769050610a66565b346102c65760003660031901126102c65760088054604051911c6001600160a01b03168152602090f35b346102c65760003660031901126102c65760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346102c65760203660031901126102c6576001600160a01b03610b82610f45565b1660005260036020526020604060002054604051908152f35b346102c65760003660031901126102c6576020600254604051908152f35b346102c65760403660031901126102c657610bd2610f45565b6024359073735b14bb79463307aacbed86daf3322b1e6226ab33141580610d0b575b80610cf3575b610ce2576001600160a01b03169081156104c457610cce81610c3f7f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab3936005546110a8565b6005558360005260036020526040600020610c5b8282546110a8565b90558360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020604051858152a360405173735b14bb79463307aacbed86daf3322b1e6226ab60601b60208201526014815290610cba603483610f71565b604051928392604084526040840190610f04565b9060208301520390a2602060405160018152f35b636edaef2f60e11b60005260046000fd5b506008805433911c6001600160a01b03161415610bfa565b506000546001600160a01b0316331415610bf4565b346102c65760203660031901126102c6576109c6600435336112c5565b346102c65760003660031901126102c657602060405173735b14bb79463307aacbed86daf3322b1e6226ab8152f35b346102c65760003660031901126102c657602060ff60085416604051908152f35b346102c65760603660031901126102c657610da6610f45565b610dae610f5b565b90610dbd60443580938361121f565b6001600160a01b0381166000908152600460209081526040808320338452909152902054828110610dfd576109c692610df591611053565b9033906111b8565b6310bad14760e01b60005260046000fd5b346102c65760003660031901126102c6576020600554604051908152f35b346102c65760403660031901126102c6576109c6610e48610f45565b60243590336111b8565b346102c65760003660031901126102c6576020600154604051908152f35b346102c65760003660031901126102c6576000600654610e8f81611019565b8084529060018116908115610ad85750600114610eb65761022e83610a7681850382610f71565b9190506006600052600080516020611360833981519152916000905b808210610eea57509091508101602001610a76610a66565b919260018160209254838588010152019101909291610ed2565b919082519283825260005b848110610f30575050826000602080949584010152601f8019910116010190565b80602080928401015182828601015201610f0f565b600435906001600160a01b03821682036102c657565b602435906001600160a01b03821682036102c657565b90601f8019910116810190811067ffffffffffffffff82111761082557604052565b92919267ffffffffffffffff82116108255760405191610fbd601f8201601f191660200184610f71565b8294818452818301116102c6578281602093846000960137010152565b60206003198201126102c6576004359067ffffffffffffffff82116102c657806023830112156102c65781602461101693600401359101610f93565b90565b90600182811c92168015611049575b602083101461103357565b634e487b7160e01b600052602260045260246000fd5b91607f1691611028565b9190820391821161106057565b634e487b7160e01b600052601160045260246000fd5b908160209103126102c657516001600160a01b03811681036102c65790565b8181029291811591840414171561106057565b9190820180921161106057565b600054604051630be1554760e01b81527f0000000000000000000000000000000000000000000000000000000000000000600482018190529092916001600160a01b031690602084602481855afa93841561027857600094611197575b506001600160a01b038416156102845760209060246040518094819363d7fd7afb60e01b835260048301525afa90811561027857600091611165575b508015610232576102086110169160015490611095565b906020823d60201161118f575b8161117f60209383610f71565b8101031261026d5750513861114e565b3d9150611172565b6111b191945060203d6020116102bf576102b08183610f71565b9238611112565b6001600160a01b03169081156104c4576001600160a01b03169182156104c45760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260048252604060002085600052825280604060002055604051908152a3565b6001600160a01b03169081156104c4576001600160a01b03169182156104c4578160005260036020526040600020548181106112b457816112837fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93602093611053565b8460005260038352604060002055846000526003825260406000206112a98282546110a8565b9055604051908152a3565b63fe382aa760e01b60005260046000fd5b6001600160a01b031680156104c457806000526003602052604060002054918083106112b45760208161131b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93600096611053565b84865260038352604086205561133381600554611053565b600555604051908152a356fea66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688f652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3fa2646970667358221220f04fd38125bcdecce876285079dea6f5f0339c6e7505ef16f60e6693106ec39d64736f6c634300081a0033"; type ZRC20ConstructorParams = | [signer?: Signer] diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/index.ts index 42574d2e..940f670d 100644 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/index.ts +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/index.ts @@ -5,4 +5,5 @@ export * as systemContractSol from "./SystemContract.sol"; export * as wzetaSol from "./WZETA.sol"; export * as zrc20Sol from "./ZRC20.sol"; export * as interfaces from "./interfaces"; +export * as libraries from "./libraries"; export { GatewayZEVM__factory } from "./GatewayZEVM__factory"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/ICoreRegistry__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/ICoreRegistry__factory.ts new file mode 100644 index 00000000..4d3538f3 --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/ICoreRegistry__factory.ts @@ -0,0 +1,840 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + ICoreRegistry, + ICoreRegistryInterface, +} from "../../../../../../@zetachain/protocol-contracts/contracts/zevm/interfaces/ICoreRegistry"; + +const _abi = [ + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + ], + name: "ChainActive", + type: "error", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + ], + name: "ChainNonActive", + type: "error", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "string", + name: "contractType", + type: "string", + }, + { + internalType: "bytes", + name: "addressBytes", + type: "bytes", + }, + ], + name: "ContractAlreadyRegistered", + type: "error", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "string", + name: "contractType", + type: "string", + }, + ], + name: "ContractNotFound", + type: "error", + }, + { + inputs: [ + { + internalType: "string", + name: "message", + type: "string", + }, + ], + name: "InvalidContractType", + type: "error", + }, + { + inputs: [], + name: "InvalidSender", + type: "error", + }, + { + inputs: [], + name: "TransferFailed", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "address_", + type: "address", + }, + ], + name: "ZRC20AlreadyRegistered", + type: "error", + }, + { + inputs: [ + { + internalType: "string", + name: "symbol", + type: "string", + }, + ], + name: "ZRC20SymbolAlreadyInUse", + type: "error", + }, + { + inputs: [], + name: "ZeroAddress", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "oldAdmin", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "newAdmin", + type: "address", + }, + ], + name: "AdminChanged", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "bytes", + name: "value", + type: "bytes", + }, + ], + name: "ChainMetadataUpdated", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + indexed: false, + internalType: "bool", + name: "newStatus", + type: "bool", + }, + ], + name: "ChainStatusChanged", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + indexed: false, + internalType: "string", + name: "contractType", + type: "string", + }, + { + indexed: false, + internalType: "string", + name: "key", + type: "string", + }, + { + indexed: false, + internalType: "bytes", + name: "value", + type: "bytes", + }, + ], + name: "ContractConfigurationUpdated", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + indexed: true, + internalType: "string", + name: "contractType", + type: "string", + }, + { + indexed: false, + internalType: "bytes", + name: "addressBytes", + type: "bytes", + }, + ], + name: "ContractRegistered", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes", + name: "addressBytes", + type: "bytes", + }, + ], + name: "ContractStatusChanged", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "oldRegistryManager", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "newRegistryManager", + type: "address", + }, + ], + name: "RegistryManagerChanged", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes", + name: "originAddress", + type: "bytes", + }, + { + indexed: true, + internalType: "address", + name: "address_", + type: "address", + }, + { + indexed: false, + internalType: "uint8", + name: "decimals", + type: "uint8", + }, + { + indexed: false, + internalType: "uint256", + name: "originChainId", + type: "uint256", + }, + { + indexed: false, + internalType: "string", + name: "symbol", + type: "string", + }, + ], + name: "ZRC20TokenRegistered", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "address_", + type: "address", + }, + { + indexed: false, + internalType: "bool", + name: "active", + type: "bool", + }, + ], + name: "ZRC20TokenUpdated", + type: "event", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "address", + name: "gasZRC20", + type: "address", + }, + { + internalType: "bytes", + name: "registry", + type: "bytes", + }, + { + internalType: "bool", + name: "activation", + type: "bool", + }, + ], + name: "changeChainStatus", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "gatewayZEVM", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "getActiveChains", + outputs: [ + { + internalType: "uint256[]", + name: "", + type: "uint256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getAllChains", + outputs: [ + { + components: [ + { + internalType: "bool", + name: "active", + type: "bool", + }, + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "address", + name: "gasZRC20", + type: "address", + }, + { + internalType: "bytes", + name: "registry", + type: "bytes", + }, + ], + internalType: "struct ChainInfoDTO[]", + name: "", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getAllContracts", + outputs: [ + { + components: [ + { + internalType: "bool", + name: "active", + type: "bool", + }, + { + internalType: "bytes", + name: "addressBytes", + type: "bytes", + }, + { + internalType: "string", + name: "contractType", + type: "string", + }, + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + ], + internalType: "struct ContractInfoDTO[]", + name: "", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getAllZRC20Tokens", + outputs: [ + { + components: [ + { + internalType: "bool", + name: "active", + type: "bool", + }, + { + internalType: "address", + name: "address_", + type: "address", + }, + { + internalType: "bytes", + name: "originAddress", + type: "bytes", + }, + { + internalType: "uint256", + name: "originChainId", + type: "uint256", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "string", + name: "coinType", + type: "string", + }, + { + internalType: "uint8", + name: "decimals", + type: "uint8", + }, + ], + internalType: "struct ZRC20Info[]", + name: "", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + ], + name: "getChainInfo", + outputs: [ + { + internalType: "address", + name: "gasZRC20", + type: "address", + }, + { + internalType: "bytes", + name: "registry", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "getChainMetadata", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "string", + name: "contractType", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "getContractConfiguration", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "string", + name: "contractType", + type: "string", + }, + ], + name: "getContractInfo", + outputs: [ + { + internalType: "bool", + name: "active", + type: "bool", + }, + { + internalType: "bytes", + name: "addressBytes", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "originChainId", + type: "uint256", + }, + { + internalType: "bytes", + name: "originAddress", + type: "bytes", + }, + ], + name: "getZRC20AddressByForeignAsset", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "address_", + type: "address", + }, + ], + name: "getZRC20TokenInfo", + outputs: [ + { + internalType: "bool", + name: "active", + type: "bool", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "uint256", + name: "originChainId", + type: "uint256", + }, + { + internalType: "bytes", + name: "originAddress", + type: "bytes", + }, + { + internalType: "string", + name: "coinType", + type: "string", + }, + { + internalType: "uint8", + name: "decimals", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "string", + name: "contractType", + type: "string", + }, + { + internalType: "bytes", + name: "addressBytes", + type: "bytes", + }, + ], + name: "registerContract", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "address_", + type: "address", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "uint256", + name: "originChainId", + type: "uint256", + }, + { + internalType: "bytes", + name: "originAddress", + type: "bytes", + }, + { + internalType: "string", + name: "coinType", + type: "string", + }, + { + internalType: "uint8", + name: "decimals", + type: "uint8", + }, + ], + name: "registerZRC20Token", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "string", + name: "contractType", + type: "string", + }, + { + internalType: "bool", + name: "active", + type: "bool", + }, + ], + name: "setContractActive", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "address_", + type: "address", + }, + { + internalType: "bool", + name: "active", + type: "bool", + }, + ], + name: "setZRC20TokenActive", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + { + internalType: "bytes", + name: "value", + type: "bytes", + }, + ], + name: "updateChainMetadata", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "string", + name: "contractType", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + { + internalType: "bytes", + name: "value", + type: "bytes", + }, + ], + name: "updateContractConfiguration", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class ICoreRegistry__factory { + static readonly abi = _abi; + static createInterface(): ICoreRegistryInterface { + return new Interface(_abi) as ICoreRegistryInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): ICoreRegistry { + return new Contract(address, _abi, runner) as unknown as ICoreRegistry; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMErrors__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMErrors__factory.ts index 712a0ae3..5d947c5a 100644 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMErrors__factory.ts +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMErrors__factory.ts @@ -53,17 +53,12 @@ const _abi = [ }, { inputs: [], - name: "InsufficientGasLimit", - type: "error", - }, - { - inputs: [], - name: "InsufficientZRC20Amount", + name: "InsufficientAmount", type: "error", }, { inputs: [], - name: "InsufficientZetaAmount", + name: "InsufficientGasLimit", type: "error", }, { @@ -176,6 +171,11 @@ const _abi = [ name: "ZRC20TransferFailed", type: "error", }, + { + inputs: [], + name: "ZeroGasPrice", + type: "error", + }, ] as const; export class IGatewayZEVMErrors__factory { diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVM__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVM__factory.ts index e96c8f2c..a4c9f47d 100644 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVM__factory.ts +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVM__factory.ts @@ -53,17 +53,12 @@ const _abi = [ }, { inputs: [], - name: "InsufficientGasLimit", + name: "InsufficientAmount", type: "error", }, { inputs: [], - name: "InsufficientZRC20Amount", - type: "error", - }, - { - inputs: [], - name: "InsufficientZetaAmount", + name: "InsufficientGasLimit", type: "error", }, { @@ -176,6 +171,11 @@ const _abi = [ name: "ZRC20TransferFailed", type: "error", }, + { + inputs: [], + name: "ZeroGasPrice", + type: "error", + }, { anonymous: false, inputs: [ @@ -542,6 +542,19 @@ const _abi = [ stateMutability: "nonpayable", type: "function", }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + ], + name: "deposit", + outputs: [], + stateMutability: "payable", + type: "function", + }, { inputs: [ { @@ -589,11 +602,6 @@ const _abi = [ name: "context", type: "tuple", }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, { internalType: "address", name: "target", @@ -607,7 +615,7 @@ const _abi = [ ], name: "depositAndCall", outputs: [], - stateMutability: "nonpayable", + stateMutability: "payable", type: "function", }, { diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata__factory.ts index 2f0e34f1..2a9d7c89 100644 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata__factory.ts +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata__factory.ts @@ -35,6 +35,19 @@ const _abi = [ stateMutability: "view", type: "function", }, + { + inputs: [], + name: "SYSTEM_CONTRACT_ADDRESS", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, { inputs: [ { diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20__factory.ts index a00ffa3b..82a17072 100644 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20__factory.ts +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol/IZRC20__factory.ts @@ -35,6 +35,19 @@ const _abi = [ stateMutability: "view", type: "function", }, + { + inputs: [], + name: "SYSTEM_CONTRACT_ADDRESS", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, { inputs: [ { diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/UniversalContract__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/UniversalContract__factory.ts index 885b10bb..e7f735dd 100644 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/UniversalContract__factory.ts +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/UniversalContract__factory.ts @@ -9,6 +9,24 @@ import type { } from "../../../../../../../@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/UniversalContract"; const _abi = [ + { + inputs: [], + name: "Unauthorized", + type: "error", + }, + { + inputs: [], + name: "gateway", + outputs: [ + { + internalType: "contract IGatewayZEVM", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, { inputs: [ { @@ -54,6 +72,54 @@ const _abi = [ stateMutability: "nonpayable", type: "function", }, + { + inputs: [ + { + components: [ + { + internalType: "bytes", + name: "sender", + type: "bytes", + }, + { + internalType: "address", + name: "senderEVM", + type: "address", + }, + { + internalType: "uint256", + name: "chainID", + type: "uint256", + }, + ], + internalType: "struct MessageContext", + name: "context", + type: "tuple", + }, + { + internalType: "bytes", + name: "message", + type: "bytes", + }, + ], + name: "onCall", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "registry", + outputs: [ + { + internalType: "contract ICoreRegistry", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, ] as const; export class UniversalContract__factory { diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/index.ts index b114f19e..7bddba9c 100644 --- a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/index.ts +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/index.ts @@ -5,4 +5,5 @@ export * as iGatewayZevmSol from "./IGatewayZEVM.sol"; export * as iwzetaSol from "./IWZETA.sol"; export * as izrc20Sol from "./IZRC20.sol"; export * as universalContractSol from "./UniversalContract.sol"; +export { ICoreRegistry__factory } from "./ICoreRegistry__factory"; export { ISystem__factory } from "./ISystem__factory"; diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/libraries/GatewayZEVMValidations__factory.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/libraries/GatewayZEVMValidations__factory.ts new file mode 100644 index 00000000..8b239ed4 --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/libraries/GatewayZEVMValidations__factory.ts @@ -0,0 +1,78 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../../../../common"; +import type { + GatewayZEVMValidations, + GatewayZEVMValidationsInterface, +} from "../../../../../../@zetachain/protocol-contracts/contracts/zevm/libraries/GatewayZEVMValidations"; + +const _abi = [ + { + inputs: [], + name: "EmptyAddress", + type: "error", + }, +] as const; + +const _bytecode = + "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220ee68001f0b22cab29c31d8dca828cce82e6ed73c92a85d784e77451897bdfbbb64736f6c634300081a0033"; + +type GatewayZEVMValidationsConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: GatewayZEVMValidationsConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class GatewayZEVMValidations__factory extends ContractFactory { + constructor(...args: GatewayZEVMValidationsConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + GatewayZEVMValidations & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect( + runner: ContractRunner | null + ): GatewayZEVMValidations__factory { + return super.connect(runner) as GatewayZEVMValidations__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): GatewayZEVMValidationsInterface { + return new Interface(_abi) as GatewayZEVMValidationsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): GatewayZEVMValidations { + return new Contract( + address, + _abi, + runner + ) as unknown as GatewayZEVMValidations; + } +} diff --git a/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/libraries/index.ts b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/libraries/index.ts new file mode 100644 index 00000000..b1232376 --- /dev/null +++ b/typechain-types/factories/@zetachain/protocol-contracts/contracts/zevm/libraries/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { GatewayZEVMValidations__factory } from "./GatewayZEVMValidations__factory"; diff --git a/typechain-types/factories/contracts/OnlySystem__factory.ts b/typechain-types/factories/contracts/OnlySystem__factory.ts index 5392a346..da0b5697 100644 --- a/typechain-types/factories/contracts/OnlySystem__factory.ts +++ b/typechain-types/factories/contracts/OnlySystem__factory.ts @@ -29,7 +29,7 @@ const _abi = [ ] as const; const _bytecode = - "0x60808060405234601357603a908160198239f35b600080fdfe600080fdfea2646970667358221220925e47bcf7488256883aaad419709174945c910212ddca190c45335344b1674c64736f6c634300081a0033"; + "0x60808060405234601357603a908160198239f35b600080fdfe600080fdfea2646970667358221220a1b8d89aeeb563efd1c6068050fffe39799d9a932562796eeb91315341b88df464736f6c634300081a0033"; type OnlySystemConstructorParams = | [signer?: Signer] diff --git a/typechain-types/factories/contracts/testing/EVMSetup.t.sol/EVMSetup__factory.ts b/typechain-types/factories/contracts/testing/EVMSetup.t.sol/EVMSetup__factory.ts index b73bab93..5a35b32e 100644 --- a/typechain-types/factories/contracts/testing/EVMSetup.t.sol/EVMSetup__factory.ts +++ b/typechain-types/factories/contracts/testing/EVMSetup.t.sol/EVMSetup__factory.ts @@ -807,7 +807,7 @@ const _abi = [ ] as const; const _bytecode = - "0x60803461012957601f61ae8f38819003918201601f19168301916001600160401b0383118484101761012e5780849260c0946040528339810103126101295761004781610144565b9061005460208201610144565b61006060408301610144565b61006c60608401610144565b91600161008760a061008060808801610144565b9601610144565b600c805460ff199081168417909155601f805460a885901b8581031990911660089a909a1b92019190911697909717909117909555602080546001600160a01b03199081166001600160a01b039384161790915560218054821693831693909317909255602280548316938216939093179092556023805482169383169390931790925560248054909216921691909117905560405161ad3690816101598239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036101295756fe6080604052600436101561001257600080fd5b60003560e01c8062173d4614610195578062d62498146101905780631694505e1461018b5780631ed7831c146101865780632ade3880146101815780633e5e3c231461017c5780633f7286f41461017757806362f1b0021461017257806366d9a9a01461016d5780636a26fefe146101685780636ce89fe2146101635780636e6dbb511461015e5780637bf221811461015957806385226c8114610154578063916a17c61461014f578063ad8414bf1461014a578063b0464fdc14610145578063b5508aa914610140578063ba414fa61461013b578063bb88b76914610136578063d05adf6a14610131578063d5f394881461012c578063e20c9f71146101275763fa7626d41461012257600080fd5b611708565b611688565b61165b565b61162d565b611604565b6115df565b611552565b6114a6565b611478565b6113cc565b6112c7565b6107d8565b6107b1565b610788565b61076c565b6106c0565b6105d4565b610554565b6104d4565b610428565b61027f565b610213565b6101e5565b6101aa565b60009103126101a557565b600080fd5b346101a55760003660031901126101a5576021546040516001600160a01b039091168152602090f35b60209060031901126101a55760043590565b346101a5576101f3366101d3565b6000526027602052602060018060a01b0360406000205416604051908152f35b346101a55760003660031901126101a5576024546040516001600160a01b039091168152602090f35b602060408183019282815284518094520192019060005b8181106102605750505090565b82516001600160a01b0316845260209384019390920191600101610253565b346101a55760003660031901126101a55760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b8181106102f0576102ec856102e08187038261175d565b6040519182918261023c565b0390f35b82546001600160a01b03168452602090930192600192830192016102c9565b60005b8381106103225750506000910152565b8181015183820152602001610312565b9060209161034b8151809281855285808601910161030f565b601f01601f1916010190565b9080602083519182815201916020808360051b8301019401926000915b83831061038357505050505090565b90919293946020806103a1600193601f198682030187528951610332565b97019301930191939290610374565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106103e357505050505090565b9091929394602080610419600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610357565b970193019301919392906103d4565b346101a55760003660031901126101a557601e546104458161177f565b90610453604051928361175d565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061049957604051806102ec87826103b0565b600260206001926040516104ac81611741565b848060a01b0386541681526104c2858701611863565b83820152815201920192019190610484565b346101a55760003660031901126101a55760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b818110610535576102ec856102e08187038261175d565b82546001600160a01b031684526020909301926001928301920161051e565b346101a55760003660031901126101a55760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b8181106105b5576102ec856102e08187038261175d565b82546001600160a01b031684526020909301926001928301920161059e565b346101a5576105e2366101d3565b6000526028602052602060018060a01b0360406000205416604051908152f35b906020808351928381520192019060005b8181106106205750505090565b82516001600160e01b031916845260209384019390920191600101610613565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061067357505050505090565b90919293946020806106b1600193603f19868203018752895190836106a18351604084526040840190610332565b9201519084818403910152610602565b97019301930191939290610664565b346101a55760003660031901126101a557601b546106dd8161177f565b906106eb604051928361175d565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b83831061073157604051806102ec8782610640565b6002602060019260405161074481611741565b61074d86611797565b815261075a8587016118bb565b8382015281520192019201919061071c565b346101a55760003660031901126101a557602060405160058152f35b346101a55760003660031901126101a5576023546040516001600160a01b039091168152602090f35b346101a55760003660031901126101a557602080546040516001600160a01b039091168152f35b346101a5576107e6366101d3565b601f5460081c6001600160a01b0316737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156101a5576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610f355761129e575b506040516129ee80820182811067ffffffffffffffff821117611012578291613e36833903906000f08015610f35576023546001600160a01b031660405191610bd68084019284841067ffffffffffffffff8511176110125784936108e193879361a12b87396001600160a01b039081168252919091166020820152604081019190915260600190565b03906000f08015610f35576000828152602760205260409020610928916001600160a01b0316905b80546001600160a01b0319166001600160a01b03909216919091179055565b604051611ebc80820182811067ffffffffffffffff821117611012578291611f7a833903906000f08015610f35576000828152602560205260409020610977916001600160a01b031690610909565b60058114801561114a576040516360f9bb1160e01b815260206004820152604b60248201527f6e6f64655f6d6f64756c65732f407a657461636861696e2f70726f746f636f6c60448201527f2d636f6e7472616374732f6162692f5465737445524332302e736f6c2f54657360648201526a3a22a9219918173539b7b760a91b608482015260008160a481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610f3557610a49916000918291611130575b5060405180938192631fb2437d60e31b835260048301611b5b565b0381737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610f3557610aea91610ad69160009161110d575b5060405190610ad182610ac36020820160c0906040815260046040820152635a65746160e01b60608201526080602082015260046080820152635a45544160e01b60a08201520190565b03601f19810184528361175d565b611c60565b610909846000526028602052604060002090565b610b1d610b11610b04846000526027602052604060002090565b546001600160a01b031690565b6001600160a01b031690565b6020546001600160a01b0316610b40610b04856000526028602052604060002090565b601f5490929060081c6001600160a01b031690803b156101a55760405163c0c53b8b60e01b81526001600160a01b0393841660048201529383166024850152911660448301526000908290606490829084905af18015610f35576110f8575b50610bbd610b11610b11610b04856000526025602052604060002090565b610bd7610b11610b04856000526027602052604060002090565b6020546001600160a01b0316601f5490929060081c6001600160a01b031690803b156101a55760405163c0c53b8b60e01b81526001600160a01b0393841660048201529383166024850152911660448301526000908290606490829084905af18015610f35576110e3575b50801561101757604051611bf380820182811067ffffffffffffffff821117611012578291616824833903906000f08015610f3557610c91610b11610b04856000526027602052604060002090565b90610cfc610cac610b04866000526028602052604060002090565b60208054601f54604051637c643b2f60e11b938101939093526001600160a01b03968716602484015292861660448301528516606482015260089190911c90931660848401528260a48101610ac3565b604051916102c69081840184811067ffffffffffffffff821117611012578493610d3493611cb486396001600160a01b031690611b97565b03906000f08015610f35576000838152602660205260409020610d60916001600160a01b031690610909565b610d7a610b11610b04846000526027602052604060002090565b610d91610b04846000526025602052604060002090565b90803b156101a55760405163ae7a3a6f60e01b81526001600160a01b039290921660048301526000908290602490829084905af18015610f3557610ffd575b50610deb610b11610b04846000526027602052604060002090565b610e02610b04846000526026602052604060002090565b90803b156101a5576040516310188aef60e01b81526001600160a01b039290921660048301526000908290602490829084905af18015610f3557610fe8575b5015610f4f57610e7b610b04610e6a610b11610b11610b04866000526028602052604060002090565b926000526026602052604060002090565b90803b156101a5576040516340c10f1960e01b81526001600160a01b0392909216600483015269d3c21bcecceda100000060248301526000908290604490829084905af18015610f3557610f3a575b505b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156101a5576040516390c5013b60e01b815260008160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610f3557610f1e57005b80610f2d6000610f339361175d565b8061019a565b005b611ae0565b80610f2d6000610f499361175d565b38610eca565b610f6c610b11610b11610b04846000526028602052604060002090565b602054909190610f8890610b04906001600160a01b0316610e6a565b823b156101a5576040516305755ff560e21b81526001600160a01b03928316600482015291166024820152906000908290604490829084905af18015610f3557610fd3575b50610ecc565b80610f2d6000610fe29361175d565b38610fcd565b80610f2d6000610ff79361175d565b38610e41565b80610f2d600061100c9361175d565b38610dd0565b61172b565b604051611d1480820182811067ffffffffffffffff821117611012578291618417833903906000f08015610f355761105f610b11610b04856000526027602052604060002090565b9061107a610cac610b04866000526028602052604060002090565b604051916102c69081840184811067ffffffffffffffff8211176110125784936110b293611cb486396001600160a01b031690611b97565b03906000f08015610f355760008381526026602052604090206110de916001600160a01b031690610909565b610d60565b80610f2d60006110f29361175d565b38610c42565b80610f2d60006111079361175d565b38610b9f565b61112a91503d806000833e611122818361175d565b810190611aec565b38610a79565b61114491503d8084833e611122818361175d565b38610a2e565b6040516360f9bb1160e01b815260206004820152604f60248201527f6e6f64655f6d6f64756c65732f407a657461636861696e2f70726f746f636f6c60448201527f2d636f6e7472616374732f6162692f5a6574612e6e6f6e2d6574682e736f6c2f60648201526e2d32ba30a737b722ba34173539b7b760891b608482015260008160a481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610f3557611215916000918291611130575060405180938192631fb2437d60e31b835260048301611b5b565b0381737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610f355761127e91610ad691600091611283575b5060208054601f54604080516001600160a01b039384169481019490945260089190911c9091169082015290610ad18260608101610ac3565b610aea565b61129891503d806000833e611122818361175d565b38611245565b80610f2d60006112ad9361175d565b38610857565b9060206112c4928181520190610357565b90565b346101a55760003660031901126101a557601a546112e48161177f565b906112f2604051928361175d565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b83831061133757604051806102ec87826112b3565b60016020819261134685611797565b815201920192019190611322565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061138757505050505090565b90919293946020806113bd600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610602565b97019301930191939290611378565b346101a55760003660031901126101a557601d546113e98161177f565b906113f7604051928361175d565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b83831061143d57604051806102ec8782611354565b6002602060019260405161145081611741565b848060a01b0386541681526114668587016118bb565b83820152815201920192019190611428565b346101a557611486366101d3565b6000526025602052602060018060a01b0360406000205416604051908152f35b346101a55760003660031901126101a557601c546114c38161177f565b906114d1604051928361175d565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b83831061151757604051806102ec8782611354565b6002602060019260405161152a81611741565b848060a01b0386541681526115408587016118bb565b83820152815201920192019190611502565b346101a55760003660031901126101a55760195461156f8161177f565b9061157d604051928361175d565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b8383106115c257604051806102ec87826112b3565b6001602081926115d185611797565b8152019201920191906115ad565b346101a55760003660031901126101a55760206115fa611bc8565b6040519015158152f35b346101a55760003660031901126101a5576022546040516001600160a01b039091168152602090f35b346101a55761163b366101d3565b6000526026602052602060018060a01b0360406000205416604051908152f35b346101a55760003660031901126101a557601f5460405160089190911c6001600160a01b03168152602090f35b346101a55760003660031901126101a55760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b8181106116e9576102ec856102e08187038261175d565b82546001600160a01b03168452602090930192600192830192016116d2565b346101a55760003660031901126101a557602060ff601f54166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff82111761101257604052565b90601f8019910116810190811067ffffffffffffffff82111761101257604052565b67ffffffffffffffff81116110125760051b60200190565b9060405191600081548060011c9260018216918215611859575b60208510831461184557848752869392602085019291811561182857506001146117e6575b50506117e49250038361175d565b565b6117f7919250600052602060002090565b906000915b84831061181157506117e493500138806117d6565b8054828401528693506020909201916001016117fc565b9150506117e49491925060ff19168252151560051b0138806117d6565b634e487b7160e01b84526022600452602484fd5b93607f16936117b1565b90815461186f8161177f565b9261187d604051948561175d565b818452602084019060005260206000206000915b83831061189e5750505050565b6001602081926118ad85611797565b815201920192019190611891565b604051815480825290929183906118db6020830191600052602060002090565b926000905b806007830110611a23576117e4945491818110611a04575b8181106119e5575b8181106119c6575b8181106119a7575b818110611988575b818110611969575b81811061194b575b10611936575b50038361175d565b6001600160e01b03191681526020013861192e565b602083811b6001600160e01b03191685529093600191019301611928565b604083901b6001600160e01b0319168452926001906020019301611920565b606083901b6001600160e01b0319168452926001906020019301611918565b608083901b6001600160e01b0319168452926001906020019301611910565b60a083901b6001600160e01b0319168452926001906020019301611908565b60c083901b6001600160e01b0319168452926001906020019301611900565b6001600160e01b031960e084901b1684529260019060200193016118f8565b916008919350610100600191611ad28754611a49838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b0194019201859293916118e0565b6040513d6000823e3d90fd5b6020818303126101a55780519067ffffffffffffffff82116101a5570181601f820112156101a5576020815191019067ffffffffffffffff81116110125760405192611b42601f8301601f19166020018561175d565b818452818301116101a5576112c491602084019061030f565b611b6d60409283835283830190610332565b906020818303910152601081526f0b989e5d1958dbd9194b9bd89a9958dd60821b60208201520190565b6001600160a01b0390911681526040602082018190526112c492910190610332565b908160209103126101a5575190565b60085460ff168015611bd75790565b50604051630667f9d760e41b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190526519985a5b195960d21b6024830152602090829060449082905afa908115610f3557600091611c31575b50151590565b611c53915060203d602011611c59575b611c4b818361175d565b810190611bb9565b38611c2b565b503d611c41565b90611ca560209160405192839181611c81818501978881519384920161030f565b8301611c958251809385808501910161030f565b010103601f19810183528261175d565b51906000f09081156101a55756fe60806040526102c68038038061001481610188565b928339810190604081830312610183578051906001600160a01b03821690818303610183576020810151906001600160401b038211610183570183601f820112156101835780519061006d610068836101c3565b610188565b94828652602083830101116101835760005b82811061016e575050602060009185010152813b1561015a577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a28151156101415760008083602061012995519101845af43d15610139573d91610119610068846101c3565b9283523d6000602085013e6101de565b505b604051608690816102408239f35b6060916101de565b5050341561012b5763b398979f60e01b60005260046000fd5b634c9c8ce360e01b60005260045260246000fd5b8060208092840101518282890101520161007f565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176101ad57604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b0381116101ad57601f01601f191660200190565b9061020457508051156101f357805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580610236575b610215575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b1561020d56fe60806040527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5460009081906001600160a01b0316368280378136915af43d6000803e15604b573d6000f35b3d6000fdfea264697066735822122050f22a01d073962c556a114f7af7ed5d52928a56307a2cc1329dcdbb635986ec64736f6c634300081a003360a0806040523460295730608052611e8d908161002f8239608051818181610f090152610fda0152f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a71461131857508063116191b6146112f1578063248a9ca3146112ca578063252f07bf146112a45780632f2ff15d1461127257806336568abe1461122d5780633f4ba83a146111ab5780634f1ef28614610f5e57806352d1902d14610ef6578063570618e114610ecd5780635b11259114610ea45780635c975abb14610e745780638456cb5914610dff57806385f438c114610dd657806391d1485414610d80578063950837aa14610cb457806399a3c35614610ade5780639a59042714610a725780639b19251a146109f4578063a217fddf146109d8578063ad0818521461082d578063ad3cb1cc146107b3578063c0c53b8b1461057f578063d547741f14610544578063d936547e14610505578063d9caed1214610442578063e609055e146101e8578063e63ab1e9146101ad5763eab103df1461016057600080fd5b346101aa5760203660031901126101aa576004358015158091036101a65761018661157a565b6002805460ff60a01b191660a09290921b60ff60a01b1691909117905580f35b5080fd5b80fd5b50346101aa57806003193601126101aa5760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346101aa5760803660031901126101aa5760043567ffffffffffffffff81116101a65761021a903690600401611417565b6024356001600160a01b03811692919083810361043e5760643567ffffffffffffffff811161043a57610251903690600401611417565b9061025a611b7e565b610262611bba565b60ff60025460a01c161561042b57858752600160205260ff6040882054161561041c576040516370a0823160e01b8152306004820152926020846024818a5afa9384156103db5788946103e6575b506102ee90604051906323b872dd60e01b60208301523360248301523060448301526044356064830152606482526102e96084836113c3565b611c21565b6040516370a0823160e01b8152306004820152926020846024818a5afa9384156103db5788946103a2575b50830392831161038e5791610376917f1dafa057cc5c3bccb5ad974129a2bccd3c74002d9dfd7062404ba9523b18d6ae959493610363604051968796606088526060880191611466565b9260208601528483036040860152611466565b0390a26001600080516020611df88339815191525580f35b634e487b7160e01b87526011600452602487fd5b9093506020813d6020116103d3575b816103be602093836113c3565b810103126103ce57519238610319565b600080fd5b3d91506103b1565b6040513d8a823e3d90fd5b9093506020813d602011610414575b81610402602093836113c3565b810103126103ce5751926102ee6102b0565b3d91506103f5565b630b094f2760e31b8752600487fd5b6373cba66360e01b8752600487fd5b8580fd5b8480fd5b50346101aa5760603660031901126101aa5761045c611383565b61046461136d565b60443590610470611b7e565b6104786115cd565b610480611bba565b6001600160a01b03168084526001602052604084205490929060ff16156104f6576020816104d0847fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb9487611be4565b6040519384526001600160a01b031692a36001600080516020611df88339815191525580f35b630b094f2760e31b8452600484fd5b50346101aa5760203660031901126101aa5760209060ff906040906001600160a01b03610530611383565b168152600184522054166040519015158152f35b50346101aa5760403660031901126101aa5761057b60043561056461136d565b9061057661057182611445565b611669565b611ade565b5080f35b50346101aa5760603660031901126101aa57610599611383565b6105a161136d565b6105a9611399565b600080516020611e38833981519152549260ff8460401c16159367ffffffffffffffff8116801590816107ab575b60011490816107a1575b159081610798575b506107895767ffffffffffffffff198116600117600080516020611e38833981519152558461075c575b506001600160a01b03168015801561074b575b801561073a575b61072b576106c992916106c391610642611c88565b61064a611c88565b610652611c88565b6001600080516020611df88339815191525561066c611c88565b610674611c88565b86546001600160a01b0319908116919091178755600280549091166001600160a01b0385161790556106a5816117c5565b506106af8161185f565b506106b98361185f565b506106c3836116b3565b5061173f565b506106d15780f35b68ff000000000000000019600080516020611e388339815191525416600080516020611e38833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b63d92e233d60e01b8552600485fd5b506001600160a01b0382161561062d565b506001600160a01b03831615610626565b68ffffffffffffffffff19166801000000000000000117600080516020611e388339815191525538610613565b63f92ee8a960e01b8652600486fd5b905015386105e9565b303b1591506105e1565b8691506105d7565b50346101aa57806003193601126101aa5760408051916107d382846113c3565b60058352640352e302e360dc1b6020840152815192839160208352815191826020850152815b838110610816575050828201840152601f01601f19168101030190f35b6020828201810151888301880152879550016107f9565b50346101aa57366003190160a081126101a6576020136101aa5761084f61136d565b610857611399565b906064359160843567ffffffffffffffff811161043e5761087c903690600401611417565b9091610886611b7e565b61088e6115cd565b610896611bba565b6001600160a01b03168086526001602052604086205490949060ff16156109c95785546108ce9082906001600160a01b031687611be4565b85546001600160a01b0316938690853b156101a657604051633ddf4d7d60e11b815290829082906001600160a01b03610905611383565b166004830152602482018a90526001600160a01b0316604482018190526064820186905260a060848301529781838161094260a482018b8d611466565b03925af180156109be576109a9575b50506109917f6478cbb6e28c0823c691dfd74c01c985634faddd4c401b990fe4ec26277ea8d5936040519384938452604060208501526040840191611466565b0390a36001600080516020611df88339815191525580f35b816109b3916113c3565b61043a578538610951565b6040513d84823e3d90fd5b630b094f2760e31b8652600486fd5b50346101aa57806003193601126101aa57602090604051908152f35b50346101aa5760203660031901126101aa57610a0e611383565b610a1661161b565b6001600160a01b03168015610a6357808252600160205260408220600160ff198254161790557faab7954e9d246b167ef88aeddad35209ca2489d95a8aeb59e288d9b19fae5a548280a280f35b63d92e233d60e01b8252600482fd5b50346101aa5760203660031901126101aa57610a8c611383565b610a9461161b565b6001600160a01b03168015610a6357808252600160205260408220805460ff191690557f51085ddf9ebdded84b76e829eb58c4078e4b5bdf97d9a94723f336039da467918280a280f35b50346101aa5760a03660031901126101aa57610af8611383565b610b0061136d565b9060443560643567ffffffffffffffff811161043e57610b24903690600401611417565b9190936084359067ffffffffffffffff8211610cb057608082600401926003199036030112610cb057610b55611b7e565b610b5d6115cd565b610b65611bba565b6001600160a01b03168087526001602052604087205490959060ff161561041c578654610b9d9084906001600160a01b031688611be4565b86546001600160a01b031694853b15610cac5787604051809263aa0c0fc160e01b825289600483015260018060a01b03169788602483015286604483015260a06064830152818381610c08610bf660a483018d8b611466565b8281036003190160848401528a611487565b03925af180156103db57610c6a575b507f7b53ec10a80164e60591c43d9c222e9354886981b880a3fba19c9ceb77fb9721939291610c5c610991926040519586958652606060208701526060860191611466565b908382036040850152611487565b91610c5c88610ca0610991949a7f7b53ec10a80164e60591c43d9c222e9354886981b880a3fba19c9ceb77fb97219897966113c3565b98925050919293610c17565b8780fd5b8680fd5b50346101aa5760203660031901126101aa57610cce611383565b610cd661157a565b6001600160a01b038116908115610d7157600254610d219190610d01906001600160a01b03166119b2565b50600254610d17906001600160a01b0316611a48565b506106c3816116b3565b50600254604080516001600160a01b0383168152602081018490527f4d3470c839d3c4dd664eec934b920c12fe0966e3185103dd40149496815df2b69190a16001600160a01b0319161760025580f35b63d92e233d60e01b8352600483fd5b50346101aa5760403660031901126101aa5760ff6040602092610da161136d565b6004358252600080516020611d9883398151915285528282206001600160a01b03909116825284522054604051911615158152f35b50346101aa57806003193601126101aa576020604051600080516020611d788339815191528152f35b50346101aa57806003193601126101aa57610e18611508565b610e20611bba565b600160ff19600080516020611dd8833981519152541617600080516020611dd8833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101aa57806003193601126101aa57602060ff600080516020611dd883398151915254166040519015158152f35b50346101aa57806003193601126101aa576002546040516001600160a01b039091168152602090f35b50346101aa57806003193601126101aa576020604051600080516020611d588339815191528152f35b50346101aa57806003193601126101aa577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610f4f576020604051600080516020611d388339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101aa57610f73611383565b6024359067ffffffffffffffff82116111a757366023830112156111a75781600401359083610fa1836113fb565b93610faf60405195866113c3565b838552602085019336602482840101116111a757806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611184575b506111755761101261157a565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181611141575b5061105557634c9c8ce360e01b86526004859052602486fd5b9384600080516020611d3883398151915287960361112f5750823b1561111d57600080516020611d3883398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a28051156111025761057b9382915190845af43d156110fa573d916110de836113fb565b926110ec60405194856113c3565b83523d85602085013e611cb6565b606091611cb6565b505050503461110e5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d60201161116d575b8161115d602093836113c3565b81010312610cb05751903861103c565b3d9150611150565b63703e46dd60e11b8452600484fd5b600080516020611d38833981519152546001600160a01b03161415905038611005565b8280fd5b50346101aa57806003193601126101aa576111c4611508565b600080516020611dd88339815191525460ff81161561121e5760ff1916600080516020611dd8833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346101aa5760403660031901126101aa5761124761136d565b336001600160a01b038216036112635761057b90600435611ade565b63334bd91960e11b8252600482fd5b50346101aa5760403660031901126101aa5761057b60043561129261136d565b9061129f61057182611445565b61191b565b50346101aa57806003193601126101aa57602060ff60025460a01c166040519015158152f35b50346101aa5760203660031901126101aa5760206112e9600435611445565b604051908152f35b50346101aa57806003193601126101aa57546040516001600160a01b039091168152602090f35b9050346101a65760203660031901126101a65760043563ffffffff60e01b81168091036111a75760209250637965db0b60e01b811490811561135c575b5015158152f35b6301ffc9a760e01b14905038611355565b602435906001600160a01b03821682036103ce57565b600435906001600160a01b03821682036103ce57565b604435906001600160a01b03821682036103ce57565b35906001600160a01b03821682036103ce57565b90601f8019910116810190811067ffffffffffffffff8211176113e557604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116113e557601f01601f191660200190565b9181601f840112156103ce5782359167ffffffffffffffff83116103ce57602083818601950101116103ce57565b600052600080516020611d9883398151915260205260016040600020015490565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160a01b03611498826113af565b1682526001600160a01b036114af602083016113af565b166020830152604081013560408301526060810135601e19823603018112156103ce57016020813591019067ffffffffffffffff81116103ce5780360382136103ce576080838160606115059601520191611466565b90565b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561154157565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16156115b357565b63e2517d3f60e01b60005233600452600060245260446000fd5b336000908152600080516020611e18833981519152602052604090205460ff16156115f457565b63e2517d3f60e01b60005233600452600080516020611d7883398151915260245260446000fd5b336000908152600080516020611db8833981519152602052604090205460ff161561164257565b63e2517d3f60e01b60005233600452600080516020611d5883398151915260245260446000fd5b6000818152600080516020611d988339815191526020908152604080832033845290915290205460ff161561169b5750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b0381166000908152600080516020611e18833981519152602052604090205460ff16611739576001600160a01b03166000818152600080516020611e1883398151915260205260408120805460ff19166001179055339190600080516020611d7883398151915290600080516020611d188339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020611db8833981519152602052604090205460ff16611739576001600160a01b03166000818152600080516020611db883398151915260205260408120805460ff19166001179055339190600080516020611d5883398151915290600080516020611d188339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16611739576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff19166001179055339190600080516020611d188339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff16611739576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a90600080516020611d188339815191529080a4600190565b6000818152600080516020611d98833981519152602090815260408083206001600160a01b038616845290915290205460ff166119ab576000818152600080516020611d98833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff1916600117905533929190600080516020611d188339815191529080a4600190565b5050600090565b6001600160a01b0381166000908152600080516020611e18833981519152602052604090205460ff1615611739576001600160a01b03166000818152600080516020611e1883398151915260205260408120805460ff19169055339190600080516020611d78833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381166000908152600080516020611db8833981519152602052604090205460ff1615611739576001600160a01b03166000818152600080516020611db883398151915260205260408120805460ff19169055339190600080516020611d58833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020611d98833981519152602090815260408083206001600160a01b038616845290915290205460ff16156119ab576000818152600080516020611d98833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6002600080516020611df88339815191525414611ba9576002600080516020611df883398151915255565b633ee5aeb560e01b60005260046000fd5b60ff600080516020611dd88339815191525416611bd357565b63d93c066560e01b60005260046000fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152611c1f916102e96064836113c3565b565b906000602091828151910182855af115611c7c576000513d611c7357506001600160a01b0381163b155b611c525750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b60011415611c4b565b6040513d6000823e3d90fd5b60ff600080516020611e388339815191525460401c1615611ca557565b631afcd79f60e31b60005260046000fd5b90611cdc5750805115611ccb57805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611d0e575b611ced575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15611ce556fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8619cecd8b9e095ab43867f5b69d492180450fe862e6b50bfbfb24b75dd84c8a10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009e55e7b9c223644eee376bcbcf651816b24106427c658526e048949da61b2c08cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00395f4e35a18c2b5e556b3b2ff855307e76c0b3cc1ca71e19a70e83037e08e7b3f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212206353f97c2bca70990562e73c05a556d800ce6f131c5458a0f2aa0fe6f1af58ff64736f6c634300081a003360a080604052346100ea57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b6040516128fe90816100f0823960805181818161120b01526112db0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880610054565b63f92ee8a960e01b60005260046000fd5b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a7146119015750806310188aef1461188f578063102614b01461179f5780631becceb4146116c457806321e093b11461169b578063248a9ca3146116745780632f2ff15d1461164257806336568abe146115fd57806338e22527146115035780633f4ba83a146114815780634f1ef2861461126057806352d1902d146111f857806357bec62f146111cf5780635b112591146111a65780635c975abb146111765780635d62c8601461113b578063726ac97c1461100c578063744b9b8b14610f295780637bbe9afa14610b1c5780638456cb5914610aa757806391d1485414610a4e578063950837aa146109ab578063a217fddf1461098f578063a2ba193414610972578063a783c78914610949578063aa0c0fc1146107f8578063ad3cb1cc146107ab578063ae7a3a6f1461072f578063c0c53b8b14610519578063cb7ba8e5146103a9578063d09e3b7814610236578063d547741f146101fb578063dda79b75146101d45763e63ab1e91461019757600080fd5b346101d157806003193601126101d15760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b80fd5b50346101d157806003193601126101d157546040516001600160a01b039091168152602090f35b50346101d15760403660031901126101d15761023260043561021b611987565b9061022d61022882611bf9565b611ea1565b6123d1565b5080f35b50346101d15760a03660031901126101d157610250611956565b60243561025b611971565b916064356001600160401b0381116103a55761027b9036906004016119b1565b608435946001600160401b0386116103a157856004019360a0600319883603011261039d576102a8612220565b851561038e576001600160a01b031695861561037f576064016104006102d96102d18388611ae2565b905085611bd6565b116103515750610347927fa795d4377323e4c2d4c346b8050a7dd504c4043be8884c81b8d9690706c8388f94928261031588610339953361224a565b60405197885260018060a01b03166020880152608060408801526080870191611b45565b908482036060860152611b66565b918033930390a380f35b8761036a8461036260449489611ae2565b919050611bd6565b634fe7bc4760e11b8252600452610400602452fd5b63d92e233d60e01b8852600488fd5b63951e19ed60e01b8852600488fd5b8780fd5b8680fd5b8480fd5b5060603660031901126101d1576103be611956565b906024356001600160401b038111610515576103de9036906004016119b1565b604493919335906001600160401b038211610511576080826004019260031990360301126105115761040e612471565b610416611d6f565b61041e612220565b6001600160a01b03831692831561050257848080809334905af1610440611c4a565b50156104f3578394833b156103a557604051636481451b60e11b8152602060048201528581806104736024820188611c92565b038183895af19081156104e85786916104d3575b50506104bb7fde7603a6ed5d07c9f43597ccfe9043d15b66d3284f0de321f5cdf56329e6e035936040519384933485611cf0565b0390a360016000805160206128698339815191525580f35b816104dd91611a90565b6103a5578438610487565b6040513d88823e3d90fd5b632b3f6d1160e21b8452600484fd5b63d92e233d60e01b8552600485fd5b8380fd5b5080fd5b50346101d15760603660031901126101d157610533611956565b61053b611987565b610543611971565b916000805160206128a9833981519152549260ff8460401c1615936001600160401b03811680159081610727575b600114908161071d575b159081610714575b506107055767ffffffffffffffff1981166001176000805160206128a983398151915255846106d8575b506001600160a01b03821690811580156106c7575b6106b8579061061861063b93926105d7612719565b6105df612719565b6105e7612719565b600160008051602061286983398151915255610601612719565b610609612719565b61061281612033565b506120cd565b50610622826120cd565b506001600160601b0360a01b6001541617600155611fad565b5060018060a01b03166001600160601b0360a01b600354161760035561065e5780f35b68ff0000000000000000196000805160206128a983398151915254166000805160206128a9833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b63d92e233d60e01b8652600486fd5b506001600160a01b038416156105c2565b68ffffffffffffffffff191668010000000000000001176000805160206128a983398151915255386105ad565b63f92ee8a960e01b8652600486fd5b90501538610583565b303b15915061057b565b869150610571565b50346101d15760203660031901126101d157610749611956565b610751611d1c565b6001600160a01b03811690811561079c5782546001600160a01b031661078d5761077a90611eeb565b5081546001600160a01b03191617815580f35b631666fe6f60e31b8352600483fd5b63d92e233d60e01b8352600483fd5b50346101d157806003193601126101d157506107f46040516107ce604082611a90565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611a6b565b0390f35b50346101d15760a03660031901126101d157610812611956565b61081a611987565b906044356064356001600160401b0381116103a55761083d9036906004016119b1565b91608435926001600160401b0384116103a1576080846004019460031990360301126103a15761086b612471565b610873611e2f565b61087b612220565b811561093a576001600160a01b03861694851561037f576001600160a01b0316956108a890839088612682565b843b156103a157604051636481451b60e11b81526020600482015287908181806108d5602482018a611c92565b0381838b5af1801561092f5761091a575b50507fde7603a6ed5d07c9f43597ccfe9043d15b66d3284f0de321f5cdf56329e6e035936104bb9160405194859485611cf0565b8161092491611a90565b6103a15786386108e6565b6040513d84823e3d90fd5b63951e19ed60e01b8752600487fd5b50346101d157806003193601126101d15760206040516000805160206127a98339815191528152f35b50346101d157806003193601126101d15760206040516104008152f35b50346101d157806003193601126101d157602090604051908152f35b50346101d15760203660031901126101d1576109c5611956565b6109cd611d1c565b6001600160a01b03811690811561079c576001546109fe91906109f8906001600160a01b031661233b565b50611fad565b50600154604080516001600160a01b0383168152602081018490527f3a7b8d6372645f474fe60c115a2ef21421306a3ed4664fa0023c461413c085799190a16001600160a01b0319161760015580f35b50346101d15760403660031901126101d1576040610a6a611987565b916004358152600080516020612829833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346101d157806003193601126101d157610ac0611dbd565b610ac8612220565b600160ff19600080516020612849833981519152541617600080516020612849833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101d157366003190160a08112610515576020136101d157610b3e611987565b610b46611971565b906064356084356001600160401b0381116103a557610b699036906004016119b1565b610b74929192612471565b610b7c611e2f565b610b84612220565b8115610f1a576001600160a01b038516948515610f0b57610ba58186612622565b15610eea5760405163095ea7b360e01b81526001600160a01b03828116600483015260248201859052861695906020816044818c8b5af1908115610e55578991610ecb575b5015610eb457610c1b91906001600160a01b03610c05611c1a565b16610ea957610c1584878461258a565b50612622565b15610e92576040516370a0823160e01b8152306004820152602081602481885afa908115610d52578791610e60575b5080610c73575b50906104bb600080516020612809833981519152939260405193849384611c30565b6003546001600160a01b03168503610dbe5760025460405163095ea7b360e01b81526001600160a01b039091166004820152602481018290526020816044818b8a5af1908115610db3578891610d84575b5015610d61576002548791906001600160a01b0316803b15610d5d5760248392604051948593849263743e0c9b60e01b845260048401525af18015610d5257610d28575b50906104bb60008051602061280983398151915293925b91929350610c51565b86610d48600080516020612809833981519152959493986104bb93611a90565b9691929350610d08565b6040513d89823e3d90fd5b8280fd5b60025463482b72c160e11b885260048690526001600160a01b0316602452604487fd5b610da6915060203d602011610dac575b610d9e8183611a90565b810190611c7a565b38610cc4565b503d610d94565b6040513d8a823e3d90fd5b8654604051636c9b2a3f60e11b8152600481018790526001600160a01b0390911690602081602481855afa908115610e55578991610e36575b5015610e225791610e1d6104bb9260008051602061280983398151915296959488612682565b610d1f565b631387a34960e01b88526004869052602488fd5b610e4f915060203d602011610dac57610d9e8183611a90565b38610df7565b6040513d8b823e3d90fd5b90506020813d602011610e8a575b81610e7b60209383611a90565b810103126103a1575138610c4a565b3d9150610e6e565b604486868663482b72c160e11b8352600452602452fd5b610c158487846124ad565b604488888863482b72c160e11b8352600452602452fd5b610ee4915060203d602011610dac57610d9e8183611a90565b38610bea565b63482b72c160e11b87526001600160a01b0385166004526024869052604487fd5b63d92e233d60e01b8752600487fd5b63951e19ed60e01b8652600486fd5b50610f33366119de565b909192610f3e612220565b3415610ffd576001600160a01b03169283156105025760608201610400610f70610f688386611ae2565b905086611bd6565b11610fec5750848080803460018060a01b03600154165af1610f90611c4a565b5015610fdd577fa795d4377323e4c2d4c346b8050a7dd504c4043be8884c81b8d9690706c8388f916103396103479260405195348752886020880152608060408801526080870191611b45565b6379cacff160e01b8552600485fd5b8561036a8561036260449487611ae2565b633b38932f60e11b8552600485fd5b5060403660031901126101d157611021611956565b602435906001600160401b038211610d5d57816004019060a060031984360301126105115761104e612220565b341561112c576001600160a01b031691821561111d576064016104006110748284611ae2565b9050116110fa5750828080803460018060a01b03600154165af1611096611c4a565b50156110eb577fc6f891b65320c682b217616a62b51f218fee95d5f0ba83e758ef9ab4ee8e975c610347604051923484528560208501526080604085015285608085015260a0606085015260a0840190611b66565b6379cacff160e01b8352600483fd5b6111078491604493611ae2565b634fe7bc4760e11b835260045250610400602452fd5b63d92e233d60e01b8452600484fd5b633b38932f60e11b8452600484fd5b50346101d157806003193601126101d15760206040517f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b98152f35b50346101d157806003193601126101d157602060ff60008051602061284983398151915254166040519015158152f35b50346101d157806003193601126101d1576001546040516001600160a01b039091168152602090f35b50346101d157806003193601126101d1576002546040516001600160a01b039091168152602090f35b50346101d157806003193601126101d1577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036112515760206040516000805160206127e98339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101d157611275611956565b602435906001600160401b038211610d5d5736602383011215610d5d57816004013590836112a283611ac7565b936112b06040519586611a90565b83855260208501933660248284010111610d5d57806024602093018637850101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630811490811561145e575b5061144f57611313611d1c565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa86918161141b575b5061135657634c9c8ce360e01b86526004859052602486fd5b93846000805160206127e98339815191528796036114095750823b156113f7576000805160206127e983398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a28051156113dc576102329382915190845af46113d6611c4a565b91612747565b50505050346113e85780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011611447575b8161143760209383611a90565b810103126103a15751903861133d565b3d915061142a565b63703e46dd60e11b8452600484fd5b6000805160206127e9833981519152546001600160a01b03161415905038611306565b50346101d157806003193601126101d15761149a611dbd565b6000805160206128498339815191525460ff8116156114f45760ff1916600080516020612849833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50366003190160608112610515576020136101d157611520611987565b6044356001600160401b038111610d5d5761153f9036906004016119b1565b61154a929192612471565b611552611d6f565b61155a612220565b6001600160a01b038216918215610502576107f494507fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f919081856001600160a01b036115a5611c1a565b166115ee576115b39261258a565b935b6115c56040519283923484611c30565b0390a2600160008051602061286983398151915255604051918291602083526020830190611a6b565b6115f7926124ad565b936115b5565b50346101d15760403660031901126101d157611617611987565b336001600160a01b0382160361163357610232906004356123d1565b63334bd91960e11b8252600482fd5b50346101d15760403660031901126101d157610232600435611662611987565b9061166f61022882611bf9565b612189565b50346101d15760203660031901126101d1576020611693600435611bf9565b604051908152f35b50346101d157806003193601126101d1576003546040516001600160a01b039091168152602090f35b50346101d1576116d3366119de565b9190926116de612220565b6020830135801515810361179b5761178c576001600160a01b0316928315610502576117186117106060850185611ae2565b905082611bd6565b61040081116117745750907fd34634f30f94a646fdf4ce7078f38fc5fa0d3f0b193658facea4e3e43330d9749161176e61175f604051938493604085526040850191611b45565b82810360208401523395611b66565b0390a380f35b634fe7bc4760e11b8652600452610400602452604485fd5b630cda5ff960e11b8552600485fd5b8580fd5b50346101d15760803660031901126101d1576117b9611956565b6024356117c4611971565b91606435926001600160401b0384116103a557836004019160a0600319863603011261179b576117f2612220565b8315610f1a576001600160a01b03169384156106b8576064016104006118188285611ae2565b90501161188257507fc6f891b65320c682b217616a62b51f218fee95d5f0ba83e758ef9ab4ee8e975c918161185185610347943361224a565b60405194855260018060a01b031660208501526080604085015285608085015260a0606085015260a0840190611b66565b8561110760449285611ae2565b50346101d15760203660031901126101d1576118a9611956565b6118b1611d1c565b6001600160a01b03811690811561079c576002546001600160a01b03166118f2576118db90611eeb565b506001600160601b0360a01b600254161760025580f35b630646e00b60e11b8352600483fd5b9050346105155760203660031901126105155760043563ffffffff60e01b8116809103610d5d5760209250637965db0b60e01b8114908115611945575b5015158152f35b6301ffc9a760e01b1490503861193e565b600435906001600160a01b038216820361196c57565b600080fd5b604435906001600160a01b038216820361196c57565b602435906001600160a01b038216820361196c57565b35906001600160a01b038216820361196c57565b9181601f8401121561196c578235916001600160401b03831161196c576020838186019501011161196c57565b90606060031983011261196c576004356001600160a01b038116810361196c57916024356001600160401b03811161196c5781611a1d916004016119b1565b92909291604435906001600160401b03821161196c5760a090829003600319011261196c5760040190565b60005b838110611a5b5750506000910152565b8181015183820152602001611a4b565b90602091611a8481518092818552858086019101611a48565b601f01601f1916010190565b90601f801991011681019081106001600160401b03821117611ab157604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b038111611ab157601f01601f191660200190565b903590601e198136030182121561196c57018035906001600160401b03821161196c5760200191813603831361196c57565b9035601e198236030181121561196c5701602081359101916001600160401b03821161196c57813603831361196c57565b908060209392818452848401376000828201840152601f01601f1916010190565b906001600160a01b03611b788361199d565b168152602082013580151580910361196c5760208201526001600160a01b03611ba36040840161199d565b166040820152608080611bcd611bbc6060860186611b14565b60a0606087015260a0860191611b45565b93013591015290565b91908201809211611be357565b634e487b7160e01b600052601160045260246000fd5b60005260008051602061282983398151915260205260016040600020015490565b6004356001600160a01b038116810361196c5790565b604090611c47949281528160208201520191611b45565b90565b3d15611c75573d90611c5b82611ac7565b91611c696040519384611a90565b82523d6000602084013e565b606090565b9081602091031261196c5751801515810361196c5790565b611c479190608090611ce0906001600160a01b03611caf8261199d565b1684526001600160a01b03611cc66020830161199d565b166020850152604081013560408501526060810190611b14565b9190928160608201520191611b45565b9291611c479492611d0e928552606060208601526060850191611b45565b916040818403910152611c92565b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1615611d5557565b63e2517d3f60e01b60005233600452600060245260446000fd5b336000908152600080516020612889833981519152602052604090205460ff1615611d9657565b63e2517d3f60e01b600052336004526000805160206127a983398151915260245260446000fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1615611df657565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527f8e1abba0e730025cbab32adfc4f51c1ad3a74360c4b2cfb4780a6c5f316e0509602052604090205460ff1615611e6857565b63e2517d3f60e01b600052336004527f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b960245260446000fd5b60008181526000805160206128298339815191526020908152604080832033845290915290205460ff1615611ed35750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b03811660009081527f8e1abba0e730025cbab32adfc4f51c1ad3a74360c4b2cfb4780a6c5f316e0509602052604090205460ff16611fa7576001600160a01b031660008181527f8e1abba0e730025cbab32adfc4f51c1ad3a74360c4b2cfb4780a6c5f316e050960205260408120805460ff191660011790553391907f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b9906000805160206127c98339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020612889833981519152602052604090205460ff16611fa7576001600160a01b0316600081815260008051602061288983398151915260205260408120805460ff191660011790553391906000805160206127a9833981519152906000805160206127c98339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16611fa7576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391906000805160206127c98339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff16611fa7576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a906000805160206127c98339815191529080a4600190565b6000818152600080516020612829833981519152602090815260408083206001600160a01b038616845290915290205460ff16612219576000818152600080516020612829833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291906000805160206127c98339815191529080a4600190565b5050600090565b60ff600080516020612849833981519152541661223957565b63d93c066560e01b60005260046000fd5b60035492939290916001600160a01b03908116911681036122765763e4dd681d60e01b60005260046000fd5b600054604051636c9b2a3f60e11b8152600481018390526001600160a01b039091169490602081602481895afa90811561232f57600091612310575b50156122fb576122f99394604051936323b872dd60e01b602086015260018060a01b0316602485015260448401526064830152606482526122f4608483611a90565b6126be565b565b50631387a34960e01b60005260045260246000fd5b612329915060203d602011610dac57610d9e8183611a90565b386122b2565b6040513d6000823e3d90fd5b6001600160a01b0381166000908152600080516020612889833981519152602052604090205460ff1615611fa7576001600160a01b0316600081815260008051602061288983398151915260205260408120805460ff191690553391906000805160206127a9833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020612829833981519152602090815260408083206001600160a01b038616845290915290205460ff1615612219576000818152600080516020612829833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6002600080516020612869833981519152541461249c57600260008051602061286983398151915255565b633ee5aeb560e01b60005260046000fd5b6040516319db301560e21b815292916004356001600160a01b03811692919083900361196c57846124f581949260009683946004850152604060248501526044840191611b45565b039134906001600160a01b03165af190811561232f57600091612516575090565b903d8082843e6125268184611a90565b820191602081840312610515578051906001600160401b038211610d5d570182601f820112156105155780519161255c83611ac7565b9361256a6040519586611a90565b838552602084840101116101d1575090611c479160208085019101611a48565b9060048310156125d2575b908260009392849360405192839283378101848152039134905af16125b8611c4a565b90156125c15790565b632b3f6d1160e21b60005260046000fd5b9081356001600160e01b0319166319db301560e21b811461261157636481451b60e11b146126005790612595565b6379a2cd4b60e11b60005260046000fd5b63ed69977560e01b60005260046000fd5b60405163095ea7b360e01b81526001600160a01b039283166004820152600060248201819052909260209284926044928492165af190811561232f57600091612669575090565b611c47915060203d602011610dac57610d9e8183611a90565b60405163a9059cbb60e01b60208201526001600160a01b039290921660248301526044808301939093529181526122f9916122f4606483611a90565b906000602091828151910182855af11561232f576000513d61271057506001600160a01b0381163b155b6126ef5750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b600114156126e8565b60ff6000805160206128a98339815191525460401c161561273657565b631afcd79f60e31b60005260046000fd5b9061276d575080511561275c57805190602001fd5b63d6bda27560e01b60005260046000fd5b8151158061279f575b61277e575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b1561277656fe0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b738202dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f007bdc20c26beb8eedd348733c28a5c4c2f7f7f1183cba8898195258fcdca273bcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220e3ceedd3e1180302ea91f43717e98df4951453d3ade1c5982edc0e113031242064736f6c634300081a003360a0806040523460295730608052611bc4908161002f8239608051818181610bd40152610ca50152f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a71461107a57508063106e629014610fe2578063116191b614610fbb57806321e093b114610f92578063248a9ca314610f6b5780632f2ff15d14610f3957806336568abe14610ef45780633f4ba83a14610e725780634f1ef28614610c2957806352d1902d14610bc15780635b11259114610b985780635c975abb14610b685780636f8728ad146109a45780636fb9a7af1461081a578063743e0c9b146107b35780638456cb591461073e57806385f438c11461071557806391d14854146106bc578063950837aa146105ea578063a217fddf146105ce578063a783c78914610593578063ad3cb1cc14610519578063d547741f146104de578063e63ab1e9146104a35763f8c8765e1461013457600080fd5b346104a05760803660031901126104a05761014d6110cf565b6101556110ea565b906044356001600160a01b03811680820361049c576064356001600160a01b0381169490919085830361049857600080516020611b6f833981519152549567ffffffffffffffff60ff8860401c1615971680159081610490575b6001149081610486575b15908161047d575b5061046e57866101cf611259565b61043c575b600080516020611b6f833981519152549567ffffffffffffffff60ff8860401c1615971680159081610434575b600114908161042a575b159081610421575b506104125786610221611259565b6103e0575b6001600160a01b03169081159081156103ce575b81156103c5575b81156103bc575b506103ad57916102f49493916102ee936102606119df565b6102686119df565b6102706119df565b6001600080516020611b0f8339815191525561028a6119df565b6102926119df565b6001600160601b0360a01b8a541617895560018060a01b03166001600160601b0360a01b60015416176001556001600160601b0360a01b60025416176002556102da816115ad565b506102e483611489565b506102ee83611515565b50611647565b50610356575b6103015780f35b60ff60401b19600080516020611b6f8339815191525416600080516020611b6f833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b60ff60401b19600080516020611b6f8339815191525416600080516020611b6f833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a16102fa565b63d92e233d60e01b8852600488fd5b90501538610248565b84159150610241565b6001600160a01b03841615915061023a565b600160401b60ff60401b19600080516020611b6f833981519152541617600080516020611b6f83398151915255610226565b63f92ee8a960e01b8952600489fd5b90501538610213565b303b15915061020b565b889150610201565b600160401b60ff60401b19600080516020611b6f833981519152541617600080516020611b6f833981519152556101d4565b63f92ee8a960e01b8852600488fd5b905015386101c1565b303b1591506101b9565b8891506101af565b8680fd5b8480fd5b80fd5b50346104a057806003193601126104a05760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346104a05760403660031901126104a0576105156004356104fe6110ea565b9061051061050b82611196565b6113d8565b6118d8565b5080f35b50346104a057806003193601126104a05760408051916105398284611114565b60058352640352e302e360dc1b6020840152815192839160208352815191826020850152815b83811061057c575050828201840152601f01601f19168101030190f35b60208282018101518883018801528795500161055f565b50346104a057806003193601126104a05760206040517f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb8152f35b50346104a057806003193601126104a057602090604051908152f35b50346104a05760203660031901126104a0576106046110cf565b61060c611385565b6001600160a01b0381169081156106ad5760025461065d9190610637906001600160a01b031661179a565b5060025461064d906001600160a01b0316611830565b5061065781611489565b50611515565b50600254604080516001600160a01b0383168152602081018490527f33770ab682353c17917ad3e667f05905fc8dda00671ef1ed33bef9bc8db0323e9190a16001600160a01b0319161760025580f35b63d92e233d60e01b8352600483fd5b50346104a05760403660031901126104a05760406106d86110ea565b916004358152600080516020611acf833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346104a057806003193601126104a0576020604051600080516020611aaf8339815191528152f35b50346104a057806003193601126104a057610757611313565b61075f611422565b600160ff19600080516020611aef833981519152541617600080516020611aef833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346104a05760203660031901126104a0576107cd611422565b6001546040516323b872dd60e01b60208201523360248201523060448201526004356064808301919091528152610817916001600160a01b0316610812608483611114565b611978565b80f35b50346104a057366003190160a081126109a0576020136104a05761083c6110ea565b60443560643567ffffffffffffffff811161099c5761085f903690600401611168565b9091610869611289565b6108716112c5565b610879611422565b60015485546108969183916001600160a01b03908116911661144c565b84546001546001600160a01b03918216958792909116863b1561099857604051633ddf4d7d60e11b81529183918391906001600160a01b036108d66110cf565b16600484015260248301526001600160a01b0316604482018190526064820186905260a060848301529781838161091160a482018b8d6111b7565b03925af1801561098d57610978575b50506109607f23b9573b29ff81f01c7aa1968188e1cb7d5858b08582e111fdaf386d9ef9bd8d9360405193849384526040602085015260408401916111b7565b0390a26001600080516020611b0f8339815191525580f35b8161098291611114565b61049c578438610920565b6040513d84823e3d90fd5b8280fd5b8380fd5b5080fd5b50346104a05760a03660031901126104a0576109be6110cf565b906024359060443567ffffffffffffffff81116109a0576109e3903690600401611168565b909260843567ffffffffffffffff811161099c5760808160040191600319903603011261099c57610a12611289565b610a1a6112c5565b610a22611422565b6001548454610a3f9184916001600160a01b03908116911661144c565b83546001546001600160a01b03918216979116873b15610b645794610aa78798610ab99383809a996040519687958694859363aa0c0fc160e01b8552600485015260018060a01b03169c8d60248501528b604485015260a060648501528c60a48501916111b7565b828103600319016084840152896111d8565b03925af18015610b5957610b1b575b5061096090610b0d7f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff095969760405195869586526060602087015260608601916111b7565b9083820360408501526111d8565b90610b0d86610b4f7f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff0979861096095611114565b9695505090610ac8565b6040513d88823e3d90fd5b8580fd5b50346104a057806003193601126104a057602060ff600080516020611aef83398151915254166040519015158152f35b50346104a057806003193601126104a0576002546040516001600160a01b039091168152602090f35b50346104a057806003193601126104a0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610c1a576020604051600080516020611a8f8339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126104a057610c3e6110cf565b6024359067ffffffffffffffff821161099857366023830112156109985781600401359083610c6c8361114c565b93610c7a6040519586611114565b8385526020850193366024828401011161099857806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610e4f575b50610e4057610cdd611385565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181610e0c575b50610d2057634c9c8ce360e01b86526004859052602486fd5b9384600080516020611a8f833981519152879603610dfa5750823b15610de857600080516020611a8f83398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115610dcd576105159382915190845af43d15610dc5573d91610da98361114c565b92610db76040519485611114565b83523d85602085013e611a0d565b606091611a0d565b5050505034610dd95780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011610e38575b81610e2860209383611114565b8101031261049857519038610d07565b3d9150610e1b565b63703e46dd60e11b8452600484fd5b600080516020611a8f833981519152546001600160a01b03161415905038610cd0565b50346104a057806003193601126104a057610e8b611313565b600080516020611aef8339815191525460ff811615610ee55760ff1916600080516020611aef833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346104a05760403660031901126104a057610f0e6110ea565b336001600160a01b03821603610f2a57610515906004356118d8565b63334bd91960e11b8252600482fd5b50346104a05760403660031901126104a057610515600435610f596110ea565b90610f6661050b82611196565b611703565b50346104a05760203660031901126104a0576020610f8a600435611196565b604051908152f35b50346104a057806003193601126104a0576001546040516001600160a01b039091168152602090f35b50346104a057806003193601126104a057546040516001600160a01b039091168152602090f35b50346104a05760603660031901126104a057610ffc6110cf565b7f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d560206024359261102b611289565b6110336112c5565b61103b611422565b60015461105490859083906001600160a01b031661144c565b6040519384526001600160a01b031692a26001600080516020611b0f8339815191525580f35b9050346109a05760203660031901126109a05760043563ffffffff60e01b81168091036109985760209250637965db0b60e01b81149081156110be575b5015158152f35b6301ffc9a760e01b149050386110b7565b600435906001600160a01b03821682036110e557565b600080fd5b602435906001600160a01b03821682036110e557565b35906001600160a01b03821682036110e557565b90601f8019910116810190811067ffffffffffffffff82111761113657604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161113657601f01601f191660200190565b9181601f840112156110e55782359167ffffffffffffffff83116110e557602083818601950101116110e557565b600052600080516020611acf83398151915260205260016040600020015490565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160a01b036111e982611100565b1682526001600160a01b0361120060208301611100565b166020830152604081013560408301526060810135601e19823603018112156110e557016020813591019067ffffffffffffffff81116110e55780360382136110e55760808381606061125696015201916111b7565b90565b600167ffffffffffffffff19600080516020611b6f833981519152541617600080516020611b6f83398151915255565b6002600080516020611b0f83398151915254146112b4576002600080516020611b0f83398151915255565b633ee5aeb560e01b60005260046000fd5b336000908152600080516020611b2f833981519152602052604090205460ff16156112ec57565b63e2517d3f60e01b60005233600452600080516020611aaf83398151915260245260446000fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561134c57565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16156113be57565b63e2517d3f60e01b60005233600452600060245260446000fd5b6000818152600080516020611acf8339815191526020908152604080832033845290915290205460ff161561140a5750565b63e2517d3f60e01b6000523360045260245260446000fd5b60ff600080516020611aef833981519152541661143b57565b63d93c066560e01b60005260046000fd5b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815261148791610812606483611114565b565b6001600160a01b0381166000908152600080516020611b2f833981519152602052604090205460ff1661150f576001600160a01b03166000818152600080516020611b2f83398151915260205260408120805460ff19166001179055339190600080516020611aaf83398151915290600080516020611a6f8339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020611b4f833981519152602052604090205460ff1661150f576001600160a01b03166000818152600080516020611b4f83398151915260205260408120805460ff191660011790553391907f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb90600080516020611a6f8339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1661150f576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff19166001179055339190600080516020611a6f8339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1661150f576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a90600080516020611a6f8339815191529080a4600190565b6000818152600080516020611acf833981519152602090815260408083206001600160a01b038616845290915290205460ff16611793576000818152600080516020611acf833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff1916600117905533929190600080516020611a6f8339815191529080a4600190565b5050600090565b6001600160a01b0381166000908152600080516020611b2f833981519152602052604090205460ff161561150f576001600160a01b03166000818152600080516020611b2f83398151915260205260408120805460ff19169055339190600080516020611aaf833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381166000908152600080516020611b4f833981519152602052604090205460ff161561150f576001600160a01b03166000818152600080516020611b4f83398151915260205260408120805460ff191690553391907f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020611acf833981519152602090815260408083206001600160a01b038616845290915290205460ff1615611793576000818152600080516020611acf833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b906000602091828151910182855af1156119d3576000513d6119ca57506001600160a01b0381163b155b6119a95750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b600114156119a2565b6040513d6000823e3d90fd5b60ff600080516020611b6f8339815191525460401c16156119fc57565b631afcd79f60e31b60005260046000fd5b90611a335750805115611a2257805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611a65575b611a44575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15611a3c56fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00395f4e35a18c2b5e556b3b2ff855307e76c0b3cc1ca71e19a70e83037e08e7b37bdc20c26beb8eedd348733c28a5c4c2f7f7f1183cba8898195258fcdca273bcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212202bdad00032481621f5688942b2f2636896811e160d422fd2afd2200c14598d1164736f6c634300081a003360a0806040523460295730608052611ce5908161002f8239608051818181610cb70152610d880152f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a71461115157508063106e6290146110c5578063116191b61461109e57806321e093b114611075578063248a9ca31461104e5780632f2ff15d1461101c57806336568abe14610fd75780633f4ba83a14610f555780634f1ef28614610d0c57806352d1902d14610ca45780635b11259114610c7b5780635c975abb14610c4b5780636f8728ad14610a8a5780636f8b44b0146109d85780636fb9a7af1461085c578063743e0c9b146107db5780638456cb591461076657806385f438c11461073d57806391d14854146106e4578063950837aa14610612578063a217fddf146105f6578063a783c789146105cd578063ad3cb1cc14610553578063d547741f14610518578063d5abeb01146104fa578063e63ab1e9146104bf5763f8c8765e1461014a57600080fd5b346104bc5760803660031901126104bc576101636111a6565b61016b6111c1565b906044356001600160a01b0381168082036104b8576064356001600160a01b038116949091908583036104b457600080516020611c90833981519152549567ffffffffffffffff60ff8860401c16159716801590816104ac575b60011490816104a2575b159081610499575b5061048a57866101e5611330565b610458575b600080516020611c90833981519152549567ffffffffffffffff60ff8860401c1615971680159081610450575b6001149081610446575b15908161043d575b5061042e5786610237611330565b6103fc575b6001600160a01b03169081159081156103ea575b81156103e1575b81156103d8575b506103c9579161030a94939161030493610276611ae0565b61027e611ae0565b610286611ae0565b6001600080516020611c30833981519152556102a0611ae0565b6102a8611ae0565b6001600160601b0360a01b8a541617895560018060a01b03166001600160601b0360a01b60015416176001556001600160601b0360a01b60025416176002556102f081611727565b506102fa83611615565b50610304836116a1565b506117c1565b50610372575b60001960035561031d5780f35b60ff60401b19600080516020611c908339815191525416600080516020611c90833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b60ff60401b19600080516020611c908339815191525416600080516020611c90833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1610310565b63d92e233d60e01b8852600488fd5b9050153861025e565b84159150610257565b6001600160a01b038416159150610250565b600160401b60ff60401b19600080516020611c90833981519152541617600080516020611c908339815191525561023c565b63f92ee8a960e01b8952600489fd5b90501538610229565b303b159150610221565b889150610217565b600160401b60ff60401b19600080516020611c90833981519152541617600080516020611c90833981519152556101ea565b63f92ee8a960e01b8852600488fd5b905015386101d7565b303b1591506101cf565b8891506101c5565b8680fd5b8480fd5b80fd5b50346104bc57806003193601126104bc5760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346104bc57806003193601126104bc576020600354604051908152f35b50346104bc5760403660031901126104bc5761054f6004356105386111c1565b9061054a6105458261126d565b6114af565b611a40565b5080f35b50346104bc57806003193601126104bc57604080519161057382846111eb565b60058352640352e302e360dc1b6020840152815192839160208352815191826020850152815b8381106105b6575050828201840152601f01601f19168101030190f35b602082820181015188830188015287955001610599565b50346104bc57806003193601126104bc576020604051600080516020611b708339815191528152f35b50346104bc57806003193601126104bc57602090604051908152f35b50346104bc5760203660031901126104bc5761062c6111a6565b61063461145c565b6001600160a01b0381169081156106d557600254610685919061065f906001600160a01b0316611914565b50600254610675906001600160a01b03166119aa565b5061067f81611615565b506116a1565b50600254604080516001600160a01b0383168152602081018490527f33770ab682353c17917ad3e667f05905fc8dda00671ef1ed33bef9bc8db0323e9190a16001600160a01b0319161760025580f35b63d92e233d60e01b8352600483fd5b50346104bc5760403660031901126104bc5760406107006111c1565b916004358152600080516020611bf0833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346104bc57806003193601126104bc576020604051600080516020611bd08339815191528152f35b50346104bc57806003193601126104bc5761077f6113ea565b6107876114f9565b600160ff19600080516020611c10833981519152541617600080516020611c10833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346104bc5760203660031901126104bc576107f56114f9565b60015481906001600160a01b0316803b156108595781809160446040518094819363079cc67960e41b835233600484015260043560248401525af1801561084e5761083d5750f35b81610847916111eb565b6104bc5780f35b6040513d84823e3d90fd5b50fd5b50346104bc57366003190160a081126109d4576020136104bc5761087e6111c1565b60443560643567ffffffffffffffff81116109d0576108a190369060040161123f565b90916108ab611360565b6108b361139c565b6108bb6114f9565b84546108d5906084359083906001600160a01b0316611523565b84546001546001600160a01b03918216958792909116863b156109cc57604051633ddf4d7d60e11b81529183918391906001600160a01b036109156111a6565b16600484015260248301526001600160a01b0316604482018190526064820186905260a060848301529781838161095060a482018b8d61128e565b03925af1801561084e576109b7575b505061099f7f23b9573b29ff81f01c7aa1968188e1cb7d5858b08582e111fdaf386d9ef9bd8d93604051938493845260406020850152604084019161128e565b0390a26001600080516020611c308339815191525580f35b816109c1916111eb565b6104b857843861095f565b8280fd5b8380fd5b5080fd5b50346104bc5760203660031901126104bc57600080516020611b708339815191528152600080516020611bf08339815191526020908152604080832033600090815292529020546004359060ff1615610a655760207f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c91610a576114f9565b80600355604051908152a180f35b63e2517d3f60e01b825233600452600080516020611b70833981519152602452604482fd5b50346104bc5760a03660031901126104bc57610aa46111a6565b906024359060443567ffffffffffffffff81116109d457610ac990369060040161123f565b909260843567ffffffffffffffff81116109d0576080816004019160031990360301126109d057610af8611360565b610b0061139c565b610b086114f9565b8354610b22906064359084906001600160a01b0316611523565b83546001546001600160a01b03918216979116873b15610c475794610b8a8798610b9c9383809a996040519687958694859363aa0c0fc160e01b8552600485015260018060a01b03169c8d60248501528b604485015260a060648501528c60a485019161128e565b828103600319016084840152896112af565b03925af18015610c3c57610bfe575b5061099f90610bf07f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff0959697604051958695865260606020870152606086019161128e565b9083820360408501526112af565b90610bf086610c327f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff0979861099f956111eb565b9695505090610bab565b6040513d88823e3d90fd5b8580fd5b50346104bc57806003193601126104bc57602060ff600080516020611c1083398151915254166040519015158152f35b50346104bc57806003193601126104bc576002546040516001600160a01b039091168152602090f35b50346104bc57806003193601126104bc577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610cfd576020604051600080516020611bb08339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126104bc57610d216111a6565b6024359067ffffffffffffffff82116109cc57366023830112156109cc5781600401359083610d4f83611223565b93610d5d60405195866111eb565b838552602085019336602482840101116109cc57806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610f32575b50610f2357610dc061145c565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181610eef575b50610e0357634c9c8ce360e01b86526004859052602486fd5b9384600080516020611bb0833981519152879603610edd5750823b15610ecb57600080516020611bb083398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115610eb05761054f9382915190845af43d15610ea8573d91610e8c83611223565b92610e9a60405194856111eb565b83523d85602085013e611b0e565b606091611b0e565b5050505034610ebc5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011610f1b575b81610f0b602093836111eb565b810103126104b457519038610dea565b3d9150610efe565b63703e46dd60e11b8452600484fd5b600080516020611bb0833981519152546001600160a01b03161415905038610db3565b50346104bc57806003193601126104bc57610f6e6113ea565b600080516020611c108339815191525460ff811615610fc85760ff1916600080516020611c10833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346104bc5760403660031901126104bc57610ff16111c1565b336001600160a01b0382160361100d5761054f90600435611a40565b63334bd91960e11b8252600482fd5b50346104bc5760403660031901126104bc5761054f60043561103c6111c1565b906110496105458261126d565b61187d565b50346104bc5760203660031901126104bc57602061106d60043561126d565b604051908152f35b50346104bc57806003193601126104bc576001546040516001600160a01b039091168152602090f35b50346104bc57806003193601126104bc57546040516001600160a01b039091168152602090f35b50346104bc5760603660031901126104bc576110df6111a6565b7f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d560206024359261110e611360565b61111661139c565b61111e6114f9565b61112b6044358583611523565b6040519384526001600160a01b031692a26001600080516020611c308339815191525580f35b9050346109d45760203660031901126109d45760043563ffffffff60e01b81168091036109cc5760209250637965db0b60e01b8114908115611195575b5015158152f35b6301ffc9a760e01b1490503861118e565b600435906001600160a01b03821682036111bc57565b600080fd5b602435906001600160a01b03821682036111bc57565b35906001600160a01b03821682036111bc57565b90601f8019910116810190811067ffffffffffffffff82111761120d57604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161120d57601f01601f191660200190565b9181601f840112156111bc5782359167ffffffffffffffff83116111bc57602083818601950101116111bc57565b600052600080516020611bf083398151915260205260016040600020015490565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160a01b036112c0826111d7565b1682526001600160a01b036112d7602083016111d7565b166020830152604081013560408301526060810135601e19823603018112156111bc57016020813591019067ffffffffffffffff81116111bc5780360382136111bc5760808381606061132d960152019161128e565b90565b600167ffffffffffffffff19600080516020611c90833981519152541617600080516020611c9083398151915255565b6002600080516020611c30833981519152541461138b576002600080516020611c3083398151915255565b633ee5aeb560e01b60005260046000fd5b336000908152600080516020611c50833981519152602052604090205460ff16156113c357565b63e2517d3f60e01b60005233600452600080516020611bd083398151915260245260446000fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561142357565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff161561149557565b63e2517d3f60e01b60005233600452600060245260446000fd5b6000818152600080516020611bf08339815191526020908152604080832033845290915290205460ff16156114e15750565b63e2517d3f60e01b6000523360045260245260446000fd5b60ff600080516020611c10833981519152541661151257565b63d93c066560e01b60005260046000fd5b6001546040516318160ddd60e01b81526000949392916001600160a01b031690602081600481855afa908115610c3c5786916115e3575b5083018084116115cf57600354106115c057803b156104b857849291836064926040519687958694630f22c5f760e11b865260018060a01b03166004860152602485015260448401525af1801561084e576115b3575050565b816115bd916111eb565b50565b63c30436e960e01b8552600485fd5b634e487b7160e01b86526011600452602486fd5b90506020813d60201161160d575b816115fe602093836111eb565b81010312610c4757513861155a565b3d91506115f1565b6001600160a01b0381166000908152600080516020611c50833981519152602052604090205460ff1661169b576001600160a01b03166000818152600080516020611c5083398151915260205260408120805460ff19166001179055339190600080516020611bd083398151915290600080516020611b908339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020611c70833981519152602052604090205460ff1661169b576001600160a01b03166000818152600080516020611c7083398151915260205260408120805460ff19166001179055339190600080516020611b7083398151915290600080516020611b908339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1661169b576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff19166001179055339190600080516020611b908339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1661169b576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a90600080516020611b908339815191529080a4600190565b6000818152600080516020611bf0833981519152602090815260408083206001600160a01b038616845290915290205460ff1661190d576000818152600080516020611bf0833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff1916600117905533929190600080516020611b908339815191529080a4600190565b5050600090565b6001600160a01b0381166000908152600080516020611c50833981519152602052604090205460ff161561169b576001600160a01b03166000818152600080516020611c5083398151915260205260408120805460ff19169055339190600080516020611bd0833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381166000908152600080516020611c70833981519152602052604090205460ff161561169b576001600160a01b03166000818152600080516020611c7083398151915260205260408120805460ff19169055339190600080516020611b70833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020611bf0833981519152602090815260408083206001600160a01b038616845290915290205460ff161561190d576000818152600080516020611bf0833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b60ff600080516020611c908339815191525460401c1615611afd57565b631afcd79f60e31b60005260046000fd5b90611b345750805115611b2357805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611b66575b611b45575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15611b3d56fe0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00395f4e35a18c2b5e556b3b2ff855307e76c0b3cc1ca71e19a70e83037e08e7b37bdc20c26beb8eedd348733c28a5c4c2f7f7f1183cba8898195258fcdca273bcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212203f211d602b36c7fdf0f3b0fe8233e5a85a6bfca3cf4c804bfdd1d764320a84b564736f6c634300081a003360e0346100d757601f610bd638819003918201601f19168301916001600160401b038311848410176100dc578084926060946040528339810103126100d757610047816100f2565b906040610056602083016100f2565b9101519160805260a05260c052604051610acf90816101078239608051818181608a0152610196015260a05181818160dd0152818161070a015281816107e5015281816108990152818161094901526109f9015260c051818181604f0152818161076701528181610846015281816108f5015281816109ac0152610a530152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036100d75756fe6080604052600436106101815760003560e01c8063589dd5da1461007757806385e1f4d0146100375763ced52b4003610181576100c7565b346100725760003660031901126100725760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b600080fd5b34610072576000366003190112610072577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b600091031261007257565b34610072576000366003190112610072576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761013e57604052565b61010c565b90601f8019910116810190811067ffffffffffffffff82111761013e57604052565b67ffffffffffffffff811161013e57601f01601f191660200190565b600080604051368282378036810183815203907f00000000000000000000000000000000000000000000000000000000000000005af43d1561023c573d906101c882610165565b916101d66040519384610143565b82523d6000602084013e5b156101f7576101ef366106c3565b602081519101f35b60405162461bcd60e51b815260206004820152601b60248201527f476174657761792064656c656761746563616c6c206661696c656400000000006044820152606490fd5b6060906101e1565b906004116100725790600490565b909291928360041161007257831161007257600401916003190190565b356001600160e01b031981169291906004821061028a575050565b6001600160e01b031960049290920360031b82901b16169150565b6001600160a01b0381160361007257565b81601f82011215610072578035906102cd82610165565b926102db6040519485610143565b8284526020838301011161007257816000926020809301838601378301015290565b3590610308826102a5565b565b91909160a081840312610072576040519061032482610122565b81938135610331816102a5565b835260208201358015158103610072576020840152610352604083016102fd565b604084015260608201359167ffffffffffffffff83116100725761037c60809392849383016102b6565b60608501520135910152565b9160608383031261007257823561039e816102a5565b92602081013567ffffffffffffffff811161007257836103bf9183016102b6565b92604082013567ffffffffffffffff8111610072576103de920161030a565b90565b919082519283825260005b84811061040d575050826000602080949584010152601f8019910116010190565b806020809284010151828286010152016103ec565b9060018060a01b03825116815260208201511515602082015260018060a01b036040830151166040820152608080610469606085015160a0606086015260a08501906103e1565b93015191015290565b9081526001600160a01b0391821660208201529116604082015260a0606082018190526103de9391926104a7918401906103e1565b916080818403910152610422565b6040513d6000823e3d90fd5b91909160a0818403126100725780356104d9816102a5565b9260208201359260408301356104ee816102a5565b92606081013567ffffffffffffffff8111610072578361050f9183016102b6565b92608082013567ffffffffffffffff8111610072576103de920161030a565b9081526001600160a01b0391821660208201529116604082015260608101919091526000608082015260e060a082018190526103de939192610572918401906103e1565b9160c0818403910152610422565b9081526001600160a01b039182166020820152918116604083015260608201929092529116608082015260e060a082018190526103de939192610572918401906103e1565b906080828203126100725781356105db816102a5565b9260208301359260408101356105f0816102a5565b92606082013567ffffffffffffffff8111610072576103de920161030a565b9081526001600160a01b0391821660208201529116604082015260608101919091526000608082015260c060a082018190526103de92910190610422565b9081526001600160a01b039182166020820152918116604083015260608201929092529116608082015260c060a082018190526103de92910190610422565b9190916040818403126100725780356106a4816102a5565b92602082013567ffffffffffffffff8111610072576103de920161030a565b6106e16106d1826000610244565b6001600160e01b0319929161026f565b16631c9ab25f60e21b81036107ba575061070081610708926000610252565b81019061068c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169190823b156100725760405163ced6e79360e01b815292600092849283918591839161078f919034906001600160a01b0316337f00000000000000000000000000000000000000000000000000000000000000006004870161060f565b03925af180156107b5576107a05750565b806107af600061030893610143565b806100bc565b6104b5565b630102614b60e41b810361086e57506107d8816107e0926000610252565b8101906105c5565b9290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b156100725760405163ced6e79360e01b815294600094869485938793859361078f9391926001600160a01b0391821692909116337f00000000000000000000000000000000000000000000000000000000000000006004880161064d565b63744b9b8b60e01b810361091d575061088c81610894926000610252565b810190610388565b9091907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156100725760405163ad82a62760e01b815293600093859384928692849261078f92909134906001600160a01b0316337f00000000000000000000000000000000000000000000000000000000000000006004880161052e565b631a13c76f60e31b81036109d4575061093b81610943926000610252565b8101906104c1565b909391927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b156100725760405163ad82a62760e01b815295600095879586948894869461078f94919390926001600160a01b0392831692909116337f000000000000000000000000000000000000000000000000000000000000000060048901610580565b6306fb33ad60e21b146109e5575b50565b61088c816109f4926000610252565b9091907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b15610072576040516375e7f8e360e11b8152936000938593849286928492610a7b9290916001600160a01b0316337f000000000000000000000000000000000000000000000000000000000000000060048701610472565b03925af180156107b557156109e257806107af60006103089361014356fea2646970667358221220a71cbde33d0601ceacd47bd11f54cc311e513e7ffbb3ec6ec289e9912d3be94b64736f6c634300081a0033a2646970667358221220928d1f0cf196771916c55c50b6eab6883a793637fb05e7baf38f61f26998f5b164736f6c634300081a0033"; + "0x60803461012957601f61af6938819003918201601f19168301916001600160401b0383118484101761012e5780849260c0946040528339810103126101295761004781610144565b9061005460208201610144565b61006060408301610144565b61006c60608401610144565b91600161008760a061008060808801610144565b9601610144565b600c805460ff199081168417909155601f805460a885901b8581031990911660089a909a1b92019190911697909717909117909555602080546001600160a01b03199081166001600160a01b039384161790915560218054821693831693909317909255602280548316938216939093179092556023805482169383169390931790925560248054909216921691909117905560405161ae1090816101598239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036101295756fe6080604052600436101561001257600080fd5b60003560e01c8062173d4614610195578062d62498146101905780631694505e1461018b5780631ed7831c146101865780632ade3880146101815780633e5e3c231461017c5780633f7286f41461017757806362f1b0021461017257806366d9a9a01461016d5780636a26fefe146101685780636ce89fe2146101635780636e6dbb511461015e5780637bf221811461015957806385226c8114610154578063916a17c61461014f578063ad8414bf1461014a578063b0464fdc14610145578063b5508aa914610140578063ba414fa61461013b578063bb88b76914610136578063d05adf6a14610131578063d5f394881461012c578063e20c9f71146101275763fa7626d41461012257600080fd5b611708565b611688565b61165b565b61162d565b611604565b6115df565b611552565b6114a6565b611478565b6113cc565b6112c7565b6107d8565b6107b1565b610788565b61076c565b6106c0565b6105d4565b610554565b6104d4565b610428565b61027f565b610213565b6101e5565b6101aa565b60009103126101a557565b600080fd5b346101a55760003660031901126101a5576021546040516001600160a01b039091168152602090f35b60209060031901126101a55760043590565b346101a5576101f3366101d3565b6000526027602052602060018060a01b0360406000205416604051908152f35b346101a55760003660031901126101a5576024546040516001600160a01b039091168152602090f35b602060408183019282815284518094520192019060005b8181106102605750505090565b82516001600160a01b0316845260209384019390920191600101610253565b346101a55760003660031901126101a55760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b8181106102f0576102ec856102e08187038261175d565b6040519182918261023c565b0390f35b82546001600160a01b03168452602090930192600192830192016102c9565b60005b8381106103225750506000910152565b8181015183820152602001610312565b9060209161034b8151809281855285808601910161030f565b601f01601f1916010190565b9080602083519182815201916020808360051b8301019401926000915b83831061038357505050505090565b90919293946020806103a1600193601f198682030187528951610332565b97019301930191939290610374565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106103e357505050505090565b9091929394602080610419600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610357565b970193019301919392906103d4565b346101a55760003660031901126101a557601e546104458161177f565b90610453604051928361175d565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061049957604051806102ec87826103b0565b600260206001926040516104ac81611741565b848060a01b0386541681526104c2858701611863565b83820152815201920192019190610484565b346101a55760003660031901126101a55760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b818110610535576102ec856102e08187038261175d565b82546001600160a01b031684526020909301926001928301920161051e565b346101a55760003660031901126101a55760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b8181106105b5576102ec856102e08187038261175d565b82546001600160a01b031684526020909301926001928301920161059e565b346101a5576105e2366101d3565b6000526028602052602060018060a01b0360406000205416604051908152f35b906020808351928381520192019060005b8181106106205750505090565b82516001600160e01b031916845260209384019390920191600101610613565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061067357505050505090565b90919293946020806106b1600193603f19868203018752895190836106a18351604084526040840190610332565b9201519084818403910152610602565b97019301930191939290610664565b346101a55760003660031901126101a557601b546106dd8161177f565b906106eb604051928361175d565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b83831061073157604051806102ec8782610640565b6002602060019260405161074481611741565b61074d86611797565b815261075a8587016118bb565b8382015281520192019201919061071c565b346101a55760003660031901126101a557602060405160058152f35b346101a55760003660031901126101a5576023546040516001600160a01b039091168152602090f35b346101a55760003660031901126101a557602080546040516001600160a01b039091168152f35b346101a5576107e6366101d3565b601f5460081c6001600160a01b0316737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156101a5576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610f355761129e575b50604051612bb280820182811067ffffffffffffffff821117611012578291613e2c833903906000f08015610f35576023546001600160a01b031660405191610bd68084019284841067ffffffffffffffff8511176110125784936108e193879361a20587396001600160a01b039081168252919091166020820152604081019190915260600190565b03906000f08015610f35576000828152602760205260409020610928916001600160a01b0316905b80546001600160a01b0319166001600160a01b03909216919091179055565b604051611eb280820182811067ffffffffffffffff821117611012578291611f7a833903906000f08015610f35576000828152602560205260409020610977916001600160a01b031690610909565b60058114801561114a576040516360f9bb1160e01b815260206004820152604b60248201527f6e6f64655f6d6f64756c65732f407a657461636861696e2f70726f746f636f6c60448201527f2d636f6e7472616374732f6162692f5465737445524332302e736f6c2f54657360648201526a3a22a9219918173539b7b760a91b608482015260008160a481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610f3557610a49916000918291611130575b5060405180938192631fb2437d60e31b835260048301611b5b565b0381737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610f3557610aea91610ad69160009161110d575b5060405190610ad182610ac36020820160c0906040815260046040820152635a65746160e01b60608201526080602082015260046080820152635a45544160e01b60a08201520190565b03601f19810184528361175d565b611c60565b610909846000526028602052604060002090565b610b1d610b11610b04846000526027602052604060002090565b546001600160a01b031690565b6001600160a01b031690565b6020546001600160a01b0316610b40610b04856000526028602052604060002090565b601f5490929060081c6001600160a01b031690803b156101a55760405163c0c53b8b60e01b81526001600160a01b0393841660048201529383166024850152911660448301526000908290606490829084905af18015610f35576110f8575b50610bbd610b11610b11610b04856000526025602052604060002090565b610bd7610b11610b04856000526027602052604060002090565b6020546001600160a01b0316601f5490929060081c6001600160a01b031690803b156101a55760405163c0c53b8b60e01b81526001600160a01b0393841660048201529383166024850152911660448301526000908290606490829084905af18015610f35576110e3575b50801561101757604051611b8380820182811067ffffffffffffffff8211176110125782916169de833903906000f08015610f3557610c91610b11610b04856000526027602052604060002090565b90610cfc610cac610b04866000526028602052604060002090565b60208054601f54604051637c643b2f60e11b938101939093526001600160a01b03968716602484015292861660448301528516606482015260089190911c90931660848401528260a48101610ac3565b604051916102c69081840184811067ffffffffffffffff821117611012578493610d3493611cb486396001600160a01b031690611b97565b03906000f08015610f35576000838152602660205260409020610d60916001600160a01b031690610909565b610d7a610b11610b04846000526027602052604060002090565b610d91610b04846000526025602052604060002090565b90803b156101a55760405163ae7a3a6f60e01b81526001600160a01b039290921660048301526000908290602490829084905af18015610f3557610ffd575b50610deb610b11610b04846000526027602052604060002090565b610e02610b04846000526026602052604060002090565b90803b156101a5576040516310188aef60e01b81526001600160a01b039290921660048301526000908290602490829084905af18015610f3557610fe8575b5015610f4f57610e7b610b04610e6a610b11610b11610b04866000526028602052604060002090565b926000526026602052604060002090565b90803b156101a5576040516340c10f1960e01b81526001600160a01b0392909216600483015269d3c21bcecceda100000060248301526000908290604490829084905af18015610f3557610f3a575b505b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156101a5576040516390c5013b60e01b815260008160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610f3557610f1e57005b80610f2d6000610f339361175d565b8061019a565b005b611ae0565b80610f2d6000610f499361175d565b38610eca565b610f6c610b11610b11610b04846000526028602052604060002090565b602054909190610f8890610b04906001600160a01b0316610e6a565b823b156101a5576040516305755ff560e21b81526001600160a01b03928316600482015291166024820152906000908290604490829084905af18015610f3557610fd3575b50610ecc565b80610f2d6000610fe29361175d565b38610fcd565b80610f2d6000610ff79361175d565b38610e41565b80610f2d600061100c9361175d565b38610dd0565b61172b565b604051611ca480820182811067ffffffffffffffff821117611012578291618561833903906000f08015610f355761105f610b11610b04856000526027602052604060002090565b9061107a610cac610b04866000526028602052604060002090565b604051916102c69081840184811067ffffffffffffffff8211176110125784936110b293611cb486396001600160a01b031690611b97565b03906000f08015610f355760008381526026602052604090206110de916001600160a01b031690610909565b610d60565b80610f2d60006110f29361175d565b38610c42565b80610f2d60006111079361175d565b38610b9f565b61112a91503d806000833e611122818361175d565b810190611aec565b38610a79565b61114491503d8084833e611122818361175d565b38610a2e565b6040516360f9bb1160e01b815260206004820152604f60248201527f6e6f64655f6d6f64756c65732f407a657461636861696e2f70726f746f636f6c60448201527f2d636f6e7472616374732f6162692f5a6574612e6e6f6e2d6574682e736f6c2f60648201526e2d32ba30a737b722ba34173539b7b760891b608482015260008160a481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610f3557611215916000918291611130575060405180938192631fb2437d60e31b835260048301611b5b565b0381737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610f355761127e91610ad691600091611283575b5060208054601f54604080516001600160a01b039384169481019490945260089190911c9091169082015290610ad18260608101610ac3565b610aea565b61129891503d806000833e611122818361175d565b38611245565b80610f2d60006112ad9361175d565b38610857565b9060206112c4928181520190610357565b90565b346101a55760003660031901126101a557601a546112e48161177f565b906112f2604051928361175d565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b83831061133757604051806102ec87826112b3565b60016020819261134685611797565b815201920192019190611322565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061138757505050505090565b90919293946020806113bd600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610602565b97019301930191939290611378565b346101a55760003660031901126101a557601d546113e98161177f565b906113f7604051928361175d565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b83831061143d57604051806102ec8782611354565b6002602060019260405161145081611741565b848060a01b0386541681526114668587016118bb565b83820152815201920192019190611428565b346101a557611486366101d3565b6000526025602052602060018060a01b0360406000205416604051908152f35b346101a55760003660031901126101a557601c546114c38161177f565b906114d1604051928361175d565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b83831061151757604051806102ec8782611354565b6002602060019260405161152a81611741565b848060a01b0386541681526115408587016118bb565b83820152815201920192019190611502565b346101a55760003660031901126101a55760195461156f8161177f565b9061157d604051928361175d565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b8383106115c257604051806102ec87826112b3565b6001602081926115d185611797565b8152019201920191906115ad565b346101a55760003660031901126101a55760206115fa611bc8565b6040519015158152f35b346101a55760003660031901126101a5576022546040516001600160a01b039091168152602090f35b346101a55761163b366101d3565b6000526026602052602060018060a01b0360406000205416604051908152f35b346101a55760003660031901126101a557601f5460405160089190911c6001600160a01b03168152602090f35b346101a55760003660031901126101a55760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b8181106116e9576102ec856102e08187038261175d565b82546001600160a01b03168452602090930192600192830192016116d2565b346101a55760003660031901126101a557602060ff601f54166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff82111761101257604052565b90601f8019910116810190811067ffffffffffffffff82111761101257604052565b67ffffffffffffffff81116110125760051b60200190565b9060405191600081548060011c9260018216918215611859575b60208510831461184557848752869392602085019291811561182857506001146117e6575b50506117e49250038361175d565b565b6117f7919250600052602060002090565b906000915b84831061181157506117e493500138806117d6565b8054828401528693506020909201916001016117fc565b9150506117e49491925060ff19168252151560051b0138806117d6565b634e487b7160e01b84526022600452602484fd5b93607f16936117b1565b90815461186f8161177f565b9261187d604051948561175d565b818452602084019060005260206000206000915b83831061189e5750505050565b6001602081926118ad85611797565b815201920192019190611891565b604051815480825290929183906118db6020830191600052602060002090565b926000905b806007830110611a23576117e4945491818110611a04575b8181106119e5575b8181106119c6575b8181106119a7575b818110611988575b818110611969575b81811061194b575b10611936575b50038361175d565b6001600160e01b03191681526020013861192e565b602083811b6001600160e01b03191685529093600191019301611928565b604083901b6001600160e01b0319168452926001906020019301611920565b606083901b6001600160e01b0319168452926001906020019301611918565b608083901b6001600160e01b0319168452926001906020019301611910565b60a083901b6001600160e01b0319168452926001906020019301611908565b60c083901b6001600160e01b0319168452926001906020019301611900565b6001600160e01b031960e084901b1684529260019060200193016118f8565b916008919350610100600191611ad28754611a49838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b0194019201859293916118e0565b6040513d6000823e3d90fd5b6020818303126101a55780519067ffffffffffffffff82116101a5570181601f820112156101a5576020815191019067ffffffffffffffff81116110125760405192611b42601f8301601f19166020018561175d565b818452818301116101a5576112c491602084019061030f565b611b6d60409283835283830190610332565b906020818303910152601081526f0b989e5d1958dbd9194b9bd89a9958dd60821b60208201520190565b6001600160a01b0390911681526040602082018190526112c492910190610332565b908160209103126101a5575190565b60085460ff168015611bd75790565b50604051630667f9d760e41b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190526519985a5b195960d21b6024830152602090829060449082905afa908115610f3557600091611c31575b50151590565b611c53915060203d602011611c59575b611c4b818361175d565b810190611bb9565b38611c2b565b503d611c41565b90611ca560209160405192839181611c81818501978881519384920161030f565b8301611c958251809385808501910161030f565b010103601f19810183528261175d565b51906000f09081156101a55756fe60806040526102c68038038061001481610188565b928339810190604081830312610183578051906001600160a01b03821690818303610183576020810151906001600160401b038211610183570183601f820112156101835780519061006d610068836101c3565b610188565b94828652602083830101116101835760005b82811061016e575050602060009185010152813b1561015a577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a28151156101415760008083602061012995519101845af43d15610139573d91610119610068846101c3565b9283523d6000602085013e6101de565b505b604051608690816102408239f35b6060916101de565b5050341561012b5763b398979f60e01b60005260046000fd5b634c9c8ce360e01b60005260045260246000fd5b8060208092840101518282890101520161007f565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176101ad57604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b0381116101ad57601f01601f191660200190565b9061020457508051156101f357805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580610236575b610215575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b1561020d56fe60806040527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5460009081906001600160a01b0316368280378136915af43d6000803e15604b573d6000f35b3d6000fdfea264697066735822122050f22a01d073962c556a114f7af7ed5d52928a56307a2cc1329dcdbb635986ec64736f6c634300081a003360a0806040523460295730608052611e83908161002f8239608051818181610eff0152610fd00152f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a71461130e57508063116191b6146112e7578063248a9ca3146112c0578063252f07bf1461129a5780632f2ff15d1461126857806336568abe146112235780633f4ba83a146111a15780634f1ef28614610f5457806352d1902d14610eec578063570618e114610ec35780635b11259114610e9a5780635c975abb14610e6a5780638456cb5914610df557806385f438c114610dcc57806391d1485414610d76578063950837aa14610caa57806399a3c35614610ad45780639a59042714610a685780639b19251a146109ea578063a217fddf146109ce578063ad08185214610823578063ad3cb1cc146107a9578063c0c53b8b1461057f578063d547741f14610544578063d936547e14610505578063d9caed1214610442578063e609055e146101e8578063e63ab1e9146101ad5763eab103df1461016057600080fd5b346101aa5760203660031901126101aa576004358015158091036101a657610186611570565b6002805460ff60a01b191660a09290921b60ff60a01b1691909117905580f35b5080fd5b80fd5b50346101aa57806003193601126101aa5760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346101aa5760803660031901126101aa5760043567ffffffffffffffff81116101a65761021a90369060040161140d565b6024356001600160a01b03811692919083810361043e5760643567ffffffffffffffff811161043a5761025190369060040161140d565b9061025a611b74565b610262611bb0565b60ff60025460a01c161561042b57858752600160205260ff6040882054161561041c576040516370a0823160e01b8152306004820152926020846024818a5afa9384156103db5788946103e6575b506102ee90604051906323b872dd60e01b60208301523360248301523060448301526044356064830152606482526102e96084836113b9565b611c17565b6040516370a0823160e01b8152306004820152926020846024818a5afa9384156103db5788946103a2575b50830392831161038e5791610376917f1dafa057cc5c3bccb5ad974129a2bccd3c74002d9dfd7062404ba9523b18d6ae95949361036360405196879660608852606088019161145c565b926020860152848303604086015261145c565b0390a26001600080516020611dee8339815191525580f35b634e487b7160e01b87526011600452602487fd5b9093506020813d6020116103d3575b816103be602093836113b9565b810103126103ce57519238610319565b600080fd5b3d91506103b1565b6040513d8a823e3d90fd5b9093506020813d602011610414575b81610402602093836113b9565b810103126103ce5751926102ee6102b0565b3d91506103f5565b630b094f2760e31b8752600487fd5b6373cba66360e01b8752600487fd5b8580fd5b8480fd5b50346101aa5760603660031901126101aa5761045c611379565b610464611363565b60443590610470611b74565b6104786115c3565b610480611bb0565b6001600160a01b03168084526001602052604084205490929060ff16156104f6576020816104d0847fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb9487611bda565b6040519384526001600160a01b031692a36001600080516020611dee8339815191525580f35b630b094f2760e31b8452600484fd5b50346101aa5760203660031901126101aa5760209060ff906040906001600160a01b03610530611379565b168152600184522054166040519015158152f35b50346101aa5760403660031901126101aa5761057b600435610564611363565b906105766105718261143b565b61165f565b611ad4565b5080f35b50346101aa5760603660031901126101aa57610599611379565b6105a1611363565b6105a961138f565b600080516020611e2e833981519152549260ff8460401c16159367ffffffffffffffff8116801590816107a1575b6001149081610797575b15908161078e575b5061077f5767ffffffffffffffff198116600117600080516020611e2e8339815191525584610752575b506001600160a01b031680158015610741575b8015610730575b610721576106bf92916106b991610642611c7e565b61064a611c7e565b610652611c7e565b6001600080516020611dee8339815191525561066c611c7e565b610674611c7e565b86546001600160a01b0319908116919091178755600280549091166001600160a01b0385161790556106a5816117bb565b506106af81611855565b506106b9836116a9565b50611735565b506106c75780f35b68ff000000000000000019600080516020611e2e8339815191525416600080516020611e2e833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b63d92e233d60e01b8552600485fd5b506001600160a01b0382161561062d565b506001600160a01b03831615610626565b68ffffffffffffffffff19166801000000000000000117600080516020611e2e8339815191525538610613565b63f92ee8a960e01b8652600486fd5b905015386105e9565b303b1591506105e1565b8691506105d7565b50346101aa57806003193601126101aa5760408051916107c982846113b9565b60058352640352e302e360dc1b6020840152815192839160208352815191826020850152815b83811061080c575050828201840152601f01601f19168101030190f35b6020828201810151888301880152879550016107ef565b50346101aa57366003190160a081126101a6576020136101aa57610845611363565b61084d61138f565b906064359160843567ffffffffffffffff811161043e5761087290369060040161140d565b909161087c611b74565b6108846115c3565b61088c611bb0565b6001600160a01b03168086526001602052604086205490949060ff16156109bf5785546108c49082906001600160a01b031687611bda565b85546001600160a01b0316938690853b156101a657604051633ddf4d7d60e11b815290829082906001600160a01b036108fb611379565b166004830152602482018a90526001600160a01b0316604482018190526064820186905260a060848301529781838161093860a482018b8d61145c565b03925af180156109b45761099f575b50506109877f6478cbb6e28c0823c691dfd74c01c985634faddd4c401b990fe4ec26277ea8d593604051938493845260406020850152604084019161145c565b0390a36001600080516020611dee8339815191525580f35b816109a9916113b9565b61043a578538610947565b6040513d84823e3d90fd5b630b094f2760e31b8652600486fd5b50346101aa57806003193601126101aa57602090604051908152f35b50346101aa5760203660031901126101aa57610a04611379565b610a0c611611565b6001600160a01b03168015610a5957808252600160205260408220600160ff198254161790557faab7954e9d246b167ef88aeddad35209ca2489d95a8aeb59e288d9b19fae5a548280a280f35b63d92e233d60e01b8252600482fd5b50346101aa5760203660031901126101aa57610a82611379565b610a8a611611565b6001600160a01b03168015610a5957808252600160205260408220805460ff191690557f51085ddf9ebdded84b76e829eb58c4078e4b5bdf97d9a94723f336039da467918280a280f35b50346101aa5760a03660031901126101aa57610aee611379565b610af6611363565b9060443560643567ffffffffffffffff811161043e57610b1a90369060040161140d565b9190936084359067ffffffffffffffff8211610ca657608082600401926003199036030112610ca657610b4b611b74565b610b536115c3565b610b5b611bb0565b6001600160a01b03168087526001602052604087205490959060ff161561041c578654610b939084906001600160a01b031688611bda565b86546001600160a01b031694853b15610ca25787604051809263aa0c0fc160e01b825289600483015260018060a01b03169788602483015286604483015260a06064830152818381610bfe610bec60a483018d8b61145c565b8281036003190160848401528a61147d565b03925af180156103db57610c60575b507f7b53ec10a80164e60591c43d9c222e9354886981b880a3fba19c9ceb77fb9721939291610c5261098792604051958695865260606020870152606086019161145c565b90838203604085015261147d565b91610c5288610c96610987949a7f7b53ec10a80164e60591c43d9c222e9354886981b880a3fba19c9ceb77fb97219897966113b9565b98925050919293610c0d565b8780fd5b8680fd5b50346101aa5760203660031901126101aa57610cc4611379565b610ccc611570565b6001600160a01b038116908115610d6757600254610d179190610cf7906001600160a01b03166119a8565b50600254610d0d906001600160a01b0316611a3e565b506106b9816116a9565b50600254604080516001600160a01b0383168152602081018490527f4d3470c839d3c4dd664eec934b920c12fe0966e3185103dd40149496815df2b69190a16001600160a01b0319161760025580f35b63d92e233d60e01b8352600483fd5b50346101aa5760403660031901126101aa5760ff6040602092610d97611363565b6004358252600080516020611d8e83398151915285528282206001600160a01b03909116825284522054604051911615158152f35b50346101aa57806003193601126101aa576020604051600080516020611d6e8339815191528152f35b50346101aa57806003193601126101aa57610e0e6114fe565b610e16611bb0565b600160ff19600080516020611dce833981519152541617600080516020611dce833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101aa57806003193601126101aa57602060ff600080516020611dce83398151915254166040519015158152f35b50346101aa57806003193601126101aa576002546040516001600160a01b039091168152602090f35b50346101aa57806003193601126101aa576020604051600080516020611d4e8339815191528152f35b50346101aa57806003193601126101aa577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610f45576020604051600080516020611d2e8339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101aa57610f69611379565b6024359067ffffffffffffffff821161119d573660238301121561119d5781600401359083610f97836113f1565b93610fa560405195866113b9565b8385526020850193366024828401011161119d57806024602093018637850101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630811490811561117a575b5061116b57611008611570565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181611137575b5061104b57634c9c8ce360e01b86526004859052602486fd5b9384600080516020611d2e8339815191528796036111255750823b1561111357600080516020611d2e83398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a28051156110f85761057b9382915190845af43d156110f0573d916110d4836113f1565b926110e260405194856113b9565b83523d85602085013e611cac565b606091611cac565b50505050346111045780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011611163575b81611153602093836113b9565b81010312610ca657519038611032565b3d9150611146565b63703e46dd60e11b8452600484fd5b600080516020611d2e833981519152546001600160a01b03161415905038610ffb565b8280fd5b50346101aa57806003193601126101aa576111ba6114fe565b600080516020611dce8339815191525460ff8116156112145760ff1916600080516020611dce833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346101aa5760403660031901126101aa5761123d611363565b336001600160a01b038216036112595761057b90600435611ad4565b63334bd91960e11b8252600482fd5b50346101aa5760403660031901126101aa5761057b600435611288611363565b906112956105718261143b565b611911565b50346101aa57806003193601126101aa57602060ff60025460a01c166040519015158152f35b50346101aa5760203660031901126101aa5760206112df60043561143b565b604051908152f35b50346101aa57806003193601126101aa57546040516001600160a01b039091168152602090f35b9050346101a65760203660031901126101a65760043563ffffffff60e01b811680910361119d5760209250637965db0b60e01b8114908115611352575b5015158152f35b6301ffc9a760e01b1490503861134b565b602435906001600160a01b03821682036103ce57565b600435906001600160a01b03821682036103ce57565b604435906001600160a01b03821682036103ce57565b35906001600160a01b03821682036103ce57565b90601f8019910116810190811067ffffffffffffffff8211176113db57604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116113db57601f01601f191660200190565b9181601f840112156103ce5782359167ffffffffffffffff83116103ce57602083818601950101116103ce57565b600052600080516020611d8e83398151915260205260016040600020015490565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160a01b0361148e826113a5565b1682526001600160a01b036114a5602083016113a5565b166020830152604081013560408301526060810135601e19823603018112156103ce57016020813591019067ffffffffffffffff81116103ce5780360382136103ce576080838160606114fb960152019161145c565b90565b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561153757565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16156115a957565b63e2517d3f60e01b60005233600452600060245260446000fd5b336000908152600080516020611e0e833981519152602052604090205460ff16156115ea57565b63e2517d3f60e01b60005233600452600080516020611d6e83398151915260245260446000fd5b336000908152600080516020611dae833981519152602052604090205460ff161561163857565b63e2517d3f60e01b60005233600452600080516020611d4e83398151915260245260446000fd5b6000818152600080516020611d8e8339815191526020908152604080832033845290915290205460ff16156116915750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b0381166000908152600080516020611e0e833981519152602052604090205460ff1661172f576001600160a01b03166000818152600080516020611e0e83398151915260205260408120805460ff19166001179055339190600080516020611d6e83398151915290600080516020611d0e8339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020611dae833981519152602052604090205460ff1661172f576001600160a01b03166000818152600080516020611dae83398151915260205260408120805460ff19166001179055339190600080516020611d4e83398151915290600080516020611d0e8339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1661172f576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff19166001179055339190600080516020611d0e8339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1661172f576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a90600080516020611d0e8339815191529080a4600190565b6000818152600080516020611d8e833981519152602090815260408083206001600160a01b038616845290915290205460ff166119a1576000818152600080516020611d8e833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff1916600117905533929190600080516020611d0e8339815191529080a4600190565b5050600090565b6001600160a01b0381166000908152600080516020611e0e833981519152602052604090205460ff161561172f576001600160a01b03166000818152600080516020611e0e83398151915260205260408120805460ff19169055339190600080516020611d6e833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381166000908152600080516020611dae833981519152602052604090205460ff161561172f576001600160a01b03166000818152600080516020611dae83398151915260205260408120805460ff19169055339190600080516020611d4e833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020611d8e833981519152602090815260408083206001600160a01b038616845290915290205460ff16156119a1576000818152600080516020611d8e833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6002600080516020611dee8339815191525414611b9f576002600080516020611dee83398151915255565b633ee5aeb560e01b60005260046000fd5b60ff600080516020611dce8339815191525416611bc957565b63d93c066560e01b60005260046000fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152611c15916102e96064836113b9565b565b906000602091828151910182855af115611c72576000513d611c6957506001600160a01b0381163b155b611c485750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b60011415611c41565b6040513d6000823e3d90fd5b60ff600080516020611e2e8339815191525460401c1615611c9b57565b631afcd79f60e31b60005260046000fd5b90611cd25750805115611cc157805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611d04575b611ce3575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15611cdb56fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8619cecd8b9e095ab43867f5b69d492180450fe862e6b50bfbfb24b75dd84c8a10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009e55e7b9c223644eee376bcbcf651816b24106427c658526e048949da61b2c08cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00395f4e35a18c2b5e556b3b2ff855307e76c0b3cc1ca71e19a70e83037e08e7b3f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220702fb670414d490d4bc4c9faff686ceb6c14d575e3941d5f000714bc96bea29764736f6c634300081a003360a080604052346100ea57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b604051612ac290816100f082396080518181816112a801526113780152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880610054565b63f92ee8a960e01b60005260046000fd5b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a7146119be5750806310188aef1461194c578063102614b01461184c5780631becceb41461176157806321e093b114611738578063248a9ca3146117115780632f2ff15d146116df57806336568abe1461169a57806338e22527146115a05780633f4ba83a1461151e5780634f1ef286146112fd57806352d1902d1461129557806357bec62f1461126c5780635b112591146112435780635c975abb146112135780635d62c860146111d8578063726ac97c14611080578063744b9b8b14610f7c5780637bbe9afa14610b335780638456cb5914610abe57806391d1485414610a65578063950837aa146109c8578063a217fddf146109ac578063a2ba19341461098f578063a783c78914610966578063aa0c0fc114610815578063ad3cb1cc146107c8578063ae7a3a6f1461074c578063c0c53b8b14610542578063cb7ba8e5146103d2578063d09e3b7814610236578063d547741f146101fb578063dda79b75146101d45763e63ab1e91461019757600080fd5b346101d157806003193601126101d15760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b80fd5b50346101d157806003193601126101d157546040516001600160a01b039091168152602090f35b50346101d15760403660031901126101d15761023260043561021b611a44565b9061022d61022882611cb6565b611f46565b612529565b5080f35b50346101d15760a03660031901126101d157610250611a13565b60243561025b611a2e565b916064356001600160401b0381116103ce5761027b903690600401611a6e565b608435946001600160401b0386116103ca57856004019360a060031988360301126103c6576102a86122c5565b85156103b7576001600160a01b03169586156103a857606481016104006102da6102d28389611b9f565b905086611c93565b1161037a575060840135621e848081116103615750610357927fa795d4377323e4c2d4c346b8050a7dd504c4043be8884c81b8d9690706c8388f949282610325886103499533612307565b60405197885260018060a01b03166020880152608060408801526080870191611c02565b908482036060860152611c23565b918033930390a380f35b637643390f60e11b8852600452621e8480602452604487fd5b886103938561038b6044948a611b9f565b919050611c93565b634fe7bc4760e11b8252600452610400602452fd5b63d92e233d60e01b8852600488fd5b63951e19ed60e01b8852600488fd5b8780fd5b8680fd5b8480fd5b5060603660031901126101d1576103e7611a13565b906024356001600160401b03811161053e57610407903690600401611a6e565b604493919335906001600160401b03821161053a5760808260040192600319903603011261053a576104376125c9565b61043f611e14565b6104476122c5565b6001600160a01b03831692831561052b57848080809334905af1610469611d07565b501561051c578394833b156103ce57604051636481451b60e11b81526020600482015285818061049c6024820188611d37565b038183895af19081156105115786916104fc575b50506104e47fde7603a6ed5d07c9f43597ccfe9043d15b66d3284f0de321f5cdf56329e6e035936040519384933485611d95565b0390a36001600080516020612a2d8339815191525580f35b8161050691611b4d565b6103ce5784386104b0565b6040513d88823e3d90fd5b632b3f6d1160e21b8452600484fd5b63d92e233d60e01b8552600485fd5b8380fd5b5080fd5b50346101d15760603660031901126101d15761055c611a13565b610564611a44565b61056c611a2e565b600080516020612a6d833981519152549260ff8460401c1615936001600160401b03811680159081610744575b600114908161073a575b159081610731575b506107225767ffffffffffffffff198116600117600080516020612a6d83398151915255846106f5575b506001600160a01b03811691821580156106e4575b6106d5579061063f610645926105fe6128dd565b6106066128dd565b61060e6128dd565b6001600080516020612a2d833981519152556106286128dd565b6106306128dd565b610639816120d8565b50612172565b50612052565b506001600160601b0360a01b600154161760015560018060a01b03166001600160601b0360a01b600354161760035561067b5780f35b68ff000000000000000019600080516020612a6d8339815191525416600080516020612a6d833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b63d92e233d60e01b8652600486fd5b506001600160a01b038416156105ea565b68ffffffffffffffffff19166801000000000000000117600080516020612a6d83398151915255386105d5565b63f92ee8a960e01b8652600486fd5b905015386105ab565b303b1591506105a3565b869150610599565b50346101d15760203660031901126101d157610766611a13565b61076e611dc1565b6001600160a01b0381169081156107b95782546001600160a01b03166107aa5761079790611f90565b5081546001600160a01b03191617815580f35b631666fe6f60e31b8352600483fd5b63d92e233d60e01b8352600483fd5b50346101d157806003193601126101d157506108116040516107eb604082611b4d565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611b28565b0390f35b50346101d15760a03660031901126101d15761082f611a13565b610837611a44565b906044356064356001600160401b0381116103ce5761085a903690600401611a6e565b91608435926001600160401b0384116103ca576080846004019460031990360301126103ca576108886125c9565b610890611ed4565b6108986122c5565b8115610957576001600160a01b0386169485156103a8576001600160a01b0316956108c5908390886127fd565b843b156103ca57604051636481451b60e11b81526020600482015287908181806108f2602482018a611d37565b0381838b5af1801561094c57610937575b50507fde7603a6ed5d07c9f43597ccfe9043d15b66d3284f0de321f5cdf56329e6e035936104e49160405194859485611d95565b8161094191611b4d565b6103ca578638610903565b6040513d84823e3d90fd5b63951e19ed60e01b8752600487fd5b50346101d157806003193601126101d157602060405160008051602061296d8339815191528152f35b50346101d157806003193601126101d15760206040516104008152f35b50346101d157806003193601126101d157602090604051908152f35b50346101d15760203660031901126101d1576109e2611a13565b6109ea611dc1565b6001600160a01b0381169081156107b957600154610a15919061063f906001600160a01b0316612493565b50600154604080516001600160a01b0383168152602081018490527f3a7b8d6372645f474fe60c115a2ef21421306a3ed4664fa0023c461413c085799190a16001600160a01b0319161760015580f35b50346101d15760403660031901126101d1576040610a81611a44565b9160043581526000805160206129ed833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346101d157806003193601126101d157610ad7611e62565b610adf6122c5565b600160ff19600080516020612a0d833981519152541617600080516020612a0d833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101d157366003190160a0811261053e576020136101d157610b55611a44565b610b5d611a2e565b90606435906084356001600160401b0381116103ce57610b81903690600401611a6e565b929091610b8c6125c9565b610b94611ed4565b610b9c6122c5565b8115610f6d576001600160a01b038516948515610f5e57610bbd8183612786565b15610f1c5760405163095ea7b360e01b602082019081526001600160a01b0383166024830152604480830186905282528891829190610bfd606482611b4d565b519082865af1610c0b611d07565b9015610f3d57805180610efe575b50610c489190506001600160a01b03610c30611cd7565b16610eed57610c408686836126ee565b505b82612786565b15610ecd576040516370a0823160e01b81523060048201526001600160a01b03919091169390602081602481885afa908115610d8d578791610e9b575b5080610cae575b50906104e46000805160206129cd833981519152939260405193849384611ced565b6003546001600160a01b03168503610df95760025460405163095ea7b360e01b81526001600160a01b039091166004820152602481018290526020816044818b8a5af1908115610dee578891610dbf575b5015610d9c576002548791906001600160a01b0316803b15610d985760248392604051948593849263b6b55f2560e01b845260048401525af18015610d8d57610d63575b50906104e46000805160206129cd83398151915293925b91929350610c8c565b86610d836000805160206129cd833981519152959493986104e493611b4d565b9691929350610d43565b6040513d89823e3d90fd5b8280fd5b60025463482b72c160e11b885260048690526001600160a01b0316602452604487fd5b610de1915060203d602011610de7575b610dd98183611b4d565b8101906122ef565b38610cff565b503d610dcf565b6040513d8a823e3d90fd5b8654604051636c9b2a3f60e11b8152600481018790526001600160a01b0390911690602081602481855afa908115610e90578991610e71575b5015610e5d5791610e586104e4926000805160206129cd833981519152969594886127fd565b610d5a565b631387a34960e01b88526004869052602488fd5b610e8a915060203d602011610de757610dd98183611b4d565b38610e32565b6040513d8b823e3d90fd5b90506020813d602011610ec5575b81610eb660209383611b4d565b810103126103ca575138610c85565b3d9150610ea9565b63482b72c160e11b86526001600160a01b03166004526024849052604485fd5b610ef8868683612605565b50610c42565b90602080610f109383010191016122ef565b15610f1c573880610c19565b63482b72c160e11b87526001600160a01b0382166004526024869052604487fd5b63482b72c160e11b88526001600160a01b0383166004526024879052604488fd5b63d92e233d60e01b8752600487fd5b63951e19ed60e01b8652600486fd5b50610f8636611a9b565b909192610f916122c5565b3415611071576001600160a01b031692831561052b5760608201610400610fbb6102d28386611b9f565b1161106057506080820135621e848081116110475750848080803460018060a01b03600154165af1610feb611d07565b5015611038577fa795d4377323e4c2d4c346b8050a7dd504c4043be8884c81b8d9690706c8388f916103496103579260405195348752886020880152608060408801526080870191611c02565b6379cacff160e01b8552600485fd5b637643390f60e11b8652600452621e8480602452604485fd5b856103938561038b60449487611b9f565b633b38932f60e11b8552600485fd5b5060403660031901126101d157611095611a13565b602435906001600160401b038211610d9857816004019060a0600319843603011261053a576110c26122c5565b34156111c9576001600160a01b03169182156111ba57606481016104006110e98285611b9f565b905011611197575060840135621e8480811161117e5750828080803460018060a01b03600154165af161111a611d07565b501561116f577fc6f891b65320c682b217616a62b51f218fee95d5f0ba83e758ef9ab4ee8e975c610357604051923484528560208501526080604085015285608085015260a0606085015260a0840190611c23565b6379cacff160e01b8352600483fd5b637643390f60e11b8452600452621e8480602452604483fd5b846111a460449285611b9f565b634fe7bc4760e11b835260045250610400602452fd5b63d92e233d60e01b8452600484fd5b633b38932f60e11b8452600484fd5b50346101d157806003193601126101d15760206040517f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b98152f35b50346101d157806003193601126101d157602060ff600080516020612a0d83398151915254166040519015158152f35b50346101d157806003193601126101d1576001546040516001600160a01b039091168152602090f35b50346101d157806003193601126101d1576002546040516001600160a01b039091168152602090f35b50346101d157806003193601126101d1577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036112ee5760206040516000805160206129ad8339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101d157611312611a13565b602435906001600160401b038211610d985736602383011215610d98578160040135908361133f83611b84565b9361134d6040519586611b4d565b83855260208501933660248284010111610d9857806024602093018637850101526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163081149081156114fb575b506114ec576113b0611dc1565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa8691816114b8575b506113f357634c9c8ce360e01b86526004859052602486fd5b93846000805160206129ad8339815191528796036114a65750823b15611494576000805160206129ad83398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115611479576102329382915190845af4611473611d07565b9161290b565b50505050346114855780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d6020116114e4575b816114d460209383611b4d565b810103126103ca575190386113da565b3d91506114c7565b63703e46dd60e11b8452600484fd5b6000805160206129ad833981519152546001600160a01b031614159050386113a3565b50346101d157806003193601126101d157611537611e62565b600080516020612a0d8339815191525460ff8116156115915760ff1916600080516020612a0d833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b5036600319016060811261053e576020136101d1576115bd611a44565b6044356001600160401b038111610d98576115dc903690600401611a6e565b6115e79291926125c9565b6115ef611e14565b6115f76122c5565b6001600160a01b03821691821561052b5761081194507fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f919081856001600160a01b03611642611cd7565b1661168b57611650926126ee565b935b6116626040519283923484611ced565b0390a26001600080516020612a2d83398151915255604051918291602083526020830190611b28565b61169492612605565b93611652565b50346101d15760403660031901126101d1576116b4611a44565b336001600160a01b038216036116d05761023290600435612529565b63334bd91960e11b8252600482fd5b50346101d15760403660031901126101d1576102326004356116ff611a44565b9061170c61022882611cb6565b61222e565b50346101d15760203660031901126101d1576020611730600435611cb6565b604051908152f35b50346101d157806003193601126101d1576003546040516001600160a01b039091168152602090f35b50346101d15761177036611a9b565b91909261177b6122c5565b6020830135801515810361184857611839576001600160a01b031692831561052b576117b56117ad6060850185611b9f565b905082611c93565b610400811161182157506080830135621e848081116110475750907fd34634f30f94a646fdf4ce7078f38fc5fa0d3f0b193658facea4e3e43330d9749161181b61180c604051938493604085526040850191611c02565b82810360208401523395611c23565b0390a380f35b634fe7bc4760e11b8652600452610400602452604485fd5b630cda5ff960e11b8552600485fd5b8580fd5b50346101d15760803660031901126101d157611866611a13565b602435611871611a2e565b91606435926001600160401b0384116103ce57836004019160a060031986360301126118485761189f6122c5565b8315610f6d576001600160a01b03169384156106d557606481016104006118c68286611b9f565b90501161193f575060840135621e8480811161104757507fc6f891b65320c682b217616a62b51f218fee95d5f0ba83e758ef9ab4ee8e975c918161190e856103579433612307565b60405194855260018060a01b031660208501526080604085015285608085015260a0606085015260a0840190611c23565b866111a460449286611b9f565b50346101d15760203660031901126101d157611966611a13565b61196e611dc1565b6001600160a01b0381169081156107b9576002546001600160a01b03166119af5761199890611f90565b506001600160601b0360a01b600254161760025580f35b630646e00b60e11b8352600483fd5b90503461053e57602036600319011261053e5760043563ffffffff60e01b8116809103610d985760209250637965db0b60e01b8114908115611a02575b5015158152f35b6301ffc9a760e01b149050386119fb565b600435906001600160a01b0382168203611a2957565b600080fd5b604435906001600160a01b0382168203611a2957565b602435906001600160a01b0382168203611a2957565b35906001600160a01b0382168203611a2957565b9181601f84011215611a29578235916001600160401b038311611a295760208381860195010111611a2957565b906060600319830112611a29576004356001600160a01b0381168103611a2957916024356001600160401b038111611a295781611ada91600401611a6e565b92909291604435906001600160401b038211611a295760a0908290036003190112611a295760040190565b60005b838110611b185750506000910152565b8181015183820152602001611b08565b90602091611b4181518092818552858086019101611b05565b601f01601f1916010190565b90601f801991011681019081106001600160401b03821117611b6e57604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b038111611b6e57601f01601f191660200190565b903590601e1981360301821215611a2957018035906001600160401b038211611a2957602001918136038313611a2957565b9035601e1982360301811215611a295701602081359101916001600160401b038211611a29578136038313611a2957565b908060209392818452848401376000828201840152601f01601f1916010190565b906001600160a01b03611c3583611a5a565b1681526020820135801515809103611a295760208201526001600160a01b03611c6060408401611a5a565b166040820152608080611c8a611c796060860186611bd1565b60a0606087015260a0860191611c02565b93013591015290565b91908201809211611ca057565b634e487b7160e01b600052601160045260246000fd5b6000526000805160206129ed83398151915260205260016040600020015490565b6004356001600160a01b0381168103611a295790565b604090611d04949281528160208201520191611c02565b90565b3d15611d32573d90611d1882611b84565b91611d266040519384611b4d565b82523d6000602084013e565b606090565b611d049190608090611d85906001600160a01b03611d5482611a5a565b1684526001600160a01b03611d6b60208301611a5a565b166020850152604081013560408501526060810190611bd1565b9190928160608201520191611c02565b9291611d049492611db3928552606060208601526060850191611c02565b916040818403910152611d37565b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1615611dfa57565b63e2517d3f60e01b60005233600452600060245260446000fd5b336000908152600080516020612a4d833981519152602052604090205460ff1615611e3b57565b63e2517d3f60e01b6000523360045260008051602061296d83398151915260245260446000fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1615611e9b57565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527f8e1abba0e730025cbab32adfc4f51c1ad3a74360c4b2cfb4780a6c5f316e0509602052604090205460ff1615611f0d57565b63e2517d3f60e01b600052336004527f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b960245260446000fd5b60008181526000805160206129ed8339815191526020908152604080832033845290915290205460ff1615611f785750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b03811660009081527f8e1abba0e730025cbab32adfc4f51c1ad3a74360c4b2cfb4780a6c5f316e0509602052604090205460ff1661204c576001600160a01b031660008181527f8e1abba0e730025cbab32adfc4f51c1ad3a74360c4b2cfb4780a6c5f316e050960205260408120805460ff191660011790553391907f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b99060008051602061298d8339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020612a4d833981519152602052604090205460ff1661204c576001600160a01b03166000818152600080516020612a4d83398151915260205260408120805460ff1916600117905533919060008051602061296d8339815191529060008051602061298d8339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1661204c576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff1916600117905533919060008051602061298d8339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1661204c576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a9060008051602061298d8339815191529080a4600190565b60008181526000805160206129ed833981519152602090815260408083206001600160a01b038616845290915290205460ff166122be5760008181526000805160206129ed833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff191660011790553392919060008051602061298d8339815191529080a4600190565b5050600090565b60ff600080516020612a0d83398151915254166122de57565b63d93c066560e01b60005260046000fd5b90816020910312611a2957518015158103611a295790565b600354600093926001600160a01b039081169291168203612411578261232f9130908461283e565b60025460405163095ea7b360e01b81526001600160a01b0390911660048201526024810183905260208160448187865af19081156124065784916123e7575b50156123c357506002546001600160a01b031690813b15610d9857829160248392604051948593849263b6b55f2560e01b845260048401525af1801561094c576123b6575050565b816123c091611b4d565b50565b60025463482b72c160e11b84526004919091526001600160a01b0316602452604482fd5b612400915060203d602011610de757610dd98183611b4d565b3861236e565b6040513d86823e3d90fd5b8354604051636c9b2a3f60e11b8152600481018490529295946001600160a01b0390911692602081602481875afa90811561094c578291612474575b5015612460575061245e939461283e565b565b631387a34960e01b81526004869052602490fd5b61248d915060203d602011610de757610dd98183611b4d565b3861244d565b6001600160a01b0381166000908152600080516020612a4d833981519152602052604090205460ff161561204c576001600160a01b03166000818152600080516020612a4d83398151915260205260408120805460ff1916905533919060008051602061296d833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b60008181526000805160206129ed833981519152602090815260408083206001600160a01b038616845290915290205460ff16156122be5760008181526000805160206129ed833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6002600080516020612a2d83398151915254146125f4576002600080516020612a2d83398151915255565b633ee5aeb560e01b60005260046000fd5b6040516319db301560e21b815292916004356001600160a01b038116929190839003611a29578461264d81949260009683946004850152604060248501526044840191611c02565b039134906001600160a01b03165af19081156126e25760009161266e575090565b903d8082843e61267e8184611b4d565b82019160208184031261053e578051906001600160401b038211610d98570182601f8201121561053e578051916126b483611b84565b936126c26040519586611b4d565b838552602084840101116101d1575090611d049160208085019101611b05565b6040513d6000823e3d90fd5b906004831015612736575b908260009392849360405192839283378101848152039134905af161271c611d07565b90156127255790565b632b3f6d1160e21b60005260046000fd5b9081356001600160e01b0319166319db301560e21b811461277557636481451b60e11b1461276457906126f9565b6379a2cd4b60e11b60005260046000fd5b63ed69977560e01b60005260046000fd5b60405163095ea7b360e01b602082019081526001600160a01b0390931660248201526000604480830182905282529283929183906127c5606482611b4d565b51925af16127d1611d07565b90156127f757805190816127e6575050600190565b602080611d049383010191016122ef565b50600190565b60405163a9059cbb60e01b60208201526001600160a01b0392909216602483015260448083019390935291815261245e91612839606483611b4d565b612882565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815261245e91612839608483611b4d565b906000602091828151910182855af1156126e2576000513d6128d457506001600160a01b0381163b155b6128b35750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b600114156128ac565b60ff600080516020612a6d8339815191525460401c16156128fa57565b631afcd79f60e31b60005260046000fd5b90612931575080511561292057805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580612963575b612942575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b1561293a56fe0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b738202dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f007bdc20c26beb8eedd348733c28a5c4c2f7f7f1183cba8898195258fcdca273bcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212204c1dd3ca6d65db092fb8b1573967e48498ff429f5c5e4f4521adcd2c1b42bd0a64736f6c634300081a003360a080604052346100ea57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b604051611a9390816100f082396080518181816109a70152610a780152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880610054565b63f92ee8a960e01b60005260046000fd5b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a714610f7957508063116191b614610f5257806316b12bb614610d8e57806321e093b114610d65578063248a9ca314610d3e5780632f2ff15d14610d0c57806336568abe14610cc75780633f4ba83a14610c455780634f1ef286146109fc57806352d1902d146109945780635b1125911461096b5780635c975abb1461093b5780638456cb59146108c657806385f438c11461089d57806391d1485414610844578063950837aa14610782578063a217fddf14610766578063a783c7891461072b578063ad3cb1cc146106b1578063b6b55f251461064a578063d547741f1461060f578063e63ab1e9146105d4578063f3fef3a31461053c578063f61ff82a146103b25763f8c8765e1461013457600080fd5b346103af5760803660031901126103af5761014d610fce565b610155610fe9565b6044356001600160a01b0381168082036103ab57606435926001600160a01b0384168085036103a757600080516020611a3e833981519152549560ff8760401c16159667ffffffffffffffff81168015908161039f575b6001149081610395575b15908161038c575b5061037d5767ffffffffffffffff198116600117600080516020611a3e8339815191525587610350575b506101f16118ae565b6001600160a01b031690811590811561033e575b8115610335575b811561032c575b5061031d57916102bb9493916102b59361022b6118ae565b6102336118ae565b61023b6118ae565b60016000805160206119de833981519152556102556118ae565b61025d6118ae565b6001600160601b0360a01b89541617885560018060a01b03166001600160601b0360a01b60015416176001556001600160601b0360a01b60025416176002556102a58361147c565b506102af81611358565b506113e4565b50611516565b506102c35780f35b68ff000000000000000019600080516020611a3e8339815191525416600080516020611a3e833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b63d92e233d60e01b8752600487fd5b90501538610213565b8415915061020c565b6001600160a01b038416159150610205565b68ffffffffffffffffff19166801000000000000000117600080516020611a3e83398151915255386101e8565b63f92ee8a960e01b8952600489fd5b905015386101be565b303b1591506101b6565b8991506101ac565b8680fd5b8480fd5b80fd5b50346103af57366003190160808112610538576020136103af576103d4610fe9565b60443560643567ffffffffffffffff8111610534576103f7903690600401611013565b9091610401611158565b610409611194565b6104116112f1565b600154855461042e9183916001600160a01b03908116911661131b565b84546001546001600160a01b03918216958792909116863b1561053057604051633ddf4d7d60e11b81529183918391906001600160a01b0361046e610fce565b16600484015260248301526001600160a01b0316604482018190526064820186905260a06084830152978183816104a960a482018b8d611095565b03925af1801561052557610510575b50506104f87f23b9573b29ff81f01c7aa1968188e1cb7d5858b08582e111fdaf386d9ef9bd8d936040519384938452604060208501526040840191611095565b0390a260016000805160206119de8339815191525580f35b8161051a91611041565b6103ab5784386104b8565b6040513d84823e3d90fd5b8280fd5b8380fd5b5080fd5b50346103af5760403660031901126103af57610556610fce565b7f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5602060243592610585611158565b61058d611194565b6105956112f1565b6001546105ae90859083906001600160a01b031661131b565b6040519384526001600160a01b031692a260016000805160206119de8339815191525580f35b50346103af57806003193601126103af5760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346103af5760403660031901126103af5761064660043561062f610fe9565b9061064161063c82611137565b6112a7565b6117a7565b5080f35b50346103af5760203660031901126103af576106646112f1565b6001546040516323b872dd60e01b602082015233602482015230604482015260043560648083019190915281526106ae916001600160a01b03166106a9608483611041565b611847565b80f35b50346103af57806003193601126103af5760408051916106d18284611041565b60058352640352e302e360dc1b6020840152815192839160208352815191826020850152815b838110610714575050828201840152601f01601f19168101030190f35b6020828201810151888301880152879550016106f7565b50346103af57806003193601126103af5760206040517f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb8152f35b50346103af57806003193601126103af57602090604051908152f35b50346103af5760203660031901126103af5761079c610fce565b6107a4611254565b6001600160a01b038116908115610835576002546107e591906107cf906001600160a01b0316611669565b506002546102a5906001600160a01b03166116ff565b50600254604080516001600160a01b0383168152602081018490527f33770ab682353c17917ad3e667f05905fc8dda00671ef1ed33bef9bc8db0323e9190a16001600160a01b0319161760025580f35b63d92e233d60e01b8352600483fd5b50346103af5760403660031901126103af576040610860610fe9565b91600435815260008051602061199e833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346103af57806003193601126103af57602060405160008051602061197e8339815191528152f35b50346103af57806003193601126103af576108df6111e2565b6108e76112f1565b600160ff196000805160206119be8339815191525416176000805160206119be833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346103af57806003193601126103af57602060ff6000805160206119be83398151915254166040519015158152f35b50346103af57806003193601126103af576002546040516001600160a01b039091168152602090f35b50346103af57806003193601126103af577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036109ed57602060405160008051602061195e8339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126103af57610a11610fce565b6024359067ffffffffffffffff821161053057366023830112156105305781600401359083610a3f83611079565b93610a4d6040519586611041565b8385526020850193366024828401011161053057806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610c22575b50610c1357610ab0611254565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181610bdf575b50610af357634c9c8ce360e01b86526004859052602486fd5b938460008051602061195e833981519152879603610bcd5750823b15610bbb5760008051602061195e83398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115610ba0576106469382915190845af43d15610b98573d91610b7c83611079565b92610b8a6040519485611041565b83523d85602085013e6118dc565b6060916118dc565b5050505034610bac5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011610c0b575b81610bfb60209383611041565b810103126103a757519038610ada565b3d9150610bee565b63703e46dd60e11b8452600484fd5b60008051602061195e833981519152546001600160a01b03161415905038610aa3565b50346103af57806003193601126103af57610c5e6111e2565b6000805160206119be8339815191525460ff811615610cb85760ff19166000805160206119be833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346103af5760403660031901126103af57610ce1610fe9565b336001600160a01b03821603610cfd57610646906004356117a7565b63334bd91960e11b8252600482fd5b50346103af5760403660031901126103af57610646600435610d2c610fe9565b90610d3961063c82611137565b6115d2565b50346103af5760203660031901126103af576020610d5d600435611137565b604051908152f35b50346103af57806003193601126103af576001546040516001600160a01b039091168152602090f35b50346103af5760803660031901126103af57610da8610fce565b906024359060443567ffffffffffffffff811161053857610dcd903690600401611013565b909260643567ffffffffffffffff81116105345760808160040191600319903603011261053457610dfc611158565b610e04611194565b610e0c6112f1565b6001548454610e299184916001600160a01b03908116911661131b565b83546001546001600160a01b03918216979116873b15610f4e5794610e918798610ea39383809a996040519687958694859363aa0c0fc160e01b8552600485015260018060a01b03169c8d60248501528b604485015260a060648501528c60a4850191611095565b828103600319016084840152896110b6565b03925af18015610f4357610f05575b506104f890610ef77f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff09596976040519586958652606060208701526060860191611095565b9083820360408501526110b6565b90610ef786610f397f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff097986104f895611041565b9695505090610eb2565b6040513d88823e3d90fd5b8580fd5b50346103af57806003193601126103af57546040516001600160a01b039091168152602090f35b9050346105385760203660031901126105385760043563ffffffff60e01b81168091036105305760209250637965db0b60e01b8114908115610fbd575b5015158152f35b6301ffc9a760e01b14905038610fb6565b600435906001600160a01b0382168203610fe457565b600080fd5b602435906001600160a01b0382168203610fe457565b35906001600160a01b0382168203610fe457565b9181601f84011215610fe45782359167ffffffffffffffff8311610fe45760208381860195010111610fe457565b90601f8019910116810190811067ffffffffffffffff82111761106357604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161106357601f01601f191660200190565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160a01b036110c782610fff565b1682526001600160a01b036110de60208301610fff565b166020830152604081013560408301526060810135601e1982360301811215610fe457016020813591019067ffffffffffffffff8111610fe4578036038213610fe4576080838160606111349601520191611095565b90565b60005260008051602061199e83398151915260205260016040600020015490565b60026000805160206119de83398151915254146111835760026000805160206119de83398151915255565b633ee5aeb560e01b60005260046000fd5b3360009081526000805160206119fe833981519152602052604090205460ff16156111bb57565b63e2517d3f60e01b6000523360045260008051602061197e83398151915260245260446000fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561121b57565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff161561128d57565b63e2517d3f60e01b60005233600452600060245260446000fd5b600081815260008051602061199e8339815191526020908152604080832033845290915290205460ff16156112d95750565b63e2517d3f60e01b6000523360045260245260446000fd5b60ff6000805160206119be833981519152541661130a57565b63d93c066560e01b60005260046000fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152611356916106a9606483611041565b565b6001600160a01b03811660009081526000805160206119fe833981519152602052604090205460ff166113de576001600160a01b031660008181526000805160206119fe83398151915260205260408120805460ff1916600117905533919060008051602061197e8339815191529060008051602061193e8339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020611a1e833981519152602052604090205460ff166113de576001600160a01b03166000818152600080516020611a1e83398151915260205260408120805460ff191660011790553391907f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb9060008051602061193e8339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff166113de576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff1916600117905533919060008051602061193e8339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff166113de576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a9060008051602061193e8339815191529080a4600190565b600081815260008051602061199e833981519152602090815260408083206001600160a01b038616845290915290205460ff1661166257600081815260008051602061199e833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff191660011790553392919060008051602061193e8339815191529080a4600190565b5050600090565b6001600160a01b03811660009081526000805160206119fe833981519152602052604090205460ff16156113de576001600160a01b031660008181526000805160206119fe83398151915260205260408120805460ff1916905533919060008051602061197e833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381166000908152600080516020611a1e833981519152602052604090205460ff16156113de576001600160a01b03166000818152600080516020611a1e83398151915260205260408120805460ff191690553391907f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b600081815260008051602061199e833981519152602090815260408083206001600160a01b038616845290915290205460ff161561166257600081815260008051602061199e833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b906000602091828151910182855af1156118a2576000513d61189957506001600160a01b0381163b155b6118785750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b60011415611871565b6040513d6000823e3d90fd5b60ff600080516020611a3e8339815191525460401c16156118cb57565b631afcd79f60e31b60005260046000fd5b9061190257508051156118f157805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611934575b611913575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b1561190b56fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00395f4e35a18c2b5e556b3b2ff855307e76c0b3cc1ca71e19a70e83037e08e7b37bdc20c26beb8eedd348733c28a5c4c2f7f7f1183cba8898195258fcdca273bcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220ed0cd71c9a6ddd4cad0a58b7cc7680ac50fe49f9c40f7e8c74df8bd4dee8536b64736f6c634300081a003360a080604052346100ea57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b604051611bb490816100f08239608051818181610bb60152610c870152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880610054565b63f92ee8a960e01b60005260046000fd5b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a71461105057508063106e629014610fc4578063116191b614610f9d57806321e093b114610f74578063248a9ca314610f4d5780632f2ff15d14610f1b57806336568abe14610ed65780633f4ba83a14610e545780634f1ef28614610c0b57806352d1902d14610ba35780635b11259114610b7a5780635c975abb14610b4a5780636f8728ad146109895780636f8b44b0146108d75780636fb9a7af1461075b5780638456cb59146106e657806385f438c1146106bd57806391d1485414610664578063950837aa146105a2578063a217fddf14610586578063a783c7891461055d578063ad3cb1cc146104e3578063b6b55f2514610462578063d547741f14610427578063d5abeb0114610409578063e63ab1e9146103ce5763f8c8765e1461014a57600080fd5b346103cb5760803660031901126103cb576101636110a5565b61016b6110c0565b6044356001600160a01b0381168082036103c757606435926001600160a01b0384168085036103c357600080516020611b5f833981519152549560ff8760401c16159667ffffffffffffffff8116801590816103bb575b60011490816103b1575b1590816103a8575b506103995767ffffffffffffffff198116600117600080516020611b5f833981519152558761036c575b506102076119af565b6001600160a01b031690811590811561035a575b8115610351575b8115610348575b5061033957916102d19493916102cb936102416119af565b6102496119af565b6102516119af565b6001600080516020611aff8339815191525561026b6119af565b6102736119af565b6001600160601b0360a01b89541617885560018060a01b03166001600160601b0360a01b60015416176001556001600160601b0360a01b60025416176002556102bb836115f6565b506102c5816114e4565b50611570565b50611690565b506000196003556102df5780f35b68ff000000000000000019600080516020611b5f8339815191525416600080516020611b5f833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b63d92e233d60e01b8752600487fd5b90501538610229565b84159150610222565b6001600160a01b03841615915061021b565b68ffffffffffffffffff19166801000000000000000117600080516020611b5f83398151915255386101fe565b63f92ee8a960e01b8952600489fd5b905015386101d4565b303b1591506101cc565b8991506101c2565b8680fd5b8480fd5b80fd5b50346103cb57806003193601126103cb5760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346103cb57806003193601126103cb576020600354604051908152f35b50346103cb5760403660031901126103cb5761045e6004356104476110c0565b906104596104548261116c565b61137e565b61190f565b5080f35b50346103cb5760203660031901126103cb5761047c6113c8565b60015481906001600160a01b0316803b156104e05781809160446040518094819363079cc67960e41b835233600484015260043560248401525af180156104d5576104c45750f35b816104ce916110ea565b6103cb5780f35b6040513d84823e3d90fd5b50fd5b50346103cb57806003193601126103cb57604080519161050382846110ea565b60058352640352e302e360dc1b6020840152815192839160208352815191826020850152815b838110610546575050828201840152601f01601f19168101030190f35b602082820181015188830188015287955001610529565b50346103cb57806003193601126103cb576020604051600080516020611a3f8339815191528152f35b50346103cb57806003193601126103cb57602090604051908152f35b50346103cb5760203660031901126103cb576105bc6110a5565b6105c461132b565b6001600160a01b0381169081156106555760025461060591906105ef906001600160a01b03166117e3565b506002546102bb906001600160a01b0316611879565b50600254604080516001600160a01b0383168152602081018490527f33770ab682353c17917ad3e667f05905fc8dda00671ef1ed33bef9bc8db0323e9190a16001600160a01b0319161760025580f35b63d92e233d60e01b8352600483fd5b50346103cb5760403660031901126103cb5760406106806110c0565b916004358152600080516020611abf833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346103cb57806003193601126103cb576020604051600080516020611a9f8339815191528152f35b50346103cb57806003193601126103cb576106ff6112b9565b6107076113c8565b600160ff19600080516020611adf833981519152541617600080516020611adf833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346103cb57366003190160a081126108d3576020136103cb5761077d6110c0565b60443560643567ffffffffffffffff81116108cf576107a090369060040161113e565b90916107aa61122f565b6107b261126b565b6107ba6113c8565b84546107d4906084359083906001600160a01b03166113f2565b84546001546001600160a01b03918216958792909116863b156108cb57604051633ddf4d7d60e11b81529183918391906001600160a01b036108146110a5565b16600484015260248301526001600160a01b0316604482018190526064820186905260a060848301529781838161084f60a482018b8d61118d565b03925af180156104d5576108b6575b505061089e7f23b9573b29ff81f01c7aa1968188e1cb7d5858b08582e111fdaf386d9ef9bd8d93604051938493845260406020850152604084019161118d565b0390a26001600080516020611aff8339815191525580f35b816108c0916110ea565b6103c757843861085e565b8280fd5b8380fd5b5080fd5b50346103cb5760203660031901126103cb57600080516020611a3f8339815191528152600080516020611abf8339815191526020908152604080832033600090815292529020546004359060ff16156109645760207f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c916109566113c8565b80600355604051908152a180f35b63e2517d3f60e01b825233600452600080516020611a3f833981519152602452604482fd5b50346103cb5760a03660031901126103cb576109a36110a5565b906024359060443567ffffffffffffffff81116108d3576109c890369060040161113e565b909260843567ffffffffffffffff81116108cf576080816004019160031990360301126108cf576109f761122f565b6109ff61126b565b610a076113c8565b8354610a21906064359084906001600160a01b03166113f2565b83546001546001600160a01b03918216979116873b15610b465794610a898798610a9b9383809a996040519687958694859363aa0c0fc160e01b8552600485015260018060a01b03169c8d60248501528b604485015260a060648501528c60a485019161118d565b828103600319016084840152896111ae565b03925af18015610b3b57610afd575b5061089e90610aef7f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff0959697604051958695865260606020870152606086019161118d565b9083820360408501526111ae565b90610aef86610b317f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff0979861089e956110ea565b9695505090610aaa565b6040513d88823e3d90fd5b8580fd5b50346103cb57806003193601126103cb57602060ff600080516020611adf83398151915254166040519015158152f35b50346103cb57806003193601126103cb576002546040516001600160a01b039091168152602090f35b50346103cb57806003193601126103cb577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610bfc576020604051600080516020611a7f8339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126103cb57610c206110a5565b6024359067ffffffffffffffff82116108cb57366023830112156108cb5781600401359083610c4e83611122565b93610c5c60405195866110ea565b838552602085019336602482840101116108cb57806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610e31575b50610e2257610cbf61132b565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181610dee575b50610d0257634c9c8ce360e01b86526004859052602486fd5b9384600080516020611a7f833981519152879603610ddc5750823b15610dca57600080516020611a7f83398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115610daf5761045e9382915190845af43d15610da7573d91610d8b83611122565b92610d9960405194856110ea565b83523d85602085013e6119dd565b6060916119dd565b5050505034610dbb5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011610e1a575b81610e0a602093836110ea565b810103126103c357519038610ce9565b3d9150610dfd565b63703e46dd60e11b8452600484fd5b600080516020611a7f833981519152546001600160a01b03161415905038610cb2565b50346103cb57806003193601126103cb57610e6d6112b9565b600080516020611adf8339815191525460ff811615610ec75760ff1916600080516020611adf833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346103cb5760403660031901126103cb57610ef06110c0565b336001600160a01b03821603610f0c5761045e9060043561190f565b63334bd91960e11b8252600482fd5b50346103cb5760403660031901126103cb5761045e600435610f3b6110c0565b90610f486104548261116c565b61174c565b50346103cb5760203660031901126103cb576020610f6c60043561116c565b604051908152f35b50346103cb57806003193601126103cb576001546040516001600160a01b039091168152602090f35b50346103cb57806003193601126103cb57546040516001600160a01b039091168152602090f35b50346103cb5760603660031901126103cb57610fde6110a5565b7f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d560206024359261100d61122f565b61101561126b565b61101d6113c8565b61102a60443585836113f2565b6040519384526001600160a01b031692a26001600080516020611aff8339815191525580f35b9050346108d35760203660031901126108d35760043563ffffffff60e01b81168091036108cb5760209250637965db0b60e01b8114908115611094575b5015158152f35b6301ffc9a760e01b1490503861108d565b600435906001600160a01b03821682036110bb57565b600080fd5b602435906001600160a01b03821682036110bb57565b35906001600160a01b03821682036110bb57565b90601f8019910116810190811067ffffffffffffffff82111761110c57604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161110c57601f01601f191660200190565b9181601f840112156110bb5782359167ffffffffffffffff83116110bb57602083818601950101116110bb57565b600052600080516020611abf83398151915260205260016040600020015490565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160a01b036111bf826110d6565b1682526001600160a01b036111d6602083016110d6565b166020830152604081013560408301526060810135601e19823603018112156110bb57016020813591019067ffffffffffffffff81116110bb5780360382136110bb5760808381606061122c960152019161118d565b90565b6002600080516020611aff833981519152541461125a576002600080516020611aff83398151915255565b633ee5aeb560e01b60005260046000fd5b336000908152600080516020611b1f833981519152602052604090205460ff161561129257565b63e2517d3f60e01b60005233600452600080516020611a9f83398151915260245260446000fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff16156112f257565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff161561136457565b63e2517d3f60e01b60005233600452600060245260446000fd5b6000818152600080516020611abf8339815191526020908152604080832033845290915290205460ff16156113b05750565b63e2517d3f60e01b6000523360045260245260446000fd5b60ff600080516020611adf83398151915254166113e157565b63d93c066560e01b60005260046000fd5b6001546040516318160ddd60e01b81526000949392916001600160a01b031690602081600481855afa908115610b3b5786916114b2575b50830180841161149e576003541061148f57803b156103c757849291836064926040519687958694630f22c5f760e11b865260018060a01b03166004860152602485015260448401525af180156104d557611482575050565b8161148c916110ea565b50565b63c30436e960e01b8552600485fd5b634e487b7160e01b86526011600452602486fd5b90506020813d6020116114dc575b816114cd602093836110ea565b81010312610b46575138611429565b3d91506114c0565b6001600160a01b0381166000908152600080516020611b1f833981519152602052604090205460ff1661156a576001600160a01b03166000818152600080516020611b1f83398151915260205260408120805460ff19166001179055339190600080516020611a9f83398151915290600080516020611a5f8339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020611b3f833981519152602052604090205460ff1661156a576001600160a01b03166000818152600080516020611b3f83398151915260205260408120805460ff19166001179055339190600080516020611a3f83398151915290600080516020611a5f8339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1661156a576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff19166001179055339190600080516020611a5f8339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1661156a576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a90600080516020611a5f8339815191529080a4600190565b6000818152600080516020611abf833981519152602090815260408083206001600160a01b038616845290915290205460ff166117dc576000818152600080516020611abf833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff1916600117905533929190600080516020611a5f8339815191529080a4600190565b5050600090565b6001600160a01b0381166000908152600080516020611b1f833981519152602052604090205460ff161561156a576001600160a01b03166000818152600080516020611b1f83398151915260205260408120805460ff19169055339190600080516020611a9f833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381166000908152600080516020611b3f833981519152602052604090205460ff161561156a576001600160a01b03166000818152600080516020611b3f83398151915260205260408120805460ff19169055339190600080516020611a3f833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020611abf833981519152602090815260408083206001600160a01b038616845290915290205460ff16156117dc576000818152600080516020611abf833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b60ff600080516020611b5f8339815191525460401c16156119cc57565b631afcd79f60e31b60005260046000fd5b90611a0357508051156119f257805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611a35575b611a14575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15611a0c56fe0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00395f4e35a18c2b5e556b3b2ff855307e76c0b3cc1ca71e19a70e83037e08e7b37bdc20c26beb8eedd348733c28a5c4c2f7f7f1183cba8898195258fcdca273bcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212201f643599d9d95abbad7f4e3b9a54b28b24cf3e060e9c3d9981d412ec51a528c964736f6c634300081a003360e0346100d757601f610bd638819003918201601f19168301916001600160401b038311848410176100dc578084926060946040528339810103126100d757610047816100f2565b906040610056602083016100f2565b9101519160805260a05260c052604051610acf90816101078239608051818181608a0152610196015260a05181818160dd0152818161070a015281816107e5015281816108990152818161094901526109f9015260c051818181604f0152818161076701528181610846015281816108f5015281816109ac0152610a530152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036100d75756fe6080604052600436106101815760003560e01c8063589dd5da1461007757806385e1f4d0146100375763ced52b4003610181576100c7565b346100725760003660031901126100725760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b600080fd5b34610072576000366003190112610072577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b600091031261007257565b34610072576000366003190112610072576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761013e57604052565b61010c565b90601f8019910116810190811067ffffffffffffffff82111761013e57604052565b67ffffffffffffffff811161013e57601f01601f191660200190565b600080604051368282378036810183815203907f00000000000000000000000000000000000000000000000000000000000000005af43d1561023c573d906101c882610165565b916101d66040519384610143565b82523d6000602084013e5b156101f7576101ef366106c3565b602081519101f35b60405162461bcd60e51b815260206004820152601b60248201527f476174657761792064656c656761746563616c6c206661696c656400000000006044820152606490fd5b6060906101e1565b906004116100725790600490565b909291928360041161007257831161007257600401916003190190565b356001600160e01b031981169291906004821061028a575050565b6001600160e01b031960049290920360031b82901b16169150565b6001600160a01b0381160361007257565b81601f82011215610072578035906102cd82610165565b926102db6040519485610143565b8284526020838301011161007257816000926020809301838601378301015290565b3590610308826102a5565b565b91909160a081840312610072576040519061032482610122565b81938135610331816102a5565b835260208201358015158103610072576020840152610352604083016102fd565b604084015260608201359167ffffffffffffffff83116100725761037c60809392849383016102b6565b60608501520135910152565b9160608383031261007257823561039e816102a5565b92602081013567ffffffffffffffff811161007257836103bf9183016102b6565b92604082013567ffffffffffffffff8111610072576103de920161030a565b90565b919082519283825260005b84811061040d575050826000602080949584010152601f8019910116010190565b806020809284010151828286010152016103ec565b9060018060a01b03825116815260208201511515602082015260018060a01b036040830151166040820152608080610469606085015160a0606086015260a08501906103e1565b93015191015290565b9081526001600160a01b0391821660208201529116604082015260a0606082018190526103de9391926104a7918401906103e1565b916080818403910152610422565b6040513d6000823e3d90fd5b91909160a0818403126100725780356104d9816102a5565b9260208201359260408301356104ee816102a5565b92606081013567ffffffffffffffff8111610072578361050f9183016102b6565b92608082013567ffffffffffffffff8111610072576103de920161030a565b9081526001600160a01b0391821660208201529116604082015260608101919091526000608082015260e060a082018190526103de939192610572918401906103e1565b9160c0818403910152610422565b9081526001600160a01b039182166020820152918116604083015260608201929092529116608082015260e060a082018190526103de939192610572918401906103e1565b906080828203126100725781356105db816102a5565b9260208301359260408101356105f0816102a5565b92606082013567ffffffffffffffff8111610072576103de920161030a565b9081526001600160a01b0391821660208201529116604082015260608101919091526000608082015260c060a082018190526103de92910190610422565b9081526001600160a01b039182166020820152918116604083015260608201929092529116608082015260c060a082018190526103de92910190610422565b9190916040818403126100725780356106a4816102a5565b92602082013567ffffffffffffffff8111610072576103de920161030a565b6106e16106d1826000610244565b6001600160e01b0319929161026f565b16631c9ab25f60e21b81036107ba575061070081610708926000610252565b81019061068c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169190823b156100725760405163ced6e79360e01b815292600092849283918591839161078f919034906001600160a01b0316337f00000000000000000000000000000000000000000000000000000000000000006004870161060f565b03925af180156107b5576107a05750565b806107af600061030893610143565b806100bc565b6104b5565b630102614b60e41b810361086e57506107d8816107e0926000610252565b8101906105c5565b9290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b156100725760405163ced6e79360e01b815294600094869485938793859361078f9391926001600160a01b0391821692909116337f00000000000000000000000000000000000000000000000000000000000000006004880161064d565b63744b9b8b60e01b810361091d575061088c81610894926000610252565b810190610388565b9091907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156100725760405163ad82a62760e01b815293600093859384928692849261078f92909134906001600160a01b0316337f00000000000000000000000000000000000000000000000000000000000000006004880161052e565b631a13c76f60e31b81036109d4575061093b81610943926000610252565b8101906104c1565b909391927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b156100725760405163ad82a62760e01b815295600095879586948894869461078f94919390926001600160a01b0392831692909116337f000000000000000000000000000000000000000000000000000000000000000060048901610580565b6306fb33ad60e21b146109e5575b50565b61088c816109f4926000610252565b9091907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b15610072576040516375e7f8e360e11b8152936000938593849286928492610a7b9290916001600160a01b0316337f000000000000000000000000000000000000000000000000000000000000000060048701610472565b03925af180156107b557156109e257806107af60006103089361014356fea2646970667358221220aaf6392076304ab7496b470bf7926c119cc3618f0adc327d7f143786b22e658464736f6c634300081a0033a26469706673582212209be9968b69de0673f81d900bcfd4963fdf325efbf6c31578c08dbcd9a239d4ec64736f6c634300081a0033"; type EVMSetupConstructorParams = | [signer?: Signer] diff --git a/typechain-types/factories/contracts/testing/FoundrySetup.t.sol/FoundrySetup__factory.ts b/typechain-types/factories/contracts/testing/FoundrySetup.t.sol/FoundrySetup__factory.ts index 0adef753..a52a9a3e 100644 --- a/typechain-types/factories/contracts/testing/FoundrySetup.t.sol/FoundrySetup__factory.ts +++ b/typechain-types/factories/contracts/testing/FoundrySetup.t.sol/FoundrySetup__factory.ts @@ -895,7 +895,7 @@ const _abi = [ ] as const; const _bytecode = - "0x60808060405234607d57600c805460ff19166001179055601f80546001600160a81b031916610101179055602080546001600160a01b031990811673735b14bb79463307aacbed86daf3322b1e6226ab17909155602180549091166002179055611b5860225560056023556061602455620254219081620000838239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c9081630a9254e41461114b575080631ed7831c146110cd5780632ade388014610f1657806336e543ae14610eed5780633ce4a5bc14610ec65780633e5e3c2314610e485780633f7286f414610dca5780633fe46ed114610da157806349f8cb0914610be35780634dff22af14610bc557806366141ce214610b9c57806366d9a9a014610a7b5780636a26fefe14610a5d5780636e6dbb5114610a3457806374c2ad231461087657806385226c81146107ec578063916a17c614610744578063b0464fdc1461069c578063b1c388b81461067e578063b50f3138146104c0578063b5508aa914610436578063ba414fa614610411578063bc03090d146103e8578063d5f39488146103bb578063e20c9f7114610331578063ebb2b7e41461016f5763fa7626d41461014a57600080fd5b3461016c578060031936011261016c57602060ff601f54166040519015158152f35b80fd5b503461016c578060031936011261016c5760355460365460405160375490936001600160a01b03928316939092169084836101a9836133e7565b808352926001811690811561031257506001146102b4575b6101cd9250038561346d565b6040519180603854906101df826133e7565b808652916001811690811561028d575060011461022c575b50509061020a836102289493038361346d565b603954603a549260405196879660ff808760081c1696169488613532565b0390f35b603881527f38395c5dceade9603479b177b68959049485df8aa97b39f3533039af5f45619994939250905b808210610271575091925090820160200161020a836101f7565b9192936001816020925483858901015201910190939291610257565b60ff191660208088019190915292151560051b8601909201925061020a91508490506101f7565b50603784529083907f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae5b8183106102f65750509060206101cd928201016101c1565b6020919350806001915483858b010152019101909186926102de565b602092506101cd94915060ff191682840152151560051b8201016101c1565b503461016c578060031936011261016c5760405180916020601554928381520191601582527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475915b81811061039c57610228856103908187038261346d565b6040519182918261335c565b82546001600160a01b0316845260209093019260019283019201610379565b503461016c578060031936011261016c57601f5460405160089190911c6001600160a01b03168152602090f35b503461016c578060031936011261016c576025546040516001600160a01b039091168152602090f35b503461016c578060031936011261016c57602061042c613ace565b6040519015158152f35b503461016c578060031936011261016c57601954610453816138b2565b91610461604051938461346d565b818352601981527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b8383106104a3576040518061022887826135cc565b6001602081926104b28561348e565b81520192019201919061048e565b503461016c578060031936011261016c57603b54603c54604051603d5490936001600160a01b03928316939092169084836104fa836133e7565b808352926001811690811561065f5750600114610601575b61051e9250038561346d565b6040519180603e5490610530826133e7565b80865291600181169081156105da5750600114610579575b50509061055b836102289493038361346d565b603f546040549260405196879660ff808760081c1696169488613532565b603e81527f8d800d6614d35eed73733ee453164a3b48076eb3138f466adeeb9dec7bb31f7094939250905b8082106105be575091925090820160200161055b83610548565b91929360018160209254838589010152019101909392916105a4565b60ff191660208088019190915292151560051b8601909201925061055b9150849050610548565b50603d84529083907fece66cfdbd22e3f37d348a3d8e19074452862cd65fd4b9a11f0336d1ac6d1dc35b81831061064357505090602061051e92820101610512565b6020919350806001915483858b0101520191019091869261062b565b6020925061051e94915060ff191682840152151560051b820101610512565b503461016c578060031936011261016c576020602254604051908152f35b503461016c578060031936011261016c57601c546106b9816138b2565b916106c7604051938461346d565b818352601c81527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211602084015b8383106107095760405180610228878261362c565b6002602060019260405161071c81613452565b848060a01b0386541681526107328587016138c9565b838201528152019201920191906106f4565b503461016c578060031936011261016c57601d54610761816138b2565b9161076f604051938461346d565b818352601d81527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f602084015b8383106107b15760405180610228878261362c565b600260206001926040516107c481613452565b848060a01b0386541681526107da8587016138c9565b8382015281520192019201919061079c565b503461016c578060031936011261016c57601a54610809816138b2565b91610817604051938461346d565b818352601a81527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310610859576040518061022887826135cc565b6001602081926108688561348e565b815201920192019190610844565b503461016c578060031936011261016c57602954602a54604051602b5490936001600160a01b03928316939092169084836108b0836133e7565b8083529260018116908115610a1557506001146109b7575b6108d49250038561346d565b6040519180602c54906108e6826133e7565b8086529160018116908115610990575060011461092f575b505090610911836102289493038361346d565b602d54602e549260405196879660ff808760081c1696169488613532565b602c81527f7416c943b4a09859521022fd2e90eac0dd9026dad28fa317782a135f28a8609194939250905b8082106109745750919250908201602001610911836108fe565b919293600181602092548385890101520191019093929161095a565b60ff191660208088019190915292151560051b8601909201925061091191508490506108fe565b50602b84529083907f11c44e4875b74d31ff9fd779bf2566af7bd15b87fc985d01f5094b89e3669e4f5b8183106109f95750509060206108d4928201016108c8565b6020919350806001915483858b010152019101909186926109e1565b602092506108d494915060ff191682840152151560051b8201016108c8565b503461016c578060031936011261016c576021546040516001600160a01b039091168152602090f35b503461016c578060031936011261016c576020602354604051908152f35b503461016c578060031936011261016c57601b54610a98816138b2565b610aa5604051918261346d565b818152601b83526020810191837f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1845b838310610b6157868587604051928392602084019060208552518091526040840160408260051b8601019392905b828210610b1257505050500390f35b91936001919395506020610b518192603f198a820301865288519083610b4183516040845260408401906133c2565b920151908481840391015261358e565b9601920192018594939192610b03565b60026020600192604051610b7481613452565b610b7d8661348e565b8152610b8a8587016138c9565b83820152815201920192019190610ad5565b503461016c578060031936011261016c576028546040516001600160a01b039091168152602090f35b503461016c578060031936011261016c576020602454604051908152f35b503461016c578060031936011261016c57602f5460305460405160315490936001600160a01b0392831693909216908483610c1d836133e7565b8083529260018116908115610d825750600114610d24575b610c419250038561346d565b604051918060325490610c53826133e7565b8086529160018116908115610cfd5750600114610c9c575b505090610c7e836102289493038361346d565b6033546034549260405196879660ff808760081c1696169488613532565b603281527f11df491316f14931039edfd4f8964c9a443b862f02d4c7611d18c2bc4e6ff69794939250905b808210610ce15750919250908201602001610c7e83610c6b565b9192936001816020925483858901015201910190939291610cc7565b60ff191660208088019190915292151560051b86019092019250610c7e9150849050610c6b565b50603184529083907fc54045fa7c6ec765e825df7f9e9bf9dec12c5cef146f93a5eee56772ee647fbc5b818310610d66575050906020610c4192820101610c35565b6020919350806001915483858b01015201910190918692610d4e565b60209250610c4194915060ff191682840152151560051b820101610c35565b503461016c578060031936011261016c576027546040516001600160a01b039091168152602090f35b503461016c578060031936011261016c5760405180916020601754928381520191601782527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15915b818110610e2957610228856103908187038261346d565b82546001600160a01b0316845260209093019260019283019201610e12565b503461016c578060031936011261016c5760405180916020601854928381520191601882527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e915b818110610ea757610228856103908187038261346d565b82546001600160a01b0316845260209093019260019283019201610e90565b503461016c578060031936011261016c57602080546040516001600160a01b039091168152f35b503461016c578060031936011261016c576026546040516001600160a01b039091168152602090f35b503461016c578060031936011261016c57601e54610f33816138b2565b610f40604051918261346d565b818152601e83526020810191837f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350845b8383106110445786858760405192839260208401906020855251809152604084019160408260051b8601019392815b838310610fac5786860387f35b919395509193603f198782030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b850101940192855b82811061101957505050505060208060019297019301930190928695949293610f9f565b9091929394602080611037600193605f1987820301895289516133c2565b9701950193929101610ff5565b60405161105081613452565b82546001600160a01b0316815260018301805461106c816138b2565b9161107a604051938461346d565b8183528a526020808b20908b9084015b8382106110b0575050505060019282602092836002950152815201920192019190610f70565b6001602081926110bf8661348e565b81520193019101909161108a565b503461016c578060031936011261016c5760405180916020601654928381520191601682527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289915b81811061112c57610228856103908187038261346d565b82546001600160a01b0316845260209093019260019283019201611115565b9050346133585781600319360112613358576021546001600160a01b0316737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156133545763c88a5e6d60e01b8252600482015269d3c21bcecceda1000000602482015281808260448183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561320c57613344575b5050601f54602054604051620103f8808201949391926001600160a01b039081169260081c16906001600160401b0386118487101761333057946040928492869762014ff485398252602082015203019082f0801561320c57602580546001600160a01b0319166001600160a01b03929092169182179055803b1561332d57818091600460405180948193630a5b8ad760e31b83525af180156124a257613318575b5050601f54602154602554604051620b9ea360e11b81526001600160a01b039283169360081c831692909116602082600481845afa9182156124ed5785926132f7575b5060405163bb88b76960e01b8152602081600481855afa9081156132ec5786916132ae575b5060405163330a0e7160e11b815292602084600481865afa92831561328157600494889461328c575b5060209060405195868092630b4a282f60e11b82525afa938415613281578794613241575b506040519561ae8f95868801968888106001600160401b0389111761322d579160c0979593918997959362003b858939865260208601526001600160a01b039081166040860152908116606085015290811660808401521660a082015203019082f0801561320c5760018060a01b03166001600160601b0360a01b60265416176026556040516165e0808201908282106001600160401b03831117613219579082916200ea148339039082f0801561320c57602780546001600160a01b0319166001600160a01b0392831617905560265460235483929190911690813b156128d4578291602483926040519485938492637bf2218160e01b845260048401525af180156124a2576131f7575b505060275460255460265460405163330a0e7160e11b81526001600160a01b039384169385939281169216602082600481845afa92831561252c576114e2936101649386916131d8575b5060018060a01b03601f5460081c169060018060a01b036021541692604051946114a386613421565b8552602085015260018060a01b03166040840152606083015260808201528360235495604051968795869463389893e960e21b8652600486019061380c565b61012060a485015260036101248501526208aa8960eb1b610144850152600160c485015260e484015260126101048401525af19081156124a25782916131be575b5060018060a01b038151166001600160601b0360a01b602954161760295560018060a01b036020820151166001600160601b0360a01b602a541617602a5560408101519182516001600160401b038111612bfc57611582602b546133e7565b601f811161315b575b506020601f82116001146130f8578293948293926130ed575b50508160011b916000199060031b1c191617602b555b60608201519182516001600160401b038111612b17576115db602c546133e7565b601f811161308a575b506020601f82116001146130275783948293949261301c575b50508160011b916000199060031b1c191617602c555b6080810151602d5560a081015115159060ff61ff0060c0602e5493015160081b1692169061ffff19161717602e5560018060a01b03602754168160018060a01b036025541660018060a01b0360265416926040519363330a0e7160e11b8552602085600481865afa801561252c576116f4958591612ffd575b5060018060a01b03601f5460081c169060018060a01b036021541692604051956116b587613421565b8652602086015260018060a01b0316604085015260608401526080830152602354918360405180968195829463389893e960e21b84526004840161384b565b03925af19081156124a2578291612fe3575b5060018060a01b038151166001600160601b0360a01b602f541617602f5560018060a01b036020820151166001600160601b0360a01b603054161760305560408101519182516001600160401b038111612bfc576117656031546133e7565b601f8111612f80575b506020601f8211600114612f1d57829394829392612f12575b50508160011b916000199060031b1c1916176031555b60608201519182516001600160401b038111612b17576117be6032546133e7565b601f8111612eaf575b506020601f8211600114612e4c57839482939492612e41575b50508160011b916000199060031b1c1916176032555b608081015160335560a081015115159060ff61ff0060c060345493015160081b1692169061ffff191617176034558060018060a01b0360265416602454813b156128d4578291602483926040519485938492637bf2218160e01b845260048401525af180156124a257612e2c575b505060275460255460265460405163330a0e7160e11b81526001600160a01b039384169385939281169216602082600481845afa92831561252c5761191693610164938691612e0d575b5060018060a01b03601f5460081c169060018060a01b036021541692604051946118d786613421565b8552602085015260018060a01b03166040840152606083015260808201528360245495604051968795869463389893e960e21b8652600486019061380c565b61012060a485015260036101248501526221272160e91b610144850152600160c485015260e484015260126101048401525af19081156124a2578291612df3575b5060018060a01b038151166001600160601b0360a01b603554161760355560018060a01b036020820151166001600160601b0360a01b603654161760365560408101519182516001600160401b038111612bfc576119b66037546133e7565b601f8111612d90575b506020601f8211600114612d2d57829394829392612d22575b50508160011b916000199060031b1c1916176037555b60608201519182516001600160401b038111612b1757611a0f6038546133e7565b601f8111612cbf575b506020601f8211600114612c5c57839482939492612c51575b50508160011b916000199060031b1c1916176038555b608081015160395560a081015115159060ff61ff0060c0603a5493015160081b1692169061ffff19161717603a5560018060a01b03602754168160018060a01b036025541660018060a01b0360265416926040519363330a0e7160e11b8552602085600481865afa801561252c57611b28958591612c32575b5060018060a01b03601f5460081c169060018060a01b03602154169260405195611ae987613421565b8652602086015260018060a01b0316604085015260608401526080830152602454918360405180968195829463389893e960e21b84526004840161384b565b03925af19081156124a2578291612c10575b5060018060a01b038151166001600160601b0360a01b603b541617603b5560018060a01b036020820151166001600160601b0360a01b603c541617603c5560408101519182516001600160401b038111612bfc57611b99603d546133e7565b601f8111612b99575b506020601f8211600114612b3657829394829392612b2b575b50508160011b916000199060031b1c191617603d555b60608201519182516001600160401b038111612b1757611bf2603e546133e7565b601f8111612ab4575b506020601f8211600114612a5157839482939492612a46575b50508160011b916000199060031b1c191617603e555b6080810151603f5560a081015115159060ff61ff0060c060405493015160081b1692169061ffff191617176040558060018060a01b036025541660405163330a0e7160e11b8152602081600481855afa9081156128f7576004916020918591612a29575b5060018060a01b031692836001600160601b0360a01b602854161760285560405192838092633c12ad4d60e21b82525afa9081156128f75783916129e7575b50813b156128d4576040516325128ee960e21b81526001600160a01b0390911660048201529082908290602490829084905af180156124a2576129d2575b5060018060a01b0360285416602254813b156128d457829160248392604051948593849263d7b3eeaf60e01b845260048401525af180156124a2576129bd575b50602854602354602654604051621ac49360e31b8152600481018390526001600160a01b039384169390929160209184916024918391165afa91821561252c57849261299c575b50823b156125a357604051638016f22b60e01b815260048101919091526001600160a01b039190911660248201529082908290604490829084905af180156124a257612987575b5060285460248054602654604051621ac49360e31b8152600481018390526001600160a01b0394851694909360209285928391165afa91821561252c578492612966575b50823b156125a357604051638016f22b60e01b815260048101919091526001600160a01b039190911660248201529082908290604490829084905af180156124a257612951575b50602854602554604051630b4a282f60e11b81526001600160a01b0392831692909160209183916004918391165afa9081156128f7578391612917575b50813b156128d457604051635f54c24f60e11b81526001600160a01b0390911660048201529082908290602490829084905af180156124a257612902575b50602854602554604051620b9ea360e11b81526001600160a01b0392831692909160209183916004918391165afa9081156128f75783916128d8575b50813b156128d45760405162b8969960e81b81526001600160a01b0390911660048201529082908290602490829084905af180156124a2576128bf575b506028546023546029546001600160a01b039283169216823b156125a357604051630d1fce9f60e21b815260048101929092526001600160a01b031660248201529082908290604490829084905af180156124a2576128aa575b506028546023546029546001600160a01b039283169216823b156125a35760405163f59e8a6760e01b81526004810192909252600060248301526001600160a01b031660448201529082908290606490829084905af180156124a257612895575b506028546023546029546001600160a01b039283169216823b156125a35760405163f9a4169760e01b815260048101929092526001600160a01b03166024820152600060448201529082908290606490829084905af180156124a257612880575b506030546001600160a01b0316806127ac575b50602854602354602654604051633178d80160e11b815260048101839052926001600160a01b039081169160209185916024918391165afa92831561252c57849361276e575b50602554604051620b9ea360e11b81529190602090839060049082906001600160a01b03165afa9182156124ed57859261274d575b50803b156124ad5761212e938580946040519687958694859363f59e8a6760e01b855260048501613892565b03925af180156124a257612738575b50602854602354602554604051620b9ea360e11b8152926001600160a01b039081169160209185916004918391165afa92831561252c578493612714575b50602654604051633178d80160e11b8152600481018490529190602090839060249082906001600160a01b03165afa9182156124ed5785926126d8575b50803b156124ad576121e4938580946040519687958694859363f9a4169760e01b855260048501613892565b03925af180156124a2576126c3575b506028546024546035546001600160a01b039283169216823b156125a357604051630d1fce9f60e21b815260048101929092526001600160a01b031660248201529082908290604490829084905af180156124a2576126ae575b506028546024546035546001600160a01b039283169216823b156125a35760405163f59e8a6760e01b81526004810192909252600060248301526001600160a01b031660448201529082908290606490829084905af180156124a257612699575b506028546024546035546001600160a01b039283169216823b156125a35760405163f9a4169760e01b815260048101929092526001600160a01b03166024820152600060448201529082908290606490829084905af180156124a257612684575b50603c546001600160a01b0316806125b0575b5060285460248054602654604051633178d80160e11b8152600481018390529391926001600160a01b03928316926020928692918391165afa92831561252c57849361256d575b50602554604051620b9ea360e11b81529190602090839060049082906001600160a01b03165afa9182156124ed57859261254c575b50803b156124ad576123ca938580946040519687958694859363f59e8a6760e01b855260048501613892565b03925af180156124a257612537575b50602854602454602554604051620b9ea360e11b8152926001600160a01b039081169160209185916004918391165afa92831561252c5784936124f8575b50602654604051633178d80160e11b8152600481018490529190602090839060249082906001600160a01b03165afa9182156124ed5785926124b1575b50803b156124ad57612480938580946040519687958694859363f9a4169760e01b855260048501613892565b03925af180156124a2576124915750f35b8161249b9161346d565b61016c5780f35b6040513d84823e3d90fd5b8480fd5b9091506020813d6020116124e5575b816124cd6020938361346d565b810103126124ad576124de906136c8565b9038612454565b3d91506124c0565b6040513d87823e3d90fd5b602491935061251e9060203d602011612525575b612516818361346d565b8101906136a4565b9290612417565b503d61250c565b6040513d86823e3d90fd5b816125419161346d565b61016c5780386123d9565b61256691925060203d60201161252557612516818361346d565b903861239e565b9092506020813d6020116125a8575b816125896020938361346d565b810103126125a35761259c6004916136c8565b9290612369565b505050fd5b3d915061257c565b602854602454603b5490916001600160a01b039182169116803b156124ad576125f3938580946040519687958694859363f59e8a6760e01b855260048501613892565b03925af180156124a25761266f575b50602854602454603b54603c546001600160a01b03918216939082169116803b156124ad5761264b938580946040519687958694859363f9a4169760e01b855260048501613892565b03925af180156124a2571561232257816126649161346d565b61016c578038612322565b816126799161346d565b61016c578038612602565b8161268e9161346d565b61016c57803861230f565b816126a39161346d565b61016c5780386122ae565b816126b89161346d565b61016c57803861224d565b816126cd9161346d565b61016c5780386121f3565b9091506020813d60201161270c575b816126f46020938361346d565b810103126124ad57612705906136c8565b90386121b8565b3d91506126e7565b60249193506127319060203d60201161252557612516818361346d565b929061217b565b816127429161346d565b61016c57803861213d565b61276791925060203d60201161252557612516818361346d565b9038612102565b9092506020813d6020116127a4575b8161278a6020938361346d565b810103126125a35761279d6004916136c8565b92906120cd565b3d915061277d565b602854602354602f5490916001600160a01b039182169116803b156124ad576127ef938580946040519687958694859363f59e8a6760e01b855260048501613892565b03925af180156124a25761286b575b50602854602354602f546030546001600160a01b03918216939082169116803b156124ad57612847938580946040519687958694859363f9a4169760e01b855260048501613892565b03925af180156124a2571561208757816128609161346d565b61016c578038612087565b816128759161346d565b61016c5780386127fe565b8161288a9161346d565b61016c578038612074565b8161289f9161346d565b61016c578038612013565b816128b49161346d565b61016c578038611fb2565b816128c99161346d565b61016c578038611f58565b5050fd5b6128f1915060203d60201161252557612516818361346d565b38611f1b565b6040513d85823e3d90fd5b8161290c9161346d565b61016c578038611edf565b90506020813d602011612949575b816129326020938361346d565b810103126128d457612943906136c8565b38611ea1565b3d9150612925565b8161295b9161346d565b61016c578038611e64565b61298091925060203d60201161252557612516818361346d565b9038611e1d565b816129919161346d565b61016c578038611dd9565b6129b691925060203d60201161252557612516818361346d565b9038611d92565b816129c79161346d565b61016c578038611d4b565b816129dc9161346d565b61016c578038611d0b565b90506020813d602011612a21575b81612a026020938361346d565b810103126128d457516001600160a01b03811681036128d45738611ccd565b3d91506129f5565b612a409150823d841161252557612516818361346d565b38611c8e565b015190503880611c14565b603e845280842090601f198316855b818110612a9c57509583600195969710612a83575b505050811b01603e55611c2a565b015160001960f88460031b161c19169055388080612a75565b9192602060018192868b015181550194019201612a60565b603e84527f8d800d6614d35eed73733ee453164a3b48076eb3138f466adeeb9dec7bb31f70601f830160051c81019160208410612b0d575b601f0160051c01905b818110612b025750611bfb565b848155600101612af5565b9091508190612aec565b634e487b7160e01b83526041600452602483fd5b015190503880611bbb565b603d835280832090601f198316845b818110612b8157509583600195969710612b68575b505050811b01603d55611bd1565b015160001960f88460031b161c19169055388080612b5a565b9192602060018192868b015181550194019201612b45565b603d83527fece66cfdbd22e3f37d348a3d8e19074452862cd65fd4b9a11f0336d1ac6d1dc3601f830160051c81019160208410612bf2575b601f0160051c01905b818110612be75750611ba2565b838155600101612bda565b9091508190612bd1565b634e487b7160e01b82526041600452602482fd5b612c2c91503d8084833e612c24818361346d565b810190613730565b38611b3a565b612c4b915060203d60201161252557612516818361346d565b38611ac0565b015190503880611a31565b6038845280842090601f198316855b818110612ca757509583600195969710612c8e575b505050811b01603855611a47565b015160001960f88460031b161c19169055388080612c80565b9192602060018192868b015181550194019201612c6b565b603884527f38395c5dceade9603479b177b68959049485df8aa97b39f3533039af5f456199601f830160051c81019160208410612d18575b601f0160051c01905b818110612d0d5750611a18565b848155600101612d00565b9091508190612cf7565b0151905038806119d8565b6037835280832090601f198316845b818110612d7857509583600195969710612d5f575b505050811b016037556119ee565b015160001960f88460031b161c19169055388080612d51565b9192602060018192868b015181550194019201612d3c565b603783527f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae601f830160051c81019160208410612de9575b601f0160051c01905b818110612dde57506119bf565b838155600101612dd1565b9091508190612dc8565b612e0791503d8084833e612c24818361346d565b38611957565b612e26915060203d60201161252557612516818361346d565b386118ae565b81612e369161346d565b61016c578038611864565b0151905038806117e0565b6032845280842090601f198316855b818110612e9757509583600195969710612e7e575b505050811b016032556117f6565b015160001960f88460031b161c19169055388080612e70565b9192602060018192868b015181550194019201612e5b565b603284527f11df491316f14931039edfd4f8964c9a443b862f02d4c7611d18c2bc4e6ff697601f830160051c81019160208410612f08575b601f0160051c01905b818110612efd57506117c7565b848155600101612ef0565b9091508190612ee7565b015190503880611787565b6031835280832090601f198316845b818110612f6857509583600195969710612f4f575b505050811b0160315561179d565b015160001960f88460031b161c19169055388080612f41565b9192602060018192868b015181550194019201612f2c565b603183527fc54045fa7c6ec765e825df7f9e9bf9dec12c5cef146f93a5eee56772ee647fbc601f830160051c81019160208410612fd9575b601f0160051c01905b818110612fce575061176e565b838155600101612fc1565b9091508190612fb8565b612ff791503d8084833e612c24818361346d565b38611706565b613016915060203d60201161252557612516818361346d565b3861168c565b0151905038806115fd565b602c845280842090601f198316855b81811061307257509583600195969710613059575b505050811b01602c55611613565b015160001960f88460031b161c1916905538808061304b565b9192602060018192868b015181550194019201613036565b602c84527f7416c943b4a09859521022fd2e90eac0dd9026dad28fa317782a135f28a86091601f830160051c810191602084106130e3575b601f0160051c01905b8181106130d857506115e4565b8481556001016130cb565b90915081906130c2565b0151905038806115a4565b602b835280832090601f198316845b8181106131435750958360019596971061312a575b505050811b01602b556115ba565b015160001960f88460031b161c1916905538808061311c565b9192602060018192868b015181550194019201613107565b602b83527f11c44e4875b74d31ff9fd779bf2566af7bd15b87fc985d01f5094b89e3669e4f601f830160051c810191602084106131b4575b601f0160051c01905b8181106131a9575061158b565b83815560010161319c565b9091508190613193565b6131d291503d8084833e612c24818361346d565b38611523565b6131f1915060203d60201161252557612516818361346d565b3861147a565b816132019161346d565b61016c578038611430565b50604051903d90823e3d90fd5b634e487b7160e01b84526041600452602484fd5b634e487b7160e01b8a52604160045260248afd5b9093506020813d602011613279575b8161325d6020938361346d565b810103126132755761326e906136c8565b9238611324565b8680fd5b3d9150613250565b6040513d89823e3d90fd5b60209194506132a790823d841161252557612516818361346d565b93906112ff565b90506020813d6020116132e4575b816132c96020938361346d565b810103126132e0576132da906136c8565b386112d6565b8580fd5b3d91506132bc565b6040513d88823e3d90fd5b61331191925060203d60201161252557612516818361346d565b90386112b1565b816133229161346d565b61016c57803861126e565b50fd5b634e487b7160e01b85526041600452602485fd5b61334d9161346d565b38816111cc565b8280fd5b5080fd5b602060408183019282815284518094520192019060005b8181106133805750505090565b82516001600160a01b0316845260209384019390920191600101613373565b60005b8381106133b25750506000910152565b81810151838201526020016133a2565b906020916133db8151809281855285808601910161339f565b601f01601f1916010190565b90600182811c92168015613417575b602083101461340157565b634e487b7160e01b600052602260045260246000fd5b91607f16916133f6565b60a081019081106001600160401b0382111761343c57604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761343c57604052565b90601f801991011681019081106001600160401b0382111761343c57604052565b90604051918260008254926134a2846133e7565b808452936001811690811561351057506001146134c9575b506134c79250038361346d565b565b90506000929192526020600020906000915b8183106134f45750509060206134c792820101386134ba565b60209193508060019154838589010152019101909184926134db565b9050602092506134c794915060ff191682840152151560051b820101386134ba565b95919361356d60c09699989460ff9661357b9460018060a01b03168a5260018060a01b031660208a015260e060408a015260e08901906133c2565b9087820360608901526133c2565b966080860152151560a085015216910152565b906020808351928381520192019060005b8181106135ac5750505090565b82516001600160e01b03191684526020938401939092019160010161359f565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106135ff57505050505090565b909192939460208061361d600193603f1986820301875289516133c2565b970193019301919392906135f0565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061365f57505050505090565b9091929394602080613695600193603f198682030187526040838b51878060a01b0381511684520151918185820152019061358e565b97019301930191939290613650565b908160209103126136c357516001600160a01b03811681036136c35790565b600080fd5b51906001600160a01b03821682036136c357565b81601f820112156136c35780516001600160401b03811161343c576040519261370f601f8301601f19166020018561346d565b818452602082840101116136c35761372d916020808501910161339f565b90565b6020818303126136c3578051906001600160401b0382116136c3570160e0818303126136c3576040519160e083018381106001600160401b0382111761343c5760405261377c826136c8565b835261378a602083016136c8565b602084015260408201516001600160401b0381116136c357816137ae9184016136dc565b60408401526060820151906001600160401b0382116136c3576137d29183016136dc565b60608301526080810151608083015260a08101519081151582036136c35760c09160a0840152015160ff811681036136c35760c082015290565b80516001600160a01b03908116835260208083015182169084015260408083015182169084015260608083015182169084015260809182015116910152565b8061385e6101009260069496959661380c565b61012060a08201526004610120820152635553444360e01b610140820152610160810194600060c083015260e08201520152565b9081526001600160a01b0391821660208201529116604082015260600190565b6001600160401b03811161343c5760051b60200190565b90604051918281549182825260208201906000526020600020926000905b806007830110613a29576134c7945491818110613a0a575b8181106139eb575b8181106139cc575b8181106139ad575b81811061398e575b81811061396f575b818110613952575b1061393d575b50038361346d565b6001600160e01b031916815260200138613935565b602083811b6001600160e01b03191685529093019260010161392f565b604083901b6001600160e01b0319168452602090930192600101613927565b606083901b6001600160e01b031916845260209093019260010161391f565b608083901b6001600160e01b0319168452602090930192600101613917565b60a083901b6001600160e01b031916845260209093019260010161390f565b60c083901b6001600160e01b0319168452602090930192600101613907565b60e083901b6001600160e01b03191684526020909301926001016138ff565b916008919350610100600191865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e08201520194019201859293916138e7565b60085460ff168015613add5790565b50604051630667f9d760e41b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d60048201526519985a5b195960d21b6024820152602081604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115613b7857600091613b46575b50151590565b90506020813d602011613b70575b81613b616020938361346d565b810103126136c3575138613b40565b3d9150613b54565b6040513d6000823e3d90fdfe60803461012957601f61ae8f38819003918201601f19168301916001600160401b0383118484101761012e5780849260c0946040528339810103126101295761004781610144565b9061005460208201610144565b61006060408301610144565b61006c60608401610144565b91600161008760a061008060808801610144565b9601610144565b600c805460ff199081168417909155601f805460a885901b8581031990911660089a909a1b92019190911697909717909117909555602080546001600160a01b03199081166001600160a01b039384161790915560218054821693831693909317909255602280548316938216939093179092556023805482169383169390931790925560248054909216921691909117905560405161ad3690816101598239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036101295756fe6080604052600436101561001257600080fd5b60003560e01c8062173d4614610195578062d62498146101905780631694505e1461018b5780631ed7831c146101865780632ade3880146101815780633e5e3c231461017c5780633f7286f41461017757806362f1b0021461017257806366d9a9a01461016d5780636a26fefe146101685780636ce89fe2146101635780636e6dbb511461015e5780637bf221811461015957806385226c8114610154578063916a17c61461014f578063ad8414bf1461014a578063b0464fdc14610145578063b5508aa914610140578063ba414fa61461013b578063bb88b76914610136578063d05adf6a14610131578063d5f394881461012c578063e20c9f71146101275763fa7626d41461012257600080fd5b611708565b611688565b61165b565b61162d565b611604565b6115df565b611552565b6114a6565b611478565b6113cc565b6112c7565b6107d8565b6107b1565b610788565b61076c565b6106c0565b6105d4565b610554565b6104d4565b610428565b61027f565b610213565b6101e5565b6101aa565b60009103126101a557565b600080fd5b346101a55760003660031901126101a5576021546040516001600160a01b039091168152602090f35b60209060031901126101a55760043590565b346101a5576101f3366101d3565b6000526027602052602060018060a01b0360406000205416604051908152f35b346101a55760003660031901126101a5576024546040516001600160a01b039091168152602090f35b602060408183019282815284518094520192019060005b8181106102605750505090565b82516001600160a01b0316845260209384019390920191600101610253565b346101a55760003660031901126101a55760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b8181106102f0576102ec856102e08187038261175d565b6040519182918261023c565b0390f35b82546001600160a01b03168452602090930192600192830192016102c9565b60005b8381106103225750506000910152565b8181015183820152602001610312565b9060209161034b8151809281855285808601910161030f565b601f01601f1916010190565b9080602083519182815201916020808360051b8301019401926000915b83831061038357505050505090565b90919293946020806103a1600193601f198682030187528951610332565b97019301930191939290610374565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106103e357505050505090565b9091929394602080610419600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610357565b970193019301919392906103d4565b346101a55760003660031901126101a557601e546104458161177f565b90610453604051928361175d565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061049957604051806102ec87826103b0565b600260206001926040516104ac81611741565b848060a01b0386541681526104c2858701611863565b83820152815201920192019190610484565b346101a55760003660031901126101a55760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b818110610535576102ec856102e08187038261175d565b82546001600160a01b031684526020909301926001928301920161051e565b346101a55760003660031901126101a55760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b8181106105b5576102ec856102e08187038261175d565b82546001600160a01b031684526020909301926001928301920161059e565b346101a5576105e2366101d3565b6000526028602052602060018060a01b0360406000205416604051908152f35b906020808351928381520192019060005b8181106106205750505090565b82516001600160e01b031916845260209384019390920191600101610613565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061067357505050505090565b90919293946020806106b1600193603f19868203018752895190836106a18351604084526040840190610332565b9201519084818403910152610602565b97019301930191939290610664565b346101a55760003660031901126101a557601b546106dd8161177f565b906106eb604051928361175d565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b83831061073157604051806102ec8782610640565b6002602060019260405161074481611741565b61074d86611797565b815261075a8587016118bb565b8382015281520192019201919061071c565b346101a55760003660031901126101a557602060405160058152f35b346101a55760003660031901126101a5576023546040516001600160a01b039091168152602090f35b346101a55760003660031901126101a557602080546040516001600160a01b039091168152f35b346101a5576107e6366101d3565b601f5460081c6001600160a01b0316737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156101a5576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610f355761129e575b506040516129ee80820182811067ffffffffffffffff821117611012578291613e36833903906000f08015610f35576023546001600160a01b031660405191610bd68084019284841067ffffffffffffffff8511176110125784936108e193879361a12b87396001600160a01b039081168252919091166020820152604081019190915260600190565b03906000f08015610f35576000828152602760205260409020610928916001600160a01b0316905b80546001600160a01b0319166001600160a01b03909216919091179055565b604051611ebc80820182811067ffffffffffffffff821117611012578291611f7a833903906000f08015610f35576000828152602560205260409020610977916001600160a01b031690610909565b60058114801561114a576040516360f9bb1160e01b815260206004820152604b60248201527f6e6f64655f6d6f64756c65732f407a657461636861696e2f70726f746f636f6c60448201527f2d636f6e7472616374732f6162692f5465737445524332302e736f6c2f54657360648201526a3a22a9219918173539b7b760a91b608482015260008160a481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610f3557610a49916000918291611130575b5060405180938192631fb2437d60e31b835260048301611b5b565b0381737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610f3557610aea91610ad69160009161110d575b5060405190610ad182610ac36020820160c0906040815260046040820152635a65746160e01b60608201526080602082015260046080820152635a45544160e01b60a08201520190565b03601f19810184528361175d565b611c60565b610909846000526028602052604060002090565b610b1d610b11610b04846000526027602052604060002090565b546001600160a01b031690565b6001600160a01b031690565b6020546001600160a01b0316610b40610b04856000526028602052604060002090565b601f5490929060081c6001600160a01b031690803b156101a55760405163c0c53b8b60e01b81526001600160a01b0393841660048201529383166024850152911660448301526000908290606490829084905af18015610f35576110f8575b50610bbd610b11610b11610b04856000526025602052604060002090565b610bd7610b11610b04856000526027602052604060002090565b6020546001600160a01b0316601f5490929060081c6001600160a01b031690803b156101a55760405163c0c53b8b60e01b81526001600160a01b0393841660048201529383166024850152911660448301526000908290606490829084905af18015610f35576110e3575b50801561101757604051611bf380820182811067ffffffffffffffff821117611012578291616824833903906000f08015610f3557610c91610b11610b04856000526027602052604060002090565b90610cfc610cac610b04866000526028602052604060002090565b60208054601f54604051637c643b2f60e11b938101939093526001600160a01b03968716602484015292861660448301528516606482015260089190911c90931660848401528260a48101610ac3565b604051916102c69081840184811067ffffffffffffffff821117611012578493610d3493611cb486396001600160a01b031690611b97565b03906000f08015610f35576000838152602660205260409020610d60916001600160a01b031690610909565b610d7a610b11610b04846000526027602052604060002090565b610d91610b04846000526025602052604060002090565b90803b156101a55760405163ae7a3a6f60e01b81526001600160a01b039290921660048301526000908290602490829084905af18015610f3557610ffd575b50610deb610b11610b04846000526027602052604060002090565b610e02610b04846000526026602052604060002090565b90803b156101a5576040516310188aef60e01b81526001600160a01b039290921660048301526000908290602490829084905af18015610f3557610fe8575b5015610f4f57610e7b610b04610e6a610b11610b11610b04866000526028602052604060002090565b926000526026602052604060002090565b90803b156101a5576040516340c10f1960e01b81526001600160a01b0392909216600483015269d3c21bcecceda100000060248301526000908290604490829084905af18015610f3557610f3a575b505b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156101a5576040516390c5013b60e01b815260008160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610f3557610f1e57005b80610f2d6000610f339361175d565b8061019a565b005b611ae0565b80610f2d6000610f499361175d565b38610eca565b610f6c610b11610b11610b04846000526028602052604060002090565b602054909190610f8890610b04906001600160a01b0316610e6a565b823b156101a5576040516305755ff560e21b81526001600160a01b03928316600482015291166024820152906000908290604490829084905af18015610f3557610fd3575b50610ecc565b80610f2d6000610fe29361175d565b38610fcd565b80610f2d6000610ff79361175d565b38610e41565b80610f2d600061100c9361175d565b38610dd0565b61172b565b604051611d1480820182811067ffffffffffffffff821117611012578291618417833903906000f08015610f355761105f610b11610b04856000526027602052604060002090565b9061107a610cac610b04866000526028602052604060002090565b604051916102c69081840184811067ffffffffffffffff8211176110125784936110b293611cb486396001600160a01b031690611b97565b03906000f08015610f355760008381526026602052604090206110de916001600160a01b031690610909565b610d60565b80610f2d60006110f29361175d565b38610c42565b80610f2d60006111079361175d565b38610b9f565b61112a91503d806000833e611122818361175d565b810190611aec565b38610a79565b61114491503d8084833e611122818361175d565b38610a2e565b6040516360f9bb1160e01b815260206004820152604f60248201527f6e6f64655f6d6f64756c65732f407a657461636861696e2f70726f746f636f6c60448201527f2d636f6e7472616374732f6162692f5a6574612e6e6f6e2d6574682e736f6c2f60648201526e2d32ba30a737b722ba34173539b7b760891b608482015260008160a481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610f3557611215916000918291611130575060405180938192631fb2437d60e31b835260048301611b5b565b0381737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610f355761127e91610ad691600091611283575b5060208054601f54604080516001600160a01b039384169481019490945260089190911c9091169082015290610ad18260608101610ac3565b610aea565b61129891503d806000833e611122818361175d565b38611245565b80610f2d60006112ad9361175d565b38610857565b9060206112c4928181520190610357565b90565b346101a55760003660031901126101a557601a546112e48161177f565b906112f2604051928361175d565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b83831061133757604051806102ec87826112b3565b60016020819261134685611797565b815201920192019190611322565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061138757505050505090565b90919293946020806113bd600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610602565b97019301930191939290611378565b346101a55760003660031901126101a557601d546113e98161177f565b906113f7604051928361175d565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b83831061143d57604051806102ec8782611354565b6002602060019260405161145081611741565b848060a01b0386541681526114668587016118bb565b83820152815201920192019190611428565b346101a557611486366101d3565b6000526025602052602060018060a01b0360406000205416604051908152f35b346101a55760003660031901126101a557601c546114c38161177f565b906114d1604051928361175d565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b83831061151757604051806102ec8782611354565b6002602060019260405161152a81611741565b848060a01b0386541681526115408587016118bb565b83820152815201920192019190611502565b346101a55760003660031901126101a55760195461156f8161177f565b9061157d604051928361175d565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b8383106115c257604051806102ec87826112b3565b6001602081926115d185611797565b8152019201920191906115ad565b346101a55760003660031901126101a55760206115fa611bc8565b6040519015158152f35b346101a55760003660031901126101a5576022546040516001600160a01b039091168152602090f35b346101a55761163b366101d3565b6000526026602052602060018060a01b0360406000205416604051908152f35b346101a55760003660031901126101a557601f5460405160089190911c6001600160a01b03168152602090f35b346101a55760003660031901126101a55760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b8181106116e9576102ec856102e08187038261175d565b82546001600160a01b03168452602090930192600192830192016116d2565b346101a55760003660031901126101a557602060ff601f54166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff82111761101257604052565b90601f8019910116810190811067ffffffffffffffff82111761101257604052565b67ffffffffffffffff81116110125760051b60200190565b9060405191600081548060011c9260018216918215611859575b60208510831461184557848752869392602085019291811561182857506001146117e6575b50506117e49250038361175d565b565b6117f7919250600052602060002090565b906000915b84831061181157506117e493500138806117d6565b8054828401528693506020909201916001016117fc565b9150506117e49491925060ff19168252151560051b0138806117d6565b634e487b7160e01b84526022600452602484fd5b93607f16936117b1565b90815461186f8161177f565b9261187d604051948561175d565b818452602084019060005260206000206000915b83831061189e5750505050565b6001602081926118ad85611797565b815201920192019190611891565b604051815480825290929183906118db6020830191600052602060002090565b926000905b806007830110611a23576117e4945491818110611a04575b8181106119e5575b8181106119c6575b8181106119a7575b818110611988575b818110611969575b81811061194b575b10611936575b50038361175d565b6001600160e01b03191681526020013861192e565b602083811b6001600160e01b03191685529093600191019301611928565b604083901b6001600160e01b0319168452926001906020019301611920565b606083901b6001600160e01b0319168452926001906020019301611918565b608083901b6001600160e01b0319168452926001906020019301611910565b60a083901b6001600160e01b0319168452926001906020019301611908565b60c083901b6001600160e01b0319168452926001906020019301611900565b6001600160e01b031960e084901b1684529260019060200193016118f8565b916008919350610100600191611ad28754611a49838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b0194019201859293916118e0565b6040513d6000823e3d90fd5b6020818303126101a55780519067ffffffffffffffff82116101a5570181601f820112156101a5576020815191019067ffffffffffffffff81116110125760405192611b42601f8301601f19166020018561175d565b818452818301116101a5576112c491602084019061030f565b611b6d60409283835283830190610332565b906020818303910152601081526f0b989e5d1958dbd9194b9bd89a9958dd60821b60208201520190565b6001600160a01b0390911681526040602082018190526112c492910190610332565b908160209103126101a5575190565b60085460ff168015611bd75790565b50604051630667f9d760e41b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190526519985a5b195960d21b6024830152602090829060449082905afa908115610f3557600091611c31575b50151590565b611c53915060203d602011611c59575b611c4b818361175d565b810190611bb9565b38611c2b565b503d611c41565b90611ca560209160405192839181611c81818501978881519384920161030f565b8301611c958251809385808501910161030f565b010103601f19810183528261175d565b51906000f09081156101a55756fe60806040526102c68038038061001481610188565b928339810190604081830312610183578051906001600160a01b03821690818303610183576020810151906001600160401b038211610183570183601f820112156101835780519061006d610068836101c3565b610188565b94828652602083830101116101835760005b82811061016e575050602060009185010152813b1561015a577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a28151156101415760008083602061012995519101845af43d15610139573d91610119610068846101c3565b9283523d6000602085013e6101de565b505b604051608690816102408239f35b6060916101de565b5050341561012b5763b398979f60e01b60005260046000fd5b634c9c8ce360e01b60005260045260246000fd5b8060208092840101518282890101520161007f565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176101ad57604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b0381116101ad57601f01601f191660200190565b9061020457508051156101f357805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580610236575b610215575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b1561020d56fe60806040527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5460009081906001600160a01b0316368280378136915af43d6000803e15604b573d6000f35b3d6000fdfea264697066735822122050f22a01d073962c556a114f7af7ed5d52928a56307a2cc1329dcdbb635986ec64736f6c634300081a003360a0806040523460295730608052611e8d908161002f8239608051818181610f090152610fda0152f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a71461131857508063116191b6146112f1578063248a9ca3146112ca578063252f07bf146112a45780632f2ff15d1461127257806336568abe1461122d5780633f4ba83a146111ab5780634f1ef28614610f5e57806352d1902d14610ef6578063570618e114610ecd5780635b11259114610ea45780635c975abb14610e745780638456cb5914610dff57806385f438c114610dd657806391d1485414610d80578063950837aa14610cb457806399a3c35614610ade5780639a59042714610a725780639b19251a146109f4578063a217fddf146109d8578063ad0818521461082d578063ad3cb1cc146107b3578063c0c53b8b1461057f578063d547741f14610544578063d936547e14610505578063d9caed1214610442578063e609055e146101e8578063e63ab1e9146101ad5763eab103df1461016057600080fd5b346101aa5760203660031901126101aa576004358015158091036101a65761018661157a565b6002805460ff60a01b191660a09290921b60ff60a01b1691909117905580f35b5080fd5b80fd5b50346101aa57806003193601126101aa5760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346101aa5760803660031901126101aa5760043567ffffffffffffffff81116101a65761021a903690600401611417565b6024356001600160a01b03811692919083810361043e5760643567ffffffffffffffff811161043a57610251903690600401611417565b9061025a611b7e565b610262611bba565b60ff60025460a01c161561042b57858752600160205260ff6040882054161561041c576040516370a0823160e01b8152306004820152926020846024818a5afa9384156103db5788946103e6575b506102ee90604051906323b872dd60e01b60208301523360248301523060448301526044356064830152606482526102e96084836113c3565b611c21565b6040516370a0823160e01b8152306004820152926020846024818a5afa9384156103db5788946103a2575b50830392831161038e5791610376917f1dafa057cc5c3bccb5ad974129a2bccd3c74002d9dfd7062404ba9523b18d6ae959493610363604051968796606088526060880191611466565b9260208601528483036040860152611466565b0390a26001600080516020611df88339815191525580f35b634e487b7160e01b87526011600452602487fd5b9093506020813d6020116103d3575b816103be602093836113c3565b810103126103ce57519238610319565b600080fd5b3d91506103b1565b6040513d8a823e3d90fd5b9093506020813d602011610414575b81610402602093836113c3565b810103126103ce5751926102ee6102b0565b3d91506103f5565b630b094f2760e31b8752600487fd5b6373cba66360e01b8752600487fd5b8580fd5b8480fd5b50346101aa5760603660031901126101aa5761045c611383565b61046461136d565b60443590610470611b7e565b6104786115cd565b610480611bba565b6001600160a01b03168084526001602052604084205490929060ff16156104f6576020816104d0847fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb9487611be4565b6040519384526001600160a01b031692a36001600080516020611df88339815191525580f35b630b094f2760e31b8452600484fd5b50346101aa5760203660031901126101aa5760209060ff906040906001600160a01b03610530611383565b168152600184522054166040519015158152f35b50346101aa5760403660031901126101aa5761057b60043561056461136d565b9061057661057182611445565b611669565b611ade565b5080f35b50346101aa5760603660031901126101aa57610599611383565b6105a161136d565b6105a9611399565b600080516020611e38833981519152549260ff8460401c16159367ffffffffffffffff8116801590816107ab575b60011490816107a1575b159081610798575b506107895767ffffffffffffffff198116600117600080516020611e38833981519152558461075c575b506001600160a01b03168015801561074b575b801561073a575b61072b576106c992916106c391610642611c88565b61064a611c88565b610652611c88565b6001600080516020611df88339815191525561066c611c88565b610674611c88565b86546001600160a01b0319908116919091178755600280549091166001600160a01b0385161790556106a5816117c5565b506106af8161185f565b506106b98361185f565b506106c3836116b3565b5061173f565b506106d15780f35b68ff000000000000000019600080516020611e388339815191525416600080516020611e38833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b63d92e233d60e01b8552600485fd5b506001600160a01b0382161561062d565b506001600160a01b03831615610626565b68ffffffffffffffffff19166801000000000000000117600080516020611e388339815191525538610613565b63f92ee8a960e01b8652600486fd5b905015386105e9565b303b1591506105e1565b8691506105d7565b50346101aa57806003193601126101aa5760408051916107d382846113c3565b60058352640352e302e360dc1b6020840152815192839160208352815191826020850152815b838110610816575050828201840152601f01601f19168101030190f35b6020828201810151888301880152879550016107f9565b50346101aa57366003190160a081126101a6576020136101aa5761084f61136d565b610857611399565b906064359160843567ffffffffffffffff811161043e5761087c903690600401611417565b9091610886611b7e565b61088e6115cd565b610896611bba565b6001600160a01b03168086526001602052604086205490949060ff16156109c95785546108ce9082906001600160a01b031687611be4565b85546001600160a01b0316938690853b156101a657604051633ddf4d7d60e11b815290829082906001600160a01b03610905611383565b166004830152602482018a90526001600160a01b0316604482018190526064820186905260a060848301529781838161094260a482018b8d611466565b03925af180156109be576109a9575b50506109917f6478cbb6e28c0823c691dfd74c01c985634faddd4c401b990fe4ec26277ea8d5936040519384938452604060208501526040840191611466565b0390a36001600080516020611df88339815191525580f35b816109b3916113c3565b61043a578538610951565b6040513d84823e3d90fd5b630b094f2760e31b8652600486fd5b50346101aa57806003193601126101aa57602090604051908152f35b50346101aa5760203660031901126101aa57610a0e611383565b610a1661161b565b6001600160a01b03168015610a6357808252600160205260408220600160ff198254161790557faab7954e9d246b167ef88aeddad35209ca2489d95a8aeb59e288d9b19fae5a548280a280f35b63d92e233d60e01b8252600482fd5b50346101aa5760203660031901126101aa57610a8c611383565b610a9461161b565b6001600160a01b03168015610a6357808252600160205260408220805460ff191690557f51085ddf9ebdded84b76e829eb58c4078e4b5bdf97d9a94723f336039da467918280a280f35b50346101aa5760a03660031901126101aa57610af8611383565b610b0061136d565b9060443560643567ffffffffffffffff811161043e57610b24903690600401611417565b9190936084359067ffffffffffffffff8211610cb057608082600401926003199036030112610cb057610b55611b7e565b610b5d6115cd565b610b65611bba565b6001600160a01b03168087526001602052604087205490959060ff161561041c578654610b9d9084906001600160a01b031688611be4565b86546001600160a01b031694853b15610cac5787604051809263aa0c0fc160e01b825289600483015260018060a01b03169788602483015286604483015260a06064830152818381610c08610bf660a483018d8b611466565b8281036003190160848401528a611487565b03925af180156103db57610c6a575b507f7b53ec10a80164e60591c43d9c222e9354886981b880a3fba19c9ceb77fb9721939291610c5c610991926040519586958652606060208701526060860191611466565b908382036040850152611487565b91610c5c88610ca0610991949a7f7b53ec10a80164e60591c43d9c222e9354886981b880a3fba19c9ceb77fb97219897966113c3565b98925050919293610c17565b8780fd5b8680fd5b50346101aa5760203660031901126101aa57610cce611383565b610cd661157a565b6001600160a01b038116908115610d7157600254610d219190610d01906001600160a01b03166119b2565b50600254610d17906001600160a01b0316611a48565b506106c3816116b3565b50600254604080516001600160a01b0383168152602081018490527f4d3470c839d3c4dd664eec934b920c12fe0966e3185103dd40149496815df2b69190a16001600160a01b0319161760025580f35b63d92e233d60e01b8352600483fd5b50346101aa5760403660031901126101aa5760ff6040602092610da161136d565b6004358252600080516020611d9883398151915285528282206001600160a01b03909116825284522054604051911615158152f35b50346101aa57806003193601126101aa576020604051600080516020611d788339815191528152f35b50346101aa57806003193601126101aa57610e18611508565b610e20611bba565b600160ff19600080516020611dd8833981519152541617600080516020611dd8833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101aa57806003193601126101aa57602060ff600080516020611dd883398151915254166040519015158152f35b50346101aa57806003193601126101aa576002546040516001600160a01b039091168152602090f35b50346101aa57806003193601126101aa576020604051600080516020611d588339815191528152f35b50346101aa57806003193601126101aa577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610f4f576020604051600080516020611d388339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101aa57610f73611383565b6024359067ffffffffffffffff82116111a757366023830112156111a75781600401359083610fa1836113fb565b93610faf60405195866113c3565b838552602085019336602482840101116111a757806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611184575b506111755761101261157a565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181611141575b5061105557634c9c8ce360e01b86526004859052602486fd5b9384600080516020611d3883398151915287960361112f5750823b1561111d57600080516020611d3883398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a28051156111025761057b9382915190845af43d156110fa573d916110de836113fb565b926110ec60405194856113c3565b83523d85602085013e611cb6565b606091611cb6565b505050503461110e5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d60201161116d575b8161115d602093836113c3565b81010312610cb05751903861103c565b3d9150611150565b63703e46dd60e11b8452600484fd5b600080516020611d38833981519152546001600160a01b03161415905038611005565b8280fd5b50346101aa57806003193601126101aa576111c4611508565b600080516020611dd88339815191525460ff81161561121e5760ff1916600080516020611dd8833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346101aa5760403660031901126101aa5761124761136d565b336001600160a01b038216036112635761057b90600435611ade565b63334bd91960e11b8252600482fd5b50346101aa5760403660031901126101aa5761057b60043561129261136d565b9061129f61057182611445565b61191b565b50346101aa57806003193601126101aa57602060ff60025460a01c166040519015158152f35b50346101aa5760203660031901126101aa5760206112e9600435611445565b604051908152f35b50346101aa57806003193601126101aa57546040516001600160a01b039091168152602090f35b9050346101a65760203660031901126101a65760043563ffffffff60e01b81168091036111a75760209250637965db0b60e01b811490811561135c575b5015158152f35b6301ffc9a760e01b14905038611355565b602435906001600160a01b03821682036103ce57565b600435906001600160a01b03821682036103ce57565b604435906001600160a01b03821682036103ce57565b35906001600160a01b03821682036103ce57565b90601f8019910116810190811067ffffffffffffffff8211176113e557604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116113e557601f01601f191660200190565b9181601f840112156103ce5782359167ffffffffffffffff83116103ce57602083818601950101116103ce57565b600052600080516020611d9883398151915260205260016040600020015490565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160a01b03611498826113af565b1682526001600160a01b036114af602083016113af565b166020830152604081013560408301526060810135601e19823603018112156103ce57016020813591019067ffffffffffffffff81116103ce5780360382136103ce576080838160606115059601520191611466565b90565b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561154157565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16156115b357565b63e2517d3f60e01b60005233600452600060245260446000fd5b336000908152600080516020611e18833981519152602052604090205460ff16156115f457565b63e2517d3f60e01b60005233600452600080516020611d7883398151915260245260446000fd5b336000908152600080516020611db8833981519152602052604090205460ff161561164257565b63e2517d3f60e01b60005233600452600080516020611d5883398151915260245260446000fd5b6000818152600080516020611d988339815191526020908152604080832033845290915290205460ff161561169b5750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b0381166000908152600080516020611e18833981519152602052604090205460ff16611739576001600160a01b03166000818152600080516020611e1883398151915260205260408120805460ff19166001179055339190600080516020611d7883398151915290600080516020611d188339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020611db8833981519152602052604090205460ff16611739576001600160a01b03166000818152600080516020611db883398151915260205260408120805460ff19166001179055339190600080516020611d5883398151915290600080516020611d188339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16611739576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff19166001179055339190600080516020611d188339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff16611739576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a90600080516020611d188339815191529080a4600190565b6000818152600080516020611d98833981519152602090815260408083206001600160a01b038616845290915290205460ff166119ab576000818152600080516020611d98833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff1916600117905533929190600080516020611d188339815191529080a4600190565b5050600090565b6001600160a01b0381166000908152600080516020611e18833981519152602052604090205460ff1615611739576001600160a01b03166000818152600080516020611e1883398151915260205260408120805460ff19169055339190600080516020611d78833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381166000908152600080516020611db8833981519152602052604090205460ff1615611739576001600160a01b03166000818152600080516020611db883398151915260205260408120805460ff19169055339190600080516020611d58833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020611d98833981519152602090815260408083206001600160a01b038616845290915290205460ff16156119ab576000818152600080516020611d98833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6002600080516020611df88339815191525414611ba9576002600080516020611df883398151915255565b633ee5aeb560e01b60005260046000fd5b60ff600080516020611dd88339815191525416611bd357565b63d93c066560e01b60005260046000fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152611c1f916102e96064836113c3565b565b906000602091828151910182855af115611c7c576000513d611c7357506001600160a01b0381163b155b611c525750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b60011415611c4b565b6040513d6000823e3d90fd5b60ff600080516020611e388339815191525460401c1615611ca557565b631afcd79f60e31b60005260046000fd5b90611cdc5750805115611ccb57805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611d0e575b611ced575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15611ce556fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8619cecd8b9e095ab43867f5b69d492180450fe862e6b50bfbfb24b75dd84c8a10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009e55e7b9c223644eee376bcbcf651816b24106427c658526e048949da61b2c08cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00395f4e35a18c2b5e556b3b2ff855307e76c0b3cc1ca71e19a70e83037e08e7b3f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212206353f97c2bca70990562e73c05a556d800ce6f131c5458a0f2aa0fe6f1af58ff64736f6c634300081a003360a080604052346100ea57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b6040516128fe90816100f0823960805181818161120b01526112db0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880610054565b63f92ee8a960e01b60005260046000fd5b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a7146119015750806310188aef1461188f578063102614b01461179f5780631becceb4146116c457806321e093b11461169b578063248a9ca3146116745780632f2ff15d1461164257806336568abe146115fd57806338e22527146115035780633f4ba83a146114815780634f1ef2861461126057806352d1902d146111f857806357bec62f146111cf5780635b112591146111a65780635c975abb146111765780635d62c8601461113b578063726ac97c1461100c578063744b9b8b14610f295780637bbe9afa14610b1c5780638456cb5914610aa757806391d1485414610a4e578063950837aa146109ab578063a217fddf1461098f578063a2ba193414610972578063a783c78914610949578063aa0c0fc1146107f8578063ad3cb1cc146107ab578063ae7a3a6f1461072f578063c0c53b8b14610519578063cb7ba8e5146103a9578063d09e3b7814610236578063d547741f146101fb578063dda79b75146101d45763e63ab1e91461019757600080fd5b346101d157806003193601126101d15760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b80fd5b50346101d157806003193601126101d157546040516001600160a01b039091168152602090f35b50346101d15760403660031901126101d15761023260043561021b611987565b9061022d61022882611bf9565b611ea1565b6123d1565b5080f35b50346101d15760a03660031901126101d157610250611956565b60243561025b611971565b916064356001600160401b0381116103a55761027b9036906004016119b1565b608435946001600160401b0386116103a157856004019360a0600319883603011261039d576102a8612220565b851561038e576001600160a01b031695861561037f576064016104006102d96102d18388611ae2565b905085611bd6565b116103515750610347927fa795d4377323e4c2d4c346b8050a7dd504c4043be8884c81b8d9690706c8388f94928261031588610339953361224a565b60405197885260018060a01b03166020880152608060408801526080870191611b45565b908482036060860152611b66565b918033930390a380f35b8761036a8461036260449489611ae2565b919050611bd6565b634fe7bc4760e11b8252600452610400602452fd5b63d92e233d60e01b8852600488fd5b63951e19ed60e01b8852600488fd5b8780fd5b8680fd5b8480fd5b5060603660031901126101d1576103be611956565b906024356001600160401b038111610515576103de9036906004016119b1565b604493919335906001600160401b038211610511576080826004019260031990360301126105115761040e612471565b610416611d6f565b61041e612220565b6001600160a01b03831692831561050257848080809334905af1610440611c4a565b50156104f3578394833b156103a557604051636481451b60e11b8152602060048201528581806104736024820188611c92565b038183895af19081156104e85786916104d3575b50506104bb7fde7603a6ed5d07c9f43597ccfe9043d15b66d3284f0de321f5cdf56329e6e035936040519384933485611cf0565b0390a360016000805160206128698339815191525580f35b816104dd91611a90565b6103a5578438610487565b6040513d88823e3d90fd5b632b3f6d1160e21b8452600484fd5b63d92e233d60e01b8552600485fd5b8380fd5b5080fd5b50346101d15760603660031901126101d157610533611956565b61053b611987565b610543611971565b916000805160206128a9833981519152549260ff8460401c1615936001600160401b03811680159081610727575b600114908161071d575b159081610714575b506107055767ffffffffffffffff1981166001176000805160206128a983398151915255846106d8575b506001600160a01b03821690811580156106c7575b6106b8579061061861063b93926105d7612719565b6105df612719565b6105e7612719565b600160008051602061286983398151915255610601612719565b610609612719565b61061281612033565b506120cd565b50610622826120cd565b506001600160601b0360a01b6001541617600155611fad565b5060018060a01b03166001600160601b0360a01b600354161760035561065e5780f35b68ff0000000000000000196000805160206128a983398151915254166000805160206128a9833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b63d92e233d60e01b8652600486fd5b506001600160a01b038416156105c2565b68ffffffffffffffffff191668010000000000000001176000805160206128a983398151915255386105ad565b63f92ee8a960e01b8652600486fd5b90501538610583565b303b15915061057b565b869150610571565b50346101d15760203660031901126101d157610749611956565b610751611d1c565b6001600160a01b03811690811561079c5782546001600160a01b031661078d5761077a90611eeb565b5081546001600160a01b03191617815580f35b631666fe6f60e31b8352600483fd5b63d92e233d60e01b8352600483fd5b50346101d157806003193601126101d157506107f46040516107ce604082611a90565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611a6b565b0390f35b50346101d15760a03660031901126101d157610812611956565b61081a611987565b906044356064356001600160401b0381116103a55761083d9036906004016119b1565b91608435926001600160401b0384116103a1576080846004019460031990360301126103a15761086b612471565b610873611e2f565b61087b612220565b811561093a576001600160a01b03861694851561037f576001600160a01b0316956108a890839088612682565b843b156103a157604051636481451b60e11b81526020600482015287908181806108d5602482018a611c92565b0381838b5af1801561092f5761091a575b50507fde7603a6ed5d07c9f43597ccfe9043d15b66d3284f0de321f5cdf56329e6e035936104bb9160405194859485611cf0565b8161092491611a90565b6103a15786386108e6565b6040513d84823e3d90fd5b63951e19ed60e01b8752600487fd5b50346101d157806003193601126101d15760206040516000805160206127a98339815191528152f35b50346101d157806003193601126101d15760206040516104008152f35b50346101d157806003193601126101d157602090604051908152f35b50346101d15760203660031901126101d1576109c5611956565b6109cd611d1c565b6001600160a01b03811690811561079c576001546109fe91906109f8906001600160a01b031661233b565b50611fad565b50600154604080516001600160a01b0383168152602081018490527f3a7b8d6372645f474fe60c115a2ef21421306a3ed4664fa0023c461413c085799190a16001600160a01b0319161760015580f35b50346101d15760403660031901126101d1576040610a6a611987565b916004358152600080516020612829833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346101d157806003193601126101d157610ac0611dbd565b610ac8612220565b600160ff19600080516020612849833981519152541617600080516020612849833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101d157366003190160a08112610515576020136101d157610b3e611987565b610b46611971565b906064356084356001600160401b0381116103a557610b699036906004016119b1565b610b74929192612471565b610b7c611e2f565b610b84612220565b8115610f1a576001600160a01b038516948515610f0b57610ba58186612622565b15610eea5760405163095ea7b360e01b81526001600160a01b03828116600483015260248201859052861695906020816044818c8b5af1908115610e55578991610ecb575b5015610eb457610c1b91906001600160a01b03610c05611c1a565b16610ea957610c1584878461258a565b50612622565b15610e92576040516370a0823160e01b8152306004820152602081602481885afa908115610d52578791610e60575b5080610c73575b50906104bb600080516020612809833981519152939260405193849384611c30565b6003546001600160a01b03168503610dbe5760025460405163095ea7b360e01b81526001600160a01b039091166004820152602481018290526020816044818b8a5af1908115610db3578891610d84575b5015610d61576002548791906001600160a01b0316803b15610d5d5760248392604051948593849263743e0c9b60e01b845260048401525af18015610d5257610d28575b50906104bb60008051602061280983398151915293925b91929350610c51565b86610d48600080516020612809833981519152959493986104bb93611a90565b9691929350610d08565b6040513d89823e3d90fd5b8280fd5b60025463482b72c160e11b885260048690526001600160a01b0316602452604487fd5b610da6915060203d602011610dac575b610d9e8183611a90565b810190611c7a565b38610cc4565b503d610d94565b6040513d8a823e3d90fd5b8654604051636c9b2a3f60e11b8152600481018790526001600160a01b0390911690602081602481855afa908115610e55578991610e36575b5015610e225791610e1d6104bb9260008051602061280983398151915296959488612682565b610d1f565b631387a34960e01b88526004869052602488fd5b610e4f915060203d602011610dac57610d9e8183611a90565b38610df7565b6040513d8b823e3d90fd5b90506020813d602011610e8a575b81610e7b60209383611a90565b810103126103a1575138610c4a565b3d9150610e6e565b604486868663482b72c160e11b8352600452602452fd5b610c158487846124ad565b604488888863482b72c160e11b8352600452602452fd5b610ee4915060203d602011610dac57610d9e8183611a90565b38610bea565b63482b72c160e11b87526001600160a01b0385166004526024869052604487fd5b63d92e233d60e01b8752600487fd5b63951e19ed60e01b8652600486fd5b50610f33366119de565b909192610f3e612220565b3415610ffd576001600160a01b03169283156105025760608201610400610f70610f688386611ae2565b905086611bd6565b11610fec5750848080803460018060a01b03600154165af1610f90611c4a565b5015610fdd577fa795d4377323e4c2d4c346b8050a7dd504c4043be8884c81b8d9690706c8388f916103396103479260405195348752886020880152608060408801526080870191611b45565b6379cacff160e01b8552600485fd5b8561036a8561036260449487611ae2565b633b38932f60e11b8552600485fd5b5060403660031901126101d157611021611956565b602435906001600160401b038211610d5d57816004019060a060031984360301126105115761104e612220565b341561112c576001600160a01b031691821561111d576064016104006110748284611ae2565b9050116110fa5750828080803460018060a01b03600154165af1611096611c4a565b50156110eb577fc6f891b65320c682b217616a62b51f218fee95d5f0ba83e758ef9ab4ee8e975c610347604051923484528560208501526080604085015285608085015260a0606085015260a0840190611b66565b6379cacff160e01b8352600483fd5b6111078491604493611ae2565b634fe7bc4760e11b835260045250610400602452fd5b63d92e233d60e01b8452600484fd5b633b38932f60e11b8452600484fd5b50346101d157806003193601126101d15760206040517f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b98152f35b50346101d157806003193601126101d157602060ff60008051602061284983398151915254166040519015158152f35b50346101d157806003193601126101d1576001546040516001600160a01b039091168152602090f35b50346101d157806003193601126101d1576002546040516001600160a01b039091168152602090f35b50346101d157806003193601126101d1577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036112515760206040516000805160206127e98339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101d157611275611956565b602435906001600160401b038211610d5d5736602383011215610d5d57816004013590836112a283611ac7565b936112b06040519586611a90565b83855260208501933660248284010111610d5d57806024602093018637850101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630811490811561145e575b5061144f57611313611d1c565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa86918161141b575b5061135657634c9c8ce360e01b86526004859052602486fd5b93846000805160206127e98339815191528796036114095750823b156113f7576000805160206127e983398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a28051156113dc576102329382915190845af46113d6611c4a565b91612747565b50505050346113e85780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011611447575b8161143760209383611a90565b810103126103a15751903861133d565b3d915061142a565b63703e46dd60e11b8452600484fd5b6000805160206127e9833981519152546001600160a01b03161415905038611306565b50346101d157806003193601126101d15761149a611dbd565b6000805160206128498339815191525460ff8116156114f45760ff1916600080516020612849833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50366003190160608112610515576020136101d157611520611987565b6044356001600160401b038111610d5d5761153f9036906004016119b1565b61154a929192612471565b611552611d6f565b61155a612220565b6001600160a01b038216918215610502576107f494507fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f919081856001600160a01b036115a5611c1a565b166115ee576115b39261258a565b935b6115c56040519283923484611c30565b0390a2600160008051602061286983398151915255604051918291602083526020830190611a6b565b6115f7926124ad565b936115b5565b50346101d15760403660031901126101d157611617611987565b336001600160a01b0382160361163357610232906004356123d1565b63334bd91960e11b8252600482fd5b50346101d15760403660031901126101d157610232600435611662611987565b9061166f61022882611bf9565b612189565b50346101d15760203660031901126101d1576020611693600435611bf9565b604051908152f35b50346101d157806003193601126101d1576003546040516001600160a01b039091168152602090f35b50346101d1576116d3366119de565b9190926116de612220565b6020830135801515810361179b5761178c576001600160a01b0316928315610502576117186117106060850185611ae2565b905082611bd6565b61040081116117745750907fd34634f30f94a646fdf4ce7078f38fc5fa0d3f0b193658facea4e3e43330d9749161176e61175f604051938493604085526040850191611b45565b82810360208401523395611b66565b0390a380f35b634fe7bc4760e11b8652600452610400602452604485fd5b630cda5ff960e11b8552600485fd5b8580fd5b50346101d15760803660031901126101d1576117b9611956565b6024356117c4611971565b91606435926001600160401b0384116103a557836004019160a0600319863603011261179b576117f2612220565b8315610f1a576001600160a01b03169384156106b8576064016104006118188285611ae2565b90501161188257507fc6f891b65320c682b217616a62b51f218fee95d5f0ba83e758ef9ab4ee8e975c918161185185610347943361224a565b60405194855260018060a01b031660208501526080604085015285608085015260a0606085015260a0840190611b66565b8561110760449285611ae2565b50346101d15760203660031901126101d1576118a9611956565b6118b1611d1c565b6001600160a01b03811690811561079c576002546001600160a01b03166118f2576118db90611eeb565b506001600160601b0360a01b600254161760025580f35b630646e00b60e11b8352600483fd5b9050346105155760203660031901126105155760043563ffffffff60e01b8116809103610d5d5760209250637965db0b60e01b8114908115611945575b5015158152f35b6301ffc9a760e01b1490503861193e565b600435906001600160a01b038216820361196c57565b600080fd5b604435906001600160a01b038216820361196c57565b602435906001600160a01b038216820361196c57565b35906001600160a01b038216820361196c57565b9181601f8401121561196c578235916001600160401b03831161196c576020838186019501011161196c57565b90606060031983011261196c576004356001600160a01b038116810361196c57916024356001600160401b03811161196c5781611a1d916004016119b1565b92909291604435906001600160401b03821161196c5760a090829003600319011261196c5760040190565b60005b838110611a5b5750506000910152565b8181015183820152602001611a4b565b90602091611a8481518092818552858086019101611a48565b601f01601f1916010190565b90601f801991011681019081106001600160401b03821117611ab157604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b038111611ab157601f01601f191660200190565b903590601e198136030182121561196c57018035906001600160401b03821161196c5760200191813603831361196c57565b9035601e198236030181121561196c5701602081359101916001600160401b03821161196c57813603831361196c57565b908060209392818452848401376000828201840152601f01601f1916010190565b906001600160a01b03611b788361199d565b168152602082013580151580910361196c5760208201526001600160a01b03611ba36040840161199d565b166040820152608080611bcd611bbc6060860186611b14565b60a0606087015260a0860191611b45565b93013591015290565b91908201809211611be357565b634e487b7160e01b600052601160045260246000fd5b60005260008051602061282983398151915260205260016040600020015490565b6004356001600160a01b038116810361196c5790565b604090611c47949281528160208201520191611b45565b90565b3d15611c75573d90611c5b82611ac7565b91611c696040519384611a90565b82523d6000602084013e565b606090565b9081602091031261196c5751801515810361196c5790565b611c479190608090611ce0906001600160a01b03611caf8261199d565b1684526001600160a01b03611cc66020830161199d565b166020850152604081013560408501526060810190611b14565b9190928160608201520191611b45565b9291611c479492611d0e928552606060208601526060850191611b45565b916040818403910152611c92565b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1615611d5557565b63e2517d3f60e01b60005233600452600060245260446000fd5b336000908152600080516020612889833981519152602052604090205460ff1615611d9657565b63e2517d3f60e01b600052336004526000805160206127a983398151915260245260446000fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1615611df657565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527f8e1abba0e730025cbab32adfc4f51c1ad3a74360c4b2cfb4780a6c5f316e0509602052604090205460ff1615611e6857565b63e2517d3f60e01b600052336004527f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b960245260446000fd5b60008181526000805160206128298339815191526020908152604080832033845290915290205460ff1615611ed35750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b03811660009081527f8e1abba0e730025cbab32adfc4f51c1ad3a74360c4b2cfb4780a6c5f316e0509602052604090205460ff16611fa7576001600160a01b031660008181527f8e1abba0e730025cbab32adfc4f51c1ad3a74360c4b2cfb4780a6c5f316e050960205260408120805460ff191660011790553391907f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b9906000805160206127c98339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020612889833981519152602052604090205460ff16611fa7576001600160a01b0316600081815260008051602061288983398151915260205260408120805460ff191660011790553391906000805160206127a9833981519152906000805160206127c98339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16611fa7576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391906000805160206127c98339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff16611fa7576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a906000805160206127c98339815191529080a4600190565b6000818152600080516020612829833981519152602090815260408083206001600160a01b038616845290915290205460ff16612219576000818152600080516020612829833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291906000805160206127c98339815191529080a4600190565b5050600090565b60ff600080516020612849833981519152541661223957565b63d93c066560e01b60005260046000fd5b60035492939290916001600160a01b03908116911681036122765763e4dd681d60e01b60005260046000fd5b600054604051636c9b2a3f60e11b8152600481018390526001600160a01b039091169490602081602481895afa90811561232f57600091612310575b50156122fb576122f99394604051936323b872dd60e01b602086015260018060a01b0316602485015260448401526064830152606482526122f4608483611a90565b6126be565b565b50631387a34960e01b60005260045260246000fd5b612329915060203d602011610dac57610d9e8183611a90565b386122b2565b6040513d6000823e3d90fd5b6001600160a01b0381166000908152600080516020612889833981519152602052604090205460ff1615611fa7576001600160a01b0316600081815260008051602061288983398151915260205260408120805460ff191690553391906000805160206127a9833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020612829833981519152602090815260408083206001600160a01b038616845290915290205460ff1615612219576000818152600080516020612829833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6002600080516020612869833981519152541461249c57600260008051602061286983398151915255565b633ee5aeb560e01b60005260046000fd5b6040516319db301560e21b815292916004356001600160a01b03811692919083900361196c57846124f581949260009683946004850152604060248501526044840191611b45565b039134906001600160a01b03165af190811561232f57600091612516575090565b903d8082843e6125268184611a90565b820191602081840312610515578051906001600160401b038211610d5d570182601f820112156105155780519161255c83611ac7565b9361256a6040519586611a90565b838552602084840101116101d1575090611c479160208085019101611a48565b9060048310156125d2575b908260009392849360405192839283378101848152039134905af16125b8611c4a565b90156125c15790565b632b3f6d1160e21b60005260046000fd5b9081356001600160e01b0319166319db301560e21b811461261157636481451b60e11b146126005790612595565b6379a2cd4b60e11b60005260046000fd5b63ed69977560e01b60005260046000fd5b60405163095ea7b360e01b81526001600160a01b039283166004820152600060248201819052909260209284926044928492165af190811561232f57600091612669575090565b611c47915060203d602011610dac57610d9e8183611a90565b60405163a9059cbb60e01b60208201526001600160a01b039290921660248301526044808301939093529181526122f9916122f4606483611a90565b906000602091828151910182855af11561232f576000513d61271057506001600160a01b0381163b155b6126ef5750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b600114156126e8565b60ff6000805160206128a98339815191525460401c161561273657565b631afcd79f60e31b60005260046000fd5b9061276d575080511561275c57805190602001fd5b63d6bda27560e01b60005260046000fd5b8151158061279f575b61277e575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b1561277656fe0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b738202dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f007bdc20c26beb8eedd348733c28a5c4c2f7f7f1183cba8898195258fcdca273bcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220e3ceedd3e1180302ea91f43717e98df4951453d3ade1c5982edc0e113031242064736f6c634300081a003360a0806040523460295730608052611bc4908161002f8239608051818181610bd40152610ca50152f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a71461107a57508063106e629014610fe2578063116191b614610fbb57806321e093b114610f92578063248a9ca314610f6b5780632f2ff15d14610f3957806336568abe14610ef45780633f4ba83a14610e725780634f1ef28614610c2957806352d1902d14610bc15780635b11259114610b985780635c975abb14610b685780636f8728ad146109a45780636fb9a7af1461081a578063743e0c9b146107b35780638456cb591461073e57806385f438c11461071557806391d14854146106bc578063950837aa146105ea578063a217fddf146105ce578063a783c78914610593578063ad3cb1cc14610519578063d547741f146104de578063e63ab1e9146104a35763f8c8765e1461013457600080fd5b346104a05760803660031901126104a05761014d6110cf565b6101556110ea565b906044356001600160a01b03811680820361049c576064356001600160a01b0381169490919085830361049857600080516020611b6f833981519152549567ffffffffffffffff60ff8860401c1615971680159081610490575b6001149081610486575b15908161047d575b5061046e57866101cf611259565b61043c575b600080516020611b6f833981519152549567ffffffffffffffff60ff8860401c1615971680159081610434575b600114908161042a575b159081610421575b506104125786610221611259565b6103e0575b6001600160a01b03169081159081156103ce575b81156103c5575b81156103bc575b506103ad57916102f49493916102ee936102606119df565b6102686119df565b6102706119df565b6001600080516020611b0f8339815191525561028a6119df565b6102926119df565b6001600160601b0360a01b8a541617895560018060a01b03166001600160601b0360a01b60015416176001556001600160601b0360a01b60025416176002556102da816115ad565b506102e483611489565b506102ee83611515565b50611647565b50610356575b6103015780f35b60ff60401b19600080516020611b6f8339815191525416600080516020611b6f833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b60ff60401b19600080516020611b6f8339815191525416600080516020611b6f833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a16102fa565b63d92e233d60e01b8852600488fd5b90501538610248565b84159150610241565b6001600160a01b03841615915061023a565b600160401b60ff60401b19600080516020611b6f833981519152541617600080516020611b6f83398151915255610226565b63f92ee8a960e01b8952600489fd5b90501538610213565b303b15915061020b565b889150610201565b600160401b60ff60401b19600080516020611b6f833981519152541617600080516020611b6f833981519152556101d4565b63f92ee8a960e01b8852600488fd5b905015386101c1565b303b1591506101b9565b8891506101af565b8680fd5b8480fd5b80fd5b50346104a057806003193601126104a05760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346104a05760403660031901126104a0576105156004356104fe6110ea565b9061051061050b82611196565b6113d8565b6118d8565b5080f35b50346104a057806003193601126104a05760408051916105398284611114565b60058352640352e302e360dc1b6020840152815192839160208352815191826020850152815b83811061057c575050828201840152601f01601f19168101030190f35b60208282018101518883018801528795500161055f565b50346104a057806003193601126104a05760206040517f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb8152f35b50346104a057806003193601126104a057602090604051908152f35b50346104a05760203660031901126104a0576106046110cf565b61060c611385565b6001600160a01b0381169081156106ad5760025461065d9190610637906001600160a01b031661179a565b5060025461064d906001600160a01b0316611830565b5061065781611489565b50611515565b50600254604080516001600160a01b0383168152602081018490527f33770ab682353c17917ad3e667f05905fc8dda00671ef1ed33bef9bc8db0323e9190a16001600160a01b0319161760025580f35b63d92e233d60e01b8352600483fd5b50346104a05760403660031901126104a05760406106d86110ea565b916004358152600080516020611acf833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346104a057806003193601126104a0576020604051600080516020611aaf8339815191528152f35b50346104a057806003193601126104a057610757611313565b61075f611422565b600160ff19600080516020611aef833981519152541617600080516020611aef833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346104a05760203660031901126104a0576107cd611422565b6001546040516323b872dd60e01b60208201523360248201523060448201526004356064808301919091528152610817916001600160a01b0316610812608483611114565b611978565b80f35b50346104a057366003190160a081126109a0576020136104a05761083c6110ea565b60443560643567ffffffffffffffff811161099c5761085f903690600401611168565b9091610869611289565b6108716112c5565b610879611422565b60015485546108969183916001600160a01b03908116911661144c565b84546001546001600160a01b03918216958792909116863b1561099857604051633ddf4d7d60e11b81529183918391906001600160a01b036108d66110cf565b16600484015260248301526001600160a01b0316604482018190526064820186905260a060848301529781838161091160a482018b8d6111b7565b03925af1801561098d57610978575b50506109607f23b9573b29ff81f01c7aa1968188e1cb7d5858b08582e111fdaf386d9ef9bd8d9360405193849384526040602085015260408401916111b7565b0390a26001600080516020611b0f8339815191525580f35b8161098291611114565b61049c578438610920565b6040513d84823e3d90fd5b8280fd5b8380fd5b5080fd5b50346104a05760a03660031901126104a0576109be6110cf565b906024359060443567ffffffffffffffff81116109a0576109e3903690600401611168565b909260843567ffffffffffffffff811161099c5760808160040191600319903603011261099c57610a12611289565b610a1a6112c5565b610a22611422565b6001548454610a3f9184916001600160a01b03908116911661144c565b83546001546001600160a01b03918216979116873b15610b645794610aa78798610ab99383809a996040519687958694859363aa0c0fc160e01b8552600485015260018060a01b03169c8d60248501528b604485015260a060648501528c60a48501916111b7565b828103600319016084840152896111d8565b03925af18015610b5957610b1b575b5061096090610b0d7f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff095969760405195869586526060602087015260608601916111b7565b9083820360408501526111d8565b90610b0d86610b4f7f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff0979861096095611114565b9695505090610ac8565b6040513d88823e3d90fd5b8580fd5b50346104a057806003193601126104a057602060ff600080516020611aef83398151915254166040519015158152f35b50346104a057806003193601126104a0576002546040516001600160a01b039091168152602090f35b50346104a057806003193601126104a0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610c1a576020604051600080516020611a8f8339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126104a057610c3e6110cf565b6024359067ffffffffffffffff821161099857366023830112156109985781600401359083610c6c8361114c565b93610c7a6040519586611114565b8385526020850193366024828401011161099857806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610e4f575b50610e4057610cdd611385565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181610e0c575b50610d2057634c9c8ce360e01b86526004859052602486fd5b9384600080516020611a8f833981519152879603610dfa5750823b15610de857600080516020611a8f83398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115610dcd576105159382915190845af43d15610dc5573d91610da98361114c565b92610db76040519485611114565b83523d85602085013e611a0d565b606091611a0d565b5050505034610dd95780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011610e38575b81610e2860209383611114565b8101031261049857519038610d07565b3d9150610e1b565b63703e46dd60e11b8452600484fd5b600080516020611a8f833981519152546001600160a01b03161415905038610cd0565b50346104a057806003193601126104a057610e8b611313565b600080516020611aef8339815191525460ff811615610ee55760ff1916600080516020611aef833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346104a05760403660031901126104a057610f0e6110ea565b336001600160a01b03821603610f2a57610515906004356118d8565b63334bd91960e11b8252600482fd5b50346104a05760403660031901126104a057610515600435610f596110ea565b90610f6661050b82611196565b611703565b50346104a05760203660031901126104a0576020610f8a600435611196565b604051908152f35b50346104a057806003193601126104a0576001546040516001600160a01b039091168152602090f35b50346104a057806003193601126104a057546040516001600160a01b039091168152602090f35b50346104a05760603660031901126104a057610ffc6110cf565b7f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d560206024359261102b611289565b6110336112c5565b61103b611422565b60015461105490859083906001600160a01b031661144c565b6040519384526001600160a01b031692a26001600080516020611b0f8339815191525580f35b9050346109a05760203660031901126109a05760043563ffffffff60e01b81168091036109985760209250637965db0b60e01b81149081156110be575b5015158152f35b6301ffc9a760e01b149050386110b7565b600435906001600160a01b03821682036110e557565b600080fd5b602435906001600160a01b03821682036110e557565b35906001600160a01b03821682036110e557565b90601f8019910116810190811067ffffffffffffffff82111761113657604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161113657601f01601f191660200190565b9181601f840112156110e55782359167ffffffffffffffff83116110e557602083818601950101116110e557565b600052600080516020611acf83398151915260205260016040600020015490565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160a01b036111e982611100565b1682526001600160a01b0361120060208301611100565b166020830152604081013560408301526060810135601e19823603018112156110e557016020813591019067ffffffffffffffff81116110e55780360382136110e55760808381606061125696015201916111b7565b90565b600167ffffffffffffffff19600080516020611b6f833981519152541617600080516020611b6f83398151915255565b6002600080516020611b0f83398151915254146112b4576002600080516020611b0f83398151915255565b633ee5aeb560e01b60005260046000fd5b336000908152600080516020611b2f833981519152602052604090205460ff16156112ec57565b63e2517d3f60e01b60005233600452600080516020611aaf83398151915260245260446000fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561134c57565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16156113be57565b63e2517d3f60e01b60005233600452600060245260446000fd5b6000818152600080516020611acf8339815191526020908152604080832033845290915290205460ff161561140a5750565b63e2517d3f60e01b6000523360045260245260446000fd5b60ff600080516020611aef833981519152541661143b57565b63d93c066560e01b60005260046000fd5b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815261148791610812606483611114565b565b6001600160a01b0381166000908152600080516020611b2f833981519152602052604090205460ff1661150f576001600160a01b03166000818152600080516020611b2f83398151915260205260408120805460ff19166001179055339190600080516020611aaf83398151915290600080516020611a6f8339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020611b4f833981519152602052604090205460ff1661150f576001600160a01b03166000818152600080516020611b4f83398151915260205260408120805460ff191660011790553391907f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb90600080516020611a6f8339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1661150f576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff19166001179055339190600080516020611a6f8339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1661150f576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a90600080516020611a6f8339815191529080a4600190565b6000818152600080516020611acf833981519152602090815260408083206001600160a01b038616845290915290205460ff16611793576000818152600080516020611acf833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff1916600117905533929190600080516020611a6f8339815191529080a4600190565b5050600090565b6001600160a01b0381166000908152600080516020611b2f833981519152602052604090205460ff161561150f576001600160a01b03166000818152600080516020611b2f83398151915260205260408120805460ff19169055339190600080516020611aaf833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381166000908152600080516020611b4f833981519152602052604090205460ff161561150f576001600160a01b03166000818152600080516020611b4f83398151915260205260408120805460ff191690553391907f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020611acf833981519152602090815260408083206001600160a01b038616845290915290205460ff1615611793576000818152600080516020611acf833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b906000602091828151910182855af1156119d3576000513d6119ca57506001600160a01b0381163b155b6119a95750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b600114156119a2565b6040513d6000823e3d90fd5b60ff600080516020611b6f8339815191525460401c16156119fc57565b631afcd79f60e31b60005260046000fd5b90611a335750805115611a2257805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611a65575b611a44575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15611a3c56fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00395f4e35a18c2b5e556b3b2ff855307e76c0b3cc1ca71e19a70e83037e08e7b37bdc20c26beb8eedd348733c28a5c4c2f7f7f1183cba8898195258fcdca273bcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212202bdad00032481621f5688942b2f2636896811e160d422fd2afd2200c14598d1164736f6c634300081a003360a0806040523460295730608052611ce5908161002f8239608051818181610cb70152610d880152f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a71461115157508063106e6290146110c5578063116191b61461109e57806321e093b114611075578063248a9ca31461104e5780632f2ff15d1461101c57806336568abe14610fd75780633f4ba83a14610f555780634f1ef28614610d0c57806352d1902d14610ca45780635b11259114610c7b5780635c975abb14610c4b5780636f8728ad14610a8a5780636f8b44b0146109d85780636fb9a7af1461085c578063743e0c9b146107db5780638456cb591461076657806385f438c11461073d57806391d14854146106e4578063950837aa14610612578063a217fddf146105f6578063a783c789146105cd578063ad3cb1cc14610553578063d547741f14610518578063d5abeb01146104fa578063e63ab1e9146104bf5763f8c8765e1461014a57600080fd5b346104bc5760803660031901126104bc576101636111a6565b61016b6111c1565b906044356001600160a01b0381168082036104b8576064356001600160a01b038116949091908583036104b457600080516020611c90833981519152549567ffffffffffffffff60ff8860401c16159716801590816104ac575b60011490816104a2575b159081610499575b5061048a57866101e5611330565b610458575b600080516020611c90833981519152549567ffffffffffffffff60ff8860401c1615971680159081610450575b6001149081610446575b15908161043d575b5061042e5786610237611330565b6103fc575b6001600160a01b03169081159081156103ea575b81156103e1575b81156103d8575b506103c9579161030a94939161030493610276611ae0565b61027e611ae0565b610286611ae0565b6001600080516020611c30833981519152556102a0611ae0565b6102a8611ae0565b6001600160601b0360a01b8a541617895560018060a01b03166001600160601b0360a01b60015416176001556001600160601b0360a01b60025416176002556102f081611727565b506102fa83611615565b50610304836116a1565b506117c1565b50610372575b60001960035561031d5780f35b60ff60401b19600080516020611c908339815191525416600080516020611c90833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b60ff60401b19600080516020611c908339815191525416600080516020611c90833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1610310565b63d92e233d60e01b8852600488fd5b9050153861025e565b84159150610257565b6001600160a01b038416159150610250565b600160401b60ff60401b19600080516020611c90833981519152541617600080516020611c908339815191525561023c565b63f92ee8a960e01b8952600489fd5b90501538610229565b303b159150610221565b889150610217565b600160401b60ff60401b19600080516020611c90833981519152541617600080516020611c90833981519152556101ea565b63f92ee8a960e01b8852600488fd5b905015386101d7565b303b1591506101cf565b8891506101c5565b8680fd5b8480fd5b80fd5b50346104bc57806003193601126104bc5760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346104bc57806003193601126104bc576020600354604051908152f35b50346104bc5760403660031901126104bc5761054f6004356105386111c1565b9061054a6105458261126d565b6114af565b611a40565b5080f35b50346104bc57806003193601126104bc57604080519161057382846111eb565b60058352640352e302e360dc1b6020840152815192839160208352815191826020850152815b8381106105b6575050828201840152601f01601f19168101030190f35b602082820181015188830188015287955001610599565b50346104bc57806003193601126104bc576020604051600080516020611b708339815191528152f35b50346104bc57806003193601126104bc57602090604051908152f35b50346104bc5760203660031901126104bc5761062c6111a6565b61063461145c565b6001600160a01b0381169081156106d557600254610685919061065f906001600160a01b0316611914565b50600254610675906001600160a01b03166119aa565b5061067f81611615565b506116a1565b50600254604080516001600160a01b0383168152602081018490527f33770ab682353c17917ad3e667f05905fc8dda00671ef1ed33bef9bc8db0323e9190a16001600160a01b0319161760025580f35b63d92e233d60e01b8352600483fd5b50346104bc5760403660031901126104bc5760406107006111c1565b916004358152600080516020611bf0833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346104bc57806003193601126104bc576020604051600080516020611bd08339815191528152f35b50346104bc57806003193601126104bc5761077f6113ea565b6107876114f9565b600160ff19600080516020611c10833981519152541617600080516020611c10833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346104bc5760203660031901126104bc576107f56114f9565b60015481906001600160a01b0316803b156108595781809160446040518094819363079cc67960e41b835233600484015260043560248401525af1801561084e5761083d5750f35b81610847916111eb565b6104bc5780f35b6040513d84823e3d90fd5b50fd5b50346104bc57366003190160a081126109d4576020136104bc5761087e6111c1565b60443560643567ffffffffffffffff81116109d0576108a190369060040161123f565b90916108ab611360565b6108b361139c565b6108bb6114f9565b84546108d5906084359083906001600160a01b0316611523565b84546001546001600160a01b03918216958792909116863b156109cc57604051633ddf4d7d60e11b81529183918391906001600160a01b036109156111a6565b16600484015260248301526001600160a01b0316604482018190526064820186905260a060848301529781838161095060a482018b8d61128e565b03925af1801561084e576109b7575b505061099f7f23b9573b29ff81f01c7aa1968188e1cb7d5858b08582e111fdaf386d9ef9bd8d93604051938493845260406020850152604084019161128e565b0390a26001600080516020611c308339815191525580f35b816109c1916111eb565b6104b857843861095f565b8280fd5b8380fd5b5080fd5b50346104bc5760203660031901126104bc57600080516020611b708339815191528152600080516020611bf08339815191526020908152604080832033600090815292529020546004359060ff1615610a655760207f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c91610a576114f9565b80600355604051908152a180f35b63e2517d3f60e01b825233600452600080516020611b70833981519152602452604482fd5b50346104bc5760a03660031901126104bc57610aa46111a6565b906024359060443567ffffffffffffffff81116109d457610ac990369060040161123f565b909260843567ffffffffffffffff81116109d0576080816004019160031990360301126109d057610af8611360565b610b0061139c565b610b086114f9565b8354610b22906064359084906001600160a01b0316611523565b83546001546001600160a01b03918216979116873b15610c475794610b8a8798610b9c9383809a996040519687958694859363aa0c0fc160e01b8552600485015260018060a01b03169c8d60248501528b604485015260a060648501528c60a485019161128e565b828103600319016084840152896112af565b03925af18015610c3c57610bfe575b5061099f90610bf07f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff0959697604051958695865260606020870152606086019161128e565b9083820360408501526112af565b90610bf086610c327f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff0979861099f956111eb565b9695505090610bab565b6040513d88823e3d90fd5b8580fd5b50346104bc57806003193601126104bc57602060ff600080516020611c1083398151915254166040519015158152f35b50346104bc57806003193601126104bc576002546040516001600160a01b039091168152602090f35b50346104bc57806003193601126104bc577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610cfd576020604051600080516020611bb08339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126104bc57610d216111a6565b6024359067ffffffffffffffff82116109cc57366023830112156109cc5781600401359083610d4f83611223565b93610d5d60405195866111eb565b838552602085019336602482840101116109cc57806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610f32575b50610f2357610dc061145c565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181610eef575b50610e0357634c9c8ce360e01b86526004859052602486fd5b9384600080516020611bb0833981519152879603610edd5750823b15610ecb57600080516020611bb083398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115610eb05761054f9382915190845af43d15610ea8573d91610e8c83611223565b92610e9a60405194856111eb565b83523d85602085013e611b0e565b606091611b0e565b5050505034610ebc5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011610f1b575b81610f0b602093836111eb565b810103126104b457519038610dea565b3d9150610efe565b63703e46dd60e11b8452600484fd5b600080516020611bb0833981519152546001600160a01b03161415905038610db3565b50346104bc57806003193601126104bc57610f6e6113ea565b600080516020611c108339815191525460ff811615610fc85760ff1916600080516020611c10833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346104bc5760403660031901126104bc57610ff16111c1565b336001600160a01b0382160361100d5761054f90600435611a40565b63334bd91960e11b8252600482fd5b50346104bc5760403660031901126104bc5761054f60043561103c6111c1565b906110496105458261126d565b61187d565b50346104bc5760203660031901126104bc57602061106d60043561126d565b604051908152f35b50346104bc57806003193601126104bc576001546040516001600160a01b039091168152602090f35b50346104bc57806003193601126104bc57546040516001600160a01b039091168152602090f35b50346104bc5760603660031901126104bc576110df6111a6565b7f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d560206024359261110e611360565b61111661139c565b61111e6114f9565b61112b6044358583611523565b6040519384526001600160a01b031692a26001600080516020611c308339815191525580f35b9050346109d45760203660031901126109d45760043563ffffffff60e01b81168091036109cc5760209250637965db0b60e01b8114908115611195575b5015158152f35b6301ffc9a760e01b1490503861118e565b600435906001600160a01b03821682036111bc57565b600080fd5b602435906001600160a01b03821682036111bc57565b35906001600160a01b03821682036111bc57565b90601f8019910116810190811067ffffffffffffffff82111761120d57604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161120d57601f01601f191660200190565b9181601f840112156111bc5782359167ffffffffffffffff83116111bc57602083818601950101116111bc57565b600052600080516020611bf083398151915260205260016040600020015490565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160a01b036112c0826111d7565b1682526001600160a01b036112d7602083016111d7565b166020830152604081013560408301526060810135601e19823603018112156111bc57016020813591019067ffffffffffffffff81116111bc5780360382136111bc5760808381606061132d960152019161128e565b90565b600167ffffffffffffffff19600080516020611c90833981519152541617600080516020611c9083398151915255565b6002600080516020611c30833981519152541461138b576002600080516020611c3083398151915255565b633ee5aeb560e01b60005260046000fd5b336000908152600080516020611c50833981519152602052604090205460ff16156113c357565b63e2517d3f60e01b60005233600452600080516020611bd083398151915260245260446000fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561142357565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff161561149557565b63e2517d3f60e01b60005233600452600060245260446000fd5b6000818152600080516020611bf08339815191526020908152604080832033845290915290205460ff16156114e15750565b63e2517d3f60e01b6000523360045260245260446000fd5b60ff600080516020611c10833981519152541661151257565b63d93c066560e01b60005260046000fd5b6001546040516318160ddd60e01b81526000949392916001600160a01b031690602081600481855afa908115610c3c5786916115e3575b5083018084116115cf57600354106115c057803b156104b857849291836064926040519687958694630f22c5f760e11b865260018060a01b03166004860152602485015260448401525af1801561084e576115b3575050565b816115bd916111eb565b50565b63c30436e960e01b8552600485fd5b634e487b7160e01b86526011600452602486fd5b90506020813d60201161160d575b816115fe602093836111eb565b81010312610c4757513861155a565b3d91506115f1565b6001600160a01b0381166000908152600080516020611c50833981519152602052604090205460ff1661169b576001600160a01b03166000818152600080516020611c5083398151915260205260408120805460ff19166001179055339190600080516020611bd083398151915290600080516020611b908339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020611c70833981519152602052604090205460ff1661169b576001600160a01b03166000818152600080516020611c7083398151915260205260408120805460ff19166001179055339190600080516020611b7083398151915290600080516020611b908339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1661169b576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff19166001179055339190600080516020611b908339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1661169b576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a90600080516020611b908339815191529080a4600190565b6000818152600080516020611bf0833981519152602090815260408083206001600160a01b038616845290915290205460ff1661190d576000818152600080516020611bf0833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff1916600117905533929190600080516020611b908339815191529080a4600190565b5050600090565b6001600160a01b0381166000908152600080516020611c50833981519152602052604090205460ff161561169b576001600160a01b03166000818152600080516020611c5083398151915260205260408120805460ff19169055339190600080516020611bd0833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381166000908152600080516020611c70833981519152602052604090205460ff161561169b576001600160a01b03166000818152600080516020611c7083398151915260205260408120805460ff19169055339190600080516020611b70833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020611bf0833981519152602090815260408083206001600160a01b038616845290915290205460ff161561190d576000818152600080516020611bf0833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b60ff600080516020611c908339815191525460401c1615611afd57565b631afcd79f60e31b60005260046000fd5b90611b345750805115611b2357805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611b66575b611b45575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15611b3d56fe0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00395f4e35a18c2b5e556b3b2ff855307e76c0b3cc1ca71e19a70e83037e08e7b37bdc20c26beb8eedd348733c28a5c4c2f7f7f1183cba8898195258fcdca273bcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212203f211d602b36c7fdf0f3b0fe8233e5a85a6bfca3cf4c804bfdd1d764320a84b564736f6c634300081a003360e0346100d757601f610bd638819003918201601f19168301916001600160401b038311848410176100dc578084926060946040528339810103126100d757610047816100f2565b906040610056602083016100f2565b9101519160805260a05260c052604051610acf90816101078239608051818181608a0152610196015260a05181818160dd0152818161070a015281816107e5015281816108990152818161094901526109f9015260c051818181604f0152818161076701528181610846015281816108f5015281816109ac0152610a530152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036100d75756fe6080604052600436106101815760003560e01c8063589dd5da1461007757806385e1f4d0146100375763ced52b4003610181576100c7565b346100725760003660031901126100725760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b600080fd5b34610072576000366003190112610072577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b600091031261007257565b34610072576000366003190112610072576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761013e57604052565b61010c565b90601f8019910116810190811067ffffffffffffffff82111761013e57604052565b67ffffffffffffffff811161013e57601f01601f191660200190565b600080604051368282378036810183815203907f00000000000000000000000000000000000000000000000000000000000000005af43d1561023c573d906101c882610165565b916101d66040519384610143565b82523d6000602084013e5b156101f7576101ef366106c3565b602081519101f35b60405162461bcd60e51b815260206004820152601b60248201527f476174657761792064656c656761746563616c6c206661696c656400000000006044820152606490fd5b6060906101e1565b906004116100725790600490565b909291928360041161007257831161007257600401916003190190565b356001600160e01b031981169291906004821061028a575050565b6001600160e01b031960049290920360031b82901b16169150565b6001600160a01b0381160361007257565b81601f82011215610072578035906102cd82610165565b926102db6040519485610143565b8284526020838301011161007257816000926020809301838601378301015290565b3590610308826102a5565b565b91909160a081840312610072576040519061032482610122565b81938135610331816102a5565b835260208201358015158103610072576020840152610352604083016102fd565b604084015260608201359167ffffffffffffffff83116100725761037c60809392849383016102b6565b60608501520135910152565b9160608383031261007257823561039e816102a5565b92602081013567ffffffffffffffff811161007257836103bf9183016102b6565b92604082013567ffffffffffffffff8111610072576103de920161030a565b90565b919082519283825260005b84811061040d575050826000602080949584010152601f8019910116010190565b806020809284010151828286010152016103ec565b9060018060a01b03825116815260208201511515602082015260018060a01b036040830151166040820152608080610469606085015160a0606086015260a08501906103e1565b93015191015290565b9081526001600160a01b0391821660208201529116604082015260a0606082018190526103de9391926104a7918401906103e1565b916080818403910152610422565b6040513d6000823e3d90fd5b91909160a0818403126100725780356104d9816102a5565b9260208201359260408301356104ee816102a5565b92606081013567ffffffffffffffff8111610072578361050f9183016102b6565b92608082013567ffffffffffffffff8111610072576103de920161030a565b9081526001600160a01b0391821660208201529116604082015260608101919091526000608082015260e060a082018190526103de939192610572918401906103e1565b9160c0818403910152610422565b9081526001600160a01b039182166020820152918116604083015260608201929092529116608082015260e060a082018190526103de939192610572918401906103e1565b906080828203126100725781356105db816102a5565b9260208301359260408101356105f0816102a5565b92606082013567ffffffffffffffff8111610072576103de920161030a565b9081526001600160a01b0391821660208201529116604082015260608101919091526000608082015260c060a082018190526103de92910190610422565b9081526001600160a01b039182166020820152918116604083015260608201929092529116608082015260c060a082018190526103de92910190610422565b9190916040818403126100725780356106a4816102a5565b92602082013567ffffffffffffffff8111610072576103de920161030a565b6106e16106d1826000610244565b6001600160e01b0319929161026f565b16631c9ab25f60e21b81036107ba575061070081610708926000610252565b81019061068c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169190823b156100725760405163ced6e79360e01b815292600092849283918591839161078f919034906001600160a01b0316337f00000000000000000000000000000000000000000000000000000000000000006004870161060f565b03925af180156107b5576107a05750565b806107af600061030893610143565b806100bc565b6104b5565b630102614b60e41b810361086e57506107d8816107e0926000610252565b8101906105c5565b9290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b156100725760405163ced6e79360e01b815294600094869485938793859361078f9391926001600160a01b0391821692909116337f00000000000000000000000000000000000000000000000000000000000000006004880161064d565b63744b9b8b60e01b810361091d575061088c81610894926000610252565b810190610388565b9091907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156100725760405163ad82a62760e01b815293600093859384928692849261078f92909134906001600160a01b0316337f00000000000000000000000000000000000000000000000000000000000000006004880161052e565b631a13c76f60e31b81036109d4575061093b81610943926000610252565b8101906104c1565b909391927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b156100725760405163ad82a62760e01b815295600095879586948894869461078f94919390926001600160a01b0392831692909116337f000000000000000000000000000000000000000000000000000000000000000060048901610580565b6306fb33ad60e21b146109e5575b50565b61088c816109f4926000610252565b9091907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b15610072576040516375e7f8e360e11b8152936000938593849286928492610a7b9290916001600160a01b0316337f000000000000000000000000000000000000000000000000000000000000000060048701610472565b03925af180156107b557156109e257806107af60006103089361014356fea2646970667358221220a71cbde33d0601ceacd47bd11f54cc311e513e7ffbb3ec6ec289e9912d3be94b64736f6c634300081a0033a2646970667358221220928d1f0cf196771916c55c50b6eab6883a793637fb05e7baf38f61f26998f5b164736f6c634300081a003360808060405234602f57600160ff19600c541617600c55600160ff19601f541617601f556165ab90816100358239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80631ed7831c146101275780632ade3880146101225780633693a15a1461011d5780633e5e3c23146101185780633f7286f41461011357806351976f441461010e57806366d9a9a01461010957806385226c8114610104578063916a17c6146100ff578063a0d788b7146100fa578063b0464fdc146100f5578063b5508aa9146100f0578063ba414fa6146100eb578063c986b404146100e6578063e20c9f71146100e1578063e2624fa4146100dc5763fa7626d4146100d757600080fd5b61142f565b61136b565b611229565b611116565b611017565b610f8a565b610ede565b610e7e565b610dd2565b610ccd565b610bc1565b610777565b6106e6565b610666565b6105e8565b61031f565b61017f565b600091031261013757565b600080fd5b602060408183019282815284518094520192019060005b8181106101605750505090565b82516001600160a01b0316845260209384019390920191600101610153565b346101375760003660031901126101375760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b8181106101f0576101ec856101e0818703826104c7565b6040519182918261013c565b0390f35b82546001600160a01b03168452602090930192600192830192016101c9565b60005b8381106102225750506000910152565b8181015183820152602001610212565b9060209161024b8151809281855285808601910161020f565b601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061028a57505050505090565b9091929394603f198282030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b85010194019260005b8281106102f45750505050506020806001929701930193019193929061027b565b9091929394602080610312600193605f198782030189528951610232565b97019501939291016102d3565b3461013757600036600319011261013757601e5461033c81611452565b9061034a60405192836104c7565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061039057604051806101ec8782610257565b600260206001926040516103a381610471565b848060a01b0386541681526103b9858701611469565b8382015281520192019201919061037b565b634e487b7160e01b600052603260045260246000fd5b6020548110156104005760206000526006602060002091020190600090565b6103cb565b8054821015610400576000526006602060002091020190600090565b90600182811c92168015610451575b602083101461043b57565b634e487b7160e01b600052602260045260246000fd5b91607f1691610430565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761048c57604052565b61045b565b60e081019081106001600160401b0382111761048c57604052565b60a081019081106001600160401b0382111761048c57604052565b90601f801991011681019081106001600160401b0382111761048c57604052565b90604051918260008254926104fc84610421565b808452936001811690811561056a5750600114610523575b50610521925003836104c7565b565b90506000929192526020600020906000915b81831061054e5750509060206105219282010138610514565b6020919350806001915483858901015201910190918492610535565b90506020925061052194915060ff191682840152151560051b82010138610514565b9591936105c760c09699989460ff966105d59460018060a01b03168a5260018060a01b031660208a015260e060408a015260e0890190610232565b908782036060890152610232565b966080860152151560a085015216910152565b34610137576020366003190112610137576004356020548110156101375761060f906103e1565b50805460018201546001600160a01b03918216929116906101ec90610636600282016104e8565b93610643600383016104e8565b91600560048201549101549260405196879660ff808760081c169616948861058c565b346101375760003660031901126101375760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b8181106106c7576101ec856101e0818703826104c7565b82546001600160a01b03168452602090930192600192830192016106b0565b346101375760003660031901126101375760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b818110610747576101ec856101e0818703826104c7565b82546001600160a01b0316845260209093019260019283019201610730565b6001600160a01b0381160361013757565b346101375760403660031901126101375760043561079481610766565b602435906107a182610766565b6000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b0382166004820152600081602481836000805160206165568339815191525af18015610a8557610aee575b506040516360f9bb1160e01b815260206004820152603960248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76322d636f72652f627560448201527f696c642f556e69737761705632466163746f72792e6a736f6e0000000000000060648201526000816084816000805160206165568339815191525afa908115610a85576108a4916000918291610ab3575b5060405180938192631fb2437d60e31b83526004830161152b565b03816000805160206165568339815191525afa8015610a8557610903926108f092600092610acd575b50604080516001600160a01b03909216602083015290926108fe91849190820190565b03601f1981018452836104c7565b612d93565b6040516360f9bb1160e01b815260206004820152603f60248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76322d7065726970686560448201527f72792f6275696c642f556e69737761705632526f7574657230322e6a736f6e0060648201529091906000816084816000805160206165568339815191525afa908115610a85576109b3916000918291610ab3575060405180938192631fb2437d60e31b83526004830161152b565b03816000805160206165568339815191525afa8015610a8557610a06926108f092600092610a8a575b50604080516001600160a01b03808816602083015290921690820152916108fe9083906060820190565b906000805160206165568339815191523b15610137576040516390c5013b60e01b8152600081600481836000805160206165568339815191525af18015610a8557610a6a575b50604080516001600160a01b03928316815292909116602083015290f35b80610a796000610a7f936104c7565b8061012c565b38610a4c565b6114c1565b6108fe919250610aac903d806000833e610aa481836104c7565b8101906114cd565b91906109dc565b610ac791503d8084833e610aa481836104c7565b38610889565b6108fe919250610ae7903d806000833e610aa481836104c7565b91906108cd565b80610a796000610afd936104c7565b386107f5565b906020808351928381520192019060005b818110610b215750505090565b82516001600160e01b031916845260209384019390920191600101610b14565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610b7457505050505090565b9091929394602080610bb2600193603f1986820301875289519083610ba28351604084526040840190610232565b9201519084818403910152610b03565b97019301930191939290610b65565b3461013757600036600319011261013757601b54610bde81611452565b90610bec60405192836104c7565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b838310610c3257604051806101ec8782610b41565b60026020600192604051610c4581610471565b610c4e866104e8565b8152610c5b85870161156b565b83820152815201920192019190610c1d565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610ca057505050505090565b9091929394602080610cbe600193603f198682030187528951610232565b97019301930191939290610c91565b3461013757600036600319011261013757601a54610cea81611452565b90610cf860405192836104c7565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310610d3d57604051806101ec8782610c6d565b600160208192610d4c856104e8565b815201920192019190610d28565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610d8d57505050505090565b9091929394602080610dc3600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610b03565b97019301930191939290610d7e565b3461013757600036600319011261013757601d54610def81611452565b90610dfd60405192836104c7565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b838310610e4357604051806101ec8782610d5a565b60026020600192604051610e5681610471565b848060a01b038654168152610e6c85870161156b565b83820152815201920192019190610e2e565b346101375760e036600319011261013757610edc600435610e9e81610766565b602435610eaa81610766565b604435610eb681610766565b606435610ec281610766565b60843591610ecf83610766565b60a4359360c4359561180a565b005b3461013757600036600319011261013757601c54610efb81611452565b90610f0960405192836104c7565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b838310610f4f57604051806101ec8782610d5a565b60026020600192604051610f6281610471565b848060a01b038654168152610f7885870161156b565b83820152815201920192019190610f3a565b3461013757600036600319011261013757601954610fa781611452565b90610fb560405192836104c7565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b838310610ffa57604051806101ec8782610c6d565b600160208192611009856104e8565b815201920192019190610fe5565b34610137576000366003190112610137576020611032611ae3565b6040519015158152f35b906110b39060018060a01b03835116815260018060a01b03602084015116602082015260c08061109061107e604087015160e0604087015260e0860190610232565b60608701518582036060870152610232565b946080810151608085015260a0810151151560a0850152015191019060ff169052565b90565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106110e957505050505090565b9091929394602080611107600193603f19868203018752895161103c565b970193019301919392906110da565b346101375760003660031901126101375760205461113381611452565b9061114160405192836104c7565b8082526020820160206000527fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb6000915b83831061118757604051806101ec87826110b6565b6006602060019260405161119a81610491565b855460a086901b869003166001600160a01b0390811682528587015416838201526111c7600287016104e8565b60408201526111d8600387016104e8565b60608201526004860154608082015261121b61121160058801546112086111ff8260ff1690565b151560a0860152565b60081c60ff1690565b60ff1660c0830152565b815201920192019190611172565b346101375760003660031901126101375760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b81811061128a576101ec856101e0818703826104c7565b82546001600160a01b0316845260209093019260019283019201611273565b6040519061052160e0836104c7565b60405190610521610160836104c7565b6001600160401b03811161048c57601f01601f191660200190565b81601f82011215610137578035906112fa826112c8565b9261130860405194856104c7565b8284526020838301011161013757816000926020809301838601378301015290565b8015150361013757565b60c435906105218261132a565b60ff81160361013757565b610104359061052182611341565b9060206110b392818152019061103c565b3461013757366003190161012081126101375760a01361013757604051611391816104ac565b60043561139d81610766565b81526024356113ab81610766565b60208201526044356113bc81610766565b60408201526064356113cd81610766565b60608201526084356113de81610766565b608082015260a4356001600160401b038111610137576101ec916114096114239236906004016112e3565b611411611334565b60e4359161141d61134c565b9361202b565b6040519182918261135a565b3461013757600036600319011261013757602060ff601f54166040519015158152f35b6001600160401b03811161048c5760051b60200190565b90815461147581611452565b9261148360405194856104c7565b818452602084019060005260206000206000915b8383106114a45750505050565b6001602081926114b3856104e8565b815201920192019190611497565b6040513d6000823e3d90fd5b602081830312610137578051906001600160401b038211610137570181601f820112156101375760208151910190611504816112c8565b9261151260405194856104c7565b81845281830111610137576110b391602084019061020f565b61153d60409283835283830190610232565b90602081830391015260148152730b995d9b4b989e5d1958dbd9194b9bd89a9958dd60621b60208201520190565b6040518154808252909291839061158b6020830191600052602060002090565b926000905b8060078301106116d3576105219454918181106116b4575b818110611695575b818110611676575b818110611657575b818110611638575b818110611619575b8181106115fb575b106115e6575b5003836104c7565b6001600160e01b0319168152602001386115de565b602083811b6001600160e01b031916855290936001910193016115d8565b604083901b6001600160e01b03191684529260019060200193016115d0565b606083901b6001600160e01b03191684529260019060200193016115c8565b608083901b6001600160e01b03191684529260019060200193016115c0565b60a083901b6001600160e01b03191684529260019060200193016115b8565b60c083901b6001600160e01b03191684529260019060200193016115b0565b6001600160e01b031960e084901b1684529260019060200193016115a8565b91600891935061010060019161178287546116f9838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b019401920185929391611590565b519061052182610766565b9081602091031261013757516110b381610766565b9081602091031261013757516110b38161132a565b634e487b7160e01b600052601160045260246000fd5b9061038482018092116117ea57565b6117c5565b90816060910312610137578051916040602083015192015190565b9291909493946000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b0387166004820152600081602481836000805160206165568339815191525af18015610a8557611abf575b506040516364e329cb60e11b81526001600160a01b0383811660048301528481166024830152909160209183916044918391600091165af18015610a8557611a92575b5060405163095ea7b360e01b81526001600160a01b0384166004820152602481018590526020818060448101038160006001600160a01b0387165af18015610a8557611a75575b5060405163095ea7b360e01b81526001600160a01b038416600482015260248101879052906020828060448101038160006001600160a01b0388165af18015610a85576060966000936119aa92611a48575b5061194a426117db565b60405162e8e33760e81b81526001600160a01b03948516600482015295841660248701526044860197909752606485019890985260006084850181905260a4850152961660c483015260e482019390935293849283918290610104820190565b03926001600160a01b03165af18015610a8557611a19575b506000805160206165568339815191523b15610137576040516390c5013b60e01b8152600081600481836000805160206165568339815191525af18015610a8557611a0a5750565b80610a796000610521936104c7565b611a3a9060603d606011611a41575b611a3281836104c7565b8101906117ef565b50506119c2565b503d611a28565b611a699060203d602011611a6e575b611a6181836104c7565b8101906117b0565b611940565b503d611a57565b611a8d9060203d602011611a6e57611a6181836104c7565b6118ee565b611ab39060203d602011611ab8575b611aab81836104c7565b81019061179b565b6118a7565b503d611aa1565b80610a796000611ace936104c7565b38611864565b90816020910312610137575190565b60085460ff168015611af25790565b50604051630667f9d760e41b8152600080516020616556833981519152600482018190526519985a5b195960d21b6024830152602090829060449082905afa908115610a8557600091611b46575b50151590565b611b68915060203d602011611b6e575b611b6081836104c7565b810190611ad4565b38611b40565b503d611b56565b60405190611b8282610491565b600060c083828152826020820152606060408201526060808201528260808201528260a08201520152565b60405190611bba82610491565b600060c08360608152606060208201528260408201528260608201528260808201528260a08201520152565b90611bf96020928281519485920161020f565b0190565b60031115611c0757565b634e487b7160e01b600052602160045260246000fd5b6003821015611c075752565b959297969391611c5790611c4960ff936101008a526101008a0190610232565b9088820360208a0152610232565b9716604086015260608501526003831015611c07576080840192909252600160a08401526001600160a01b0391821660c08401521660e090910152565b15611c9b57565b60405162461bcd60e51b815260206004820152602260248201527f476174657761792045564d206e6f742073657420666f7220746869732063686160448201526134b760f11b6064820152608490fd5b9081602091031261013757516110b381611341565b60ff16604d81116117ea57600a0a90565b90816402540be40002916402540be4008304036117ea57565b90816064029160648304036117ea57565b9081620f42400291620f42408304036117ea57565b601f8211611d5d57505050565b6000526020600020906020601f840160051c83019310611d98575b601f0160051c01905b818110611d8c575050565b60008155600101611d81565b9091508190611d78565b91909182516001600160401b03811161048c57611dc981611dc38454610421565b84611d50565b6020601f8211600114611e0a578190611dfb939495600092611dff575b50508160011b916000199060031b1c19161790565b9055565b015190503880611de6565b601f19821690611e1f84600052602060002090565b9160005b818110611e5b57509583600195969710611e42575b505050811b019055565b015160001960f88460031b161c19169055388080611e38565b9192602060018192868b015181550194019201611e23565b6020546801000000000000000081101561048c57806001611e9992016020556020610405565b61201557815181546001600160a01b039182166001600160a01b031991821617835560208401516001840180549190931691161790556040820151805160028301916001600160401b03821161048c57611efd82611ef78554610421565b85611d50565b602090601f8311600114611f9a5793611f8593611f3b8460c0956005956105219a99600092611dff5750508160011b916000199060031b1c19161790565b90555b611f4f606086015160038301611da2565b608085015160048201550192611f7d611f6b60a0830151151590565b859060ff801983541691151516179055565b015160ff1690565b61ff0082549160081b169061ff001916179055565b90601f19831691611fb085600052602060002090565b9260005b818110611ffd575084600594610521999894611f85989460c09860019510611fe4575b505050811b019055611f3e565b015160001960f88460031b161c19169055388080611fd7565b92936020600181928786015181550195019301611fb4565b634e487b7160e01b600052600060045260246000fd5b9391929092612038611b75565b50612041611bad565b60405163348051d760e11b8152600481018490529092906000816024816000805160206165568339815191525afa908115610a85576120c3916120d191600091612d78575b506040516602d2921969918160cd1b60208201529283916120bd6120ad602785018c611be6565b6301037b7160e51b815260040190565b90611be6565b03601f1981018352826104c7565b83526040516405a524332360dc1b60208201526120f5816120c36025820189611be6565b602084019081528215612d715760015b612113604086019182611c1d565b8451915190519161212383611bfd565b8851600490602090612145906001600160a01b03165b6001600160a01b031690565b60405163bb88b76960e01b815292839182905afa8015610a8557600491600091612d52575b508a51602090612182906001600160a01b0316612139565b604051633c12ad4d60e21b815293849182905afa918215610a8557600092612d31575b50604051946118e592838701938785106001600160401b0386111761048c5787966121e2968a938e93614c718b396001600160a01b031696611c29565b03906000f0948515610a85576001600160a01b03909516606084019081529460808401966000885283600014612c9857805160049060209061222c906001600160a01b0316612139565b604051630f39296f60e21b815292839182905afa908115610a8557600091612c79575b506000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03919091166004820152600081602481836000805160206165568339815191525af18015610a8557612c64575b5080516004906020906122c1906001600160a01b0316612139565b60405163bb88b76960e01b815292839182905afa908115610a8557600091612c45575b5087516001600160a01b03918216916122fd9116612139565b90803b15610137576040516377140add60e11b8152600481018690526001600160a01b039290921660248301526000908290604490829084905af18015610a8557612c30575b50805160049060209061235e906001600160a01b0316612139565b60405163bb88b76960e01b815292839182905afa908115610a8557600091612c11575b506001600160a01b0316803b156101375760405163a7cb050760e01b815260048101859052633b9aca006024820152906000908290604490829084905af18015610a8557612bfc575b506000805160206165568339815191523b15610137576040516390c5013b60e01b8152600081600481836000805160206165568339815191525af18015610a8557612be7575b505b8651612426906001600160a01b0316612139565b6060820180519091906001600160a01b031660405163313ce56760e01b8152602081600481865afa908115610a85576124709161246b91600091612b84575b50611d00565b611d11565b823b15610137576040516340c10f1960e01b81526001600160a01b039290921660048301526024820152906000908290604490829084905af18015610a8557612bd2575b5087516124c9906001600160a01b0316612139565b82516004906020906124e3906001600160a01b0316612139565b604051630f39296f60e21b815292839182905afa908115610a8557600091612bb3575b508951600490602090612521906001600160a01b0316612139565b60405163313ce56760e01b815292839182905afa908115610a85576125519161246b91600091612b845750611d00565b823b15610137576040516340c10f1960e01b81526001600160a01b039290921660048301526024820152906000908290604490829084905af18015610a8557612b6f575b5080516001600160a01b03166000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03919091166004820152600081602481836000805160206165568339815191525af18015610a8557612b5a575b5080516001600160a01b03166000805160206165568339815191523b156101375760405163c88a5e6d60e01b81526001600160a01b0391909116600482015269d3c21bcecceda10000006024820152600081604481836000805160206165568339815191525af18015610a8557612b45575b508151600490602090612684906001600160a01b0316612139565b604051620b9ea360e11b815292839182905afa908115610a8557600091612b26575b506001600160a01b0316803b15610137576000683635c9adc5dea0000091600460405180948193630d0e30db60e41b83525af18015610a8557612b11575b506126f66126f188611d00565b611d2a565b60a0870190815260c087019068056bc75e2d63100000825260046020612725612139875160018060a01b031690565b604051630b4a282f60e11b815292839182905afa8015610a8557600491600091612af2575b508551602090612762906001600160a01b0316612139565b6040516359d0f71360e01b815293849182905afa8015610a85578c600493600092612ac9575b505161279c906001600160a01b0316612139565b87516020906127b3906001600160a01b0316612139565b604051620b9ea360e11b815295869182905afa928315610a85576127fa94600094612aa8575b5087516001600160a01b03169186519388519560018060a01b03169261180a565b8951600490612811906001600160a01b0316612139565b855190949060209061282b906001600160a01b0316612139565b604051620b9ea360e11b815293849182905afa908115610a8557600492600092612a83575b50516001600160a01b03165b92519351865190969060209061287a906001600160a01b0316612139565b604051632daa48c160e11b815294859182905afa908115610a8557600493600092612a59575b50516020906128b7906001600160a01b0316612139565b60405163342a30c360e01b815294859182905afa908115610a8557612958976129539661294395600094612a32575b5061291961293394956129096128fa6112a9565b6001600160a01b03909c168c52565b6001600160a01b031660208b0152565b604089015260608801526001600160a01b03166080870152565b6001600160a01b031660a0850152565b6001600160a01b031660c0830152565b613394565b6000805160206165568339815191523b15610137576040516390c5013b60e01b815293600085600481836000805160206165568339815191525af18015610a85576129cf6129c1612139612a149a611211996129fc95612a1d575b50516001600160a01b031690565b99516001600160a01b031690565b9151916129ec6129dd6112a9565b6001600160a01b03909b168b52565b6001600160a01b031660208a0152565b604088015260608701526080860152151560a0850152565b6110b381611e73565b80610a796000612a2c936104c7565b386129b3565b6129339450612a526129199160203d602011611ab857611aab81836104c7565b94506128e6565b6020919250612139612a7a6128b792843d8611611ab857611aab81836104c7565b939250506128a0565b61285c919250612aa19060203d602011611ab857611aab81836104c7565b9190612850565b612ac291945060203d602011611ab857611aab81836104c7565b92386127d9565b61279c919250612aea6121399160203d602011611ab857611aab81836104c7565b929150612788565b612b0b915060203d602011611ab857611aab81836104c7565b3861274a565b80610a796000612b20936104c7565b386126e4565b612b3f915060203d602011611ab857611aab81836104c7565b386126a6565b80610a796000612b54936104c7565b38612669565b80610a796000612b69936104c7565b386125f7565b80610a796000612b7e936104c7565b38612595565b612ba6915060203d602011612bac575b612b9e81836104c7565b810190611ceb565b38612465565b503d612b94565b612bcc915060203d602011611ab857611aab81836104c7565b38612506565b80610a796000612be1936104c7565b386124b4565b80610a796000612bf6936104c7565b38612410565b80610a796000612c0b936104c7565b386123ca565b612c2a915060203d602011611ab857611aab81836104c7565b38612381565b80610a796000612c3f936104c7565b38612343565b612c5e915060203d602011611ab857611aab81836104c7565b386122e4565b80610a796000612c73936104c7565b386122a6565b612c92915060203d602011611ab857611aab81836104c7565b3861224f565b6020810151612caf906001600160a01b0316612139565b604051621ac49360e31b81526004810185905290602090829060249082905afa8015610a8557612cf291600091612d12575b506001600160a01b03161515611c94565b612d0d612d00838584612e19565b6001600160a01b03168952565b612412565b612d2b915060203d602011611ab857611aab81836104c7565b38612ce1565b612d4b91925060203d602011611ab857611aab81836104c7565b90386121a5565b612d6b915060203d602011611ab857611aab81836104c7565b3861216a565b6002612105565b612d8d91503d806000833e610aa481836104c7565b38612086565b90612dd860209160405192839181612db4818501978881519384920161020f565b8301612dc88251809385808501910161020f565b010103601f1981018352826104c7565b51906000f090811561013757565b9091612dfd6110b393604084526040840190610232565b916020818403910152610232565b604d81116117ea57600a0a90565b9160405190610b5990818301908382106001600160401b0383111761048c5780612e499285946141188639612de6565b03906000f08015610a855760405163313ce56760e01b81526001600160a01b03919091169290602081600481875afa8015610a855760ff91600091613358575b506060830180519092909116906001600160a01b03166000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03919091166004820152600081602481836000805160206165568339815191525af18015610a8557613343575b50602083018051909390612f11906001600160a01b0316612139565b60405163ad8414bf60e01b81526004810187905290602090829060249082905afa908115610a8557612f7a91602091600091613326575b5060405163095ea7b360e01b81526001600160a01b039091166004820152600019602482015291829081906044820190565b038160008b5af18015610a8557613309575b508351612fa1906001600160a01b0316612139565b60405163ad8414bf60e01b8152600481018790529190602090839060249082905afa918215610a85576000926132e8575b50612fe4612fdf84612e0b565b611d3b565b91873b15610137576040516340c10f1960e01b81526001600160a01b039190911660048201526024810192909252600082604481838b5af1918215610a85576080926132d3575b500180519092906001600160a01b0316613047612fdf84612e0b565b90873b15610137576040516340c10f1960e01b81526001600160a01b039190911660048201526024810191909152600081604481838b5af18015610a85576130a992612fdf926130a392612a1d5750516001600160a01b031690565b92612e0b565b90853b15610137576040516340c10f1960e01b81526001600160a01b03919091166004820152602481019190915260008160448183895af18015610a85576132be575b506000805160206165568339815191523b15610137576040516390c5013b60e01b815290600082600481836000805160206165568339815191525af1918215610a855761314592612a1d5750516001600160a01b031690565b916000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03939093166004840152600083602481836000805160206165568339815191525af1928315610a85576121396020936131b8926131d896612a1d5750516001600160a01b031690565b604051808095819463ad8414bf60e01b8352600483019190602083019252565b03915afa908115610a855760009161329f575b506001600160a01b0316803b1561013757604051634d8c928d60e11b81526001600160a01b0383166004820152906000908290602490829084905af18015610a855761328a575b506000805160206165568339815191523b15610137576040516390c5013b60e01b8152600081600481836000805160206165568339815191525af18015610a855761327b575090565b80610a7960006110b3936104c7565b80610a796000613299936104c7565b38613232565b6132b8915060203d602011611ab857611aab81836104c7565b386131eb565b80610a7960006132cd936104c7565b386130ec565b80610a7960006132e2936104c7565b3861302b565b61330291925060203d602011611ab857611aab81836104c7565b9038612fd2565b6133219060203d602011611a6e57611a6181836104c7565b612f8c565b61333d9150823d8411611ab857611aab81836104c7565b38612f48565b80610a796000613352936104c7565b38612ef5565b613371915060203d602011612bac57612b9e81836104c7565b38612e89565b1561337e57565b634e487b7160e01b600052600160045260246000fd5b60c0810180519091906001600160a01b03166000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03919091166004820152600081602481836000805160206165568339815191525af18015610a855761365e575b50805161341390612139906001600160a01b031681565b60a08201805160408085018051915163095ea7b360e01b81526001600160a01b0390931660048401526024830191909152949192602090829060449082906000905af18015610a8557613641575b5060208301805190929061347f90612139906001600160a01b031681565b815160608601805160405163095ea7b360e01b81526001600160a01b03909316600484015260248301529691602090829060449082906000905af18015610a8557613624575b50845184516001600160a01b0391821691168082116135f6575b505060808501516001600160a01b031685516001600160a01b031685516001600160a01b03169061350f926136cb565b956135246001600160a01b0388161515613377565b82516001600160a01b031686519092906001600160a01b031686519092906001600160a01b03169151905186519092906001600160a01b03169361356795613834565b93516001600160a01b031692516001600160a01b031690516001600160a01b031691516001600160a01b03169261359c6112a9565b6001600160a01b0390961686526001600160a01b031660208601526001600160a01b031660408501526001600160a01b031660608401526001600160a01b0316608083015260a0820152600060c08201526119c290613c54565b6001600160a01b039091168552613615905b6001600160a01b03168652565b855181518752815238806134df565b61363c9060203d602011611a6e57611a6181836104c7565b6134c5565b6136599060203d602011611a6e57611a6181836104c7565b613461565b80610a79600061366d936104c7565b386133fc565b1561367a57565b60405162461bcd60e51b815260206004820152602360248201527f556e6973776170563353657475704c69623a20506f6f6c206e6f7420637265616044820152621d195960ea1b6064820152608490fd5b60405163a167129560e01b81526001600160a01b0383811660048301528481166024830152610bb8604483015290949391166020856064816000855af1928315610a8557613758956020946137dc575b50604051630b4c774160e11b81526001600160a01b03918216600482015292166024830152610bb860448301529093849190829081906064820190565b03915afa918215610a85576000926137bb575b506001600160a01b038216613781811515613673565b803b156101375760405163f637731d60e01b8152600160601b6004820152906000908290602490829084905af18015610a8557611a0a5750565b6137d591925060203d602011611ab857611aab81836104c7565b903861376b565b6137f290853d8711611ab857611aab81836104c7565b61371b565b51906001600160801b038216820361013757565b919082608091031261013757815191613826602082016137f7565b916060604083015192015190565b916138bd6000966080966139699661387961384e426117db565b9561386961385a6112b8565b6001600160a01b039099168952565b6001600160a01b03166020880152565b610bb86040870152620d89b3196060870152620d89b4868a015260a086015260c085015260e0840188905261010084018890526001600160a01b0316610120840152565b610140820190815260408051634418b22b60e11b815283516001600160a01b0390811660048301526020850151811660248301529184015162ffffff1660448201526060840151600290810b60648301526080850151900b608482015260a084015160a482015260c084015160c482015260e084015160e48201526101008401516101048201526101209093015116610124830152516101448201529384928391908290610164820190565b03926001600160a01b03165af1908115610a8557600091613988575090565b6139aa915060803d6080116139b0575b6139a281836104c7565b81019061380b565b50505090565b503d613998565b6040519061018082018281106001600160401b0382111761048c576040526000610160838281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015282610120820152826101408201520152565b90816020910312610137576110b3906137f7565b15613a3c57565b60405162461bcd60e51b8152602060048201526015602482015274506f6f6c20686173206e6f206c697175696469747960581b6044820152606490fd5b51908160020b820361013757565b519061ffff8216820361013757565b908160e0910312610137578051613aac81610766565b91613ab960208301613a79565b91613ac660408201613a87565b91613ad360608301613a87565b91613ae060808201613a87565b9160c060a0830151613af181611341565b9201516110b38161132a565b15613b0457565b60405162461bcd60e51b81526020600482015260116024820152700556e657870656374656420746f6b656e3607c1b6044820152606490fd5b15613b4457565b60405162461bcd60e51b8152602060048201526011602482015270556e657870656374656420746f6b656e3160781b6044820152606490fd5b15613b8457565b60405162461bcd60e51b815260206004820152601960248201527f506f736974696f6e20686173206e6f206c6971756964697479000000000000006044820152606490fd5b15613bd057565b60405162461bcd60e51b815260206004820152601860248201527f506f736974696f6e20746f6b656e73206d69736d6174636800000000000000006044820152606490fd5b15613c1c57565b60405162461bcd60e51b815260206004820152601060248201526f2ab732bc3832b1ba32b21037bbb732b960811b6044820152606490fd5b90613c5d6139b7565b8251909290613c74906001600160a01b0316612139565b6060820151909190613c8e906001600160a01b0316612139565b604051630d34328160e11b815290926001600160a01b03169190602081600481865afa8015610a8557613ce36001600160801b0391613ceb93600091613fc4575b506001600160801b03166060890181905290565b161515613a35565b604051633850c7bd60e01b815260e081600481865afa908115610a8557613d2591600091600091613f88575b5060020b6020880152613608565b604051630dfe168160e01b815291602083600481845afa908115610a8557600493600092613f66575b506001600160a01b03909116608087019081529060209060405163d21220a760e01b815294859182905afa928315610a8557600093613f45575b506001600160a01b0392831660a08701908152815160208401519194613db2928116911614613afd565b82516040830151613dd0916001600160a01b03918216911614613b3d565b60a08201938451613de19082614003565b6001600160801b031660c08c019081526101008c01969460e08d0194919390928d6101400190613e13919060020b9052565b60020b6101208d01526001600160a01b03908116875216825251613e41906001600160801b03161515613b7d565b519051613e9195602094613e6e936001600160a01b039384169316929092149182613f18575b5050613bc9565b84519060405180809681946331a9108f60e11b8352600483019190602083019252565b03916001600160a01b03165afa8015610a85576121396080613ed0613edf93613ef096600091613ef9575b506001600160a01b031660408a0181905290565b9301516001600160a01b031690565b6001600160a01b0390911614613c15565b51610160830152565b613f12915060203d602011611ab857611aab81836104c7565b38613ebc565b5190516001600160a01b039182169250613f329116612139565b6001600160a01b03909116143880613e67565b613f5f91935060203d602011611ab857611aab81836104c7565b9138613d88565b6020919250613f8190823d8411611ab857611aab81836104c7565b9190613d4e565b6136089250613faf915060e03d60e011613fbd575b613fa781836104c7565b810190613a96565b505050505091909190613d17565b503d613f9d565b613fe6915060203d602011613fec575b613fde81836104c7565b810190613a21565b38613ccf565b503d613fd4565b519062ffffff8216820361013757565b60405163133f757160e31b8152600481019290925261018090829060249082906001600160a01b03165afa908115610a8557600091829183918491859161404d575b509091929394565b949350505050610180823d821161410f575b8161406d61018093836104c7565b8101031261410c5781516bffffffffffffffffffffffff81160361410c575061409860208201611790565b506140a560408201611790565b906140b260608201611790565b916140bf60808301613ff3565b506140cc60a08301613a79565b916140d960c08201613a79565b916141016101606140ec60e085016137f7565b936140fa61014082016137f7565b50016137f7565b509392919038614045565b80fd5b3d915061405f56fe60806040523461032457610b598038038061001981610329565b9283398101906040818303126103245780516001600160401b038111610324578261004591830161034e565b60208201519092906001600160401b03811161032457610065920161034e565b81516001600160401b03811161022f57600354600181811c9116801561031a575b602082101461020f57601f81116102b5575b50602092601f82116001146102505792819293600092610245575b50508160011b916000199060031b1c1916176003555b80516001600160401b03811161022f57600454600181811c91168015610225575b602082101461020f57601f81116101aa575b50602091601f82116001146101465791819260009261013b575b50508160011b916000199060031b1c1916176004555b60405161079f90816103ba8239f35b015190503880610116565b601f198216926004600052806000209160005b85811061019257508360019510610179575b505050811b0160045561012c565b015160001960f88460031b161c1916905538808061016b565b91926020600181928685015181550194019201610159565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c81019160208410610205575b601f0160051c01905b8181106101f957506100fc565b600081556001016101ec565b90915081906101e3565b634e487b7160e01b600052602260045260246000fd5b90607f16906100ea565b634e487b7160e01b600052604160045260246000fd5b0151905038806100b3565b601f198216936003600052806000209160005b86811061029d5750836001959610610284575b505050811b016003556100c9565b015160001960f88460031b161c19169055388080610276565b91926020600181928685015181550194019201610263565b60036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c81019160208410610310575b601f0160051c01905b8181106103045750610098565b600081556001016102f7565b90915081906102ee565b90607f1690610086565b600080fd5b6040519190601f01601f191682016001600160401b0381118382101761022f57604052565b81601f82011215610324578051906001600160401b03821161022f5761037d601f8301601f1916602001610329565b92828452602083830101116103245760005b8281106103a457505060206000918301015290565b8060208092840101518282870101520161038f56fe608080604052600436101561001357600080fd5b60003560e01c90816306fdde031461058857508063095ea7b31461050257806318160ddd146104e457806323b872dd146103f7578063313ce567146103db57806340c10f191461032f57806370a08231146102f557806395d89b41146101d45780639dc29fac1461011f578063a9059cbb146100ee5763dd62ed3e1461009857600080fd5b346100e95760403660031901126100e9576100b16106a4565b6100b96106ba565b6001600160a01b039182166000908152600160209081526040808320949093168252928352819020549051908152f35b600080fd5b346100e95760403660031901126100e95761011461010a6106a4565b60243590336106d0565b602060405160018152f35b346100e95760403660031901126100e9576101386106a4565b6001600160a01b031660243581156101be576000908282528160205260408220548181106101a65760208285937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93869787528684520360408620558060025403600255604051908152a380f35b60649363391434e360e21b8452600452602452604452fd5b634b637e8f60e11b600052600060045260246000fd5b346100e95760003660031901126100e95760405160006004548060011c906001811680156102eb575b6020831081146102d7578285529081156102bb5750600114610264575b50819003601f01601f191681019067ffffffffffffffff82118183101761024e5761024a8291826040528261065b565b0390f35b634e487b7160e01b600052604160045260246000fd5b905060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b6000905b8282106102a55750602091508201018261021a565b6001816020925483858801015201910190610290565b90506020925060ff191682840152151560051b8201018261021a565b634e487b7160e01b84526022600452602484fd5b91607f16916101fd565b346100e95760203660031901126100e9576001600160a01b036103166106a4565b1660005260006020526020604060002054604051908152f35b346100e95760403660031901126100e9576103486106a4565b602435906001600160a01b031680156103c557600254918083018093116103af576020926002557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600093849284845283825260408420818154019055604051908152a380f35b634e487b7160e01b600052601160045260246000fd5b63ec442f0560e01b600052600060045260246000fd5b346100e95760003660031901126100e957602060405160128152f35b346100e95760603660031901126100e9576104106106a4565b6104186106ba565b6001600160a01b0382166000818152600160209081526040808320338452909152902054909260443592916000198110610458575b5061011493506106d0565b8381106104c75784156104b157331561049b57610114946000526001602052604060002060018060a01b033316600052602052836040600020910390558461044d565b634a1406b160e11b600052600060045260246000fd5b63e602df0560e01b600052600060045260246000fd5b8390637dc7a0d960e11b6000523360045260245260445260646000fd5b346100e95760003660031901126100e9576020600254604051908152f35b346100e95760403660031901126100e95761051b6106a4565b6024359033156104b1576001600160a01b031690811561049b57336000526001602052604060002082600052602052806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346100e95760003660031901126100e95760006003548060011c90600181168015610651575b6020831081146102d7578285529081156102bb57506001146105fa5750819003601f01601f191681019067ffffffffffffffff82118183101761024e5761024a8291826040528261065b565b905060036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b6000905b82821061063b5750602091508201018261021a565b6001816020925483858801015201910190610626565b91607f16916105ae565b91909160208152825180602083015260005b81811061068e575060409293506000838284010152601f8019910116010190565b806020809287010151604082860101520161066d565b600435906001600160a01b03821682036100e957565b602435906001600160a01b03821682036100e957565b6001600160a01b03169081156101be576001600160a01b03169182156103c557600082815280602052604081205482811061074f5791604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815280845220818154019055604051908152a3565b916064928463391434e360e21b8452600452602452604452fdfea2646970667358221220244a0a20c657fff7862703acb5cfe7ea7d2b0fc51d1a41b0a338be948dd8f1cf64736f6c634300081a003360c06040523461041a576118e5803803806100198161041f565b92833981016101008282031261041a5781516001600160401b03811161041a5781610045918401610444565b602083015190916001600160401b03821161041a57610065918401610444565b9160408101519160ff831680930361041a576060820151936080830151600381101561041a5760a0840151916100a960e06100a260c088016104af565b96016104af565b946001600160a01b03169384158015610409575b6103f8578051906001600160401b0382116102f55760065490600182811c921680156103ee575b60208310146102d55781601f84931161037e575b50602090601f83116001146103165760009261030b575b50508160011b916000199060031b1c1916176006555b8051906001600160401b0382116102f55760075490600182811c921680156102eb575b60208310146102d55781601f849311610265575b50602090601f83116001146101fd576000926101f2575b50508160011b916000199060031b1c1916176007555b6008549560805260a05260015560018060a01b03196000541617600055610100600160a81b039060081b169160018060a81b031916171760085560405161142190816104c4823960805181818161018101528181610b7b01526110d8015260a051816109fa0152f35b015190503880610173565b600760009081528281209350601f198516905b81811061024d5750908460019594939210610234575b505050811b01600755610189565b015160001960f88460031b161c19169055388080610226565b92936020600181928786015181550195019301610210565b60076000529091507fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688601f840160051c810191602085106102cb575b90601f859493920160051c01905b8181106102bc575061015c565b600081558493506001016102af565b90915081906102a1565b634e487b7160e01b600052602260045260246000fd5b91607f1691610148565b634e487b7160e01b600052604160045260246000fd5b01519050388061010f565b600660009081528281209350601f198516905b818110610366575090846001959493921061034d575b505050811b01600655610125565b015160001960f88460031b161c1916905538808061033f565b92936020600181928786015181550195019301610329565b60066000529091507ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f601f840160051c810191602085106103e4575b90601f859493920160051c01905b8181106103d557506100f8565b600081558493506001016103c8565b90915081906103ba565b91607f16916100e4565b63d92e233d60e01b60005260046000fd5b506001600160a01b038616156100bd565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176102f557604052565b81601f8201121561041a578051906001600160401b0382116102f557610473601f8301601f191660200161041f565b928284526020838301011161041a5760005b82811061049a57505060206000918301015290565b80602080928401015182828701015201610485565b51906001600160a01b038216820361041a5756fe608080604052600436101561001357600080fd5b60003560e01c90816306fdde0314610e8157508063091d278814610e63578063095ea7b314610e3d57806318160ddd14610e1f57806323b872dd14610d9e578063313ce56714610d7d5780633ce4a5bc14610d4e57806340c10f1914610d2957806342966c6814610d0c57806347e7ef2414610bf65780634d8943bb14610bd857806370a0823114610b9e57806385e1f4d014610b635780638b851b9514610b3957806395d89b4114610a695780639dc29fac14610a42578063a3413d03146109e7578063a9059cbb146109b6578063b84c824614610851578063c47f0027146106d6578063c701262614610574578063c835d7cc146104eb578063ccc7759914610445578063d9eeebed1461042c578063dd62ed3e146103db578063eddeb1231461037b578063f2441b3214610352578063f687d12a146102e15763fc5fecd51461015e57600080fd5b346102dc5760203660031901126102dc57600054604051630be1554760e01b81527f00000000000000000000000000000000000000000000000000000000000000006004820181905290916001600160a01b031690602083602481855afa92831561028e576000936102ab575b506001600160a01b0383161561029a5760209060246040518094819363d7fd7afb60e01b835260048301525afa90811561028e57600091610259575b5080156102485761021e61022791600435906110a6565b600254906110b9565b604080516001600160a01b03939093168352602083019190915290f35b0390f35b630e661aed60e41b60005260046000fd5b906020823d602011610286575b8161027360209383610f82565b8101031261028357505138610207565b80fd5b3d9150610266565b6040513d6000823e3d90fd5b633c7ff9cb60e11b60005260046000fd5b6102ce91935060203d6020116102d5575b6102c68183610f82565b810190611087565b91386101cb565b503d6102bc565b600080fd5b346102dc5760203660031901126102dc5760043573735b14bb79463307aacbed86daf3322b1e6226ab3303610341576020817fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a92600155604051908152a1005b632b2add3d60e01b60005260046000fd5b346102dc5760003660031901126102dc576000546040516001600160a01b039091168152602090f35b346102dc5760203660031901126102dc5760043573735b14bb79463307aacbed86daf3322b1e6226ab3303610341576020817fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f92600255604051908152a1005b346102dc5760403660031901126102dc576103f4610f56565b6103fc610f6c565b6001600160a01b039182166000908152600460209081526040808320949093168252928352819020549051908152f35b346102dc5760003660031901126102dc576102276110c6565b346102dc5760203660031901126102dc5761045e610f56565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610341576001600160a01b0381169081156104da5760088054610100600160a81b03191691811b610100600160a81b03169190911790556040519081527f88815d964e380677e86d817e7d65dea59cb7b4c3b5b7a0c8ec7ea4a74f90a38790602090a1005b63d92e233d60e01b60005260046000fd5b346102dc5760203660031901126102dc57610504610f56565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610341576001600160a01b031680156104da576020817fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae926bffffffffffffffffffffffff60a01b6000541617600055604051908152a1005b346102dc5760403660031901126102dc5760043567ffffffffffffffff81116102dc57366023820112156102dc576105b6903690602481600401359101610fa4565b60206024359160006105c66110c6565b93906064604051809481936323b872dd60e01b835233600484015273735b14bb79463307aacbed86daf3322b1e6226ab602484015288604484015260018060a01b03165af190811561028e57600091610697575b5015610686577f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d9559161064c8433611331565b6002549061066560405193608085526080850190610f15565b946020840152604083015260608201528033930390a2602060405160018152f35b63053e6b6b60e11b60005260046000fd5b6020813d6020116106ce575b816106b060209383610f82565b810103126106ca575190811515820361028357508461061a565b5080fd5b3d91506106a3565b346102dc576106e436610feb565b73735b14bb79463307aacbed86daf3322b1e6226ab330361034157805167ffffffffffffffff811161083b5761071b60065461102a565b601f81116107ce575b50602091601f821160011461076257918192600092610757575b5050600019600383901b1c191660019190911b17600655005b01519050828061073e565b601f1982169260066000526000805160206113cc8339815191529160005b8581106107b65750836001951061079d575b505050811b01600655005b015160001960f88460031b161c19169055828080610792565b91926020600181928685015181550194019201610780565b6006600052601f820160051c6000805160206113cc833981519152019060208310610825575b601f0160051c6000805160206113cc83398151915201905b8181106108195750610724565b6000815560010161080c565b6000805160206113cc83398151915291506107f4565b634e487b7160e01b600052604160045260246000fd5b346102dc5761085f36610feb565b73735b14bb79463307aacbed86daf3322b1e6226ab330361034157805167ffffffffffffffff811161083b5761089660075461102a565b601f8111610949575b50602091601f82116001146108dd579181926000926108d2575b5050600019600383901b1c191660019190911b17600755005b0151905082806108b9565b601f1982169260076000526000805160206113ac8339815191529160005b85811061093157508360019510610918575b505050811b01600755005b015160001960f88460031b161c1916905582808061090d565b919260206001819286850151815501940192016108fb565b6007600052601f820160051c6000805160206113ac8339815191520190602083106109a0575b601f0160051c6000805160206113ac83398151915201905b818110610994575061089f565b60008155600101610987565b6000805160206113ac833981519152915061096f565b346102dc5760403660031901126102dc576109dc6109d2610f56565b6024359033611230565b602060405160018152f35b346102dc5760003660031901126102dc577f00000000000000000000000000000000000000000000000000000000000000006040516003821015610a2c576020918152f35b634e487b7160e01b600052602160045260246000fd5b346102dc5760403660031901126102dc57610a67610a5e610f56565b60243590611331565b005b346102dc5760003660031901126102dc576040516000600754610a8b8161102a565b8084529060018116908115610b155750600114610ac7575b61024483610ab381850382610f82565b604051918291602083526020830190610f15565b91905060076000526000805160206113ac833981519152916000905b808210610afb57509091508101602001610ab3610aa3565b919260018160209254838588010152019101909291610ae3565b60ff191660208086019190915291151560051b84019091019150610ab39050610aa3565b346102dc5760003660031901126102dc5760088054604051911c6001600160a01b03168152602090f35b346102dc5760003660031901126102dc5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346102dc5760203660031901126102dc576001600160a01b03610bbf610f56565b1660005260036020526020604060002054604051908152f35b346102dc5760003660031901126102dc576020600254604051908152f35b346102dc5760403660031901126102dc57610c0f610f56565b6024359073735b14bb79463307aacbed86daf3322b1e6226ab33141580610cf7575b80610cdf575b610cce57610cae81610c6a847f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab3946112d6565b60405173735b14bb79463307aacbed86daf3322b1e6226ab60601b60208201526014815290610c9a603483610f82565b604051928392604084526040840190610f15565b60208301959095526001600160a01b0316930390a2602060405160018152f35b636edaef2f60e11b60005260046000fd5b506008805433911c6001600160a01b03161415610c37565b506000546001600160a01b0316331415610c31565b346102dc5760203660031901126102dc576109dc60043533611331565b346102dc5760403660031901126102dc57610a67610d45610f56565b602435906112d6565b346102dc5760003660031901126102dc57602060405173735b14bb79463307aacbed86daf3322b1e6226ab8152f35b346102dc5760003660031901126102dc57602060ff60085416604051908152f35b346102dc5760603660031901126102dc57610db7610f56565b610dbf610f6c565b90610dce604435809383611230565b6001600160a01b0381166000908152600460209081526040808320338452909152902054828110610e0e576109dc92610e0691611064565b9033906111c9565b6310bad14760e01b60005260046000fd5b346102dc5760003660031901126102dc576020600554604051908152f35b346102dc5760403660031901126102dc576109dc610e59610f56565b60243590336111c9565b346102dc5760003660031901126102dc576020600154604051908152f35b346102dc5760003660031901126102dc576000600654610ea08161102a565b8084529060018116908115610b155750600114610ec75761024483610ab381850382610f82565b91905060066000526000805160206113cc833981519152916000905b808210610efb57509091508101602001610ab3610aa3565b919260018160209254838588010152019101909291610ee3565b919082519283825260005b848110610f41575050826000602080949584010152601f8019910116010190565b80602080928401015182828601015201610f20565b600435906001600160a01b03821682036102dc57565b602435906001600160a01b03821682036102dc57565b90601f8019910116810190811067ffffffffffffffff82111761083b57604052565b92919267ffffffffffffffff821161083b5760405191610fce601f8201601f191660200184610f82565b8294818452818301116102dc578281602093846000960137010152565b60206003198201126102dc576004359067ffffffffffffffff82116102dc57806023830112156102dc5781602461102793600401359101610fa4565b90565b90600182811c9216801561105a575b602083101461104457565b634e487b7160e01b600052602260045260246000fd5b91607f1691611039565b9190820391821161107157565b634e487b7160e01b600052601160045260246000fd5b908160209103126102dc57516001600160a01b03811681036102dc5790565b8181029291811591840414171561107157565b9190820180921161107157565b600054604051630be1554760e01b81527f0000000000000000000000000000000000000000000000000000000000000000600482018190529092916001600160a01b031690602084602481855afa93841561028e576000946111a8575b506001600160a01b0384161561029a5760209060246040518094819363d7fd7afb60e01b835260048301525afa90811561028e57600091611176575b5080156102485761021e61102791600154906110a6565b906020823d6020116111a0575b8161119060209383610f82565b810103126102835750513861115f565b3d9150611183565b6111c291945060203d6020116102d5576102c68183610f82565b9238611123565b6001600160a01b03169081156104da576001600160a01b03169182156104da5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260048252604060002085600052825280604060002055604051908152a3565b6001600160a01b03169081156104da576001600160a01b03169182156104da578160005260036020526040600020548181106112c557816112947fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93602093611064565b8460005260038352604060002055846000526003825260406000206112ba8282546110b9565b9055604051908152a3565b63fe382aa760e01b60005260046000fd5b6001600160a01b03169081156104da577fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020826113186000946005546110b9565b60055584845260038252604084206112ba8282546110b9565b6001600160a01b031680156104da57806000526003602052604060002054918083106112c5576020816113877fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93600096611064565b84865260038352604086205561139f81600554611064565b600555604051908152a356fea66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688f652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3fa2646970667358221220143426ebea1dd98ec97cac7a50bf56d05abc5cfb38e424354c050953db17fb6764736f6c634300081a00330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da26469706673582212206717e45fdf103a1ef42406c04560a62655c0f1b8dc7c77591c01b71b30c96d8e64736f6c634300081a003360803460a357601f620103f838819003918201601f19168301916001600160401b0383118484101760a857808492604094855283398101031260a3576001604e602060488460be565b930160be565b918160ff19600c541617600c55601f54906101008360a81b039060081b1690828060a81b0319161717601f5560018060a01b031660018060a01b03196020541617602055604051620103269081620000d28239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820360a35756fe6080604052600436101561001257600080fd5b60003560e01c8062173d46146101b65780631694505e146101b15780631ed7831c146101ac5780632ade3880146101a75780632c76d7a6146101a2578063342a30c31461019d5780633ce4a5bc146101985780633e5e3c23146101935780633f7286f41461018e57806351976f441461018957806352dc56b81461018457806359d0f7131461017f5780635b5491821461017a57806366141ce21461017557806366d9a9a01461017057806385226c811461016b578063916a17c614610166578063a0d788b714610161578063b0464fdc1461015c578063b5508aa914610157578063ba414fa614610152578063bb88b7691461014d578063d5f3948814610148578063e20c9f7114610143578063f04ab5341461013e5763fa7626d41461013957600080fd5b611c24565b611bfb565b611b7b565b611b4e565b611b25565b611b00565b611a73565b6119c7565b6116c8565b61161c565b611517565b61140b565b611324565b6112fb565b6112d2565b610684565b610636565b6105a5565b610525565b6104fe565b6104d5565b6104ac565b610400565b610260565b6101f4565b6101cb565b60009103126101c657565b600080fd5b346101c65760003660031901126101c6576021546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c6576024546040516001600160a01b039091168152602090f35b602060408183019282815284518094520192019060005b8181106102415750505090565b82516001600160a01b0316845260209384019390920191600101610234565b346101c65760003660031901126101c65760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b8181106102d1576102cd856102c181870382611c79565b6040519182918261021d565b0390f35b82546001600160a01b03168452602090930192600192830192016102aa565b60005b8381106103035750506000910152565b81810151838201526020016102f3565b9060209161032c815180928185528580860191016102f0565b601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061036b57505050505090565b9091929394603f198282030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b85010194019260005b8281106103d55750505050506020806001929701930193019193929061035c565b90919293946020806103f3600193605f198782030189528951610313565b97019501939291016103b4565b346101c65760003660031901126101c657601e5461041d81611c9b565b9061042b6040519283611c79565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061047157604051806102cd8782610338565b6002602060019260405161048481611c5d565b848060a01b03865416815261049a858701611d7f565b8382015281520192019201919061045c565b346101c65760003660031901126101c6576026546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c6576027546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c657602080546040516001600160a01b039091168152f35b346101c65760003660031901126101c65760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b818110610586576102cd856102c181870382611c79565b82546001600160a01b031684526020909301926001928301920161056f565b346101c65760003660031901126101c65760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b818110610606576102cd856102c181870382611c79565b82546001600160a01b03168452602090930192600192830192016105ef565b6001600160a01b038116036101c657565b346101c65760403660031901126101c65761066860043561065681610625565b6024359061066382610625565b611ea1565b604080516001600160a01b039384168152919092166020820152f35b346101c65760003660031901126101c657601f5460081c6001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af18015611104576112bd575b5060405161088580820182811067ffffffffffffffff8211176111bc57829162005e27833903906000f0801561110457602180546001600160a01b0319166001600160a01b03909216919091179055600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af18015611104576112a8575b506020546001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af1801561110457611293575b506020546001600160a01b0316600080516020620102d18339815191523b156101c65760405163c88a5e6d60e01b81526001600160a01b03919091166004820152678ac7230489e80000602482015260008160448183600080516020620102d18339815191525af180156111045761127e575b5060215461088e90610882906001600160a01b031681565b6001600160a01b031690565b803b156101c6576000678ac7230489e8000091600460405180948193630d0e30db60e41b83525af1801561110457611269575b50600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af1801561110457611254575b50601f5460081c6001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af180156111045761123f575b50601f5460081c6001600160a01b0316600080516020620102d18339815191523b156101c65760405163c88a5e6d60e01b81526001600160a01b03919091166004820152678ac7230489e80000602482015260008160448183600080516020620102d18339815191525af180156111045761122a575b506021546109ff90610882906001600160a01b031681565b803b156101c6576000678ac7230489e8000091600460405180948193630d0e30db60e41b83525af1801561110457611215575b50600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af1801561110457611200575b50601f54610af090610ad390610ab19060081c6001600160a01b0316602154610aab906001600160a01b0316610882565b90611ea1565b602480546001600160a01b0319166001600160a01b0390921691909117905590565b60018060a01b03166001600160601b0360a01b6023541617602355565b601f54610b8790610b4d90610b6a90610b2a9060081c6001600160a01b0316602154610b24906001600160a01b0316610882565b906125b2565b602780546001600160a01b0319166001600160a01b039092169190911790559092565b60018060a01b03166001600160601b0360a01b6026541617602655565b60018060a01b03166001600160601b0360a01b6025541617602555565b6020546001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af18015611104576111eb575b506021546001600160a01b03166023546001600160a01b03166024549091906001600160a01b03169160405192610b3a918285019385851067ffffffffffffffff8611176111bc578594610c6294620052ed87396001600160a01b0391821681529181166020830152909116604082015260600190565b03906000f0801561110457602280546001600160a01b0319166001600160a01b039092169190911790556040516128e080820182811067ffffffffffffffff8211176111bc57829162002a0d833903906000f0801561110457600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af18015611104576111d6575b50601f5460081c6001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af18015611104576111c1575b506040516192d980820182811067ffffffffffffffff8211176111bc578291620066ac833903906000f0801561110457602880546001600160a01b0319166001600160a01b03929092169182179055610dc290610882565b906040519161094c9081840184811067ffffffffffffffff8211176111bc578493610e09936200f98586396001600160a01b03908116825291909116602082015260400190565b03906000f0801561110457602980546001600160a01b0319166001600160a01b03929092169182179055610e3c90610882565b6021546001600160a01b0316601f5460081c6001600160a01b0316823b156101c65760405163485cc95560e01b81526001600160a01b03928316600482015291166024820152906000908290604490829084905af18015611104576111a7575b50600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af1801561110457611192575b506020546001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af180156111045761117d575b5060006020610fb7610f6861088261088260215460018060a01b031690565b602954610f7d906001600160a01b0316610882565b60405163095ea7b360e01b81526001600160a01b039091166004820152678ac7230489e80000602482015293849283919082906044820190565b03925af1801561110457611160575b50600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af180156111045761114b575b50601f5460081c6001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af1801561110457611136575b5060006020611095610f6861088261088260215460018060a01b031690565b03925af1801561110457611109575b50600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af18015611104576110ed57005b806110fc600061110293611c79565b806101bb565b005b611dd7565b61112a9060203d60201161112f575b6111228183611c79565b8101906121e1565b6110a4565b503d611118565b806110fc600061114593611c79565b38611076565b806110fc600061115a93611c79565b3861100e565b6111789060203d60201161112f576111228183611c79565b610fc6565b806110fc600061118c93611c79565b38610f49565b806110fc60006111a193611c79565b38610ee4565b806110fc60006111b693611c79565b38610e9c565b611c47565b806110fc60006111d093611c79565b38610d6a565b806110fc60006111e593611c79565b38610d02565b806110fc60006111fa93611c79565b38610beb565b806110fc600061120f93611c79565b38610a7a565b806110fc600061122493611c79565b38610a32565b806110fc600061123993611c79565b386109e7565b806110fc600061124e93611c79565b38610971565b806110fc600061126393611c79565b38610909565b806110fc600061127893611c79565b386108c1565b806110fc600061128d93611c79565b3861086a565b806110fc60006112a293611c79565b386107f7565b806110fc60006112b793611c79565b38610792565b806110fc60006112cc93611c79565b386106fc565b346101c65760003660031901126101c6576023546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c6576025546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c6576028546040516001600160a01b039091168152602090f35b906020808351928381520192019060005b81811061136b5750505090565b82516001600160e01b03191684526020938401939092019160010161135e565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106113be57505050505090565b90919293946020806113fc600193603f19868203018752895190836113ec8351604084526040840190610313565b920151908481840391015261134d565b970193019301919392906113af565b346101c65760003660031901126101c657601b5461142881611c9b565b906114366040519283611c79565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b83831061147c57604051806102cd878261138b565b6002602060019260405161148f81611c5d565b61149886611cb3565b81526114a58587016121f9565b83820152815201920192019190611467565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106114ea57505050505090565b9091929394602080611508600193603f198682030187528951610313565b970193019301919392906114db565b346101c65760003660031901126101c657601a5461153481611c9b565b906115426040519283611c79565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b83831061158757604051806102cd87826114b7565b60016020819261159685611cb3565b815201920192019190611572565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106115d757505050505090565b909192939460208061160d600193603f198682030187526040838b51878060a01b0381511684520151918185820152019061134d565b970193019301919392906115c8565b346101c65760003660031901126101c657601d5461163981611c9b565b906116476040519283611c79565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b83831061168d57604051806102cd87826115a4565b600260206001926040516116a081611c5d565b848060a01b0386541681526116b68587016121f9565b83820152815201920192019190611678565b346101c65760e03660031901126101c6576004356116e581610625565b602435906116f282610625565b6044356116fe81610625565b6064359161170b83610625565b6084359261171884610625565b60a4359260c43595600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b038716600482015260008160248183600080516020620102d18339815191525af18015611104576119b2575b506040516364e329cb60e11b81526001600160a01b0383811660048301528481166024830152909160209183916044918391600091165af1801561110457611985575b5060405163095ea7b360e01b81526001600160a01b0384166004820152602481018590526020818060448101038160006001600160a01b0387165af1801561110457611968575b5060405163095ea7b360e01b81526001600160a01b038416600482015260248101879052906020828060448101038160006001600160a01b0388165af18015611104576060966000936118bc9261194b575b5061185c42612433565b60405162e8e33760e81b81526001600160a01b03948516600482015295841660248701526044860197909752606485019890985260006084850181905260a4850152961660c483015260e482019390935293849283918290610104820190565b03926001600160a01b03165af180156111045761191c5750600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af18015611104576110ed57005b61193d9060603d606011611944575b6119358183611c79565b810190612458565b50506110a4565b503d61192b565b6119639060203d60201161112f576111228183611c79565b611852565b6119809060203d60201161112f576111228183611c79565b611800565b6119a69060203d6020116119ab575b61199e8183611c79565b81019061241e565b6117b9565b503d611994565b806110fc60006119c193611c79565b38611776565b346101c65760003660031901126101c657601c546119e481611c9b565b906119f26040519283611c79565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b838310611a3857604051806102cd87826115a4565b60026020600192604051611a4b81611c5d565b848060a01b038654168152611a618587016121f9565b83820152815201920192019190611a23565b346101c65760003660031901126101c657601954611a9081611c9b565b90611a9e6040519283611c79565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b838310611ae357604051806102cd87826114b7565b600160208192611af285611cb3565b815201920192019190611ace565b346101c65760003660031901126101c6576020611b1b612482565b6040519015158152f35b346101c65760003660031901126101c6576022546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c657601f5460405160089190911c6001600160a01b03168152602090f35b346101c65760003660031901126101c65760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b818110611bdc576102cd856102c181870382611c79565b82546001600160a01b0316845260209093019260019283019201611bc5565b346101c65760003660031901126101c6576029546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c657602060ff601f54166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176111bc57604052565b90601f8019910116810190811067ffffffffffffffff8211176111bc57604052565b67ffffffffffffffff81116111bc5760051b60200190565b9060405191600081548060011c9260018216918215611d75575b602085108314611d61578487528693926020850192918115611d445750600114611d02575b5050611d0092500383611c79565b565b611d13919250600052602060002090565b906000915b848310611d2d5750611d009350013880611cf2565b805482840152869350602090920191600101611d18565b915050611d009491925060ff19168252151560051b013880611cf2565b634e487b7160e01b84526022600452602484fd5b93607f1693611ccd565b908154611d8b81611c9b565b92611d996040519485611c79565b818452602084019060005260206000206000915b838310611dba5750505050565b600160208192611dc985611cb3565b815201920192019190611dad565b6040513d6000823e3d90fd5b67ffffffffffffffff81116111bc57601f01601f191660200190565b6020818303126101c65780519067ffffffffffffffff82116101c6570181601f820112156101c65760208151910190611e3781611de3565b92611e456040519485611c79565b818452818301116101c657611e5e9160208401906102f0565b90565b611e7360409283835283830190610313565b90602081830391015260148152730b995d9b4b989e5d1958dbd9194b9bd89a9958dd60621b60208201520190565b919091600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b038216600482015260008160248183600080516020620102d18339815191525af18015611104576121cc575b506040516360f9bb1160e01b815260206004820152603960248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76322d636f72652f627560448201527f696c642f556e69737761705632466163746f72792e6a736f6e000000000000006064820152600081608481600080516020620102d18339815191525afa90811561110457611faa916000918291612191575b5060405180938192631fb2437d60e31b835260048301611e61565b0381600080516020620102d18339815191525afa80156111045761200a92611ff7926000926121ab575b50604080516001600160a01b039092166020830152909261200591849190820190565b03601f198101845283611c79565b612515565b6040516360f9bb1160e01b815260206004820152603f60248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76322d7065726970686560448201527f72792f6275696c642f556e69737761705632526f7574657230322e6a736f6e006064820152909290600081608481600080516020620102d18339815191525afa908115611104576120bb916000918291612191575060405180938192631fb2437d60e31b835260048301611e61565b0381600080516020620102d18339815191525afa80156111045761210f92611ff792600092612168575b50604080516001600160a01b03808916602083015290921690820152916120059083906060820190565b90600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af18015611104576121595750565b806110fc6000611d0093611c79565b61200591925061218a903d806000833e6121828183611c79565b810190611dff565b91906120e5565b6121a591503d8084833e6121828183611c79565b38611f8f565b6120059192506121c5903d806000833e6121828183611c79565b9190611fd4565b806110fc60006121db93611c79565b38611efa565b908160209103126101c6575180151581036101c65790565b604051815480825290929183906122196020830191600052602060002090565b926000905b80600783011061236157611d00945491818110612342575b818110612323575b818110612304575b8181106122e5575b8181106122c6575b8181106122a7575b818110612289575b10612274575b500383611c79565b6001600160e01b03191681526020013861226c565b602083811b6001600160e01b03191685529093600191019301612266565b604083901b6001600160e01b031916845292600190602001930161225e565b606083901b6001600160e01b0319168452926001906020019301612256565b608083901b6001600160e01b031916845292600190602001930161224e565b60a083901b6001600160e01b0319168452926001906020019301612246565b60c083901b6001600160e01b031916845292600190602001930161223e565b6001600160e01b031960e084901b168452926001906020019301612236565b9160089193506101006001916124108754612387838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b01940192018592939161221e565b908160209103126101c65751611e5e81610625565b90610384820180921161244257565b634e487b7160e01b600052601160045260246000fd5b908160609103126101c6578051916040602083015192015190565b908160209103126101c6575190565b60085460ff1680156124915790565b50604051630667f9d760e41b8152600080516020620102d1833981519152600482018190526519985a5b195960d21b6024830152602090829060449082905afa908115611104576000916124e6575b50151590565b612508915060203d60201161250e575b6125008183611c79565b810190612473565b386124e0565b503d6124f6565b9061255a6020916040519283918161253681850197888151938492016102f0565b830161254a825180938580850191016102f0565b010103601f198101835282611c79565b51906000f09081156101c657565b61257a60409283835283830190610313565b90602081830391015260098152682e62797465636f646560b81b60208201520190565b604051906125ac602083611c79565b60008252565b600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af18015611104576129f7575b506040516360f9bb1160e01b815260206004820152605c60248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76332d636f72652f617260448201527f746966616374732f636f6e7472616374732f556e69737761705633466163746f60648201527f72792e736f6c2f556e69737761705633466163746f72792e6a736f6e00000000608482015260008160a481600080516020620102d18339815191525afa908115611104576126e09160009182916129a7575b5060405180938192631fb2437d60e31b835260048301612568565b0381600080516020620102d18339815191525afa801561110457612715916000916129dc575b5061270f61259d565b90612515565b6040516360f9bb1160e01b815260206004820152605560248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76332d7065726970686560448201527f72792f6172746966616374732f636f6e7472616374732f53776170526f757465606482015274391739b7b617a9bbb0b82937baba32b9173539b7b760591b608482015290929060008160a481600080516020620102d18339815191525afa908115611104576127e49160009182916129a7575060405180938192631fb2437d60e31b835260048301612568565b0381600080516020620102d18339815191525afa801561110457612836916000916129c1575b50604080516001600160a01b038088166020830152861691810191909152906120058260608101611ff7565b6040516360f9bb1160e01b815260206004820152607560248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76332d7065726970686560448201527f72792f6172746966616374732f636f6e7472616374732f4e6f6e66756e67696260648201527f6c65506f736974696f6e4d616e616765722e736f6c2f4e6f6e66756e6769626c60848201527432a837b9b4ba34b7b726b0b730b3b2b9173539b7b760591b60a482015290929060008160c481600080516020620102d18339815191525afa9081156111045761292b9160009182916129a7575060405180938192631fb2437d60e31b835260048301612568565b0381600080516020620102d18339815191525afa80156111045761210f928592600092612986575b50604080516001600160a01b03808a16602083015292831691810191909152921660608301526120058260808101611ff7565b6120059192506129a0903d806000833e6121828183611c79565b9190612953565b6129bb91503d8084833e6121828183611c79565b386126c5565b6129d691503d806000833e6121828183611c79565b3861280a565b6129f191503d806000833e6121828183611c79565b38612706565b806110fc6000612a0693611c79565b3861260a56fe60a080604052346100ea57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b6040516127f090816100f08239608051818181610db80152610e4c0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880610054565b63f92ee8a960e01b60005260046000fd5b600080fdfe6080806040526004361015610067575b50361561001b57600080fd5b610023611f8e565b6000546001600160a01b03163314158061004f575b61003e57005b63b3af013760e01b60005260046000fd5b506000805160206126fb833981519152331415610038565b600090813560e01c90816301ffc9a714611b2b5750806306cb898314611818578063184b0793146117195780632095dedb146115e457806321501a95146113f757806321e093b1146113d0578063248a9ca3146113a95780632722feee146113805780632810ae63146112f65780632f2ff15d146112c457806336568abe1461127f5780633f4ba83a146111fd578063485cc955146110345780634f1ef28614610e0d57806352d1902d14610da55780635c975abb14610d755780637b15118b14610b445780637c0dcb5f146108885780638456cb591461081357806391d14854146107ba57806397a1cef11461074d57806397d340f5146107305780639d4ba465146105c4578063a217fddf146105a8578063ad3cb1cc1461055b578063bcf7f32b146104b4578063c39aca371461033d578063d547741f14610302578063e63ab1e9146102c75763f45346dc0361000f57346102c45760603660031901126102c4576101d3611c4a565b906024356101df611c60565b926000805160206126fb83398151915233036102b5576101fd611f8e565b6001600160a01b03811693841580156102a4575b610295578215610286576001600160a01b038116916000805160206126fb8339815191528314801561027d575b61026e5761024d918491612503565b15610256578280f35b606493632050a1dd60e11b8452600452602452604452fd5b63416aebb560e11b8552600485fd5b5030831461023e565b635d67094f60e01b8452600484fd5b63d92e233d60e01b8452600484fd5b506001600160a01b03811615610211565b632160203f60e11b8352600483fd5b80fd5b50346102c457806003193601126102c45760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346102c45760403660031901126102c457610339600435610322611c34565b9061033461032f82611efe565b6120bd565b612330565b5080f35b50346102c45761034c36611cf8565b95949291909361035a611fdf565b6000805160206126fb83398151915233036104a557610377611f8e565b6001600160a01b0381169687158015610494575b610485578315610476576001600160a01b038316926000805160206126fb8339815191528414801561046d575b61045e57846103c79184612503565b1561044357869750823b1561043f5786946103fa869260405198899788968795632de7eb0b60e11b875260048701611e8e565b03925af180156104345761041f575b50600160008051602061277b8339815191525580f35b8161042991611bb1565b6102c4578038610409565b6040513d84823e3d90fd5b8680fd5b60648785858b632050a1dd60e11b8452600452602452604452fd5b63416aebb560e11b8852600488fd5b503084146103b8565b635d67094f60e01b8752600487fd5b63d92e233d60e01b8752600487fd5b506001600160a01b0383161561038b565b632160203f60e11b8652600486fd5b50346102c4576104c336611cf8565b90936104d29695939296611fdf565b6000805160206126fb83398151915233036104a5576104ef611f8e565b6001600160a01b03811615801561054a575b61053b57859660018060a01b031691823b1561043f5786946103fa869260405198899788968795632de7eb0b60e11b875260048701611e8e565b63d92e233d60e01b8652600486fd5b506001600160a01b03871615610501565b50346102c457806003193601126102c457506105a460405161057e604082611bb1565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611cb7565b0390f35b50346102c457806003193601126102c457602090604051908152f35b50346102c45760803660031901126102c4576105de611c4a565b90602435916105eb611c60565b90606435916001600160401b03831161072c576080600319843603011261072c57610614611fdf565b6000805160206126fb833981519152330361071d57610631611f8e565b6001600160a01b038216908115801561070c575b6106fd5785156106ee576001600160a01b038116926000805160206126fb833981519152841480156106e5575b6106d657610681918791612503565b156106bc5750829350803b156106b8576103fa8392918392604051948580948193636481451b60e11b835260040160048301611e29565b5050fd5b6064949250632050a1dd60e11b8452600452602452604452fd5b63416aebb560e11b8652600486fd5b50308414610672565b635d67094f60e01b8552600485fd5b63d92e233d60e01b8552600485fd5b506001600160a01b03811615610645565b632160203f60e11b8452600484fd5b8380fd5b50346102c457806003193601126102c45760206040516108008152f35b50346102c45760803660031901126102c4576004356001600160401b0381116107b65761077e903690600401611bed565b506064356001600160401b0381116107b65760a09060031990360301126102c4576004906107aa611f8e565b63e4dd681d60e01b8152fd5b5080fd5b50346102c45760403660031901126102c45760406107d6611c34565b91600435815260008051602061273b833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346102c457806003193601126102c45761082c61204b565b610834611f8e565b600160ff1960008051602061275b83398151915254161760008051602061275b833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346102c45760803660031901126102c4576004356001600160401b0381116107b6576108b9903690600401611bed565b90602435916108c6611c60565b906064356001600160401b03811161072c57806004019060a06003198236030112610b40576108f3611f8e565b8251156106fd5785156106ee576064016108006109108284611d75565b905011610b1d5750604051630123a4f160e31b8152939485946001600160a01b03851694602082600481895afa918215610ada578792610ae5575b509061095791836123d0565b604051634d8943bb60e01b815290602082600481895afa918215610ada578792610aa3575b50604051630123a4f160e31b8152926020846004818a5afa938415610a98578894610a4f575b507f07bf64173efd8f3dfb9e4eb3834bab9d5b85a3d89a1c6425797329de0668502c9593610a49936109fd9693602093604051936109df85611b80565b84526001858501526040519889986101208a526101208a0190611cb7565b9a85890152604088015260608701526080860152610a37858903918260a08801528a8a5260c0870190602080918051845201511515910152565b01610100840152602033960190611f1f565b0390a380f35b975094925090926020873d602011610a90575b81610a6f60209383611bb1565b81010312610a8b579551879692949293909290919060206109a2565b600080fd5b3d9150610a62565b6040513d8a823e3d90fd5b965090506020863d602011610ad2575b81610ac060209383611bb1565b81010312610a8b57869551903861097c565b3d9150610ab3565b6040513d89823e3d90fd5b915095506020813d602011610b15575b81610b0260209383611bb1565b81010312610a8b5751869561095761094b565b3d9150610af5565b610b2a8591604493611d75565b63cd6f4e6d60e01b835260045250610800602452fd5b8480fd5b50346102c45760e03660031901126102c4576004356001600160401b0381116107b657610b75903690600401611bed565b9060243591610b82611c60565b906064356001600160401b03811161072c57610ba2903690600401611c8a565b9490916040366083190112610b405760c435916001600160401b038311610d7157826004019360a0600319853603011261043f57610bde611f8e565b82511561048557811561047657608435938415610d6257606401610800610c10610c088389611d75565b90508b611da7565b11610d345750968697610c278588859a999a6123d0565b604051634d8943bb60e01b815290986001600160a01b031693602082600481885afa918215610d29578992610cea575b5098610c9a9596979899610c78604051986101208a526101208a0190611cb7565b95602089015260408801526060870152608086015284830360a0860152611e08565b9160c082015260a43591821515809303610b4057610a4982917fd90f94752d2b12f364f4a2237ebe1aff24ba6127585376bf4935f6a7be17dd2a9460e08401528281036101008401523395611f1f565b959697985090506020853d602011610d21575b81610d0a60209383611bb1565b81010312610a8b5793518997969594610c9a610c57565b3d9150610cfd565b6040513d8b823e3d90fd5b87610d4d8a610d456044948a611d75565b919050611da7565b63cd6f4e6d60e01b8252600452610800602452fd5b6360ee124760e01b8852600488fd5b8580fd5b50346102c457806003193601126102c457602060ff60008051602061275b83398151915254166040519015158152f35b50346102c457806003193601126102c4577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610dfe57602060405160008051602061271b8339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126102c457610e22611c4a565b906024356001600160401b0381116107b657610e42903690600401611bed565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611011575b506110025781805260008051602061273b83398151915260209081526040808420336000908152925290205460ff1615610fea576040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa80958596610fb6575b50610ef057634c9c8ce360e01b84526004839052602484fd5b90918460008051602061271b8339815191528103610fa45750813b15610f925760008051602061271b83398151915280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a28151839015610f78578083602061033995519101845af4610f7261201b565b91612699565b50505034610f835780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011610fe2575b81610fd260209383611bb1565b81010312610b4057519438610ed7565b3d9150610fc5565b63e2517d3f60e01b8252336004526024829052604482fd5b63703e46dd60e11b8252600482fd5b60008051602061271b833981519152546001600160a01b03161415905038610e77565b50346102c45760403660031901126102c45761104e611c4a565b611056611c34565b60008051602061279b833981519152549160ff8360401c1615926001600160401b038116801590816111f5575b60011490816111eb575b1590816111e2575b506111d35767ffffffffffffffff19811660011760008051602061279b83398151915255836111a6575b506001600160a01b03169081158015611195575b61029557611124906110e361262b565b6110eb61262b565b6110f361262b565b6110fb61262b565b61110361262b565b600160008051602061277b8339815191525561111e81612107565b506121b9565b5082546001600160a01b03191617825561113b5780f35b68ff00000000000000001960008051602061279b833981519152541660008051602061279b833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b506001600160a01b038116156110d3565b68ffffffffffffffffff1916680100000000000000011760008051602061279b83398151915255386110bf565b63f92ee8a960e01b8552600485fd5b90501538611095565b303b15915061108d565b859150611083565b50346102c457806003193601126102c45761121661204b565b60008051602061275b8339815191525460ff8116156112705760ff191660008051602061275b833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346102c45760403660031901126102c457611299611c34565b336001600160a01b038216036112b55761033990600435612330565b63334bd91960e11b8252600482fd5b50346102c45760403660031901126102c4576103396004356112e4611c34565b906112f161032f82611efe565b612287565b50346102c45760e03660031901126102c4576004356001600160401b0381116107b657611327903690600401611bed565b506064356001600160401b0381116107b657611347903690600401611c8a565b505060403660831901126102c45760c4356001600160401b0381116107b65760a09060031990360301126102c4576004906107aa611f8e565b50346102c457806003193601126102c45760206040516000805160206126fb8339815191528152f35b50346102c45760203660031901126102c45760206113c8600435611efe565b604051908152f35b50346102c457806003193601126102c457546040516001600160a01b039091168152602090f35b50346102c45760803660031901126102c457600435906001600160401b0382116102c457606060031983360301126102c457602435611434611c60565b926064356001600160401b03811161072c57611454903690600401611c8a565b61145f929192611fdf565b6000805160206126fb83398151915233036115d55761147c611f8e565b6001600160a01b03861695861561053b5784156115c6576000805160206126fb833981519152871480156115bd575b6106d65785546114c9908690309033906001600160a01b03166125d9565b156115a55785546001600160a01b0316803b1561043f5786808092602460405180958193632e1a7d4d60e01b83528c60048401525af19182611590575b505061152357604486868963793cd7bf60e11b8352600452602452fd5b858080878194989697985af161153761201b565b50156115795794849560018060a01b0386541690823b1561043f5786946103fa869260405198899788968795632de7eb0b60e11b875260040160048701611e8e565b604485838863793cd7bf60e11b8352600452602452fd5b8161159a91611bb1565b61043f578638611506565b63793cd7bf60e11b8652306004526024859052604486fd5b503087146114ab565b6319c08f4960e01b8652600486fd5b632160203f60e11b8552600485fd5b50346102c45760403660031901126102c4576115fe611c4a565b90602435916001600160401b0383116107b657826004019060c060031985360301126117155761162c611fdf565b6000805160206126fb83398151915233036102b557611649611f8e565b6001600160a01b0316908115611706578293823b15611701576103fa926116ef858094604051968795869485936316a67dbf60e11b85526020600486015260a46116a76116968380611dd7565b60c060248a015260e4890191611e08565b936001600160a01b036116bc60248301611c76565b166044880152604481013560648801526116d860648201611dca565b151560848801526084810135828801520190611dd7565b8483036023190160c486015290611e08565b505050fd5b63d92e233d60e01b8352600483fd5b8280fd5b50346102c45760403660031901126102c457611733611c4a565b90602435916001600160401b0383116107b657608060031984360301126107b65761175c611fdf565b6000805160206126fb833981519152330361180957611779611f8e565b6001600160a01b03169182156117fa578282933b156106b8576117b98392918392604051958680948193636481451b60e11b835260040160048301611e29565b03925af180156117ed576117dd575b600160008051602061277b8339815191525580f35b6117e691611bb1565b38816117c8565b50604051903d90823e3d90fd5b63d92e233d60e01b8252600482fd5b632160203f60e11b8252600482fd5b50346102c45760c03660031901126102c4576004356001600160401b0381116107b657611849903690600401611bed565b611851611c34565b6044356001600160401b03811161072c57611870903690600401611c8a565b90916040366063190112610b405760a435926001600160401b038411610d7157836004019260a0600319863603011261043f576118ab611f8e565b606435938415610d625760648601926108006118d26118ca8685611d75565b905085611da7565b11611b1a57604051956118e487611b80565b86526084358015158103611b165760208701526040519160a083018381106001600160401b03821117611b025760405261191d90611c76565b825261192b60248801611dca565b926020830193845261193f60448901611c76565b9460408401958652356001600160401b038111611afe5761196690600436918b0101611bed565b95606084019687526084608085019901358952895115611aef5787516040805163fc5fecd560e01b815260048101929092526001600160a01b03929092169a91816024818e5afa908115611ae4578c908d92611ab2575b506119c982338361257d565b15611a8257505093611a7493611a3c611a2660a099957f306ee13f48319a123b222c69908e44dcf91abffc20cacc502e3cf5a4ff23e0e49b9995611a1860809a6040519d8e8181520190611cb7565b8c810360208e015291611e08565b885160408b0152602090980151151560608a0152565b87870386890152516001600160a01b03908116875290511515602087015290511660408501525160a060608501819052840190611cb7565b94519101528033930390a380f35b633338088960e11b8d526001600160a01b03166004526000805160206126fb83398151915260245260445260648bfd5b9050611ad6915060403d604011611add575b611ace8183611bb1565b810190611fb8565b90386119bd565b503d611ac4565b6040513d8e823e3d90fd5b63d92e233d60e01b8b5260048bfd5b8a80fd5b634e487b7160e01b8b52604160045260248bfd5b8980fd5b604489610d4d85610d458887611d75565b9050346107b65760203660031901126107b65760043563ffffffff60e01b81168091036117155760209250637965db0b60e01b8114908115611b6f575b5015158152f35b6301ffc9a760e01b14905038611b68565b604081019081106001600160401b03821117611b9b57604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b03821117611b9b57604052565b6001600160401b038111611b9b57601f01601f191660200190565b81601f82011215610a8b57803590611c0482611bd2565b92611c126040519485611bb1565b82845260208383010111610a8b57816000926020809301838601378301015290565b602435906001600160a01b0382168203610a8b57565b600435906001600160a01b0382168203610a8b57565b604435906001600160a01b0382168203610a8b57565b35906001600160a01b0382168203610a8b57565b9181601f84011215610a8b578235916001600160401b038311610a8b5760208381860195010111610a8b57565b919082519283825260005b848110611ce3575050826000602080949584010152601f8019910116010190565b80602080928401015182828601015201611cc2565b60a0600319820112610a8b576004356001600160401b038111610a8b5760608183036003190112610a8b57600401916024356001600160a01b0381168103610a8b5791604435916064356001600160a01b0381168103610a8b5791608435906001600160401b038211610a8b57611d7191600401611c8a565b9091565b903590601e1981360301821215610a8b57018035906001600160401b038211610a8b57602001918136038313610a8b57565b91908201809211611db457565b634e487b7160e01b600052601160045260246000fd5b35908115158203610a8b57565b9035601e1982360301811215610a8b5701602081359101916001600160401b038211610a8b578136038313610a8b57565b908060209392818452848401376000828201840152601f01601f1916010190565b60208152611e8b9160a090611e7b906001600160a01b03611e4982611c76565b166020850152600180841b03611e6160208301611c76565b166040850152604081013560608501526060810190611dd7565b9190926080808201520191611e08565b90565b90939192611e8b9593608083526040611ebb611eaa8880611dd7565b6060608088015260e0870191611e08565b966001600160a01b03611ed060208301611c76565b1660a0860152013560c08401526001600160a01b031660208301526040820152808403606090910152611e08565b60005260008051602061273b83398151915260205260016040600020015490565b906001600160a01b03611f3183611c76565b168152611f4060208301611dca565b151560208201526001600160a01b03611f5b60408401611c76565b166040820152608080611f85611f746060860186611dd7565b60a0606087015260a0860191611e08565b93013591015290565b60ff60008051602061275b8339815191525416611fa757565b63d93c066560e01b60005260046000fd5b9190826040910312610a8b5781516001600160a01b0381168103610a8b5760209092015190565b600260008051602061277b833981519152541461200a57600260008051602061277b83398151915255565b633ee5aeb560e01b60005260046000fd5b3d15612046573d9061202c82611bd2565b9161203a6040519384611bb1565b82523d6000602084013e565b606090565b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561208457565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b600081815260008051602061273b8339815191526020908152604080832033845290915290205460ff16156120ef5750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff166121b3576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50600090565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff166121b3576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b600081815260008051602061273b833981519152602090815260408083206001600160a01b038616845290915290205460ff1661232957600081815260008051602061273b833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b5050600090565b600081815260008051602061273b833981519152602090815260408083206001600160a01b038616845290915290205460ff161561232957600081815260008051602061273b833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6040805163fc5fecd560e01b8152600481019490945290916001600160a01b0381169184602481855afa9384156124df576000906000956124bb575b5061241885338361257d565b15612484575061242a833033846125d9565b1561245a578261243991612659565b1561244357505090565b637112ae7760e01b60005260045260245260446000fd5b506084916040519163489ca9b760e01b835260048301523360248301523060448301526064820152fd5b633338088960e11b60009081526001600160a01b039091166004526000805160206126fb8339815191526024526044859052606490fd5b90506124d791945060403d604011611add57611ace8183611bb1565b93903861240c565b6040513d6000823e3d90fd5b90816020910312610a8b57518015158103610a8b5790565b6040516311f9fbc960e21b81526001600160a01b039283166004820152602481019390935260209183916044918391600091165af16000918161254c575b50611e8b5750600090565b61256f91925060203d602011612576575b6125678183611bb1565b8101906124eb565b9038612541565b503d61255d565b6040516323b872dd60e01b81526001600160a01b0392831660048201526000805160206126fb8339815191526024820152604481019390935260209183916064918391600091165af16000918161254c5750611e8b5750600090565b6040516323b872dd60e01b81526001600160a01b03928316600482015292821660248401526044830193909352909160209183916064918391600091165af16000918161254c5750611e8b5750600090565b60ff60008051602061279b8339815191525460401c161561264857565b631afcd79f60e31b60005260046000fd5b604051630852cd8d60e31b81526004810192909252602090829060249082906000906001600160a01b03165af16000918161254c5750611e8b5750600090565b906126bf57508051156126ae57805190602001fd5b63d6bda27560e01b60005260046000fd5b815115806126f1575b6126d0575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b156126c856fe000000000000000000000000735b14bb79463307aacbed86daf3322b1e6226ab360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220542941658a96d6dd4010b90beba1b2fc5ed2076ef97c9889b30ab9ceda5036f064736f6c634300081a003360c03461010057601f610b3a38819003918201601f19168301916001600160401b0383118484101761010557808492606094604052833981010312610100576100478161011b565b9061006060406100596020840161011b565b920161011b565b9173735b14bb79463307aacbed86daf3322b1e6226ab33036100ef57600380546001600160a01b0319166001600160a01b039290921691909117905560805260a0526040517f80699e81136d69cb8367ad52a994e25c722a86da654b561d0c14b61a777e7ac5600080a1610a0a9081610130823960805181818161018a015261065d015260a051816106d70152f35b632b2add3d60e01b60005260046000fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036101005756fe608080604052600436101561001357600080fd5b600090813560e01c9081630be1554714610817575080631f0e251b146107915780633ce4a5bc14610762578063513a9c051461072f578063569541b914610706578063842da36d146106c157806391dd645f146105f057806397770dff1461054c578063a7cb0507146104da578063c39aca3714610263578063c62178ac1461023a578063c63585cc146101e2578063d7fd7afb146101b9578063d936a012146101745763ee2815ba146100c657600080fd5b34610171576040366003190112610171576004356100e2610864565b9073735b14bb79463307aacbed86daf3322b1e6226ab33036101625780835260016020908152604080852080546001600160a01b0319166001600160a01b0390951694851790558051928352908201929092527fd1b36d30f6248e97c473b4d1348ca164a4ef6759022f54a58ec200326c39c45d91819081015b0390a180f35b632b2add3d60e01b8352600483fd5b80fd5b50346101715780600319360112610171576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461017157602036600319011261017157604060209160043581528083522054604051908152f35b5034610171576060366003190112610171576101fc610849565b610204610864565b604435929091906001600160a01b03841684036101715760206102288585856108d3565b6040516001600160a01b039091168152f35b50346101715780600319360112610171576004546040516001600160a01b039091168152602090f35b50346101715760a0366003190112610171576004359067ffffffffffffffff82116101715781360360606003198201126104d65761029f610864565b92604435906064356001600160a01b038116908190036104d25760843567ffffffffffffffff81116104ce57366023820112156104ce5780600401359367ffffffffffffffff85116104615736602486840101116104615773735b14bb79463307aacbed86daf3322b1e6226ab33036104bf5773735b14bb79463307aacbed86daf3322b1e6226ab831480156104b6575b6104a7576040516311f9fbc960e21b815260048101849052602481018290529697959688966001600160a01b0316906020816044818b865af1801561049c57610465575b50833b156104615760405197636f218ab760e11b8952608060048a01528560040135906022190181121561045d57850160246004820135910167ffffffffffffffff8211610459578136038113610459576103da91606060848c015260e48b01916108b2565b60248601356001600160a01b038116919082900361045957889760248b98968a968a989660448a9861042d9860a48b0152013560c4890152838801526044870152600319868503016064870152016108b2565b03925af1801561044c5761043e5780f35b6104479161087a565b388180f35b50604051903d90823e3d90fd5b8880fd5b8780fd5b8680fd5b6020813d602011610494575b8161047e6020938361087a565b8101031261045d57518015158114610374578780fd5b3d9150610471565b6040513d8a823e3d90fd5b63416aebb560e11b8752600487fd5b50308314610330565b632b2add3d60e01b8752600487fd5b8580fd5b8480fd5b5080fd5b50346101715760403660031901126101715760043560243573735b14bb79463307aacbed86daf3322b1e6226ab330361016257816040917f49f492222906ac486c3c1401fa545626df1f0c0e5a77a05597ea2ed66af9850d93855284602052808386205582519182526020820152a180f35b503461017157602036600319011261017157610566610849565b73735b14bb79463307aacbed86daf3322b1e6226ab33036105e1576001600160a01b031680156105d2576020817fdba79d534382d1a8ae108e4c8ecb27c6ae42ab8b91d44eedf88bd329f3868d5e926001600160601b0360a01b6003541617600355604051908152a180f35b63d92e233d60e01b8252600482fd5b632b2add3d60e01b8252600482fd5b50346101715760403660031901126101715760043561060d610864565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610162576003547f0ecec485166da6139b13bb7e033e9446e2d35348e80ebf1180d4afe2dba1704e9291610681916001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006108d3565b81845260026020908152604080862080546001600160a01b0319166001600160a01b0390941693841790558051938452908301919091528190810161015c565b50346101715780600319360112610171576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101715780600319360112610171576003546040516001600160a01b039091168152602090f35b503461017157602036600319011261017157602090600435815260028252604060018060a01b0391205416604051908152f35b5034610171578060031936011261017157602060405173735b14bb79463307aacbed86daf3322b1e6226ab8152f35b5034610171576020366003190112610171576107ab610849565b73735b14bb79463307aacbed86daf3322b1e6226ab33036105e1576001600160a01b031680156105d2576020817f3ade88e3922d64780e1bf4460d364c2970b69da813f9c0c07a1c187b5647636c926001600160601b0360a01b6004541617600455604051908152a180f35b9050346104d65760203660031901126104d6576004358252600160209081526040909220546001600160a01b03168152f35b600435906001600160a01b038216820361085f57565b600080fd5b602435906001600160a01b038216820361085f57565b90601f8019910116810190811067ffffffffffffffff82111761089c57604052565b634e487b7160e01b600052604160045260246000fd5b908060209392818452848401376000828201840152601f01601f1916010190565b91906001600160a01b038083169082168082146109c35710156109be57905b6001600160a01b038216156109ad576040519060208201926001600160601b03199060601b1683526001600160601b03199060601b1660348201526028815261093c60488261087a565b5190209060405191602083019160ff60f81b83526001600160601b03199060601b16602184015260358301527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f60558301526055825261099d60758361087a565b905190206001600160a01b031690565b633c5a83ed60e11b60005260046000fd5b6108f2565b63658f3e7f60e11b60005260046000fdfea26469706673582212203d5f24fd62859186e7d8a9f41a0e370a08bd7cbc34344f0eb46593f3ba299ff564736f6c634300081a003360806040523461011457610014600054610119565b601f81116100cb575b507f577261707065642045746865720000000000000000000000000000000000001a60005560015461004e90610119565b601f8111610081575b6008630ae8aa8960e31b016001556002805460ff1916601217905560405161073190816101548239f35b6001600052601f0160051c7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6908101905b8181106100bf5750610057565b600081556001016100b2565b60008052601f0160051c7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563908101905b818110610108575061001d565b600081556001016100fb565b600080fd5b90600182811c92168015610149575b602083101461013357565b634e487b7160e01b600052602260045260246000fd5b91607f169161012856fe60806040526004361015610023575b361561001957600080fd5b6100216106b2565b005b60003560e01c806306fdde0314610423578063095ea7b3146103a957806318160ddd1461038d57806323b872dd1461035e5780632e1a7d4d146102b9578063313ce5671461029857806370a082311461025e57806395d89b411461013d578063a9059cbb1461010b578063d0e30db0146100f75763dd62ed3e0361000e57346100f25760403660031901126100f2576100ba610526565b6100c261053c565b6001600160a01b039182166000908152600460209081526040808320949093168252928352819020549051908152f35b600080fd5b60003660031901126100f2576100216106b2565b346100f25760403660031901126100f2576020610133610129610526565b60243590336105a8565b6040519015158152f35b346100f25760003660031901126100f2576000604051816001548060011c90600181168015610254575b6020831081146102405782855290811561022457506001146101d0575b50819003601f01601f1916810167ffffffffffffffff8111828210176101bc576101b89250604052604051918291826104dd565b0390f35b634e487b7160e01b83526041600452602483fd5b600184529050827fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b82821061020e57506020915082010183610184565b60018160209254838588010152019101906101f9565b90506020925060ff191682840152151560051b82010183610184565b634e487b7160e01b86526022600452602486fd5b91607f1691610167565b346100f25760203660031901126100f2576001600160a01b0361027f610526565b1660005260036020526020604060002054604051908152f35b346100f25760003660031901126100f257602060ff60025416604051908152f35b346100f25760203660031901126100f2576004353360005260036020526102e7816040600020541015610552565b3360005260036020526040600020610300828254610578565b90558060008115610355575b600080809381933390f115610349576040519081527f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b6560203392a2005b6040513d6000823e3d90fd5b506108fc61030c565b346100f25760603660031901126100f257602061013361037c610526565b61038461053c565b604435916105a8565b346100f25760003660031901126100f257602047604051908152f35b346100f25760403660031901126100f2576103c2610526565b3360008181526004602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b346100f25760003660031901126100f25760006040518182548060011c906001811680156104d3575b60208310811461024057828552908115610224575060011461049c5750819003601f01601f1916810167ffffffffffffffff8111828210176101bc576101b89250604052604051918291826104dd565b90508280526020832083905b8282106104bd57506020915082010183610184565b60018160209254838588010152019101906104a8565b91607f169161044c565b91909160208152825180602083015260005b818110610510575060409293506000838284010152601f8019910116010190565b80602080928701015160408286010152016104ef565b600435906001600160a01b03821682036100f257565b602435906001600160a01b03821682036100f257565b1561055957565b60405162461bcd60e51b81526020600482015260006024820152604490fd5b9190820391821161058557565b634e487b7160e01b600052601160045260246000fd5b9190820180921161058557565b60207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9160018060a01b03169283600052600382526105ee856040600020541015610552565b3384141580610691575b610646575b83600052600382526040600020610615868254610578565b905560018060a01b0316938460005260038252604060002061063882825461059b565b9055604051908152a3600190565b6000848152600483526040808220338352845290205461066890861115610552565b600084815260048352604080822033835284529020805461068a908790610578565b90556105fd565b506000848152600483526040808220338352845290205460001914156105f8565b33600052600360205260406000206106cb34825461059b565b90556040513481527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a256fea26469706673582212209e220afc3d58f06e9fcfb74d0eadc71ef1ec14a29eb328f69f1935849690effe64736f6c634300081a003360808060405234602f57600160ff19600c541617600c55600160ff19601f541617601f556192a490816100358239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c8062173d46146102465780631ed7831c146102415780632558fcec1461023c5780632ade38801461023757806332030cef14610232578063347f3a7c1461022d5780633e5e3c23146102285780633f7286f41461022357806366d9a9a01461021e578063735de9f7146102195780638016f22b146102145780638327f7901461020f57806385226c811461020a5780638c52853c14610205578063916a17c614610200578063944a3ba4146101fb578063acfdc212146101f6578063ad82a627146101f1578063b0464fdc146101ec578063b184b87c146101e7578063b1c388b8146101e2578063b5508aa9146101dd578063b8969900146101d8578063ba414fa6146101d3578063bea9849e146101ce578063cc5ad8b6146101c9578063ced6e793146101c4578063d333abf6146101bf578063d7b3eeaf146101ba578063e20c9f71146101b5578063ebcff1c6146101b0578063f51a071d146101ab578063f59e8a67146101a6578063f9a41697146101a15763fa7626d41461019c57600080fd5b6116ef565b6116b5565b61165c565b6115ec565b6112b0565b611230565b611217565b6111e3565b61117e565b611151565b611112565b6110ed565b6110ae565b611021565b611004565b610f68565b610ebc565b610e35565b610d99565b610d06565b610c5a565b610b95565b610b08565b610a33565b6108a8565b61087f565b6107d3565b610695565b610615565b6105c2565b610586565b6104a9565b610365565b6102d5565b61025b565b600091031261025657565b600080fd5b34610256576000366003190112610256576026546040516001600160a01b039091168152602090f35b906020808351928381520192019060005b8181106102a25750505090565b82516001600160a01b0316845260209384019390920191600101610295565b9060206102d2928181520190610284565b90565b346102565760003660031901126102565760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b818110610346576103428561033681870382610966565b604051918291826102c1565b0390f35b82546001600160a01b031684526020909301926001928301920161031f565b34610256576020366003190112610256576004356000526022602052602060018060a01b0360406000205416604051908152f35b60005b8381106103ac5750506000910152565b818101518382015260200161039c565b906020916103d581518092818552858086019101610399565b601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061041457505050505090565b9091929394603f198282030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b85010194019260005b82811061047e57505050505060208060019297019301930191939290610405565b909192939460208061049c600193605f1987820301895289516103bc565b970195019392910161045d565b3461025657600036600319011261025657601e546104c681611712565b906104d46040519283610966565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061051a576040518061034287826103e1565b6002602060019260405161052d8161090f565b848060a01b0386541681526105438587016117f3565b83820152815201920192019190610505565b6001600160a01b0381160361025657565b6064359061057382610555565b565b9060206102d29281815201906103bc565b34610256576020366003190112610256576103426105ae6004356105a981610555565b61184b565b6040519182916020835260208301906103bc565b34610256576040366003190112610256576106136024356004356105e582610555565b600052602260205260406000209060018060a01b03166bffffffffffffffffffffffff60a01b825416179055565b005b346102565760003660031901126102565760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b818110610676576103428561033681870382610966565b82546001600160a01b031684526020909301926001928301920161065f565b346102565760003660031901126102565760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b8181106106f6576103428561033681870382610966565b82546001600160a01b03168452602090930192600192830192016106df565b906020808351928381520192019060005b8181106107335750505090565b82516001600160e01b031916845260209384019390920191600101610726565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061078657505050505090565b90919293946020806107c4600193603f19868203018752895190836107b483516040845260408401906103bc565b9201519084818403910152610715565b97019301930191939290610777565b3461025657600036600319011261025657601b546107f081611712565b906107fe6040519283610966565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b83831061084457604051806103428782610753565b600260206001926040516108578161090f565b61086086611729565b815261086d858701611883565b8382015281520192019201919061082f565b34610256576000366003190112610256576025546040516001600160a01b039091168152602090f35b34610256576040366003190112610256576106136024356004356108cb82610555565b600090815260216020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761092a57604052565b6108f9565b61010081019081106001600160401b0382111761092a57604052565b606081019081106001600160401b0382111761092a57604052565b90601f801991011681019081106001600160401b0382111761092a57604052565b60405190610573602083610966565b60405190610573606083610966565b60405190610573608083610966565b6040519061057360c083610966565b6001600160401b03811161092a57601f01601f191660200190565b81601f82011215610256578035906109f5826109c3565b92610a036040519485610966565b8284526020838301011161025657816000926020809301838601378301015290565b908160a09103126102565790565b346102565760a036600319011261025657600435610a5081610555565b6024356001600160401b03811161025657610a6f9036906004016109de565b90606435604435610a7f82610555565b608435936001600160401b03851161025657610aa2610613953690600401610a25565b93611f79565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610adb57505050505090565b9091929394602080610af9600193603f1986820301875289516103bc565b97019301930191939290610acc565b3461025657600036600319011261025657601a54610b2581611712565b90610b336040519283610966565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310610b7857604051806103428782610aa8565b600160208192610b8785611729565b815201920192019190610b63565b34610256576040366003190112610256576020602435600435610bb782610555565b60009081526023835260408082206001600160a01b03938416835260205290205b5416604051908152f35b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610c1557505050505090565b9091929394602080610c4b600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610715565b97019301930191939290610c06565b3461025657600036600319011261025657601d54610c7781611712565b90610c856040519283610966565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b838310610ccb57604051806103428782610be2565b60026020600192604051610cde8161090f565b848060a01b038654168152610cf4858701611883565b83820152815201920192019190610cb6565b3461025657602036600319011261025657600435610d2381610555565b601f8054610100600160a81b03191660089290921b610100600160a81b0316919091179055005b9181601f84011215610256578235916001600160401b038311610256576020838186019501011161025657565b60409060a31901126102565760a490565b604090608319011261025657608490565b346102565761010036600319011261025657600435610db781610555565b6024356001600160401b03811161025657610dd69036906004016109de565b90604435610de2610566565b6084356001600160401b03811161025657610e01903690600401610d4a565b91610e0b36610d77565b9360e435966001600160401b03881161025657610e2f610613983690600401610a25565b96612b04565b346102565760e036600319011261025657602435600435610e5582610555565b604435610e6181610555565b60643590608435610e7181610555565b60a4356001600160401b03811161025657610e90903690600401610d4a565b93909260c435966001600160401b03881161025657610eb6610613983690600401610a25565b96613476565b3461025657600036600319011261025657601c54610ed981611712565b90610ee76040519283610966565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b838310610f2d57604051806103428782610be2565b60026020600192604051610f408161090f565b848060a01b038654168152610f56858701611883565b83820152815201920192019190610f18565b346102565760e036600319011261025657600435610f8581610555565b6024356001600160401b03811161025657610fa49036906004016109de565b90604435610fb181610555565b6064356001600160401b03811161025657610fd0903690600401610d4a565b90610fda36610d88565b9260c435956001600160401b03871161025657610ffe610613973690600401610a25565b956138d4565b346102565760003660031901126102565760208054604051908152f35b346102565760003660031901126102565760195461103e81611712565b9061104c6040519283610966565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b83831061109157604051806103428782610aa8565b6001602081926110a085611729565b81520192019201919061107c565b34610256576020366003190112610256576004356110cb81610555565b602680546001600160a01b0319166001600160a01b0392909216919091179055005b34610256576000366003190112610256576020611108613d3b565b6040519015158152f35b346102565760203660031901126102565760043561112f81610555565b602580546001600160a01b0319166001600160a01b0392909216919091179055005b3461025657600036600319011261025657601f5460405160089190911c6001600160a01b03168152602090f35b346102565760c03660031901126102565760243560043561119e82610555565b6044356111aa81610555565b606435608435916111ba83610555565b60a435946001600160401b038611610256576111dd610613963690600401610a25565b94613e3f565b34610256576020366003190112610256576004356000526021602052602060018060a01b0360406000205416604051908152f35b3461025657602036600319011261025657600435602055005b346102565760003660031901126102565760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b818110611291576103428561033681870382610966565b82546001600160a01b031684526020909301926001928301920161127a565b346102565760a0366003190112610256576004356024356112d081610555565b604435916112dd83610555565b6064356001600160401b038111610256576112fc903690600401610d4a565b6084356001600160401b0381116102565761131b903690600401610a25565b601f549095906004906020906113449060081c6001600160a01b03165b6001600160a01b031690565b6040516313917f7760e11b815292839182905afa90811561151d576000916115bd575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d576115a8575b50601f546113d79060081c6001600160a01b0316611338565b604051606087901b6001600160601b03191660208201529261140684603481015b03601f198101865285610966565b61140e610996565b9384526001600160a01b038716602085015285604085015261144a61143d876000526022602052604060002090565b546001600160a01b031690565b90823b156102565760009461147786926040519889978896879563bcf7f32b60e01b875260048701614072565b03926216e360f1908161158d575b5061152257611492611d28565b60205460405163348051d760e11b8152600481019190915290919060008160248160008051602061924f8339815191525afa801561151d57610613956114ef6114ea866040946114f5966000916114fa575b5061413d565b6141c7565b016141bd565b616213565b61151791503d806000833e61150f8183610966565b810190611b3b565b386114e4565b611afa565b505060205460405163348051d760e11b81526004810191909152905060008160248160008051602061924f8339815191525afa90811561151d57610613916114ea91600091611572575b506140b9565b61158791503d806000833e61150f8183610966565b3861156c565b8061159c60006115a293610966565b8061024b565b38611485565b8061159c60006115b793610966565b386113be565b6115df915060203d6020116115e5575b6115d78183610966565b810190611c26565b38611367565b503d6115cd565b3461025657604036600319011261025657602060243560043561160e82610555565b60009081526024835260408082206001600160a01b0393841683526020529020610bd8565b6060906003190112610256576004359060243561164f81610555565b906044356102d281610555565b346102565761061361169661167036611633565b9291600052602360205260406000209060018060a01b0316600052602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b34610256576106136116966116c936611633565b9291600052602460205260406000209060018060a01b0316600052602052604060002090565b3461025657600036600319011261025657602060ff601f54166040519015158152f35b6001600160401b03811161092a5760051b60200190565b9060405191600081548060011c92600182169182156117e9575b6020851083146117d55784875286939260208501929181156117b85750600114611776575b505061057392500383610966565b611787919250600052602060002090565b906000915b8483106117a157506105739350013880611768565b80548284015286935060209092019160010161178c565b9150506105739491925060ff19168252151560051b013880611768565b634e487b7160e01b84526022600452602484fd5b93607f1693611743565b9081546117ff81611712565b9261180d6040519485610966565b818452602084019060005260206000206000915b83831061182e5750505050565b60016020819261183d85611729565b815201920192019190611821565b90813b6000611859826109c3565b6118666040519182610966565b828152611872836109c3565b602082019190601f1901368337943c565b604051815480825290929183906118a36020830191600052602060002090565b926000905b8060078301106119eb576105739454918181106119cc575b8181106119ad575b81811061198e575b81811061196f575b818110611950575b818110611931575b818110611913575b106118fe575b500383610966565b6001600160e01b0319168152602001386118f6565b602083811b6001600160e01b031916855290936001910193016118f0565b604083901b6001600160e01b03191684529260019060200193016118e8565b606083901b6001600160e01b03191684529260019060200193016118e0565b608083901b6001600160e01b03191684529260019060200193016118d8565b60a083901b6001600160e01b03191684529260019060200193016118d0565b60c083901b6001600160e01b03191684529260019060200193016118c8565b6001600160e01b031960e084901b1684529260019060200193016118c0565b916008919350610100600191611a9a8754611a11838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b0194019201859293916118a8565b60405190611ab58261092f565b606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b90816020910312610256575190565b6040513d6000823e3d90fd5b90929192611b13816109c3565b91611b216040519384610966565b829482845282820111610256576020610573930190610399565b602081830312610256578051906001600160401b03821161025657019080601f830112156102565781516102d292602001611b06565b90610573601b602960405180956802db1b430b4b724b2160bd1b6020830152611ba38151809260208686019101610399565b81017f5d205b4552524f525d2047617465776179206e6f7420666f756e640000000000838201520301600419810185520183610966565b9060208251920151916bffffffffffffffffffffffff1983169260148210611c00575050565b6001600160601b031960149290920360031b82901b16169150565b519061057382610555565b9081602091031261025657516102d281610555565b90610573601b602960405180956802db1b430b4b724b2160bd1b6020830152611c6d8151809260208686019101610399565b81017f5d205b4552524f525d20437573746f6479206e6f7420666f756e640000000000838201520301600419810185520183610966565b906105736033602960405180956802db1b430b4b724b2160bd1b6020830152611cd68151809260208686019101610399565b81017f5d205b494e464f5d2045524332302f5a45544120776974686472617720636f6d8382015272706c65746564207375636365737366756c6c7960681b604982015203016013810185520183610966565b3d15611d53573d90611d39826109c3565b91611d476040519384610966565b82523d6000602084013e565b606090565b60266105739193929360296040519586926802db1b430b4b724b2160bd1b6020850152611d8e8151809260208688019101610399565b83017f5d205b4552524f525d2045524332302f5a4554412077697468647261772066618382015265034b632b21d160d51b6049820152611dd8825180936020604f85019101610399565b01010301601f198101845283610966565b8015150361025657565b91909160a081840312610256576040519060a082018281106001600160401b0382111761092a5760405281938135611e2a81610555565b83526020820135611e3a81611de9565b60208401526040820135611e4d81610555565b60408401526060820135916001600160401b03831161025657611e7660809392849383016109de565b60608501520135910152565b906105736023602960405180956802db1b430b4b724b2160bd1b6020830152611eb48151809260208686019101610399565b81017f5d205b4552524f525d2047617320746f6b656e207472616e736665722066616983820152621b195960ea1b604982015203016003810185520183610966565b906105736032602960405180956802db1b430b4b724b2160bd1b6020830152611f288151809260208686019101610399565b81017f5d205b494e464f5d2047617320746f6b656e207472616e7366657220636f6d7083820152716c65746564207375636365737366756c6c7960701b604982015203016012810185520183610966565b9293919093611f86611aa8565b60405163085e1f4d60e41b81529095906001600160a01b03831690602081600481855afa90811561151d57611fd59161143d91600091612657575b50808a526000526021602052604060002090565b6001600160a01b0390811660208901818152929190611ff390611338565b16156125df5761203761203161204f9261201e61133861143d8d516000526022602052604060002090565b1460408b0190815294611bda565b611bda565b60601c90565b6001600160a01b031660608901908152925b51151590565b1561223f57516004919060209061206e906001600160a01b0316611338565b604051635b11259160e01b815293849182905afa91821561151d5760009261221e575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af191821561151d57600080866121068295839561211f9861220a575b50516001600160a01b031690565b5af1612110611d28565b50151560c08701908152612049565b15612190575050915160405163348051d760e11b815260048101919091529150600090508160248160008051602061924f8339815191525afa90811561151d57610573916114ea91600091612175575b50611ef6565b61218a91503d806000833e61150f8183610966565b3861216f565b845160405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa95861561151d576121e16114ea610573986121ea946000916121ef575b50611e82565b51933690611df3565b614ddf565b61220491503d806000833e61150f8183610966565b386121db565b8061159c8661221893610966565b386120f8565b61223891925060203d6020116115e5576115d78183610966565b9038612091565b80516004919060209061225a906001600160a01b0316611338565b60405163dda79b7560e01b815293849182905afa91821561151d576000926125be575b506001600160a01b03919091166080880181815291906122ad906122a090611338565b1560a08a01908152612049565b6125465751600491906020906122cb906001600160a01b0316611338565b604051635b11259160e01b815293849182905afa91821561151d57600092612525575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af191821561151d576113386123629261133892612370956125165750516001600160a01b031690565b91516001600160a01b031690565b6123a361143d8461238c8a516000526024602052604060002090565b9060018060a01b0316600052602052604060002090565b90823b1561025657604051636ce5768960e11b81526001600160a01b0391821660048201529116602482015260448101849052906000908290606490829084905af19081612501575b5061247f5761242e946123fd611d28565b90600060c08201528160e0820152600081516040518099819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d576114ea6121ea936121e1926105739a600091612464575b50611d58565b61247991503d806000833e61150f8183610966565b3861245e565b5050505060008161249660c06124b6940160019052565b516040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea916000916124e6575b50611ca4565b6124fb91503d806000833e61150f8183610966565b386124e0565b8061159c600061251093610966565b386123ec565b8061159c600061221893610966565b61253f91925060203d6020116115e5576115d78183610966565b90386122ee565b50505050505050600061257391516040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea916000916125a3575b50611c3b565b6125b891503d806000833e61150f8183610966565b3861259d565b6125d891925060203d6020116115e5576115d78183610966565b903861227d565b50505050505050600061260c91516040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea9160009161263c575b50611b71565b61265191503d806000833e61150f8183610966565b38612636565b612679915060203d60201161267f575b6126718183610966565b810190611aeb565b38611fc1565b503d612667565b6040519061014082018281106001600160401b0382111761092a5760405260606101208360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201528260e082015260006101008201520152565b356102d281611de9565b908060209392818452848401376000828201840152601f01601f1916010190565b90516001600160a01b039081168252918216602082015291166040820152606081019190915260a0608082018190526102d2939101916126f3565b90610573603c602960405180956802db1b430b4b724b2160bd1b60208301526127818151809260208686019101610399565b81017f5d205b494e464f5d2045524332302f5a45544120776974686472617720616e64838201527f2063616c6c20636f6d706c65746564207375636365737366756c6c790000000060498201520301601c810185520183610966565b602f6105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526128138151809260208688019101610399565b83017f5d205b4552524f525d2045524332302f5a45544120776974686472617720616e838201526e0321031b0b636103330b4b632b21d1608d1b6049820152611dd8825180936020605885019101610399565b906004116102565790600490565b356001600160e01b031981169291906004821061288f575050565b6001600160e01b031960049290920360031b82901b16169150565b90610573605a60405180947f526563656976657220636f6e747261637420646f6573206e6f7420636f6e746160208301527f696e2066756e6374696f6e20776974682073656c6563746f722000000000000060408301526129148151809260208686019101610399565b81010301601f198101845283610966565b600a6105739193929360296040519586926802db1b430b4b724b2160bd1b602085015261295b8151809260208688019101610399565b83016902e902da2a92927a92e960b51b83820152611dd8825180936020603385019101610399565b9080601f830112156102565781516102d292602001611b06565b906020828203126102565781516001600160401b038111610256576102d29201612983565b90516001600160a01b03908116825290911660208201526060604082018190526102d2939101916126f3565b90610573603b602960405180956802db1b430b4b724b2160bd1b6020830152612a208151809260208686019101610399565b81017f5d205b494e464f5d2047617320746f6b656e207472616e7366657220616e6420838201527f63616c6c20636f6d706c65746564207375636365737366756c6c79000000000060498201520301601b810185520183610966565b602e6105739193929360296040519586926802db1b430b4b724b2160bd1b6020850152612ab28151809260208688019101610399565b83017f5d205b4552524f525d2047617320746f6b656e207472616e7366657220616e64838201526d01031b0b636103330b4b632b21d160951b6049820152611dd8825180936020605785019101610399565b95969491939096612b13612686565b60405163085e1f4d60e41b815290986001600160a01b03861691602081600481865afa90811561151d57612b619161143d916000916132d0575b50808d526000526021602052604060002090565b6001600160a01b0390811660208c01818152939190612b7f90611338565b16156132a057612bba6120318c949361202c6040612bd095612bb261133861143d8b516000526022602052604060002090565b149701968752565b6001600160a01b031660608c0190815292612049565b15612f8957612be1602084016126e9565b612e34575b805160049493929190602090612c04906001600160a01b0316611338565b604051635b11259160e01b815296879182905afa94851561151d57600095612e13575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039590951660048601526000856024818360008051602061924f8339815191525af194851561151d576113388992612c9892600098612e055750516001600160a01b031690565b923592612cc1612ca6610987565b6001600160a01b038d168152935b516001600160a01b031690565b92612ce2604051988997889687946338e2252760e01b8652600486016129c2565b0393f19081612de4575b50612d8157612d3094612cfd611d28565b90600061010082015281610120820152600081516040518099819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d576114ea6121ea936121e1926105739a600091612d66575b50612a7c565b612d7b91503d806000833e61150f8183610966565b38612d60565b50505050600081612496610100612d99940160019052565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091612dc9575b506129ee565b612dde91503d806000833e61150f8183610966565b38612dc3565b612e00903d806000833e612df88183610966565b81019061299d565b612cec565b8061159c8a61221893610966565b612e2d91955060203d6020116115e5576115d78183610966565b9338612c27565b612e47612e418686612866565b90612874565b8251612e6e90612e6a908390612e65906001600160a01b031661184b565b61544d565b1590565b612e785750612be6565b9250505087925060009150612e9360c0612ebd990160019052565b604051631623433d60e31b81526001600160e01b0319909116600482015296879081906024820190565b038160008051602061924f8339815191525afa95861561151d57612f1896612eed91600091612f6e575b506128aa565b9060e08101918252600081516040518099819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d576114ea6121ea936121e1926105739a600092612f51575b505190612925565b612f679192503d806000833e61150f8183610966565b9038612f49565b612f8391503d806000833e61150f8183610966565b38612ee7565b80519194929160049190602090612fa8906001600160a01b0316611338565b60405163dda79b7560e01b815293849182905afa91821561151d5760009261327f575b506001600160a01b039190911660808b018181529190612fff908c906120499060a090612ff790611338565b159201918252565b61324f57516004919060209061301d906001600160a01b0316611338565b604051635b11259160e01b815293849182905afa91821561151d5760009261322e575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af191821561151d576113386130b292611338928e956125165750516001600160a01b031690565b92868a6130c36020863596016126e9565b1561321a575061143d6131069161238c6130f460009a5b612cb46130e5610987565b6001600160a01b03909d168d52565b95516000526024602052604060002090565b93803b156102565788966131366000979388946040519a8b998a9889966356840c2960e11b885260048801612714565b0393f19081613205575b506131a25761315194612cfd611d28565b038160008051602061924f8339815191525afa801561151d576114ea6121ea936121e1926105739a600091613187575b506127dd565b61319c91503d806000833e61150f8183610966565b38613181565b505050506000816124966101006131ba940160019052565b038160008051602061924f8339815191525afa90811561151d57610573916114ea916000916131ea575b5061274f565b6131ff91503d806000833e61150f8183610966565b386131e4565b8061159c600061321493610966565b38613140565b6131069161238c6130f461143d939a6130da565b61324891925060203d6020116115e5576115d78183610966565b9038613040565b50505050505050505050600061257391516040518093819263348051d760e11b8352600483019190602083019252565b61329991925060203d6020116115e5576115d78183610966565b9038612fcb565b50505050505050505050600061260c91516040518093819263348051d760e11b8352600483019190602083019252565b6132e9915060203d60201161267f576126718183610966565b38612b4d565b60256105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526133258151809260208688019101610399565b83017f5d205b4552524f525d205a52433230206e6f7420666f756e6420666f722061738382015264039b2ba1d160dd1b6049820152611dd8825180936020604e85019101610399565b9060408061338584516060855260608501906103bc565b6020808601516001600160a01b03169085015293015191015290565b9194926133bb6102d297959260a0855260a085019061336e565b6001600160a01b0396871660208501526040840191909152941660608201528084036080909101526126f3565b90610573603a602960405180956802db1b430b4b724b2160bd1b602083015261341a8151809260208686019101610399565b81017f5d205b494e464f5d205a657461436861696e206465706f73697420616e642063838201527f616c6c20636f6d706c65746564207375636365737366756c6c7900000000000060498201520301601a810185520183610966565b95969491909661349761143d8661238c8a6000526023602052604060002090565b926001600160a01b038416156136b457601f546004906020906134c59060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091613695575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57613680575b50601f546135589060081c6001600160a01b0316611338565b6040516001600160601b031960608c901b166020820152601481529161357f603484610966565b613587610996565b9283526001600160a01b038b166020840152896040840152813b1561025657600087936135ce82968994604051998a988997889663c39aca3760e01b8852600488016133a1565b03926216e360f1908161366b575b506135f357610573956135ed611d28565b95615710565b50505050505061362060006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091613650575b506133e8565b61366591503d806000833e61150f8183610966565b3861364a565b8061159c600061367a93610966565b386135dc565b8061159c600061368f93610966565b3861353f565b6136ae915060203d6020116115e5576115d78183610966565b386134e8565b50505050509150506136e5915060006020546040518094819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d5760009261377a575b50604051632b65311f60e11b81526001600160a01b03909116600482015260008180602481015b038160008051602061924f8339815191525afa801561151d57610573926114ea9260009261375d575b506132ef565b6137739192503d806000833e61150f8183610966565b9038613757565b61372e9192506137956000913d8084833e61150f8183610966565b929150613707565b6040519060e082018281106001600160401b0382111761092a57604052606060c083600081526000602082015260006040820152600083820152826080820152600060a08201520152565b90610573602d602960405180956802db1b430b4b724b2160bd1b602083015261381a8151809260208686019101610399565b81017f5d205b494e464f5d2045564d20657865637574696f6e20636f6d706c65746564838201526c207375636365737366756c6c7960981b60498201520301600d810185520183610966565b60206105739193929360296040519586926802db1b430b4b724b2160bd1b8585015261389a81518092878688019101610399565b83017f5d205b4552524f525d2045564d20657865637574696f6e206661696c65643a2083820152611dd88251809387604985019101610399565b939194959290600460206138e661379d565b60405163085e1f4d60e41b815290989092839182906001600160a01b03165afa90811561151d576139319161143d91600091613d1c575b508089526000526021602052604060002090565b6001600160a01b039081166020880181815292919061394f90611338565b1615613ced5761203161396191611bda565b6001600160a01b031660408701908152602088019161397f836126e9565b613be3575b6004949596979860206139a0611338845160018060a01b031690565b604051635b11259160e01b815297889182905afa95861561151d57600096613bc2575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039690961660048701526000866024818360008051602061924f8339815191525af191821561151d57613a37611338613a3f926000998a96613bb45750516001600160a01b031690565b9135946126e9565b8214613baa57613a6582935b612cb4613a56610987565b6001600160a01b039096168652565b92613a86604051988997889687946338e2252760e01b8652600486016129c2565b0393f19081613b91575b50613b3157613ad292613aa1611d28565b90600060a08201528160c0820152600081516040518097819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d576114ea613b1193613b089261057398600091613b16575b50613866565b51913690611df3565b6146df565b613b2b91503d806000833e61150f8183610966565b38613b02565b505060008161249660a0613b46940160019052565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091613b76575b506137e8565b613b8b91503d806000833e61150f8183610966565b38613b70565b613ba5903d806000833e612df88183610966565b613a90565b613a658993613a4b565b8061159c8861221893610966565b613bdc91965060203d6020116115e5576115d78183610966565b94386139c3565b613bf0612e418686612866565b98613c0b612e6a8b612e656105a9875160018060a01b031690565b613c16579850613984565b50505050505090916000613c5b94613c316060840160019052565b604051631623433d60e31b81526001600160e01b0319909116600482015294859081906024820190565b038160008051602061924f8339815191525afa93841561151d57613cb594613c8a91600091612f6e57506128aa565b9060808101918252600081516040518097819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d576114ea613b1193613b089261057398600092612f5157505190612925565b5050935160405163348051d760e11b81526004810191909152945060009350849250829150506024810161260c565b613d35915060203d60201161267f576126718183610966565b3861391d565b60085460ff168015613d4a5790565b50604051630667f9d760e41b815260008051602061924f833981519152600482018190526519985a5b195960d21b6024830152602090829060449082905afa90811561151d57600091613d9e575b50151590565b613db7915060203d60201161267f576126718183610966565b38613d98565b906105736031602960405180956802db1b430b4b724b2160bd1b6020830152613def8151809260208686019101610399565b81017f5d205b494e464f5d205a657461436861696e206465706f73697420636f6d706c838201527065746564207375636365737366756c6c7960781b604982015203016011810185520183610966565b939194929094613e6061143d8461238c886000526023602052604060002090565b906001600160a01b0382161561404257601f54600490602090613e8e9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091614023575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d5761400e575b50601f54613f219060081c6001600160a01b0316611338565b803b1561025657604051633d14d1b760e21b81526001600160a01b038481166004830152602482018690529290921660448301526000908290606490829084905af19081613ff9575b50613f815761057395613f7b611d28565b95615db5565b505050505050613fae60006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091613fde575b50613dbd565b613ff391503d806000833e61150f8183610966565b38613fd8565b8061159c600061400893610966565b38613f6a565b8061159c600061401d93610966565b38613f08565b61403c915060203d6020116115e5576115d78183610966565b38613eb1565b505060205460405163348051d760e11b8152600481019190915294509092506000915083905080602481016136e5565b909261408d6102d2969495939560a0845260a084019061336e565b6001600160a01b03958616602084015260006040840152941660608201528084036080909101526126f3565b906105736033602960405180956802db1b430b4b724b2160bd1b60208301526140eb8151809260208686019101610399565b81017f5d205b494e464f5d205a657461436861696e20657865637574696f6e20636f6d8382015272706c65746564207375636365737366756c6c7960681b604982015203016013810185520183610966565b60266105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526141738151809260208688019101610399565b83017f5d205b4552524f525d205a657461436861696e20657865637574696f6e2066618382015265034b632b21d160d51b6049820152611dd8825180936020604f85019101610399565b356102d281610555565b6141f46142026105739260405192839163104c13eb60e21b602084015260206024840181815201906103bc565b03601f198101835282610966565b617fe7565b90610573601e602960405180956802db1b430b4b724b2160bd1b60208301526142398151809260208686019101610399565b81017f5d205b494e464f5d2063616c6c4f6e5265766572742069732066616c73650000838201520301600119810185520183610966565b90610573601f602960405180956802db1b430b4b724b2160bd1b60208301526142a28151809260208686019101610399565b81017f5d205b4552524f525d2072657665727441646472657373206973207a65726f00838201520301600019810185520183610966565b90608060606102d29360018060a01b03815116845260018060a01b0360208201511660208501526040810151604085015201519181606082015201906103bc565b9060206102d29281815201906142d9565b600b90602d61057393959460296040519788946802db1b430b4b724b2160bd1b6020870152614363815180926020868a019101610399565b85017f5d205b494e464f5d20457865637574696e67206f6e526576657274206f6e2072838201526c032bb32b93a20b2323932b9b99609d1b60498201526143b4825180936020605685019101610399565b01016a0161031b7b73a32bc3a1d160ad1b83820152611dd8825180936020603885019101610399565b6001600160a01b039182168152602081019290925290911660408201526080606082018190526102d2929101906142d9565b6001600160a01b0390911681526040602082018190526102d2929101906142d9565b602081830312610256578051906001600160401b03821161025657019080601f830112156102565781519161446583611712565b926144736040519485610966565b80845260208085019160051b830101918383116102565760208101915b83831061449f57505050505090565b82516001600160401b038111610256578201906060828703601f19011261025657604051906144cd8261094b565b60208301516001600160401b0381116102565760209084010187601f82011215610256578051906144fd82611712565b9161450b6040519384610966565b80835260208084019160051b830101918a831161025657602001905b8282106145795750505082526040830151916001600160401b0383116102565761456960608561455f8b602080999881990101612983565b8685015201611c1b565b6040820152815201920191614490565b8151815260209182019101614527565b634e487b7160e01b600052603260045260246000fd5b8051156145ac5760200190565b614589565b8051600110156145ac5760400190565b8051600210156145ac5760600190565b80518210156145ac5760209160051b010190565b90610573601d602960405180956802db1b430b4b724b2160bd1b60208301526146178151809260208686019101610399565b81017f5d205b494e464f5d204576656e742066726f6d206f6e5265766572743a000000838201520301600219810185520183610966565b6040519061465d604083610966565b600a825269101032b6b4ba3a32b91d60b11b6020830152565b60405190614685604083610966565b600782526610103230ba309d60c91b6020830152565b604051906146aa604083610966565b60078252662020746f70696360c81b6020830152565b604051906146cf604083610966565b60018252601d60f91b6020830152565b9190606083019081516146f06109a5565b6001600160a01b03851681529060006020830152600060408301526060820152602085015115614d705760008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57614d5b575b5084516001600160a01b031615614cda5760405163348051d760e11b81526004810183905260008160248160008051602061924f8339815191525afa90811561151d57600091614cbf575b5085516147e7906000906001600160a01b03165b604051632b65311f60e11b81526001600160a01b03909116600482015291829081906024820190565b038160008051602061924f8339815191525afa801561151d5761483d91600091614ca4575b506000604051614823816141f4886020830161431a565b604051809481926371aad10d60e01b835260048301610575565b038160008051602061924f8339815191525afa90811561151d5761486d936114ea93600093614c87575b5061432b565b601f5460049060209061488b9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091614c68575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57614c53575b50601f5461491e9060081c6001600160a01b0316611338565b85519091906001600160a01b031690823b1561025657614958926000928360405180968195829463184b079360e01b84526004840161440f565b03926216e360f19081614c3e575b5061498c57600080614984604061057397015160018060a01b031690565b935193616ba4565b9150506040519163064554e960e21b83526000836004818360008051602061924f8339815191525af192831561151d57600093614c1b575b5060005b8351811015614c15576149ef60406149e083876145d1565b5101516001600160a01b031690565b6040830151614a06906001600160a01b0316611338565b6001600160a01b0390911614614a1f575b6001016149c8565b60405163348051d760e11b815260048101849052909491929060008160248160008051602061924f8339815191525afa90811561151d57614a6c916114ea91600091614bfc575b506145e5565b614a8060006147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d57614ab391600091614be3575b50614aae61464e565b618002565b614ae160006020614ac488886145d1565b510151604051809381926371aad10d60e01b835260048301610575565b038160008051602061924f8339815191525afa801561151d57614b0f91600091614bca575b50614aae614676565b60005b614b1c86866145d1565b515151811015614bc157806000614b41614b6193614b3a8a8a6145d1565b51516145d1565b5160405180948192631623433d60e31b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d57600192614ba291600091614ba8575b50614b9361469b565b83614b9c6146c0565b91618046565b01614b12565b614bbb913d8091833e61150f8183610966565b38614b8a565b50919093614a17565b614bdd913d8091833e61150f8183610966565b38614b06565b614bf6913d8091833e61150f8183610966565b38614aa5565b614c0f913d8091833e61150f8183610966565b38614a66565b50505050565b614c3791933d8091833e614c2f8183610966565b810190614431565b91386149c4565b8061159c6000614c4d93610966565b38614966565b8061159c6000614c6293610966565b38614905565b614c81915060203d6020116115e5576115d78183610966565b386148ae565b614c9d9193503d806000833e61150f8183610966565b9138614867565b614cb991503d806000833e61150f8183610966565b3861480c565b614cd491503d806000833e61150f8183610966565b386147aa565b5060205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa94851561151d57614984604060009392614d336114ea6105739a87968791614d41575b50614270565b01516001600160a01b031690565b614d5591503d8089833e61150f8183610966565b38614d2d565b8061159c6000614d6a93610966565b3861475f565b5060405163348051d760e11b81526004810182905260008160248160008051602061924f8339815191525afa94851561151d57614984604060009392614d336114ea6105739a87968791614dc5575b50614207565b614dd991503d8089833e61150f8183610966565b38614dbf565b93929060608501928351614df16109a5565b6001600160a01b0387168152906001600160a01b03841660208301528260408301526060820152614e256020880151151590565b156153bd5760008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d576153a8575b5086516001600160a01b03161561533e5760405163348051d760e11b81526004810185905260008160248160008051602061924f8339815191525afa90811561151d57600091615323575b508751614ed2906000906001600160a01b03166147be565b038160008051602061924f8339815191525afa801561151d57614f0d91600091614ca457506000604051614823816141f4886020830161431a565b038160008051602061924f8339815191525afa90811561151d57614f3c936114ea93600093614c87575061432b565b601f54600490602090614f5a9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091615304575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d576152ef575b506001600160a01b03831661524f57601f54614ffb9060081c6001600160a01b0316611338565b87519091906001600160a01b031690823b1561025657615035926000928360405180968195829463184b079360e01b84526004840161440f565b03926216e360f1908161523a575b50615062576040959095015161057395906001600160a01b0316614984565b50509150505b60405163064554e960e21b8152916000836004818360008051602061924f8339815191525af192831561151d5760009361521f575b5060005b8351811015614c15576150b960406149e083876145d1565b60408301516150d0906001600160a01b0316611338565b6001600160a01b03909116146150e9575b6001016150a1565b60405163348051d760e11b815260048101849052909491929060008160248160008051602061924f8339815191525afa90811561151d57615135916114ea91600091614bfc57506145e5565b61514960006147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d5761517691600091614be35750614aae61464e565b61518760006020614ac488886145d1565b038160008051602061924f8339815191525afa801561151d576151b491600091614bca5750614aae614676565b60005b6151c186866145d1565b51515181101561521657806000614b416151df93614b3a8a8a6145d1565b038160008051602061924f8339815191525afa91821561151d5760019261521091600091614ba85750614b9361469b565b016151b7565b509190936150e1565b61523391933d8091833e614c2f8183610966565b913861509d565b8061159c600061524993610966565b38615043565b601f546152679060081c6001600160a01b0316611338565b87519091906001600160a01b031690823b15610256576152a39260009283604051809681958294639d4ba46560e01b84528a8c600486016143dd565b03926216e360f190816152da575b506152d0576040959095015161057395906001600160a01b0316614984565b5050915050615068565b8061159c60006152e993610966565b386152b1565b8061159c60006152fe93610966565b38614fd4565b61531d915060203d6020116115e5576115d78183610966565b38614f7d565b61533891503d806000833e61150f8183610966565b38614eba565b5060205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d5761057397614d336114ea614984946040946000916153935750614270565b614d5591503d806000833e61150f8183610966565b8061159c60006153b793610966565b38614e6f565b5060405163348051d760e11b81526004810184905260008160248160008051602061924f8339815191525afa90811561151d5761057397614d336114ea6149849460409460009161540e5750614207565b614dd991503d806000833e61150f8183610966565b634e487b7160e01b600052601160045260246000fd5b906104b0820180921161544857565b615423565b919060005b600481018082116154485784511061549757602081850101516001600160e01b031983811691161461548f57600019811461544857600101615452565b506001925050565b506000925050565b604051906154ac8261092f565b600060e083606081528260208201528260408201528260608201528260808201528260a08201528260c08201520152565b604051906154ec604083610966565b600782526619195c1bdcda5d60ca1b6020830152565b60405190615511604083610966565b601082526f19195c1bdcda5d08185b990818d85b1b60821b6020830152565b600990601461057393959460296040519788946802db1b430b4b724b2160bd1b6020870152615568815180926020868a019101610399565b85017302e902da2a92927a92e902d32ba30a1b430b4b7160651b8382015261559a825180936020603d85019101610399565b0101680103330b4b632b21d160bd1b83820152611dd8825180936020601d85019101610399565b919082604091031261025657602082516155da81610555565b92015190565b9081602091031261025657516102d281611de9565b90610573603a602960405180956802db1b430b4b724b2160bd1b60208301526156278151809260208686019101610399565b81017f5d205b4552524f525d204661696c656420746f206d696e74205a524332302074838201527f6f6b656e7320666f722070726f746f636f6c206164647265737300000000000060498201520301601a810185520183610966565b9190820391821161544857565b90610573602f602960405180956802db1b430b4b724b2160bd1b60208301526156c28151809260208686019101610399565b81017f5d205b4552524f525d204661696c656420746f206275726e2072656d61696e69838201526e6e67205a5243323020746f6b656e7360881b60498201520301600f810185520183610966565b9094939195615751939661572261549f565b9161572b615502565b835260006020546040518098819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa95861561151d576114ea826157b99861578893600091615d9a575b50865190615530565b6040805163fc5fecd560e01b815260808901356004820152966001600160a01b038416939190889081906024820190565b0381865afa801561151d57600097600091615d65575b50604085019081526001600160a01b039097166020850190815296601f546004906020906158089060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091615d46575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03821660048201526000816024818360008051602061924f8339815191525af1801561151d57615d31575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018d905260208160448160008a5af190811561151d57600091615d12575b5015156060870190815260008051602061924f8339815191523b15610256576040516303223eab60e11b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af190811561151d5761592e92612e6a92615cfd575b5051151590565b615c805780519060a0860191825260c086019861594b8a60019052565b805161595f906001600160a01b0316611338565b8603615bf8575b505060008051602061924f8339815191523b15610256576040516390c5013b60e01b8152906000826004818360008051602061924f8339815191525af191821561151d576159bb92615be3575b50518b615683565b608085018181529a9015615bc4575050601f54600491506020906159ea9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091615ba5575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57600092602092615a9292615b91575b508a51604051948580948193630852cd8d60e31b8352600483019190602083019252565b03925af1801561151d57615abd92612e6a92600092615b59575b5060e0612049910191829015159052565b615ae157615adb615ad361057397519451151590565b943690611df3565b90618832565b505050505050615b0e60006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091615b3e575b50615690565b615b5391503d806000833e61150f8183610966565b38615b38565b612049919250615b8260e09160203d602011615b8a575b615b7a8183610966565b8101906155e0565b929150615aac565b503d615b70565b8061159c86615b9f93610966565b38615a6e565b615bbe915060203d6020116115e5576115d78183610966565b38615a0d565b9496509450956105739850615bde925060409150016141bd565b61788e565b8061159c6000615bf293610966565b386159b3565b60008a52516001600160a01b03169051601f54600490602090615c269060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa91821561151d57615c56938f92600094615c5f575b5086618362565b81523880615966565b615c7991945060203d6020116115e5576115d78183610966565b9238615c4f565b5050505050505050505050615cb260006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091615ce2575b506155f5565b615cf791503d806000833e61150f8183610966565b38615cdc565b8061159c6000615d0c93610966565b38615927565b615d2b915060203d602011615b8a57615b7a8183610966565b386158be565b8061159c6000615d4093610966565b38615880565b615d5f915060203d6020116115e5576115d78183610966565b3861582b565b9050615d8a91975060403d604011615d93575b615d828183610966565b8101906155c1565b969096386157cf565b503d615d78565b615daf91503d806000833e61150f8183610966565b3861577f565b90949391956157519396615dc761549f565b9161572b6154dd565b90610573601e602960405180956802db1b430b4b724b2160bd1b6020830152615e028151809260208686019101610399565b81017f5d205b4552524f525d2061626f727441646472657373206973207a65726f0000838201520301600119810185520183610966565b6007600461057392949394602f6040519687926e021b0b713ba103a3930b739b332b91608d1b6020850152615e778151809260208688019101610399565b83016301037b3160e51b83820152615e99825180936020603385019101610399565b01016620746f6b656e7360c81b838201520301601819810185520183610966565b600460129295946017610573956029604051998a966802db1b430b4b724b2160bd1b6020890152615ef4815180926020868c019101610399565b87017f5d205b4552524f525d205472616e7366657272696e672000000000000000000083820152615f2f825180936020604085019101610399565b01016301037b3160e51b83820152615f51825180936020601b85019101610399565b0101710103a37b5b2b739903a379039b2b73232b9160751b83820152611dd8825180936020601685019101610399565b602d6105739193929360296040519586926802db1b430b4b724b2160bd1b6020850152615fb78151809260208688019101610399565b83017f5d205b494e464f5d205472616e7366657272696e6720746f6b656e7320746f20838201526c030b137b93a20b2323932b9b99609d1b6049820152611dd8825180936020605685019101610399565b6102d29160a0616021835160c0845260c08401906103bc565b92600180831b036020820151166020840152604081015160408401526060810151151560608401526080810151608084015201519060a08184039101526103bc565b9060206102d2928181520190616008565b601d90601261057393959460296040519788946802db1b430b4b724b2160bd1b60208701526160ac815180926020868a019101610399565b85017102e902da4a72327ae9021b7b73a3930b1ba160751b838201526160dc825180936020603b85019101610399565b01017f20657865637574696e67206f6e41626f72742c20636f6e746578743a2000000083820152611dd8825180936020602f85019101610399565b6001600160a01b0390911681526040602082018190526102d292910190616008565b90610573601c602960405180956802db1b430b4b724b2160bd1b602083015261616b8151809260208686019101610399565b81017f5d205b494e464f5d204576656e742066726f6d206f6e41626f72743a00000000838201520301600319810185520183610966565b601a6105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526161d88151809260208688019101610399565b83017f5d205b4552524f525d206f6e41626f7274206661696c65643a2000000000000083820152611dd8825180936020604385019101610399565b6001600160a01b0381169360009390928515616a625760205460405163348051d760e11b81526004810191909152858160248160008051602061924f8339815191525afa90811561151d578691616a48575b50604051632b65311f60e11b81526001600160a01b038516600482015290868260248160008051602061924f8339815191525afa91821561151d5787926162b7926114ea928592616a2c575b50615f81565b616836575b604080516001600160a01b0390951660208601526162dd90859081016113f8565b6162e56109b4565b9384526001600160a01b0385166020850152604084018590528415156060850152608084015260a083015260205460405163348051d760e11b8152600481019190915283818060248101038160008051602061924f8339815191525afa90811561151d57849161681c575b50604051632b65311f60e11b81526001600160a01b0383166004820152848160248160008051602061924f8339815191525afa801561151d576163aa918691616802575b5085604051614823816141f48960208301616063565b038160008051602061924f8339815191525afa90811561151d576163d9936114ea9388936167e6575b50616074565b601f546004906020906163f79060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d5784916167c7575b5060008051602061924f8339815191523b156167975760405163ca669fa760e01b81526001600160a01b0391909116600482015283816024818360008051602061924f8339815191525af1801561151d576167b3575b5060008051602061924f8339815191523b156167af576040516320d797a960e11b815283816004818360008051602061924f8339815191525af1801561151d5761679b575b50601f546164cd9060081c6001600160a01b0316611338565b90813b15616797579183916164f99383604051809681958294632095dedb60e01b845260048401616117565b03925af19081616783575b50616583576165399150616516611d28565b816020546040518095819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d5761057393836114ea9492616568575b50506161a2565b61657c92503d8091833e61150f8183610966565b3880616561565b60405163064554e960e21b81529181836004818360008051602061924f8339815191525af192831561151d578293616767575b50815b8351811015614c1557816165d561133860406149e085896145d1565b146165e3575b6001016165b9565b60205460405163348051d760e11b81526004810191909152909490838160248160008051602061924f8339815191525afa90811561151d57616630916114ea91869161674d575b50616139565b616643836147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d5761666f9185916167395750614aae61464e565b61667f836020614ac488886145d1565b038160008051602061924f8339815191525afa801561151d576166ab9185916167255750614aae614676565b825b6166b786866145d1565b51515181101561671e578084614b416166d493614b3a8a8a6145d1565b038160008051602061924f8339815191525afa91821561151d5760019261670491879161670a5750614b9361469b565b016166ad565b614bbb91503d8089833e61150f8183610966565b50936165db565b614bdd91503d8087833e61150f8183610966565b614bf691503d8087833e61150f8183610966565b61676191503d8088833e61150f8183610966565b3861662a565b61677c9193503d8084833e614c2f8183610966565b91386165b6565b8061159c8461679193610966565b38616504565b8380fd5b8061159c856167a993610966565b386164b4565b8280fd5b8061159c856167c193610966565b3861646f565b6167e0915060203d6020116115e5576115d78183610966565b38616419565b6167fb9193503d808a833e61150f8183610966565b91386163d3565b61681691503d8088833e61150f8183610966565b38616394565b61683091503d8086833e61150f8183610966565b38616350565b601f546004906020906168549060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d578691616a0d575b5060008051602061924f8339815191523b156169d85760405163ca669fa760e01b81526001600160a01b038216600482015286816024818360008051602061924f8339815191525af1801561151d576169f9575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018790526020816044818a805af1801561151d576169dc575b5060008051602061924f8339815191523b156169d85760405163ca669fa760e01b81526001600160a01b0391909116600482015285816024818360008051602061924f8339815191525af1801561151d576169c4575b5060405163a9059cbb60e01b81526001600160a01b0384166004820152602481018690529360208560448189805af190811561151d576113f8956162dd926169a5575b509450506162bc565b6169bd9060203d602011615b8a57615b7a8183610966565b503861699c565b8061159c876169d293610966565b38616959565b8580fd5b6169f49060203d602011615b8a57615b7a8183610966565b616903565b8061159c88616a0793610966565b386168ca565b616a26915060203d6020116115e5576115d78183610966565b38616876565b616a419192503d8087833e61150f8183610966565b90386162b1565b616a5c91503d8088833e61150f8183610966565b38616265565b60205460405163348051d760e11b815260048101919091528590818160248160008051602061924f8339815191525afa90811561151d57616aae916114ea918491616b8a575b50615dd0565b5060405163348051d760e11b81526000600482018190528160248160008051602061924f8339815191525afa90811561151d57600091616b6f575b50604051632b65311f60e11b81526000600482018190528180602481015b038160008051602061924f8339815191525afa801561151d57616b4e92616b3692600092616b52575b50615e39565b60405162461bcd60e51b815291829160048301610575565b0390fd5b616b689192503d806000833e61150f8183610966565b9084616b30565b616b8491503d806000833e61150f8183610966565b81616ae9565b616b9e91503d8086833e61150f8183610966565b84616aa8565b6001600160a01b03811695949093909290919086156173e95760205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d576000916173ce575b50604051632b65311f60e11b81526001600160a01b038716600482015260008160248160008051602061924f8339815191525afa801561151d57616c4a926114ea926000926173b85750615f81565b6001600160a01b038116801515806173af575b6171ab575b50604080516001600160a01b039097166020880152616cae9190616c9390889081015b03601f198101895288610966565b616c9b6109b4565b9687526001600160a01b03166020870152565b604085015260016060850152608084015260a083015260205460405163348051d760e11b815260048101919091526000818060248101038160008051602061924f8339815191525afa90811561151d57600091617190575b50604051632b65311f60e11b81526001600160a01b038316600482015260008160248160008051602061924f8339815191525afa801561151d57616d6391600091617175575b506000604051614823816141f48960208301616063565b038160008051602061924f8339815191525afa90811561151d57616d92936114ea9360009361715f5750616074565b601f54600490602090616db09060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617140575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d5761712b575b5060008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57617116575b50601f54616e899060081c6001600160a01b0316611338565b91823b1561025657616eb59260009283604051809681958294632095dedb60e01b845260048401616117565b03925af19081617101575b50616f355750616ece611d28565b60205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa91821561151d57610573926114ea92600091616f1a575b506161a2565b616f2f91503d806000833e61150f8183610966565b38616f14565b60405163064554e960e21b8152906000826004818360008051602061924f8339815191525af191821561151d576000926170e6575b5060005b82518110156170e15781616f8a61133860406149e085886145d1565b14616f98575b600101616f6e565b60205460405163348051d760e11b8152600481019190915290939060008160248160008051602061924f8339815191525afa90811561151d57616fe6916114ea916000916170ce5750616139565b616ffa60006147be60406149e088886145d1565b038160008051602061924f8339815191525afa801561151d5761702791600091614be35750614aae61464e565b61703860006020614ac487876145d1565b038160008051602061924f8339815191525afa801561151d5761706591600091614bca5750614aae614676565b60005b61707285856145d1565b5151518110156170c757806000614b4161709093614b3a89896145d1565b038160008051602061924f8339815191525afa91821561151d576001926170c191600091614ba85750614b9361469b565b01617068565b5092616f90565b616761913d8091833e61150f8183610966565b505050565b6170fa91923d8091833e614c2f8183610966565b9038616f6a565b8061159c600061711093610966565b38616ec0565b8061159c600061712593610966565b38616e70565b8061159c600061713a93610966565b38616e2a565b617159915060203d6020116115e5576115d78183610966565b38616dd3565b6167fb9193503d806000833e61150f8183610966565b61718a91503d806000833e61150f8183610966565b38616d4c565b6171a591503d806000833e61150f8183610966565b38616d06565b601f549091906004906020906171cc9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617390575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03821660048201526000816024818360008051602061924f8339815191525af1801561151d5761737b575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018590526020816044816000885af1801561151d5761735e575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57617349575b5060405163a9059cbb60e01b81526001600160a01b03871660048201526024810184905291602090839060449082906000905af1801561151d57616c8597616cae93616c939261732a575b5097505090616c62565b6173429060203d602011615b8a57615b7a8183610966565b5038617320565b8061159c600061735893610966565b386172d5565b6173769060203d602011615b8a57615b7a8183610966565b61727e565b8061159c600061738a93610966565b38617244565b6173a9915060203d6020116115e5576115d78183610966565b386171ef565b50821515616c5d565b616a419192503d806000833e61150f8183610966565b6173e391503d806000833e61150f8183610966565b38616bfb565b95509250505060205460405163348051d760e11b81526000818061741585600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57617444916114ea916000916178735750615dd0565b6001600160a01b038416908115158061786a575b156177e15760405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d576000916177c6575b5060405163348051d760e11b8152600481018490529460008660248160008051602061924f8339815191525afa95861561151d576000966177a3575b50604051632b65311f60e11b81526001600160a01b03909116600482015260008180602481015b038160008051602061924f8339815191525afa90811561151d57600091617788575b50604051632b65311f60e11b81526001600160a01b03861660048201529060008260248160008051602061924f8339815191525afa90811561151d57600497617572946114ea9460009461776b575b50615eba565b601f5460209061758d9060081c6001600160a01b0316611338565b6040516313917f7760e11b815295869182905afa93841561151d5760009461774a575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03851660048201526000816024818360008051602061924f8339815191525af1801561151d57617735575b506040516311f9fbc960e21b81526001600160a01b0385166004820152602481018390526020816044816000865af1801561151d57617718575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039490941660048501526000846024818360008051602061924f8339815191525af192831561151d576176d794602094617703575b5060405163a9059cbb60e01b81526001600160a01b03909116600482015260248101929092529092839190829060009082906044820190565b03925af1801561151d576176e85750565b6177009060203d602011615b8a57615b7a8183610966565b50565b8061159c600061771293610966565b3861769e565b6177309060203d602011615b8a57615b7a8183610966565b61763f565b8061159c600061774493610966565b38617605565b61776491945060203d6020116115e5576115d78183610966565b92386175b0565b6177819194503d806000833e61150f8183610966565b923861756c565b61779d91503d806000833e61150f8183610966565b3861751d565b6174fb9196506177be6000913d8084833e61150f8183610966565b9691506174d4565b6177db91503d806000833e61150f8183610966565b38617498565b60405163348051d760e11b8152600481018490528560008260248160008051602061924f8339815191525afa91821561151d57600092617847575b50604051632b65311f60e11b81526001600160a01b0390911660048201526000818060248101616b07565b616b079192506178626000913d8084833e61150f8183610966565b92915061781c565b50821515617458565b61788891503d806000833e61150f8183610966565b38616aa8565b6001600160a01b03811695949093909290919086156173e95760205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d57600091617fcc575b50604051632b65311f60e11b81526001600160a01b038716600482015260008160248160008051602061924f8339815191525afa801561151d57617934926114ea926000926173b85750615f81565b6001600160a01b03811680151580617fc3575b617dbf575b50604080516001600160a01b0390971660208801526179739190616c939088908101616c85565b604085015260006060850152608084015260a083015260205460405163348051d760e11b815260048101919091526000818060248101038160008051602061924f8339815191525afa90811561151d57600091617da4575b50604051632b65311f60e11b81526001600160a01b038316600482015260008160248160008051602061924f8339815191525afa801561151d57617a279160009161717557506000604051614823816141f48960208301616063565b038160008051602061924f8339815191525afa90811561151d57617a56936114ea9360009361715f5750616074565b601f54600490602090617a749060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617d85575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57617d70575b5060008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57617d5b575b50601f54617b4d9060081c6001600160a01b0316611338565b91823b1561025657617b799260009283604051809681958294632095dedb60e01b845260048401616117565b03925af19081617d46575b50617b925750616ece611d28565b60405163064554e960e21b8152906000826004818360008051602061924f8339815191525af191821561151d57600092617d2b575b5060005b82518110156170e15781617be761133860406149e085886145d1565b14617bf5575b600101617bcb565b60205460405163348051d760e11b8152600481019190915290939060008160248160008051602061924f8339815191525afa90811561151d57617c43916114ea916000916170ce5750616139565b617c5760006147be60406149e088886145d1565b038160008051602061924f8339815191525afa801561151d57617c8491600091614be35750614aae61464e565b617c9560006020614ac487876145d1565b038160008051602061924f8339815191525afa801561151d57617cc291600091614bca5750614aae614676565b60005b617ccf85856145d1565b515151811015617d2457806000614b41617ced93614b3a89896145d1565b038160008051602061924f8339815191525afa91821561151d57600192617d1e91600091614ba85750614b9361469b565b01617cc5565b5092617bed565b617d3f91923d8091833e614c2f8183610966565b9038617bc7565b8061159c6000617d5593610966565b38617b84565b8061159c6000617d6a93610966565b38617b34565b8061159c6000617d7f93610966565b38617aee565b617d9e915060203d6020116115e5576115d78183610966565b38617a97565b617db991503d806000833e61150f8183610966565b386179cb565b601f54909190600490602090617de09060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617fa4575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03821660048201526000816024818360008051602061924f8339815191525af1801561151d57617f8f575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018590526020816044816000885af1801561151d57617f72575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57617f5d575b5060405163a9059cbb60e01b81526001600160a01b03871660048201526024810184905291602090839060449082906000905af1801561151d57616c859761797393616c9392617f3e575b509750509061794c565b617f569060203d602011615b8a57615b7a8183610966565b5038617f34565b8061159c6000617f6c93610966565b38617ee9565b617f8a9060203d602011615b8a57615b7a8183610966565b617e92565b8061159c6000617f9e93610966565b38617e58565b617fbd915060203d6020116115e5576115d78183610966565b38617e03565b50821515617947565b617fe191503d806000833e61150f8183610966565b386178e5565b600080916020815191016a636f6e736f6c652e6c6f675afa50565b614202618034916141f461057394604051948593634b5c427760e01b60208601526040602486015260648501906103bc565b838103602319016044850152906103bc565b6141f4610573946180936142029461807c96604051978896635ab84e1f60e01b60208901526080602489015260a48801906103bc565b9160448701526023198683030160648701526103bc565b838103602319016084850152906103bc565b156180ac57565b60405162461bcd60e51b8152602060048201526016602482015275155b9a5cddd85c081c9bdd5d195c881b9bdd081cd95d60521b6044820152606490fd5b156180f157565b60405162461bcd60e51b815260206004820152600d60248201526c15d6915510481b9bdd081cd95d609a1b6044820152606490fd5b604051608091906181378382610966565b6003815291601f1901366020840137565b604051606091906181598382610966565b6002815291601f1901366020840137565b602081830312610256578051906001600160401b03821161025657019080601f8301121561025657815161819d81611712565b926181ab6040519485610966565b81845260208085019260051b82010192831161025657602001905b8282106181d35750505090565b81518152602091820191016181c6565b919260809361820892979695978452602084015260a0604084015260a0830190610284565b6001600160a01b0390951660608201520152565b6040519061822b604083610966565b600282526134b760f11b6020830152565b6001600791601a61057394969560296040519889946802db1b430b4b724b2160bd1b6020870152618276815180926020868a019101610399565b85017f5d205b494e464f5d2053776170207375636365737366756c3a20000000000000838201526182b1825180936020604385019101610399565b0101600160fd1b838201526182d0825180936020601b85019101610399565b010166081b995959195960ca1b838201520301601819810185520183610966565b601f6105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526183278151809260208688019101610399565b83017f5d205b4552524f525d20556e69737761702073776170206661696c65643a200083820152611dd8825180936020604885019101610399565b60255493946001600160a01b0390941693909291906183828515156180a5565b6026546183a29061839b906001600160a01b0316611338565b15156180ea565b60405163095ea7b360e01b81526001600160a01b039586166004820152602481018790529484169460208160448160008a5af1801561151d5761869b575b5060006183eb618126565b91618408866183f98561459f565b6001600160a01b039091169052565b602654618422906001600160a01b03165b6183f9856145b1565b61842f846183f9856145c1565b61843842615439565b60255490939061845290611338906001600160a01b031681565b90838a61847660405197889687958694634401edf760e11b86528d600487016181e3565b03925af1908161867a575b506184f95750505050618492611d28565b60205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa91821561151d576102d2926114ea926000916184de575b506182f1565b6184f391503d806000833e61150f8183610966565b386184d8565b60265461851991906001600160a01b0316809361851461821c565b61916f565b918251156186735761852d6185369361459f565b5161851461821c565b9081511561866e5760205460405163348051d760e11b81526004810191909152925060008360248160008051602061924f8339815191525afa90811561151d576185ae93600092618651575b50600061858e8461459f565b516040518096819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa93841561151d5760009461862f575b506000600491604051928380926306fdde0360e01b82525afa801561151d5761860e94618609936114ea93600093618612575b5061823c565b61459f565b5190565b6186289193503d806000833e61150f8183610966565b9138618603565b60049194506186496000913d8084833e61150f8183610966565b9491506185d0565b6186679192503d806000833e61150f8183610966565b9038618582565b505090565b5050505090565b618696903d806000833e61868e8183610966565b81019061816a565b618481565b6186b39060203d602011615b8a57615b7a8183610966565b6183e0565b604051906186c7604083610966565b600382526267617360e81b6020830152565b60046012929594602e610573956029604051998a966802db1b430b4b724b2160bd1b6020890152618713815180926020868c019101610399565b87017f5d205b4552524f525d2072657665727441646472657373206973207a65726f2c838201526d0103a3930b739b332b93934b733960951b6049820152618765825180936020605785019101610399565b01016301037b3160e51b83820152615f51825180936020603285019101610399565b1561878e57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b6001600160a01b03918216815291166020820152604081019190915260a06060820181905260009082015260c0608082018190526102d2929101906142d9565b6080906102d2939260018060a01b03168152606060208201526000606082015281604082015201906142d9565b93949190946060860151926188456109a5565b6001600160a01b0382168152936001600160a01b038416602086015285604086015260608501526188796020880151151590565b15618e15575060008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57618e00575b5060405163348051d760e11b81526004810186905260008160248160008051602061924f8339815191525afa90811561151d57600091618de5575b508651618917906000906001600160a01b03166147be565b038160008051602061924f8339815191525afa801561151d5761895391600091618dca575b506000604051614823816141f48a6020830161431a565b038160008051602061924f8339815191525afa90811561151d57618982936114ea93600093614c87575061432b565b600460206189a061133861143d896000526021602052604060002090565b604051635b11259160e01b815292839182905afa90811561151d57600091618dab575b5060008051602061924f8339815191523b15610256576040516303223eab60e11b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57618d96575b5015618cc85750618a3b61133861143d856000526021602052604060002090565b608085015185519192916001600160a01b0316833b156102565760405163cb7ba8e560e01b815294600094869485938491618a799160048401618805565b0393f1801561151d57618cb3575b505b60008051602061924f8339815191523b15610256576040516390c5013b60e01b81526000816004818360008051602061924f8339815191525af1801561151d57618c9e575b5060405163064554e960e21b8152916000836004818360008051602061924f8339815191525af192831561151d57600093618c83575b5060005b8351811015614c1557618b2060406149e083876145d1565b8251618b34906001600160a01b0316611338565b6001600160a01b0390911614618b4d575b600101618b08565b60405163348051d760e11b815260048101849052909491929060008160248160008051602061924f8339815191525afa90811561151d57618b99916114ea91600091614bfc57506145e5565b618bad60006147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d57618bda91600091614be35750614aae61464e565b618beb60006020614ac488886145d1565b038160008051602061924f8339815191525afa801561151d57618c1891600091614bca5750614aae614676565b60005b618c2586866145d1565b515151811015618c7a57806000614b41618c4393614b3a8a8a6145d1565b038160008051602061924f8339815191525afa91821561151d57600192618c7491600091614ba85750614b9361469b565b01618c1b565b50919093618b45565b618c9791933d8091833e614c2f8183610966565b9138618b04565b8061159c6000618cad93610966565b38618ace565b8061159c6000618cc293610966565b38618a87565b909160046020618ce861133861143d886000526021602052604060002090565b60405163dda79b7560e01b815292839182905afa90811561151d57600091618d77575b50608086015186516001600160a01b0392831694919216843b15610256576000948591618d4e60405198899788968794634cd1e1ab60e11b8652600486016187c5565b0393f1801561151d57618d62575b50618a89565b8061159c6000618d7193610966565b38618d5c565b618d90915060203d6020116115e5576115d78183610966565b38618d0b565b8061159c6000618da593610966565b38618a1a565b618dc4915060203d6020116115e5576115d78183610966565b386189c3565b618ddf91503d806000833e61150f8183610966565b3861893c565b618dfa91503d806000833e61150f8183610966565b386188ff565b8061159c6000618e0f93610966565b386188c4565b60405163348051d760e11b81526004810187905294969095929491935060008260248160008051602061924f8339815191525afa801561151d576114ea612cb491618e679460009161540e5750614207565b936001600160a01b03851615618fa8575b506020618e9761133861143d6004946000526021602052604060002090565b604051635b11259160e01b815292839182905afa90811561151d57600091618f89575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57618f74575b5015618f325750600080806105739481945af1618f2c611d28565b50618787565b60405163a9059cbb60e01b81526001600160a01b039283166004820152602481019390935260209183916044918391600091165af1801561151d576176e85750565b8061159c6000618f8393610966565b38618f11565b618fa2915060203d6020116115e5576115d78183610966565b38618eba565b60405163348051d760e11b81526004810183905291945060008260248160008051602061924f8339815191525afa91821561151d5760009261913b575b5060405163348051d760e11b8152600481018790529060008260248160008051602061924f8339815191525afa91821561151d5760009261911e575b50600084156190bc57506190336186b8565b604051632b65311f60e11b81526001600160a01b03831660048201529260008460248160008051602061924f8339815191525afa92831561151d576190946114ea618e97956113389561143d9560049a60209a60009461909f575b506186d9565b979450505050618e78565b6190b59194503d806000833e61150f8183610966565b923861908e565b604051632b65311f60e11b81526001600160a01b0387166004820152818160248160008051602061924f8339815191525afa91821561151d578092619103575b5050619033565b61911792503d8091833e61150f8183610966565b38806190fc565b6191349192503d806000833e61150f8183610966565b9038619021565b6191519192503d806000833e61150f8183610966565b9038618fe5565b6040906102d2939281528160208201520190610284565b90919261918b90618419619181618148565b956183f98761459f565b6020815191012061919a61821c565b6020815191012014600014619211576025546191e69260009290916191c990611338906001600160a01b031681565b906040518095819482936307c0329d60e21b845260048401619158565b03915afa90811561151d576000916191fc575090565b6102d291503d806000833e61868e8183610966565b6025546191e692600092909161923190611338906001600160a01b031681565b9060405180958194829363d06ca61f60e01b84526004840161915856fe0000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da26469706673582212201fce51ed1ff9d0f5f4ea6ac5dba002558bc8864b5d87779ba4c2fa367c0a470364736f6c634300081a003360c034608d57601f61094c38819003918201601f19168301916001600160401b038311848410176092578084926040948552833981010312608d57604b602060458360a8565b920160a8565b9060805260a05260405161089090816100bc8239608051818181603d015261012d015260a0518181816084015281816106960152818161074e01526107db0152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203608d5756fe6080604052600436106101185760003560e01c8063ced52b40146100715763d9d2f07403610118573461006c57600036600319011261006c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b600080fd5b3461006c57600036600319011261006c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b600091031261006c57565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b038211176100f857604052565b6100c1565b6001600160401b0381116100f857601f01601f191660200190565b600080604051368282378036810183815203907f00000000000000000000000000000000000000000000000000000000000000005af43d156101d3573d9061015f826100fd565b9161016d60405193846100d7565b82523d6000602084013e5b1561018e576101863661065f565b602081519101f35b60405162461bcd60e51b815260206004820152601f60248201527f476174657761795a45564d2064656c656761746563616c6c206661696c6564006044820152606490fd5b606090610178565b909291928360041161006c57831161006c57600401916003190190565b81601f8201121561006c5780359061020f826100fd565b9261021d60405194856100d7565b8284526020838301011161006c57816000926020809301838601378301015290565b6001600160a01b0381160361006c57565b3590811515820361006c57565b919082604091031261006c57604051604081018181106001600160401b038211176100f85760405260206102978183958035855201610250565b910152565b91909160a08184031261006c576040519060a082018281106001600160401b038211176100f857604052819381356102d38161023f565b83526102e160208301610250565b602084015260408201356102f48161023f565b60408401526060820135916001600160401b03831161006c5761031d60809392849383016101f8565b60608501520135910152565b9160e08383031261006c5782356001600160401b03811161006c57826103509185016101f8565b9260208101359260408201356103658161023f565b9260608301356001600160401b03811161006c57826103859185016101f8565b92610393836080830161025d565b9260c08201356001600160401b03811161006c576103b1920161029c565b90565b919082519283825260005b8481106103e0575050826000602080949584010152601f8019910116010190565b806020809284010151828286010152016103bf565b9060018060a01b03825116815260208201511515602082015260018060a01b03604083015116604082015260808061043c606085015160a0606086015260a08501906103b4565b93015191015290565b93946103b19795610475610498946104ae969460018060a01b0316885261010060208901526101008801906103b4565b60408701939093526001600160a01b0316606086015284820360808601526103b4565b845160a0840152602090940151151560c0830152565b60e08184039101526103f5565b6040513d6000823e3d90fd5b9060808282031261006c5781356001600160401b03811161006c57816104ee9184016101f8565b9260208301359260408101356105038161023f565b9260608201356001600160401b03811161006c576103b1920161029c565b6001600160a01b03909116815260a0602082018190526103b1959394919261054b918401906103b4565b60408301949094526001600160a01b031660608201528083036080909101526103f5565b91909160c08184031261006c5780356001600160401b03811161006c57836105989183016101f8565b9260208201356105a78161023f565b9260408301356001600160401b03811161006c57826105c79185016101f8565b926105d5836060830161025d565b9260a08201356001600160401b03811161006c576103b1920161029c565b926103b1969461061f6106529461063c9460018060a01b0316875260e0602088015260e08701906103b4565b6001600160a01b03909216604086015284820360608601526103b4565b84516080840152602090940151151560a0830152565b60c08184039101526103f5565b6000356001600160e01b0319166306cb898360e01b8103610723575061068a816106929260006101db565b81019061056f565b90937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561006c576000946106f5869260405198899788968795632c612e1f60e21b875260018060a01b03169033600488016105f3565b03925af1801561071e57610707575b50565b80610716600061071c936100d7565b806100b6565b565b6104bb565b637c0dcb5f60e01b81036107ac5750610741816107499260006101db565b8101906104c7565b9290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b1561006c57600080946106f5604051978896879586946308327f7960e41b865260018060a01b0316913360048701610521565b637b15118b60e01b146107bc5750565b6107cb816107d39260006101db565b810190610329565b9194909390927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169290833b1561006c5761083c600096928793604051998a988997889663567ee10960e11b885260018060a01b0316913360048901610445565b03925af1801561071e57156107045780610716600061071c936100d756fea2646970667358221220c3b911f522f83c8ee9102b4245bed2a13c90092e91b0140cf5e5b3a0b9aa0c6f64736f6c634300081a00330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da26469706673582212203f694ab51e5f913424b6717e51b1a640475332aae62978b7605f0d4ee97dccf764736f6c634300081a0033a2646970667358221220be0a7c814d079da2a24e01b5c1502c7933b2d2be63ee891808548d4407206d1864736f6c634300081a0033"; + "0x60808060405234607d57600c805460ff19166001179055601f80546001600160a81b031916610101179055602080546001600160a01b031990811673735b14bb79463307aacbed86daf3322b1e6226ab17909155602180549091166002179055611b586022556005602355606160245562025e3c9081620000838239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c9081630a9254e41461114b575080631ed7831c146110cd5780632ade388014610f1657806336e543ae14610eed5780633ce4a5bc14610ec65780633e5e3c2314610e485780633f7286f414610dca5780633fe46ed114610da157806349f8cb0914610be35780634dff22af14610bc557806366141ce214610b9c57806366d9a9a014610a7b5780636a26fefe14610a5d5780636e6dbb5114610a3457806374c2ad231461087657806385226c81146107ec578063916a17c614610744578063b0464fdc1461069c578063b1c388b81461067e578063b50f3138146104c0578063b5508aa914610436578063ba414fa614610411578063bc03090d146103e8578063d5f39488146103bb578063e20c9f7114610331578063ebb2b7e41461016f5763fa7626d41461014a57600080fd5b3461016c578060031936011261016c57602060ff601f54166040519015158152f35b80fd5b503461016c578060031936011261016c5760355460365460405160375490936001600160a01b03928316939092169084836101a9836133e7565b808352926001811690811561031257506001146102b4575b6101cd9250038561346d565b6040519180603854906101df826133e7565b808652916001811690811561028d575060011461022c575b50509061020a836102289493038361346d565b603954603a549260405196879660ff808760081c1696169488613532565b0390f35b603881527f38395c5dceade9603479b177b68959049485df8aa97b39f3533039af5f45619994939250905b808210610271575091925090820160200161020a836101f7565b9192936001816020925483858901015201910190939291610257565b60ff191660208088019190915292151560051b8601909201925061020a91508490506101f7565b50603784529083907f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae5b8183106102f65750509060206101cd928201016101c1565b6020919350806001915483858b010152019101909186926102de565b602092506101cd94915060ff191682840152151560051b8201016101c1565b503461016c578060031936011261016c5760405180916020601554928381520191601582527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475915b81811061039c57610228856103908187038261346d565b6040519182918261335c565b82546001600160a01b0316845260209093019260019283019201610379565b503461016c578060031936011261016c57601f5460405160089190911c6001600160a01b03168152602090f35b503461016c578060031936011261016c576025546040516001600160a01b039091168152602090f35b503461016c578060031936011261016c57602061042c613ace565b6040519015158152f35b503461016c578060031936011261016c57601954610453816138b2565b91610461604051938461346d565b818352601981527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b8383106104a3576040518061022887826135cc565b6001602081926104b28561348e565b81520192019201919061048e565b503461016c578060031936011261016c57603b54603c54604051603d5490936001600160a01b03928316939092169084836104fa836133e7565b808352926001811690811561065f5750600114610601575b61051e9250038561346d565b6040519180603e5490610530826133e7565b80865291600181169081156105da5750600114610579575b50509061055b836102289493038361346d565b603f546040549260405196879660ff808760081c1696169488613532565b603e81527f8d800d6614d35eed73733ee453164a3b48076eb3138f466adeeb9dec7bb31f7094939250905b8082106105be575091925090820160200161055b83610548565b91929360018160209254838589010152019101909392916105a4565b60ff191660208088019190915292151560051b8601909201925061055b9150849050610548565b50603d84529083907fece66cfdbd22e3f37d348a3d8e19074452862cd65fd4b9a11f0336d1ac6d1dc35b81831061064357505090602061051e92820101610512565b6020919350806001915483858b0101520191019091869261062b565b6020925061051e94915060ff191682840152151560051b820101610512565b503461016c578060031936011261016c576020602254604051908152f35b503461016c578060031936011261016c57601c546106b9816138b2565b916106c7604051938461346d565b818352601c81527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211602084015b8383106107095760405180610228878261362c565b6002602060019260405161071c81613452565b848060a01b0386541681526107328587016138c9565b838201528152019201920191906106f4565b503461016c578060031936011261016c57601d54610761816138b2565b9161076f604051938461346d565b818352601d81527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f602084015b8383106107b15760405180610228878261362c565b600260206001926040516107c481613452565b848060a01b0386541681526107da8587016138c9565b8382015281520192019201919061079c565b503461016c578060031936011261016c57601a54610809816138b2565b91610817604051938461346d565b818352601a81527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310610859576040518061022887826135cc565b6001602081926108688561348e565b815201920192019190610844565b503461016c578060031936011261016c57602954602a54604051602b5490936001600160a01b03928316939092169084836108b0836133e7565b8083529260018116908115610a1557506001146109b7575b6108d49250038561346d565b6040519180602c54906108e6826133e7565b8086529160018116908115610990575060011461092f575b505090610911836102289493038361346d565b602d54602e549260405196879660ff808760081c1696169488613532565b602c81527f7416c943b4a09859521022fd2e90eac0dd9026dad28fa317782a135f28a8609194939250905b8082106109745750919250908201602001610911836108fe565b919293600181602092548385890101520191019093929161095a565b60ff191660208088019190915292151560051b8601909201925061091191508490506108fe565b50602b84529083907f11c44e4875b74d31ff9fd779bf2566af7bd15b87fc985d01f5094b89e3669e4f5b8183106109f95750509060206108d4928201016108c8565b6020919350806001915483858b010152019101909186926109e1565b602092506108d494915060ff191682840152151560051b8201016108c8565b503461016c578060031936011261016c576021546040516001600160a01b039091168152602090f35b503461016c578060031936011261016c576020602354604051908152f35b503461016c578060031936011261016c57601b54610a98816138b2565b610aa5604051918261346d565b818152601b83526020810191837f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1845b838310610b6157868587604051928392602084019060208552518091526040840160408260051b8601019392905b828210610b1257505050500390f35b91936001919395506020610b518192603f198a820301865288519083610b4183516040845260408401906133c2565b920151908481840391015261358e565b9601920192018594939192610b03565b60026020600192604051610b7481613452565b610b7d8661348e565b8152610b8a8587016138c9565b83820152815201920192019190610ad5565b503461016c578060031936011261016c576028546040516001600160a01b039091168152602090f35b503461016c578060031936011261016c576020602454604051908152f35b503461016c578060031936011261016c57602f5460305460405160315490936001600160a01b0392831693909216908483610c1d836133e7565b8083529260018116908115610d825750600114610d24575b610c419250038561346d565b604051918060325490610c53826133e7565b8086529160018116908115610cfd5750600114610c9c575b505090610c7e836102289493038361346d565b6033546034549260405196879660ff808760081c1696169488613532565b603281527f11df491316f14931039edfd4f8964c9a443b862f02d4c7611d18c2bc4e6ff69794939250905b808210610ce15750919250908201602001610c7e83610c6b565b9192936001816020925483858901015201910190939291610cc7565b60ff191660208088019190915292151560051b86019092019250610c7e9150849050610c6b565b50603184529083907fc54045fa7c6ec765e825df7f9e9bf9dec12c5cef146f93a5eee56772ee647fbc5b818310610d66575050906020610c4192820101610c35565b6020919350806001915483858b01015201910190918692610d4e565b60209250610c4194915060ff191682840152151560051b820101610c35565b503461016c578060031936011261016c576027546040516001600160a01b039091168152602090f35b503461016c578060031936011261016c5760405180916020601754928381520191601782527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15915b818110610e2957610228856103908187038261346d565b82546001600160a01b0316845260209093019260019283019201610e12565b503461016c578060031936011261016c5760405180916020601854928381520191601882527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e915b818110610ea757610228856103908187038261346d565b82546001600160a01b0316845260209093019260019283019201610e90565b503461016c578060031936011261016c57602080546040516001600160a01b039091168152f35b503461016c578060031936011261016c576026546040516001600160a01b039091168152602090f35b503461016c578060031936011261016c57601e54610f33816138b2565b610f40604051918261346d565b818152601e83526020810191837f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350845b8383106110445786858760405192839260208401906020855251809152604084019160408260051b8601019392815b838310610fac5786860387f35b919395509193603f198782030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b850101940192855b82811061101957505050505060208060019297019301930190928695949293610f9f565b9091929394602080611037600193605f1987820301895289516133c2565b9701950193929101610ff5565b60405161105081613452565b82546001600160a01b0316815260018301805461106c816138b2565b9161107a604051938461346d565b8183528a526020808b20908b9084015b8382106110b0575050505060019282602092836002950152815201920192019190610f70565b6001602081926110bf8661348e565b81520193019101909161108a565b503461016c578060031936011261016c5760405180916020601654928381520191601682527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289915b81811061112c57610228856103908187038261346d565b82546001600160a01b0316845260209093019260019283019201611115565b9050346133585781600319360112613358576021546001600160a01b0316737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156133545763c88a5e6d60e01b8252600482015269d3c21bcecceda1000000602482015281808260448183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561320c57613344575b5050601f5460205460405162010d39808201949391926001600160a01b039081169260081c16906001600160401b03861184871017613330579460409284928697620150ce85398252602082015203019082f0801561320c57602580546001600160a01b0319166001600160a01b03929092169182179055803b1561332d57818091600460405180948193630a5b8ad760e31b83525af180156124a257613318575b5050601f54602154602554604051620b9ea360e11b81526001600160a01b039283169360081c831692909116602082600481845afa9182156124ed5785926132f7575b5060405163bb88b76960e01b8152602081600481855afa9081156132ec5786916132ae575b5060405163330a0e7160e11b815292602084600481865afa92831561328157600494889461328c575b5060209060405195868092630b4a282f60e11b82525afa938415613281578794613241575b506040519561af6995868801968888106001600160401b0389111761322d579160c0979593918997959362003b858939865260208601526001600160a01b039081166040860152908116606085015290811660808401521660a082015203019082f0801561320c5760018060a01b03166001600160601b0360a01b60265416176026556040516165e0808201908282106001600160401b03831117613219579082916200eaee8339039082f0801561320c57602780546001600160a01b0319166001600160a01b0392831617905560265460235483929190911690813b156128d4578291602483926040519485938492637bf2218160e01b845260048401525af180156124a2576131f7575b505060275460255460265460405163330a0e7160e11b81526001600160a01b039384169385939281169216602082600481845afa92831561252c576114e2936101649386916131d8575b5060018060a01b03601f5460081c169060018060a01b036021541692604051946114a386613421565b8552602085015260018060a01b03166040840152606083015260808201528360235495604051968795869463389893e960e21b8652600486019061380c565b61012060a485015260036101248501526208aa8960eb1b610144850152600160c485015260e484015260126101048401525af19081156124a25782916131be575b5060018060a01b038151166001600160601b0360a01b602954161760295560018060a01b036020820151166001600160601b0360a01b602a541617602a5560408101519182516001600160401b038111612bfc57611582602b546133e7565b601f811161315b575b506020601f82116001146130f8578293948293926130ed575b50508160011b916000199060031b1c191617602b555b60608201519182516001600160401b038111612b17576115db602c546133e7565b601f811161308a575b506020601f82116001146130275783948293949261301c575b50508160011b916000199060031b1c191617602c555b6080810151602d5560a081015115159060ff61ff0060c0602e5493015160081b1692169061ffff19161717602e5560018060a01b03602754168160018060a01b036025541660018060a01b0360265416926040519363330a0e7160e11b8552602085600481865afa801561252c576116f4958591612ffd575b5060018060a01b03601f5460081c169060018060a01b036021541692604051956116b587613421565b8652602086015260018060a01b0316604085015260608401526080830152602354918360405180968195829463389893e960e21b84526004840161384b565b03925af19081156124a2578291612fe3575b5060018060a01b038151166001600160601b0360a01b602f541617602f5560018060a01b036020820151166001600160601b0360a01b603054161760305560408101519182516001600160401b038111612bfc576117656031546133e7565b601f8111612f80575b506020601f8211600114612f1d57829394829392612f12575b50508160011b916000199060031b1c1916176031555b60608201519182516001600160401b038111612b17576117be6032546133e7565b601f8111612eaf575b506020601f8211600114612e4c57839482939492612e41575b50508160011b916000199060031b1c1916176032555b608081015160335560a081015115159060ff61ff0060c060345493015160081b1692169061ffff191617176034558060018060a01b0360265416602454813b156128d4578291602483926040519485938492637bf2218160e01b845260048401525af180156124a257612e2c575b505060275460255460265460405163330a0e7160e11b81526001600160a01b039384169385939281169216602082600481845afa92831561252c5761191693610164938691612e0d575b5060018060a01b03601f5460081c169060018060a01b036021541692604051946118d786613421565b8552602085015260018060a01b03166040840152606083015260808201528360245495604051968795869463389893e960e21b8652600486019061380c565b61012060a485015260036101248501526221272160e91b610144850152600160c485015260e484015260126101048401525af19081156124a2578291612df3575b5060018060a01b038151166001600160601b0360a01b603554161760355560018060a01b036020820151166001600160601b0360a01b603654161760365560408101519182516001600160401b038111612bfc576119b66037546133e7565b601f8111612d90575b506020601f8211600114612d2d57829394829392612d22575b50508160011b916000199060031b1c1916176037555b60608201519182516001600160401b038111612b1757611a0f6038546133e7565b601f8111612cbf575b506020601f8211600114612c5c57839482939492612c51575b50508160011b916000199060031b1c1916176038555b608081015160395560a081015115159060ff61ff0060c0603a5493015160081b1692169061ffff19161717603a5560018060a01b03602754168160018060a01b036025541660018060a01b0360265416926040519363330a0e7160e11b8552602085600481865afa801561252c57611b28958591612c32575b5060018060a01b03601f5460081c169060018060a01b03602154169260405195611ae987613421565b8652602086015260018060a01b0316604085015260608401526080830152602454918360405180968195829463389893e960e21b84526004840161384b565b03925af19081156124a2578291612c10575b5060018060a01b038151166001600160601b0360a01b603b541617603b5560018060a01b036020820151166001600160601b0360a01b603c541617603c5560408101519182516001600160401b038111612bfc57611b99603d546133e7565b601f8111612b99575b506020601f8211600114612b3657829394829392612b2b575b50508160011b916000199060031b1c191617603d555b60608201519182516001600160401b038111612b1757611bf2603e546133e7565b601f8111612ab4575b506020601f8211600114612a5157839482939492612a46575b50508160011b916000199060031b1c191617603e555b6080810151603f5560a081015115159060ff61ff0060c060405493015160081b1692169061ffff191617176040558060018060a01b036025541660405163330a0e7160e11b8152602081600481855afa9081156128f7576004916020918591612a29575b5060018060a01b031692836001600160601b0360a01b602854161760285560405192838092633c12ad4d60e21b82525afa9081156128f75783916129e7575b50813b156128d4576040516325128ee960e21b81526001600160a01b0390911660048201529082908290602490829084905af180156124a2576129d2575b5060018060a01b0360285416602254813b156128d457829160248392604051948593849263d7b3eeaf60e01b845260048401525af180156124a2576129bd575b50602854602354602654604051621ac49360e31b8152600481018390526001600160a01b039384169390929160209184916024918391165afa91821561252c57849261299c575b50823b156125a357604051638016f22b60e01b815260048101919091526001600160a01b039190911660248201529082908290604490829084905af180156124a257612987575b5060285460248054602654604051621ac49360e31b8152600481018390526001600160a01b0394851694909360209285928391165afa91821561252c578492612966575b50823b156125a357604051638016f22b60e01b815260048101919091526001600160a01b039190911660248201529082908290604490829084905af180156124a257612951575b50602854602554604051630b4a282f60e11b81526001600160a01b0392831692909160209183916004918391165afa9081156128f7578391612917575b50813b156128d457604051635f54c24f60e11b81526001600160a01b0390911660048201529082908290602490829084905af180156124a257612902575b50602854602554604051620b9ea360e11b81526001600160a01b0392831692909160209183916004918391165afa9081156128f75783916128d8575b50813b156128d45760405162b8969960e81b81526001600160a01b0390911660048201529082908290602490829084905af180156124a2576128bf575b506028546023546029546001600160a01b039283169216823b156125a357604051630d1fce9f60e21b815260048101929092526001600160a01b031660248201529082908290604490829084905af180156124a2576128aa575b506028546023546029546001600160a01b039283169216823b156125a35760405163f59e8a6760e01b81526004810192909252600060248301526001600160a01b031660448201529082908290606490829084905af180156124a257612895575b506028546023546029546001600160a01b039283169216823b156125a35760405163f9a4169760e01b815260048101929092526001600160a01b03166024820152600060448201529082908290606490829084905af180156124a257612880575b506030546001600160a01b0316806127ac575b50602854602354602654604051633178d80160e11b815260048101839052926001600160a01b039081169160209185916024918391165afa92831561252c57849361276e575b50602554604051620b9ea360e11b81529190602090839060049082906001600160a01b03165afa9182156124ed57859261274d575b50803b156124ad5761212e938580946040519687958694859363f59e8a6760e01b855260048501613892565b03925af180156124a257612738575b50602854602354602554604051620b9ea360e11b8152926001600160a01b039081169160209185916004918391165afa92831561252c578493612714575b50602654604051633178d80160e11b8152600481018490529190602090839060249082906001600160a01b03165afa9182156124ed5785926126d8575b50803b156124ad576121e4938580946040519687958694859363f9a4169760e01b855260048501613892565b03925af180156124a2576126c3575b506028546024546035546001600160a01b039283169216823b156125a357604051630d1fce9f60e21b815260048101929092526001600160a01b031660248201529082908290604490829084905af180156124a2576126ae575b506028546024546035546001600160a01b039283169216823b156125a35760405163f59e8a6760e01b81526004810192909252600060248301526001600160a01b031660448201529082908290606490829084905af180156124a257612699575b506028546024546035546001600160a01b039283169216823b156125a35760405163f9a4169760e01b815260048101929092526001600160a01b03166024820152600060448201529082908290606490829084905af180156124a257612684575b50603c546001600160a01b0316806125b0575b5060285460248054602654604051633178d80160e11b8152600481018390529391926001600160a01b03928316926020928692918391165afa92831561252c57849361256d575b50602554604051620b9ea360e11b81529190602090839060049082906001600160a01b03165afa9182156124ed57859261254c575b50803b156124ad576123ca938580946040519687958694859363f59e8a6760e01b855260048501613892565b03925af180156124a257612537575b50602854602454602554604051620b9ea360e11b8152926001600160a01b039081169160209185916004918391165afa92831561252c5784936124f8575b50602654604051633178d80160e11b8152600481018490529190602090839060249082906001600160a01b03165afa9182156124ed5785926124b1575b50803b156124ad57612480938580946040519687958694859363f9a4169760e01b855260048501613892565b03925af180156124a2576124915750f35b8161249b9161346d565b61016c5780f35b6040513d84823e3d90fd5b8480fd5b9091506020813d6020116124e5575b816124cd6020938361346d565b810103126124ad576124de906136c8565b9038612454565b3d91506124c0565b6040513d87823e3d90fd5b602491935061251e9060203d602011612525575b612516818361346d565b8101906136a4565b9290612417565b503d61250c565b6040513d86823e3d90fd5b816125419161346d565b61016c5780386123d9565b61256691925060203d60201161252557612516818361346d565b903861239e565b9092506020813d6020116125a8575b816125896020938361346d565b810103126125a35761259c6004916136c8565b9290612369565b505050fd5b3d915061257c565b602854602454603b5490916001600160a01b039182169116803b156124ad576125f3938580946040519687958694859363f59e8a6760e01b855260048501613892565b03925af180156124a25761266f575b50602854602454603b54603c546001600160a01b03918216939082169116803b156124ad5761264b938580946040519687958694859363f9a4169760e01b855260048501613892565b03925af180156124a2571561232257816126649161346d565b61016c578038612322565b816126799161346d565b61016c578038612602565b8161268e9161346d565b61016c57803861230f565b816126a39161346d565b61016c5780386122ae565b816126b89161346d565b61016c57803861224d565b816126cd9161346d565b61016c5780386121f3565b9091506020813d60201161270c575b816126f46020938361346d565b810103126124ad57612705906136c8565b90386121b8565b3d91506126e7565b60249193506127319060203d60201161252557612516818361346d565b929061217b565b816127429161346d565b61016c57803861213d565b61276791925060203d60201161252557612516818361346d565b9038612102565b9092506020813d6020116127a4575b8161278a6020938361346d565b810103126125a35761279d6004916136c8565b92906120cd565b3d915061277d565b602854602354602f5490916001600160a01b039182169116803b156124ad576127ef938580946040519687958694859363f59e8a6760e01b855260048501613892565b03925af180156124a25761286b575b50602854602354602f546030546001600160a01b03918216939082169116803b156124ad57612847938580946040519687958694859363f9a4169760e01b855260048501613892565b03925af180156124a2571561208757816128609161346d565b61016c578038612087565b816128759161346d565b61016c5780386127fe565b8161288a9161346d565b61016c578038612074565b8161289f9161346d565b61016c578038612013565b816128b49161346d565b61016c578038611fb2565b816128c99161346d565b61016c578038611f58565b5050fd5b6128f1915060203d60201161252557612516818361346d565b38611f1b565b6040513d85823e3d90fd5b8161290c9161346d565b61016c578038611edf565b90506020813d602011612949575b816129326020938361346d565b810103126128d457612943906136c8565b38611ea1565b3d9150612925565b8161295b9161346d565b61016c578038611e64565b61298091925060203d60201161252557612516818361346d565b9038611e1d565b816129919161346d565b61016c578038611dd9565b6129b691925060203d60201161252557612516818361346d565b9038611d92565b816129c79161346d565b61016c578038611d4b565b816129dc9161346d565b61016c578038611d0b565b90506020813d602011612a21575b81612a026020938361346d565b810103126128d457516001600160a01b03811681036128d45738611ccd565b3d91506129f5565b612a409150823d841161252557612516818361346d565b38611c8e565b015190503880611c14565b603e845280842090601f198316855b818110612a9c57509583600195969710612a83575b505050811b01603e55611c2a565b015160001960f88460031b161c19169055388080612a75565b9192602060018192868b015181550194019201612a60565b603e84527f8d800d6614d35eed73733ee453164a3b48076eb3138f466adeeb9dec7bb31f70601f830160051c81019160208410612b0d575b601f0160051c01905b818110612b025750611bfb565b848155600101612af5565b9091508190612aec565b634e487b7160e01b83526041600452602483fd5b015190503880611bbb565b603d835280832090601f198316845b818110612b8157509583600195969710612b68575b505050811b01603d55611bd1565b015160001960f88460031b161c19169055388080612b5a565b9192602060018192868b015181550194019201612b45565b603d83527fece66cfdbd22e3f37d348a3d8e19074452862cd65fd4b9a11f0336d1ac6d1dc3601f830160051c81019160208410612bf2575b601f0160051c01905b818110612be75750611ba2565b838155600101612bda565b9091508190612bd1565b634e487b7160e01b82526041600452602482fd5b612c2c91503d8084833e612c24818361346d565b810190613730565b38611b3a565b612c4b915060203d60201161252557612516818361346d565b38611ac0565b015190503880611a31565b6038845280842090601f198316855b818110612ca757509583600195969710612c8e575b505050811b01603855611a47565b015160001960f88460031b161c19169055388080612c80565b9192602060018192868b015181550194019201612c6b565b603884527f38395c5dceade9603479b177b68959049485df8aa97b39f3533039af5f456199601f830160051c81019160208410612d18575b601f0160051c01905b818110612d0d5750611a18565b848155600101612d00565b9091508190612cf7565b0151905038806119d8565b6037835280832090601f198316845b818110612d7857509583600195969710612d5f575b505050811b016037556119ee565b015160001960f88460031b161c19169055388080612d51565b9192602060018192868b015181550194019201612d3c565b603783527f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae601f830160051c81019160208410612de9575b601f0160051c01905b818110612dde57506119bf565b838155600101612dd1565b9091508190612dc8565b612e0791503d8084833e612c24818361346d565b38611957565b612e26915060203d60201161252557612516818361346d565b386118ae565b81612e369161346d565b61016c578038611864565b0151905038806117e0565b6032845280842090601f198316855b818110612e9757509583600195969710612e7e575b505050811b016032556117f6565b015160001960f88460031b161c19169055388080612e70565b9192602060018192868b015181550194019201612e5b565b603284527f11df491316f14931039edfd4f8964c9a443b862f02d4c7611d18c2bc4e6ff697601f830160051c81019160208410612f08575b601f0160051c01905b818110612efd57506117c7565b848155600101612ef0565b9091508190612ee7565b015190503880611787565b6031835280832090601f198316845b818110612f6857509583600195969710612f4f575b505050811b0160315561179d565b015160001960f88460031b161c19169055388080612f41565b9192602060018192868b015181550194019201612f2c565b603183527fc54045fa7c6ec765e825df7f9e9bf9dec12c5cef146f93a5eee56772ee647fbc601f830160051c81019160208410612fd9575b601f0160051c01905b818110612fce575061176e565b838155600101612fc1565b9091508190612fb8565b612ff791503d8084833e612c24818361346d565b38611706565b613016915060203d60201161252557612516818361346d565b3861168c565b0151905038806115fd565b602c845280842090601f198316855b81811061307257509583600195969710613059575b505050811b01602c55611613565b015160001960f88460031b161c1916905538808061304b565b9192602060018192868b015181550194019201613036565b602c84527f7416c943b4a09859521022fd2e90eac0dd9026dad28fa317782a135f28a86091601f830160051c810191602084106130e3575b601f0160051c01905b8181106130d857506115e4565b8481556001016130cb565b90915081906130c2565b0151905038806115a4565b602b835280832090601f198316845b8181106131435750958360019596971061312a575b505050811b01602b556115ba565b015160001960f88460031b161c1916905538808061311c565b9192602060018192868b015181550194019201613107565b602b83527f11c44e4875b74d31ff9fd779bf2566af7bd15b87fc985d01f5094b89e3669e4f601f830160051c810191602084106131b4575b601f0160051c01905b8181106131a9575061158b565b83815560010161319c565b9091508190613193565b6131d291503d8084833e612c24818361346d565b38611523565b6131f1915060203d60201161252557612516818361346d565b3861147a565b816132019161346d565b61016c578038611430565b50604051903d90823e3d90fd5b634e487b7160e01b84526041600452602484fd5b634e487b7160e01b8a52604160045260248afd5b9093506020813d602011613279575b8161325d6020938361346d565b810103126132755761326e906136c8565b9238611324565b8680fd5b3d9150613250565b6040513d89823e3d90fd5b60209194506132a790823d841161252557612516818361346d565b93906112ff565b90506020813d6020116132e4575b816132c96020938361346d565b810103126132e0576132da906136c8565b386112d6565b8580fd5b3d91506132bc565b6040513d88823e3d90fd5b61331191925060203d60201161252557612516818361346d565b90386112b1565b816133229161346d565b61016c57803861126e565b50fd5b634e487b7160e01b85526041600452602485fd5b61334d9161346d565b38816111cc565b8280fd5b5080fd5b602060408183019282815284518094520192019060005b8181106133805750505090565b82516001600160a01b0316845260209384019390920191600101613373565b60005b8381106133b25750506000910152565b81810151838201526020016133a2565b906020916133db8151809281855285808601910161339f565b601f01601f1916010190565b90600182811c92168015613417575b602083101461340157565b634e487b7160e01b600052602260045260246000fd5b91607f16916133f6565b60a081019081106001600160401b0382111761343c57604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761343c57604052565b90601f801991011681019081106001600160401b0382111761343c57604052565b90604051918260008254926134a2846133e7565b808452936001811690811561351057506001146134c9575b506134c79250038361346d565b565b90506000929192526020600020906000915b8183106134f45750509060206134c792820101386134ba565b60209193508060019154838589010152019101909184926134db565b9050602092506134c794915060ff191682840152151560051b820101386134ba565b95919361356d60c09699989460ff9661357b9460018060a01b03168a5260018060a01b031660208a015260e060408a015260e08901906133c2565b9087820360608901526133c2565b966080860152151560a085015216910152565b906020808351928381520192019060005b8181106135ac5750505090565b82516001600160e01b03191684526020938401939092019160010161359f565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106135ff57505050505090565b909192939460208061361d600193603f1986820301875289516133c2565b970193019301919392906135f0565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061365f57505050505090565b9091929394602080613695600193603f198682030187526040838b51878060a01b0381511684520151918185820152019061358e565b97019301930191939290613650565b908160209103126136c357516001600160a01b03811681036136c35790565b600080fd5b51906001600160a01b03821682036136c357565b81601f820112156136c35780516001600160401b03811161343c576040519261370f601f8301601f19166020018561346d565b818452602082840101116136c35761372d916020808501910161339f565b90565b6020818303126136c3578051906001600160401b0382116136c3570160e0818303126136c3576040519160e083018381106001600160401b0382111761343c5760405261377c826136c8565b835261378a602083016136c8565b602084015260408201516001600160401b0381116136c357816137ae9184016136dc565b60408401526060820151906001600160401b0382116136c3576137d29183016136dc565b60608301526080810151608083015260a08101519081151582036136c35760c09160a0840152015160ff811681036136c35760c082015290565b80516001600160a01b03908116835260208083015182169084015260408083015182169084015260608083015182169084015260809182015116910152565b8061385e6101009260069496959661380c565b61012060a08201526004610120820152635553444360e01b610140820152610160810194600060c083015260e08201520152565b9081526001600160a01b0391821660208201529116604082015260600190565b6001600160401b03811161343c5760051b60200190565b90604051918281549182825260208201906000526020600020926000905b806007830110613a29576134c7945491818110613a0a575b8181106139eb575b8181106139cc575b8181106139ad575b81811061398e575b81811061396f575b818110613952575b1061393d575b50038361346d565b6001600160e01b031916815260200138613935565b602083811b6001600160e01b03191685529093019260010161392f565b604083901b6001600160e01b0319168452602090930192600101613927565b606083901b6001600160e01b031916845260209093019260010161391f565b608083901b6001600160e01b0319168452602090930192600101613917565b60a083901b6001600160e01b031916845260209093019260010161390f565b60c083901b6001600160e01b0319168452602090930192600101613907565b60e083901b6001600160e01b03191684526020909301926001016138ff565b916008919350610100600191865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e08201520194019201859293916138e7565b60085460ff168015613add5790565b50604051630667f9d760e41b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d60048201526519985a5b195960d21b6024820152602081604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115613b7857600091613b46575b50151590565b90506020813d602011613b70575b81613b616020938361346d565b810103126136c3575138613b40565b3d9150613b54565b6040513d6000823e3d90fdfe60803461012957601f61af6938819003918201601f19168301916001600160401b0383118484101761012e5780849260c0946040528339810103126101295761004781610144565b9061005460208201610144565b61006060408301610144565b61006c60608401610144565b91600161008760a061008060808801610144565b9601610144565b600c805460ff199081168417909155601f805460a885901b8581031990911660089a909a1b92019190911697909717909117909555602080546001600160a01b03199081166001600160a01b039384161790915560218054821693831693909317909255602280548316938216939093179092556023805482169383169390931790925560248054909216921691909117905560405161ae1090816101598239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036101295756fe6080604052600436101561001257600080fd5b60003560e01c8062173d4614610195578062d62498146101905780631694505e1461018b5780631ed7831c146101865780632ade3880146101815780633e5e3c231461017c5780633f7286f41461017757806362f1b0021461017257806366d9a9a01461016d5780636a26fefe146101685780636ce89fe2146101635780636e6dbb511461015e5780637bf221811461015957806385226c8114610154578063916a17c61461014f578063ad8414bf1461014a578063b0464fdc14610145578063b5508aa914610140578063ba414fa61461013b578063bb88b76914610136578063d05adf6a14610131578063d5f394881461012c578063e20c9f71146101275763fa7626d41461012257600080fd5b611708565b611688565b61165b565b61162d565b611604565b6115df565b611552565b6114a6565b611478565b6113cc565b6112c7565b6107d8565b6107b1565b610788565b61076c565b6106c0565b6105d4565b610554565b6104d4565b610428565b61027f565b610213565b6101e5565b6101aa565b60009103126101a557565b600080fd5b346101a55760003660031901126101a5576021546040516001600160a01b039091168152602090f35b60209060031901126101a55760043590565b346101a5576101f3366101d3565b6000526027602052602060018060a01b0360406000205416604051908152f35b346101a55760003660031901126101a5576024546040516001600160a01b039091168152602090f35b602060408183019282815284518094520192019060005b8181106102605750505090565b82516001600160a01b0316845260209384019390920191600101610253565b346101a55760003660031901126101a55760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b8181106102f0576102ec856102e08187038261175d565b6040519182918261023c565b0390f35b82546001600160a01b03168452602090930192600192830192016102c9565b60005b8381106103225750506000910152565b8181015183820152602001610312565b9060209161034b8151809281855285808601910161030f565b601f01601f1916010190565b9080602083519182815201916020808360051b8301019401926000915b83831061038357505050505090565b90919293946020806103a1600193601f198682030187528951610332565b97019301930191939290610374565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106103e357505050505090565b9091929394602080610419600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610357565b970193019301919392906103d4565b346101a55760003660031901126101a557601e546104458161177f565b90610453604051928361175d565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061049957604051806102ec87826103b0565b600260206001926040516104ac81611741565b848060a01b0386541681526104c2858701611863565b83820152815201920192019190610484565b346101a55760003660031901126101a55760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b818110610535576102ec856102e08187038261175d565b82546001600160a01b031684526020909301926001928301920161051e565b346101a55760003660031901126101a55760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b8181106105b5576102ec856102e08187038261175d565b82546001600160a01b031684526020909301926001928301920161059e565b346101a5576105e2366101d3565b6000526028602052602060018060a01b0360406000205416604051908152f35b906020808351928381520192019060005b8181106106205750505090565b82516001600160e01b031916845260209384019390920191600101610613565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061067357505050505090565b90919293946020806106b1600193603f19868203018752895190836106a18351604084526040840190610332565b9201519084818403910152610602565b97019301930191939290610664565b346101a55760003660031901126101a557601b546106dd8161177f565b906106eb604051928361175d565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b83831061073157604051806102ec8782610640565b6002602060019260405161074481611741565b61074d86611797565b815261075a8587016118bb565b8382015281520192019201919061071c565b346101a55760003660031901126101a557602060405160058152f35b346101a55760003660031901126101a5576023546040516001600160a01b039091168152602090f35b346101a55760003660031901126101a557602080546040516001600160a01b039091168152f35b346101a5576107e6366101d3565b601f5460081c6001600160a01b0316737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156101a5576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610f355761129e575b50604051612bb280820182811067ffffffffffffffff821117611012578291613e2c833903906000f08015610f35576023546001600160a01b031660405191610bd68084019284841067ffffffffffffffff8511176110125784936108e193879361a20587396001600160a01b039081168252919091166020820152604081019190915260600190565b03906000f08015610f35576000828152602760205260409020610928916001600160a01b0316905b80546001600160a01b0319166001600160a01b03909216919091179055565b604051611eb280820182811067ffffffffffffffff821117611012578291611f7a833903906000f08015610f35576000828152602560205260409020610977916001600160a01b031690610909565b60058114801561114a576040516360f9bb1160e01b815260206004820152604b60248201527f6e6f64655f6d6f64756c65732f407a657461636861696e2f70726f746f636f6c60448201527f2d636f6e7472616374732f6162692f5465737445524332302e736f6c2f54657360648201526a3a22a9219918173539b7b760a91b608482015260008160a481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610f3557610a49916000918291611130575b5060405180938192631fb2437d60e31b835260048301611b5b565b0381737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610f3557610aea91610ad69160009161110d575b5060405190610ad182610ac36020820160c0906040815260046040820152635a65746160e01b60608201526080602082015260046080820152635a45544160e01b60a08201520190565b03601f19810184528361175d565b611c60565b610909846000526028602052604060002090565b610b1d610b11610b04846000526027602052604060002090565b546001600160a01b031690565b6001600160a01b031690565b6020546001600160a01b0316610b40610b04856000526028602052604060002090565b601f5490929060081c6001600160a01b031690803b156101a55760405163c0c53b8b60e01b81526001600160a01b0393841660048201529383166024850152911660448301526000908290606490829084905af18015610f35576110f8575b50610bbd610b11610b11610b04856000526025602052604060002090565b610bd7610b11610b04856000526027602052604060002090565b6020546001600160a01b0316601f5490929060081c6001600160a01b031690803b156101a55760405163c0c53b8b60e01b81526001600160a01b0393841660048201529383166024850152911660448301526000908290606490829084905af18015610f35576110e3575b50801561101757604051611b8380820182811067ffffffffffffffff8211176110125782916169de833903906000f08015610f3557610c91610b11610b04856000526027602052604060002090565b90610cfc610cac610b04866000526028602052604060002090565b60208054601f54604051637c643b2f60e11b938101939093526001600160a01b03968716602484015292861660448301528516606482015260089190911c90931660848401528260a48101610ac3565b604051916102c69081840184811067ffffffffffffffff821117611012578493610d3493611cb486396001600160a01b031690611b97565b03906000f08015610f35576000838152602660205260409020610d60916001600160a01b031690610909565b610d7a610b11610b04846000526027602052604060002090565b610d91610b04846000526025602052604060002090565b90803b156101a55760405163ae7a3a6f60e01b81526001600160a01b039290921660048301526000908290602490829084905af18015610f3557610ffd575b50610deb610b11610b04846000526027602052604060002090565b610e02610b04846000526026602052604060002090565b90803b156101a5576040516310188aef60e01b81526001600160a01b039290921660048301526000908290602490829084905af18015610f3557610fe8575b5015610f4f57610e7b610b04610e6a610b11610b11610b04866000526028602052604060002090565b926000526026602052604060002090565b90803b156101a5576040516340c10f1960e01b81526001600160a01b0392909216600483015269d3c21bcecceda100000060248301526000908290604490829084905af18015610f3557610f3a575b505b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156101a5576040516390c5013b60e01b815260008160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610f3557610f1e57005b80610f2d6000610f339361175d565b8061019a565b005b611ae0565b80610f2d6000610f499361175d565b38610eca565b610f6c610b11610b11610b04846000526028602052604060002090565b602054909190610f8890610b04906001600160a01b0316610e6a565b823b156101a5576040516305755ff560e21b81526001600160a01b03928316600482015291166024820152906000908290604490829084905af18015610f3557610fd3575b50610ecc565b80610f2d6000610fe29361175d565b38610fcd565b80610f2d6000610ff79361175d565b38610e41565b80610f2d600061100c9361175d565b38610dd0565b61172b565b604051611ca480820182811067ffffffffffffffff821117611012578291618561833903906000f08015610f355761105f610b11610b04856000526027602052604060002090565b9061107a610cac610b04866000526028602052604060002090565b604051916102c69081840184811067ffffffffffffffff8211176110125784936110b293611cb486396001600160a01b031690611b97565b03906000f08015610f355760008381526026602052604090206110de916001600160a01b031690610909565b610d60565b80610f2d60006110f29361175d565b38610c42565b80610f2d60006111079361175d565b38610b9f565b61112a91503d806000833e611122818361175d565b810190611aec565b38610a79565b61114491503d8084833e611122818361175d565b38610a2e565b6040516360f9bb1160e01b815260206004820152604f60248201527f6e6f64655f6d6f64756c65732f407a657461636861696e2f70726f746f636f6c60448201527f2d636f6e7472616374732f6162692f5a6574612e6e6f6e2d6574682e736f6c2f60648201526e2d32ba30a737b722ba34173539b7b760891b608482015260008160a481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610f3557611215916000918291611130575060405180938192631fb2437d60e31b835260048301611b5b565b0381737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610f355761127e91610ad691600091611283575b5060208054601f54604080516001600160a01b039384169481019490945260089190911c9091169082015290610ad18260608101610ac3565b610aea565b61129891503d806000833e611122818361175d565b38611245565b80610f2d60006112ad9361175d565b38610857565b9060206112c4928181520190610357565b90565b346101a55760003660031901126101a557601a546112e48161177f565b906112f2604051928361175d565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b83831061133757604051806102ec87826112b3565b60016020819261134685611797565b815201920192019190611322565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061138757505050505090565b90919293946020806113bd600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610602565b97019301930191939290611378565b346101a55760003660031901126101a557601d546113e98161177f565b906113f7604051928361175d565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b83831061143d57604051806102ec8782611354565b6002602060019260405161145081611741565b848060a01b0386541681526114668587016118bb565b83820152815201920192019190611428565b346101a557611486366101d3565b6000526025602052602060018060a01b0360406000205416604051908152f35b346101a55760003660031901126101a557601c546114c38161177f565b906114d1604051928361175d565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b83831061151757604051806102ec8782611354565b6002602060019260405161152a81611741565b848060a01b0386541681526115408587016118bb565b83820152815201920192019190611502565b346101a55760003660031901126101a55760195461156f8161177f565b9061157d604051928361175d565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b8383106115c257604051806102ec87826112b3565b6001602081926115d185611797565b8152019201920191906115ad565b346101a55760003660031901126101a55760206115fa611bc8565b6040519015158152f35b346101a55760003660031901126101a5576022546040516001600160a01b039091168152602090f35b346101a55761163b366101d3565b6000526026602052602060018060a01b0360406000205416604051908152f35b346101a55760003660031901126101a557601f5460405160089190911c6001600160a01b03168152602090f35b346101a55760003660031901126101a55760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b8181106116e9576102ec856102e08187038261175d565b82546001600160a01b03168452602090930192600192830192016116d2565b346101a55760003660031901126101a557602060ff601f54166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff82111761101257604052565b90601f8019910116810190811067ffffffffffffffff82111761101257604052565b67ffffffffffffffff81116110125760051b60200190565b9060405191600081548060011c9260018216918215611859575b60208510831461184557848752869392602085019291811561182857506001146117e6575b50506117e49250038361175d565b565b6117f7919250600052602060002090565b906000915b84831061181157506117e493500138806117d6565b8054828401528693506020909201916001016117fc565b9150506117e49491925060ff19168252151560051b0138806117d6565b634e487b7160e01b84526022600452602484fd5b93607f16936117b1565b90815461186f8161177f565b9261187d604051948561175d565b818452602084019060005260206000206000915b83831061189e5750505050565b6001602081926118ad85611797565b815201920192019190611891565b604051815480825290929183906118db6020830191600052602060002090565b926000905b806007830110611a23576117e4945491818110611a04575b8181106119e5575b8181106119c6575b8181106119a7575b818110611988575b818110611969575b81811061194b575b10611936575b50038361175d565b6001600160e01b03191681526020013861192e565b602083811b6001600160e01b03191685529093600191019301611928565b604083901b6001600160e01b0319168452926001906020019301611920565b606083901b6001600160e01b0319168452926001906020019301611918565b608083901b6001600160e01b0319168452926001906020019301611910565b60a083901b6001600160e01b0319168452926001906020019301611908565b60c083901b6001600160e01b0319168452926001906020019301611900565b6001600160e01b031960e084901b1684529260019060200193016118f8565b916008919350610100600191611ad28754611a49838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b0194019201859293916118e0565b6040513d6000823e3d90fd5b6020818303126101a55780519067ffffffffffffffff82116101a5570181601f820112156101a5576020815191019067ffffffffffffffff81116110125760405192611b42601f8301601f19166020018561175d565b818452818301116101a5576112c491602084019061030f565b611b6d60409283835283830190610332565b906020818303910152601081526f0b989e5d1958dbd9194b9bd89a9958dd60821b60208201520190565b6001600160a01b0390911681526040602082018190526112c492910190610332565b908160209103126101a5575190565b60085460ff168015611bd75790565b50604051630667f9d760e41b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190526519985a5b195960d21b6024830152602090829060449082905afa908115610f3557600091611c31575b50151590565b611c53915060203d602011611c59575b611c4b818361175d565b810190611bb9565b38611c2b565b503d611c41565b90611ca560209160405192839181611c81818501978881519384920161030f565b8301611c958251809385808501910161030f565b010103601f19810183528261175d565b51906000f09081156101a55756fe60806040526102c68038038061001481610188565b928339810190604081830312610183578051906001600160a01b03821690818303610183576020810151906001600160401b038211610183570183601f820112156101835780519061006d610068836101c3565b610188565b94828652602083830101116101835760005b82811061016e575050602060009185010152813b1561015a577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a28151156101415760008083602061012995519101845af43d15610139573d91610119610068846101c3565b9283523d6000602085013e6101de565b505b604051608690816102408239f35b6060916101de565b5050341561012b5763b398979f60e01b60005260046000fd5b634c9c8ce360e01b60005260045260246000fd5b8060208092840101518282890101520161007f565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176101ad57604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b0381116101ad57601f01601f191660200190565b9061020457508051156101f357805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580610236575b610215575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b1561020d56fe60806040527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5460009081906001600160a01b0316368280378136915af43d6000803e15604b573d6000f35b3d6000fdfea264697066735822122050f22a01d073962c556a114f7af7ed5d52928a56307a2cc1329dcdbb635986ec64736f6c634300081a003360a0806040523460295730608052611e83908161002f8239608051818181610eff0152610fd00152f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a71461130e57508063116191b6146112e7578063248a9ca3146112c0578063252f07bf1461129a5780632f2ff15d1461126857806336568abe146112235780633f4ba83a146111a15780634f1ef28614610f5457806352d1902d14610eec578063570618e114610ec35780635b11259114610e9a5780635c975abb14610e6a5780638456cb5914610df557806385f438c114610dcc57806391d1485414610d76578063950837aa14610caa57806399a3c35614610ad45780639a59042714610a685780639b19251a146109ea578063a217fddf146109ce578063ad08185214610823578063ad3cb1cc146107a9578063c0c53b8b1461057f578063d547741f14610544578063d936547e14610505578063d9caed1214610442578063e609055e146101e8578063e63ab1e9146101ad5763eab103df1461016057600080fd5b346101aa5760203660031901126101aa576004358015158091036101a657610186611570565b6002805460ff60a01b191660a09290921b60ff60a01b1691909117905580f35b5080fd5b80fd5b50346101aa57806003193601126101aa5760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346101aa5760803660031901126101aa5760043567ffffffffffffffff81116101a65761021a90369060040161140d565b6024356001600160a01b03811692919083810361043e5760643567ffffffffffffffff811161043a5761025190369060040161140d565b9061025a611b74565b610262611bb0565b60ff60025460a01c161561042b57858752600160205260ff6040882054161561041c576040516370a0823160e01b8152306004820152926020846024818a5afa9384156103db5788946103e6575b506102ee90604051906323b872dd60e01b60208301523360248301523060448301526044356064830152606482526102e96084836113b9565b611c17565b6040516370a0823160e01b8152306004820152926020846024818a5afa9384156103db5788946103a2575b50830392831161038e5791610376917f1dafa057cc5c3bccb5ad974129a2bccd3c74002d9dfd7062404ba9523b18d6ae95949361036360405196879660608852606088019161145c565b926020860152848303604086015261145c565b0390a26001600080516020611dee8339815191525580f35b634e487b7160e01b87526011600452602487fd5b9093506020813d6020116103d3575b816103be602093836113b9565b810103126103ce57519238610319565b600080fd5b3d91506103b1565b6040513d8a823e3d90fd5b9093506020813d602011610414575b81610402602093836113b9565b810103126103ce5751926102ee6102b0565b3d91506103f5565b630b094f2760e31b8752600487fd5b6373cba66360e01b8752600487fd5b8580fd5b8480fd5b50346101aa5760603660031901126101aa5761045c611379565b610464611363565b60443590610470611b74565b6104786115c3565b610480611bb0565b6001600160a01b03168084526001602052604084205490929060ff16156104f6576020816104d0847fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb9487611bda565b6040519384526001600160a01b031692a36001600080516020611dee8339815191525580f35b630b094f2760e31b8452600484fd5b50346101aa5760203660031901126101aa5760209060ff906040906001600160a01b03610530611379565b168152600184522054166040519015158152f35b50346101aa5760403660031901126101aa5761057b600435610564611363565b906105766105718261143b565b61165f565b611ad4565b5080f35b50346101aa5760603660031901126101aa57610599611379565b6105a1611363565b6105a961138f565b600080516020611e2e833981519152549260ff8460401c16159367ffffffffffffffff8116801590816107a1575b6001149081610797575b15908161078e575b5061077f5767ffffffffffffffff198116600117600080516020611e2e8339815191525584610752575b506001600160a01b031680158015610741575b8015610730575b610721576106bf92916106b991610642611c7e565b61064a611c7e565b610652611c7e565b6001600080516020611dee8339815191525561066c611c7e565b610674611c7e565b86546001600160a01b0319908116919091178755600280549091166001600160a01b0385161790556106a5816117bb565b506106af81611855565b506106b9836116a9565b50611735565b506106c75780f35b68ff000000000000000019600080516020611e2e8339815191525416600080516020611e2e833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b63d92e233d60e01b8552600485fd5b506001600160a01b0382161561062d565b506001600160a01b03831615610626565b68ffffffffffffffffff19166801000000000000000117600080516020611e2e8339815191525538610613565b63f92ee8a960e01b8652600486fd5b905015386105e9565b303b1591506105e1565b8691506105d7565b50346101aa57806003193601126101aa5760408051916107c982846113b9565b60058352640352e302e360dc1b6020840152815192839160208352815191826020850152815b83811061080c575050828201840152601f01601f19168101030190f35b6020828201810151888301880152879550016107ef565b50346101aa57366003190160a081126101a6576020136101aa57610845611363565b61084d61138f565b906064359160843567ffffffffffffffff811161043e5761087290369060040161140d565b909161087c611b74565b6108846115c3565b61088c611bb0565b6001600160a01b03168086526001602052604086205490949060ff16156109bf5785546108c49082906001600160a01b031687611bda565b85546001600160a01b0316938690853b156101a657604051633ddf4d7d60e11b815290829082906001600160a01b036108fb611379565b166004830152602482018a90526001600160a01b0316604482018190526064820186905260a060848301529781838161093860a482018b8d61145c565b03925af180156109b45761099f575b50506109877f6478cbb6e28c0823c691dfd74c01c985634faddd4c401b990fe4ec26277ea8d593604051938493845260406020850152604084019161145c565b0390a36001600080516020611dee8339815191525580f35b816109a9916113b9565b61043a578538610947565b6040513d84823e3d90fd5b630b094f2760e31b8652600486fd5b50346101aa57806003193601126101aa57602090604051908152f35b50346101aa5760203660031901126101aa57610a04611379565b610a0c611611565b6001600160a01b03168015610a5957808252600160205260408220600160ff198254161790557faab7954e9d246b167ef88aeddad35209ca2489d95a8aeb59e288d9b19fae5a548280a280f35b63d92e233d60e01b8252600482fd5b50346101aa5760203660031901126101aa57610a82611379565b610a8a611611565b6001600160a01b03168015610a5957808252600160205260408220805460ff191690557f51085ddf9ebdded84b76e829eb58c4078e4b5bdf97d9a94723f336039da467918280a280f35b50346101aa5760a03660031901126101aa57610aee611379565b610af6611363565b9060443560643567ffffffffffffffff811161043e57610b1a90369060040161140d565b9190936084359067ffffffffffffffff8211610ca657608082600401926003199036030112610ca657610b4b611b74565b610b536115c3565b610b5b611bb0565b6001600160a01b03168087526001602052604087205490959060ff161561041c578654610b939084906001600160a01b031688611bda565b86546001600160a01b031694853b15610ca25787604051809263aa0c0fc160e01b825289600483015260018060a01b03169788602483015286604483015260a06064830152818381610bfe610bec60a483018d8b61145c565b8281036003190160848401528a61147d565b03925af180156103db57610c60575b507f7b53ec10a80164e60591c43d9c222e9354886981b880a3fba19c9ceb77fb9721939291610c5261098792604051958695865260606020870152606086019161145c565b90838203604085015261147d565b91610c5288610c96610987949a7f7b53ec10a80164e60591c43d9c222e9354886981b880a3fba19c9ceb77fb97219897966113b9565b98925050919293610c0d565b8780fd5b8680fd5b50346101aa5760203660031901126101aa57610cc4611379565b610ccc611570565b6001600160a01b038116908115610d6757600254610d179190610cf7906001600160a01b03166119a8565b50600254610d0d906001600160a01b0316611a3e565b506106b9816116a9565b50600254604080516001600160a01b0383168152602081018490527f4d3470c839d3c4dd664eec934b920c12fe0966e3185103dd40149496815df2b69190a16001600160a01b0319161760025580f35b63d92e233d60e01b8352600483fd5b50346101aa5760403660031901126101aa5760ff6040602092610d97611363565b6004358252600080516020611d8e83398151915285528282206001600160a01b03909116825284522054604051911615158152f35b50346101aa57806003193601126101aa576020604051600080516020611d6e8339815191528152f35b50346101aa57806003193601126101aa57610e0e6114fe565b610e16611bb0565b600160ff19600080516020611dce833981519152541617600080516020611dce833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101aa57806003193601126101aa57602060ff600080516020611dce83398151915254166040519015158152f35b50346101aa57806003193601126101aa576002546040516001600160a01b039091168152602090f35b50346101aa57806003193601126101aa576020604051600080516020611d4e8339815191528152f35b50346101aa57806003193601126101aa577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610f45576020604051600080516020611d2e8339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101aa57610f69611379565b6024359067ffffffffffffffff821161119d573660238301121561119d5781600401359083610f97836113f1565b93610fa560405195866113b9565b8385526020850193366024828401011161119d57806024602093018637850101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630811490811561117a575b5061116b57611008611570565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181611137575b5061104b57634c9c8ce360e01b86526004859052602486fd5b9384600080516020611d2e8339815191528796036111255750823b1561111357600080516020611d2e83398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a28051156110f85761057b9382915190845af43d156110f0573d916110d4836113f1565b926110e260405194856113b9565b83523d85602085013e611cac565b606091611cac565b50505050346111045780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011611163575b81611153602093836113b9565b81010312610ca657519038611032565b3d9150611146565b63703e46dd60e11b8452600484fd5b600080516020611d2e833981519152546001600160a01b03161415905038610ffb565b8280fd5b50346101aa57806003193601126101aa576111ba6114fe565b600080516020611dce8339815191525460ff8116156112145760ff1916600080516020611dce833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346101aa5760403660031901126101aa5761123d611363565b336001600160a01b038216036112595761057b90600435611ad4565b63334bd91960e11b8252600482fd5b50346101aa5760403660031901126101aa5761057b600435611288611363565b906112956105718261143b565b611911565b50346101aa57806003193601126101aa57602060ff60025460a01c166040519015158152f35b50346101aa5760203660031901126101aa5760206112df60043561143b565b604051908152f35b50346101aa57806003193601126101aa57546040516001600160a01b039091168152602090f35b9050346101a65760203660031901126101a65760043563ffffffff60e01b811680910361119d5760209250637965db0b60e01b8114908115611352575b5015158152f35b6301ffc9a760e01b1490503861134b565b602435906001600160a01b03821682036103ce57565b600435906001600160a01b03821682036103ce57565b604435906001600160a01b03821682036103ce57565b35906001600160a01b03821682036103ce57565b90601f8019910116810190811067ffffffffffffffff8211176113db57604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116113db57601f01601f191660200190565b9181601f840112156103ce5782359167ffffffffffffffff83116103ce57602083818601950101116103ce57565b600052600080516020611d8e83398151915260205260016040600020015490565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160a01b0361148e826113a5565b1682526001600160a01b036114a5602083016113a5565b166020830152604081013560408301526060810135601e19823603018112156103ce57016020813591019067ffffffffffffffff81116103ce5780360382136103ce576080838160606114fb960152019161145c565b90565b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561153757565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16156115a957565b63e2517d3f60e01b60005233600452600060245260446000fd5b336000908152600080516020611e0e833981519152602052604090205460ff16156115ea57565b63e2517d3f60e01b60005233600452600080516020611d6e83398151915260245260446000fd5b336000908152600080516020611dae833981519152602052604090205460ff161561163857565b63e2517d3f60e01b60005233600452600080516020611d4e83398151915260245260446000fd5b6000818152600080516020611d8e8339815191526020908152604080832033845290915290205460ff16156116915750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b0381166000908152600080516020611e0e833981519152602052604090205460ff1661172f576001600160a01b03166000818152600080516020611e0e83398151915260205260408120805460ff19166001179055339190600080516020611d6e83398151915290600080516020611d0e8339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020611dae833981519152602052604090205460ff1661172f576001600160a01b03166000818152600080516020611dae83398151915260205260408120805460ff19166001179055339190600080516020611d4e83398151915290600080516020611d0e8339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1661172f576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff19166001179055339190600080516020611d0e8339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1661172f576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a90600080516020611d0e8339815191529080a4600190565b6000818152600080516020611d8e833981519152602090815260408083206001600160a01b038616845290915290205460ff166119a1576000818152600080516020611d8e833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff1916600117905533929190600080516020611d0e8339815191529080a4600190565b5050600090565b6001600160a01b0381166000908152600080516020611e0e833981519152602052604090205460ff161561172f576001600160a01b03166000818152600080516020611e0e83398151915260205260408120805460ff19169055339190600080516020611d6e833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381166000908152600080516020611dae833981519152602052604090205460ff161561172f576001600160a01b03166000818152600080516020611dae83398151915260205260408120805460ff19169055339190600080516020611d4e833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020611d8e833981519152602090815260408083206001600160a01b038616845290915290205460ff16156119a1576000818152600080516020611d8e833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6002600080516020611dee8339815191525414611b9f576002600080516020611dee83398151915255565b633ee5aeb560e01b60005260046000fd5b60ff600080516020611dce8339815191525416611bc957565b63d93c066560e01b60005260046000fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152611c15916102e96064836113b9565b565b906000602091828151910182855af115611c72576000513d611c6957506001600160a01b0381163b155b611c485750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b60011415611c41565b6040513d6000823e3d90fd5b60ff600080516020611e2e8339815191525460401c1615611c9b57565b631afcd79f60e31b60005260046000fd5b90611cd25750805115611cc157805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611d04575b611ce3575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15611cdb56fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8619cecd8b9e095ab43867f5b69d492180450fe862e6b50bfbfb24b75dd84c8a10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009e55e7b9c223644eee376bcbcf651816b24106427c658526e048949da61b2c08cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00395f4e35a18c2b5e556b3b2ff855307e76c0b3cc1ca71e19a70e83037e08e7b3f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220702fb670414d490d4bc4c9faff686ceb6c14d575e3941d5f000714bc96bea29764736f6c634300081a003360a080604052346100ea57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b604051612ac290816100f082396080518181816112a801526113780152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880610054565b63f92ee8a960e01b60005260046000fd5b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a7146119be5750806310188aef1461194c578063102614b01461184c5780631becceb41461176157806321e093b114611738578063248a9ca3146117115780632f2ff15d146116df57806336568abe1461169a57806338e22527146115a05780633f4ba83a1461151e5780634f1ef286146112fd57806352d1902d1461129557806357bec62f1461126c5780635b112591146112435780635c975abb146112135780635d62c860146111d8578063726ac97c14611080578063744b9b8b14610f7c5780637bbe9afa14610b335780638456cb5914610abe57806391d1485414610a65578063950837aa146109c8578063a217fddf146109ac578063a2ba19341461098f578063a783c78914610966578063aa0c0fc114610815578063ad3cb1cc146107c8578063ae7a3a6f1461074c578063c0c53b8b14610542578063cb7ba8e5146103d2578063d09e3b7814610236578063d547741f146101fb578063dda79b75146101d45763e63ab1e91461019757600080fd5b346101d157806003193601126101d15760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b80fd5b50346101d157806003193601126101d157546040516001600160a01b039091168152602090f35b50346101d15760403660031901126101d15761023260043561021b611a44565b9061022d61022882611cb6565b611f46565b612529565b5080f35b50346101d15760a03660031901126101d157610250611a13565b60243561025b611a2e565b916064356001600160401b0381116103ce5761027b903690600401611a6e565b608435946001600160401b0386116103ca57856004019360a060031988360301126103c6576102a86122c5565b85156103b7576001600160a01b03169586156103a857606481016104006102da6102d28389611b9f565b905086611c93565b1161037a575060840135621e848081116103615750610357927fa795d4377323e4c2d4c346b8050a7dd504c4043be8884c81b8d9690706c8388f949282610325886103499533612307565b60405197885260018060a01b03166020880152608060408801526080870191611c02565b908482036060860152611c23565b918033930390a380f35b637643390f60e11b8852600452621e8480602452604487fd5b886103938561038b6044948a611b9f565b919050611c93565b634fe7bc4760e11b8252600452610400602452fd5b63d92e233d60e01b8852600488fd5b63951e19ed60e01b8852600488fd5b8780fd5b8680fd5b8480fd5b5060603660031901126101d1576103e7611a13565b906024356001600160401b03811161053e57610407903690600401611a6e565b604493919335906001600160401b03821161053a5760808260040192600319903603011261053a576104376125c9565b61043f611e14565b6104476122c5565b6001600160a01b03831692831561052b57848080809334905af1610469611d07565b501561051c578394833b156103ce57604051636481451b60e11b81526020600482015285818061049c6024820188611d37565b038183895af19081156105115786916104fc575b50506104e47fde7603a6ed5d07c9f43597ccfe9043d15b66d3284f0de321f5cdf56329e6e035936040519384933485611d95565b0390a36001600080516020612a2d8339815191525580f35b8161050691611b4d565b6103ce5784386104b0565b6040513d88823e3d90fd5b632b3f6d1160e21b8452600484fd5b63d92e233d60e01b8552600485fd5b8380fd5b5080fd5b50346101d15760603660031901126101d15761055c611a13565b610564611a44565b61056c611a2e565b600080516020612a6d833981519152549260ff8460401c1615936001600160401b03811680159081610744575b600114908161073a575b159081610731575b506107225767ffffffffffffffff198116600117600080516020612a6d83398151915255846106f5575b506001600160a01b03811691821580156106e4575b6106d5579061063f610645926105fe6128dd565b6106066128dd565b61060e6128dd565b6001600080516020612a2d833981519152556106286128dd565b6106306128dd565b610639816120d8565b50612172565b50612052565b506001600160601b0360a01b600154161760015560018060a01b03166001600160601b0360a01b600354161760035561067b5780f35b68ff000000000000000019600080516020612a6d8339815191525416600080516020612a6d833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b63d92e233d60e01b8652600486fd5b506001600160a01b038416156105ea565b68ffffffffffffffffff19166801000000000000000117600080516020612a6d83398151915255386105d5565b63f92ee8a960e01b8652600486fd5b905015386105ab565b303b1591506105a3565b869150610599565b50346101d15760203660031901126101d157610766611a13565b61076e611dc1565b6001600160a01b0381169081156107b95782546001600160a01b03166107aa5761079790611f90565b5081546001600160a01b03191617815580f35b631666fe6f60e31b8352600483fd5b63d92e233d60e01b8352600483fd5b50346101d157806003193601126101d157506108116040516107eb604082611b4d565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611b28565b0390f35b50346101d15760a03660031901126101d15761082f611a13565b610837611a44565b906044356064356001600160401b0381116103ce5761085a903690600401611a6e565b91608435926001600160401b0384116103ca576080846004019460031990360301126103ca576108886125c9565b610890611ed4565b6108986122c5565b8115610957576001600160a01b0386169485156103a8576001600160a01b0316956108c5908390886127fd565b843b156103ca57604051636481451b60e11b81526020600482015287908181806108f2602482018a611d37565b0381838b5af1801561094c57610937575b50507fde7603a6ed5d07c9f43597ccfe9043d15b66d3284f0de321f5cdf56329e6e035936104e49160405194859485611d95565b8161094191611b4d565b6103ca578638610903565b6040513d84823e3d90fd5b63951e19ed60e01b8752600487fd5b50346101d157806003193601126101d157602060405160008051602061296d8339815191528152f35b50346101d157806003193601126101d15760206040516104008152f35b50346101d157806003193601126101d157602090604051908152f35b50346101d15760203660031901126101d1576109e2611a13565b6109ea611dc1565b6001600160a01b0381169081156107b957600154610a15919061063f906001600160a01b0316612493565b50600154604080516001600160a01b0383168152602081018490527f3a7b8d6372645f474fe60c115a2ef21421306a3ed4664fa0023c461413c085799190a16001600160a01b0319161760015580f35b50346101d15760403660031901126101d1576040610a81611a44565b9160043581526000805160206129ed833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346101d157806003193601126101d157610ad7611e62565b610adf6122c5565b600160ff19600080516020612a0d833981519152541617600080516020612a0d833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101d157366003190160a0811261053e576020136101d157610b55611a44565b610b5d611a2e565b90606435906084356001600160401b0381116103ce57610b81903690600401611a6e565b929091610b8c6125c9565b610b94611ed4565b610b9c6122c5565b8115610f6d576001600160a01b038516948515610f5e57610bbd8183612786565b15610f1c5760405163095ea7b360e01b602082019081526001600160a01b0383166024830152604480830186905282528891829190610bfd606482611b4d565b519082865af1610c0b611d07565b9015610f3d57805180610efe575b50610c489190506001600160a01b03610c30611cd7565b16610eed57610c408686836126ee565b505b82612786565b15610ecd576040516370a0823160e01b81523060048201526001600160a01b03919091169390602081602481885afa908115610d8d578791610e9b575b5080610cae575b50906104e46000805160206129cd833981519152939260405193849384611ced565b6003546001600160a01b03168503610df95760025460405163095ea7b360e01b81526001600160a01b039091166004820152602481018290526020816044818b8a5af1908115610dee578891610dbf575b5015610d9c576002548791906001600160a01b0316803b15610d985760248392604051948593849263b6b55f2560e01b845260048401525af18015610d8d57610d63575b50906104e46000805160206129cd83398151915293925b91929350610c8c565b86610d836000805160206129cd833981519152959493986104e493611b4d565b9691929350610d43565b6040513d89823e3d90fd5b8280fd5b60025463482b72c160e11b885260048690526001600160a01b0316602452604487fd5b610de1915060203d602011610de7575b610dd98183611b4d565b8101906122ef565b38610cff565b503d610dcf565b6040513d8a823e3d90fd5b8654604051636c9b2a3f60e11b8152600481018790526001600160a01b0390911690602081602481855afa908115610e90578991610e71575b5015610e5d5791610e586104e4926000805160206129cd833981519152969594886127fd565b610d5a565b631387a34960e01b88526004869052602488fd5b610e8a915060203d602011610de757610dd98183611b4d565b38610e32565b6040513d8b823e3d90fd5b90506020813d602011610ec5575b81610eb660209383611b4d565b810103126103ca575138610c85565b3d9150610ea9565b63482b72c160e11b86526001600160a01b03166004526024849052604485fd5b610ef8868683612605565b50610c42565b90602080610f109383010191016122ef565b15610f1c573880610c19565b63482b72c160e11b87526001600160a01b0382166004526024869052604487fd5b63482b72c160e11b88526001600160a01b0383166004526024879052604488fd5b63d92e233d60e01b8752600487fd5b63951e19ed60e01b8652600486fd5b50610f8636611a9b565b909192610f916122c5565b3415611071576001600160a01b031692831561052b5760608201610400610fbb6102d28386611b9f565b1161106057506080820135621e848081116110475750848080803460018060a01b03600154165af1610feb611d07565b5015611038577fa795d4377323e4c2d4c346b8050a7dd504c4043be8884c81b8d9690706c8388f916103496103579260405195348752886020880152608060408801526080870191611c02565b6379cacff160e01b8552600485fd5b637643390f60e11b8652600452621e8480602452604485fd5b856103938561038b60449487611b9f565b633b38932f60e11b8552600485fd5b5060403660031901126101d157611095611a13565b602435906001600160401b038211610d9857816004019060a0600319843603011261053a576110c26122c5565b34156111c9576001600160a01b03169182156111ba57606481016104006110e98285611b9f565b905011611197575060840135621e8480811161117e5750828080803460018060a01b03600154165af161111a611d07565b501561116f577fc6f891b65320c682b217616a62b51f218fee95d5f0ba83e758ef9ab4ee8e975c610357604051923484528560208501526080604085015285608085015260a0606085015260a0840190611c23565b6379cacff160e01b8352600483fd5b637643390f60e11b8452600452621e8480602452604483fd5b846111a460449285611b9f565b634fe7bc4760e11b835260045250610400602452fd5b63d92e233d60e01b8452600484fd5b633b38932f60e11b8452600484fd5b50346101d157806003193601126101d15760206040517f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b98152f35b50346101d157806003193601126101d157602060ff600080516020612a0d83398151915254166040519015158152f35b50346101d157806003193601126101d1576001546040516001600160a01b039091168152602090f35b50346101d157806003193601126101d1576002546040516001600160a01b039091168152602090f35b50346101d157806003193601126101d1577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036112ee5760206040516000805160206129ad8339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101d157611312611a13565b602435906001600160401b038211610d985736602383011215610d98578160040135908361133f83611b84565b9361134d6040519586611b4d565b83855260208501933660248284010111610d9857806024602093018637850101526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163081149081156114fb575b506114ec576113b0611dc1565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa8691816114b8575b506113f357634c9c8ce360e01b86526004859052602486fd5b93846000805160206129ad8339815191528796036114a65750823b15611494576000805160206129ad83398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115611479576102329382915190845af4611473611d07565b9161290b565b50505050346114855780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d6020116114e4575b816114d460209383611b4d565b810103126103ca575190386113da565b3d91506114c7565b63703e46dd60e11b8452600484fd5b6000805160206129ad833981519152546001600160a01b031614159050386113a3565b50346101d157806003193601126101d157611537611e62565b600080516020612a0d8339815191525460ff8116156115915760ff1916600080516020612a0d833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b5036600319016060811261053e576020136101d1576115bd611a44565b6044356001600160401b038111610d98576115dc903690600401611a6e565b6115e79291926125c9565b6115ef611e14565b6115f76122c5565b6001600160a01b03821691821561052b5761081194507fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f919081856001600160a01b03611642611cd7565b1661168b57611650926126ee565b935b6116626040519283923484611ced565b0390a26001600080516020612a2d83398151915255604051918291602083526020830190611b28565b61169492612605565b93611652565b50346101d15760403660031901126101d1576116b4611a44565b336001600160a01b038216036116d05761023290600435612529565b63334bd91960e11b8252600482fd5b50346101d15760403660031901126101d1576102326004356116ff611a44565b9061170c61022882611cb6565b61222e565b50346101d15760203660031901126101d1576020611730600435611cb6565b604051908152f35b50346101d157806003193601126101d1576003546040516001600160a01b039091168152602090f35b50346101d15761177036611a9b565b91909261177b6122c5565b6020830135801515810361184857611839576001600160a01b031692831561052b576117b56117ad6060850185611b9f565b905082611c93565b610400811161182157506080830135621e848081116110475750907fd34634f30f94a646fdf4ce7078f38fc5fa0d3f0b193658facea4e3e43330d9749161181b61180c604051938493604085526040850191611c02565b82810360208401523395611c23565b0390a380f35b634fe7bc4760e11b8652600452610400602452604485fd5b630cda5ff960e11b8552600485fd5b8580fd5b50346101d15760803660031901126101d157611866611a13565b602435611871611a2e565b91606435926001600160401b0384116103ce57836004019160a060031986360301126118485761189f6122c5565b8315610f6d576001600160a01b03169384156106d557606481016104006118c68286611b9f565b90501161193f575060840135621e8480811161104757507fc6f891b65320c682b217616a62b51f218fee95d5f0ba83e758ef9ab4ee8e975c918161190e856103579433612307565b60405194855260018060a01b031660208501526080604085015285608085015260a0606085015260a0840190611c23565b866111a460449286611b9f565b50346101d15760203660031901126101d157611966611a13565b61196e611dc1565b6001600160a01b0381169081156107b9576002546001600160a01b03166119af5761199890611f90565b506001600160601b0360a01b600254161760025580f35b630646e00b60e11b8352600483fd5b90503461053e57602036600319011261053e5760043563ffffffff60e01b8116809103610d985760209250637965db0b60e01b8114908115611a02575b5015158152f35b6301ffc9a760e01b149050386119fb565b600435906001600160a01b0382168203611a2957565b600080fd5b604435906001600160a01b0382168203611a2957565b602435906001600160a01b0382168203611a2957565b35906001600160a01b0382168203611a2957565b9181601f84011215611a29578235916001600160401b038311611a295760208381860195010111611a2957565b906060600319830112611a29576004356001600160a01b0381168103611a2957916024356001600160401b038111611a295781611ada91600401611a6e565b92909291604435906001600160401b038211611a295760a0908290036003190112611a295760040190565b60005b838110611b185750506000910152565b8181015183820152602001611b08565b90602091611b4181518092818552858086019101611b05565b601f01601f1916010190565b90601f801991011681019081106001600160401b03821117611b6e57604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b038111611b6e57601f01601f191660200190565b903590601e1981360301821215611a2957018035906001600160401b038211611a2957602001918136038313611a2957565b9035601e1982360301811215611a295701602081359101916001600160401b038211611a29578136038313611a2957565b908060209392818452848401376000828201840152601f01601f1916010190565b906001600160a01b03611c3583611a5a565b1681526020820135801515809103611a295760208201526001600160a01b03611c6060408401611a5a565b166040820152608080611c8a611c796060860186611bd1565b60a0606087015260a0860191611c02565b93013591015290565b91908201809211611ca057565b634e487b7160e01b600052601160045260246000fd5b6000526000805160206129ed83398151915260205260016040600020015490565b6004356001600160a01b0381168103611a295790565b604090611d04949281528160208201520191611c02565b90565b3d15611d32573d90611d1882611b84565b91611d266040519384611b4d565b82523d6000602084013e565b606090565b611d049190608090611d85906001600160a01b03611d5482611a5a565b1684526001600160a01b03611d6b60208301611a5a565b166020850152604081013560408501526060810190611bd1565b9190928160608201520191611c02565b9291611d049492611db3928552606060208601526060850191611c02565b916040818403910152611d37565b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1615611dfa57565b63e2517d3f60e01b60005233600452600060245260446000fd5b336000908152600080516020612a4d833981519152602052604090205460ff1615611e3b57565b63e2517d3f60e01b6000523360045260008051602061296d83398151915260245260446000fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1615611e9b57565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527f8e1abba0e730025cbab32adfc4f51c1ad3a74360c4b2cfb4780a6c5f316e0509602052604090205460ff1615611f0d57565b63e2517d3f60e01b600052336004527f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b960245260446000fd5b60008181526000805160206129ed8339815191526020908152604080832033845290915290205460ff1615611f785750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b03811660009081527f8e1abba0e730025cbab32adfc4f51c1ad3a74360c4b2cfb4780a6c5f316e0509602052604090205460ff1661204c576001600160a01b031660008181527f8e1abba0e730025cbab32adfc4f51c1ad3a74360c4b2cfb4780a6c5f316e050960205260408120805460ff191660011790553391907f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b99060008051602061298d8339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020612a4d833981519152602052604090205460ff1661204c576001600160a01b03166000818152600080516020612a4d83398151915260205260408120805460ff1916600117905533919060008051602061296d8339815191529060008051602061298d8339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1661204c576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff1916600117905533919060008051602061298d8339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1661204c576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a9060008051602061298d8339815191529080a4600190565b60008181526000805160206129ed833981519152602090815260408083206001600160a01b038616845290915290205460ff166122be5760008181526000805160206129ed833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff191660011790553392919060008051602061298d8339815191529080a4600190565b5050600090565b60ff600080516020612a0d83398151915254166122de57565b63d93c066560e01b60005260046000fd5b90816020910312611a2957518015158103611a295790565b600354600093926001600160a01b039081169291168203612411578261232f9130908461283e565b60025460405163095ea7b360e01b81526001600160a01b0390911660048201526024810183905260208160448187865af19081156124065784916123e7575b50156123c357506002546001600160a01b031690813b15610d9857829160248392604051948593849263b6b55f2560e01b845260048401525af1801561094c576123b6575050565b816123c091611b4d565b50565b60025463482b72c160e11b84526004919091526001600160a01b0316602452604482fd5b612400915060203d602011610de757610dd98183611b4d565b3861236e565b6040513d86823e3d90fd5b8354604051636c9b2a3f60e11b8152600481018490529295946001600160a01b0390911692602081602481875afa90811561094c578291612474575b5015612460575061245e939461283e565b565b631387a34960e01b81526004869052602490fd5b61248d915060203d602011610de757610dd98183611b4d565b3861244d565b6001600160a01b0381166000908152600080516020612a4d833981519152602052604090205460ff161561204c576001600160a01b03166000818152600080516020612a4d83398151915260205260408120805460ff1916905533919060008051602061296d833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b60008181526000805160206129ed833981519152602090815260408083206001600160a01b038616845290915290205460ff16156122be5760008181526000805160206129ed833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6002600080516020612a2d83398151915254146125f4576002600080516020612a2d83398151915255565b633ee5aeb560e01b60005260046000fd5b6040516319db301560e21b815292916004356001600160a01b038116929190839003611a29578461264d81949260009683946004850152604060248501526044840191611c02565b039134906001600160a01b03165af19081156126e25760009161266e575090565b903d8082843e61267e8184611b4d565b82019160208184031261053e578051906001600160401b038211610d98570182601f8201121561053e578051916126b483611b84565b936126c26040519586611b4d565b838552602084840101116101d1575090611d049160208085019101611b05565b6040513d6000823e3d90fd5b906004831015612736575b908260009392849360405192839283378101848152039134905af161271c611d07565b90156127255790565b632b3f6d1160e21b60005260046000fd5b9081356001600160e01b0319166319db301560e21b811461277557636481451b60e11b1461276457906126f9565b6379a2cd4b60e11b60005260046000fd5b63ed69977560e01b60005260046000fd5b60405163095ea7b360e01b602082019081526001600160a01b0390931660248201526000604480830182905282529283929183906127c5606482611b4d565b51925af16127d1611d07565b90156127f757805190816127e6575050600190565b602080611d049383010191016122ef565b50600190565b60405163a9059cbb60e01b60208201526001600160a01b0392909216602483015260448083019390935291815261245e91612839606483611b4d565b612882565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815261245e91612839608483611b4d565b906000602091828151910182855af1156126e2576000513d6128d457506001600160a01b0381163b155b6128b35750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b600114156128ac565b60ff600080516020612a6d8339815191525460401c16156128fa57565b631afcd79f60e31b60005260046000fd5b90612931575080511561292057805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580612963575b612942575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b1561293a56fe0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b738202dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f007bdc20c26beb8eedd348733c28a5c4c2f7f7f1183cba8898195258fcdca273bcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212204c1dd3ca6d65db092fb8b1573967e48498ff429f5c5e4f4521adcd2c1b42bd0a64736f6c634300081a003360a080604052346100ea57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b604051611a9390816100f082396080518181816109a70152610a780152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880610054565b63f92ee8a960e01b60005260046000fd5b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a714610f7957508063116191b614610f5257806316b12bb614610d8e57806321e093b114610d65578063248a9ca314610d3e5780632f2ff15d14610d0c57806336568abe14610cc75780633f4ba83a14610c455780634f1ef286146109fc57806352d1902d146109945780635b1125911461096b5780635c975abb1461093b5780638456cb59146108c657806385f438c11461089d57806391d1485414610844578063950837aa14610782578063a217fddf14610766578063a783c7891461072b578063ad3cb1cc146106b1578063b6b55f251461064a578063d547741f1461060f578063e63ab1e9146105d4578063f3fef3a31461053c578063f61ff82a146103b25763f8c8765e1461013457600080fd5b346103af5760803660031901126103af5761014d610fce565b610155610fe9565b6044356001600160a01b0381168082036103ab57606435926001600160a01b0384168085036103a757600080516020611a3e833981519152549560ff8760401c16159667ffffffffffffffff81168015908161039f575b6001149081610395575b15908161038c575b5061037d5767ffffffffffffffff198116600117600080516020611a3e8339815191525587610350575b506101f16118ae565b6001600160a01b031690811590811561033e575b8115610335575b811561032c575b5061031d57916102bb9493916102b59361022b6118ae565b6102336118ae565b61023b6118ae565b60016000805160206119de833981519152556102556118ae565b61025d6118ae565b6001600160601b0360a01b89541617885560018060a01b03166001600160601b0360a01b60015416176001556001600160601b0360a01b60025416176002556102a58361147c565b506102af81611358565b506113e4565b50611516565b506102c35780f35b68ff000000000000000019600080516020611a3e8339815191525416600080516020611a3e833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b63d92e233d60e01b8752600487fd5b90501538610213565b8415915061020c565b6001600160a01b038416159150610205565b68ffffffffffffffffff19166801000000000000000117600080516020611a3e83398151915255386101e8565b63f92ee8a960e01b8952600489fd5b905015386101be565b303b1591506101b6565b8991506101ac565b8680fd5b8480fd5b80fd5b50346103af57366003190160808112610538576020136103af576103d4610fe9565b60443560643567ffffffffffffffff8111610534576103f7903690600401611013565b9091610401611158565b610409611194565b6104116112f1565b600154855461042e9183916001600160a01b03908116911661131b565b84546001546001600160a01b03918216958792909116863b1561053057604051633ddf4d7d60e11b81529183918391906001600160a01b0361046e610fce565b16600484015260248301526001600160a01b0316604482018190526064820186905260a06084830152978183816104a960a482018b8d611095565b03925af1801561052557610510575b50506104f87f23b9573b29ff81f01c7aa1968188e1cb7d5858b08582e111fdaf386d9ef9bd8d936040519384938452604060208501526040840191611095565b0390a260016000805160206119de8339815191525580f35b8161051a91611041565b6103ab5784386104b8565b6040513d84823e3d90fd5b8280fd5b8380fd5b5080fd5b50346103af5760403660031901126103af57610556610fce565b7f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5602060243592610585611158565b61058d611194565b6105956112f1565b6001546105ae90859083906001600160a01b031661131b565b6040519384526001600160a01b031692a260016000805160206119de8339815191525580f35b50346103af57806003193601126103af5760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346103af5760403660031901126103af5761064660043561062f610fe9565b9061064161063c82611137565b6112a7565b6117a7565b5080f35b50346103af5760203660031901126103af576106646112f1565b6001546040516323b872dd60e01b602082015233602482015230604482015260043560648083019190915281526106ae916001600160a01b03166106a9608483611041565b611847565b80f35b50346103af57806003193601126103af5760408051916106d18284611041565b60058352640352e302e360dc1b6020840152815192839160208352815191826020850152815b838110610714575050828201840152601f01601f19168101030190f35b6020828201810151888301880152879550016106f7565b50346103af57806003193601126103af5760206040517f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb8152f35b50346103af57806003193601126103af57602090604051908152f35b50346103af5760203660031901126103af5761079c610fce565b6107a4611254565b6001600160a01b038116908115610835576002546107e591906107cf906001600160a01b0316611669565b506002546102a5906001600160a01b03166116ff565b50600254604080516001600160a01b0383168152602081018490527f33770ab682353c17917ad3e667f05905fc8dda00671ef1ed33bef9bc8db0323e9190a16001600160a01b0319161760025580f35b63d92e233d60e01b8352600483fd5b50346103af5760403660031901126103af576040610860610fe9565b91600435815260008051602061199e833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346103af57806003193601126103af57602060405160008051602061197e8339815191528152f35b50346103af57806003193601126103af576108df6111e2565b6108e76112f1565b600160ff196000805160206119be8339815191525416176000805160206119be833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346103af57806003193601126103af57602060ff6000805160206119be83398151915254166040519015158152f35b50346103af57806003193601126103af576002546040516001600160a01b039091168152602090f35b50346103af57806003193601126103af577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036109ed57602060405160008051602061195e8339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126103af57610a11610fce565b6024359067ffffffffffffffff821161053057366023830112156105305781600401359083610a3f83611079565b93610a4d6040519586611041565b8385526020850193366024828401011161053057806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610c22575b50610c1357610ab0611254565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181610bdf575b50610af357634c9c8ce360e01b86526004859052602486fd5b938460008051602061195e833981519152879603610bcd5750823b15610bbb5760008051602061195e83398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115610ba0576106469382915190845af43d15610b98573d91610b7c83611079565b92610b8a6040519485611041565b83523d85602085013e6118dc565b6060916118dc565b5050505034610bac5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011610c0b575b81610bfb60209383611041565b810103126103a757519038610ada565b3d9150610bee565b63703e46dd60e11b8452600484fd5b60008051602061195e833981519152546001600160a01b03161415905038610aa3565b50346103af57806003193601126103af57610c5e6111e2565b6000805160206119be8339815191525460ff811615610cb85760ff19166000805160206119be833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346103af5760403660031901126103af57610ce1610fe9565b336001600160a01b03821603610cfd57610646906004356117a7565b63334bd91960e11b8252600482fd5b50346103af5760403660031901126103af57610646600435610d2c610fe9565b90610d3961063c82611137565b6115d2565b50346103af5760203660031901126103af576020610d5d600435611137565b604051908152f35b50346103af57806003193601126103af576001546040516001600160a01b039091168152602090f35b50346103af5760803660031901126103af57610da8610fce565b906024359060443567ffffffffffffffff811161053857610dcd903690600401611013565b909260643567ffffffffffffffff81116105345760808160040191600319903603011261053457610dfc611158565b610e04611194565b610e0c6112f1565b6001548454610e299184916001600160a01b03908116911661131b565b83546001546001600160a01b03918216979116873b15610f4e5794610e918798610ea39383809a996040519687958694859363aa0c0fc160e01b8552600485015260018060a01b03169c8d60248501528b604485015260a060648501528c60a4850191611095565b828103600319016084840152896110b6565b03925af18015610f4357610f05575b506104f890610ef77f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff09596976040519586958652606060208701526060860191611095565b9083820360408501526110b6565b90610ef786610f397f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff097986104f895611041565b9695505090610eb2565b6040513d88823e3d90fd5b8580fd5b50346103af57806003193601126103af57546040516001600160a01b039091168152602090f35b9050346105385760203660031901126105385760043563ffffffff60e01b81168091036105305760209250637965db0b60e01b8114908115610fbd575b5015158152f35b6301ffc9a760e01b14905038610fb6565b600435906001600160a01b0382168203610fe457565b600080fd5b602435906001600160a01b0382168203610fe457565b35906001600160a01b0382168203610fe457565b9181601f84011215610fe45782359167ffffffffffffffff8311610fe45760208381860195010111610fe457565b90601f8019910116810190811067ffffffffffffffff82111761106357604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161106357601f01601f191660200190565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160a01b036110c782610fff565b1682526001600160a01b036110de60208301610fff565b166020830152604081013560408301526060810135601e1982360301811215610fe457016020813591019067ffffffffffffffff8111610fe4578036038213610fe4576080838160606111349601520191611095565b90565b60005260008051602061199e83398151915260205260016040600020015490565b60026000805160206119de83398151915254146111835760026000805160206119de83398151915255565b633ee5aeb560e01b60005260046000fd5b3360009081526000805160206119fe833981519152602052604090205460ff16156111bb57565b63e2517d3f60e01b6000523360045260008051602061197e83398151915260245260446000fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561121b57565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff161561128d57565b63e2517d3f60e01b60005233600452600060245260446000fd5b600081815260008051602061199e8339815191526020908152604080832033845290915290205460ff16156112d95750565b63e2517d3f60e01b6000523360045260245260446000fd5b60ff6000805160206119be833981519152541661130a57565b63d93c066560e01b60005260046000fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152611356916106a9606483611041565b565b6001600160a01b03811660009081526000805160206119fe833981519152602052604090205460ff166113de576001600160a01b031660008181526000805160206119fe83398151915260205260408120805460ff1916600117905533919060008051602061197e8339815191529060008051602061193e8339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020611a1e833981519152602052604090205460ff166113de576001600160a01b03166000818152600080516020611a1e83398151915260205260408120805460ff191660011790553391907f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb9060008051602061193e8339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff166113de576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff1916600117905533919060008051602061193e8339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff166113de576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a9060008051602061193e8339815191529080a4600190565b600081815260008051602061199e833981519152602090815260408083206001600160a01b038616845290915290205460ff1661166257600081815260008051602061199e833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff191660011790553392919060008051602061193e8339815191529080a4600190565b5050600090565b6001600160a01b03811660009081526000805160206119fe833981519152602052604090205460ff16156113de576001600160a01b031660008181526000805160206119fe83398151915260205260408120805460ff1916905533919060008051602061197e833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381166000908152600080516020611a1e833981519152602052604090205460ff16156113de576001600160a01b03166000818152600080516020611a1e83398151915260205260408120805460ff191690553391907f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b600081815260008051602061199e833981519152602090815260408083206001600160a01b038616845290915290205460ff161561166257600081815260008051602061199e833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b906000602091828151910182855af1156118a2576000513d61189957506001600160a01b0381163b155b6118785750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b60011415611871565b6040513d6000823e3d90fd5b60ff600080516020611a3e8339815191525460401c16156118cb57565b631afcd79f60e31b60005260046000fd5b9061190257508051156118f157805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611934575b611913575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b1561190b56fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00395f4e35a18c2b5e556b3b2ff855307e76c0b3cc1ca71e19a70e83037e08e7b37bdc20c26beb8eedd348733c28a5c4c2f7f7f1183cba8898195258fcdca273bcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220ed0cd71c9a6ddd4cad0a58b7cc7680ac50fe49f9c40f7e8c74df8bd4dee8536b64736f6c634300081a003360a080604052346100ea57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b604051611bb490816100f08239608051818181610bb60152610c870152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880610054565b63f92ee8a960e01b60005260046000fd5b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a71461105057508063106e629014610fc4578063116191b614610f9d57806321e093b114610f74578063248a9ca314610f4d5780632f2ff15d14610f1b57806336568abe14610ed65780633f4ba83a14610e545780634f1ef28614610c0b57806352d1902d14610ba35780635b11259114610b7a5780635c975abb14610b4a5780636f8728ad146109895780636f8b44b0146108d75780636fb9a7af1461075b5780638456cb59146106e657806385f438c1146106bd57806391d1485414610664578063950837aa146105a2578063a217fddf14610586578063a783c7891461055d578063ad3cb1cc146104e3578063b6b55f2514610462578063d547741f14610427578063d5abeb0114610409578063e63ab1e9146103ce5763f8c8765e1461014a57600080fd5b346103cb5760803660031901126103cb576101636110a5565b61016b6110c0565b6044356001600160a01b0381168082036103c757606435926001600160a01b0384168085036103c357600080516020611b5f833981519152549560ff8760401c16159667ffffffffffffffff8116801590816103bb575b60011490816103b1575b1590816103a8575b506103995767ffffffffffffffff198116600117600080516020611b5f833981519152558761036c575b506102076119af565b6001600160a01b031690811590811561035a575b8115610351575b8115610348575b5061033957916102d19493916102cb936102416119af565b6102496119af565b6102516119af565b6001600080516020611aff8339815191525561026b6119af565b6102736119af565b6001600160601b0360a01b89541617885560018060a01b03166001600160601b0360a01b60015416176001556001600160601b0360a01b60025416176002556102bb836115f6565b506102c5816114e4565b50611570565b50611690565b506000196003556102df5780f35b68ff000000000000000019600080516020611b5f8339815191525416600080516020611b5f833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b63d92e233d60e01b8752600487fd5b90501538610229565b84159150610222565b6001600160a01b03841615915061021b565b68ffffffffffffffffff19166801000000000000000117600080516020611b5f83398151915255386101fe565b63f92ee8a960e01b8952600489fd5b905015386101d4565b303b1591506101cc565b8991506101c2565b8680fd5b8480fd5b80fd5b50346103cb57806003193601126103cb5760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346103cb57806003193601126103cb576020600354604051908152f35b50346103cb5760403660031901126103cb5761045e6004356104476110c0565b906104596104548261116c565b61137e565b61190f565b5080f35b50346103cb5760203660031901126103cb5761047c6113c8565b60015481906001600160a01b0316803b156104e05781809160446040518094819363079cc67960e41b835233600484015260043560248401525af180156104d5576104c45750f35b816104ce916110ea565b6103cb5780f35b6040513d84823e3d90fd5b50fd5b50346103cb57806003193601126103cb57604080519161050382846110ea565b60058352640352e302e360dc1b6020840152815192839160208352815191826020850152815b838110610546575050828201840152601f01601f19168101030190f35b602082820181015188830188015287955001610529565b50346103cb57806003193601126103cb576020604051600080516020611a3f8339815191528152f35b50346103cb57806003193601126103cb57602090604051908152f35b50346103cb5760203660031901126103cb576105bc6110a5565b6105c461132b565b6001600160a01b0381169081156106555760025461060591906105ef906001600160a01b03166117e3565b506002546102bb906001600160a01b0316611879565b50600254604080516001600160a01b0383168152602081018490527f33770ab682353c17917ad3e667f05905fc8dda00671ef1ed33bef9bc8db0323e9190a16001600160a01b0319161760025580f35b63d92e233d60e01b8352600483fd5b50346103cb5760403660031901126103cb5760406106806110c0565b916004358152600080516020611abf833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346103cb57806003193601126103cb576020604051600080516020611a9f8339815191528152f35b50346103cb57806003193601126103cb576106ff6112b9565b6107076113c8565b600160ff19600080516020611adf833981519152541617600080516020611adf833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346103cb57366003190160a081126108d3576020136103cb5761077d6110c0565b60443560643567ffffffffffffffff81116108cf576107a090369060040161113e565b90916107aa61122f565b6107b261126b565b6107ba6113c8565b84546107d4906084359083906001600160a01b03166113f2565b84546001546001600160a01b03918216958792909116863b156108cb57604051633ddf4d7d60e11b81529183918391906001600160a01b036108146110a5565b16600484015260248301526001600160a01b0316604482018190526064820186905260a060848301529781838161084f60a482018b8d61118d565b03925af180156104d5576108b6575b505061089e7f23b9573b29ff81f01c7aa1968188e1cb7d5858b08582e111fdaf386d9ef9bd8d93604051938493845260406020850152604084019161118d565b0390a26001600080516020611aff8339815191525580f35b816108c0916110ea565b6103c757843861085e565b8280fd5b8380fd5b5080fd5b50346103cb5760203660031901126103cb57600080516020611a3f8339815191528152600080516020611abf8339815191526020908152604080832033600090815292529020546004359060ff16156109645760207f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c916109566113c8565b80600355604051908152a180f35b63e2517d3f60e01b825233600452600080516020611a3f833981519152602452604482fd5b50346103cb5760a03660031901126103cb576109a36110a5565b906024359060443567ffffffffffffffff81116108d3576109c890369060040161113e565b909260843567ffffffffffffffff81116108cf576080816004019160031990360301126108cf576109f761122f565b6109ff61126b565b610a076113c8565b8354610a21906064359084906001600160a01b03166113f2565b83546001546001600160a01b03918216979116873b15610b465794610a898798610a9b9383809a996040519687958694859363aa0c0fc160e01b8552600485015260018060a01b03169c8d60248501528b604485015260a060648501528c60a485019161118d565b828103600319016084840152896111ae565b03925af18015610b3b57610afd575b5061089e90610aef7f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff0959697604051958695865260606020870152606086019161118d565b9083820360408501526111ae565b90610aef86610b317f5272d2fee39bff41b2e763562526315906046373ce08a7bacf76c3080d731ff0979861089e956110ea565b9695505090610aaa565b6040513d88823e3d90fd5b8580fd5b50346103cb57806003193601126103cb57602060ff600080516020611adf83398151915254166040519015158152f35b50346103cb57806003193601126103cb576002546040516001600160a01b039091168152602090f35b50346103cb57806003193601126103cb577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610bfc576020604051600080516020611a7f8339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126103cb57610c206110a5565b6024359067ffffffffffffffff82116108cb57366023830112156108cb5781600401359083610c4e83611122565b93610c5c60405195866110ea565b838552602085019336602482840101116108cb57806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610e31575b50610e2257610cbf61132b565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181610dee575b50610d0257634c9c8ce360e01b86526004859052602486fd5b9384600080516020611a7f833981519152879603610ddc5750823b15610dca57600080516020611a7f83398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115610daf5761045e9382915190845af43d15610da7573d91610d8b83611122565b92610d9960405194856110ea565b83523d85602085013e6119dd565b6060916119dd565b5050505034610dbb5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011610e1a575b81610e0a602093836110ea565b810103126103c357519038610ce9565b3d9150610dfd565b63703e46dd60e11b8452600484fd5b600080516020611a7f833981519152546001600160a01b03161415905038610cb2565b50346103cb57806003193601126103cb57610e6d6112b9565b600080516020611adf8339815191525460ff811615610ec75760ff1916600080516020611adf833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346103cb5760403660031901126103cb57610ef06110c0565b336001600160a01b03821603610f0c5761045e9060043561190f565b63334bd91960e11b8252600482fd5b50346103cb5760403660031901126103cb5761045e600435610f3b6110c0565b90610f486104548261116c565b61174c565b50346103cb5760203660031901126103cb576020610f6c60043561116c565b604051908152f35b50346103cb57806003193601126103cb576001546040516001600160a01b039091168152602090f35b50346103cb57806003193601126103cb57546040516001600160a01b039091168152602090f35b50346103cb5760603660031901126103cb57610fde6110a5565b7f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d560206024359261100d61122f565b61101561126b565b61101d6113c8565b61102a60443585836113f2565b6040519384526001600160a01b031692a26001600080516020611aff8339815191525580f35b9050346108d35760203660031901126108d35760043563ffffffff60e01b81168091036108cb5760209250637965db0b60e01b8114908115611094575b5015158152f35b6301ffc9a760e01b1490503861108d565b600435906001600160a01b03821682036110bb57565b600080fd5b602435906001600160a01b03821682036110bb57565b35906001600160a01b03821682036110bb57565b90601f8019910116810190811067ffffffffffffffff82111761110c57604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161110c57601f01601f191660200190565b9181601f840112156110bb5782359167ffffffffffffffff83116110bb57602083818601950101116110bb57565b600052600080516020611abf83398151915260205260016040600020015490565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160a01b036111bf826110d6565b1682526001600160a01b036111d6602083016110d6565b166020830152604081013560408301526060810135601e19823603018112156110bb57016020813591019067ffffffffffffffff81116110bb5780360382136110bb5760808381606061122c960152019161118d565b90565b6002600080516020611aff833981519152541461125a576002600080516020611aff83398151915255565b633ee5aeb560e01b60005260046000fd5b336000908152600080516020611b1f833981519152602052604090205460ff161561129257565b63e2517d3f60e01b60005233600452600080516020611a9f83398151915260245260446000fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff16156112f257565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff161561136457565b63e2517d3f60e01b60005233600452600060245260446000fd5b6000818152600080516020611abf8339815191526020908152604080832033845290915290205460ff16156113b05750565b63e2517d3f60e01b6000523360045260245260446000fd5b60ff600080516020611adf83398151915254166113e157565b63d93c066560e01b60005260046000fd5b6001546040516318160ddd60e01b81526000949392916001600160a01b031690602081600481855afa908115610b3b5786916114b2575b50830180841161149e576003541061148f57803b156103c757849291836064926040519687958694630f22c5f760e11b865260018060a01b03166004860152602485015260448401525af180156104d557611482575050565b8161148c916110ea565b50565b63c30436e960e01b8552600485fd5b634e487b7160e01b86526011600452602486fd5b90506020813d6020116114dc575b816114cd602093836110ea565b81010312610b46575138611429565b3d91506114c0565b6001600160a01b0381166000908152600080516020611b1f833981519152602052604090205460ff1661156a576001600160a01b03166000818152600080516020611b1f83398151915260205260408120805460ff19166001179055339190600080516020611a9f83398151915290600080516020611a5f8339815191529080a4600190565b50600090565b6001600160a01b0381166000908152600080516020611b3f833981519152602052604090205460ff1661156a576001600160a01b03166000818152600080516020611b3f83398151915260205260408120805460ff19166001179055339190600080516020611a3f83398151915290600080516020611a5f8339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1661156a576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff19166001179055339190600080516020611a5f8339815191528180a4600190565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1661156a576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a90600080516020611a5f8339815191529080a4600190565b6000818152600080516020611abf833981519152602090815260408083206001600160a01b038616845290915290205460ff166117dc576000818152600080516020611abf833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff1916600117905533929190600080516020611a5f8339815191529080a4600190565b5050600090565b6001600160a01b0381166000908152600080516020611b1f833981519152602052604090205460ff161561156a576001600160a01b03166000818152600080516020611b1f83398151915260205260408120805460ff19169055339190600080516020611a9f833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381166000908152600080516020611b3f833981519152602052604090205460ff161561156a576001600160a01b03166000818152600080516020611b3f83398151915260205260408120805460ff19169055339190600080516020611a3f833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6000818152600080516020611abf833981519152602090815260408083206001600160a01b038616845290915290205460ff16156117dc576000818152600080516020611abf833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b60ff600080516020611b5f8339815191525460401c16156119cc57565b631afcd79f60e31b60005260046000fd5b90611a0357508051156119f257805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580611a35575b611a14575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15611a0c56fe0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00395f4e35a18c2b5e556b3b2ff855307e76c0b3cc1ca71e19a70e83037e08e7b37bdc20c26beb8eedd348733c28a5c4c2f7f7f1183cba8898195258fcdca273bcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212201f643599d9d95abbad7f4e3b9a54b28b24cf3e060e9c3d9981d412ec51a528c964736f6c634300081a003360e0346100d757601f610bd638819003918201601f19168301916001600160401b038311848410176100dc578084926060946040528339810103126100d757610047816100f2565b906040610056602083016100f2565b9101519160805260a05260c052604051610acf90816101078239608051818181608a0152610196015260a05181818160dd0152818161070a015281816107e5015281816108990152818161094901526109f9015260c051818181604f0152818161076701528181610846015281816108f5015281816109ac0152610a530152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036100d75756fe6080604052600436106101815760003560e01c8063589dd5da1461007757806385e1f4d0146100375763ced52b4003610181576100c7565b346100725760003660031901126100725760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b600080fd5b34610072576000366003190112610072577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b600091031261007257565b34610072576000366003190112610072576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761013e57604052565b61010c565b90601f8019910116810190811067ffffffffffffffff82111761013e57604052565b67ffffffffffffffff811161013e57601f01601f191660200190565b600080604051368282378036810183815203907f00000000000000000000000000000000000000000000000000000000000000005af43d1561023c573d906101c882610165565b916101d66040519384610143565b82523d6000602084013e5b156101f7576101ef366106c3565b602081519101f35b60405162461bcd60e51b815260206004820152601b60248201527f476174657761792064656c656761746563616c6c206661696c656400000000006044820152606490fd5b6060906101e1565b906004116100725790600490565b909291928360041161007257831161007257600401916003190190565b356001600160e01b031981169291906004821061028a575050565b6001600160e01b031960049290920360031b82901b16169150565b6001600160a01b0381160361007257565b81601f82011215610072578035906102cd82610165565b926102db6040519485610143565b8284526020838301011161007257816000926020809301838601378301015290565b3590610308826102a5565b565b91909160a081840312610072576040519061032482610122565b81938135610331816102a5565b835260208201358015158103610072576020840152610352604083016102fd565b604084015260608201359167ffffffffffffffff83116100725761037c60809392849383016102b6565b60608501520135910152565b9160608383031261007257823561039e816102a5565b92602081013567ffffffffffffffff811161007257836103bf9183016102b6565b92604082013567ffffffffffffffff8111610072576103de920161030a565b90565b919082519283825260005b84811061040d575050826000602080949584010152601f8019910116010190565b806020809284010151828286010152016103ec565b9060018060a01b03825116815260208201511515602082015260018060a01b036040830151166040820152608080610469606085015160a0606086015260a08501906103e1565b93015191015290565b9081526001600160a01b0391821660208201529116604082015260a0606082018190526103de9391926104a7918401906103e1565b916080818403910152610422565b6040513d6000823e3d90fd5b91909160a0818403126100725780356104d9816102a5565b9260208201359260408301356104ee816102a5565b92606081013567ffffffffffffffff8111610072578361050f9183016102b6565b92608082013567ffffffffffffffff8111610072576103de920161030a565b9081526001600160a01b0391821660208201529116604082015260608101919091526000608082015260e060a082018190526103de939192610572918401906103e1565b9160c0818403910152610422565b9081526001600160a01b039182166020820152918116604083015260608201929092529116608082015260e060a082018190526103de939192610572918401906103e1565b906080828203126100725781356105db816102a5565b9260208301359260408101356105f0816102a5565b92606082013567ffffffffffffffff8111610072576103de920161030a565b9081526001600160a01b0391821660208201529116604082015260608101919091526000608082015260c060a082018190526103de92910190610422565b9081526001600160a01b039182166020820152918116604083015260608201929092529116608082015260c060a082018190526103de92910190610422565b9190916040818403126100725780356106a4816102a5565b92602082013567ffffffffffffffff8111610072576103de920161030a565b6106e16106d1826000610244565b6001600160e01b0319929161026f565b16631c9ab25f60e21b81036107ba575061070081610708926000610252565b81019061068c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169190823b156100725760405163ced6e79360e01b815292600092849283918591839161078f919034906001600160a01b0316337f00000000000000000000000000000000000000000000000000000000000000006004870161060f565b03925af180156107b5576107a05750565b806107af600061030893610143565b806100bc565b6104b5565b630102614b60e41b810361086e57506107d8816107e0926000610252565b8101906105c5565b9290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b156100725760405163ced6e79360e01b815294600094869485938793859361078f9391926001600160a01b0391821692909116337f00000000000000000000000000000000000000000000000000000000000000006004880161064d565b63744b9b8b60e01b810361091d575061088c81610894926000610252565b810190610388565b9091907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156100725760405163ad82a62760e01b815293600093859384928692849261078f92909134906001600160a01b0316337f00000000000000000000000000000000000000000000000000000000000000006004880161052e565b631a13c76f60e31b81036109d4575061093b81610943926000610252565b8101906104c1565b909391927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b156100725760405163ad82a62760e01b815295600095879586948894869461078f94919390926001600160a01b0392831692909116337f000000000000000000000000000000000000000000000000000000000000000060048901610580565b6306fb33ad60e21b146109e5575b50565b61088c816109f4926000610252565b9091907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b15610072576040516375e7f8e360e11b8152936000938593849286928492610a7b9290916001600160a01b0316337f000000000000000000000000000000000000000000000000000000000000000060048701610472565b03925af180156107b557156109e257806107af60006103089361014356fea2646970667358221220aaf6392076304ab7496b470bf7926c119cc3618f0adc327d7f143786b22e658464736f6c634300081a0033a26469706673582212209be9968b69de0673f81d900bcfd4963fdf325efbf6c31578c08dbcd9a239d4ec64736f6c634300081a003360808060405234602f57600160ff19600c541617600c55600160ff19601f541617601f556165ab90816100358239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80631ed7831c146101275780632ade3880146101225780633693a15a1461011d5780633e5e3c23146101185780633f7286f41461011357806351976f441461010e57806366d9a9a01461010957806385226c8114610104578063916a17c6146100ff578063a0d788b7146100fa578063b0464fdc146100f5578063b5508aa9146100f0578063ba414fa6146100eb578063c986b404146100e6578063e20c9f71146100e1578063e2624fa4146100dc5763fa7626d4146100d757600080fd5b61142f565b61136b565b611229565b611116565b611017565b610f8a565b610ede565b610e7e565b610dd2565b610ccd565b610bc1565b610777565b6106e6565b610666565b6105e8565b61031f565b61017f565b600091031261013757565b600080fd5b602060408183019282815284518094520192019060005b8181106101605750505090565b82516001600160a01b0316845260209384019390920191600101610153565b346101375760003660031901126101375760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b8181106101f0576101ec856101e0818703826104c7565b6040519182918261013c565b0390f35b82546001600160a01b03168452602090930192600192830192016101c9565b60005b8381106102225750506000910152565b8181015183820152602001610212565b9060209161024b8151809281855285808601910161020f565b601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061028a57505050505090565b9091929394603f198282030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b85010194019260005b8281106102f45750505050506020806001929701930193019193929061027b565b9091929394602080610312600193605f198782030189528951610232565b97019501939291016102d3565b3461013757600036600319011261013757601e5461033c81611452565b9061034a60405192836104c7565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061039057604051806101ec8782610257565b600260206001926040516103a381610471565b848060a01b0386541681526103b9858701611469565b8382015281520192019201919061037b565b634e487b7160e01b600052603260045260246000fd5b6020548110156104005760206000526006602060002091020190600090565b6103cb565b8054821015610400576000526006602060002091020190600090565b90600182811c92168015610451575b602083101461043b57565b634e487b7160e01b600052602260045260246000fd5b91607f1691610430565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761048c57604052565b61045b565b60e081019081106001600160401b0382111761048c57604052565b60a081019081106001600160401b0382111761048c57604052565b90601f801991011681019081106001600160401b0382111761048c57604052565b90604051918260008254926104fc84610421565b808452936001811690811561056a5750600114610523575b50610521925003836104c7565b565b90506000929192526020600020906000915b81831061054e5750509060206105219282010138610514565b6020919350806001915483858901015201910190918492610535565b90506020925061052194915060ff191682840152151560051b82010138610514565b9591936105c760c09699989460ff966105d59460018060a01b03168a5260018060a01b031660208a015260e060408a015260e0890190610232565b908782036060890152610232565b966080860152151560a085015216910152565b34610137576020366003190112610137576004356020548110156101375761060f906103e1565b50805460018201546001600160a01b03918216929116906101ec90610636600282016104e8565b93610643600383016104e8565b91600560048201549101549260405196879660ff808760081c169616948861058c565b346101375760003660031901126101375760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b8181106106c7576101ec856101e0818703826104c7565b82546001600160a01b03168452602090930192600192830192016106b0565b346101375760003660031901126101375760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b818110610747576101ec856101e0818703826104c7565b82546001600160a01b0316845260209093019260019283019201610730565b6001600160a01b0381160361013757565b346101375760403660031901126101375760043561079481610766565b602435906107a182610766565b6000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b0382166004820152600081602481836000805160206165568339815191525af18015610a8557610aee575b506040516360f9bb1160e01b815260206004820152603960248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76322d636f72652f627560448201527f696c642f556e69737761705632466163746f72792e6a736f6e0000000000000060648201526000816084816000805160206165568339815191525afa908115610a85576108a4916000918291610ab3575b5060405180938192631fb2437d60e31b83526004830161152b565b03816000805160206165568339815191525afa8015610a8557610903926108f092600092610acd575b50604080516001600160a01b03909216602083015290926108fe91849190820190565b03601f1981018452836104c7565b612d93565b6040516360f9bb1160e01b815260206004820152603f60248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76322d7065726970686560448201527f72792f6275696c642f556e69737761705632526f7574657230322e6a736f6e0060648201529091906000816084816000805160206165568339815191525afa908115610a85576109b3916000918291610ab3575060405180938192631fb2437d60e31b83526004830161152b565b03816000805160206165568339815191525afa8015610a8557610a06926108f092600092610a8a575b50604080516001600160a01b03808816602083015290921690820152916108fe9083906060820190565b906000805160206165568339815191523b15610137576040516390c5013b60e01b8152600081600481836000805160206165568339815191525af18015610a8557610a6a575b50604080516001600160a01b03928316815292909116602083015290f35b80610a796000610a7f936104c7565b8061012c565b38610a4c565b6114c1565b6108fe919250610aac903d806000833e610aa481836104c7565b8101906114cd565b91906109dc565b610ac791503d8084833e610aa481836104c7565b38610889565b6108fe919250610ae7903d806000833e610aa481836104c7565b91906108cd565b80610a796000610afd936104c7565b386107f5565b906020808351928381520192019060005b818110610b215750505090565b82516001600160e01b031916845260209384019390920191600101610b14565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610b7457505050505090565b9091929394602080610bb2600193603f1986820301875289519083610ba28351604084526040840190610232565b9201519084818403910152610b03565b97019301930191939290610b65565b3461013757600036600319011261013757601b54610bde81611452565b90610bec60405192836104c7565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b838310610c3257604051806101ec8782610b41565b60026020600192604051610c4581610471565b610c4e866104e8565b8152610c5b85870161156b565b83820152815201920192019190610c1d565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610ca057505050505090565b9091929394602080610cbe600193603f198682030187528951610232565b97019301930191939290610c91565b3461013757600036600319011261013757601a54610cea81611452565b90610cf860405192836104c7565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310610d3d57604051806101ec8782610c6d565b600160208192610d4c856104e8565b815201920192019190610d28565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610d8d57505050505090565b9091929394602080610dc3600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610b03565b97019301930191939290610d7e565b3461013757600036600319011261013757601d54610def81611452565b90610dfd60405192836104c7565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b838310610e4357604051806101ec8782610d5a565b60026020600192604051610e5681610471565b848060a01b038654168152610e6c85870161156b565b83820152815201920192019190610e2e565b346101375760e036600319011261013757610edc600435610e9e81610766565b602435610eaa81610766565b604435610eb681610766565b606435610ec281610766565b60843591610ecf83610766565b60a4359360c4359561180a565b005b3461013757600036600319011261013757601c54610efb81611452565b90610f0960405192836104c7565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b838310610f4f57604051806101ec8782610d5a565b60026020600192604051610f6281610471565b848060a01b038654168152610f7885870161156b565b83820152815201920192019190610f3a565b3461013757600036600319011261013757601954610fa781611452565b90610fb560405192836104c7565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b838310610ffa57604051806101ec8782610c6d565b600160208192611009856104e8565b815201920192019190610fe5565b34610137576000366003190112610137576020611032611ae3565b6040519015158152f35b906110b39060018060a01b03835116815260018060a01b03602084015116602082015260c08061109061107e604087015160e0604087015260e0860190610232565b60608701518582036060870152610232565b946080810151608085015260a0810151151560a0850152015191019060ff169052565b90565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106110e957505050505090565b9091929394602080611107600193603f19868203018752895161103c565b970193019301919392906110da565b346101375760003660031901126101375760205461113381611452565b9061114160405192836104c7565b8082526020820160206000527fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb6000915b83831061118757604051806101ec87826110b6565b6006602060019260405161119a81610491565b855460a086901b869003166001600160a01b0390811682528587015416838201526111c7600287016104e8565b60408201526111d8600387016104e8565b60608201526004860154608082015261121b61121160058801546112086111ff8260ff1690565b151560a0860152565b60081c60ff1690565b60ff1660c0830152565b815201920192019190611172565b346101375760003660031901126101375760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b81811061128a576101ec856101e0818703826104c7565b82546001600160a01b0316845260209093019260019283019201611273565b6040519061052160e0836104c7565b60405190610521610160836104c7565b6001600160401b03811161048c57601f01601f191660200190565b81601f82011215610137578035906112fa826112c8565b9261130860405194856104c7565b8284526020838301011161013757816000926020809301838601378301015290565b8015150361013757565b60c435906105218261132a565b60ff81160361013757565b610104359061052182611341565b9060206110b392818152019061103c565b3461013757366003190161012081126101375760a01361013757604051611391816104ac565b60043561139d81610766565b81526024356113ab81610766565b60208201526044356113bc81610766565b60408201526064356113cd81610766565b60608201526084356113de81610766565b608082015260a4356001600160401b038111610137576101ec916114096114239236906004016112e3565b611411611334565b60e4359161141d61134c565b9361202b565b6040519182918261135a565b3461013757600036600319011261013757602060ff601f54166040519015158152f35b6001600160401b03811161048c5760051b60200190565b90815461147581611452565b9261148360405194856104c7565b818452602084019060005260206000206000915b8383106114a45750505050565b6001602081926114b3856104e8565b815201920192019190611497565b6040513d6000823e3d90fd5b602081830312610137578051906001600160401b038211610137570181601f820112156101375760208151910190611504816112c8565b9261151260405194856104c7565b81845281830111610137576110b391602084019061020f565b61153d60409283835283830190610232565b90602081830391015260148152730b995d9b4b989e5d1958dbd9194b9bd89a9958dd60621b60208201520190565b6040518154808252909291839061158b6020830191600052602060002090565b926000905b8060078301106116d3576105219454918181106116b4575b818110611695575b818110611676575b818110611657575b818110611638575b818110611619575b8181106115fb575b106115e6575b5003836104c7565b6001600160e01b0319168152602001386115de565b602083811b6001600160e01b031916855290936001910193016115d8565b604083901b6001600160e01b03191684529260019060200193016115d0565b606083901b6001600160e01b03191684529260019060200193016115c8565b608083901b6001600160e01b03191684529260019060200193016115c0565b60a083901b6001600160e01b03191684529260019060200193016115b8565b60c083901b6001600160e01b03191684529260019060200193016115b0565b6001600160e01b031960e084901b1684529260019060200193016115a8565b91600891935061010060019161178287546116f9838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b019401920185929391611590565b519061052182610766565b9081602091031261013757516110b381610766565b9081602091031261013757516110b38161132a565b634e487b7160e01b600052601160045260246000fd5b9061038482018092116117ea57565b6117c5565b90816060910312610137578051916040602083015192015190565b9291909493946000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b0387166004820152600081602481836000805160206165568339815191525af18015610a8557611abf575b506040516364e329cb60e11b81526001600160a01b0383811660048301528481166024830152909160209183916044918391600091165af18015610a8557611a92575b5060405163095ea7b360e01b81526001600160a01b0384166004820152602481018590526020818060448101038160006001600160a01b0387165af18015610a8557611a75575b5060405163095ea7b360e01b81526001600160a01b038416600482015260248101879052906020828060448101038160006001600160a01b0388165af18015610a85576060966000936119aa92611a48575b5061194a426117db565b60405162e8e33760e81b81526001600160a01b03948516600482015295841660248701526044860197909752606485019890985260006084850181905260a4850152961660c483015260e482019390935293849283918290610104820190565b03926001600160a01b03165af18015610a8557611a19575b506000805160206165568339815191523b15610137576040516390c5013b60e01b8152600081600481836000805160206165568339815191525af18015610a8557611a0a5750565b80610a796000610521936104c7565b611a3a9060603d606011611a41575b611a3281836104c7565b8101906117ef565b50506119c2565b503d611a28565b611a699060203d602011611a6e575b611a6181836104c7565b8101906117b0565b611940565b503d611a57565b611a8d9060203d602011611a6e57611a6181836104c7565b6118ee565b611ab39060203d602011611ab8575b611aab81836104c7565b81019061179b565b6118a7565b503d611aa1565b80610a796000611ace936104c7565b38611864565b90816020910312610137575190565b60085460ff168015611af25790565b50604051630667f9d760e41b8152600080516020616556833981519152600482018190526519985a5b195960d21b6024830152602090829060449082905afa908115610a8557600091611b46575b50151590565b611b68915060203d602011611b6e575b611b6081836104c7565b810190611ad4565b38611b40565b503d611b56565b60405190611b8282610491565b600060c083828152826020820152606060408201526060808201528260808201528260a08201520152565b60405190611bba82610491565b600060c08360608152606060208201528260408201528260608201528260808201528260a08201520152565b90611bf96020928281519485920161020f565b0190565b60031115611c0757565b634e487b7160e01b600052602160045260246000fd5b6003821015611c075752565b959297969391611c5790611c4960ff936101008a526101008a0190610232565b9088820360208a0152610232565b9716604086015260608501526003831015611c07576080840192909252600160a08401526001600160a01b0391821660c08401521660e090910152565b15611c9b57565b60405162461bcd60e51b815260206004820152602260248201527f476174657761792045564d206e6f742073657420666f7220746869732063686160448201526134b760f11b6064820152608490fd5b9081602091031261013757516110b381611341565b60ff16604d81116117ea57600a0a90565b90816402540be40002916402540be4008304036117ea57565b90816064029160648304036117ea57565b9081620f42400291620f42408304036117ea57565b601f8211611d5d57505050565b6000526020600020906020601f840160051c83019310611d98575b601f0160051c01905b818110611d8c575050565b60008155600101611d81565b9091508190611d78565b91909182516001600160401b03811161048c57611dc981611dc38454610421565b84611d50565b6020601f8211600114611e0a578190611dfb939495600092611dff575b50508160011b916000199060031b1c19161790565b9055565b015190503880611de6565b601f19821690611e1f84600052602060002090565b9160005b818110611e5b57509583600195969710611e42575b505050811b019055565b015160001960f88460031b161c19169055388080611e38565b9192602060018192868b015181550194019201611e23565b6020546801000000000000000081101561048c57806001611e9992016020556020610405565b61201557815181546001600160a01b039182166001600160a01b031991821617835560208401516001840180549190931691161790556040820151805160028301916001600160401b03821161048c57611efd82611ef78554610421565b85611d50565b602090601f8311600114611f9a5793611f8593611f3b8460c0956005956105219a99600092611dff5750508160011b916000199060031b1c19161790565b90555b611f4f606086015160038301611da2565b608085015160048201550192611f7d611f6b60a0830151151590565b859060ff801983541691151516179055565b015160ff1690565b61ff0082549160081b169061ff001916179055565b90601f19831691611fb085600052602060002090565b9260005b818110611ffd575084600594610521999894611f85989460c09860019510611fe4575b505050811b019055611f3e565b015160001960f88460031b161c19169055388080611fd7565b92936020600181928786015181550195019301611fb4565b634e487b7160e01b600052600060045260246000fd5b9391929092612038611b75565b50612041611bad565b60405163348051d760e11b8152600481018490529092906000816024816000805160206165568339815191525afa908115610a85576120c3916120d191600091612d78575b506040516602d2921969918160cd1b60208201529283916120bd6120ad602785018c611be6565b6301037b7160e51b815260040190565b90611be6565b03601f1981018352826104c7565b83526040516405a524332360dc1b60208201526120f5816120c36025820189611be6565b602084019081528215612d715760015b612113604086019182611c1d565b8451915190519161212383611bfd565b8851600490602090612145906001600160a01b03165b6001600160a01b031690565b60405163bb88b76960e01b815292839182905afa8015610a8557600491600091612d52575b508a51602090612182906001600160a01b0316612139565b604051633c12ad4d60e21b815293849182905afa918215610a8557600092612d31575b50604051946118e592838701938785106001600160401b0386111761048c5787966121e2968a938e93614c718b396001600160a01b031696611c29565b03906000f0948515610a85576001600160a01b03909516606084019081529460808401966000885283600014612c9857805160049060209061222c906001600160a01b0316612139565b604051630f39296f60e21b815292839182905afa908115610a8557600091612c79575b506000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03919091166004820152600081602481836000805160206165568339815191525af18015610a8557612c64575b5080516004906020906122c1906001600160a01b0316612139565b60405163bb88b76960e01b815292839182905afa908115610a8557600091612c45575b5087516001600160a01b03918216916122fd9116612139565b90803b15610137576040516377140add60e11b8152600481018690526001600160a01b039290921660248301526000908290604490829084905af18015610a8557612c30575b50805160049060209061235e906001600160a01b0316612139565b60405163bb88b76960e01b815292839182905afa908115610a8557600091612c11575b506001600160a01b0316803b156101375760405163a7cb050760e01b815260048101859052633b9aca006024820152906000908290604490829084905af18015610a8557612bfc575b506000805160206165568339815191523b15610137576040516390c5013b60e01b8152600081600481836000805160206165568339815191525af18015610a8557612be7575b505b8651612426906001600160a01b0316612139565b6060820180519091906001600160a01b031660405163313ce56760e01b8152602081600481865afa908115610a85576124709161246b91600091612b84575b50611d00565b611d11565b823b15610137576040516340c10f1960e01b81526001600160a01b039290921660048301526024820152906000908290604490829084905af18015610a8557612bd2575b5087516124c9906001600160a01b0316612139565b82516004906020906124e3906001600160a01b0316612139565b604051630f39296f60e21b815292839182905afa908115610a8557600091612bb3575b508951600490602090612521906001600160a01b0316612139565b60405163313ce56760e01b815292839182905afa908115610a85576125519161246b91600091612b845750611d00565b823b15610137576040516340c10f1960e01b81526001600160a01b039290921660048301526024820152906000908290604490829084905af18015610a8557612b6f575b5080516001600160a01b03166000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03919091166004820152600081602481836000805160206165568339815191525af18015610a8557612b5a575b5080516001600160a01b03166000805160206165568339815191523b156101375760405163c88a5e6d60e01b81526001600160a01b0391909116600482015269d3c21bcecceda10000006024820152600081604481836000805160206165568339815191525af18015610a8557612b45575b508151600490602090612684906001600160a01b0316612139565b604051620b9ea360e11b815292839182905afa908115610a8557600091612b26575b506001600160a01b0316803b15610137576000683635c9adc5dea0000091600460405180948193630d0e30db60e41b83525af18015610a8557612b11575b506126f66126f188611d00565b611d2a565b60a0870190815260c087019068056bc75e2d63100000825260046020612725612139875160018060a01b031690565b604051630b4a282f60e11b815292839182905afa8015610a8557600491600091612af2575b508551602090612762906001600160a01b0316612139565b6040516359d0f71360e01b815293849182905afa8015610a85578c600493600092612ac9575b505161279c906001600160a01b0316612139565b87516020906127b3906001600160a01b0316612139565b604051620b9ea360e11b815295869182905afa928315610a85576127fa94600094612aa8575b5087516001600160a01b03169186519388519560018060a01b03169261180a565b8951600490612811906001600160a01b0316612139565b855190949060209061282b906001600160a01b0316612139565b604051620b9ea360e11b815293849182905afa908115610a8557600492600092612a83575b50516001600160a01b03165b92519351865190969060209061287a906001600160a01b0316612139565b604051632daa48c160e11b815294859182905afa908115610a8557600493600092612a59575b50516020906128b7906001600160a01b0316612139565b60405163342a30c360e01b815294859182905afa908115610a8557612958976129539661294395600094612a32575b5061291961293394956129096128fa6112a9565b6001600160a01b03909c168c52565b6001600160a01b031660208b0152565b604089015260608801526001600160a01b03166080870152565b6001600160a01b031660a0850152565b6001600160a01b031660c0830152565b613394565b6000805160206165568339815191523b15610137576040516390c5013b60e01b815293600085600481836000805160206165568339815191525af18015610a85576129cf6129c1612139612a149a611211996129fc95612a1d575b50516001600160a01b031690565b99516001600160a01b031690565b9151916129ec6129dd6112a9565b6001600160a01b03909b168b52565b6001600160a01b031660208a0152565b604088015260608701526080860152151560a0850152565b6110b381611e73565b80610a796000612a2c936104c7565b386129b3565b6129339450612a526129199160203d602011611ab857611aab81836104c7565b94506128e6565b6020919250612139612a7a6128b792843d8611611ab857611aab81836104c7565b939250506128a0565b61285c919250612aa19060203d602011611ab857611aab81836104c7565b9190612850565b612ac291945060203d602011611ab857611aab81836104c7565b92386127d9565b61279c919250612aea6121399160203d602011611ab857611aab81836104c7565b929150612788565b612b0b915060203d602011611ab857611aab81836104c7565b3861274a565b80610a796000612b20936104c7565b386126e4565b612b3f915060203d602011611ab857611aab81836104c7565b386126a6565b80610a796000612b54936104c7565b38612669565b80610a796000612b69936104c7565b386125f7565b80610a796000612b7e936104c7565b38612595565b612ba6915060203d602011612bac575b612b9e81836104c7565b810190611ceb565b38612465565b503d612b94565b612bcc915060203d602011611ab857611aab81836104c7565b38612506565b80610a796000612be1936104c7565b386124b4565b80610a796000612bf6936104c7565b38612410565b80610a796000612c0b936104c7565b386123ca565b612c2a915060203d602011611ab857611aab81836104c7565b38612381565b80610a796000612c3f936104c7565b38612343565b612c5e915060203d602011611ab857611aab81836104c7565b386122e4565b80610a796000612c73936104c7565b386122a6565b612c92915060203d602011611ab857611aab81836104c7565b3861224f565b6020810151612caf906001600160a01b0316612139565b604051621ac49360e31b81526004810185905290602090829060249082905afa8015610a8557612cf291600091612d12575b506001600160a01b03161515611c94565b612d0d612d00838584612e19565b6001600160a01b03168952565b612412565b612d2b915060203d602011611ab857611aab81836104c7565b38612ce1565b612d4b91925060203d602011611ab857611aab81836104c7565b90386121a5565b612d6b915060203d602011611ab857611aab81836104c7565b3861216a565b6002612105565b612d8d91503d806000833e610aa481836104c7565b38612086565b90612dd860209160405192839181612db4818501978881519384920161020f565b8301612dc88251809385808501910161020f565b010103601f1981018352826104c7565b51906000f090811561013757565b9091612dfd6110b393604084526040840190610232565b916020818403910152610232565b604d81116117ea57600a0a90565b9160405190610b5990818301908382106001600160401b0383111761048c5780612e499285946141188639612de6565b03906000f08015610a855760405163313ce56760e01b81526001600160a01b03919091169290602081600481875afa8015610a855760ff91600091613358575b506060830180519092909116906001600160a01b03166000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03919091166004820152600081602481836000805160206165568339815191525af18015610a8557613343575b50602083018051909390612f11906001600160a01b0316612139565b60405163ad8414bf60e01b81526004810187905290602090829060249082905afa908115610a8557612f7a91602091600091613326575b5060405163095ea7b360e01b81526001600160a01b039091166004820152600019602482015291829081906044820190565b038160008b5af18015610a8557613309575b508351612fa1906001600160a01b0316612139565b60405163ad8414bf60e01b8152600481018790529190602090839060249082905afa918215610a85576000926132e8575b50612fe4612fdf84612e0b565b611d3b565b91873b15610137576040516340c10f1960e01b81526001600160a01b039190911660048201526024810192909252600082604481838b5af1918215610a85576080926132d3575b500180519092906001600160a01b0316613047612fdf84612e0b565b90873b15610137576040516340c10f1960e01b81526001600160a01b039190911660048201526024810191909152600081604481838b5af18015610a85576130a992612fdf926130a392612a1d5750516001600160a01b031690565b92612e0b565b90853b15610137576040516340c10f1960e01b81526001600160a01b03919091166004820152602481019190915260008160448183895af18015610a85576132be575b506000805160206165568339815191523b15610137576040516390c5013b60e01b815290600082600481836000805160206165568339815191525af1918215610a855761314592612a1d5750516001600160a01b031690565b916000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03939093166004840152600083602481836000805160206165568339815191525af1928315610a85576121396020936131b8926131d896612a1d5750516001600160a01b031690565b604051808095819463ad8414bf60e01b8352600483019190602083019252565b03915afa908115610a855760009161329f575b506001600160a01b0316803b1561013757604051634d8c928d60e11b81526001600160a01b0383166004820152906000908290602490829084905af18015610a855761328a575b506000805160206165568339815191523b15610137576040516390c5013b60e01b8152600081600481836000805160206165568339815191525af18015610a855761327b575090565b80610a7960006110b3936104c7565b80610a796000613299936104c7565b38613232565b6132b8915060203d602011611ab857611aab81836104c7565b386131eb565b80610a7960006132cd936104c7565b386130ec565b80610a7960006132e2936104c7565b3861302b565b61330291925060203d602011611ab857611aab81836104c7565b9038612fd2565b6133219060203d602011611a6e57611a6181836104c7565b612f8c565b61333d9150823d8411611ab857611aab81836104c7565b38612f48565b80610a796000613352936104c7565b38612ef5565b613371915060203d602011612bac57612b9e81836104c7565b38612e89565b1561337e57565b634e487b7160e01b600052600160045260246000fd5b60c0810180519091906001600160a01b03166000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03919091166004820152600081602481836000805160206165568339815191525af18015610a855761365e575b50805161341390612139906001600160a01b031681565b60a08201805160408085018051915163095ea7b360e01b81526001600160a01b0390931660048401526024830191909152949192602090829060449082906000905af18015610a8557613641575b5060208301805190929061347f90612139906001600160a01b031681565b815160608601805160405163095ea7b360e01b81526001600160a01b03909316600484015260248301529691602090829060449082906000905af18015610a8557613624575b50845184516001600160a01b0391821691168082116135f6575b505060808501516001600160a01b031685516001600160a01b031685516001600160a01b03169061350f926136cb565b956135246001600160a01b0388161515613377565b82516001600160a01b031686519092906001600160a01b031686519092906001600160a01b03169151905186519092906001600160a01b03169361356795613834565b93516001600160a01b031692516001600160a01b031690516001600160a01b031691516001600160a01b03169261359c6112a9565b6001600160a01b0390961686526001600160a01b031660208601526001600160a01b031660408501526001600160a01b031660608401526001600160a01b0316608083015260a0820152600060c08201526119c290613c54565b6001600160a01b039091168552613615905b6001600160a01b03168652565b855181518752815238806134df565b61363c9060203d602011611a6e57611a6181836104c7565b6134c5565b6136599060203d602011611a6e57611a6181836104c7565b613461565b80610a79600061366d936104c7565b386133fc565b1561367a57565b60405162461bcd60e51b815260206004820152602360248201527f556e6973776170563353657475704c69623a20506f6f6c206e6f7420637265616044820152621d195960ea1b6064820152608490fd5b60405163a167129560e01b81526001600160a01b0383811660048301528481166024830152610bb8604483015290949391166020856064816000855af1928315610a8557613758956020946137dc575b50604051630b4c774160e11b81526001600160a01b03918216600482015292166024830152610bb860448301529093849190829081906064820190565b03915afa918215610a85576000926137bb575b506001600160a01b038216613781811515613673565b803b156101375760405163f637731d60e01b8152600160601b6004820152906000908290602490829084905af18015610a8557611a0a5750565b6137d591925060203d602011611ab857611aab81836104c7565b903861376b565b6137f290853d8711611ab857611aab81836104c7565b61371b565b51906001600160801b038216820361013757565b919082608091031261013757815191613826602082016137f7565b916060604083015192015190565b916138bd6000966080966139699661387961384e426117db565b9561386961385a6112b8565b6001600160a01b039099168952565b6001600160a01b03166020880152565b610bb86040870152620d89b3196060870152620d89b4868a015260a086015260c085015260e0840188905261010084018890526001600160a01b0316610120840152565b610140820190815260408051634418b22b60e11b815283516001600160a01b0390811660048301526020850151811660248301529184015162ffffff1660448201526060840151600290810b60648301526080850151900b608482015260a084015160a482015260c084015160c482015260e084015160e48201526101008401516101048201526101209093015116610124830152516101448201529384928391908290610164820190565b03926001600160a01b03165af1908115610a8557600091613988575090565b6139aa915060803d6080116139b0575b6139a281836104c7565b81019061380b565b50505090565b503d613998565b6040519061018082018281106001600160401b0382111761048c576040526000610160838281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015282610120820152826101408201520152565b90816020910312610137576110b3906137f7565b15613a3c57565b60405162461bcd60e51b8152602060048201526015602482015274506f6f6c20686173206e6f206c697175696469747960581b6044820152606490fd5b51908160020b820361013757565b519061ffff8216820361013757565b908160e0910312610137578051613aac81610766565b91613ab960208301613a79565b91613ac660408201613a87565b91613ad360608301613a87565b91613ae060808201613a87565b9160c060a0830151613af181611341565b9201516110b38161132a565b15613b0457565b60405162461bcd60e51b81526020600482015260116024820152700556e657870656374656420746f6b656e3607c1b6044820152606490fd5b15613b4457565b60405162461bcd60e51b8152602060048201526011602482015270556e657870656374656420746f6b656e3160781b6044820152606490fd5b15613b8457565b60405162461bcd60e51b815260206004820152601960248201527f506f736974696f6e20686173206e6f206c6971756964697479000000000000006044820152606490fd5b15613bd057565b60405162461bcd60e51b815260206004820152601860248201527f506f736974696f6e20746f6b656e73206d69736d6174636800000000000000006044820152606490fd5b15613c1c57565b60405162461bcd60e51b815260206004820152601060248201526f2ab732bc3832b1ba32b21037bbb732b960811b6044820152606490fd5b90613c5d6139b7565b8251909290613c74906001600160a01b0316612139565b6060820151909190613c8e906001600160a01b0316612139565b604051630d34328160e11b815290926001600160a01b03169190602081600481865afa8015610a8557613ce36001600160801b0391613ceb93600091613fc4575b506001600160801b03166060890181905290565b161515613a35565b604051633850c7bd60e01b815260e081600481865afa908115610a8557613d2591600091600091613f88575b5060020b6020880152613608565b604051630dfe168160e01b815291602083600481845afa908115610a8557600493600092613f66575b506001600160a01b03909116608087019081529060209060405163d21220a760e01b815294859182905afa928315610a8557600093613f45575b506001600160a01b0392831660a08701908152815160208401519194613db2928116911614613afd565b82516040830151613dd0916001600160a01b03918216911614613b3d565b60a08201938451613de19082614003565b6001600160801b031660c08c019081526101008c01969460e08d0194919390928d6101400190613e13919060020b9052565b60020b6101208d01526001600160a01b03908116875216825251613e41906001600160801b03161515613b7d565b519051613e9195602094613e6e936001600160a01b039384169316929092149182613f18575b5050613bc9565b84519060405180809681946331a9108f60e11b8352600483019190602083019252565b03916001600160a01b03165afa8015610a85576121396080613ed0613edf93613ef096600091613ef9575b506001600160a01b031660408a0181905290565b9301516001600160a01b031690565b6001600160a01b0390911614613c15565b51610160830152565b613f12915060203d602011611ab857611aab81836104c7565b38613ebc565b5190516001600160a01b039182169250613f329116612139565b6001600160a01b03909116143880613e67565b613f5f91935060203d602011611ab857611aab81836104c7565b9138613d88565b6020919250613f8190823d8411611ab857611aab81836104c7565b9190613d4e565b6136089250613faf915060e03d60e011613fbd575b613fa781836104c7565b810190613a96565b505050505091909190613d17565b503d613f9d565b613fe6915060203d602011613fec575b613fde81836104c7565b810190613a21565b38613ccf565b503d613fd4565b519062ffffff8216820361013757565b60405163133f757160e31b8152600481019290925261018090829060249082906001600160a01b03165afa908115610a8557600091829183918491859161404d575b509091929394565b949350505050610180823d821161410f575b8161406d61018093836104c7565b8101031261410c5781516bffffffffffffffffffffffff81160361410c575061409860208201611790565b506140a560408201611790565b906140b260608201611790565b916140bf60808301613ff3565b506140cc60a08301613a79565b916140d960c08201613a79565b916141016101606140ec60e085016137f7565b936140fa61014082016137f7565b50016137f7565b509392919038614045565b80fd5b3d915061405f56fe60806040523461032457610b598038038061001981610329565b9283398101906040818303126103245780516001600160401b038111610324578261004591830161034e565b60208201519092906001600160401b03811161032457610065920161034e565b81516001600160401b03811161022f57600354600181811c9116801561031a575b602082101461020f57601f81116102b5575b50602092601f82116001146102505792819293600092610245575b50508160011b916000199060031b1c1916176003555b80516001600160401b03811161022f57600454600181811c91168015610225575b602082101461020f57601f81116101aa575b50602091601f82116001146101465791819260009261013b575b50508160011b916000199060031b1c1916176004555b60405161079f90816103ba8239f35b015190503880610116565b601f198216926004600052806000209160005b85811061019257508360019510610179575b505050811b0160045561012c565b015160001960f88460031b161c1916905538808061016b565b91926020600181928685015181550194019201610159565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c81019160208410610205575b601f0160051c01905b8181106101f957506100fc565b600081556001016101ec565b90915081906101e3565b634e487b7160e01b600052602260045260246000fd5b90607f16906100ea565b634e487b7160e01b600052604160045260246000fd5b0151905038806100b3565b601f198216936003600052806000209160005b86811061029d5750836001959610610284575b505050811b016003556100c9565b015160001960f88460031b161c19169055388080610276565b91926020600181928685015181550194019201610263565b60036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c81019160208410610310575b601f0160051c01905b8181106103045750610098565b600081556001016102f7565b90915081906102ee565b90607f1690610086565b600080fd5b6040519190601f01601f191682016001600160401b0381118382101761022f57604052565b81601f82011215610324578051906001600160401b03821161022f5761037d601f8301601f1916602001610329565b92828452602083830101116103245760005b8281106103a457505060206000918301015290565b8060208092840101518282870101520161038f56fe608080604052600436101561001357600080fd5b60003560e01c90816306fdde031461058857508063095ea7b31461050257806318160ddd146104e457806323b872dd146103f7578063313ce567146103db57806340c10f191461032f57806370a08231146102f557806395d89b41146101d45780639dc29fac1461011f578063a9059cbb146100ee5763dd62ed3e1461009857600080fd5b346100e95760403660031901126100e9576100b16106a4565b6100b96106ba565b6001600160a01b039182166000908152600160209081526040808320949093168252928352819020549051908152f35b600080fd5b346100e95760403660031901126100e95761011461010a6106a4565b60243590336106d0565b602060405160018152f35b346100e95760403660031901126100e9576101386106a4565b6001600160a01b031660243581156101be576000908282528160205260408220548181106101a65760208285937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93869787528684520360408620558060025403600255604051908152a380f35b60649363391434e360e21b8452600452602452604452fd5b634b637e8f60e11b600052600060045260246000fd5b346100e95760003660031901126100e95760405160006004548060011c906001811680156102eb575b6020831081146102d7578285529081156102bb5750600114610264575b50819003601f01601f191681019067ffffffffffffffff82118183101761024e5761024a8291826040528261065b565b0390f35b634e487b7160e01b600052604160045260246000fd5b905060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b6000905b8282106102a55750602091508201018261021a565b6001816020925483858801015201910190610290565b90506020925060ff191682840152151560051b8201018261021a565b634e487b7160e01b84526022600452602484fd5b91607f16916101fd565b346100e95760203660031901126100e9576001600160a01b036103166106a4565b1660005260006020526020604060002054604051908152f35b346100e95760403660031901126100e9576103486106a4565b602435906001600160a01b031680156103c557600254918083018093116103af576020926002557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600093849284845283825260408420818154019055604051908152a380f35b634e487b7160e01b600052601160045260246000fd5b63ec442f0560e01b600052600060045260246000fd5b346100e95760003660031901126100e957602060405160128152f35b346100e95760603660031901126100e9576104106106a4565b6104186106ba565b6001600160a01b0382166000818152600160209081526040808320338452909152902054909260443592916000198110610458575b5061011493506106d0565b8381106104c75784156104b157331561049b57610114946000526001602052604060002060018060a01b033316600052602052836040600020910390558461044d565b634a1406b160e11b600052600060045260246000fd5b63e602df0560e01b600052600060045260246000fd5b8390637dc7a0d960e11b6000523360045260245260445260646000fd5b346100e95760003660031901126100e9576020600254604051908152f35b346100e95760403660031901126100e95761051b6106a4565b6024359033156104b1576001600160a01b031690811561049b57336000526001602052604060002082600052602052806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346100e95760003660031901126100e95760006003548060011c90600181168015610651575b6020831081146102d7578285529081156102bb57506001146105fa5750819003601f01601f191681019067ffffffffffffffff82118183101761024e5761024a8291826040528261065b565b905060036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b6000905b82821061063b5750602091508201018261021a565b6001816020925483858801015201910190610626565b91607f16916105ae565b91909160208152825180602083015260005b81811061068e575060409293506000838284010152601f8019910116010190565b806020809287010151604082860101520161066d565b600435906001600160a01b03821682036100e957565b602435906001600160a01b03821682036100e957565b6001600160a01b03169081156101be576001600160a01b03169182156103c557600082815280602052604081205482811061074f5791604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815280845220818154019055604051908152a3565b916064928463391434e360e21b8452600452602452604452fdfea2646970667358221220244a0a20c657fff7862703acb5cfe7ea7d2b0fc51d1a41b0a338be948dd8f1cf64736f6c634300081a003360c06040523461041a576118e5803803806100198161041f565b92833981016101008282031261041a5781516001600160401b03811161041a5781610045918401610444565b602083015190916001600160401b03821161041a57610065918401610444565b9160408101519160ff831680930361041a576060820151936080830151600381101561041a5760a0840151916100a960e06100a260c088016104af565b96016104af565b946001600160a01b03169384158015610409575b6103f8578051906001600160401b0382116102f55760065490600182811c921680156103ee575b60208310146102d55781601f84931161037e575b50602090601f83116001146103165760009261030b575b50508160011b916000199060031b1c1916176006555b8051906001600160401b0382116102f55760075490600182811c921680156102eb575b60208310146102d55781601f849311610265575b50602090601f83116001146101fd576000926101f2575b50508160011b916000199060031b1c1916176007555b6008549560805260a05260015560018060a01b03196000541617600055610100600160a81b039060081b169160018060a81b031916171760085560405161142190816104c4823960805181818161018101528181610b7b01526110d8015260a051816109fa0152f35b015190503880610173565b600760009081528281209350601f198516905b81811061024d5750908460019594939210610234575b505050811b01600755610189565b015160001960f88460031b161c19169055388080610226565b92936020600181928786015181550195019301610210565b60076000529091507fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688601f840160051c810191602085106102cb575b90601f859493920160051c01905b8181106102bc575061015c565b600081558493506001016102af565b90915081906102a1565b634e487b7160e01b600052602260045260246000fd5b91607f1691610148565b634e487b7160e01b600052604160045260246000fd5b01519050388061010f565b600660009081528281209350601f198516905b818110610366575090846001959493921061034d575b505050811b01600655610125565b015160001960f88460031b161c1916905538808061033f565b92936020600181928786015181550195019301610329565b60066000529091507ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f601f840160051c810191602085106103e4575b90601f859493920160051c01905b8181106103d557506100f8565b600081558493506001016103c8565b90915081906103ba565b91607f16916100e4565b63d92e233d60e01b60005260046000fd5b506001600160a01b038616156100bd565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176102f557604052565b81601f8201121561041a578051906001600160401b0382116102f557610473601f8301601f191660200161041f565b928284526020838301011161041a5760005b82811061049a57505060206000918301015290565b80602080928401015182828701015201610485565b51906001600160a01b038216820361041a5756fe608080604052600436101561001357600080fd5b60003560e01c90816306fdde0314610e8157508063091d278814610e63578063095ea7b314610e3d57806318160ddd14610e1f57806323b872dd14610d9e578063313ce56714610d7d5780633ce4a5bc14610d4e57806340c10f1914610d2957806342966c6814610d0c57806347e7ef2414610bf65780634d8943bb14610bd857806370a0823114610b9e57806385e1f4d014610b635780638b851b9514610b3957806395d89b4114610a695780639dc29fac14610a42578063a3413d03146109e7578063a9059cbb146109b6578063b84c824614610851578063c47f0027146106d6578063c701262614610574578063c835d7cc146104eb578063ccc7759914610445578063d9eeebed1461042c578063dd62ed3e146103db578063eddeb1231461037b578063f2441b3214610352578063f687d12a146102e15763fc5fecd51461015e57600080fd5b346102dc5760203660031901126102dc57600054604051630be1554760e01b81527f00000000000000000000000000000000000000000000000000000000000000006004820181905290916001600160a01b031690602083602481855afa92831561028e576000936102ab575b506001600160a01b0383161561029a5760209060246040518094819363d7fd7afb60e01b835260048301525afa90811561028e57600091610259575b5080156102485761021e61022791600435906110a6565b600254906110b9565b604080516001600160a01b03939093168352602083019190915290f35b0390f35b630e661aed60e41b60005260046000fd5b906020823d602011610286575b8161027360209383610f82565b8101031261028357505138610207565b80fd5b3d9150610266565b6040513d6000823e3d90fd5b633c7ff9cb60e11b60005260046000fd5b6102ce91935060203d6020116102d5575b6102c68183610f82565b810190611087565b91386101cb565b503d6102bc565b600080fd5b346102dc5760203660031901126102dc5760043573735b14bb79463307aacbed86daf3322b1e6226ab3303610341576020817fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a92600155604051908152a1005b632b2add3d60e01b60005260046000fd5b346102dc5760003660031901126102dc576000546040516001600160a01b039091168152602090f35b346102dc5760203660031901126102dc5760043573735b14bb79463307aacbed86daf3322b1e6226ab3303610341576020817fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f92600255604051908152a1005b346102dc5760403660031901126102dc576103f4610f56565b6103fc610f6c565b6001600160a01b039182166000908152600460209081526040808320949093168252928352819020549051908152f35b346102dc5760003660031901126102dc576102276110c6565b346102dc5760203660031901126102dc5761045e610f56565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610341576001600160a01b0381169081156104da5760088054610100600160a81b03191691811b610100600160a81b03169190911790556040519081527f88815d964e380677e86d817e7d65dea59cb7b4c3b5b7a0c8ec7ea4a74f90a38790602090a1005b63d92e233d60e01b60005260046000fd5b346102dc5760203660031901126102dc57610504610f56565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610341576001600160a01b031680156104da576020817fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae926bffffffffffffffffffffffff60a01b6000541617600055604051908152a1005b346102dc5760403660031901126102dc5760043567ffffffffffffffff81116102dc57366023820112156102dc576105b6903690602481600401359101610fa4565b60206024359160006105c66110c6565b93906064604051809481936323b872dd60e01b835233600484015273735b14bb79463307aacbed86daf3322b1e6226ab602484015288604484015260018060a01b03165af190811561028e57600091610697575b5015610686577f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d9559161064c8433611331565b6002549061066560405193608085526080850190610f15565b946020840152604083015260608201528033930390a2602060405160018152f35b63053e6b6b60e11b60005260046000fd5b6020813d6020116106ce575b816106b060209383610f82565b810103126106ca575190811515820361028357508461061a565b5080fd5b3d91506106a3565b346102dc576106e436610feb565b73735b14bb79463307aacbed86daf3322b1e6226ab330361034157805167ffffffffffffffff811161083b5761071b60065461102a565b601f81116107ce575b50602091601f821160011461076257918192600092610757575b5050600019600383901b1c191660019190911b17600655005b01519050828061073e565b601f1982169260066000526000805160206113cc8339815191529160005b8581106107b65750836001951061079d575b505050811b01600655005b015160001960f88460031b161c19169055828080610792565b91926020600181928685015181550194019201610780565b6006600052601f820160051c6000805160206113cc833981519152019060208310610825575b601f0160051c6000805160206113cc83398151915201905b8181106108195750610724565b6000815560010161080c565b6000805160206113cc83398151915291506107f4565b634e487b7160e01b600052604160045260246000fd5b346102dc5761085f36610feb565b73735b14bb79463307aacbed86daf3322b1e6226ab330361034157805167ffffffffffffffff811161083b5761089660075461102a565b601f8111610949575b50602091601f82116001146108dd579181926000926108d2575b5050600019600383901b1c191660019190911b17600755005b0151905082806108b9565b601f1982169260076000526000805160206113ac8339815191529160005b85811061093157508360019510610918575b505050811b01600755005b015160001960f88460031b161c1916905582808061090d565b919260206001819286850151815501940192016108fb565b6007600052601f820160051c6000805160206113ac8339815191520190602083106109a0575b601f0160051c6000805160206113ac83398151915201905b818110610994575061089f565b60008155600101610987565b6000805160206113ac833981519152915061096f565b346102dc5760403660031901126102dc576109dc6109d2610f56565b6024359033611230565b602060405160018152f35b346102dc5760003660031901126102dc577f00000000000000000000000000000000000000000000000000000000000000006040516003821015610a2c576020918152f35b634e487b7160e01b600052602160045260246000fd5b346102dc5760403660031901126102dc57610a67610a5e610f56565b60243590611331565b005b346102dc5760003660031901126102dc576040516000600754610a8b8161102a565b8084529060018116908115610b155750600114610ac7575b61024483610ab381850382610f82565b604051918291602083526020830190610f15565b91905060076000526000805160206113ac833981519152916000905b808210610afb57509091508101602001610ab3610aa3565b919260018160209254838588010152019101909291610ae3565b60ff191660208086019190915291151560051b84019091019150610ab39050610aa3565b346102dc5760003660031901126102dc5760088054604051911c6001600160a01b03168152602090f35b346102dc5760003660031901126102dc5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346102dc5760203660031901126102dc576001600160a01b03610bbf610f56565b1660005260036020526020604060002054604051908152f35b346102dc5760003660031901126102dc576020600254604051908152f35b346102dc5760403660031901126102dc57610c0f610f56565b6024359073735b14bb79463307aacbed86daf3322b1e6226ab33141580610cf7575b80610cdf575b610cce57610cae81610c6a847f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab3946112d6565b60405173735b14bb79463307aacbed86daf3322b1e6226ab60601b60208201526014815290610c9a603483610f82565b604051928392604084526040840190610f15565b60208301959095526001600160a01b0316930390a2602060405160018152f35b636edaef2f60e11b60005260046000fd5b506008805433911c6001600160a01b03161415610c37565b506000546001600160a01b0316331415610c31565b346102dc5760203660031901126102dc576109dc60043533611331565b346102dc5760403660031901126102dc57610a67610d45610f56565b602435906112d6565b346102dc5760003660031901126102dc57602060405173735b14bb79463307aacbed86daf3322b1e6226ab8152f35b346102dc5760003660031901126102dc57602060ff60085416604051908152f35b346102dc5760603660031901126102dc57610db7610f56565b610dbf610f6c565b90610dce604435809383611230565b6001600160a01b0381166000908152600460209081526040808320338452909152902054828110610e0e576109dc92610e0691611064565b9033906111c9565b6310bad14760e01b60005260046000fd5b346102dc5760003660031901126102dc576020600554604051908152f35b346102dc5760403660031901126102dc576109dc610e59610f56565b60243590336111c9565b346102dc5760003660031901126102dc576020600154604051908152f35b346102dc5760003660031901126102dc576000600654610ea08161102a565b8084529060018116908115610b155750600114610ec75761024483610ab381850382610f82565b91905060066000526000805160206113cc833981519152916000905b808210610efb57509091508101602001610ab3610aa3565b919260018160209254838588010152019101909291610ee3565b919082519283825260005b848110610f41575050826000602080949584010152601f8019910116010190565b80602080928401015182828601015201610f20565b600435906001600160a01b03821682036102dc57565b602435906001600160a01b03821682036102dc57565b90601f8019910116810190811067ffffffffffffffff82111761083b57604052565b92919267ffffffffffffffff821161083b5760405191610fce601f8201601f191660200184610f82565b8294818452818301116102dc578281602093846000960137010152565b60206003198201126102dc576004359067ffffffffffffffff82116102dc57806023830112156102dc5781602461102793600401359101610fa4565b90565b90600182811c9216801561105a575b602083101461104457565b634e487b7160e01b600052602260045260246000fd5b91607f1691611039565b9190820391821161107157565b634e487b7160e01b600052601160045260246000fd5b908160209103126102dc57516001600160a01b03811681036102dc5790565b8181029291811591840414171561107157565b9190820180921161107157565b600054604051630be1554760e01b81527f0000000000000000000000000000000000000000000000000000000000000000600482018190529092916001600160a01b031690602084602481855afa93841561028e576000946111a8575b506001600160a01b0384161561029a5760209060246040518094819363d7fd7afb60e01b835260048301525afa90811561028e57600091611176575b5080156102485761021e61102791600154906110a6565b906020823d6020116111a0575b8161119060209383610f82565b810103126102835750513861115f565b3d9150611183565b6111c291945060203d6020116102d5576102c68183610f82565b9238611123565b6001600160a01b03169081156104da576001600160a01b03169182156104da5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260048252604060002085600052825280604060002055604051908152a3565b6001600160a01b03169081156104da576001600160a01b03169182156104da578160005260036020526040600020548181106112c557816112947fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93602093611064565b8460005260038352604060002055846000526003825260406000206112ba8282546110b9565b9055604051908152a3565b63fe382aa760e01b60005260046000fd5b6001600160a01b03169081156104da577fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020826113186000946005546110b9565b60055584845260038252604084206112ba8282546110b9565b6001600160a01b031680156104da57806000526003602052604060002054918083106112c5576020816113877fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93600096611064565b84865260038352604086205561139f81600554611064565b600555604051908152a356fea66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688f652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3fa2646970667358221220de2afd89f9562d881a6037e1b595c5b924ecf9024c4a393e54fbc8e66db522b864736f6c634300081a00330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da2646970667358221220f7cb1cf5eab98ac38140d2d2c2f5373742c7bd092e840adfd74976624072753464736f6c634300081a003360803460a357601f62010d3938819003918201601f19168301916001600160401b0383118484101760a857808492604094855283398101031260a3576001604e602060488460be565b930160be565b918160ff19600c541617600c55601f54906101008360a81b039060081b1690828060a81b0319161717601f5560018060a01b031660018060a01b0319602054161760205560405162010c679081620000d28239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820360a35756fe6080604052600436101561001257600080fd5b60003560e01c8062173d46146101b65780631694505e146101b15780631ed7831c146101ac5780632ade3880146101a75780632c76d7a6146101a2578063342a30c31461019d5780633ce4a5bc146101985780633e5e3c23146101935780633f7286f41461018e57806351976f441461018957806352dc56b81461018457806359d0f7131461017f5780635b5491821461017a57806366141ce21461017557806366d9a9a01461017057806385226c811461016b578063916a17c614610166578063a0d788b714610161578063b0464fdc1461015c578063b5508aa914610157578063ba414fa614610152578063bb88b7691461014d578063d5f3948814610148578063e20c9f7114610143578063f04ab5341461013e5763fa7626d41461013957600080fd5b611c24565b611bfb565b611b7b565b611b4e565b611b25565b611b00565b611a73565b6119c7565b6116c8565b61161c565b611517565b61140b565b611324565b6112fb565b6112d2565b610684565b610636565b6105a5565b610525565b6104fe565b6104d5565b6104ac565b610400565b610260565b6101f4565b6101cb565b60009103126101c657565b600080fd5b346101c65760003660031901126101c6576021546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c6576024546040516001600160a01b039091168152602090f35b602060408183019282815284518094520192019060005b8181106102415750505090565b82516001600160a01b0316845260209384019390920191600101610234565b346101c65760003660031901126101c65760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b8181106102d1576102cd856102c181870382611c79565b6040519182918261021d565b0390f35b82546001600160a01b03168452602090930192600192830192016102aa565b60005b8381106103035750506000910152565b81810151838201526020016102f3565b9060209161032c815180928185528580860191016102f0565b601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061036b57505050505090565b9091929394603f198282030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b85010194019260005b8281106103d55750505050506020806001929701930193019193929061035c565b90919293946020806103f3600193605f198782030189528951610313565b97019501939291016103b4565b346101c65760003660031901126101c657601e5461041d81611c9b565b9061042b6040519283611c79565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061047157604051806102cd8782610338565b6002602060019260405161048481611c5d565b848060a01b03865416815261049a858701611d7f565b8382015281520192019201919061045c565b346101c65760003660031901126101c6576026546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c6576027546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c657602080546040516001600160a01b039091168152f35b346101c65760003660031901126101c65760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b818110610586576102cd856102c181870382611c79565b82546001600160a01b031684526020909301926001928301920161056f565b346101c65760003660031901126101c65760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b818110610606576102cd856102c181870382611c79565b82546001600160a01b03168452602090930192600192830192016105ef565b6001600160a01b038116036101c657565b346101c65760403660031901126101c65761066860043561065681610625565b6024359061066382610625565b611ea1565b604080516001600160a01b039384168152919092166020820152f35b346101c65760003660031901126101c657601f5460081c6001600160a01b031660008051602062010c128339815191523b156101c6576040516303223eab60e11b81526001600160a01b039190911660048201526000816024818360008051602062010c128339815191525af18015611104576112bd575b5060405161088580820182811067ffffffffffffffff8211176111bc57829162006768833903906000f0801561110457602180546001600160a01b0319166001600160a01b0390921691909117905560008051602062010c128339815191523b156101c6576040516390c5013b60e01b81526000816004818360008051602062010c128339815191525af18015611104576112a8575b506020546001600160a01b031660008051602062010c128339815191523b156101c6576040516303223eab60e11b81526001600160a01b039190911660048201526000816024818360008051602062010c128339815191525af1801561110457611293575b506020546001600160a01b031660008051602062010c128339815191523b156101c65760405163c88a5e6d60e01b81526001600160a01b03919091166004820152678ac7230489e8000060248201526000816044818360008051602062010c128339815191525af180156111045761127e575b5060215461088e90610882906001600160a01b031681565b6001600160a01b031690565b803b156101c6576000678ac7230489e8000091600460405180948193630d0e30db60e41b83525af1801561110457611269575b5060008051602062010c128339815191523b156101c6576040516390c5013b60e01b81526000816004818360008051602062010c128339815191525af1801561110457611254575b50601f5460081c6001600160a01b031660008051602062010c128339815191523b156101c6576040516303223eab60e11b81526001600160a01b039190911660048201526000816024818360008051602062010c128339815191525af180156111045761123f575b50601f5460081c6001600160a01b031660008051602062010c128339815191523b156101c65760405163c88a5e6d60e01b81526001600160a01b03919091166004820152678ac7230489e8000060248201526000816044818360008051602062010c128339815191525af180156111045761122a575b506021546109ff90610882906001600160a01b031681565b803b156101c6576000678ac7230489e8000091600460405180948193630d0e30db60e41b83525af1801561110457611215575b5060008051602062010c128339815191523b156101c6576040516390c5013b60e01b81526000816004818360008051602062010c128339815191525af1801561110457611200575b50601f54610af090610ad390610ab19060081c6001600160a01b0316602154610aab906001600160a01b0316610882565b90611ea1565b602480546001600160a01b0319166001600160a01b0390921691909117905590565b60018060a01b03166001600160601b0360a01b6023541617602355565b601f54610b8790610b4d90610b6a90610b2a9060081c6001600160a01b0316602154610b24906001600160a01b0316610882565b906125b2565b602780546001600160a01b0319166001600160a01b039092169190911790559092565b60018060a01b03166001600160601b0360a01b6026541617602655565b60018060a01b03166001600160601b0360a01b6025541617602555565b6020546001600160a01b031660008051602062010c128339815191523b156101c6576040516303223eab60e11b81526001600160a01b039190911660048201526000816024818360008051602062010c128339815191525af18015611104576111eb575b506021546001600160a01b03166023546001600160a01b03166024549091906001600160a01b03169160405192610b3a918285019385851067ffffffffffffffff8611176111bc578594610c629462005c2e87396001600160a01b0391821681529181166020830152909116604082015260600190565b03906000f0801561110457602280546001600160a01b0319166001600160a01b0390921691909117905560405161322180820182811067ffffffffffffffff8211176111bc57829162002a0d833903906000f080156111045760008051602062010c128339815191523b156101c6576040516390c5013b60e01b81526000816004818360008051602062010c128339815191525af18015611104576111d6575b50601f5460081c6001600160a01b031660008051602062010c128339815191523b156101c6576040516303223eab60e11b81526001600160a01b039190911660048201526000816024818360008051602062010c128339815191525af18015611104576111c1575b506040516192d980820182811067ffffffffffffffff8211176111bc57829162006fed833903906000f0801561110457602880546001600160a01b0319166001600160a01b03929092169182179055610dc290610882565b906040519161094c9081840184811067ffffffffffffffff8211176111bc578493610e0993620102c686396001600160a01b03908116825291909116602082015260400190565b03906000f0801561110457602980546001600160a01b0319166001600160a01b03929092169182179055610e3c90610882565b6021546001600160a01b0316601f5460081c6001600160a01b0316823b156101c65760405163485cc95560e01b81526001600160a01b03928316600482015291166024820152906000908290604490829084905af18015611104576111a7575b5060008051602062010c128339815191523b156101c6576040516390c5013b60e01b81526000816004818360008051602062010c128339815191525af1801561110457611192575b506020546001600160a01b031660008051602062010c128339815191523b156101c6576040516303223eab60e11b81526001600160a01b039190911660048201526000816024818360008051602062010c128339815191525af180156111045761117d575b5060006020610fb7610f6861088261088260215460018060a01b031690565b602954610f7d906001600160a01b0316610882565b60405163095ea7b360e01b81526001600160a01b039091166004820152678ac7230489e80000602482015293849283919082906044820190565b03925af1801561110457611160575b5060008051602062010c128339815191523b156101c6576040516390c5013b60e01b81526000816004818360008051602062010c128339815191525af180156111045761114b575b50601f5460081c6001600160a01b031660008051602062010c128339815191523b156101c6576040516303223eab60e11b81526001600160a01b039190911660048201526000816024818360008051602062010c128339815191525af1801561110457611136575b5060006020611095610f6861088261088260215460018060a01b031690565b03925af1801561110457611109575b5060008051602062010c128339815191523b156101c6576040516390c5013b60e01b81526000816004818360008051602062010c128339815191525af18015611104576110ed57005b806110fc600061110293611c79565b806101bb565b005b611dd7565b61112a9060203d60201161112f575b6111228183611c79565b8101906121e1565b6110a4565b503d611118565b806110fc600061114593611c79565b38611076565b806110fc600061115a93611c79565b3861100e565b6111789060203d60201161112f576111228183611c79565b610fc6565b806110fc600061118c93611c79565b38610f49565b806110fc60006111a193611c79565b38610ee4565b806110fc60006111b693611c79565b38610e9c565b611c47565b806110fc60006111d093611c79565b38610d6a565b806110fc60006111e593611c79565b38610d02565b806110fc60006111fa93611c79565b38610beb565b806110fc600061120f93611c79565b38610a7a565b806110fc600061122493611c79565b38610a32565b806110fc600061123993611c79565b386109e7565b806110fc600061124e93611c79565b38610971565b806110fc600061126393611c79565b38610909565b806110fc600061127893611c79565b386108c1565b806110fc600061128d93611c79565b3861086a565b806110fc60006112a293611c79565b386107f7565b806110fc60006112b793611c79565b38610792565b806110fc60006112cc93611c79565b386106fc565b346101c65760003660031901126101c6576023546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c6576025546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c6576028546040516001600160a01b039091168152602090f35b906020808351928381520192019060005b81811061136b5750505090565b82516001600160e01b03191684526020938401939092019160010161135e565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106113be57505050505090565b90919293946020806113fc600193603f19868203018752895190836113ec8351604084526040840190610313565b920151908481840391015261134d565b970193019301919392906113af565b346101c65760003660031901126101c657601b5461142881611c9b565b906114366040519283611c79565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b83831061147c57604051806102cd878261138b565b6002602060019260405161148f81611c5d565b61149886611cb3565b81526114a58587016121f9565b83820152815201920192019190611467565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106114ea57505050505090565b9091929394602080611508600193603f198682030187528951610313565b970193019301919392906114db565b346101c65760003660031901126101c657601a5461153481611c9b565b906115426040519283611c79565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b83831061158757604051806102cd87826114b7565b60016020819261159685611cb3565b815201920192019190611572565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106115d757505050505090565b909192939460208061160d600193603f198682030187526040838b51878060a01b0381511684520151918185820152019061134d565b970193019301919392906115c8565b346101c65760003660031901126101c657601d5461163981611c9b565b906116476040519283611c79565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b83831061168d57604051806102cd87826115a4565b600260206001926040516116a081611c5d565b848060a01b0386541681526116b68587016121f9565b83820152815201920192019190611678565b346101c65760e03660031901126101c6576004356116e581610625565b602435906116f282610625565b6044356116fe81610625565b6064359161170b83610625565b6084359261171884610625565b60a4359260c4359560008051602062010c128339815191523b156101c6576040516303223eab60e11b81526001600160a01b03871660048201526000816024818360008051602062010c128339815191525af18015611104576119b2575b506040516364e329cb60e11b81526001600160a01b0383811660048301528481166024830152909160209183916044918391600091165af1801561110457611985575b5060405163095ea7b360e01b81526001600160a01b0384166004820152602481018590526020818060448101038160006001600160a01b0387165af1801561110457611968575b5060405163095ea7b360e01b81526001600160a01b038416600482015260248101879052906020828060448101038160006001600160a01b0388165af18015611104576060966000936118bc9261194b575b5061185c42612433565b60405162e8e33760e81b81526001600160a01b03948516600482015295841660248701526044860197909752606485019890985260006084850181905260a4850152961660c483015260e482019390935293849283918290610104820190565b03926001600160a01b03165af180156111045761191c575060008051602062010c128339815191523b156101c6576040516390c5013b60e01b81526000816004818360008051602062010c128339815191525af18015611104576110ed57005b61193d9060603d606011611944575b6119358183611c79565b810190612458565b50506110a4565b503d61192b565b6119639060203d60201161112f576111228183611c79565b611852565b6119809060203d60201161112f576111228183611c79565b611800565b6119a69060203d6020116119ab575b61199e8183611c79565b81019061241e565b6117b9565b503d611994565b806110fc60006119c193611c79565b38611776565b346101c65760003660031901126101c657601c546119e481611c9b565b906119f26040519283611c79565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b838310611a3857604051806102cd87826115a4565b60026020600192604051611a4b81611c5d565b848060a01b038654168152611a618587016121f9565b83820152815201920192019190611a23565b346101c65760003660031901126101c657601954611a9081611c9b565b90611a9e6040519283611c79565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b838310611ae357604051806102cd87826114b7565b600160208192611af285611cb3565b815201920192019190611ace565b346101c65760003660031901126101c6576020611b1b612482565b6040519015158152f35b346101c65760003660031901126101c6576022546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c657601f5460405160089190911c6001600160a01b03168152602090f35b346101c65760003660031901126101c65760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b818110611bdc576102cd856102c181870382611c79565b82546001600160a01b0316845260209093019260019283019201611bc5565b346101c65760003660031901126101c6576029546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c657602060ff601f54166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176111bc57604052565b90601f8019910116810190811067ffffffffffffffff8211176111bc57604052565b67ffffffffffffffff81116111bc5760051b60200190565b9060405191600081548060011c9260018216918215611d75575b602085108314611d61578487528693926020850192918115611d445750600114611d02575b5050611d0092500383611c79565b565b611d13919250600052602060002090565b906000915b848310611d2d5750611d009350013880611cf2565b805482840152869350602090920191600101611d18565b915050611d009491925060ff19168252151560051b013880611cf2565b634e487b7160e01b84526022600452602484fd5b93607f1693611ccd565b908154611d8b81611c9b565b92611d996040519485611c79565b818452602084019060005260206000206000915b838310611dba5750505050565b600160208192611dc985611cb3565b815201920192019190611dad565b6040513d6000823e3d90fd5b67ffffffffffffffff81116111bc57601f01601f191660200190565b6020818303126101c65780519067ffffffffffffffff82116101c6570181601f820112156101c65760208151910190611e3781611de3565b92611e456040519485611c79565b818452818301116101c657611e5e9160208401906102f0565b90565b611e7360409283835283830190610313565b90602081830391015260148152730b995d9b4b989e5d1958dbd9194b9bd89a9958dd60621b60208201520190565b91909160008051602062010c128339815191523b156101c6576040516303223eab60e11b81526001600160a01b03821660048201526000816024818360008051602062010c128339815191525af18015611104576121cc575b506040516360f9bb1160e01b815260206004820152603960248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76322d636f72652f627560448201527f696c642f556e69737761705632466163746f72792e6a736f6e00000000000000606482015260008160848160008051602062010c128339815191525afa90811561110457611faa916000918291612191575b5060405180938192631fb2437d60e31b835260048301611e61565b038160008051602062010c128339815191525afa80156111045761200a92611ff7926000926121ab575b50604080516001600160a01b039092166020830152909261200591849190820190565b03601f198101845283611c79565b612515565b6040516360f9bb1160e01b815260206004820152603f60248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76322d7065726970686560448201527f72792f6275696c642f556e69737761705632526f7574657230322e6a736f6e00606482015290929060008160848160008051602062010c128339815191525afa908115611104576120bb916000918291612191575060405180938192631fb2437d60e31b835260048301611e61565b038160008051602062010c128339815191525afa80156111045761210f92611ff792600092612168575b50604080516001600160a01b03808916602083015290921690820152916120059083906060820190565b9060008051602062010c128339815191523b156101c6576040516390c5013b60e01b81526000816004818360008051602062010c128339815191525af18015611104576121595750565b806110fc6000611d0093611c79565b61200591925061218a903d806000833e6121828183611c79565b810190611dff565b91906120e5565b6121a591503d8084833e6121828183611c79565b38611f8f565b6120059192506121c5903d806000833e6121828183611c79565b9190611fd4565b806110fc60006121db93611c79565b38611efa565b908160209103126101c6575180151581036101c65790565b604051815480825290929183906122196020830191600052602060002090565b926000905b80600783011061236157611d00945491818110612342575b818110612323575b818110612304575b8181106122e5575b8181106122c6575b8181106122a7575b818110612289575b10612274575b500383611c79565b6001600160e01b03191681526020013861226c565b602083811b6001600160e01b03191685529093600191019301612266565b604083901b6001600160e01b031916845292600190602001930161225e565b606083901b6001600160e01b0319168452926001906020019301612256565b608083901b6001600160e01b031916845292600190602001930161224e565b60a083901b6001600160e01b0319168452926001906020019301612246565b60c083901b6001600160e01b031916845292600190602001930161223e565b6001600160e01b031960e084901b168452926001906020019301612236565b9160089193506101006001916124108754612387838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b01940192018592939161221e565b908160209103126101c65751611e5e81610625565b90610384820180921161244257565b634e487b7160e01b600052601160045260246000fd5b908160609103126101c6578051916040602083015192015190565b908160209103126101c6575190565b60085460ff1680156124915790565b50604051630667f9d760e41b815260008051602062010c12833981519152600482018190526519985a5b195960d21b6024830152602090829060449082905afa908115611104576000916124e6575b50151590565b612508915060203d60201161250e575b6125008183611c79565b810190612473565b386124e0565b503d6124f6565b9061255a6020916040519283918161253681850197888151938492016102f0565b830161254a825180938580850191016102f0565b010103601f198101835282611c79565b51906000f09081156101c657565b61257a60409283835283830190610313565b90602081830391015260098152682e62797465636f646560b81b60208201520190565b604051906125ac602083611c79565b60008252565b60008051602062010c128339815191523b156101c6576040516303223eab60e11b81526001600160a01b039190911660048201526000816024818360008051602062010c128339815191525af18015611104576129f7575b506040516360f9bb1160e01b815260206004820152605c60248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76332d636f72652f617260448201527f746966616374732f636f6e7472616374732f556e69737761705633466163746f60648201527f72792e736f6c2f556e69737761705633466163746f72792e6a736f6e00000000608482015260008160a48160008051602062010c128339815191525afa908115611104576126e09160009182916129a7575b5060405180938192631fb2437d60e31b835260048301612568565b038160008051602062010c128339815191525afa801561110457612715916000916129dc575b5061270f61259d565b90612515565b6040516360f9bb1160e01b815260206004820152605560248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76332d7065726970686560448201527f72792f6172746966616374732f636f6e7472616374732f53776170526f757465606482015274391739b7b617a9bbb0b82937baba32b9173539b7b760591b608482015290929060008160a48160008051602062010c128339815191525afa908115611104576127e49160009182916129a7575060405180938192631fb2437d60e31b835260048301612568565b038160008051602062010c128339815191525afa801561110457612836916000916129c1575b50604080516001600160a01b038088166020830152861691810191909152906120058260608101611ff7565b6040516360f9bb1160e01b815260206004820152607560248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76332d7065726970686560448201527f72792f6172746966616374732f636f6e7472616374732f4e6f6e66756e67696260648201527f6c65506f736974696f6e4d616e616765722e736f6c2f4e6f6e66756e6769626c60848201527432a837b9b4ba34b7b726b0b730b3b2b9173539b7b760591b60a482015290929060008160c48160008051602062010c128339815191525afa9081156111045761292b9160009182916129a7575060405180938192631fb2437d60e31b835260048301612568565b038160008051602062010c128339815191525afa80156111045761210f928592600092612986575b50604080516001600160a01b03808a16602083015292831691810191909152921660608301526120058260808101611ff7565b6120059192506129a0903d806000833e6121828183611c79565b9190612953565b6129bb91503d8084833e6121828183611c79565b386126c5565b6129d691503d806000833e6121828183611c79565b3861280a565b6129f191503d806000833e6121828183611c79565b38612706565b806110fc6000612a0693611c79565b3861260a56fe60a080604052346100ea57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b60405161313190816100f082396080518181816110ea015261117e0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880610054565b63f92ee8a960e01b60005260046000fd5b600080fdfe6080806040526004361015610067575b50361561001b57600080fd5b6100236125ec565b6000546001600160a01b03163314158061004f575b61003e57005b63b3af013760e01b60005260046000fd5b5060008051602061303c833981519152331415610038565b600090813560e01c90816301ffc9a7146120665750806306433b1b1461203757806306cb898314611d92578063184b079314611cdb5780632095dedb14611bb857806321e093b114611b91578063248a9ca314611b6a5780632722feee14611b415780632810ae63146117255780632f2ff15d146116f357806330b103421461160557806336568abe146115c05780633f4ba83a1461153e578063485cc955146113665780634f1ef2861461113f57806352d1902d146110d75780635c975abb146110a75780637b15118b14610f1e5780637c0dcb5f14610d055780638456cb5914610c9057806391d1485414610c3757806397a1cef11461082a5780639d4ba46514610705578063a217fddf146106e9578063ad3cb1cc1461069c578063bcbe93651461067f578063bcf7f32b146105fb578063c39aca37146104ea578063d547741f146104af578063e279a72a14610491578063e63ab1e914610456578063e90b9e5e1461038d578063edc5b62e1461036f578063f340fa01146102b35763f45346dc0361000f57346102b05760603660031901126102b05761020a612185565b9060243561021661219b565b60008051602061303c83398151915233036102a1576102336125ec565b61023c84612684565b61024581612684565b8115610292576102553082612f1f565b610260828286612d49565b15610269578280f35b632050a1dd60e11b83526001600160a01b03938416600452909216602452604491909152606490fd5b632ca2f52b60e11b8352600483fd5b632160203f60e11b8352600483fd5b80fd5b5060203660031901126102b0576102c8612185565b6102d0612648565b60008051602061303c8339815191523303610360576102ed6125ec565b6102f681612684565b3415610351576103063082612f1f565b8180808034855af16103166125bc565b5015610332575060016000805160206130bc8339815191525580f35b63793cd7bf60e11b82526001600160a01b031660045234602452604490fd5b632ca2f52b60e11b8252600482fd5b632160203f60e11b8252600482fd5b50346102b057806003193601126102b0576020604051621e84808152f35b50610397366121f2565b6103a2929192612648565b60008051602061303c8339815191523303610360576103bf6125ec565b6103c883612684565b34156103515781926103da3082612f1f565b6001600160a01b0316803b156104525761040b9183916040518080958194636481451b60e11b83526004830161235e565b039134905af1801561044757610432575b5060016000805160206130bc8339815191525580f35b8161043c916120ec565b6102b057803861041c565b6040513d84823e3d90fd5b5050fd5b50346102b057806003193601126102b05760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346102b057806003193601126102b0576020604051620186a08152f35b50346102b05760403660031901126102b0576104e66004356104cf61216f565b906104e16104dc826123c3565b61293a565b612bad565b5080f35b50346102b0576104f936612282565b909395949291610507612648565b60008051602061303c83398151915233036105ec576105246125ec565b61052d87612684565b61053681612684565b82156105dd576105463082612f1f565b610551838289612d49565b156105b757949586956001600160a01b031691823b156105b357869461058f869260405198899788968795632de7eb0b60e11b87526004870161257e565b03925af1801561044757610432575060016000805160206130bc8339815191525580f35b8680fd5b632050a1dd60e11b86526001600160a01b03808816600452166024526044829052606485fd5b632ca2f52b60e11b8652600486fd5b632160203f60e11b8652600486fd5b50346102b05761060a36612282565b90936106199695939296612648565b60008051602061303c83398151915233036105ec5785966106386125ec565b61064182612684565b61064a81612684565b6001600160a01b031691823b156105b357869461058f869260405198899788968795632de7eb0b60e11b87526004870161257e565b50346102b057806003193601126102b0576020604051610b408152f35b50346102b057806003193601126102b057506106e56040516106bf6040826120ec565b60058152640352e302e360dc1b602082015260405191829160208352602083019061225d565b0390f35b50346102b057806003193601126102b057602090604051908152f35b50346102b05760803660031901126102b05761071f612185565b906024359161072c61219b565b606435916001600160401b038311610826576080600319843603011261082657610754612648565b60008051602061303c8339815191523303610817576107716125ec565b61077a81612684565b61078382612684565b8415610808576107933083612f1f565b61079e858383612d49565b156107e0575091925082916001600160a01b0316803b156104525761058f8392918392604051948580948193636481451b60e11b83526004016004830161235e565b632050a1dd60e11b84526001600160a01b039081166004521660245250604491909152606490fd5b632ca2f52b60e11b8452600484fd5b632160203f60e11b8452600484fd5b8380fd5b50346102b05760803660031901126102b0576004356001600160401b038111610c335761085b903690600401612128565b604435906024356064356001600160401b038111610c2f5760a081600401916003199036030112610c2f5761088e6125ec565b610899818385612cd4565b604051632013a8cd60e21b815260048101859052908582602481737cce3eb018bf23e1fe2a32692f2c77592d1103945afa918215610c24578692610bd2575b506040516379220d9960e11b8152916020836004816001600160a01b0385165afa928315610b88578793610b93575b5060405163d7fd7afb60e01b81526004810187905292602090849060249082906001600160a01b03165afa928315610b88578793610b54575b508215610b4557604051637066b18d60e01b815286600482015260406024820152600860448201526719d85cd31a5b5a5d60c21b60648201528781608481737cce3eb018bf23e1fe2a32692f2c77592d1103945afa889181610b29575b50610afc5750620186a0925b604051637066b18d60e01b815287600482015260406024820152600f60448201526e70726f746f636f6c466c617446656560881b60648201528881608481737cce3eb018bf23e1fe2a32692f2c77592d1103945afa899181610ad8575b50610aa9575087935b80820291820403610a955791610a8f91610a56610a4f867f07bf64173efd8f3dfb9e4eb3834bab9d5b85a3d89a1c6425797329de0668502c9897966127ad565b8092612e86565b610a5f856127d0565b60018060a01b038954169360405191610a77836120bb565b8a835260016020840152604051968796339a8861250f565b0390a380f35b634e487b7160e01b88526011600452602488fd5b8051908115610acf5760208082019282019190910312610aca575193610a0f565b600080fd5b50508793610a0f565b610af59192503d808c833e610aed81836120ec565b810190612e61565b9038610a06565b8051908115610b1d5760208082019282019190910312610aca5751926109a9565b5050620186a0926109a9565b610b3e9192503d808b833e610aed81836120ec565b903861099d565b630e661aed60e41b8752600487fd5b9092506020813d602011610b80575b81610b70602093836120ec565b81010312610aca57519138610940565b3d9150610b63565b6040513d89823e3d90fd5b92506020833d602011610bca575b81610bae602093836120ec565b810103126105b3576020610bc3602494612757565b9350610907565b3d9150610ba1565b9091503d8087833e610be481836120ec565b8101906040818303126105b357610bfa81612757565b9160208201516001600160401b038111610c2057610c18920161276b565b5090386108d8565b8880fd5b6040513d88823e3d90fd5b8480fd5b5080fd5b50346102b05760403660031901126102b0576040610c5361216f565b91600435815260008051602061307c833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346102b057806003193601126102b057610ca96128c8565b610cb16125ec565b600160ff1960008051602061309c83398151915254161760008051602061309c833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346102b05760803660031901126102b0576004356001600160401b038111610c3357610d36903690600401612128565b8160243591610d4361219b565b92606435936001600160401b0385116108265760a08560040195600319903603011261082657610d716125ec565b610d7c858385612cd4565b604051630123a4f160e31b81526001600160a01b03821695906020816004818a5afa908115610c24578691610ee6575b50610db8908385612c4d565b604051634d8943bb60e01b81529096602082600481845afa918215610b88578792610eaf575b5090602060049260405193848092630123a4f160e31b82525afa918215610b88578792610e55575b5090610a8f92917f07bf64173efd8f3dfb9e4eb3834bab9d5b85a3d89a1c6425797329de0668502c96979860405192610e3e846120bb565b835260016020840152604051968796339a8861250f565b9291509495506020823d602011610ea7575b81610e74602093836120ec565b81010312610aca5790518795947f07bf64173efd8f3dfb9e4eb3834bab9d5b85a3d89a1c6425797329de0668502c610e06565b3d9150610e67565b915095506020813d602011610ede575b81610ecc602093836120ec565b81010312610aca575187956020610dde565b3d9150610ebf565b9550506020853d602011610f16575b81610f02602093836120ec565b81010312610aca57610db887955190610dac565b3d9150610ef5565b50346102b05760e03660031901126102b0576004356001600160401b038111610c3357610f4f903690600401612128565b8160243591610f5c61219b565b926064356001600160401b03811161082657610f7c9036906004016121c5565b9094906040366083190112610c2f5760c435906001600160401b0382116110a35760a0826004019260031990360301126110a357610fb86125ec565b610fc582828987896126a5565b610fd26084358486612c4d565b604051634d8943bb60e01b8152906020826004816001600160a01b0389165afa91821561109857889261103a575b5097610a8f9392917fd90f94752d2b12f364f4a2237ebe1aff24ba6127585376bf4935f6a7be17dd2a979899604051978897339b89612453565b939291509596506020833d602011611090575b8161105a602093836120ec565b81010312610aca5791518896959192917fd90f94752d2b12f364f4a2237ebe1aff24ba6127585376bf4935f6a7be17dd2a611000565b3d915061104d565b6040513d8a823e3d90fd5b8580fd5b50346102b057806003193601126102b057602060ff60008051602061309c83398151915254166040519015158152f35b50346102b057806003193601126102b0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316300361113057602060405160008051602061305c8339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126102b057611154612185565b906024356001600160401b038111610c3357611174903690600401612128565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611343575b506113345781805260008051602061307c83398151915260209081526040808420336000908152925290205460ff161561131c576040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa809585966112e8575b5061122257634c9c8ce360e01b84526004839052602484fd5b90918460008051602061305c83398151915281036112d65750813b156112c45760008051602061305c83398151915280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a281518390156112aa57808360206104e695519101845af46112a46125bc565b91612fda565b505050346112b55780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011611314575b81611304602093836120ec565b81010312610c2f57519438611209565b3d91506112f7565b63e2517d3f60e01b8252336004526024829052604482fd5b63703e46dd60e11b8252600482fd5b60008051602061305c833981519152546001600160a01b031614159050386111a9565b50346102b05760403660031901126102b057611380612185565b61138861216f565b6000805160206130dc833981519152549160ff8360401c1615926001600160401b03811680159081611536575b600114908161152c575b159081611523575b506115145767ffffffffffffffff1981166001176000805160206130dc83398151915255836114e7575b506001600160a01b031690811580156114d6575b6114c75761145690611415612f6c565b61141d612f6c565b611425612f6c565b61142d612f6c565b611435612f6c565b60016000805160206130bc8339815191525561145081612984565b50612a36565b5082546001600160a01b03191617825561146d5780f35b68ff0000000000000000196000805160206130dc83398151915254166000805160206130dc833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b637138356f60e01b8452600484fd5b506001600160a01b03811615611405565b68ffffffffffffffffff191668010000000000000001176000805160206130dc83398151915255386113f1565b63f92ee8a960e01b8552600485fd5b905015386113c7565b303b1591506113bf565b8591506113b5565b50346102b057806003193601126102b0576115576128c8565b60008051602061309c8339815191525460ff8116156115b15760ff191660008051602061309c833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346102b05760403660031901126102b0576115da61216f565b336001600160a01b038216036115f6576104e690600435612bad565b63334bd91960e11b8252600482fd5b5060603660031901126102b057600435906001600160401b0382116102b057606060031983360301126102b05761163a61216f565b916044356001600160401b0381116116ef5761165a9036906004016121c5565b611665929192612648565b60008051602061303c8339815191523303610817576116826125ec565b61168b85612684565b341561080857839461169d3082612f1f565b6001600160a01b0316803b15610c2f576116dd859361040b604051968795869485946375fcd95560e11b86526040600487015260448601906004016124cd565b8481036003190160248601529161233d565b8280fd5b50346102b05760403660031901126102b0576104e660043561171361216f565b906117206104dc826123c3565b612b04565b50346102b05760e03660031901126102b0576004356001600160401b038111610c3357611756903690600401612128565b604435906024356064356001600160401b038111610c2f5761177c9036906004016121c5565b60403660831901126110a35760c435906001600160401b0382116105b35760a0826004019260031990360301126105b3576117b56125ec565b6117c282828587896126a5565b604051632013a8cd60e21b815260048101879052926084358885602481737cce3eb018bf23e1fe2a32692f2c77592d1103945afa948515611b36578995611ae4575b506040516379220d9960e11b81526020816004816001600160a01b038a165afa908115611a96578a91611aa1575b5060405163d7fd7afb60e01b8152600481018a905290602090829060249082906001600160a01b03165afa908115611a96578a91611a64575b508015611a555781156119a5575b604051637066b18d60e01b815289600482015260406024820152600f60448201526e70726f746f636f6c466c617446656560881b60648201528a81608481737cce3eb018bf23e1fe2a32692f2c77592d1103945afa8b9181611988575b5061195e575089915b8082029182040361194a579181611928611921610a8f96947fd90f94752d2b12f364f4a2237ebe1aff24ba6127585376bf4935f6a7be17dd2a9a9998966127ad565b8097612e86565b611931876127d0565b60018060a01b038b541695604051978897339b89612453565b634e487b7160e01b8a52601160045260248afd5b805190811561197f5760208082019282019190910312610aca5751916118df565b505089916118df565b61199e9192508c3d8091833e610aed81836120ec565b90386118d6565b9050604051637066b18d60e01b815288600482015260406024820152600860448201526719d85cd31a5b5a5d60c21b60648201528981608481737cce3eb018bf23e1fe2a32692f2c77592d1103945afa8a9181611a39575b50611a0e5750620186a05b90611879565b8051908115611a2e5760208082019282019190910312610aca5751611a08565b5050620186a0611a08565b611a4e9192503d808d833e610aed81836120ec565b90386119fd565b630e661aed60e41b8a5260048afd5b90506020813d602011611a8e575b81611a7f602093836120ec565b81010312610aca57513861186b565b3d9150611a72565b6040513d8c823e3d90fd5b90506020813d602011611adc575b81611abc602093836120ec565b81010312611ad8576020611ad1602492612757565b9150611832565b8980fd5b3d9150611aaf565b9094503d808a833e611af681836120ec565b810190604081830312611ad857611b0c81612757565b9160208201516001600160401b038111611b3257611b2a920161276b565b509338611804565b8b80fd5b6040513d8b823e3d90fd5b50346102b057806003193601126102b057602060405160008051602061303c8339815191528152f35b50346102b05760203660031901126102b0576020611b896004356123c3565b604051908152f35b50346102b057806003193601126102b057546040516001600160a01b039091168152602090f35b50346102b05760403660031901126102b057611bd2612185565b906024356001600160401b038111610c33578060040160c060031983360301126116ef57611bfe612648565b60008051602061303c83398151915233036102a1578293611c1d6125ec565b611c2681612684565b6001600160a01b031691823b15611cd65761058f92611cc4858094604051968795869485936316a67dbf60e11b85526020600486015260a4611c7c611c6b838061230c565b60c060248a015260e489019161233d565b936001600160a01b03611c91602483016121b1565b16604488015260448101356064880152611cad606482016122ff565b15156084880152608481013582880152019061230c565b8483036023190160c48601529061233d565b505050fd5b50346102b057611cea366121f2565b611cf5929192612648565b60008051602061303c8339815191523303610360578192611d146125ec565b611d1d81612684565b6001600160a01b0316803b1561045257611d518392918392604051958680948193636481451b60e11b83526004830161235e565b03925af18015611d8557611d75575b60016000805160206130bc8339815191525580f35b611d7e916120ec565b3881611d60565b50604051903d90823e3d90fd5b50346102b05760c03660031901126102b0576004356001600160401b038111610c3357611dc3903690600401612128565b611dcb61216f565b6044356001600160401b03811161082657611dea9036906004016121c5565b9091906040366063190112610c2f5760a435906001600160401b0382116110a3578160040160a060031984360301126105b357611e256125ec565b60643592620186a08410612028576064810191611e428382612616565b9050610b40611e5182876127ad565b116120065750608482013596621e84808811611feb5760405195611e74876120bb565b86526084358015158103611fe75760208701526040519160a083018381106001600160401b03821117611fd357604052611ead906121b1565b8252611ebb602484016122ff565b9260208301938452611ecf604482016121b1565b9460408401958652356001600160401b038111611b325736910160040190611ef691612128565b946060830195865260808301988952611f0e8a612dc3565b8651611f1a9089612dcb565b506040519960a08b5260a08b01611f309161225d565b908a820360208c0152611f429261233d565b855160408a0152602090950151151560608901528785036080890152516001600160a01b03908116855290511515602085015290511660408301525160a060608301819052611f94919083019061225d565b92516080909101526001600160a01b03169133917f306ee13f48319a123b222c69908e44dcf91abffc20cacc502e3cf5a4ff23e0e4919081900390a380f35b634e487b7160e01b8c52604160045260248cfd5b8a80fd5b637643390f60e11b8a526004889052621e848060245260448afd5b89612013604492876127ad565b63cd6f4e6d60e01b8252600452610b40602452fd5b6360ee124760e01b8852600488fd5b50346102b057806003193601126102b0576020604051737cce3eb018bf23e1fe2a32692f2c77592d1103948152f35b905034610c33576020366003190112610c335760043563ffffffff60e01b81168091036116ef5760209250637965db0b60e01b81149081156120aa575b5015158152f35b6301ffc9a760e01b149050386120a3565b604081019081106001600160401b038211176120d657604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b038211176120d657604052565b6001600160401b0381116120d657601f01601f191660200190565b81601f82011215610aca5780359061213f8261210d565b9261214d60405194856120ec565b82845260208383010111610aca57816000926020809301838601378301015290565b602435906001600160a01b0382168203610aca57565b600435906001600160a01b0382168203610aca57565b604435906001600160a01b0382168203610aca57565b35906001600160a01b0382168203610aca57565b9181601f84011215610aca578235916001600160401b038311610aca5760208381860195010111610aca57565b906040600319830112610aca576004356001600160a01b0381168103610aca5791602435906001600160401b038211610aca576080908290036003190112610aca5760040190565b60005b83811061224d5750506000910152565b818101518382015260200161223d565b906020916122768151809281855285808601910161223a565b601f01601f1916010190565b60a0600319820112610aca576004356001600160401b038111610aca5760608183036003190112610aca57600401916024356001600160a01b0381168103610aca5791604435916064356001600160a01b0381168103610aca5791608435906001600160401b038211610aca576122fb916004016121c5565b9091565b35908115158203610aca57565b9035601e1982360301811215610aca5701602081359101916001600160401b038211610aca578136038313610aca57565b908060209392818452848401376000828201840152601f01601f1916010190565b602081526123c09160a0906123b0906001600160a01b0361237e826121b1565b166020850152600180841b03612396602083016121b1565b16604085015260408101356060850152606081019061230c565b919092608080820152019161233d565b90565b60005260008051602061307c83398151915260205260016040600020015490565b906001600160a01b036123f6836121b1565b168152612405602083016122ff565b151560208201526001600160a01b03612420604084016121b1565b16604082015260808061244a612439606086018661230c565b60a0606087015260a086019161233d565b93013591015290565b979693909261247361249f97949693966101208b526101208b019061225d565b6001600160a01b0390961660208a015260408901526060880152608087015285830360a087015261233d565b9060843560c084015260a43592831515809403610aca576123c09360e08201526101008184039101526123e4565b906040806124ec6124de858061230c565b60608652606086019161233d565b936001600160a01b03612501602083016121b1565b166020850152013591015290565b929560209561010093956123c099986125338995610120895261012089019061225d565b6001600160a01b039098168786015260408701526060860152608085015283850360a0850181905260008652815160c0860152602090910151151560e08501520191015201906123e4565b90926125996123c096949593956080845260808401906124cd565b6001600160a01b039095166020830152604082015280840360609091015261233d565b3d156125e7573d906125cd8261210d565b916125db60405193846120ec565b82523d6000602084013e565b606090565b60ff60008051602061309c833981519152541661260557565b63d93c066560e01b60005260046000fd5b903590601e1981360301821215610aca57018035906001600160401b038211610aca57602001918136038313610aca57565b60026000805160206130bc83398151915254146126735760026000805160206130bc83398151915255565b633ee5aeb560e01b60005260046000fd5b6001600160a01b03161561269457565b637138356f60e01b60005260046000fd5b6126b0919250612dc3565b1561274657620186a060843510612735576126ce6060830183612616565b919050610b406126de83836127ad565b1161271157505060800135621e848081116126f65750565b637643390f60e11b600052600452621e848060245260446000fd5b61271b92506127ad565b63cd6f4e6d60e01b600052600452610b4060245260446000fd5b6360ee124760e01b60005260046000fd5b632ca2f52b60e11b60005260046000fd5b51906001600160a01b0382168203610aca57565b81601f82011215610aca5780516127818161210d565b9261278f60405194856120ec565b81845260208284010111610aca576123c0916020808501910161223a565b919082018092116127ba57565b634e487b7160e01b600052601160045260246000fd5b6000906127ea8160018060a01b0384541630903390612ecd565b156128b15781546001600160a01b0316803b156116ef57828091602460405180948193632e1a7d4d60e01b83528760048401525af1908161289d575b506128505763793cd7bf60e11b825260008051602061303c83398151915260045260245260449150fd5b818080808460008051602061303c8339815191525af161286e6125bc565b5015612878575050565b63793cd7bf60e11b825260008051602061303c83398151915260045260245260449150fd5b836128aa919492946120ec565b9138612826565b63793cd7bf60e11b82523060045260245260449150fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561290157565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b600081815260008051602061307c8339815191526020908152604080832033845290915290205460ff161561296c5750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16612a30576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50600090565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff16612a30576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b600081815260008051602061307c833981519152602090815260408083206001600160a01b038616845290915290205460ff16612ba657600081815260008051602061307c833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b5050600090565b600081815260008051602061307c833981519152602090815260408083206001600160a01b038616845290915290205460ff1615612ba657600081815260008051602061307c833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b9091612c599083612dcb565b91612c6682303384612ecd565b15612c9e57612c758282612f9a565b15612c7f57505090565b637112ae7760e01b60005260018060a01b031660045260245260446000fd5b60405163489ca9b760e01b81526001600160a01b0390911660048201523360248201523060448201526064810191909152608490fd5b612cdd90612dc3565b156127465760608101610b40612cf38284612616565b905011612d0c575060800135621e848081116126f65750565b612d1591612616565b905063cd6f4e6d60e01b600052600452610b4060245260446000fd5b90816020910312610aca57518015158103610aca5790565b6040516311f9fbc960e21b81526001600160a01b039283166004820152602481019390935260209183916044918391600091165af160009181612d92575b506123c05750600090565b612db591925060203d602011612dbc575b612dad81836120ec565b810190612d31565b9038612d87565b503d612da3565b511561269457565b6040805163fc5fecd560e01b8152600481019390935290829060249082906001600160a01b03165afa908115612e5557600090600092612e11575b50816123c091612e86565b9150506040813d604011612e4d575b81612e2d604093836120ec565b81010312610aca576123c06020612e4383612757565b9201519190612e06565b3d9150612e20565b6040513d6000823e3d90fd5b90602082820312610aca5781516001600160401b038111610aca576123c0920161276b565b612e9282303384612ecd565b15612eaa57612ea18282612f9a565b15612c7f575050565b633338088960e11b60005260018060a01b03166004523060245260445260646000fd5b6040516323b872dd60e01b81526001600160a01b03928316600482015292821660248401526044830193909352909160209183916064918391600091165af160009181612d9257506123c05750600090565b60018060a01b031660008051602061303c8339815191528114918215612f59575b5050612f4857565b63416aebb560e11b60005260046000fd5b6001600160a01b03161490503880612f40565b60ff6000805160206130dc8339815191525460401c1615612f8957565b631afcd79f60e31b60005260046000fd5b604051630852cd8d60e31b81526004810192909252602090829060249082906000906001600160a01b03165af160009181612d9257506123c05750600090565b906130005750805115612fef57805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580613032575b613011575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b1561300956fe000000000000000000000000735b14bb79463307aacbed86daf3322b1e6226ab360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220dcfd9538ada3c73069acb60b3e0be5cfe0a45f6b61d299719994330d7b9593bc64736f6c634300081a003360c03461010057601f610b3a38819003918201601f19168301916001600160401b0383118484101761010557808492606094604052833981010312610100576100478161011b565b9061006060406100596020840161011b565b920161011b565b9173735b14bb79463307aacbed86daf3322b1e6226ab33036100ef57600380546001600160a01b0319166001600160a01b039290921691909117905560805260a0526040517f80699e81136d69cb8367ad52a994e25c722a86da654b561d0c14b61a777e7ac5600080a1610a0a9081610130823960805181818161018a015261065d015260a051816106d70152f35b632b2add3d60e01b60005260046000fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036101005756fe608080604052600436101561001357600080fd5b600090813560e01c9081630be1554714610817575080631f0e251b146107915780633ce4a5bc14610762578063513a9c051461072f578063569541b914610706578063842da36d146106c157806391dd645f146105f057806397770dff1461054c578063a7cb0507146104da578063c39aca3714610263578063c62178ac1461023a578063c63585cc146101e2578063d7fd7afb146101b9578063d936a012146101745763ee2815ba146100c657600080fd5b34610171576040366003190112610171576004356100e2610864565b9073735b14bb79463307aacbed86daf3322b1e6226ab33036101625780835260016020908152604080852080546001600160a01b0319166001600160a01b0390951694851790558051928352908201929092527fd1b36d30f6248e97c473b4d1348ca164a4ef6759022f54a58ec200326c39c45d91819081015b0390a180f35b632b2add3d60e01b8352600483fd5b80fd5b50346101715780600319360112610171576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461017157602036600319011261017157604060209160043581528083522054604051908152f35b5034610171576060366003190112610171576101fc610849565b610204610864565b604435929091906001600160a01b03841684036101715760206102288585856108d3565b6040516001600160a01b039091168152f35b50346101715780600319360112610171576004546040516001600160a01b039091168152602090f35b50346101715760a0366003190112610171576004359067ffffffffffffffff82116101715781360360606003198201126104d65761029f610864565b92604435906064356001600160a01b038116908190036104d25760843567ffffffffffffffff81116104ce57366023820112156104ce5780600401359367ffffffffffffffff85116104615736602486840101116104615773735b14bb79463307aacbed86daf3322b1e6226ab33036104bf5773735b14bb79463307aacbed86daf3322b1e6226ab831480156104b6575b6104a7576040516311f9fbc960e21b815260048101849052602481018290529697959688966001600160a01b0316906020816044818b865af1801561049c57610465575b50833b156104615760405197636f218ab760e11b8952608060048a01528560040135906022190181121561045d57850160246004820135910167ffffffffffffffff8211610459578136038113610459576103da91606060848c015260e48b01916108b2565b60248601356001600160a01b038116919082900361045957889760248b98968a968a989660448a9861042d9860a48b0152013560c4890152838801526044870152600319868503016064870152016108b2565b03925af1801561044c5761043e5780f35b6104479161087a565b388180f35b50604051903d90823e3d90fd5b8880fd5b8780fd5b8680fd5b6020813d602011610494575b8161047e6020938361087a565b8101031261045d57518015158114610374578780fd5b3d9150610471565b6040513d8a823e3d90fd5b63416aebb560e11b8752600487fd5b50308314610330565b632b2add3d60e01b8752600487fd5b8580fd5b8480fd5b5080fd5b50346101715760403660031901126101715760043560243573735b14bb79463307aacbed86daf3322b1e6226ab330361016257816040917f49f492222906ac486c3c1401fa545626df1f0c0e5a77a05597ea2ed66af9850d93855284602052808386205582519182526020820152a180f35b503461017157602036600319011261017157610566610849565b73735b14bb79463307aacbed86daf3322b1e6226ab33036105e1576001600160a01b031680156105d2576020817fdba79d534382d1a8ae108e4c8ecb27c6ae42ab8b91d44eedf88bd329f3868d5e926001600160601b0360a01b6003541617600355604051908152a180f35b63d92e233d60e01b8252600482fd5b632b2add3d60e01b8252600482fd5b50346101715760403660031901126101715760043561060d610864565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610162576003547f0ecec485166da6139b13bb7e033e9446e2d35348e80ebf1180d4afe2dba1704e9291610681916001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006108d3565b81845260026020908152604080862080546001600160a01b0319166001600160a01b0390941693841790558051938452908301919091528190810161015c565b50346101715780600319360112610171576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101715780600319360112610171576003546040516001600160a01b039091168152602090f35b503461017157602036600319011261017157602090600435815260028252604060018060a01b0391205416604051908152f35b5034610171578060031936011261017157602060405173735b14bb79463307aacbed86daf3322b1e6226ab8152f35b5034610171576020366003190112610171576107ab610849565b73735b14bb79463307aacbed86daf3322b1e6226ab33036105e1576001600160a01b031680156105d2576020817f3ade88e3922d64780e1bf4460d364c2970b69da813f9c0c07a1c187b5647636c926001600160601b0360a01b6004541617600455604051908152a180f35b9050346104d65760203660031901126104d6576004358252600160209081526040909220546001600160a01b03168152f35b600435906001600160a01b038216820361085f57565b600080fd5b602435906001600160a01b038216820361085f57565b90601f8019910116810190811067ffffffffffffffff82111761089c57604052565b634e487b7160e01b600052604160045260246000fd5b908060209392818452848401376000828201840152601f01601f1916010190565b91906001600160a01b038083169082168082146109c35710156109be57905b6001600160a01b038216156109ad576040519060208201926001600160601b03199060601b1683526001600160601b03199060601b1660348201526028815261093c60488261087a565b5190209060405191602083019160ff60f81b83526001600160601b03199060601b16602184015260358301527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f60558301526055825261099d60758361087a565b905190206001600160a01b031690565b633c5a83ed60e11b60005260046000fd5b6108f2565b63658f3e7f60e11b60005260046000fdfea2646970667358221220731883ff6e0ceb2606a746c8c954b8de749575b0c5816517e955a814399784bd64736f6c634300081a003360806040523461011457610014600054610119565b601f81116100cb575b507f577261707065642045746865720000000000000000000000000000000000001a60005560015461004e90610119565b601f8111610081575b6008630ae8aa8960e31b016001556002805460ff1916601217905560405161073190816101548239f35b6001600052601f0160051c7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6908101905b8181106100bf5750610057565b600081556001016100b2565b60008052601f0160051c7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563908101905b818110610108575061001d565b600081556001016100fb565b600080fd5b90600182811c92168015610149575b602083101461013357565b634e487b7160e01b600052602260045260246000fd5b91607f169161012856fe60806040526004361015610023575b361561001957600080fd5b6100216106b2565b005b60003560e01c806306fdde0314610423578063095ea7b3146103a957806318160ddd1461038d57806323b872dd1461035e5780632e1a7d4d146102b9578063313ce5671461029857806370a082311461025e57806395d89b411461013d578063a9059cbb1461010b578063d0e30db0146100f75763dd62ed3e0361000e57346100f25760403660031901126100f2576100ba610526565b6100c261053c565b6001600160a01b039182166000908152600460209081526040808320949093168252928352819020549051908152f35b600080fd5b60003660031901126100f2576100216106b2565b346100f25760403660031901126100f2576020610133610129610526565b60243590336105a8565b6040519015158152f35b346100f25760003660031901126100f2576000604051816001548060011c90600181168015610254575b6020831081146102405782855290811561022457506001146101d0575b50819003601f01601f1916810167ffffffffffffffff8111828210176101bc576101b89250604052604051918291826104dd565b0390f35b634e487b7160e01b83526041600452602483fd5b600184529050827fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b82821061020e57506020915082010183610184565b60018160209254838588010152019101906101f9565b90506020925060ff191682840152151560051b82010183610184565b634e487b7160e01b86526022600452602486fd5b91607f1691610167565b346100f25760203660031901126100f2576001600160a01b0361027f610526565b1660005260036020526020604060002054604051908152f35b346100f25760003660031901126100f257602060ff60025416604051908152f35b346100f25760203660031901126100f2576004353360005260036020526102e7816040600020541015610552565b3360005260036020526040600020610300828254610578565b90558060008115610355575b600080809381933390f115610349576040519081527f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b6560203392a2005b6040513d6000823e3d90fd5b506108fc61030c565b346100f25760603660031901126100f257602061013361037c610526565b61038461053c565b604435916105a8565b346100f25760003660031901126100f257602047604051908152f35b346100f25760403660031901126100f2576103c2610526565b3360008181526004602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b346100f25760003660031901126100f25760006040518182548060011c906001811680156104d3575b60208310811461024057828552908115610224575060011461049c5750819003601f01601f1916810167ffffffffffffffff8111828210176101bc576101b89250604052604051918291826104dd565b90508280526020832083905b8282106104bd57506020915082010183610184565b60018160209254838588010152019101906104a8565b91607f169161044c565b91909160208152825180602083015260005b818110610510575060409293506000838284010152601f8019910116010190565b80602080928701015160408286010152016104ef565b600435906001600160a01b03821682036100f257565b602435906001600160a01b03821682036100f257565b1561055957565b60405162461bcd60e51b81526020600482015260006024820152604490fd5b9190820391821161058557565b634e487b7160e01b600052601160045260246000fd5b9190820180921161058557565b60207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9160018060a01b03169283600052600382526105ee856040600020541015610552565b3384141580610691575b610646575b83600052600382526040600020610615868254610578565b905560018060a01b0316938460005260038252604060002061063882825461059b565b9055604051908152a3600190565b6000848152600483526040808220338352845290205461066890861115610552565b600084815260048352604080822033835284529020805461068a908790610578565b90556105fd565b506000848152600483526040808220338352845290205460001914156105f8565b33600052600360205260406000206106cb34825461059b565b90556040513481527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a256fea26469706673582212209e220afc3d58f06e9fcfb74d0eadc71ef1ec14a29eb328f69f1935849690effe64736f6c634300081a003360808060405234602f57600160ff19600c541617600c55600160ff19601f541617601f556192a490816100358239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c8062173d46146102465780631ed7831c146102415780632558fcec1461023c5780632ade38801461023757806332030cef14610232578063347f3a7c1461022d5780633e5e3c23146102285780633f7286f41461022357806366d9a9a01461021e578063735de9f7146102195780638016f22b146102145780638327f7901461020f57806385226c811461020a5780638c52853c14610205578063916a17c614610200578063944a3ba4146101fb578063acfdc212146101f6578063ad82a627146101f1578063b0464fdc146101ec578063b184b87c146101e7578063b1c388b8146101e2578063b5508aa9146101dd578063b8969900146101d8578063ba414fa6146101d3578063bea9849e146101ce578063cc5ad8b6146101c9578063ced6e793146101c4578063d333abf6146101bf578063d7b3eeaf146101ba578063e20c9f71146101b5578063ebcff1c6146101b0578063f51a071d146101ab578063f59e8a67146101a6578063f9a41697146101a15763fa7626d41461019c57600080fd5b6116ef565b6116b5565b61165c565b6115ec565b6112b0565b611230565b611217565b6111e3565b61117e565b611151565b611112565b6110ed565b6110ae565b611021565b611004565b610f68565b610ebc565b610e35565b610d99565b610d06565b610c5a565b610b95565b610b08565b610a33565b6108a8565b61087f565b6107d3565b610695565b610615565b6105c2565b610586565b6104a9565b610365565b6102d5565b61025b565b600091031261025657565b600080fd5b34610256576000366003190112610256576026546040516001600160a01b039091168152602090f35b906020808351928381520192019060005b8181106102a25750505090565b82516001600160a01b0316845260209384019390920191600101610295565b9060206102d2928181520190610284565b90565b346102565760003660031901126102565760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b818110610346576103428561033681870382610966565b604051918291826102c1565b0390f35b82546001600160a01b031684526020909301926001928301920161031f565b34610256576020366003190112610256576004356000526022602052602060018060a01b0360406000205416604051908152f35b60005b8381106103ac5750506000910152565b818101518382015260200161039c565b906020916103d581518092818552858086019101610399565b601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061041457505050505090565b9091929394603f198282030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b85010194019260005b82811061047e57505050505060208060019297019301930191939290610405565b909192939460208061049c600193605f1987820301895289516103bc565b970195019392910161045d565b3461025657600036600319011261025657601e546104c681611712565b906104d46040519283610966565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061051a576040518061034287826103e1565b6002602060019260405161052d8161090f565b848060a01b0386541681526105438587016117f3565b83820152815201920192019190610505565b6001600160a01b0381160361025657565b6064359061057382610555565b565b9060206102d29281815201906103bc565b34610256576020366003190112610256576103426105ae6004356105a981610555565b61184b565b6040519182916020835260208301906103bc565b34610256576040366003190112610256576106136024356004356105e582610555565b600052602260205260406000209060018060a01b03166bffffffffffffffffffffffff60a01b825416179055565b005b346102565760003660031901126102565760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b818110610676576103428561033681870382610966565b82546001600160a01b031684526020909301926001928301920161065f565b346102565760003660031901126102565760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b8181106106f6576103428561033681870382610966565b82546001600160a01b03168452602090930192600192830192016106df565b906020808351928381520192019060005b8181106107335750505090565b82516001600160e01b031916845260209384019390920191600101610726565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061078657505050505090565b90919293946020806107c4600193603f19868203018752895190836107b483516040845260408401906103bc565b9201519084818403910152610715565b97019301930191939290610777565b3461025657600036600319011261025657601b546107f081611712565b906107fe6040519283610966565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b83831061084457604051806103428782610753565b600260206001926040516108578161090f565b61086086611729565b815261086d858701611883565b8382015281520192019201919061082f565b34610256576000366003190112610256576025546040516001600160a01b039091168152602090f35b34610256576040366003190112610256576106136024356004356108cb82610555565b600090815260216020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761092a57604052565b6108f9565b61010081019081106001600160401b0382111761092a57604052565b606081019081106001600160401b0382111761092a57604052565b90601f801991011681019081106001600160401b0382111761092a57604052565b60405190610573602083610966565b60405190610573606083610966565b60405190610573608083610966565b6040519061057360c083610966565b6001600160401b03811161092a57601f01601f191660200190565b81601f82011215610256578035906109f5826109c3565b92610a036040519485610966565b8284526020838301011161025657816000926020809301838601378301015290565b908160a09103126102565790565b346102565760a036600319011261025657600435610a5081610555565b6024356001600160401b03811161025657610a6f9036906004016109de565b90606435604435610a7f82610555565b608435936001600160401b03851161025657610aa2610613953690600401610a25565b93611f79565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610adb57505050505090565b9091929394602080610af9600193603f1986820301875289516103bc565b97019301930191939290610acc565b3461025657600036600319011261025657601a54610b2581611712565b90610b336040519283610966565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310610b7857604051806103428782610aa8565b600160208192610b8785611729565b815201920192019190610b63565b34610256576040366003190112610256576020602435600435610bb782610555565b60009081526023835260408082206001600160a01b03938416835260205290205b5416604051908152f35b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610c1557505050505090565b9091929394602080610c4b600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610715565b97019301930191939290610c06565b3461025657600036600319011261025657601d54610c7781611712565b90610c856040519283610966565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b838310610ccb57604051806103428782610be2565b60026020600192604051610cde8161090f565b848060a01b038654168152610cf4858701611883565b83820152815201920192019190610cb6565b3461025657602036600319011261025657600435610d2381610555565b601f8054610100600160a81b03191660089290921b610100600160a81b0316919091179055005b9181601f84011215610256578235916001600160401b038311610256576020838186019501011161025657565b60409060a31901126102565760a490565b604090608319011261025657608490565b346102565761010036600319011261025657600435610db781610555565b6024356001600160401b03811161025657610dd69036906004016109de565b90604435610de2610566565b6084356001600160401b03811161025657610e01903690600401610d4a565b91610e0b36610d77565b9360e435966001600160401b03881161025657610e2f610613983690600401610a25565b96612b04565b346102565760e036600319011261025657602435600435610e5582610555565b604435610e6181610555565b60643590608435610e7181610555565b60a4356001600160401b03811161025657610e90903690600401610d4a565b93909260c435966001600160401b03881161025657610eb6610613983690600401610a25565b96613476565b3461025657600036600319011261025657601c54610ed981611712565b90610ee76040519283610966565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b838310610f2d57604051806103428782610be2565b60026020600192604051610f408161090f565b848060a01b038654168152610f56858701611883565b83820152815201920192019190610f18565b346102565760e036600319011261025657600435610f8581610555565b6024356001600160401b03811161025657610fa49036906004016109de565b90604435610fb181610555565b6064356001600160401b03811161025657610fd0903690600401610d4a565b90610fda36610d88565b9260c435956001600160401b03871161025657610ffe610613973690600401610a25565b956138d4565b346102565760003660031901126102565760208054604051908152f35b346102565760003660031901126102565760195461103e81611712565b9061104c6040519283610966565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b83831061109157604051806103428782610aa8565b6001602081926110a085611729565b81520192019201919061107c565b34610256576020366003190112610256576004356110cb81610555565b602680546001600160a01b0319166001600160a01b0392909216919091179055005b34610256576000366003190112610256576020611108613d3b565b6040519015158152f35b346102565760203660031901126102565760043561112f81610555565b602580546001600160a01b0319166001600160a01b0392909216919091179055005b3461025657600036600319011261025657601f5460405160089190911c6001600160a01b03168152602090f35b346102565760c03660031901126102565760243560043561119e82610555565b6044356111aa81610555565b606435608435916111ba83610555565b60a435946001600160401b038611610256576111dd610613963690600401610a25565b94613e3f565b34610256576020366003190112610256576004356000526021602052602060018060a01b0360406000205416604051908152f35b3461025657602036600319011261025657600435602055005b346102565760003660031901126102565760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b818110611291576103428561033681870382610966565b82546001600160a01b031684526020909301926001928301920161127a565b346102565760a0366003190112610256576004356024356112d081610555565b604435916112dd83610555565b6064356001600160401b038111610256576112fc903690600401610d4a565b6084356001600160401b0381116102565761131b903690600401610a25565b601f549095906004906020906113449060081c6001600160a01b03165b6001600160a01b031690565b6040516313917f7760e11b815292839182905afa90811561151d576000916115bd575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d576115a8575b50601f546113d79060081c6001600160a01b0316611338565b604051606087901b6001600160601b03191660208201529261140684603481015b03601f198101865285610966565b61140e610996565b9384526001600160a01b038716602085015285604085015261144a61143d876000526022602052604060002090565b546001600160a01b031690565b90823b156102565760009461147786926040519889978896879563bcf7f32b60e01b875260048701614072565b03926216e360f1908161158d575b5061152257611492611d28565b60205460405163348051d760e11b8152600481019190915290919060008160248160008051602061924f8339815191525afa801561151d57610613956114ef6114ea866040946114f5966000916114fa575b5061413d565b6141c7565b016141bd565b616213565b61151791503d806000833e61150f8183610966565b810190611b3b565b386114e4565b611afa565b505060205460405163348051d760e11b81526004810191909152905060008160248160008051602061924f8339815191525afa90811561151d57610613916114ea91600091611572575b506140b9565b61158791503d806000833e61150f8183610966565b3861156c565b8061159c60006115a293610966565b8061024b565b38611485565b8061159c60006115b793610966565b386113be565b6115df915060203d6020116115e5575b6115d78183610966565b810190611c26565b38611367565b503d6115cd565b3461025657604036600319011261025657602060243560043561160e82610555565b60009081526024835260408082206001600160a01b0393841683526020529020610bd8565b6060906003190112610256576004359060243561164f81610555565b906044356102d281610555565b346102565761061361169661167036611633565b9291600052602360205260406000209060018060a01b0316600052602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b34610256576106136116966116c936611633565b9291600052602460205260406000209060018060a01b0316600052602052604060002090565b3461025657600036600319011261025657602060ff601f54166040519015158152f35b6001600160401b03811161092a5760051b60200190565b9060405191600081548060011c92600182169182156117e9575b6020851083146117d55784875286939260208501929181156117b85750600114611776575b505061057392500383610966565b611787919250600052602060002090565b906000915b8483106117a157506105739350013880611768565b80548284015286935060209092019160010161178c565b9150506105739491925060ff19168252151560051b013880611768565b634e487b7160e01b84526022600452602484fd5b93607f1693611743565b9081546117ff81611712565b9261180d6040519485610966565b818452602084019060005260206000206000915b83831061182e5750505050565b60016020819261183d85611729565b815201920192019190611821565b90813b6000611859826109c3565b6118666040519182610966565b828152611872836109c3565b602082019190601f1901368337943c565b604051815480825290929183906118a36020830191600052602060002090565b926000905b8060078301106119eb576105739454918181106119cc575b8181106119ad575b81811061198e575b81811061196f575b818110611950575b818110611931575b818110611913575b106118fe575b500383610966565b6001600160e01b0319168152602001386118f6565b602083811b6001600160e01b031916855290936001910193016118f0565b604083901b6001600160e01b03191684529260019060200193016118e8565b606083901b6001600160e01b03191684529260019060200193016118e0565b608083901b6001600160e01b03191684529260019060200193016118d8565b60a083901b6001600160e01b03191684529260019060200193016118d0565b60c083901b6001600160e01b03191684529260019060200193016118c8565b6001600160e01b031960e084901b1684529260019060200193016118c0565b916008919350610100600191611a9a8754611a11838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b0194019201859293916118a8565b60405190611ab58261092f565b606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b90816020910312610256575190565b6040513d6000823e3d90fd5b90929192611b13816109c3565b91611b216040519384610966565b829482845282820111610256576020610573930190610399565b602081830312610256578051906001600160401b03821161025657019080601f830112156102565781516102d292602001611b06565b90610573601b602960405180956802db1b430b4b724b2160bd1b6020830152611ba38151809260208686019101610399565b81017f5d205b4552524f525d2047617465776179206e6f7420666f756e640000000000838201520301600419810185520183610966565b9060208251920151916bffffffffffffffffffffffff1983169260148210611c00575050565b6001600160601b031960149290920360031b82901b16169150565b519061057382610555565b9081602091031261025657516102d281610555565b90610573601b602960405180956802db1b430b4b724b2160bd1b6020830152611c6d8151809260208686019101610399565b81017f5d205b4552524f525d20437573746f6479206e6f7420666f756e640000000000838201520301600419810185520183610966565b906105736033602960405180956802db1b430b4b724b2160bd1b6020830152611cd68151809260208686019101610399565b81017f5d205b494e464f5d2045524332302f5a45544120776974686472617720636f6d8382015272706c65746564207375636365737366756c6c7960681b604982015203016013810185520183610966565b3d15611d53573d90611d39826109c3565b91611d476040519384610966565b82523d6000602084013e565b606090565b60266105739193929360296040519586926802db1b430b4b724b2160bd1b6020850152611d8e8151809260208688019101610399565b83017f5d205b4552524f525d2045524332302f5a4554412077697468647261772066618382015265034b632b21d160d51b6049820152611dd8825180936020604f85019101610399565b01010301601f198101845283610966565b8015150361025657565b91909160a081840312610256576040519060a082018281106001600160401b0382111761092a5760405281938135611e2a81610555565b83526020820135611e3a81611de9565b60208401526040820135611e4d81610555565b60408401526060820135916001600160401b03831161025657611e7660809392849383016109de565b60608501520135910152565b906105736023602960405180956802db1b430b4b724b2160bd1b6020830152611eb48151809260208686019101610399565b81017f5d205b4552524f525d2047617320746f6b656e207472616e736665722066616983820152621b195960ea1b604982015203016003810185520183610966565b906105736032602960405180956802db1b430b4b724b2160bd1b6020830152611f288151809260208686019101610399565b81017f5d205b494e464f5d2047617320746f6b656e207472616e7366657220636f6d7083820152716c65746564207375636365737366756c6c7960701b604982015203016012810185520183610966565b9293919093611f86611aa8565b60405163085e1f4d60e41b81529095906001600160a01b03831690602081600481855afa90811561151d57611fd59161143d91600091612657575b50808a526000526021602052604060002090565b6001600160a01b0390811660208901818152929190611ff390611338565b16156125df5761203761203161204f9261201e61133861143d8d516000526022602052604060002090565b1460408b0190815294611bda565b611bda565b60601c90565b6001600160a01b031660608901908152925b51151590565b1561223f57516004919060209061206e906001600160a01b0316611338565b604051635b11259160e01b815293849182905afa91821561151d5760009261221e575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af191821561151d57600080866121068295839561211f9861220a575b50516001600160a01b031690565b5af1612110611d28565b50151560c08701908152612049565b15612190575050915160405163348051d760e11b815260048101919091529150600090508160248160008051602061924f8339815191525afa90811561151d57610573916114ea91600091612175575b50611ef6565b61218a91503d806000833e61150f8183610966565b3861216f565b845160405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa95861561151d576121e16114ea610573986121ea946000916121ef575b50611e82565b51933690611df3565b614ddf565b61220491503d806000833e61150f8183610966565b386121db565b8061159c8661221893610966565b386120f8565b61223891925060203d6020116115e5576115d78183610966565b9038612091565b80516004919060209061225a906001600160a01b0316611338565b60405163dda79b7560e01b815293849182905afa91821561151d576000926125be575b506001600160a01b03919091166080880181815291906122ad906122a090611338565b1560a08a01908152612049565b6125465751600491906020906122cb906001600160a01b0316611338565b604051635b11259160e01b815293849182905afa91821561151d57600092612525575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af191821561151d576113386123629261133892612370956125165750516001600160a01b031690565b91516001600160a01b031690565b6123a361143d8461238c8a516000526024602052604060002090565b9060018060a01b0316600052602052604060002090565b90823b1561025657604051636ce5768960e11b81526001600160a01b0391821660048201529116602482015260448101849052906000908290606490829084905af19081612501575b5061247f5761242e946123fd611d28565b90600060c08201528160e0820152600081516040518099819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d576114ea6121ea936121e1926105739a600091612464575b50611d58565b61247991503d806000833e61150f8183610966565b3861245e565b5050505060008161249660c06124b6940160019052565b516040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea916000916124e6575b50611ca4565b6124fb91503d806000833e61150f8183610966565b386124e0565b8061159c600061251093610966565b386123ec565b8061159c600061221893610966565b61253f91925060203d6020116115e5576115d78183610966565b90386122ee565b50505050505050600061257391516040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea916000916125a3575b50611c3b565b6125b891503d806000833e61150f8183610966565b3861259d565b6125d891925060203d6020116115e5576115d78183610966565b903861227d565b50505050505050600061260c91516040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea9160009161263c575b50611b71565b61265191503d806000833e61150f8183610966565b38612636565b612679915060203d60201161267f575b6126718183610966565b810190611aeb565b38611fc1565b503d612667565b6040519061014082018281106001600160401b0382111761092a5760405260606101208360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201528260e082015260006101008201520152565b356102d281611de9565b908060209392818452848401376000828201840152601f01601f1916010190565b90516001600160a01b039081168252918216602082015291166040820152606081019190915260a0608082018190526102d2939101916126f3565b90610573603c602960405180956802db1b430b4b724b2160bd1b60208301526127818151809260208686019101610399565b81017f5d205b494e464f5d2045524332302f5a45544120776974686472617720616e64838201527f2063616c6c20636f6d706c65746564207375636365737366756c6c790000000060498201520301601c810185520183610966565b602f6105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526128138151809260208688019101610399565b83017f5d205b4552524f525d2045524332302f5a45544120776974686472617720616e838201526e0321031b0b636103330b4b632b21d1608d1b6049820152611dd8825180936020605885019101610399565b906004116102565790600490565b356001600160e01b031981169291906004821061288f575050565b6001600160e01b031960049290920360031b82901b16169150565b90610573605a60405180947f526563656976657220636f6e747261637420646f6573206e6f7420636f6e746160208301527f696e2066756e6374696f6e20776974682073656c6563746f722000000000000060408301526129148151809260208686019101610399565b81010301601f198101845283610966565b600a6105739193929360296040519586926802db1b430b4b724b2160bd1b602085015261295b8151809260208688019101610399565b83016902e902da2a92927a92e960b51b83820152611dd8825180936020603385019101610399565b9080601f830112156102565781516102d292602001611b06565b906020828203126102565781516001600160401b038111610256576102d29201612983565b90516001600160a01b03908116825290911660208201526060604082018190526102d2939101916126f3565b90610573603b602960405180956802db1b430b4b724b2160bd1b6020830152612a208151809260208686019101610399565b81017f5d205b494e464f5d2047617320746f6b656e207472616e7366657220616e6420838201527f63616c6c20636f6d706c65746564207375636365737366756c6c79000000000060498201520301601b810185520183610966565b602e6105739193929360296040519586926802db1b430b4b724b2160bd1b6020850152612ab28151809260208688019101610399565b83017f5d205b4552524f525d2047617320746f6b656e207472616e7366657220616e64838201526d01031b0b636103330b4b632b21d160951b6049820152611dd8825180936020605785019101610399565b95969491939096612b13612686565b60405163085e1f4d60e41b815290986001600160a01b03861691602081600481865afa90811561151d57612b619161143d916000916132d0575b50808d526000526021602052604060002090565b6001600160a01b0390811660208c01818152939190612b7f90611338565b16156132a057612bba6120318c949361202c6040612bd095612bb261133861143d8b516000526022602052604060002090565b149701968752565b6001600160a01b031660608c0190815292612049565b15612f8957612be1602084016126e9565b612e34575b805160049493929190602090612c04906001600160a01b0316611338565b604051635b11259160e01b815296879182905afa94851561151d57600095612e13575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039590951660048601526000856024818360008051602061924f8339815191525af194851561151d576113388992612c9892600098612e055750516001600160a01b031690565b923592612cc1612ca6610987565b6001600160a01b038d168152935b516001600160a01b031690565b92612ce2604051988997889687946338e2252760e01b8652600486016129c2565b0393f19081612de4575b50612d8157612d3094612cfd611d28565b90600061010082015281610120820152600081516040518099819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d576114ea6121ea936121e1926105739a600091612d66575b50612a7c565b612d7b91503d806000833e61150f8183610966565b38612d60565b50505050600081612496610100612d99940160019052565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091612dc9575b506129ee565b612dde91503d806000833e61150f8183610966565b38612dc3565b612e00903d806000833e612df88183610966565b81019061299d565b612cec565b8061159c8a61221893610966565b612e2d91955060203d6020116115e5576115d78183610966565b9338612c27565b612e47612e418686612866565b90612874565b8251612e6e90612e6a908390612e65906001600160a01b031661184b565b61544d565b1590565b612e785750612be6565b9250505087925060009150612e9360c0612ebd990160019052565b604051631623433d60e31b81526001600160e01b0319909116600482015296879081906024820190565b038160008051602061924f8339815191525afa95861561151d57612f1896612eed91600091612f6e575b506128aa565b9060e08101918252600081516040518099819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d576114ea6121ea936121e1926105739a600092612f51575b505190612925565b612f679192503d806000833e61150f8183610966565b9038612f49565b612f8391503d806000833e61150f8183610966565b38612ee7565b80519194929160049190602090612fa8906001600160a01b0316611338565b60405163dda79b7560e01b815293849182905afa91821561151d5760009261327f575b506001600160a01b039190911660808b018181529190612fff908c906120499060a090612ff790611338565b159201918252565b61324f57516004919060209061301d906001600160a01b0316611338565b604051635b11259160e01b815293849182905afa91821561151d5760009261322e575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af191821561151d576113386130b292611338928e956125165750516001600160a01b031690565b92868a6130c36020863596016126e9565b1561321a575061143d6131069161238c6130f460009a5b612cb46130e5610987565b6001600160a01b03909d168d52565b95516000526024602052604060002090565b93803b156102565788966131366000979388946040519a8b998a9889966356840c2960e11b885260048801612714565b0393f19081613205575b506131a25761315194612cfd611d28565b038160008051602061924f8339815191525afa801561151d576114ea6121ea936121e1926105739a600091613187575b506127dd565b61319c91503d806000833e61150f8183610966565b38613181565b505050506000816124966101006131ba940160019052565b038160008051602061924f8339815191525afa90811561151d57610573916114ea916000916131ea575b5061274f565b6131ff91503d806000833e61150f8183610966565b386131e4565b8061159c600061321493610966565b38613140565b6131069161238c6130f461143d939a6130da565b61324891925060203d6020116115e5576115d78183610966565b9038613040565b50505050505050505050600061257391516040518093819263348051d760e11b8352600483019190602083019252565b61329991925060203d6020116115e5576115d78183610966565b9038612fcb565b50505050505050505050600061260c91516040518093819263348051d760e11b8352600483019190602083019252565b6132e9915060203d60201161267f576126718183610966565b38612b4d565b60256105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526133258151809260208688019101610399565b83017f5d205b4552524f525d205a52433230206e6f7420666f756e6420666f722061738382015264039b2ba1d160dd1b6049820152611dd8825180936020604e85019101610399565b9060408061338584516060855260608501906103bc565b6020808601516001600160a01b03169085015293015191015290565b9194926133bb6102d297959260a0855260a085019061336e565b6001600160a01b0396871660208501526040840191909152941660608201528084036080909101526126f3565b90610573603a602960405180956802db1b430b4b724b2160bd1b602083015261341a8151809260208686019101610399565b81017f5d205b494e464f5d205a657461436861696e206465706f73697420616e642063838201527f616c6c20636f6d706c65746564207375636365737366756c6c7900000000000060498201520301601a810185520183610966565b95969491909661349761143d8661238c8a6000526023602052604060002090565b926001600160a01b038416156136b457601f546004906020906134c59060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091613695575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57613680575b50601f546135589060081c6001600160a01b0316611338565b6040516001600160601b031960608c901b166020820152601481529161357f603484610966565b613587610996565b9283526001600160a01b038b166020840152896040840152813b1561025657600087936135ce82968994604051998a988997889663c39aca3760e01b8852600488016133a1565b03926216e360f1908161366b575b506135f357610573956135ed611d28565b95615710565b50505050505061362060006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091613650575b506133e8565b61366591503d806000833e61150f8183610966565b3861364a565b8061159c600061367a93610966565b386135dc565b8061159c600061368f93610966565b3861353f565b6136ae915060203d6020116115e5576115d78183610966565b386134e8565b50505050509150506136e5915060006020546040518094819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d5760009261377a575b50604051632b65311f60e11b81526001600160a01b03909116600482015260008180602481015b038160008051602061924f8339815191525afa801561151d57610573926114ea9260009261375d575b506132ef565b6137739192503d806000833e61150f8183610966565b9038613757565b61372e9192506137956000913d8084833e61150f8183610966565b929150613707565b6040519060e082018281106001600160401b0382111761092a57604052606060c083600081526000602082015260006040820152600083820152826080820152600060a08201520152565b90610573602d602960405180956802db1b430b4b724b2160bd1b602083015261381a8151809260208686019101610399565b81017f5d205b494e464f5d2045564d20657865637574696f6e20636f6d706c65746564838201526c207375636365737366756c6c7960981b60498201520301600d810185520183610966565b60206105739193929360296040519586926802db1b430b4b724b2160bd1b8585015261389a81518092878688019101610399565b83017f5d205b4552524f525d2045564d20657865637574696f6e206661696c65643a2083820152611dd88251809387604985019101610399565b939194959290600460206138e661379d565b60405163085e1f4d60e41b815290989092839182906001600160a01b03165afa90811561151d576139319161143d91600091613d1c575b508089526000526021602052604060002090565b6001600160a01b039081166020880181815292919061394f90611338565b1615613ced5761203161396191611bda565b6001600160a01b031660408701908152602088019161397f836126e9565b613be3575b6004949596979860206139a0611338845160018060a01b031690565b604051635b11259160e01b815297889182905afa95861561151d57600096613bc2575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039690961660048701526000866024818360008051602061924f8339815191525af191821561151d57613a37611338613a3f926000998a96613bb45750516001600160a01b031690565b9135946126e9565b8214613baa57613a6582935b612cb4613a56610987565b6001600160a01b039096168652565b92613a86604051988997889687946338e2252760e01b8652600486016129c2565b0393f19081613b91575b50613b3157613ad292613aa1611d28565b90600060a08201528160c0820152600081516040518097819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d576114ea613b1193613b089261057398600091613b16575b50613866565b51913690611df3565b6146df565b613b2b91503d806000833e61150f8183610966565b38613b02565b505060008161249660a0613b46940160019052565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091613b76575b506137e8565b613b8b91503d806000833e61150f8183610966565b38613b70565b613ba5903d806000833e612df88183610966565b613a90565b613a658993613a4b565b8061159c8861221893610966565b613bdc91965060203d6020116115e5576115d78183610966565b94386139c3565b613bf0612e418686612866565b98613c0b612e6a8b612e656105a9875160018060a01b031690565b613c16579850613984565b50505050505090916000613c5b94613c316060840160019052565b604051631623433d60e31b81526001600160e01b0319909116600482015294859081906024820190565b038160008051602061924f8339815191525afa93841561151d57613cb594613c8a91600091612f6e57506128aa565b9060808101918252600081516040518097819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d576114ea613b1193613b089261057398600092612f5157505190612925565b5050935160405163348051d760e11b81526004810191909152945060009350849250829150506024810161260c565b613d35915060203d60201161267f576126718183610966565b3861391d565b60085460ff168015613d4a5790565b50604051630667f9d760e41b815260008051602061924f833981519152600482018190526519985a5b195960d21b6024830152602090829060449082905afa90811561151d57600091613d9e575b50151590565b613db7915060203d60201161267f576126718183610966565b38613d98565b906105736031602960405180956802db1b430b4b724b2160bd1b6020830152613def8151809260208686019101610399565b81017f5d205b494e464f5d205a657461436861696e206465706f73697420636f6d706c838201527065746564207375636365737366756c6c7960781b604982015203016011810185520183610966565b939194929094613e6061143d8461238c886000526023602052604060002090565b906001600160a01b0382161561404257601f54600490602090613e8e9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091614023575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d5761400e575b50601f54613f219060081c6001600160a01b0316611338565b803b1561025657604051633d14d1b760e21b81526001600160a01b038481166004830152602482018690529290921660448301526000908290606490829084905af19081613ff9575b50613f815761057395613f7b611d28565b95615db5565b505050505050613fae60006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091613fde575b50613dbd565b613ff391503d806000833e61150f8183610966565b38613fd8565b8061159c600061400893610966565b38613f6a565b8061159c600061401d93610966565b38613f08565b61403c915060203d6020116115e5576115d78183610966565b38613eb1565b505060205460405163348051d760e11b8152600481019190915294509092506000915083905080602481016136e5565b909261408d6102d2969495939560a0845260a084019061336e565b6001600160a01b03958616602084015260006040840152941660608201528084036080909101526126f3565b906105736033602960405180956802db1b430b4b724b2160bd1b60208301526140eb8151809260208686019101610399565b81017f5d205b494e464f5d205a657461436861696e20657865637574696f6e20636f6d8382015272706c65746564207375636365737366756c6c7960681b604982015203016013810185520183610966565b60266105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526141738151809260208688019101610399565b83017f5d205b4552524f525d205a657461436861696e20657865637574696f6e2066618382015265034b632b21d160d51b6049820152611dd8825180936020604f85019101610399565b356102d281610555565b6141f46142026105739260405192839163104c13eb60e21b602084015260206024840181815201906103bc565b03601f198101835282610966565b617fe7565b90610573601e602960405180956802db1b430b4b724b2160bd1b60208301526142398151809260208686019101610399565b81017f5d205b494e464f5d2063616c6c4f6e5265766572742069732066616c73650000838201520301600119810185520183610966565b90610573601f602960405180956802db1b430b4b724b2160bd1b60208301526142a28151809260208686019101610399565b81017f5d205b4552524f525d2072657665727441646472657373206973207a65726f00838201520301600019810185520183610966565b90608060606102d29360018060a01b03815116845260018060a01b0360208201511660208501526040810151604085015201519181606082015201906103bc565b9060206102d29281815201906142d9565b600b90602d61057393959460296040519788946802db1b430b4b724b2160bd1b6020870152614363815180926020868a019101610399565b85017f5d205b494e464f5d20457865637574696e67206f6e526576657274206f6e2072838201526c032bb32b93a20b2323932b9b99609d1b60498201526143b4825180936020605685019101610399565b01016a0161031b7b73a32bc3a1d160ad1b83820152611dd8825180936020603885019101610399565b6001600160a01b039182168152602081019290925290911660408201526080606082018190526102d2929101906142d9565b6001600160a01b0390911681526040602082018190526102d2929101906142d9565b602081830312610256578051906001600160401b03821161025657019080601f830112156102565781519161446583611712565b926144736040519485610966565b80845260208085019160051b830101918383116102565760208101915b83831061449f57505050505090565b82516001600160401b038111610256578201906060828703601f19011261025657604051906144cd8261094b565b60208301516001600160401b0381116102565760209084010187601f82011215610256578051906144fd82611712565b9161450b6040519384610966565b80835260208084019160051b830101918a831161025657602001905b8282106145795750505082526040830151916001600160401b0383116102565761456960608561455f8b602080999881990101612983565b8685015201611c1b565b6040820152815201920191614490565b8151815260209182019101614527565b634e487b7160e01b600052603260045260246000fd5b8051156145ac5760200190565b614589565b8051600110156145ac5760400190565b8051600210156145ac5760600190565b80518210156145ac5760209160051b010190565b90610573601d602960405180956802db1b430b4b724b2160bd1b60208301526146178151809260208686019101610399565b81017f5d205b494e464f5d204576656e742066726f6d206f6e5265766572743a000000838201520301600219810185520183610966565b6040519061465d604083610966565b600a825269101032b6b4ba3a32b91d60b11b6020830152565b60405190614685604083610966565b600782526610103230ba309d60c91b6020830152565b604051906146aa604083610966565b60078252662020746f70696360c81b6020830152565b604051906146cf604083610966565b60018252601d60f91b6020830152565b9190606083019081516146f06109a5565b6001600160a01b03851681529060006020830152600060408301526060820152602085015115614d705760008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57614d5b575b5084516001600160a01b031615614cda5760405163348051d760e11b81526004810183905260008160248160008051602061924f8339815191525afa90811561151d57600091614cbf575b5085516147e7906000906001600160a01b03165b604051632b65311f60e11b81526001600160a01b03909116600482015291829081906024820190565b038160008051602061924f8339815191525afa801561151d5761483d91600091614ca4575b506000604051614823816141f4886020830161431a565b604051809481926371aad10d60e01b835260048301610575565b038160008051602061924f8339815191525afa90811561151d5761486d936114ea93600093614c87575b5061432b565b601f5460049060209061488b9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091614c68575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57614c53575b50601f5461491e9060081c6001600160a01b0316611338565b85519091906001600160a01b031690823b1561025657614958926000928360405180968195829463184b079360e01b84526004840161440f565b03926216e360f19081614c3e575b5061498c57600080614984604061057397015160018060a01b031690565b935193616ba4565b9150506040519163064554e960e21b83526000836004818360008051602061924f8339815191525af192831561151d57600093614c1b575b5060005b8351811015614c15576149ef60406149e083876145d1565b5101516001600160a01b031690565b6040830151614a06906001600160a01b0316611338565b6001600160a01b0390911614614a1f575b6001016149c8565b60405163348051d760e11b815260048101849052909491929060008160248160008051602061924f8339815191525afa90811561151d57614a6c916114ea91600091614bfc575b506145e5565b614a8060006147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d57614ab391600091614be3575b50614aae61464e565b618002565b614ae160006020614ac488886145d1565b510151604051809381926371aad10d60e01b835260048301610575565b038160008051602061924f8339815191525afa801561151d57614b0f91600091614bca575b50614aae614676565b60005b614b1c86866145d1565b515151811015614bc157806000614b41614b6193614b3a8a8a6145d1565b51516145d1565b5160405180948192631623433d60e31b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d57600192614ba291600091614ba8575b50614b9361469b565b83614b9c6146c0565b91618046565b01614b12565b614bbb913d8091833e61150f8183610966565b38614b8a565b50919093614a17565b614bdd913d8091833e61150f8183610966565b38614b06565b614bf6913d8091833e61150f8183610966565b38614aa5565b614c0f913d8091833e61150f8183610966565b38614a66565b50505050565b614c3791933d8091833e614c2f8183610966565b810190614431565b91386149c4565b8061159c6000614c4d93610966565b38614966565b8061159c6000614c6293610966565b38614905565b614c81915060203d6020116115e5576115d78183610966565b386148ae565b614c9d9193503d806000833e61150f8183610966565b9138614867565b614cb991503d806000833e61150f8183610966565b3861480c565b614cd491503d806000833e61150f8183610966565b386147aa565b5060205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa94851561151d57614984604060009392614d336114ea6105739a87968791614d41575b50614270565b01516001600160a01b031690565b614d5591503d8089833e61150f8183610966565b38614d2d565b8061159c6000614d6a93610966565b3861475f565b5060405163348051d760e11b81526004810182905260008160248160008051602061924f8339815191525afa94851561151d57614984604060009392614d336114ea6105739a87968791614dc5575b50614207565b614dd991503d8089833e61150f8183610966565b38614dbf565b93929060608501928351614df16109a5565b6001600160a01b0387168152906001600160a01b03841660208301528260408301526060820152614e256020880151151590565b156153bd5760008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d576153a8575b5086516001600160a01b03161561533e5760405163348051d760e11b81526004810185905260008160248160008051602061924f8339815191525afa90811561151d57600091615323575b508751614ed2906000906001600160a01b03166147be565b038160008051602061924f8339815191525afa801561151d57614f0d91600091614ca457506000604051614823816141f4886020830161431a565b038160008051602061924f8339815191525afa90811561151d57614f3c936114ea93600093614c87575061432b565b601f54600490602090614f5a9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091615304575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d576152ef575b506001600160a01b03831661524f57601f54614ffb9060081c6001600160a01b0316611338565b87519091906001600160a01b031690823b1561025657615035926000928360405180968195829463184b079360e01b84526004840161440f565b03926216e360f1908161523a575b50615062576040959095015161057395906001600160a01b0316614984565b50509150505b60405163064554e960e21b8152916000836004818360008051602061924f8339815191525af192831561151d5760009361521f575b5060005b8351811015614c15576150b960406149e083876145d1565b60408301516150d0906001600160a01b0316611338565b6001600160a01b03909116146150e9575b6001016150a1565b60405163348051d760e11b815260048101849052909491929060008160248160008051602061924f8339815191525afa90811561151d57615135916114ea91600091614bfc57506145e5565b61514960006147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d5761517691600091614be35750614aae61464e565b61518760006020614ac488886145d1565b038160008051602061924f8339815191525afa801561151d576151b491600091614bca5750614aae614676565b60005b6151c186866145d1565b51515181101561521657806000614b416151df93614b3a8a8a6145d1565b038160008051602061924f8339815191525afa91821561151d5760019261521091600091614ba85750614b9361469b565b016151b7565b509190936150e1565b61523391933d8091833e614c2f8183610966565b913861509d565b8061159c600061524993610966565b38615043565b601f546152679060081c6001600160a01b0316611338565b87519091906001600160a01b031690823b15610256576152a39260009283604051809681958294639d4ba46560e01b84528a8c600486016143dd565b03926216e360f190816152da575b506152d0576040959095015161057395906001600160a01b0316614984565b5050915050615068565b8061159c60006152e993610966565b386152b1565b8061159c60006152fe93610966565b38614fd4565b61531d915060203d6020116115e5576115d78183610966565b38614f7d565b61533891503d806000833e61150f8183610966565b38614eba565b5060205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d5761057397614d336114ea614984946040946000916153935750614270565b614d5591503d806000833e61150f8183610966565b8061159c60006153b793610966565b38614e6f565b5060405163348051d760e11b81526004810184905260008160248160008051602061924f8339815191525afa90811561151d5761057397614d336114ea6149849460409460009161540e5750614207565b614dd991503d806000833e61150f8183610966565b634e487b7160e01b600052601160045260246000fd5b906104b0820180921161544857565b615423565b919060005b600481018082116154485784511061549757602081850101516001600160e01b031983811691161461548f57600019811461544857600101615452565b506001925050565b506000925050565b604051906154ac8261092f565b600060e083606081528260208201528260408201528260608201528260808201528260a08201528260c08201520152565b604051906154ec604083610966565b600782526619195c1bdcda5d60ca1b6020830152565b60405190615511604083610966565b601082526f19195c1bdcda5d08185b990818d85b1b60821b6020830152565b600990601461057393959460296040519788946802db1b430b4b724b2160bd1b6020870152615568815180926020868a019101610399565b85017302e902da2a92927a92e902d32ba30a1b430b4b7160651b8382015261559a825180936020603d85019101610399565b0101680103330b4b632b21d160bd1b83820152611dd8825180936020601d85019101610399565b919082604091031261025657602082516155da81610555565b92015190565b9081602091031261025657516102d281611de9565b90610573603a602960405180956802db1b430b4b724b2160bd1b60208301526156278151809260208686019101610399565b81017f5d205b4552524f525d204661696c656420746f206d696e74205a524332302074838201527f6f6b656e7320666f722070726f746f636f6c206164647265737300000000000060498201520301601a810185520183610966565b9190820391821161544857565b90610573602f602960405180956802db1b430b4b724b2160bd1b60208301526156c28151809260208686019101610399565b81017f5d205b4552524f525d204661696c656420746f206275726e2072656d61696e69838201526e6e67205a5243323020746f6b656e7360881b60498201520301600f810185520183610966565b9094939195615751939661572261549f565b9161572b615502565b835260006020546040518098819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa95861561151d576114ea826157b99861578893600091615d9a575b50865190615530565b6040805163fc5fecd560e01b815260808901356004820152966001600160a01b038416939190889081906024820190565b0381865afa801561151d57600097600091615d65575b50604085019081526001600160a01b039097166020850190815296601f546004906020906158089060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091615d46575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03821660048201526000816024818360008051602061924f8339815191525af1801561151d57615d31575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018d905260208160448160008a5af190811561151d57600091615d12575b5015156060870190815260008051602061924f8339815191523b15610256576040516303223eab60e11b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af190811561151d5761592e92612e6a92615cfd575b5051151590565b615c805780519060a0860191825260c086019861594b8a60019052565b805161595f906001600160a01b0316611338565b8603615bf8575b505060008051602061924f8339815191523b15610256576040516390c5013b60e01b8152906000826004818360008051602061924f8339815191525af191821561151d576159bb92615be3575b50518b615683565b608085018181529a9015615bc4575050601f54600491506020906159ea9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091615ba5575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57600092602092615a9292615b91575b508a51604051948580948193630852cd8d60e31b8352600483019190602083019252565b03925af1801561151d57615abd92612e6a92600092615b59575b5060e0612049910191829015159052565b615ae157615adb615ad361057397519451151590565b943690611df3565b90618832565b505050505050615b0e60006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091615b3e575b50615690565b615b5391503d806000833e61150f8183610966565b38615b38565b612049919250615b8260e09160203d602011615b8a575b615b7a8183610966565b8101906155e0565b929150615aac565b503d615b70565b8061159c86615b9f93610966565b38615a6e565b615bbe915060203d6020116115e5576115d78183610966565b38615a0d565b9496509450956105739850615bde925060409150016141bd565b61788e565b8061159c6000615bf293610966565b386159b3565b60008a52516001600160a01b03169051601f54600490602090615c269060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa91821561151d57615c56938f92600094615c5f575b5086618362565b81523880615966565b615c7991945060203d6020116115e5576115d78183610966565b9238615c4f565b5050505050505050505050615cb260006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091615ce2575b506155f5565b615cf791503d806000833e61150f8183610966565b38615cdc565b8061159c6000615d0c93610966565b38615927565b615d2b915060203d602011615b8a57615b7a8183610966565b386158be565b8061159c6000615d4093610966565b38615880565b615d5f915060203d6020116115e5576115d78183610966565b3861582b565b9050615d8a91975060403d604011615d93575b615d828183610966565b8101906155c1565b969096386157cf565b503d615d78565b615daf91503d806000833e61150f8183610966565b3861577f565b90949391956157519396615dc761549f565b9161572b6154dd565b90610573601e602960405180956802db1b430b4b724b2160bd1b6020830152615e028151809260208686019101610399565b81017f5d205b4552524f525d2061626f727441646472657373206973207a65726f0000838201520301600119810185520183610966565b6007600461057392949394602f6040519687926e021b0b713ba103a3930b739b332b91608d1b6020850152615e778151809260208688019101610399565b83016301037b3160e51b83820152615e99825180936020603385019101610399565b01016620746f6b656e7360c81b838201520301601819810185520183610966565b600460129295946017610573956029604051998a966802db1b430b4b724b2160bd1b6020890152615ef4815180926020868c019101610399565b87017f5d205b4552524f525d205472616e7366657272696e672000000000000000000083820152615f2f825180936020604085019101610399565b01016301037b3160e51b83820152615f51825180936020601b85019101610399565b0101710103a37b5b2b739903a379039b2b73232b9160751b83820152611dd8825180936020601685019101610399565b602d6105739193929360296040519586926802db1b430b4b724b2160bd1b6020850152615fb78151809260208688019101610399565b83017f5d205b494e464f5d205472616e7366657272696e6720746f6b656e7320746f20838201526c030b137b93a20b2323932b9b99609d1b6049820152611dd8825180936020605685019101610399565b6102d29160a0616021835160c0845260c08401906103bc565b92600180831b036020820151166020840152604081015160408401526060810151151560608401526080810151608084015201519060a08184039101526103bc565b9060206102d2928181520190616008565b601d90601261057393959460296040519788946802db1b430b4b724b2160bd1b60208701526160ac815180926020868a019101610399565b85017102e902da4a72327ae9021b7b73a3930b1ba160751b838201526160dc825180936020603b85019101610399565b01017f20657865637574696e67206f6e41626f72742c20636f6e746578743a2000000083820152611dd8825180936020602f85019101610399565b6001600160a01b0390911681526040602082018190526102d292910190616008565b90610573601c602960405180956802db1b430b4b724b2160bd1b602083015261616b8151809260208686019101610399565b81017f5d205b494e464f5d204576656e742066726f6d206f6e41626f72743a00000000838201520301600319810185520183610966565b601a6105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526161d88151809260208688019101610399565b83017f5d205b4552524f525d206f6e41626f7274206661696c65643a2000000000000083820152611dd8825180936020604385019101610399565b6001600160a01b0381169360009390928515616a625760205460405163348051d760e11b81526004810191909152858160248160008051602061924f8339815191525afa90811561151d578691616a48575b50604051632b65311f60e11b81526001600160a01b038516600482015290868260248160008051602061924f8339815191525afa91821561151d5787926162b7926114ea928592616a2c575b50615f81565b616836575b604080516001600160a01b0390951660208601526162dd90859081016113f8565b6162e56109b4565b9384526001600160a01b0385166020850152604084018590528415156060850152608084015260a083015260205460405163348051d760e11b8152600481019190915283818060248101038160008051602061924f8339815191525afa90811561151d57849161681c575b50604051632b65311f60e11b81526001600160a01b0383166004820152848160248160008051602061924f8339815191525afa801561151d576163aa918691616802575b5085604051614823816141f48960208301616063565b038160008051602061924f8339815191525afa90811561151d576163d9936114ea9388936167e6575b50616074565b601f546004906020906163f79060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d5784916167c7575b5060008051602061924f8339815191523b156167975760405163ca669fa760e01b81526001600160a01b0391909116600482015283816024818360008051602061924f8339815191525af1801561151d576167b3575b5060008051602061924f8339815191523b156167af576040516320d797a960e11b815283816004818360008051602061924f8339815191525af1801561151d5761679b575b50601f546164cd9060081c6001600160a01b0316611338565b90813b15616797579183916164f99383604051809681958294632095dedb60e01b845260048401616117565b03925af19081616783575b50616583576165399150616516611d28565b816020546040518095819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d5761057393836114ea9492616568575b50506161a2565b61657c92503d8091833e61150f8183610966565b3880616561565b60405163064554e960e21b81529181836004818360008051602061924f8339815191525af192831561151d578293616767575b50815b8351811015614c1557816165d561133860406149e085896145d1565b146165e3575b6001016165b9565b60205460405163348051d760e11b81526004810191909152909490838160248160008051602061924f8339815191525afa90811561151d57616630916114ea91869161674d575b50616139565b616643836147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d5761666f9185916167395750614aae61464e565b61667f836020614ac488886145d1565b038160008051602061924f8339815191525afa801561151d576166ab9185916167255750614aae614676565b825b6166b786866145d1565b51515181101561671e578084614b416166d493614b3a8a8a6145d1565b038160008051602061924f8339815191525afa91821561151d5760019261670491879161670a5750614b9361469b565b016166ad565b614bbb91503d8089833e61150f8183610966565b50936165db565b614bdd91503d8087833e61150f8183610966565b614bf691503d8087833e61150f8183610966565b61676191503d8088833e61150f8183610966565b3861662a565b61677c9193503d8084833e614c2f8183610966565b91386165b6565b8061159c8461679193610966565b38616504565b8380fd5b8061159c856167a993610966565b386164b4565b8280fd5b8061159c856167c193610966565b3861646f565b6167e0915060203d6020116115e5576115d78183610966565b38616419565b6167fb9193503d808a833e61150f8183610966565b91386163d3565b61681691503d8088833e61150f8183610966565b38616394565b61683091503d8086833e61150f8183610966565b38616350565b601f546004906020906168549060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d578691616a0d575b5060008051602061924f8339815191523b156169d85760405163ca669fa760e01b81526001600160a01b038216600482015286816024818360008051602061924f8339815191525af1801561151d576169f9575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018790526020816044818a805af1801561151d576169dc575b5060008051602061924f8339815191523b156169d85760405163ca669fa760e01b81526001600160a01b0391909116600482015285816024818360008051602061924f8339815191525af1801561151d576169c4575b5060405163a9059cbb60e01b81526001600160a01b0384166004820152602481018690529360208560448189805af190811561151d576113f8956162dd926169a5575b509450506162bc565b6169bd9060203d602011615b8a57615b7a8183610966565b503861699c565b8061159c876169d293610966565b38616959565b8580fd5b6169f49060203d602011615b8a57615b7a8183610966565b616903565b8061159c88616a0793610966565b386168ca565b616a26915060203d6020116115e5576115d78183610966565b38616876565b616a419192503d8087833e61150f8183610966565b90386162b1565b616a5c91503d8088833e61150f8183610966565b38616265565b60205460405163348051d760e11b815260048101919091528590818160248160008051602061924f8339815191525afa90811561151d57616aae916114ea918491616b8a575b50615dd0565b5060405163348051d760e11b81526000600482018190528160248160008051602061924f8339815191525afa90811561151d57600091616b6f575b50604051632b65311f60e11b81526000600482018190528180602481015b038160008051602061924f8339815191525afa801561151d57616b4e92616b3692600092616b52575b50615e39565b60405162461bcd60e51b815291829160048301610575565b0390fd5b616b689192503d806000833e61150f8183610966565b9084616b30565b616b8491503d806000833e61150f8183610966565b81616ae9565b616b9e91503d8086833e61150f8183610966565b84616aa8565b6001600160a01b03811695949093909290919086156173e95760205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d576000916173ce575b50604051632b65311f60e11b81526001600160a01b038716600482015260008160248160008051602061924f8339815191525afa801561151d57616c4a926114ea926000926173b85750615f81565b6001600160a01b038116801515806173af575b6171ab575b50604080516001600160a01b039097166020880152616cae9190616c9390889081015b03601f198101895288610966565b616c9b6109b4565b9687526001600160a01b03166020870152565b604085015260016060850152608084015260a083015260205460405163348051d760e11b815260048101919091526000818060248101038160008051602061924f8339815191525afa90811561151d57600091617190575b50604051632b65311f60e11b81526001600160a01b038316600482015260008160248160008051602061924f8339815191525afa801561151d57616d6391600091617175575b506000604051614823816141f48960208301616063565b038160008051602061924f8339815191525afa90811561151d57616d92936114ea9360009361715f5750616074565b601f54600490602090616db09060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617140575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d5761712b575b5060008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57617116575b50601f54616e899060081c6001600160a01b0316611338565b91823b1561025657616eb59260009283604051809681958294632095dedb60e01b845260048401616117565b03925af19081617101575b50616f355750616ece611d28565b60205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa91821561151d57610573926114ea92600091616f1a575b506161a2565b616f2f91503d806000833e61150f8183610966565b38616f14565b60405163064554e960e21b8152906000826004818360008051602061924f8339815191525af191821561151d576000926170e6575b5060005b82518110156170e15781616f8a61133860406149e085886145d1565b14616f98575b600101616f6e565b60205460405163348051d760e11b8152600481019190915290939060008160248160008051602061924f8339815191525afa90811561151d57616fe6916114ea916000916170ce5750616139565b616ffa60006147be60406149e088886145d1565b038160008051602061924f8339815191525afa801561151d5761702791600091614be35750614aae61464e565b61703860006020614ac487876145d1565b038160008051602061924f8339815191525afa801561151d5761706591600091614bca5750614aae614676565b60005b61707285856145d1565b5151518110156170c757806000614b4161709093614b3a89896145d1565b038160008051602061924f8339815191525afa91821561151d576001926170c191600091614ba85750614b9361469b565b01617068565b5092616f90565b616761913d8091833e61150f8183610966565b505050565b6170fa91923d8091833e614c2f8183610966565b9038616f6a565b8061159c600061711093610966565b38616ec0565b8061159c600061712593610966565b38616e70565b8061159c600061713a93610966565b38616e2a565b617159915060203d6020116115e5576115d78183610966565b38616dd3565b6167fb9193503d806000833e61150f8183610966565b61718a91503d806000833e61150f8183610966565b38616d4c565b6171a591503d806000833e61150f8183610966565b38616d06565b601f549091906004906020906171cc9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617390575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03821660048201526000816024818360008051602061924f8339815191525af1801561151d5761737b575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018590526020816044816000885af1801561151d5761735e575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57617349575b5060405163a9059cbb60e01b81526001600160a01b03871660048201526024810184905291602090839060449082906000905af1801561151d57616c8597616cae93616c939261732a575b5097505090616c62565b6173429060203d602011615b8a57615b7a8183610966565b5038617320565b8061159c600061735893610966565b386172d5565b6173769060203d602011615b8a57615b7a8183610966565b61727e565b8061159c600061738a93610966565b38617244565b6173a9915060203d6020116115e5576115d78183610966565b386171ef565b50821515616c5d565b616a419192503d806000833e61150f8183610966565b6173e391503d806000833e61150f8183610966565b38616bfb565b95509250505060205460405163348051d760e11b81526000818061741585600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57617444916114ea916000916178735750615dd0565b6001600160a01b038416908115158061786a575b156177e15760405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d576000916177c6575b5060405163348051d760e11b8152600481018490529460008660248160008051602061924f8339815191525afa95861561151d576000966177a3575b50604051632b65311f60e11b81526001600160a01b03909116600482015260008180602481015b038160008051602061924f8339815191525afa90811561151d57600091617788575b50604051632b65311f60e11b81526001600160a01b03861660048201529060008260248160008051602061924f8339815191525afa90811561151d57600497617572946114ea9460009461776b575b50615eba565b601f5460209061758d9060081c6001600160a01b0316611338565b6040516313917f7760e11b815295869182905afa93841561151d5760009461774a575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03851660048201526000816024818360008051602061924f8339815191525af1801561151d57617735575b506040516311f9fbc960e21b81526001600160a01b0385166004820152602481018390526020816044816000865af1801561151d57617718575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039490941660048501526000846024818360008051602061924f8339815191525af192831561151d576176d794602094617703575b5060405163a9059cbb60e01b81526001600160a01b03909116600482015260248101929092529092839190829060009082906044820190565b03925af1801561151d576176e85750565b6177009060203d602011615b8a57615b7a8183610966565b50565b8061159c600061771293610966565b3861769e565b6177309060203d602011615b8a57615b7a8183610966565b61763f565b8061159c600061774493610966565b38617605565b61776491945060203d6020116115e5576115d78183610966565b92386175b0565b6177819194503d806000833e61150f8183610966565b923861756c565b61779d91503d806000833e61150f8183610966565b3861751d565b6174fb9196506177be6000913d8084833e61150f8183610966565b9691506174d4565b6177db91503d806000833e61150f8183610966565b38617498565b60405163348051d760e11b8152600481018490528560008260248160008051602061924f8339815191525afa91821561151d57600092617847575b50604051632b65311f60e11b81526001600160a01b0390911660048201526000818060248101616b07565b616b079192506178626000913d8084833e61150f8183610966565b92915061781c565b50821515617458565b61788891503d806000833e61150f8183610966565b38616aa8565b6001600160a01b03811695949093909290919086156173e95760205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d57600091617fcc575b50604051632b65311f60e11b81526001600160a01b038716600482015260008160248160008051602061924f8339815191525afa801561151d57617934926114ea926000926173b85750615f81565b6001600160a01b03811680151580617fc3575b617dbf575b50604080516001600160a01b0390971660208801526179739190616c939088908101616c85565b604085015260006060850152608084015260a083015260205460405163348051d760e11b815260048101919091526000818060248101038160008051602061924f8339815191525afa90811561151d57600091617da4575b50604051632b65311f60e11b81526001600160a01b038316600482015260008160248160008051602061924f8339815191525afa801561151d57617a279160009161717557506000604051614823816141f48960208301616063565b038160008051602061924f8339815191525afa90811561151d57617a56936114ea9360009361715f5750616074565b601f54600490602090617a749060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617d85575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57617d70575b5060008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57617d5b575b50601f54617b4d9060081c6001600160a01b0316611338565b91823b1561025657617b799260009283604051809681958294632095dedb60e01b845260048401616117565b03925af19081617d46575b50617b925750616ece611d28565b60405163064554e960e21b8152906000826004818360008051602061924f8339815191525af191821561151d57600092617d2b575b5060005b82518110156170e15781617be761133860406149e085886145d1565b14617bf5575b600101617bcb565b60205460405163348051d760e11b8152600481019190915290939060008160248160008051602061924f8339815191525afa90811561151d57617c43916114ea916000916170ce5750616139565b617c5760006147be60406149e088886145d1565b038160008051602061924f8339815191525afa801561151d57617c8491600091614be35750614aae61464e565b617c9560006020614ac487876145d1565b038160008051602061924f8339815191525afa801561151d57617cc291600091614bca5750614aae614676565b60005b617ccf85856145d1565b515151811015617d2457806000614b41617ced93614b3a89896145d1565b038160008051602061924f8339815191525afa91821561151d57600192617d1e91600091614ba85750614b9361469b565b01617cc5565b5092617bed565b617d3f91923d8091833e614c2f8183610966565b9038617bc7565b8061159c6000617d5593610966565b38617b84565b8061159c6000617d6a93610966565b38617b34565b8061159c6000617d7f93610966565b38617aee565b617d9e915060203d6020116115e5576115d78183610966565b38617a97565b617db991503d806000833e61150f8183610966565b386179cb565b601f54909190600490602090617de09060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617fa4575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03821660048201526000816024818360008051602061924f8339815191525af1801561151d57617f8f575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018590526020816044816000885af1801561151d57617f72575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57617f5d575b5060405163a9059cbb60e01b81526001600160a01b03871660048201526024810184905291602090839060449082906000905af1801561151d57616c859761797393616c9392617f3e575b509750509061794c565b617f569060203d602011615b8a57615b7a8183610966565b5038617f34565b8061159c6000617f6c93610966565b38617ee9565b617f8a9060203d602011615b8a57615b7a8183610966565b617e92565b8061159c6000617f9e93610966565b38617e58565b617fbd915060203d6020116115e5576115d78183610966565b38617e03565b50821515617947565b617fe191503d806000833e61150f8183610966565b386178e5565b600080916020815191016a636f6e736f6c652e6c6f675afa50565b614202618034916141f461057394604051948593634b5c427760e01b60208601526040602486015260648501906103bc565b838103602319016044850152906103bc565b6141f4610573946180936142029461807c96604051978896635ab84e1f60e01b60208901526080602489015260a48801906103bc565b9160448701526023198683030160648701526103bc565b838103602319016084850152906103bc565b156180ac57565b60405162461bcd60e51b8152602060048201526016602482015275155b9a5cddd85c081c9bdd5d195c881b9bdd081cd95d60521b6044820152606490fd5b156180f157565b60405162461bcd60e51b815260206004820152600d60248201526c15d6915510481b9bdd081cd95d609a1b6044820152606490fd5b604051608091906181378382610966565b6003815291601f1901366020840137565b604051606091906181598382610966565b6002815291601f1901366020840137565b602081830312610256578051906001600160401b03821161025657019080601f8301121561025657815161819d81611712565b926181ab6040519485610966565b81845260208085019260051b82010192831161025657602001905b8282106181d35750505090565b81518152602091820191016181c6565b919260809361820892979695978452602084015260a0604084015260a0830190610284565b6001600160a01b0390951660608201520152565b6040519061822b604083610966565b600282526134b760f11b6020830152565b6001600791601a61057394969560296040519889946802db1b430b4b724b2160bd1b6020870152618276815180926020868a019101610399565b85017f5d205b494e464f5d2053776170207375636365737366756c3a20000000000000838201526182b1825180936020604385019101610399565b0101600160fd1b838201526182d0825180936020601b85019101610399565b010166081b995959195960ca1b838201520301601819810185520183610966565b601f6105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526183278151809260208688019101610399565b83017f5d205b4552524f525d20556e69737761702073776170206661696c65643a200083820152611dd8825180936020604885019101610399565b60255493946001600160a01b0390941693909291906183828515156180a5565b6026546183a29061839b906001600160a01b0316611338565b15156180ea565b60405163095ea7b360e01b81526001600160a01b039586166004820152602481018790529484169460208160448160008a5af1801561151d5761869b575b5060006183eb618126565b91618408866183f98561459f565b6001600160a01b039091169052565b602654618422906001600160a01b03165b6183f9856145b1565b61842f846183f9856145c1565b61843842615439565b60255490939061845290611338906001600160a01b031681565b90838a61847660405197889687958694634401edf760e11b86528d600487016181e3565b03925af1908161867a575b506184f95750505050618492611d28565b60205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa91821561151d576102d2926114ea926000916184de575b506182f1565b6184f391503d806000833e61150f8183610966565b386184d8565b60265461851991906001600160a01b0316809361851461821c565b61916f565b918251156186735761852d6185369361459f565b5161851461821c565b9081511561866e5760205460405163348051d760e11b81526004810191909152925060008360248160008051602061924f8339815191525afa90811561151d576185ae93600092618651575b50600061858e8461459f565b516040518096819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa93841561151d5760009461862f575b506000600491604051928380926306fdde0360e01b82525afa801561151d5761860e94618609936114ea93600093618612575b5061823c565b61459f565b5190565b6186289193503d806000833e61150f8183610966565b9138618603565b60049194506186496000913d8084833e61150f8183610966565b9491506185d0565b6186679192503d806000833e61150f8183610966565b9038618582565b505090565b5050505090565b618696903d806000833e61868e8183610966565b81019061816a565b618481565b6186b39060203d602011615b8a57615b7a8183610966565b6183e0565b604051906186c7604083610966565b600382526267617360e81b6020830152565b60046012929594602e610573956029604051998a966802db1b430b4b724b2160bd1b6020890152618713815180926020868c019101610399565b87017f5d205b4552524f525d2072657665727441646472657373206973207a65726f2c838201526d0103a3930b739b332b93934b733960951b6049820152618765825180936020605785019101610399565b01016301037b3160e51b83820152615f51825180936020603285019101610399565b1561878e57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b6001600160a01b03918216815291166020820152604081019190915260a06060820181905260009082015260c0608082018190526102d2929101906142d9565b6080906102d2939260018060a01b03168152606060208201526000606082015281604082015201906142d9565b93949190946060860151926188456109a5565b6001600160a01b0382168152936001600160a01b038416602086015285604086015260608501526188796020880151151590565b15618e15575060008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57618e00575b5060405163348051d760e11b81526004810186905260008160248160008051602061924f8339815191525afa90811561151d57600091618de5575b508651618917906000906001600160a01b03166147be565b038160008051602061924f8339815191525afa801561151d5761895391600091618dca575b506000604051614823816141f48a6020830161431a565b038160008051602061924f8339815191525afa90811561151d57618982936114ea93600093614c87575061432b565b600460206189a061133861143d896000526021602052604060002090565b604051635b11259160e01b815292839182905afa90811561151d57600091618dab575b5060008051602061924f8339815191523b15610256576040516303223eab60e11b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57618d96575b5015618cc85750618a3b61133861143d856000526021602052604060002090565b608085015185519192916001600160a01b0316833b156102565760405163cb7ba8e560e01b815294600094869485938491618a799160048401618805565b0393f1801561151d57618cb3575b505b60008051602061924f8339815191523b15610256576040516390c5013b60e01b81526000816004818360008051602061924f8339815191525af1801561151d57618c9e575b5060405163064554e960e21b8152916000836004818360008051602061924f8339815191525af192831561151d57600093618c83575b5060005b8351811015614c1557618b2060406149e083876145d1565b8251618b34906001600160a01b0316611338565b6001600160a01b0390911614618b4d575b600101618b08565b60405163348051d760e11b815260048101849052909491929060008160248160008051602061924f8339815191525afa90811561151d57618b99916114ea91600091614bfc57506145e5565b618bad60006147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d57618bda91600091614be35750614aae61464e565b618beb60006020614ac488886145d1565b038160008051602061924f8339815191525afa801561151d57618c1891600091614bca5750614aae614676565b60005b618c2586866145d1565b515151811015618c7a57806000614b41618c4393614b3a8a8a6145d1565b038160008051602061924f8339815191525afa91821561151d57600192618c7491600091614ba85750614b9361469b565b01618c1b565b50919093618b45565b618c9791933d8091833e614c2f8183610966565b9138618b04565b8061159c6000618cad93610966565b38618ace565b8061159c6000618cc293610966565b38618a87565b909160046020618ce861133861143d886000526021602052604060002090565b60405163dda79b7560e01b815292839182905afa90811561151d57600091618d77575b50608086015186516001600160a01b0392831694919216843b15610256576000948591618d4e60405198899788968794634cd1e1ab60e11b8652600486016187c5565b0393f1801561151d57618d62575b50618a89565b8061159c6000618d7193610966565b38618d5c565b618d90915060203d6020116115e5576115d78183610966565b38618d0b565b8061159c6000618da593610966565b38618a1a565b618dc4915060203d6020116115e5576115d78183610966565b386189c3565b618ddf91503d806000833e61150f8183610966565b3861893c565b618dfa91503d806000833e61150f8183610966565b386188ff565b8061159c6000618e0f93610966565b386188c4565b60405163348051d760e11b81526004810187905294969095929491935060008260248160008051602061924f8339815191525afa801561151d576114ea612cb491618e679460009161540e5750614207565b936001600160a01b03851615618fa8575b506020618e9761133861143d6004946000526021602052604060002090565b604051635b11259160e01b815292839182905afa90811561151d57600091618f89575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57618f74575b5015618f325750600080806105739481945af1618f2c611d28565b50618787565b60405163a9059cbb60e01b81526001600160a01b039283166004820152602481019390935260209183916044918391600091165af1801561151d576176e85750565b8061159c6000618f8393610966565b38618f11565b618fa2915060203d6020116115e5576115d78183610966565b38618eba565b60405163348051d760e11b81526004810183905291945060008260248160008051602061924f8339815191525afa91821561151d5760009261913b575b5060405163348051d760e11b8152600481018790529060008260248160008051602061924f8339815191525afa91821561151d5760009261911e575b50600084156190bc57506190336186b8565b604051632b65311f60e11b81526001600160a01b03831660048201529260008460248160008051602061924f8339815191525afa92831561151d576190946114ea618e97956113389561143d9560049a60209a60009461909f575b506186d9565b979450505050618e78565b6190b59194503d806000833e61150f8183610966565b923861908e565b604051632b65311f60e11b81526001600160a01b0387166004820152818160248160008051602061924f8339815191525afa91821561151d578092619103575b5050619033565b61911792503d8091833e61150f8183610966565b38806190fc565b6191349192503d806000833e61150f8183610966565b9038619021565b6191519192503d806000833e61150f8183610966565b9038618fe5565b6040906102d2939281528160208201520190610284565b90919261918b90618419619181618148565b956183f98761459f565b6020815191012061919a61821c565b6020815191012014600014619211576025546191e69260009290916191c990611338906001600160a01b031681565b906040518095819482936307c0329d60e21b845260048401619158565b03915afa90811561151d576000916191fc575090565b6102d291503d806000833e61868e8183610966565b6025546191e692600092909161923190611338906001600160a01b031681565b9060405180958194829363d06ca61f60e01b84526004840161915856fe0000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da26469706673582212204ac5191fd2a56935eb2a626b6c057e5076df68c41286e115979311c7e2e30aed64736f6c634300081a003360c034608d57601f61094c38819003918201601f19168301916001600160401b038311848410176092578084926040948552833981010312608d57604b602060458360a8565b920160a8565b9060805260a05260405161089090816100bc8239608051818181603d015261012d015260a0518181816084015281816106960152818161074e01526107db0152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203608d5756fe6080604052600436106101185760003560e01c8063ced52b40146100715763d9d2f07403610118573461006c57600036600319011261006c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b600080fd5b3461006c57600036600319011261006c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b600091031261006c57565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b038211176100f857604052565b6100c1565b6001600160401b0381116100f857601f01601f191660200190565b600080604051368282378036810183815203907f00000000000000000000000000000000000000000000000000000000000000005af43d156101d3573d9061015f826100fd565b9161016d60405193846100d7565b82523d6000602084013e5b1561018e576101863661065f565b602081519101f35b60405162461bcd60e51b815260206004820152601f60248201527f476174657761795a45564d2064656c656761746563616c6c206661696c6564006044820152606490fd5b606090610178565b909291928360041161006c57831161006c57600401916003190190565b81601f8201121561006c5780359061020f826100fd565b9261021d60405194856100d7565b8284526020838301011161006c57816000926020809301838601378301015290565b6001600160a01b0381160361006c57565b3590811515820361006c57565b919082604091031261006c57604051604081018181106001600160401b038211176100f85760405260206102978183958035855201610250565b910152565b91909160a08184031261006c576040519060a082018281106001600160401b038211176100f857604052819381356102d38161023f565b83526102e160208301610250565b602084015260408201356102f48161023f565b60408401526060820135916001600160401b03831161006c5761031d60809392849383016101f8565b60608501520135910152565b9160e08383031261006c5782356001600160401b03811161006c57826103509185016101f8565b9260208101359260408201356103658161023f565b9260608301356001600160401b03811161006c57826103859185016101f8565b92610393836080830161025d565b9260c08201356001600160401b03811161006c576103b1920161029c565b90565b919082519283825260005b8481106103e0575050826000602080949584010152601f8019910116010190565b806020809284010151828286010152016103bf565b9060018060a01b03825116815260208201511515602082015260018060a01b03604083015116604082015260808061043c606085015160a0606086015260a08501906103b4565b93015191015290565b93946103b19795610475610498946104ae969460018060a01b0316885261010060208901526101008801906103b4565b60408701939093526001600160a01b0316606086015284820360808601526103b4565b845160a0840152602090940151151560c0830152565b60e08184039101526103f5565b6040513d6000823e3d90fd5b9060808282031261006c5781356001600160401b03811161006c57816104ee9184016101f8565b9260208301359260408101356105038161023f565b9260608201356001600160401b03811161006c576103b1920161029c565b6001600160a01b03909116815260a0602082018190526103b1959394919261054b918401906103b4565b60408301949094526001600160a01b031660608201528083036080909101526103f5565b91909160c08184031261006c5780356001600160401b03811161006c57836105989183016101f8565b9260208201356105a78161023f565b9260408301356001600160401b03811161006c57826105c79185016101f8565b926105d5836060830161025d565b9260a08201356001600160401b03811161006c576103b1920161029c565b926103b1969461061f6106529461063c9460018060a01b0316875260e0602088015260e08701906103b4565b6001600160a01b03909216604086015284820360608601526103b4565b84516080840152602090940151151560a0830152565b60c08184039101526103f5565b6000356001600160e01b0319166306cb898360e01b8103610723575061068a816106929260006101db565b81019061056f565b90937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561006c576000946106f5869260405198899788968795632c612e1f60e21b875260018060a01b03169033600488016105f3565b03925af1801561071e57610707575b50565b80610716600061071c936100d7565b806100b6565b565b6104bb565b637c0dcb5f60e01b81036107ac5750610741816107499260006101db565b8101906104c7565b9290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b1561006c57600080946106f5604051978896879586946308327f7960e41b865260018060a01b0316913360048701610521565b637b15118b60e01b146107bc5750565b6107cb816107d39260006101db565b810190610329565b9194909390927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169290833b1561006c5761083c600096928793604051998a988997889663567ee10960e11b885260018060a01b0316913360048901610445565b03925af1801561071e57156107045780610716600061071c936100d756fea2646970667358221220133391b00c7d02fadba0abecf2ff0ca588b7e0be6358eaeb9ed28b58db011a3a64736f6c634300081a00330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da264697066735822122037cccbb610aca877ad465a2ed0d43f73921e1639da5087cd8e0ebfd926563f6e64736f6c634300081a0033a2646970667358221220cfddaf08a27de0f233152c8e8269cf8e2d93aefe374da6402bf5c69ffc996ddc64736f6c634300081a0033"; type FoundrySetupConstructorParams = | [signer?: Signer] diff --git a/typechain-types/factories/contracts/testing/TokenSetup.t.sol/TokenSetup__factory.ts b/typechain-types/factories/contracts/testing/TokenSetup.t.sol/TokenSetup__factory.ts index 8e39fcc9..825ca032 100644 --- a/typechain-types/factories/contracts/testing/TokenSetup.t.sol/TokenSetup__factory.ts +++ b/typechain-types/factories/contracts/testing/TokenSetup.t.sol/TokenSetup__factory.ts @@ -860,7 +860,7 @@ const _abi = [ ] as const; const _bytecode = - "0x60808060405234602f57600160ff19600c541617600c55600160ff19601f541617601f556165ab90816100358239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80631ed7831c146101275780632ade3880146101225780633693a15a1461011d5780633e5e3c23146101185780633f7286f41461011357806351976f441461010e57806366d9a9a01461010957806385226c8114610104578063916a17c6146100ff578063a0d788b7146100fa578063b0464fdc146100f5578063b5508aa9146100f0578063ba414fa6146100eb578063c986b404146100e6578063e20c9f71146100e1578063e2624fa4146100dc5763fa7626d4146100d757600080fd5b61142f565b61136b565b611229565b611116565b611017565b610f8a565b610ede565b610e7e565b610dd2565b610ccd565b610bc1565b610777565b6106e6565b610666565b6105e8565b61031f565b61017f565b600091031261013757565b600080fd5b602060408183019282815284518094520192019060005b8181106101605750505090565b82516001600160a01b0316845260209384019390920191600101610153565b346101375760003660031901126101375760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b8181106101f0576101ec856101e0818703826104c7565b6040519182918261013c565b0390f35b82546001600160a01b03168452602090930192600192830192016101c9565b60005b8381106102225750506000910152565b8181015183820152602001610212565b9060209161024b8151809281855285808601910161020f565b601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061028a57505050505090565b9091929394603f198282030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b85010194019260005b8281106102f45750505050506020806001929701930193019193929061027b565b9091929394602080610312600193605f198782030189528951610232565b97019501939291016102d3565b3461013757600036600319011261013757601e5461033c81611452565b9061034a60405192836104c7565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061039057604051806101ec8782610257565b600260206001926040516103a381610471565b848060a01b0386541681526103b9858701611469565b8382015281520192019201919061037b565b634e487b7160e01b600052603260045260246000fd5b6020548110156104005760206000526006602060002091020190600090565b6103cb565b8054821015610400576000526006602060002091020190600090565b90600182811c92168015610451575b602083101461043b57565b634e487b7160e01b600052602260045260246000fd5b91607f1691610430565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761048c57604052565b61045b565b60e081019081106001600160401b0382111761048c57604052565b60a081019081106001600160401b0382111761048c57604052565b90601f801991011681019081106001600160401b0382111761048c57604052565b90604051918260008254926104fc84610421565b808452936001811690811561056a5750600114610523575b50610521925003836104c7565b565b90506000929192526020600020906000915b81831061054e5750509060206105219282010138610514565b6020919350806001915483858901015201910190918492610535565b90506020925061052194915060ff191682840152151560051b82010138610514565b9591936105c760c09699989460ff966105d59460018060a01b03168a5260018060a01b031660208a015260e060408a015260e0890190610232565b908782036060890152610232565b966080860152151560a085015216910152565b34610137576020366003190112610137576004356020548110156101375761060f906103e1565b50805460018201546001600160a01b03918216929116906101ec90610636600282016104e8565b93610643600383016104e8565b91600560048201549101549260405196879660ff808760081c169616948861058c565b346101375760003660031901126101375760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b8181106106c7576101ec856101e0818703826104c7565b82546001600160a01b03168452602090930192600192830192016106b0565b346101375760003660031901126101375760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b818110610747576101ec856101e0818703826104c7565b82546001600160a01b0316845260209093019260019283019201610730565b6001600160a01b0381160361013757565b346101375760403660031901126101375760043561079481610766565b602435906107a182610766565b6000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b0382166004820152600081602481836000805160206165568339815191525af18015610a8557610aee575b506040516360f9bb1160e01b815260206004820152603960248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76322d636f72652f627560448201527f696c642f556e69737761705632466163746f72792e6a736f6e0000000000000060648201526000816084816000805160206165568339815191525afa908115610a85576108a4916000918291610ab3575b5060405180938192631fb2437d60e31b83526004830161152b565b03816000805160206165568339815191525afa8015610a8557610903926108f092600092610acd575b50604080516001600160a01b03909216602083015290926108fe91849190820190565b03601f1981018452836104c7565b612d93565b6040516360f9bb1160e01b815260206004820152603f60248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76322d7065726970686560448201527f72792f6275696c642f556e69737761705632526f7574657230322e6a736f6e0060648201529091906000816084816000805160206165568339815191525afa908115610a85576109b3916000918291610ab3575060405180938192631fb2437d60e31b83526004830161152b565b03816000805160206165568339815191525afa8015610a8557610a06926108f092600092610a8a575b50604080516001600160a01b03808816602083015290921690820152916108fe9083906060820190565b906000805160206165568339815191523b15610137576040516390c5013b60e01b8152600081600481836000805160206165568339815191525af18015610a8557610a6a575b50604080516001600160a01b03928316815292909116602083015290f35b80610a796000610a7f936104c7565b8061012c565b38610a4c565b6114c1565b6108fe919250610aac903d806000833e610aa481836104c7565b8101906114cd565b91906109dc565b610ac791503d8084833e610aa481836104c7565b38610889565b6108fe919250610ae7903d806000833e610aa481836104c7565b91906108cd565b80610a796000610afd936104c7565b386107f5565b906020808351928381520192019060005b818110610b215750505090565b82516001600160e01b031916845260209384019390920191600101610b14565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610b7457505050505090565b9091929394602080610bb2600193603f1986820301875289519083610ba28351604084526040840190610232565b9201519084818403910152610b03565b97019301930191939290610b65565b3461013757600036600319011261013757601b54610bde81611452565b90610bec60405192836104c7565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b838310610c3257604051806101ec8782610b41565b60026020600192604051610c4581610471565b610c4e866104e8565b8152610c5b85870161156b565b83820152815201920192019190610c1d565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610ca057505050505090565b9091929394602080610cbe600193603f198682030187528951610232565b97019301930191939290610c91565b3461013757600036600319011261013757601a54610cea81611452565b90610cf860405192836104c7565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310610d3d57604051806101ec8782610c6d565b600160208192610d4c856104e8565b815201920192019190610d28565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610d8d57505050505090565b9091929394602080610dc3600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610b03565b97019301930191939290610d7e565b3461013757600036600319011261013757601d54610def81611452565b90610dfd60405192836104c7565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b838310610e4357604051806101ec8782610d5a565b60026020600192604051610e5681610471565b848060a01b038654168152610e6c85870161156b565b83820152815201920192019190610e2e565b346101375760e036600319011261013757610edc600435610e9e81610766565b602435610eaa81610766565b604435610eb681610766565b606435610ec281610766565b60843591610ecf83610766565b60a4359360c4359561180a565b005b3461013757600036600319011261013757601c54610efb81611452565b90610f0960405192836104c7565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b838310610f4f57604051806101ec8782610d5a565b60026020600192604051610f6281610471565b848060a01b038654168152610f7885870161156b565b83820152815201920192019190610f3a565b3461013757600036600319011261013757601954610fa781611452565b90610fb560405192836104c7565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b838310610ffa57604051806101ec8782610c6d565b600160208192611009856104e8565b815201920192019190610fe5565b34610137576000366003190112610137576020611032611ae3565b6040519015158152f35b906110b39060018060a01b03835116815260018060a01b03602084015116602082015260c08061109061107e604087015160e0604087015260e0860190610232565b60608701518582036060870152610232565b946080810151608085015260a0810151151560a0850152015191019060ff169052565b90565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106110e957505050505090565b9091929394602080611107600193603f19868203018752895161103c565b970193019301919392906110da565b346101375760003660031901126101375760205461113381611452565b9061114160405192836104c7565b8082526020820160206000527fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb6000915b83831061118757604051806101ec87826110b6565b6006602060019260405161119a81610491565b855460a086901b869003166001600160a01b0390811682528587015416838201526111c7600287016104e8565b60408201526111d8600387016104e8565b60608201526004860154608082015261121b61121160058801546112086111ff8260ff1690565b151560a0860152565b60081c60ff1690565b60ff1660c0830152565b815201920192019190611172565b346101375760003660031901126101375760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b81811061128a576101ec856101e0818703826104c7565b82546001600160a01b0316845260209093019260019283019201611273565b6040519061052160e0836104c7565b60405190610521610160836104c7565b6001600160401b03811161048c57601f01601f191660200190565b81601f82011215610137578035906112fa826112c8565b9261130860405194856104c7565b8284526020838301011161013757816000926020809301838601378301015290565b8015150361013757565b60c435906105218261132a565b60ff81160361013757565b610104359061052182611341565b9060206110b392818152019061103c565b3461013757366003190161012081126101375760a01361013757604051611391816104ac565b60043561139d81610766565b81526024356113ab81610766565b60208201526044356113bc81610766565b60408201526064356113cd81610766565b60608201526084356113de81610766565b608082015260a4356001600160401b038111610137576101ec916114096114239236906004016112e3565b611411611334565b60e4359161141d61134c565b9361202b565b6040519182918261135a565b3461013757600036600319011261013757602060ff601f54166040519015158152f35b6001600160401b03811161048c5760051b60200190565b90815461147581611452565b9261148360405194856104c7565b818452602084019060005260206000206000915b8383106114a45750505050565b6001602081926114b3856104e8565b815201920192019190611497565b6040513d6000823e3d90fd5b602081830312610137578051906001600160401b038211610137570181601f820112156101375760208151910190611504816112c8565b9261151260405194856104c7565b81845281830111610137576110b391602084019061020f565b61153d60409283835283830190610232565b90602081830391015260148152730b995d9b4b989e5d1958dbd9194b9bd89a9958dd60621b60208201520190565b6040518154808252909291839061158b6020830191600052602060002090565b926000905b8060078301106116d3576105219454918181106116b4575b818110611695575b818110611676575b818110611657575b818110611638575b818110611619575b8181106115fb575b106115e6575b5003836104c7565b6001600160e01b0319168152602001386115de565b602083811b6001600160e01b031916855290936001910193016115d8565b604083901b6001600160e01b03191684529260019060200193016115d0565b606083901b6001600160e01b03191684529260019060200193016115c8565b608083901b6001600160e01b03191684529260019060200193016115c0565b60a083901b6001600160e01b03191684529260019060200193016115b8565b60c083901b6001600160e01b03191684529260019060200193016115b0565b6001600160e01b031960e084901b1684529260019060200193016115a8565b91600891935061010060019161178287546116f9838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b019401920185929391611590565b519061052182610766565b9081602091031261013757516110b381610766565b9081602091031261013757516110b38161132a565b634e487b7160e01b600052601160045260246000fd5b9061038482018092116117ea57565b6117c5565b90816060910312610137578051916040602083015192015190565b9291909493946000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b0387166004820152600081602481836000805160206165568339815191525af18015610a8557611abf575b506040516364e329cb60e11b81526001600160a01b0383811660048301528481166024830152909160209183916044918391600091165af18015610a8557611a92575b5060405163095ea7b360e01b81526001600160a01b0384166004820152602481018590526020818060448101038160006001600160a01b0387165af18015610a8557611a75575b5060405163095ea7b360e01b81526001600160a01b038416600482015260248101879052906020828060448101038160006001600160a01b0388165af18015610a85576060966000936119aa92611a48575b5061194a426117db565b60405162e8e33760e81b81526001600160a01b03948516600482015295841660248701526044860197909752606485019890985260006084850181905260a4850152961660c483015260e482019390935293849283918290610104820190565b03926001600160a01b03165af18015610a8557611a19575b506000805160206165568339815191523b15610137576040516390c5013b60e01b8152600081600481836000805160206165568339815191525af18015610a8557611a0a5750565b80610a796000610521936104c7565b611a3a9060603d606011611a41575b611a3281836104c7565b8101906117ef565b50506119c2565b503d611a28565b611a699060203d602011611a6e575b611a6181836104c7565b8101906117b0565b611940565b503d611a57565b611a8d9060203d602011611a6e57611a6181836104c7565b6118ee565b611ab39060203d602011611ab8575b611aab81836104c7565b81019061179b565b6118a7565b503d611aa1565b80610a796000611ace936104c7565b38611864565b90816020910312610137575190565b60085460ff168015611af25790565b50604051630667f9d760e41b8152600080516020616556833981519152600482018190526519985a5b195960d21b6024830152602090829060449082905afa908115610a8557600091611b46575b50151590565b611b68915060203d602011611b6e575b611b6081836104c7565b810190611ad4565b38611b40565b503d611b56565b60405190611b8282610491565b600060c083828152826020820152606060408201526060808201528260808201528260a08201520152565b60405190611bba82610491565b600060c08360608152606060208201528260408201528260608201528260808201528260a08201520152565b90611bf96020928281519485920161020f565b0190565b60031115611c0757565b634e487b7160e01b600052602160045260246000fd5b6003821015611c075752565b959297969391611c5790611c4960ff936101008a526101008a0190610232565b9088820360208a0152610232565b9716604086015260608501526003831015611c07576080840192909252600160a08401526001600160a01b0391821660c08401521660e090910152565b15611c9b57565b60405162461bcd60e51b815260206004820152602260248201527f476174657761792045564d206e6f742073657420666f7220746869732063686160448201526134b760f11b6064820152608490fd5b9081602091031261013757516110b381611341565b60ff16604d81116117ea57600a0a90565b90816402540be40002916402540be4008304036117ea57565b90816064029160648304036117ea57565b9081620f42400291620f42408304036117ea57565b601f8211611d5d57505050565b6000526020600020906020601f840160051c83019310611d98575b601f0160051c01905b818110611d8c575050565b60008155600101611d81565b9091508190611d78565b91909182516001600160401b03811161048c57611dc981611dc38454610421565b84611d50565b6020601f8211600114611e0a578190611dfb939495600092611dff575b50508160011b916000199060031b1c19161790565b9055565b015190503880611de6565b601f19821690611e1f84600052602060002090565b9160005b818110611e5b57509583600195969710611e42575b505050811b019055565b015160001960f88460031b161c19169055388080611e38565b9192602060018192868b015181550194019201611e23565b6020546801000000000000000081101561048c57806001611e9992016020556020610405565b61201557815181546001600160a01b039182166001600160a01b031991821617835560208401516001840180549190931691161790556040820151805160028301916001600160401b03821161048c57611efd82611ef78554610421565b85611d50565b602090601f8311600114611f9a5793611f8593611f3b8460c0956005956105219a99600092611dff5750508160011b916000199060031b1c19161790565b90555b611f4f606086015160038301611da2565b608085015160048201550192611f7d611f6b60a0830151151590565b859060ff801983541691151516179055565b015160ff1690565b61ff0082549160081b169061ff001916179055565b90601f19831691611fb085600052602060002090565b9260005b818110611ffd575084600594610521999894611f85989460c09860019510611fe4575b505050811b019055611f3e565b015160001960f88460031b161c19169055388080611fd7565b92936020600181928786015181550195019301611fb4565b634e487b7160e01b600052600060045260246000fd5b9391929092612038611b75565b50612041611bad565b60405163348051d760e11b8152600481018490529092906000816024816000805160206165568339815191525afa908115610a85576120c3916120d191600091612d78575b506040516602d2921969918160cd1b60208201529283916120bd6120ad602785018c611be6565b6301037b7160e51b815260040190565b90611be6565b03601f1981018352826104c7565b83526040516405a524332360dc1b60208201526120f5816120c36025820189611be6565b602084019081528215612d715760015b612113604086019182611c1d565b8451915190519161212383611bfd565b8851600490602090612145906001600160a01b03165b6001600160a01b031690565b60405163bb88b76960e01b815292839182905afa8015610a8557600491600091612d52575b508a51602090612182906001600160a01b0316612139565b604051633c12ad4d60e21b815293849182905afa918215610a8557600092612d31575b50604051946118e592838701938785106001600160401b0386111761048c5787966121e2968a938e93614c718b396001600160a01b031696611c29565b03906000f0948515610a85576001600160a01b03909516606084019081529460808401966000885283600014612c9857805160049060209061222c906001600160a01b0316612139565b604051630f39296f60e21b815292839182905afa908115610a8557600091612c79575b506000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03919091166004820152600081602481836000805160206165568339815191525af18015610a8557612c64575b5080516004906020906122c1906001600160a01b0316612139565b60405163bb88b76960e01b815292839182905afa908115610a8557600091612c45575b5087516001600160a01b03918216916122fd9116612139565b90803b15610137576040516377140add60e11b8152600481018690526001600160a01b039290921660248301526000908290604490829084905af18015610a8557612c30575b50805160049060209061235e906001600160a01b0316612139565b60405163bb88b76960e01b815292839182905afa908115610a8557600091612c11575b506001600160a01b0316803b156101375760405163a7cb050760e01b815260048101859052633b9aca006024820152906000908290604490829084905af18015610a8557612bfc575b506000805160206165568339815191523b15610137576040516390c5013b60e01b8152600081600481836000805160206165568339815191525af18015610a8557612be7575b505b8651612426906001600160a01b0316612139565b6060820180519091906001600160a01b031660405163313ce56760e01b8152602081600481865afa908115610a85576124709161246b91600091612b84575b50611d00565b611d11565b823b15610137576040516340c10f1960e01b81526001600160a01b039290921660048301526024820152906000908290604490829084905af18015610a8557612bd2575b5087516124c9906001600160a01b0316612139565b82516004906020906124e3906001600160a01b0316612139565b604051630f39296f60e21b815292839182905afa908115610a8557600091612bb3575b508951600490602090612521906001600160a01b0316612139565b60405163313ce56760e01b815292839182905afa908115610a85576125519161246b91600091612b845750611d00565b823b15610137576040516340c10f1960e01b81526001600160a01b039290921660048301526024820152906000908290604490829084905af18015610a8557612b6f575b5080516001600160a01b03166000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03919091166004820152600081602481836000805160206165568339815191525af18015610a8557612b5a575b5080516001600160a01b03166000805160206165568339815191523b156101375760405163c88a5e6d60e01b81526001600160a01b0391909116600482015269d3c21bcecceda10000006024820152600081604481836000805160206165568339815191525af18015610a8557612b45575b508151600490602090612684906001600160a01b0316612139565b604051620b9ea360e11b815292839182905afa908115610a8557600091612b26575b506001600160a01b0316803b15610137576000683635c9adc5dea0000091600460405180948193630d0e30db60e41b83525af18015610a8557612b11575b506126f66126f188611d00565b611d2a565b60a0870190815260c087019068056bc75e2d63100000825260046020612725612139875160018060a01b031690565b604051630b4a282f60e11b815292839182905afa8015610a8557600491600091612af2575b508551602090612762906001600160a01b0316612139565b6040516359d0f71360e01b815293849182905afa8015610a85578c600493600092612ac9575b505161279c906001600160a01b0316612139565b87516020906127b3906001600160a01b0316612139565b604051620b9ea360e11b815295869182905afa928315610a85576127fa94600094612aa8575b5087516001600160a01b03169186519388519560018060a01b03169261180a565b8951600490612811906001600160a01b0316612139565b855190949060209061282b906001600160a01b0316612139565b604051620b9ea360e11b815293849182905afa908115610a8557600492600092612a83575b50516001600160a01b03165b92519351865190969060209061287a906001600160a01b0316612139565b604051632daa48c160e11b815294859182905afa908115610a8557600493600092612a59575b50516020906128b7906001600160a01b0316612139565b60405163342a30c360e01b815294859182905afa908115610a8557612958976129539661294395600094612a32575b5061291961293394956129096128fa6112a9565b6001600160a01b03909c168c52565b6001600160a01b031660208b0152565b604089015260608801526001600160a01b03166080870152565b6001600160a01b031660a0850152565b6001600160a01b031660c0830152565b613394565b6000805160206165568339815191523b15610137576040516390c5013b60e01b815293600085600481836000805160206165568339815191525af18015610a85576129cf6129c1612139612a149a611211996129fc95612a1d575b50516001600160a01b031690565b99516001600160a01b031690565b9151916129ec6129dd6112a9565b6001600160a01b03909b168b52565b6001600160a01b031660208a0152565b604088015260608701526080860152151560a0850152565b6110b381611e73565b80610a796000612a2c936104c7565b386129b3565b6129339450612a526129199160203d602011611ab857611aab81836104c7565b94506128e6565b6020919250612139612a7a6128b792843d8611611ab857611aab81836104c7565b939250506128a0565b61285c919250612aa19060203d602011611ab857611aab81836104c7565b9190612850565b612ac291945060203d602011611ab857611aab81836104c7565b92386127d9565b61279c919250612aea6121399160203d602011611ab857611aab81836104c7565b929150612788565b612b0b915060203d602011611ab857611aab81836104c7565b3861274a565b80610a796000612b20936104c7565b386126e4565b612b3f915060203d602011611ab857611aab81836104c7565b386126a6565b80610a796000612b54936104c7565b38612669565b80610a796000612b69936104c7565b386125f7565b80610a796000612b7e936104c7565b38612595565b612ba6915060203d602011612bac575b612b9e81836104c7565b810190611ceb565b38612465565b503d612b94565b612bcc915060203d602011611ab857611aab81836104c7565b38612506565b80610a796000612be1936104c7565b386124b4565b80610a796000612bf6936104c7565b38612410565b80610a796000612c0b936104c7565b386123ca565b612c2a915060203d602011611ab857611aab81836104c7565b38612381565b80610a796000612c3f936104c7565b38612343565b612c5e915060203d602011611ab857611aab81836104c7565b386122e4565b80610a796000612c73936104c7565b386122a6565b612c92915060203d602011611ab857611aab81836104c7565b3861224f565b6020810151612caf906001600160a01b0316612139565b604051621ac49360e31b81526004810185905290602090829060249082905afa8015610a8557612cf291600091612d12575b506001600160a01b03161515611c94565b612d0d612d00838584612e19565b6001600160a01b03168952565b612412565b612d2b915060203d602011611ab857611aab81836104c7565b38612ce1565b612d4b91925060203d602011611ab857611aab81836104c7565b90386121a5565b612d6b915060203d602011611ab857611aab81836104c7565b3861216a565b6002612105565b612d8d91503d806000833e610aa481836104c7565b38612086565b90612dd860209160405192839181612db4818501978881519384920161020f565b8301612dc88251809385808501910161020f565b010103601f1981018352826104c7565b51906000f090811561013757565b9091612dfd6110b393604084526040840190610232565b916020818403910152610232565b604d81116117ea57600a0a90565b9160405190610b5990818301908382106001600160401b0383111761048c5780612e499285946141188639612de6565b03906000f08015610a855760405163313ce56760e01b81526001600160a01b03919091169290602081600481875afa8015610a855760ff91600091613358575b506060830180519092909116906001600160a01b03166000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03919091166004820152600081602481836000805160206165568339815191525af18015610a8557613343575b50602083018051909390612f11906001600160a01b0316612139565b60405163ad8414bf60e01b81526004810187905290602090829060249082905afa908115610a8557612f7a91602091600091613326575b5060405163095ea7b360e01b81526001600160a01b039091166004820152600019602482015291829081906044820190565b038160008b5af18015610a8557613309575b508351612fa1906001600160a01b0316612139565b60405163ad8414bf60e01b8152600481018790529190602090839060249082905afa918215610a85576000926132e8575b50612fe4612fdf84612e0b565b611d3b565b91873b15610137576040516340c10f1960e01b81526001600160a01b039190911660048201526024810192909252600082604481838b5af1918215610a85576080926132d3575b500180519092906001600160a01b0316613047612fdf84612e0b565b90873b15610137576040516340c10f1960e01b81526001600160a01b039190911660048201526024810191909152600081604481838b5af18015610a85576130a992612fdf926130a392612a1d5750516001600160a01b031690565b92612e0b565b90853b15610137576040516340c10f1960e01b81526001600160a01b03919091166004820152602481019190915260008160448183895af18015610a85576132be575b506000805160206165568339815191523b15610137576040516390c5013b60e01b815290600082600481836000805160206165568339815191525af1918215610a855761314592612a1d5750516001600160a01b031690565b916000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03939093166004840152600083602481836000805160206165568339815191525af1928315610a85576121396020936131b8926131d896612a1d5750516001600160a01b031690565b604051808095819463ad8414bf60e01b8352600483019190602083019252565b03915afa908115610a855760009161329f575b506001600160a01b0316803b1561013757604051634d8c928d60e11b81526001600160a01b0383166004820152906000908290602490829084905af18015610a855761328a575b506000805160206165568339815191523b15610137576040516390c5013b60e01b8152600081600481836000805160206165568339815191525af18015610a855761327b575090565b80610a7960006110b3936104c7565b80610a796000613299936104c7565b38613232565b6132b8915060203d602011611ab857611aab81836104c7565b386131eb565b80610a7960006132cd936104c7565b386130ec565b80610a7960006132e2936104c7565b3861302b565b61330291925060203d602011611ab857611aab81836104c7565b9038612fd2565b6133219060203d602011611a6e57611a6181836104c7565b612f8c565b61333d9150823d8411611ab857611aab81836104c7565b38612f48565b80610a796000613352936104c7565b38612ef5565b613371915060203d602011612bac57612b9e81836104c7565b38612e89565b1561337e57565b634e487b7160e01b600052600160045260246000fd5b60c0810180519091906001600160a01b03166000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03919091166004820152600081602481836000805160206165568339815191525af18015610a855761365e575b50805161341390612139906001600160a01b031681565b60a08201805160408085018051915163095ea7b360e01b81526001600160a01b0390931660048401526024830191909152949192602090829060449082906000905af18015610a8557613641575b5060208301805190929061347f90612139906001600160a01b031681565b815160608601805160405163095ea7b360e01b81526001600160a01b03909316600484015260248301529691602090829060449082906000905af18015610a8557613624575b50845184516001600160a01b0391821691168082116135f6575b505060808501516001600160a01b031685516001600160a01b031685516001600160a01b03169061350f926136cb565b956135246001600160a01b0388161515613377565b82516001600160a01b031686519092906001600160a01b031686519092906001600160a01b03169151905186519092906001600160a01b03169361356795613834565b93516001600160a01b031692516001600160a01b031690516001600160a01b031691516001600160a01b03169261359c6112a9565b6001600160a01b0390961686526001600160a01b031660208601526001600160a01b031660408501526001600160a01b031660608401526001600160a01b0316608083015260a0820152600060c08201526119c290613c54565b6001600160a01b039091168552613615905b6001600160a01b03168652565b855181518752815238806134df565b61363c9060203d602011611a6e57611a6181836104c7565b6134c5565b6136599060203d602011611a6e57611a6181836104c7565b613461565b80610a79600061366d936104c7565b386133fc565b1561367a57565b60405162461bcd60e51b815260206004820152602360248201527f556e6973776170563353657475704c69623a20506f6f6c206e6f7420637265616044820152621d195960ea1b6064820152608490fd5b60405163a167129560e01b81526001600160a01b0383811660048301528481166024830152610bb8604483015290949391166020856064816000855af1928315610a8557613758956020946137dc575b50604051630b4c774160e11b81526001600160a01b03918216600482015292166024830152610bb860448301529093849190829081906064820190565b03915afa918215610a85576000926137bb575b506001600160a01b038216613781811515613673565b803b156101375760405163f637731d60e01b8152600160601b6004820152906000908290602490829084905af18015610a8557611a0a5750565b6137d591925060203d602011611ab857611aab81836104c7565b903861376b565b6137f290853d8711611ab857611aab81836104c7565b61371b565b51906001600160801b038216820361013757565b919082608091031261013757815191613826602082016137f7565b916060604083015192015190565b916138bd6000966080966139699661387961384e426117db565b9561386961385a6112b8565b6001600160a01b039099168952565b6001600160a01b03166020880152565b610bb86040870152620d89b3196060870152620d89b4868a015260a086015260c085015260e0840188905261010084018890526001600160a01b0316610120840152565b610140820190815260408051634418b22b60e11b815283516001600160a01b0390811660048301526020850151811660248301529184015162ffffff1660448201526060840151600290810b60648301526080850151900b608482015260a084015160a482015260c084015160c482015260e084015160e48201526101008401516101048201526101209093015116610124830152516101448201529384928391908290610164820190565b03926001600160a01b03165af1908115610a8557600091613988575090565b6139aa915060803d6080116139b0575b6139a281836104c7565b81019061380b565b50505090565b503d613998565b6040519061018082018281106001600160401b0382111761048c576040526000610160838281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015282610120820152826101408201520152565b90816020910312610137576110b3906137f7565b15613a3c57565b60405162461bcd60e51b8152602060048201526015602482015274506f6f6c20686173206e6f206c697175696469747960581b6044820152606490fd5b51908160020b820361013757565b519061ffff8216820361013757565b908160e0910312610137578051613aac81610766565b91613ab960208301613a79565b91613ac660408201613a87565b91613ad360608301613a87565b91613ae060808201613a87565b9160c060a0830151613af181611341565b9201516110b38161132a565b15613b0457565b60405162461bcd60e51b81526020600482015260116024820152700556e657870656374656420746f6b656e3607c1b6044820152606490fd5b15613b4457565b60405162461bcd60e51b8152602060048201526011602482015270556e657870656374656420746f6b656e3160781b6044820152606490fd5b15613b8457565b60405162461bcd60e51b815260206004820152601960248201527f506f736974696f6e20686173206e6f206c6971756964697479000000000000006044820152606490fd5b15613bd057565b60405162461bcd60e51b815260206004820152601860248201527f506f736974696f6e20746f6b656e73206d69736d6174636800000000000000006044820152606490fd5b15613c1c57565b60405162461bcd60e51b815260206004820152601060248201526f2ab732bc3832b1ba32b21037bbb732b960811b6044820152606490fd5b90613c5d6139b7565b8251909290613c74906001600160a01b0316612139565b6060820151909190613c8e906001600160a01b0316612139565b604051630d34328160e11b815290926001600160a01b03169190602081600481865afa8015610a8557613ce36001600160801b0391613ceb93600091613fc4575b506001600160801b03166060890181905290565b161515613a35565b604051633850c7bd60e01b815260e081600481865afa908115610a8557613d2591600091600091613f88575b5060020b6020880152613608565b604051630dfe168160e01b815291602083600481845afa908115610a8557600493600092613f66575b506001600160a01b03909116608087019081529060209060405163d21220a760e01b815294859182905afa928315610a8557600093613f45575b506001600160a01b0392831660a08701908152815160208401519194613db2928116911614613afd565b82516040830151613dd0916001600160a01b03918216911614613b3d565b60a08201938451613de19082614003565b6001600160801b031660c08c019081526101008c01969460e08d0194919390928d6101400190613e13919060020b9052565b60020b6101208d01526001600160a01b03908116875216825251613e41906001600160801b03161515613b7d565b519051613e9195602094613e6e936001600160a01b039384169316929092149182613f18575b5050613bc9565b84519060405180809681946331a9108f60e11b8352600483019190602083019252565b03916001600160a01b03165afa8015610a85576121396080613ed0613edf93613ef096600091613ef9575b506001600160a01b031660408a0181905290565b9301516001600160a01b031690565b6001600160a01b0390911614613c15565b51610160830152565b613f12915060203d602011611ab857611aab81836104c7565b38613ebc565b5190516001600160a01b039182169250613f329116612139565b6001600160a01b03909116143880613e67565b613f5f91935060203d602011611ab857611aab81836104c7565b9138613d88565b6020919250613f8190823d8411611ab857611aab81836104c7565b9190613d4e565b6136089250613faf915060e03d60e011613fbd575b613fa781836104c7565b810190613a96565b505050505091909190613d17565b503d613f9d565b613fe6915060203d602011613fec575b613fde81836104c7565b810190613a21565b38613ccf565b503d613fd4565b519062ffffff8216820361013757565b60405163133f757160e31b8152600481019290925261018090829060249082906001600160a01b03165afa908115610a8557600091829183918491859161404d575b509091929394565b949350505050610180823d821161410f575b8161406d61018093836104c7565b8101031261410c5781516bffffffffffffffffffffffff81160361410c575061409860208201611790565b506140a560408201611790565b906140b260608201611790565b916140bf60808301613ff3565b506140cc60a08301613a79565b916140d960c08201613a79565b916141016101606140ec60e085016137f7565b936140fa61014082016137f7565b50016137f7565b509392919038614045565b80fd5b3d915061405f56fe60806040523461032457610b598038038061001981610329565b9283398101906040818303126103245780516001600160401b038111610324578261004591830161034e565b60208201519092906001600160401b03811161032457610065920161034e565b81516001600160401b03811161022f57600354600181811c9116801561031a575b602082101461020f57601f81116102b5575b50602092601f82116001146102505792819293600092610245575b50508160011b916000199060031b1c1916176003555b80516001600160401b03811161022f57600454600181811c91168015610225575b602082101461020f57601f81116101aa575b50602091601f82116001146101465791819260009261013b575b50508160011b916000199060031b1c1916176004555b60405161079f90816103ba8239f35b015190503880610116565b601f198216926004600052806000209160005b85811061019257508360019510610179575b505050811b0160045561012c565b015160001960f88460031b161c1916905538808061016b565b91926020600181928685015181550194019201610159565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c81019160208410610205575b601f0160051c01905b8181106101f957506100fc565b600081556001016101ec565b90915081906101e3565b634e487b7160e01b600052602260045260246000fd5b90607f16906100ea565b634e487b7160e01b600052604160045260246000fd5b0151905038806100b3565b601f198216936003600052806000209160005b86811061029d5750836001959610610284575b505050811b016003556100c9565b015160001960f88460031b161c19169055388080610276565b91926020600181928685015181550194019201610263565b60036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c81019160208410610310575b601f0160051c01905b8181106103045750610098565b600081556001016102f7565b90915081906102ee565b90607f1690610086565b600080fd5b6040519190601f01601f191682016001600160401b0381118382101761022f57604052565b81601f82011215610324578051906001600160401b03821161022f5761037d601f8301601f1916602001610329565b92828452602083830101116103245760005b8281106103a457505060206000918301015290565b8060208092840101518282870101520161038f56fe608080604052600436101561001357600080fd5b60003560e01c90816306fdde031461058857508063095ea7b31461050257806318160ddd146104e457806323b872dd146103f7578063313ce567146103db57806340c10f191461032f57806370a08231146102f557806395d89b41146101d45780639dc29fac1461011f578063a9059cbb146100ee5763dd62ed3e1461009857600080fd5b346100e95760403660031901126100e9576100b16106a4565b6100b96106ba565b6001600160a01b039182166000908152600160209081526040808320949093168252928352819020549051908152f35b600080fd5b346100e95760403660031901126100e95761011461010a6106a4565b60243590336106d0565b602060405160018152f35b346100e95760403660031901126100e9576101386106a4565b6001600160a01b031660243581156101be576000908282528160205260408220548181106101a65760208285937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93869787528684520360408620558060025403600255604051908152a380f35b60649363391434e360e21b8452600452602452604452fd5b634b637e8f60e11b600052600060045260246000fd5b346100e95760003660031901126100e95760405160006004548060011c906001811680156102eb575b6020831081146102d7578285529081156102bb5750600114610264575b50819003601f01601f191681019067ffffffffffffffff82118183101761024e5761024a8291826040528261065b565b0390f35b634e487b7160e01b600052604160045260246000fd5b905060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b6000905b8282106102a55750602091508201018261021a565b6001816020925483858801015201910190610290565b90506020925060ff191682840152151560051b8201018261021a565b634e487b7160e01b84526022600452602484fd5b91607f16916101fd565b346100e95760203660031901126100e9576001600160a01b036103166106a4565b1660005260006020526020604060002054604051908152f35b346100e95760403660031901126100e9576103486106a4565b602435906001600160a01b031680156103c557600254918083018093116103af576020926002557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600093849284845283825260408420818154019055604051908152a380f35b634e487b7160e01b600052601160045260246000fd5b63ec442f0560e01b600052600060045260246000fd5b346100e95760003660031901126100e957602060405160128152f35b346100e95760603660031901126100e9576104106106a4565b6104186106ba565b6001600160a01b0382166000818152600160209081526040808320338452909152902054909260443592916000198110610458575b5061011493506106d0565b8381106104c75784156104b157331561049b57610114946000526001602052604060002060018060a01b033316600052602052836040600020910390558461044d565b634a1406b160e11b600052600060045260246000fd5b63e602df0560e01b600052600060045260246000fd5b8390637dc7a0d960e11b6000523360045260245260445260646000fd5b346100e95760003660031901126100e9576020600254604051908152f35b346100e95760403660031901126100e95761051b6106a4565b6024359033156104b1576001600160a01b031690811561049b57336000526001602052604060002082600052602052806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346100e95760003660031901126100e95760006003548060011c90600181168015610651575b6020831081146102d7578285529081156102bb57506001146105fa5750819003601f01601f191681019067ffffffffffffffff82118183101761024e5761024a8291826040528261065b565b905060036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b6000905b82821061063b5750602091508201018261021a565b6001816020925483858801015201910190610626565b91607f16916105ae565b91909160208152825180602083015260005b81811061068e575060409293506000838284010152601f8019910116010190565b806020809287010151604082860101520161066d565b600435906001600160a01b03821682036100e957565b602435906001600160a01b03821682036100e957565b6001600160a01b03169081156101be576001600160a01b03169182156103c557600082815280602052604081205482811061074f5791604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815280845220818154019055604051908152a3565b916064928463391434e360e21b8452600452602452604452fdfea2646970667358221220244a0a20c657fff7862703acb5cfe7ea7d2b0fc51d1a41b0a338be948dd8f1cf64736f6c634300081a003360c06040523461041a576118e5803803806100198161041f565b92833981016101008282031261041a5781516001600160401b03811161041a5781610045918401610444565b602083015190916001600160401b03821161041a57610065918401610444565b9160408101519160ff831680930361041a576060820151936080830151600381101561041a5760a0840151916100a960e06100a260c088016104af565b96016104af565b946001600160a01b03169384158015610409575b6103f8578051906001600160401b0382116102f55760065490600182811c921680156103ee575b60208310146102d55781601f84931161037e575b50602090601f83116001146103165760009261030b575b50508160011b916000199060031b1c1916176006555b8051906001600160401b0382116102f55760075490600182811c921680156102eb575b60208310146102d55781601f849311610265575b50602090601f83116001146101fd576000926101f2575b50508160011b916000199060031b1c1916176007555b6008549560805260a05260015560018060a01b03196000541617600055610100600160a81b039060081b169160018060a81b031916171760085560405161142190816104c4823960805181818161018101528181610b7b01526110d8015260a051816109fa0152f35b015190503880610173565b600760009081528281209350601f198516905b81811061024d5750908460019594939210610234575b505050811b01600755610189565b015160001960f88460031b161c19169055388080610226565b92936020600181928786015181550195019301610210565b60076000529091507fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688601f840160051c810191602085106102cb575b90601f859493920160051c01905b8181106102bc575061015c565b600081558493506001016102af565b90915081906102a1565b634e487b7160e01b600052602260045260246000fd5b91607f1691610148565b634e487b7160e01b600052604160045260246000fd5b01519050388061010f565b600660009081528281209350601f198516905b818110610366575090846001959493921061034d575b505050811b01600655610125565b015160001960f88460031b161c1916905538808061033f565b92936020600181928786015181550195019301610329565b60066000529091507ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f601f840160051c810191602085106103e4575b90601f859493920160051c01905b8181106103d557506100f8565b600081558493506001016103c8565b90915081906103ba565b91607f16916100e4565b63d92e233d60e01b60005260046000fd5b506001600160a01b038616156100bd565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176102f557604052565b81601f8201121561041a578051906001600160401b0382116102f557610473601f8301601f191660200161041f565b928284526020838301011161041a5760005b82811061049a57505060206000918301015290565b80602080928401015182828701015201610485565b51906001600160a01b038216820361041a5756fe608080604052600436101561001357600080fd5b60003560e01c90816306fdde0314610e8157508063091d278814610e63578063095ea7b314610e3d57806318160ddd14610e1f57806323b872dd14610d9e578063313ce56714610d7d5780633ce4a5bc14610d4e57806340c10f1914610d2957806342966c6814610d0c57806347e7ef2414610bf65780634d8943bb14610bd857806370a0823114610b9e57806385e1f4d014610b635780638b851b9514610b3957806395d89b4114610a695780639dc29fac14610a42578063a3413d03146109e7578063a9059cbb146109b6578063b84c824614610851578063c47f0027146106d6578063c701262614610574578063c835d7cc146104eb578063ccc7759914610445578063d9eeebed1461042c578063dd62ed3e146103db578063eddeb1231461037b578063f2441b3214610352578063f687d12a146102e15763fc5fecd51461015e57600080fd5b346102dc5760203660031901126102dc57600054604051630be1554760e01b81527f00000000000000000000000000000000000000000000000000000000000000006004820181905290916001600160a01b031690602083602481855afa92831561028e576000936102ab575b506001600160a01b0383161561029a5760209060246040518094819363d7fd7afb60e01b835260048301525afa90811561028e57600091610259575b5080156102485761021e61022791600435906110a6565b600254906110b9565b604080516001600160a01b03939093168352602083019190915290f35b0390f35b630e661aed60e41b60005260046000fd5b906020823d602011610286575b8161027360209383610f82565b8101031261028357505138610207565b80fd5b3d9150610266565b6040513d6000823e3d90fd5b633c7ff9cb60e11b60005260046000fd5b6102ce91935060203d6020116102d5575b6102c68183610f82565b810190611087565b91386101cb565b503d6102bc565b600080fd5b346102dc5760203660031901126102dc5760043573735b14bb79463307aacbed86daf3322b1e6226ab3303610341576020817fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a92600155604051908152a1005b632b2add3d60e01b60005260046000fd5b346102dc5760003660031901126102dc576000546040516001600160a01b039091168152602090f35b346102dc5760203660031901126102dc5760043573735b14bb79463307aacbed86daf3322b1e6226ab3303610341576020817fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f92600255604051908152a1005b346102dc5760403660031901126102dc576103f4610f56565b6103fc610f6c565b6001600160a01b039182166000908152600460209081526040808320949093168252928352819020549051908152f35b346102dc5760003660031901126102dc576102276110c6565b346102dc5760203660031901126102dc5761045e610f56565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610341576001600160a01b0381169081156104da5760088054610100600160a81b03191691811b610100600160a81b03169190911790556040519081527f88815d964e380677e86d817e7d65dea59cb7b4c3b5b7a0c8ec7ea4a74f90a38790602090a1005b63d92e233d60e01b60005260046000fd5b346102dc5760203660031901126102dc57610504610f56565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610341576001600160a01b031680156104da576020817fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae926bffffffffffffffffffffffff60a01b6000541617600055604051908152a1005b346102dc5760403660031901126102dc5760043567ffffffffffffffff81116102dc57366023820112156102dc576105b6903690602481600401359101610fa4565b60206024359160006105c66110c6565b93906064604051809481936323b872dd60e01b835233600484015273735b14bb79463307aacbed86daf3322b1e6226ab602484015288604484015260018060a01b03165af190811561028e57600091610697575b5015610686577f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d9559161064c8433611331565b6002549061066560405193608085526080850190610f15565b946020840152604083015260608201528033930390a2602060405160018152f35b63053e6b6b60e11b60005260046000fd5b6020813d6020116106ce575b816106b060209383610f82565b810103126106ca575190811515820361028357508461061a565b5080fd5b3d91506106a3565b346102dc576106e436610feb565b73735b14bb79463307aacbed86daf3322b1e6226ab330361034157805167ffffffffffffffff811161083b5761071b60065461102a565b601f81116107ce575b50602091601f821160011461076257918192600092610757575b5050600019600383901b1c191660019190911b17600655005b01519050828061073e565b601f1982169260066000526000805160206113cc8339815191529160005b8581106107b65750836001951061079d575b505050811b01600655005b015160001960f88460031b161c19169055828080610792565b91926020600181928685015181550194019201610780565b6006600052601f820160051c6000805160206113cc833981519152019060208310610825575b601f0160051c6000805160206113cc83398151915201905b8181106108195750610724565b6000815560010161080c565b6000805160206113cc83398151915291506107f4565b634e487b7160e01b600052604160045260246000fd5b346102dc5761085f36610feb565b73735b14bb79463307aacbed86daf3322b1e6226ab330361034157805167ffffffffffffffff811161083b5761089660075461102a565b601f8111610949575b50602091601f82116001146108dd579181926000926108d2575b5050600019600383901b1c191660019190911b17600755005b0151905082806108b9565b601f1982169260076000526000805160206113ac8339815191529160005b85811061093157508360019510610918575b505050811b01600755005b015160001960f88460031b161c1916905582808061090d565b919260206001819286850151815501940192016108fb565b6007600052601f820160051c6000805160206113ac8339815191520190602083106109a0575b601f0160051c6000805160206113ac83398151915201905b818110610994575061089f565b60008155600101610987565b6000805160206113ac833981519152915061096f565b346102dc5760403660031901126102dc576109dc6109d2610f56565b6024359033611230565b602060405160018152f35b346102dc5760003660031901126102dc577f00000000000000000000000000000000000000000000000000000000000000006040516003821015610a2c576020918152f35b634e487b7160e01b600052602160045260246000fd5b346102dc5760403660031901126102dc57610a67610a5e610f56565b60243590611331565b005b346102dc5760003660031901126102dc576040516000600754610a8b8161102a565b8084529060018116908115610b155750600114610ac7575b61024483610ab381850382610f82565b604051918291602083526020830190610f15565b91905060076000526000805160206113ac833981519152916000905b808210610afb57509091508101602001610ab3610aa3565b919260018160209254838588010152019101909291610ae3565b60ff191660208086019190915291151560051b84019091019150610ab39050610aa3565b346102dc5760003660031901126102dc5760088054604051911c6001600160a01b03168152602090f35b346102dc5760003660031901126102dc5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346102dc5760203660031901126102dc576001600160a01b03610bbf610f56565b1660005260036020526020604060002054604051908152f35b346102dc5760003660031901126102dc576020600254604051908152f35b346102dc5760403660031901126102dc57610c0f610f56565b6024359073735b14bb79463307aacbed86daf3322b1e6226ab33141580610cf7575b80610cdf575b610cce57610cae81610c6a847f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab3946112d6565b60405173735b14bb79463307aacbed86daf3322b1e6226ab60601b60208201526014815290610c9a603483610f82565b604051928392604084526040840190610f15565b60208301959095526001600160a01b0316930390a2602060405160018152f35b636edaef2f60e11b60005260046000fd5b506008805433911c6001600160a01b03161415610c37565b506000546001600160a01b0316331415610c31565b346102dc5760203660031901126102dc576109dc60043533611331565b346102dc5760403660031901126102dc57610a67610d45610f56565b602435906112d6565b346102dc5760003660031901126102dc57602060405173735b14bb79463307aacbed86daf3322b1e6226ab8152f35b346102dc5760003660031901126102dc57602060ff60085416604051908152f35b346102dc5760603660031901126102dc57610db7610f56565b610dbf610f6c565b90610dce604435809383611230565b6001600160a01b0381166000908152600460209081526040808320338452909152902054828110610e0e576109dc92610e0691611064565b9033906111c9565b6310bad14760e01b60005260046000fd5b346102dc5760003660031901126102dc576020600554604051908152f35b346102dc5760403660031901126102dc576109dc610e59610f56565b60243590336111c9565b346102dc5760003660031901126102dc576020600154604051908152f35b346102dc5760003660031901126102dc576000600654610ea08161102a565b8084529060018116908115610b155750600114610ec75761024483610ab381850382610f82565b91905060066000526000805160206113cc833981519152916000905b808210610efb57509091508101602001610ab3610aa3565b919260018160209254838588010152019101909291610ee3565b919082519283825260005b848110610f41575050826000602080949584010152601f8019910116010190565b80602080928401015182828601015201610f20565b600435906001600160a01b03821682036102dc57565b602435906001600160a01b03821682036102dc57565b90601f8019910116810190811067ffffffffffffffff82111761083b57604052565b92919267ffffffffffffffff821161083b5760405191610fce601f8201601f191660200184610f82565b8294818452818301116102dc578281602093846000960137010152565b60206003198201126102dc576004359067ffffffffffffffff82116102dc57806023830112156102dc5781602461102793600401359101610fa4565b90565b90600182811c9216801561105a575b602083101461104457565b634e487b7160e01b600052602260045260246000fd5b91607f1691611039565b9190820391821161107157565b634e487b7160e01b600052601160045260246000fd5b908160209103126102dc57516001600160a01b03811681036102dc5790565b8181029291811591840414171561107157565b9190820180921161107157565b600054604051630be1554760e01b81527f0000000000000000000000000000000000000000000000000000000000000000600482018190529092916001600160a01b031690602084602481855afa93841561028e576000946111a8575b506001600160a01b0384161561029a5760209060246040518094819363d7fd7afb60e01b835260048301525afa90811561028e57600091611176575b5080156102485761021e61102791600154906110a6565b906020823d6020116111a0575b8161119060209383610f82565b810103126102835750513861115f565b3d9150611183565b6111c291945060203d6020116102d5576102c68183610f82565b9238611123565b6001600160a01b03169081156104da576001600160a01b03169182156104da5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260048252604060002085600052825280604060002055604051908152a3565b6001600160a01b03169081156104da576001600160a01b03169182156104da578160005260036020526040600020548181106112c557816112947fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93602093611064565b8460005260038352604060002055846000526003825260406000206112ba8282546110b9565b9055604051908152a3565b63fe382aa760e01b60005260046000fd5b6001600160a01b03169081156104da577fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020826113186000946005546110b9565b60055584845260038252604084206112ba8282546110b9565b6001600160a01b031680156104da57806000526003602052604060002054918083106112c5576020816113877fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93600096611064565b84865260038352604086205561139f81600554611064565b600555604051908152a356fea66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688f652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3fa2646970667358221220143426ebea1dd98ec97cac7a50bf56d05abc5cfb38e424354c050953db17fb6764736f6c634300081a00330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da26469706673582212206717e45fdf103a1ef42406c04560a62655c0f1b8dc7c77591c01b71b30c96d8e64736f6c634300081a0033"; + "0x60808060405234602f57600160ff19600c541617600c55600160ff19601f541617601f556165ab90816100358239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80631ed7831c146101275780632ade3880146101225780633693a15a1461011d5780633e5e3c23146101185780633f7286f41461011357806351976f441461010e57806366d9a9a01461010957806385226c8114610104578063916a17c6146100ff578063a0d788b7146100fa578063b0464fdc146100f5578063b5508aa9146100f0578063ba414fa6146100eb578063c986b404146100e6578063e20c9f71146100e1578063e2624fa4146100dc5763fa7626d4146100d757600080fd5b61142f565b61136b565b611229565b611116565b611017565b610f8a565b610ede565b610e7e565b610dd2565b610ccd565b610bc1565b610777565b6106e6565b610666565b6105e8565b61031f565b61017f565b600091031261013757565b600080fd5b602060408183019282815284518094520192019060005b8181106101605750505090565b82516001600160a01b0316845260209384019390920191600101610153565b346101375760003660031901126101375760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b8181106101f0576101ec856101e0818703826104c7565b6040519182918261013c565b0390f35b82546001600160a01b03168452602090930192600192830192016101c9565b60005b8381106102225750506000910152565b8181015183820152602001610212565b9060209161024b8151809281855285808601910161020f565b601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061028a57505050505090565b9091929394603f198282030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b85010194019260005b8281106102f45750505050506020806001929701930193019193929061027b565b9091929394602080610312600193605f198782030189528951610232565b97019501939291016102d3565b3461013757600036600319011261013757601e5461033c81611452565b9061034a60405192836104c7565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061039057604051806101ec8782610257565b600260206001926040516103a381610471565b848060a01b0386541681526103b9858701611469565b8382015281520192019201919061037b565b634e487b7160e01b600052603260045260246000fd5b6020548110156104005760206000526006602060002091020190600090565b6103cb565b8054821015610400576000526006602060002091020190600090565b90600182811c92168015610451575b602083101461043b57565b634e487b7160e01b600052602260045260246000fd5b91607f1691610430565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761048c57604052565b61045b565b60e081019081106001600160401b0382111761048c57604052565b60a081019081106001600160401b0382111761048c57604052565b90601f801991011681019081106001600160401b0382111761048c57604052565b90604051918260008254926104fc84610421565b808452936001811690811561056a5750600114610523575b50610521925003836104c7565b565b90506000929192526020600020906000915b81831061054e5750509060206105219282010138610514565b6020919350806001915483858901015201910190918492610535565b90506020925061052194915060ff191682840152151560051b82010138610514565b9591936105c760c09699989460ff966105d59460018060a01b03168a5260018060a01b031660208a015260e060408a015260e0890190610232565b908782036060890152610232565b966080860152151560a085015216910152565b34610137576020366003190112610137576004356020548110156101375761060f906103e1565b50805460018201546001600160a01b03918216929116906101ec90610636600282016104e8565b93610643600383016104e8565b91600560048201549101549260405196879660ff808760081c169616948861058c565b346101375760003660031901126101375760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b8181106106c7576101ec856101e0818703826104c7565b82546001600160a01b03168452602090930192600192830192016106b0565b346101375760003660031901126101375760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b818110610747576101ec856101e0818703826104c7565b82546001600160a01b0316845260209093019260019283019201610730565b6001600160a01b0381160361013757565b346101375760403660031901126101375760043561079481610766565b602435906107a182610766565b6000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b0382166004820152600081602481836000805160206165568339815191525af18015610a8557610aee575b506040516360f9bb1160e01b815260206004820152603960248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76322d636f72652f627560448201527f696c642f556e69737761705632466163746f72792e6a736f6e0000000000000060648201526000816084816000805160206165568339815191525afa908115610a85576108a4916000918291610ab3575b5060405180938192631fb2437d60e31b83526004830161152b565b03816000805160206165568339815191525afa8015610a8557610903926108f092600092610acd575b50604080516001600160a01b03909216602083015290926108fe91849190820190565b03601f1981018452836104c7565b612d93565b6040516360f9bb1160e01b815260206004820152603f60248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76322d7065726970686560448201527f72792f6275696c642f556e69737761705632526f7574657230322e6a736f6e0060648201529091906000816084816000805160206165568339815191525afa908115610a85576109b3916000918291610ab3575060405180938192631fb2437d60e31b83526004830161152b565b03816000805160206165568339815191525afa8015610a8557610a06926108f092600092610a8a575b50604080516001600160a01b03808816602083015290921690820152916108fe9083906060820190565b906000805160206165568339815191523b15610137576040516390c5013b60e01b8152600081600481836000805160206165568339815191525af18015610a8557610a6a575b50604080516001600160a01b03928316815292909116602083015290f35b80610a796000610a7f936104c7565b8061012c565b38610a4c565b6114c1565b6108fe919250610aac903d806000833e610aa481836104c7565b8101906114cd565b91906109dc565b610ac791503d8084833e610aa481836104c7565b38610889565b6108fe919250610ae7903d806000833e610aa481836104c7565b91906108cd565b80610a796000610afd936104c7565b386107f5565b906020808351928381520192019060005b818110610b215750505090565b82516001600160e01b031916845260209384019390920191600101610b14565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610b7457505050505090565b9091929394602080610bb2600193603f1986820301875289519083610ba28351604084526040840190610232565b9201519084818403910152610b03565b97019301930191939290610b65565b3461013757600036600319011261013757601b54610bde81611452565b90610bec60405192836104c7565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b838310610c3257604051806101ec8782610b41565b60026020600192604051610c4581610471565b610c4e866104e8565b8152610c5b85870161156b565b83820152815201920192019190610c1d565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610ca057505050505090565b9091929394602080610cbe600193603f198682030187528951610232565b97019301930191939290610c91565b3461013757600036600319011261013757601a54610cea81611452565b90610cf860405192836104c7565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310610d3d57604051806101ec8782610c6d565b600160208192610d4c856104e8565b815201920192019190610d28565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610d8d57505050505090565b9091929394602080610dc3600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610b03565b97019301930191939290610d7e565b3461013757600036600319011261013757601d54610def81611452565b90610dfd60405192836104c7565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b838310610e4357604051806101ec8782610d5a565b60026020600192604051610e5681610471565b848060a01b038654168152610e6c85870161156b565b83820152815201920192019190610e2e565b346101375760e036600319011261013757610edc600435610e9e81610766565b602435610eaa81610766565b604435610eb681610766565b606435610ec281610766565b60843591610ecf83610766565b60a4359360c4359561180a565b005b3461013757600036600319011261013757601c54610efb81611452565b90610f0960405192836104c7565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b838310610f4f57604051806101ec8782610d5a565b60026020600192604051610f6281610471565b848060a01b038654168152610f7885870161156b565b83820152815201920192019190610f3a565b3461013757600036600319011261013757601954610fa781611452565b90610fb560405192836104c7565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b838310610ffa57604051806101ec8782610c6d565b600160208192611009856104e8565b815201920192019190610fe5565b34610137576000366003190112610137576020611032611ae3565b6040519015158152f35b906110b39060018060a01b03835116815260018060a01b03602084015116602082015260c08061109061107e604087015160e0604087015260e0860190610232565b60608701518582036060870152610232565b946080810151608085015260a0810151151560a0850152015191019060ff169052565b90565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106110e957505050505090565b9091929394602080611107600193603f19868203018752895161103c565b970193019301919392906110da565b346101375760003660031901126101375760205461113381611452565b9061114160405192836104c7565b8082526020820160206000527fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb6000915b83831061118757604051806101ec87826110b6565b6006602060019260405161119a81610491565b855460a086901b869003166001600160a01b0390811682528587015416838201526111c7600287016104e8565b60408201526111d8600387016104e8565b60608201526004860154608082015261121b61121160058801546112086111ff8260ff1690565b151560a0860152565b60081c60ff1690565b60ff1660c0830152565b815201920192019190611172565b346101375760003660031901126101375760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b81811061128a576101ec856101e0818703826104c7565b82546001600160a01b0316845260209093019260019283019201611273565b6040519061052160e0836104c7565b60405190610521610160836104c7565b6001600160401b03811161048c57601f01601f191660200190565b81601f82011215610137578035906112fa826112c8565b9261130860405194856104c7565b8284526020838301011161013757816000926020809301838601378301015290565b8015150361013757565b60c435906105218261132a565b60ff81160361013757565b610104359061052182611341565b9060206110b392818152019061103c565b3461013757366003190161012081126101375760a01361013757604051611391816104ac565b60043561139d81610766565b81526024356113ab81610766565b60208201526044356113bc81610766565b60408201526064356113cd81610766565b60608201526084356113de81610766565b608082015260a4356001600160401b038111610137576101ec916114096114239236906004016112e3565b611411611334565b60e4359161141d61134c565b9361202b565b6040519182918261135a565b3461013757600036600319011261013757602060ff601f54166040519015158152f35b6001600160401b03811161048c5760051b60200190565b90815461147581611452565b9261148360405194856104c7565b818452602084019060005260206000206000915b8383106114a45750505050565b6001602081926114b3856104e8565b815201920192019190611497565b6040513d6000823e3d90fd5b602081830312610137578051906001600160401b038211610137570181601f820112156101375760208151910190611504816112c8565b9261151260405194856104c7565b81845281830111610137576110b391602084019061020f565b61153d60409283835283830190610232565b90602081830391015260148152730b995d9b4b989e5d1958dbd9194b9bd89a9958dd60621b60208201520190565b6040518154808252909291839061158b6020830191600052602060002090565b926000905b8060078301106116d3576105219454918181106116b4575b818110611695575b818110611676575b818110611657575b818110611638575b818110611619575b8181106115fb575b106115e6575b5003836104c7565b6001600160e01b0319168152602001386115de565b602083811b6001600160e01b031916855290936001910193016115d8565b604083901b6001600160e01b03191684529260019060200193016115d0565b606083901b6001600160e01b03191684529260019060200193016115c8565b608083901b6001600160e01b03191684529260019060200193016115c0565b60a083901b6001600160e01b03191684529260019060200193016115b8565b60c083901b6001600160e01b03191684529260019060200193016115b0565b6001600160e01b031960e084901b1684529260019060200193016115a8565b91600891935061010060019161178287546116f9838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b019401920185929391611590565b519061052182610766565b9081602091031261013757516110b381610766565b9081602091031261013757516110b38161132a565b634e487b7160e01b600052601160045260246000fd5b9061038482018092116117ea57565b6117c5565b90816060910312610137578051916040602083015192015190565b9291909493946000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b0387166004820152600081602481836000805160206165568339815191525af18015610a8557611abf575b506040516364e329cb60e11b81526001600160a01b0383811660048301528481166024830152909160209183916044918391600091165af18015610a8557611a92575b5060405163095ea7b360e01b81526001600160a01b0384166004820152602481018590526020818060448101038160006001600160a01b0387165af18015610a8557611a75575b5060405163095ea7b360e01b81526001600160a01b038416600482015260248101879052906020828060448101038160006001600160a01b0388165af18015610a85576060966000936119aa92611a48575b5061194a426117db565b60405162e8e33760e81b81526001600160a01b03948516600482015295841660248701526044860197909752606485019890985260006084850181905260a4850152961660c483015260e482019390935293849283918290610104820190565b03926001600160a01b03165af18015610a8557611a19575b506000805160206165568339815191523b15610137576040516390c5013b60e01b8152600081600481836000805160206165568339815191525af18015610a8557611a0a5750565b80610a796000610521936104c7565b611a3a9060603d606011611a41575b611a3281836104c7565b8101906117ef565b50506119c2565b503d611a28565b611a699060203d602011611a6e575b611a6181836104c7565b8101906117b0565b611940565b503d611a57565b611a8d9060203d602011611a6e57611a6181836104c7565b6118ee565b611ab39060203d602011611ab8575b611aab81836104c7565b81019061179b565b6118a7565b503d611aa1565b80610a796000611ace936104c7565b38611864565b90816020910312610137575190565b60085460ff168015611af25790565b50604051630667f9d760e41b8152600080516020616556833981519152600482018190526519985a5b195960d21b6024830152602090829060449082905afa908115610a8557600091611b46575b50151590565b611b68915060203d602011611b6e575b611b6081836104c7565b810190611ad4565b38611b40565b503d611b56565b60405190611b8282610491565b600060c083828152826020820152606060408201526060808201528260808201528260a08201520152565b60405190611bba82610491565b600060c08360608152606060208201528260408201528260608201528260808201528260a08201520152565b90611bf96020928281519485920161020f565b0190565b60031115611c0757565b634e487b7160e01b600052602160045260246000fd5b6003821015611c075752565b959297969391611c5790611c4960ff936101008a526101008a0190610232565b9088820360208a0152610232565b9716604086015260608501526003831015611c07576080840192909252600160a08401526001600160a01b0391821660c08401521660e090910152565b15611c9b57565b60405162461bcd60e51b815260206004820152602260248201527f476174657761792045564d206e6f742073657420666f7220746869732063686160448201526134b760f11b6064820152608490fd5b9081602091031261013757516110b381611341565b60ff16604d81116117ea57600a0a90565b90816402540be40002916402540be4008304036117ea57565b90816064029160648304036117ea57565b9081620f42400291620f42408304036117ea57565b601f8211611d5d57505050565b6000526020600020906020601f840160051c83019310611d98575b601f0160051c01905b818110611d8c575050565b60008155600101611d81565b9091508190611d78565b91909182516001600160401b03811161048c57611dc981611dc38454610421565b84611d50565b6020601f8211600114611e0a578190611dfb939495600092611dff575b50508160011b916000199060031b1c19161790565b9055565b015190503880611de6565b601f19821690611e1f84600052602060002090565b9160005b818110611e5b57509583600195969710611e42575b505050811b019055565b015160001960f88460031b161c19169055388080611e38565b9192602060018192868b015181550194019201611e23565b6020546801000000000000000081101561048c57806001611e9992016020556020610405565b61201557815181546001600160a01b039182166001600160a01b031991821617835560208401516001840180549190931691161790556040820151805160028301916001600160401b03821161048c57611efd82611ef78554610421565b85611d50565b602090601f8311600114611f9a5793611f8593611f3b8460c0956005956105219a99600092611dff5750508160011b916000199060031b1c19161790565b90555b611f4f606086015160038301611da2565b608085015160048201550192611f7d611f6b60a0830151151590565b859060ff801983541691151516179055565b015160ff1690565b61ff0082549160081b169061ff001916179055565b90601f19831691611fb085600052602060002090565b9260005b818110611ffd575084600594610521999894611f85989460c09860019510611fe4575b505050811b019055611f3e565b015160001960f88460031b161c19169055388080611fd7565b92936020600181928786015181550195019301611fb4565b634e487b7160e01b600052600060045260246000fd5b9391929092612038611b75565b50612041611bad565b60405163348051d760e11b8152600481018490529092906000816024816000805160206165568339815191525afa908115610a85576120c3916120d191600091612d78575b506040516602d2921969918160cd1b60208201529283916120bd6120ad602785018c611be6565b6301037b7160e51b815260040190565b90611be6565b03601f1981018352826104c7565b83526040516405a524332360dc1b60208201526120f5816120c36025820189611be6565b602084019081528215612d715760015b612113604086019182611c1d565b8451915190519161212383611bfd565b8851600490602090612145906001600160a01b03165b6001600160a01b031690565b60405163bb88b76960e01b815292839182905afa8015610a8557600491600091612d52575b508a51602090612182906001600160a01b0316612139565b604051633c12ad4d60e21b815293849182905afa918215610a8557600092612d31575b50604051946118e592838701938785106001600160401b0386111761048c5787966121e2968a938e93614c718b396001600160a01b031696611c29565b03906000f0948515610a85576001600160a01b03909516606084019081529460808401966000885283600014612c9857805160049060209061222c906001600160a01b0316612139565b604051630f39296f60e21b815292839182905afa908115610a8557600091612c79575b506000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03919091166004820152600081602481836000805160206165568339815191525af18015610a8557612c64575b5080516004906020906122c1906001600160a01b0316612139565b60405163bb88b76960e01b815292839182905afa908115610a8557600091612c45575b5087516001600160a01b03918216916122fd9116612139565b90803b15610137576040516377140add60e11b8152600481018690526001600160a01b039290921660248301526000908290604490829084905af18015610a8557612c30575b50805160049060209061235e906001600160a01b0316612139565b60405163bb88b76960e01b815292839182905afa908115610a8557600091612c11575b506001600160a01b0316803b156101375760405163a7cb050760e01b815260048101859052633b9aca006024820152906000908290604490829084905af18015610a8557612bfc575b506000805160206165568339815191523b15610137576040516390c5013b60e01b8152600081600481836000805160206165568339815191525af18015610a8557612be7575b505b8651612426906001600160a01b0316612139565b6060820180519091906001600160a01b031660405163313ce56760e01b8152602081600481865afa908115610a85576124709161246b91600091612b84575b50611d00565b611d11565b823b15610137576040516340c10f1960e01b81526001600160a01b039290921660048301526024820152906000908290604490829084905af18015610a8557612bd2575b5087516124c9906001600160a01b0316612139565b82516004906020906124e3906001600160a01b0316612139565b604051630f39296f60e21b815292839182905afa908115610a8557600091612bb3575b508951600490602090612521906001600160a01b0316612139565b60405163313ce56760e01b815292839182905afa908115610a85576125519161246b91600091612b845750611d00565b823b15610137576040516340c10f1960e01b81526001600160a01b039290921660048301526024820152906000908290604490829084905af18015610a8557612b6f575b5080516001600160a01b03166000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03919091166004820152600081602481836000805160206165568339815191525af18015610a8557612b5a575b5080516001600160a01b03166000805160206165568339815191523b156101375760405163c88a5e6d60e01b81526001600160a01b0391909116600482015269d3c21bcecceda10000006024820152600081604481836000805160206165568339815191525af18015610a8557612b45575b508151600490602090612684906001600160a01b0316612139565b604051620b9ea360e11b815292839182905afa908115610a8557600091612b26575b506001600160a01b0316803b15610137576000683635c9adc5dea0000091600460405180948193630d0e30db60e41b83525af18015610a8557612b11575b506126f66126f188611d00565b611d2a565b60a0870190815260c087019068056bc75e2d63100000825260046020612725612139875160018060a01b031690565b604051630b4a282f60e11b815292839182905afa8015610a8557600491600091612af2575b508551602090612762906001600160a01b0316612139565b6040516359d0f71360e01b815293849182905afa8015610a85578c600493600092612ac9575b505161279c906001600160a01b0316612139565b87516020906127b3906001600160a01b0316612139565b604051620b9ea360e11b815295869182905afa928315610a85576127fa94600094612aa8575b5087516001600160a01b03169186519388519560018060a01b03169261180a565b8951600490612811906001600160a01b0316612139565b855190949060209061282b906001600160a01b0316612139565b604051620b9ea360e11b815293849182905afa908115610a8557600492600092612a83575b50516001600160a01b03165b92519351865190969060209061287a906001600160a01b0316612139565b604051632daa48c160e11b815294859182905afa908115610a8557600493600092612a59575b50516020906128b7906001600160a01b0316612139565b60405163342a30c360e01b815294859182905afa908115610a8557612958976129539661294395600094612a32575b5061291961293394956129096128fa6112a9565b6001600160a01b03909c168c52565b6001600160a01b031660208b0152565b604089015260608801526001600160a01b03166080870152565b6001600160a01b031660a0850152565b6001600160a01b031660c0830152565b613394565b6000805160206165568339815191523b15610137576040516390c5013b60e01b815293600085600481836000805160206165568339815191525af18015610a85576129cf6129c1612139612a149a611211996129fc95612a1d575b50516001600160a01b031690565b99516001600160a01b031690565b9151916129ec6129dd6112a9565b6001600160a01b03909b168b52565b6001600160a01b031660208a0152565b604088015260608701526080860152151560a0850152565b6110b381611e73565b80610a796000612a2c936104c7565b386129b3565b6129339450612a526129199160203d602011611ab857611aab81836104c7565b94506128e6565b6020919250612139612a7a6128b792843d8611611ab857611aab81836104c7565b939250506128a0565b61285c919250612aa19060203d602011611ab857611aab81836104c7565b9190612850565b612ac291945060203d602011611ab857611aab81836104c7565b92386127d9565b61279c919250612aea6121399160203d602011611ab857611aab81836104c7565b929150612788565b612b0b915060203d602011611ab857611aab81836104c7565b3861274a565b80610a796000612b20936104c7565b386126e4565b612b3f915060203d602011611ab857611aab81836104c7565b386126a6565b80610a796000612b54936104c7565b38612669565b80610a796000612b69936104c7565b386125f7565b80610a796000612b7e936104c7565b38612595565b612ba6915060203d602011612bac575b612b9e81836104c7565b810190611ceb565b38612465565b503d612b94565b612bcc915060203d602011611ab857611aab81836104c7565b38612506565b80610a796000612be1936104c7565b386124b4565b80610a796000612bf6936104c7565b38612410565b80610a796000612c0b936104c7565b386123ca565b612c2a915060203d602011611ab857611aab81836104c7565b38612381565b80610a796000612c3f936104c7565b38612343565b612c5e915060203d602011611ab857611aab81836104c7565b386122e4565b80610a796000612c73936104c7565b386122a6565b612c92915060203d602011611ab857611aab81836104c7565b3861224f565b6020810151612caf906001600160a01b0316612139565b604051621ac49360e31b81526004810185905290602090829060249082905afa8015610a8557612cf291600091612d12575b506001600160a01b03161515611c94565b612d0d612d00838584612e19565b6001600160a01b03168952565b612412565b612d2b915060203d602011611ab857611aab81836104c7565b38612ce1565b612d4b91925060203d602011611ab857611aab81836104c7565b90386121a5565b612d6b915060203d602011611ab857611aab81836104c7565b3861216a565b6002612105565b612d8d91503d806000833e610aa481836104c7565b38612086565b90612dd860209160405192839181612db4818501978881519384920161020f565b8301612dc88251809385808501910161020f565b010103601f1981018352826104c7565b51906000f090811561013757565b9091612dfd6110b393604084526040840190610232565b916020818403910152610232565b604d81116117ea57600a0a90565b9160405190610b5990818301908382106001600160401b0383111761048c5780612e499285946141188639612de6565b03906000f08015610a855760405163313ce56760e01b81526001600160a01b03919091169290602081600481875afa8015610a855760ff91600091613358575b506060830180519092909116906001600160a01b03166000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03919091166004820152600081602481836000805160206165568339815191525af18015610a8557613343575b50602083018051909390612f11906001600160a01b0316612139565b60405163ad8414bf60e01b81526004810187905290602090829060249082905afa908115610a8557612f7a91602091600091613326575b5060405163095ea7b360e01b81526001600160a01b039091166004820152600019602482015291829081906044820190565b038160008b5af18015610a8557613309575b508351612fa1906001600160a01b0316612139565b60405163ad8414bf60e01b8152600481018790529190602090839060249082905afa918215610a85576000926132e8575b50612fe4612fdf84612e0b565b611d3b565b91873b15610137576040516340c10f1960e01b81526001600160a01b039190911660048201526024810192909252600082604481838b5af1918215610a85576080926132d3575b500180519092906001600160a01b0316613047612fdf84612e0b565b90873b15610137576040516340c10f1960e01b81526001600160a01b039190911660048201526024810191909152600081604481838b5af18015610a85576130a992612fdf926130a392612a1d5750516001600160a01b031690565b92612e0b565b90853b15610137576040516340c10f1960e01b81526001600160a01b03919091166004820152602481019190915260008160448183895af18015610a85576132be575b506000805160206165568339815191523b15610137576040516390c5013b60e01b815290600082600481836000805160206165568339815191525af1918215610a855761314592612a1d5750516001600160a01b031690565b916000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03939093166004840152600083602481836000805160206165568339815191525af1928315610a85576121396020936131b8926131d896612a1d5750516001600160a01b031690565b604051808095819463ad8414bf60e01b8352600483019190602083019252565b03915afa908115610a855760009161329f575b506001600160a01b0316803b1561013757604051634d8c928d60e11b81526001600160a01b0383166004820152906000908290602490829084905af18015610a855761328a575b506000805160206165568339815191523b15610137576040516390c5013b60e01b8152600081600481836000805160206165568339815191525af18015610a855761327b575090565b80610a7960006110b3936104c7565b80610a796000613299936104c7565b38613232565b6132b8915060203d602011611ab857611aab81836104c7565b386131eb565b80610a7960006132cd936104c7565b386130ec565b80610a7960006132e2936104c7565b3861302b565b61330291925060203d602011611ab857611aab81836104c7565b9038612fd2565b6133219060203d602011611a6e57611a6181836104c7565b612f8c565b61333d9150823d8411611ab857611aab81836104c7565b38612f48565b80610a796000613352936104c7565b38612ef5565b613371915060203d602011612bac57612b9e81836104c7565b38612e89565b1561337e57565b634e487b7160e01b600052600160045260246000fd5b60c0810180519091906001600160a01b03166000805160206165568339815191523b15610137576040516303223eab60e11b81526001600160a01b03919091166004820152600081602481836000805160206165568339815191525af18015610a855761365e575b50805161341390612139906001600160a01b031681565b60a08201805160408085018051915163095ea7b360e01b81526001600160a01b0390931660048401526024830191909152949192602090829060449082906000905af18015610a8557613641575b5060208301805190929061347f90612139906001600160a01b031681565b815160608601805160405163095ea7b360e01b81526001600160a01b03909316600484015260248301529691602090829060449082906000905af18015610a8557613624575b50845184516001600160a01b0391821691168082116135f6575b505060808501516001600160a01b031685516001600160a01b031685516001600160a01b03169061350f926136cb565b956135246001600160a01b0388161515613377565b82516001600160a01b031686519092906001600160a01b031686519092906001600160a01b03169151905186519092906001600160a01b03169361356795613834565b93516001600160a01b031692516001600160a01b031690516001600160a01b031691516001600160a01b03169261359c6112a9565b6001600160a01b0390961686526001600160a01b031660208601526001600160a01b031660408501526001600160a01b031660608401526001600160a01b0316608083015260a0820152600060c08201526119c290613c54565b6001600160a01b039091168552613615905b6001600160a01b03168652565b855181518752815238806134df565b61363c9060203d602011611a6e57611a6181836104c7565b6134c5565b6136599060203d602011611a6e57611a6181836104c7565b613461565b80610a79600061366d936104c7565b386133fc565b1561367a57565b60405162461bcd60e51b815260206004820152602360248201527f556e6973776170563353657475704c69623a20506f6f6c206e6f7420637265616044820152621d195960ea1b6064820152608490fd5b60405163a167129560e01b81526001600160a01b0383811660048301528481166024830152610bb8604483015290949391166020856064816000855af1928315610a8557613758956020946137dc575b50604051630b4c774160e11b81526001600160a01b03918216600482015292166024830152610bb860448301529093849190829081906064820190565b03915afa918215610a85576000926137bb575b506001600160a01b038216613781811515613673565b803b156101375760405163f637731d60e01b8152600160601b6004820152906000908290602490829084905af18015610a8557611a0a5750565b6137d591925060203d602011611ab857611aab81836104c7565b903861376b565b6137f290853d8711611ab857611aab81836104c7565b61371b565b51906001600160801b038216820361013757565b919082608091031261013757815191613826602082016137f7565b916060604083015192015190565b916138bd6000966080966139699661387961384e426117db565b9561386961385a6112b8565b6001600160a01b039099168952565b6001600160a01b03166020880152565b610bb86040870152620d89b3196060870152620d89b4868a015260a086015260c085015260e0840188905261010084018890526001600160a01b0316610120840152565b610140820190815260408051634418b22b60e11b815283516001600160a01b0390811660048301526020850151811660248301529184015162ffffff1660448201526060840151600290810b60648301526080850151900b608482015260a084015160a482015260c084015160c482015260e084015160e48201526101008401516101048201526101209093015116610124830152516101448201529384928391908290610164820190565b03926001600160a01b03165af1908115610a8557600091613988575090565b6139aa915060803d6080116139b0575b6139a281836104c7565b81019061380b565b50505090565b503d613998565b6040519061018082018281106001600160401b0382111761048c576040526000610160838281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015282610120820152826101408201520152565b90816020910312610137576110b3906137f7565b15613a3c57565b60405162461bcd60e51b8152602060048201526015602482015274506f6f6c20686173206e6f206c697175696469747960581b6044820152606490fd5b51908160020b820361013757565b519061ffff8216820361013757565b908160e0910312610137578051613aac81610766565b91613ab960208301613a79565b91613ac660408201613a87565b91613ad360608301613a87565b91613ae060808201613a87565b9160c060a0830151613af181611341565b9201516110b38161132a565b15613b0457565b60405162461bcd60e51b81526020600482015260116024820152700556e657870656374656420746f6b656e3607c1b6044820152606490fd5b15613b4457565b60405162461bcd60e51b8152602060048201526011602482015270556e657870656374656420746f6b656e3160781b6044820152606490fd5b15613b8457565b60405162461bcd60e51b815260206004820152601960248201527f506f736974696f6e20686173206e6f206c6971756964697479000000000000006044820152606490fd5b15613bd057565b60405162461bcd60e51b815260206004820152601860248201527f506f736974696f6e20746f6b656e73206d69736d6174636800000000000000006044820152606490fd5b15613c1c57565b60405162461bcd60e51b815260206004820152601060248201526f2ab732bc3832b1ba32b21037bbb732b960811b6044820152606490fd5b90613c5d6139b7565b8251909290613c74906001600160a01b0316612139565b6060820151909190613c8e906001600160a01b0316612139565b604051630d34328160e11b815290926001600160a01b03169190602081600481865afa8015610a8557613ce36001600160801b0391613ceb93600091613fc4575b506001600160801b03166060890181905290565b161515613a35565b604051633850c7bd60e01b815260e081600481865afa908115610a8557613d2591600091600091613f88575b5060020b6020880152613608565b604051630dfe168160e01b815291602083600481845afa908115610a8557600493600092613f66575b506001600160a01b03909116608087019081529060209060405163d21220a760e01b815294859182905afa928315610a8557600093613f45575b506001600160a01b0392831660a08701908152815160208401519194613db2928116911614613afd565b82516040830151613dd0916001600160a01b03918216911614613b3d565b60a08201938451613de19082614003565b6001600160801b031660c08c019081526101008c01969460e08d0194919390928d6101400190613e13919060020b9052565b60020b6101208d01526001600160a01b03908116875216825251613e41906001600160801b03161515613b7d565b519051613e9195602094613e6e936001600160a01b039384169316929092149182613f18575b5050613bc9565b84519060405180809681946331a9108f60e11b8352600483019190602083019252565b03916001600160a01b03165afa8015610a85576121396080613ed0613edf93613ef096600091613ef9575b506001600160a01b031660408a0181905290565b9301516001600160a01b031690565b6001600160a01b0390911614613c15565b51610160830152565b613f12915060203d602011611ab857611aab81836104c7565b38613ebc565b5190516001600160a01b039182169250613f329116612139565b6001600160a01b03909116143880613e67565b613f5f91935060203d602011611ab857611aab81836104c7565b9138613d88565b6020919250613f8190823d8411611ab857611aab81836104c7565b9190613d4e565b6136089250613faf915060e03d60e011613fbd575b613fa781836104c7565b810190613a96565b505050505091909190613d17565b503d613f9d565b613fe6915060203d602011613fec575b613fde81836104c7565b810190613a21565b38613ccf565b503d613fd4565b519062ffffff8216820361013757565b60405163133f757160e31b8152600481019290925261018090829060249082906001600160a01b03165afa908115610a8557600091829183918491859161404d575b509091929394565b949350505050610180823d821161410f575b8161406d61018093836104c7565b8101031261410c5781516bffffffffffffffffffffffff81160361410c575061409860208201611790565b506140a560408201611790565b906140b260608201611790565b916140bf60808301613ff3565b506140cc60a08301613a79565b916140d960c08201613a79565b916141016101606140ec60e085016137f7565b936140fa61014082016137f7565b50016137f7565b509392919038614045565b80fd5b3d915061405f56fe60806040523461032457610b598038038061001981610329565b9283398101906040818303126103245780516001600160401b038111610324578261004591830161034e565b60208201519092906001600160401b03811161032457610065920161034e565b81516001600160401b03811161022f57600354600181811c9116801561031a575b602082101461020f57601f81116102b5575b50602092601f82116001146102505792819293600092610245575b50508160011b916000199060031b1c1916176003555b80516001600160401b03811161022f57600454600181811c91168015610225575b602082101461020f57601f81116101aa575b50602091601f82116001146101465791819260009261013b575b50508160011b916000199060031b1c1916176004555b60405161079f90816103ba8239f35b015190503880610116565b601f198216926004600052806000209160005b85811061019257508360019510610179575b505050811b0160045561012c565b015160001960f88460031b161c1916905538808061016b565b91926020600181928685015181550194019201610159565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c81019160208410610205575b601f0160051c01905b8181106101f957506100fc565b600081556001016101ec565b90915081906101e3565b634e487b7160e01b600052602260045260246000fd5b90607f16906100ea565b634e487b7160e01b600052604160045260246000fd5b0151905038806100b3565b601f198216936003600052806000209160005b86811061029d5750836001959610610284575b505050811b016003556100c9565b015160001960f88460031b161c19169055388080610276565b91926020600181928685015181550194019201610263565b60036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c81019160208410610310575b601f0160051c01905b8181106103045750610098565b600081556001016102f7565b90915081906102ee565b90607f1690610086565b600080fd5b6040519190601f01601f191682016001600160401b0381118382101761022f57604052565b81601f82011215610324578051906001600160401b03821161022f5761037d601f8301601f1916602001610329565b92828452602083830101116103245760005b8281106103a457505060206000918301015290565b8060208092840101518282870101520161038f56fe608080604052600436101561001357600080fd5b60003560e01c90816306fdde031461058857508063095ea7b31461050257806318160ddd146104e457806323b872dd146103f7578063313ce567146103db57806340c10f191461032f57806370a08231146102f557806395d89b41146101d45780639dc29fac1461011f578063a9059cbb146100ee5763dd62ed3e1461009857600080fd5b346100e95760403660031901126100e9576100b16106a4565b6100b96106ba565b6001600160a01b039182166000908152600160209081526040808320949093168252928352819020549051908152f35b600080fd5b346100e95760403660031901126100e95761011461010a6106a4565b60243590336106d0565b602060405160018152f35b346100e95760403660031901126100e9576101386106a4565b6001600160a01b031660243581156101be576000908282528160205260408220548181106101a65760208285937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93869787528684520360408620558060025403600255604051908152a380f35b60649363391434e360e21b8452600452602452604452fd5b634b637e8f60e11b600052600060045260246000fd5b346100e95760003660031901126100e95760405160006004548060011c906001811680156102eb575b6020831081146102d7578285529081156102bb5750600114610264575b50819003601f01601f191681019067ffffffffffffffff82118183101761024e5761024a8291826040528261065b565b0390f35b634e487b7160e01b600052604160045260246000fd5b905060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b6000905b8282106102a55750602091508201018261021a565b6001816020925483858801015201910190610290565b90506020925060ff191682840152151560051b8201018261021a565b634e487b7160e01b84526022600452602484fd5b91607f16916101fd565b346100e95760203660031901126100e9576001600160a01b036103166106a4565b1660005260006020526020604060002054604051908152f35b346100e95760403660031901126100e9576103486106a4565b602435906001600160a01b031680156103c557600254918083018093116103af576020926002557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600093849284845283825260408420818154019055604051908152a380f35b634e487b7160e01b600052601160045260246000fd5b63ec442f0560e01b600052600060045260246000fd5b346100e95760003660031901126100e957602060405160128152f35b346100e95760603660031901126100e9576104106106a4565b6104186106ba565b6001600160a01b0382166000818152600160209081526040808320338452909152902054909260443592916000198110610458575b5061011493506106d0565b8381106104c75784156104b157331561049b57610114946000526001602052604060002060018060a01b033316600052602052836040600020910390558461044d565b634a1406b160e11b600052600060045260246000fd5b63e602df0560e01b600052600060045260246000fd5b8390637dc7a0d960e11b6000523360045260245260445260646000fd5b346100e95760003660031901126100e9576020600254604051908152f35b346100e95760403660031901126100e95761051b6106a4565b6024359033156104b1576001600160a01b031690811561049b57336000526001602052604060002082600052602052806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346100e95760003660031901126100e95760006003548060011c90600181168015610651575b6020831081146102d7578285529081156102bb57506001146105fa5750819003601f01601f191681019067ffffffffffffffff82118183101761024e5761024a8291826040528261065b565b905060036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b6000905b82821061063b5750602091508201018261021a565b6001816020925483858801015201910190610626565b91607f16916105ae565b91909160208152825180602083015260005b81811061068e575060409293506000838284010152601f8019910116010190565b806020809287010151604082860101520161066d565b600435906001600160a01b03821682036100e957565b602435906001600160a01b03821682036100e957565b6001600160a01b03169081156101be576001600160a01b03169182156103c557600082815280602052604081205482811061074f5791604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815280845220818154019055604051908152a3565b916064928463391434e360e21b8452600452602452604452fdfea2646970667358221220244a0a20c657fff7862703acb5cfe7ea7d2b0fc51d1a41b0a338be948dd8f1cf64736f6c634300081a003360c06040523461041a576118e5803803806100198161041f565b92833981016101008282031261041a5781516001600160401b03811161041a5781610045918401610444565b602083015190916001600160401b03821161041a57610065918401610444565b9160408101519160ff831680930361041a576060820151936080830151600381101561041a5760a0840151916100a960e06100a260c088016104af565b96016104af565b946001600160a01b03169384158015610409575b6103f8578051906001600160401b0382116102f55760065490600182811c921680156103ee575b60208310146102d55781601f84931161037e575b50602090601f83116001146103165760009261030b575b50508160011b916000199060031b1c1916176006555b8051906001600160401b0382116102f55760075490600182811c921680156102eb575b60208310146102d55781601f849311610265575b50602090601f83116001146101fd576000926101f2575b50508160011b916000199060031b1c1916176007555b6008549560805260a05260015560018060a01b03196000541617600055610100600160a81b039060081b169160018060a81b031916171760085560405161142190816104c4823960805181818161018101528181610b7b01526110d8015260a051816109fa0152f35b015190503880610173565b600760009081528281209350601f198516905b81811061024d5750908460019594939210610234575b505050811b01600755610189565b015160001960f88460031b161c19169055388080610226565b92936020600181928786015181550195019301610210565b60076000529091507fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688601f840160051c810191602085106102cb575b90601f859493920160051c01905b8181106102bc575061015c565b600081558493506001016102af565b90915081906102a1565b634e487b7160e01b600052602260045260246000fd5b91607f1691610148565b634e487b7160e01b600052604160045260246000fd5b01519050388061010f565b600660009081528281209350601f198516905b818110610366575090846001959493921061034d575b505050811b01600655610125565b015160001960f88460031b161c1916905538808061033f565b92936020600181928786015181550195019301610329565b60066000529091507ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f601f840160051c810191602085106103e4575b90601f859493920160051c01905b8181106103d557506100f8565b600081558493506001016103c8565b90915081906103ba565b91607f16916100e4565b63d92e233d60e01b60005260046000fd5b506001600160a01b038616156100bd565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176102f557604052565b81601f8201121561041a578051906001600160401b0382116102f557610473601f8301601f191660200161041f565b928284526020838301011161041a5760005b82811061049a57505060206000918301015290565b80602080928401015182828701015201610485565b51906001600160a01b038216820361041a5756fe608080604052600436101561001357600080fd5b60003560e01c90816306fdde0314610e8157508063091d278814610e63578063095ea7b314610e3d57806318160ddd14610e1f57806323b872dd14610d9e578063313ce56714610d7d5780633ce4a5bc14610d4e57806340c10f1914610d2957806342966c6814610d0c57806347e7ef2414610bf65780634d8943bb14610bd857806370a0823114610b9e57806385e1f4d014610b635780638b851b9514610b3957806395d89b4114610a695780639dc29fac14610a42578063a3413d03146109e7578063a9059cbb146109b6578063b84c824614610851578063c47f0027146106d6578063c701262614610574578063c835d7cc146104eb578063ccc7759914610445578063d9eeebed1461042c578063dd62ed3e146103db578063eddeb1231461037b578063f2441b3214610352578063f687d12a146102e15763fc5fecd51461015e57600080fd5b346102dc5760203660031901126102dc57600054604051630be1554760e01b81527f00000000000000000000000000000000000000000000000000000000000000006004820181905290916001600160a01b031690602083602481855afa92831561028e576000936102ab575b506001600160a01b0383161561029a5760209060246040518094819363d7fd7afb60e01b835260048301525afa90811561028e57600091610259575b5080156102485761021e61022791600435906110a6565b600254906110b9565b604080516001600160a01b03939093168352602083019190915290f35b0390f35b630e661aed60e41b60005260046000fd5b906020823d602011610286575b8161027360209383610f82565b8101031261028357505138610207565b80fd5b3d9150610266565b6040513d6000823e3d90fd5b633c7ff9cb60e11b60005260046000fd5b6102ce91935060203d6020116102d5575b6102c68183610f82565b810190611087565b91386101cb565b503d6102bc565b600080fd5b346102dc5760203660031901126102dc5760043573735b14bb79463307aacbed86daf3322b1e6226ab3303610341576020817fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a92600155604051908152a1005b632b2add3d60e01b60005260046000fd5b346102dc5760003660031901126102dc576000546040516001600160a01b039091168152602090f35b346102dc5760203660031901126102dc5760043573735b14bb79463307aacbed86daf3322b1e6226ab3303610341576020817fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f92600255604051908152a1005b346102dc5760403660031901126102dc576103f4610f56565b6103fc610f6c565b6001600160a01b039182166000908152600460209081526040808320949093168252928352819020549051908152f35b346102dc5760003660031901126102dc576102276110c6565b346102dc5760203660031901126102dc5761045e610f56565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610341576001600160a01b0381169081156104da5760088054610100600160a81b03191691811b610100600160a81b03169190911790556040519081527f88815d964e380677e86d817e7d65dea59cb7b4c3b5b7a0c8ec7ea4a74f90a38790602090a1005b63d92e233d60e01b60005260046000fd5b346102dc5760203660031901126102dc57610504610f56565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610341576001600160a01b031680156104da576020817fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae926bffffffffffffffffffffffff60a01b6000541617600055604051908152a1005b346102dc5760403660031901126102dc5760043567ffffffffffffffff81116102dc57366023820112156102dc576105b6903690602481600401359101610fa4565b60206024359160006105c66110c6565b93906064604051809481936323b872dd60e01b835233600484015273735b14bb79463307aacbed86daf3322b1e6226ab602484015288604484015260018060a01b03165af190811561028e57600091610697575b5015610686577f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d9559161064c8433611331565b6002549061066560405193608085526080850190610f15565b946020840152604083015260608201528033930390a2602060405160018152f35b63053e6b6b60e11b60005260046000fd5b6020813d6020116106ce575b816106b060209383610f82565b810103126106ca575190811515820361028357508461061a565b5080fd5b3d91506106a3565b346102dc576106e436610feb565b73735b14bb79463307aacbed86daf3322b1e6226ab330361034157805167ffffffffffffffff811161083b5761071b60065461102a565b601f81116107ce575b50602091601f821160011461076257918192600092610757575b5050600019600383901b1c191660019190911b17600655005b01519050828061073e565b601f1982169260066000526000805160206113cc8339815191529160005b8581106107b65750836001951061079d575b505050811b01600655005b015160001960f88460031b161c19169055828080610792565b91926020600181928685015181550194019201610780565b6006600052601f820160051c6000805160206113cc833981519152019060208310610825575b601f0160051c6000805160206113cc83398151915201905b8181106108195750610724565b6000815560010161080c565b6000805160206113cc83398151915291506107f4565b634e487b7160e01b600052604160045260246000fd5b346102dc5761085f36610feb565b73735b14bb79463307aacbed86daf3322b1e6226ab330361034157805167ffffffffffffffff811161083b5761089660075461102a565b601f8111610949575b50602091601f82116001146108dd579181926000926108d2575b5050600019600383901b1c191660019190911b17600755005b0151905082806108b9565b601f1982169260076000526000805160206113ac8339815191529160005b85811061093157508360019510610918575b505050811b01600755005b015160001960f88460031b161c1916905582808061090d565b919260206001819286850151815501940192016108fb565b6007600052601f820160051c6000805160206113ac8339815191520190602083106109a0575b601f0160051c6000805160206113ac83398151915201905b818110610994575061089f565b60008155600101610987565b6000805160206113ac833981519152915061096f565b346102dc5760403660031901126102dc576109dc6109d2610f56565b6024359033611230565b602060405160018152f35b346102dc5760003660031901126102dc577f00000000000000000000000000000000000000000000000000000000000000006040516003821015610a2c576020918152f35b634e487b7160e01b600052602160045260246000fd5b346102dc5760403660031901126102dc57610a67610a5e610f56565b60243590611331565b005b346102dc5760003660031901126102dc576040516000600754610a8b8161102a565b8084529060018116908115610b155750600114610ac7575b61024483610ab381850382610f82565b604051918291602083526020830190610f15565b91905060076000526000805160206113ac833981519152916000905b808210610afb57509091508101602001610ab3610aa3565b919260018160209254838588010152019101909291610ae3565b60ff191660208086019190915291151560051b84019091019150610ab39050610aa3565b346102dc5760003660031901126102dc5760088054604051911c6001600160a01b03168152602090f35b346102dc5760003660031901126102dc5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346102dc5760203660031901126102dc576001600160a01b03610bbf610f56565b1660005260036020526020604060002054604051908152f35b346102dc5760003660031901126102dc576020600254604051908152f35b346102dc5760403660031901126102dc57610c0f610f56565b6024359073735b14bb79463307aacbed86daf3322b1e6226ab33141580610cf7575b80610cdf575b610cce57610cae81610c6a847f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab3946112d6565b60405173735b14bb79463307aacbed86daf3322b1e6226ab60601b60208201526014815290610c9a603483610f82565b604051928392604084526040840190610f15565b60208301959095526001600160a01b0316930390a2602060405160018152f35b636edaef2f60e11b60005260046000fd5b506008805433911c6001600160a01b03161415610c37565b506000546001600160a01b0316331415610c31565b346102dc5760203660031901126102dc576109dc60043533611331565b346102dc5760403660031901126102dc57610a67610d45610f56565b602435906112d6565b346102dc5760003660031901126102dc57602060405173735b14bb79463307aacbed86daf3322b1e6226ab8152f35b346102dc5760003660031901126102dc57602060ff60085416604051908152f35b346102dc5760603660031901126102dc57610db7610f56565b610dbf610f6c565b90610dce604435809383611230565b6001600160a01b0381166000908152600460209081526040808320338452909152902054828110610e0e576109dc92610e0691611064565b9033906111c9565b6310bad14760e01b60005260046000fd5b346102dc5760003660031901126102dc576020600554604051908152f35b346102dc5760403660031901126102dc576109dc610e59610f56565b60243590336111c9565b346102dc5760003660031901126102dc576020600154604051908152f35b346102dc5760003660031901126102dc576000600654610ea08161102a565b8084529060018116908115610b155750600114610ec75761024483610ab381850382610f82565b91905060066000526000805160206113cc833981519152916000905b808210610efb57509091508101602001610ab3610aa3565b919260018160209254838588010152019101909291610ee3565b919082519283825260005b848110610f41575050826000602080949584010152601f8019910116010190565b80602080928401015182828601015201610f20565b600435906001600160a01b03821682036102dc57565b602435906001600160a01b03821682036102dc57565b90601f8019910116810190811067ffffffffffffffff82111761083b57604052565b92919267ffffffffffffffff821161083b5760405191610fce601f8201601f191660200184610f82565b8294818452818301116102dc578281602093846000960137010152565b60206003198201126102dc576004359067ffffffffffffffff82116102dc57806023830112156102dc5781602461102793600401359101610fa4565b90565b90600182811c9216801561105a575b602083101461104457565b634e487b7160e01b600052602260045260246000fd5b91607f1691611039565b9190820391821161107157565b634e487b7160e01b600052601160045260246000fd5b908160209103126102dc57516001600160a01b03811681036102dc5790565b8181029291811591840414171561107157565b9190820180921161107157565b600054604051630be1554760e01b81527f0000000000000000000000000000000000000000000000000000000000000000600482018190529092916001600160a01b031690602084602481855afa93841561028e576000946111a8575b506001600160a01b0384161561029a5760209060246040518094819363d7fd7afb60e01b835260048301525afa90811561028e57600091611176575b5080156102485761021e61102791600154906110a6565b906020823d6020116111a0575b8161119060209383610f82565b810103126102835750513861115f565b3d9150611183565b6111c291945060203d6020116102d5576102c68183610f82565b9238611123565b6001600160a01b03169081156104da576001600160a01b03169182156104da5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260048252604060002085600052825280604060002055604051908152a3565b6001600160a01b03169081156104da576001600160a01b03169182156104da578160005260036020526040600020548181106112c557816112947fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93602093611064565b8460005260038352604060002055846000526003825260406000206112ba8282546110b9565b9055604051908152a3565b63fe382aa760e01b60005260046000fd5b6001600160a01b03169081156104da577fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020826113186000946005546110b9565b60055584845260038252604084206112ba8282546110b9565b6001600160a01b031680156104da57806000526003602052604060002054918083106112c5576020816113877fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93600096611064565b84865260038352604086205561139f81600554611064565b600555604051908152a356fea66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688f652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3fa2646970667358221220de2afd89f9562d881a6037e1b595c5b924ecf9024c4a393e54fbc8e66db522b864736f6c634300081a00330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da2646970667358221220f7cb1cf5eab98ac38140d2d2c2f5373742c7bd092e840adfd74976624072753464736f6c634300081a0033"; type TokenSetupConstructorParams = | [signer?: Signer] diff --git a/typechain-types/factories/contracts/testing/ZetaSetup.t.sol/ZetaSetup__factory.ts b/typechain-types/factories/contracts/testing/ZetaSetup.t.sol/ZetaSetup__factory.ts index 15ec54da..f7ac2858 100644 --- a/typechain-types/factories/contracts/testing/ZetaSetup.t.sol/ZetaSetup__factory.ts +++ b/typechain-types/factories/contracts/testing/ZetaSetup.t.sol/ZetaSetup__factory.ts @@ -829,7 +829,7 @@ const _abi = [ ] as const; const _bytecode = - "0x60803460a357601f620103f838819003918201601f19168301916001600160401b0383118484101760a857808492604094855283398101031260a3576001604e602060488460be565b930160be565b918160ff19600c541617600c55601f54906101008360a81b039060081b1690828060a81b0319161717601f5560018060a01b031660018060a01b03196020541617602055604051620103269081620000d28239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820360a35756fe6080604052600436101561001257600080fd5b60003560e01c8062173d46146101b65780631694505e146101b15780631ed7831c146101ac5780632ade3880146101a75780632c76d7a6146101a2578063342a30c31461019d5780633ce4a5bc146101985780633e5e3c23146101935780633f7286f41461018e57806351976f441461018957806352dc56b81461018457806359d0f7131461017f5780635b5491821461017a57806366141ce21461017557806366d9a9a01461017057806385226c811461016b578063916a17c614610166578063a0d788b714610161578063b0464fdc1461015c578063b5508aa914610157578063ba414fa614610152578063bb88b7691461014d578063d5f3948814610148578063e20c9f7114610143578063f04ab5341461013e5763fa7626d41461013957600080fd5b611c24565b611bfb565b611b7b565b611b4e565b611b25565b611b00565b611a73565b6119c7565b6116c8565b61161c565b611517565b61140b565b611324565b6112fb565b6112d2565b610684565b610636565b6105a5565b610525565b6104fe565b6104d5565b6104ac565b610400565b610260565b6101f4565b6101cb565b60009103126101c657565b600080fd5b346101c65760003660031901126101c6576021546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c6576024546040516001600160a01b039091168152602090f35b602060408183019282815284518094520192019060005b8181106102415750505090565b82516001600160a01b0316845260209384019390920191600101610234565b346101c65760003660031901126101c65760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b8181106102d1576102cd856102c181870382611c79565b6040519182918261021d565b0390f35b82546001600160a01b03168452602090930192600192830192016102aa565b60005b8381106103035750506000910152565b81810151838201526020016102f3565b9060209161032c815180928185528580860191016102f0565b601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061036b57505050505090565b9091929394603f198282030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b85010194019260005b8281106103d55750505050506020806001929701930193019193929061035c565b90919293946020806103f3600193605f198782030189528951610313565b97019501939291016103b4565b346101c65760003660031901126101c657601e5461041d81611c9b565b9061042b6040519283611c79565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061047157604051806102cd8782610338565b6002602060019260405161048481611c5d565b848060a01b03865416815261049a858701611d7f565b8382015281520192019201919061045c565b346101c65760003660031901126101c6576026546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c6576027546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c657602080546040516001600160a01b039091168152f35b346101c65760003660031901126101c65760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b818110610586576102cd856102c181870382611c79565b82546001600160a01b031684526020909301926001928301920161056f565b346101c65760003660031901126101c65760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b818110610606576102cd856102c181870382611c79565b82546001600160a01b03168452602090930192600192830192016105ef565b6001600160a01b038116036101c657565b346101c65760403660031901126101c65761066860043561065681610625565b6024359061066382610625565b611ea1565b604080516001600160a01b039384168152919092166020820152f35b346101c65760003660031901126101c657601f5460081c6001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af18015611104576112bd575b5060405161088580820182811067ffffffffffffffff8211176111bc57829162005e27833903906000f0801561110457602180546001600160a01b0319166001600160a01b03909216919091179055600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af18015611104576112a8575b506020546001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af1801561110457611293575b506020546001600160a01b0316600080516020620102d18339815191523b156101c65760405163c88a5e6d60e01b81526001600160a01b03919091166004820152678ac7230489e80000602482015260008160448183600080516020620102d18339815191525af180156111045761127e575b5060215461088e90610882906001600160a01b031681565b6001600160a01b031690565b803b156101c6576000678ac7230489e8000091600460405180948193630d0e30db60e41b83525af1801561110457611269575b50600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af1801561110457611254575b50601f5460081c6001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af180156111045761123f575b50601f5460081c6001600160a01b0316600080516020620102d18339815191523b156101c65760405163c88a5e6d60e01b81526001600160a01b03919091166004820152678ac7230489e80000602482015260008160448183600080516020620102d18339815191525af180156111045761122a575b506021546109ff90610882906001600160a01b031681565b803b156101c6576000678ac7230489e8000091600460405180948193630d0e30db60e41b83525af1801561110457611215575b50600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af1801561110457611200575b50601f54610af090610ad390610ab19060081c6001600160a01b0316602154610aab906001600160a01b0316610882565b90611ea1565b602480546001600160a01b0319166001600160a01b0390921691909117905590565b60018060a01b03166001600160601b0360a01b6023541617602355565b601f54610b8790610b4d90610b6a90610b2a9060081c6001600160a01b0316602154610b24906001600160a01b0316610882565b906125b2565b602780546001600160a01b0319166001600160a01b039092169190911790559092565b60018060a01b03166001600160601b0360a01b6026541617602655565b60018060a01b03166001600160601b0360a01b6025541617602555565b6020546001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af18015611104576111eb575b506021546001600160a01b03166023546001600160a01b03166024549091906001600160a01b03169160405192610b3a918285019385851067ffffffffffffffff8611176111bc578594610c6294620052ed87396001600160a01b0391821681529181166020830152909116604082015260600190565b03906000f0801561110457602280546001600160a01b0319166001600160a01b039092169190911790556040516128e080820182811067ffffffffffffffff8211176111bc57829162002a0d833903906000f0801561110457600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af18015611104576111d6575b50601f5460081c6001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af18015611104576111c1575b506040516192d980820182811067ffffffffffffffff8211176111bc578291620066ac833903906000f0801561110457602880546001600160a01b0319166001600160a01b03929092169182179055610dc290610882565b906040519161094c9081840184811067ffffffffffffffff8211176111bc578493610e09936200f98586396001600160a01b03908116825291909116602082015260400190565b03906000f0801561110457602980546001600160a01b0319166001600160a01b03929092169182179055610e3c90610882565b6021546001600160a01b0316601f5460081c6001600160a01b0316823b156101c65760405163485cc95560e01b81526001600160a01b03928316600482015291166024820152906000908290604490829084905af18015611104576111a7575b50600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af1801561110457611192575b506020546001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af180156111045761117d575b5060006020610fb7610f6861088261088260215460018060a01b031690565b602954610f7d906001600160a01b0316610882565b60405163095ea7b360e01b81526001600160a01b039091166004820152678ac7230489e80000602482015293849283919082906044820190565b03925af1801561110457611160575b50600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af180156111045761114b575b50601f5460081c6001600160a01b0316600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af1801561110457611136575b5060006020611095610f6861088261088260215460018060a01b031690565b03925af1801561110457611109575b50600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af18015611104576110ed57005b806110fc600061110293611c79565b806101bb565b005b611dd7565b61112a9060203d60201161112f575b6111228183611c79565b8101906121e1565b6110a4565b503d611118565b806110fc600061114593611c79565b38611076565b806110fc600061115a93611c79565b3861100e565b6111789060203d60201161112f576111228183611c79565b610fc6565b806110fc600061118c93611c79565b38610f49565b806110fc60006111a193611c79565b38610ee4565b806110fc60006111b693611c79565b38610e9c565b611c47565b806110fc60006111d093611c79565b38610d6a565b806110fc60006111e593611c79565b38610d02565b806110fc60006111fa93611c79565b38610beb565b806110fc600061120f93611c79565b38610a7a565b806110fc600061122493611c79565b38610a32565b806110fc600061123993611c79565b386109e7565b806110fc600061124e93611c79565b38610971565b806110fc600061126393611c79565b38610909565b806110fc600061127893611c79565b386108c1565b806110fc600061128d93611c79565b3861086a565b806110fc60006112a293611c79565b386107f7565b806110fc60006112b793611c79565b38610792565b806110fc60006112cc93611c79565b386106fc565b346101c65760003660031901126101c6576023546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c6576025546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c6576028546040516001600160a01b039091168152602090f35b906020808351928381520192019060005b81811061136b5750505090565b82516001600160e01b03191684526020938401939092019160010161135e565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106113be57505050505090565b90919293946020806113fc600193603f19868203018752895190836113ec8351604084526040840190610313565b920151908481840391015261134d565b970193019301919392906113af565b346101c65760003660031901126101c657601b5461142881611c9b565b906114366040519283611c79565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b83831061147c57604051806102cd878261138b565b6002602060019260405161148f81611c5d565b61149886611cb3565b81526114a58587016121f9565b83820152815201920192019190611467565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106114ea57505050505090565b9091929394602080611508600193603f198682030187528951610313565b970193019301919392906114db565b346101c65760003660031901126101c657601a5461153481611c9b565b906115426040519283611c79565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b83831061158757604051806102cd87826114b7565b60016020819261159685611cb3565b815201920192019190611572565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106115d757505050505090565b909192939460208061160d600193603f198682030187526040838b51878060a01b0381511684520151918185820152019061134d565b970193019301919392906115c8565b346101c65760003660031901126101c657601d5461163981611c9b565b906116476040519283611c79565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b83831061168d57604051806102cd87826115a4565b600260206001926040516116a081611c5d565b848060a01b0386541681526116b68587016121f9565b83820152815201920192019190611678565b346101c65760e03660031901126101c6576004356116e581610625565b602435906116f282610625565b6044356116fe81610625565b6064359161170b83610625565b6084359261171884610625565b60a4359260c43595600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b038716600482015260008160248183600080516020620102d18339815191525af18015611104576119b2575b506040516364e329cb60e11b81526001600160a01b0383811660048301528481166024830152909160209183916044918391600091165af1801561110457611985575b5060405163095ea7b360e01b81526001600160a01b0384166004820152602481018590526020818060448101038160006001600160a01b0387165af1801561110457611968575b5060405163095ea7b360e01b81526001600160a01b038416600482015260248101879052906020828060448101038160006001600160a01b0388165af18015611104576060966000936118bc9261194b575b5061185c42612433565b60405162e8e33760e81b81526001600160a01b03948516600482015295841660248701526044860197909752606485019890985260006084850181905260a4850152961660c483015260e482019390935293849283918290610104820190565b03926001600160a01b03165af180156111045761191c5750600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af18015611104576110ed57005b61193d9060603d606011611944575b6119358183611c79565b810190612458565b50506110a4565b503d61192b565b6119639060203d60201161112f576111228183611c79565b611852565b6119809060203d60201161112f576111228183611c79565b611800565b6119a69060203d6020116119ab575b61199e8183611c79565b81019061241e565b6117b9565b503d611994565b806110fc60006119c193611c79565b38611776565b346101c65760003660031901126101c657601c546119e481611c9b565b906119f26040519283611c79565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b838310611a3857604051806102cd87826115a4565b60026020600192604051611a4b81611c5d565b848060a01b038654168152611a618587016121f9565b83820152815201920192019190611a23565b346101c65760003660031901126101c657601954611a9081611c9b565b90611a9e6040519283611c79565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b838310611ae357604051806102cd87826114b7565b600160208192611af285611cb3565b815201920192019190611ace565b346101c65760003660031901126101c6576020611b1b612482565b6040519015158152f35b346101c65760003660031901126101c6576022546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c657601f5460405160089190911c6001600160a01b03168152602090f35b346101c65760003660031901126101c65760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b818110611bdc576102cd856102c181870382611c79565b82546001600160a01b0316845260209093019260019283019201611bc5565b346101c65760003660031901126101c6576029546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c657602060ff601f54166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176111bc57604052565b90601f8019910116810190811067ffffffffffffffff8211176111bc57604052565b67ffffffffffffffff81116111bc5760051b60200190565b9060405191600081548060011c9260018216918215611d75575b602085108314611d61578487528693926020850192918115611d445750600114611d02575b5050611d0092500383611c79565b565b611d13919250600052602060002090565b906000915b848310611d2d5750611d009350013880611cf2565b805482840152869350602090920191600101611d18565b915050611d009491925060ff19168252151560051b013880611cf2565b634e487b7160e01b84526022600452602484fd5b93607f1693611ccd565b908154611d8b81611c9b565b92611d996040519485611c79565b818452602084019060005260206000206000915b838310611dba5750505050565b600160208192611dc985611cb3565b815201920192019190611dad565b6040513d6000823e3d90fd5b67ffffffffffffffff81116111bc57601f01601f191660200190565b6020818303126101c65780519067ffffffffffffffff82116101c6570181601f820112156101c65760208151910190611e3781611de3565b92611e456040519485611c79565b818452818301116101c657611e5e9160208401906102f0565b90565b611e7360409283835283830190610313565b90602081830391015260148152730b995d9b4b989e5d1958dbd9194b9bd89a9958dd60621b60208201520190565b919091600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b038216600482015260008160248183600080516020620102d18339815191525af18015611104576121cc575b506040516360f9bb1160e01b815260206004820152603960248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76322d636f72652f627560448201527f696c642f556e69737761705632466163746f72792e6a736f6e000000000000006064820152600081608481600080516020620102d18339815191525afa90811561110457611faa916000918291612191575b5060405180938192631fb2437d60e31b835260048301611e61565b0381600080516020620102d18339815191525afa80156111045761200a92611ff7926000926121ab575b50604080516001600160a01b039092166020830152909261200591849190820190565b03601f198101845283611c79565b612515565b6040516360f9bb1160e01b815260206004820152603f60248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76322d7065726970686560448201527f72792f6275696c642f556e69737761705632526f7574657230322e6a736f6e006064820152909290600081608481600080516020620102d18339815191525afa908115611104576120bb916000918291612191575060405180938192631fb2437d60e31b835260048301611e61565b0381600080516020620102d18339815191525afa80156111045761210f92611ff792600092612168575b50604080516001600160a01b03808916602083015290921690820152916120059083906060820190565b90600080516020620102d18339815191523b156101c6576040516390c5013b60e01b815260008160048183600080516020620102d18339815191525af18015611104576121595750565b806110fc6000611d0093611c79565b61200591925061218a903d806000833e6121828183611c79565b810190611dff565b91906120e5565b6121a591503d8084833e6121828183611c79565b38611f8f565b6120059192506121c5903d806000833e6121828183611c79565b9190611fd4565b806110fc60006121db93611c79565b38611efa565b908160209103126101c6575180151581036101c65790565b604051815480825290929183906122196020830191600052602060002090565b926000905b80600783011061236157611d00945491818110612342575b818110612323575b818110612304575b8181106122e5575b8181106122c6575b8181106122a7575b818110612289575b10612274575b500383611c79565b6001600160e01b03191681526020013861226c565b602083811b6001600160e01b03191685529093600191019301612266565b604083901b6001600160e01b031916845292600190602001930161225e565b606083901b6001600160e01b0319168452926001906020019301612256565b608083901b6001600160e01b031916845292600190602001930161224e565b60a083901b6001600160e01b0319168452926001906020019301612246565b60c083901b6001600160e01b031916845292600190602001930161223e565b6001600160e01b031960e084901b168452926001906020019301612236565b9160089193506101006001916124108754612387838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b01940192018592939161221e565b908160209103126101c65751611e5e81610625565b90610384820180921161244257565b634e487b7160e01b600052601160045260246000fd5b908160609103126101c6578051916040602083015192015190565b908160209103126101c6575190565b60085460ff1680156124915790565b50604051630667f9d760e41b8152600080516020620102d1833981519152600482018190526519985a5b195960d21b6024830152602090829060449082905afa908115611104576000916124e6575b50151590565b612508915060203d60201161250e575b6125008183611c79565b810190612473565b386124e0565b503d6124f6565b9061255a6020916040519283918161253681850197888151938492016102f0565b830161254a825180938580850191016102f0565b010103601f198101835282611c79565b51906000f09081156101c657565b61257a60409283835283830190610313565b90602081830391015260098152682e62797465636f646560b81b60208201520190565b604051906125ac602083611c79565b60008252565b600080516020620102d18339815191523b156101c6576040516303223eab60e11b81526001600160a01b0391909116600482015260008160248183600080516020620102d18339815191525af18015611104576129f7575b506040516360f9bb1160e01b815260206004820152605c60248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76332d636f72652f617260448201527f746966616374732f636f6e7472616374732f556e69737761705633466163746f60648201527f72792e736f6c2f556e69737761705633466163746f72792e6a736f6e00000000608482015260008160a481600080516020620102d18339815191525afa908115611104576126e09160009182916129a7575b5060405180938192631fb2437d60e31b835260048301612568565b0381600080516020620102d18339815191525afa801561110457612715916000916129dc575b5061270f61259d565b90612515565b6040516360f9bb1160e01b815260206004820152605560248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76332d7065726970686560448201527f72792f6172746966616374732f636f6e7472616374732f53776170526f757465606482015274391739b7b617a9bbb0b82937baba32b9173539b7b760591b608482015290929060008160a481600080516020620102d18339815191525afa908115611104576127e49160009182916129a7575060405180938192631fb2437d60e31b835260048301612568565b0381600080516020620102d18339815191525afa801561110457612836916000916129c1575b50604080516001600160a01b038088166020830152861691810191909152906120058260608101611ff7565b6040516360f9bb1160e01b815260206004820152607560248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76332d7065726970686560448201527f72792f6172746966616374732f636f6e7472616374732f4e6f6e66756e67696260648201527f6c65506f736974696f6e4d616e616765722e736f6c2f4e6f6e66756e6769626c60848201527432a837b9b4ba34b7b726b0b730b3b2b9173539b7b760591b60a482015290929060008160c481600080516020620102d18339815191525afa9081156111045761292b9160009182916129a7575060405180938192631fb2437d60e31b835260048301612568565b0381600080516020620102d18339815191525afa80156111045761210f928592600092612986575b50604080516001600160a01b03808a16602083015292831691810191909152921660608301526120058260808101611ff7565b6120059192506129a0903d806000833e6121828183611c79565b9190612953565b6129bb91503d8084833e6121828183611c79565b386126c5565b6129d691503d806000833e6121828183611c79565b3861280a565b6129f191503d806000833e6121828183611c79565b38612706565b806110fc6000612a0693611c79565b3861260a56fe60a080604052346100ea57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b6040516127f090816100f08239608051818181610db80152610e4c0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880610054565b63f92ee8a960e01b60005260046000fd5b600080fdfe6080806040526004361015610067575b50361561001b57600080fd5b610023611f8e565b6000546001600160a01b03163314158061004f575b61003e57005b63b3af013760e01b60005260046000fd5b506000805160206126fb833981519152331415610038565b600090813560e01c90816301ffc9a714611b2b5750806306cb898314611818578063184b0793146117195780632095dedb146115e457806321501a95146113f757806321e093b1146113d0578063248a9ca3146113a95780632722feee146113805780632810ae63146112f65780632f2ff15d146112c457806336568abe1461127f5780633f4ba83a146111fd578063485cc955146110345780634f1ef28614610e0d57806352d1902d14610da55780635c975abb14610d755780637b15118b14610b445780637c0dcb5f146108885780638456cb591461081357806391d14854146107ba57806397a1cef11461074d57806397d340f5146107305780639d4ba465146105c4578063a217fddf146105a8578063ad3cb1cc1461055b578063bcf7f32b146104b4578063c39aca371461033d578063d547741f14610302578063e63ab1e9146102c75763f45346dc0361000f57346102c45760603660031901126102c4576101d3611c4a565b906024356101df611c60565b926000805160206126fb83398151915233036102b5576101fd611f8e565b6001600160a01b03811693841580156102a4575b610295578215610286576001600160a01b038116916000805160206126fb8339815191528314801561027d575b61026e5761024d918491612503565b15610256578280f35b606493632050a1dd60e11b8452600452602452604452fd5b63416aebb560e11b8552600485fd5b5030831461023e565b635d67094f60e01b8452600484fd5b63d92e233d60e01b8452600484fd5b506001600160a01b03811615610211565b632160203f60e11b8352600483fd5b80fd5b50346102c457806003193601126102c45760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346102c45760403660031901126102c457610339600435610322611c34565b9061033461032f82611efe565b6120bd565b612330565b5080f35b50346102c45761034c36611cf8565b95949291909361035a611fdf565b6000805160206126fb83398151915233036104a557610377611f8e565b6001600160a01b0381169687158015610494575b610485578315610476576001600160a01b038316926000805160206126fb8339815191528414801561046d575b61045e57846103c79184612503565b1561044357869750823b1561043f5786946103fa869260405198899788968795632de7eb0b60e11b875260048701611e8e565b03925af180156104345761041f575b50600160008051602061277b8339815191525580f35b8161042991611bb1565b6102c4578038610409565b6040513d84823e3d90fd5b8680fd5b60648785858b632050a1dd60e11b8452600452602452604452fd5b63416aebb560e11b8852600488fd5b503084146103b8565b635d67094f60e01b8752600487fd5b63d92e233d60e01b8752600487fd5b506001600160a01b0383161561038b565b632160203f60e11b8652600486fd5b50346102c4576104c336611cf8565b90936104d29695939296611fdf565b6000805160206126fb83398151915233036104a5576104ef611f8e565b6001600160a01b03811615801561054a575b61053b57859660018060a01b031691823b1561043f5786946103fa869260405198899788968795632de7eb0b60e11b875260048701611e8e565b63d92e233d60e01b8652600486fd5b506001600160a01b03871615610501565b50346102c457806003193601126102c457506105a460405161057e604082611bb1565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611cb7565b0390f35b50346102c457806003193601126102c457602090604051908152f35b50346102c45760803660031901126102c4576105de611c4a565b90602435916105eb611c60565b90606435916001600160401b03831161072c576080600319843603011261072c57610614611fdf565b6000805160206126fb833981519152330361071d57610631611f8e565b6001600160a01b038216908115801561070c575b6106fd5785156106ee576001600160a01b038116926000805160206126fb833981519152841480156106e5575b6106d657610681918791612503565b156106bc5750829350803b156106b8576103fa8392918392604051948580948193636481451b60e11b835260040160048301611e29565b5050fd5b6064949250632050a1dd60e11b8452600452602452604452fd5b63416aebb560e11b8652600486fd5b50308414610672565b635d67094f60e01b8552600485fd5b63d92e233d60e01b8552600485fd5b506001600160a01b03811615610645565b632160203f60e11b8452600484fd5b8380fd5b50346102c457806003193601126102c45760206040516108008152f35b50346102c45760803660031901126102c4576004356001600160401b0381116107b65761077e903690600401611bed565b506064356001600160401b0381116107b65760a09060031990360301126102c4576004906107aa611f8e565b63e4dd681d60e01b8152fd5b5080fd5b50346102c45760403660031901126102c45760406107d6611c34565b91600435815260008051602061273b833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346102c457806003193601126102c45761082c61204b565b610834611f8e565b600160ff1960008051602061275b83398151915254161760008051602061275b833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346102c45760803660031901126102c4576004356001600160401b0381116107b6576108b9903690600401611bed565b90602435916108c6611c60565b906064356001600160401b03811161072c57806004019060a06003198236030112610b40576108f3611f8e565b8251156106fd5785156106ee576064016108006109108284611d75565b905011610b1d5750604051630123a4f160e31b8152939485946001600160a01b03851694602082600481895afa918215610ada578792610ae5575b509061095791836123d0565b604051634d8943bb60e01b815290602082600481895afa918215610ada578792610aa3575b50604051630123a4f160e31b8152926020846004818a5afa938415610a98578894610a4f575b507f07bf64173efd8f3dfb9e4eb3834bab9d5b85a3d89a1c6425797329de0668502c9593610a49936109fd9693602093604051936109df85611b80565b84526001858501526040519889986101208a526101208a0190611cb7565b9a85890152604088015260608701526080860152610a37858903918260a08801528a8a5260c0870190602080918051845201511515910152565b01610100840152602033960190611f1f565b0390a380f35b975094925090926020873d602011610a90575b81610a6f60209383611bb1565b81010312610a8b579551879692949293909290919060206109a2565b600080fd5b3d9150610a62565b6040513d8a823e3d90fd5b965090506020863d602011610ad2575b81610ac060209383611bb1565b81010312610a8b57869551903861097c565b3d9150610ab3565b6040513d89823e3d90fd5b915095506020813d602011610b15575b81610b0260209383611bb1565b81010312610a8b5751869561095761094b565b3d9150610af5565b610b2a8591604493611d75565b63cd6f4e6d60e01b835260045250610800602452fd5b8480fd5b50346102c45760e03660031901126102c4576004356001600160401b0381116107b657610b75903690600401611bed565b9060243591610b82611c60565b906064356001600160401b03811161072c57610ba2903690600401611c8a565b9490916040366083190112610b405760c435916001600160401b038311610d7157826004019360a0600319853603011261043f57610bde611f8e565b82511561048557811561047657608435938415610d6257606401610800610c10610c088389611d75565b90508b611da7565b11610d345750968697610c278588859a999a6123d0565b604051634d8943bb60e01b815290986001600160a01b031693602082600481885afa918215610d29578992610cea575b5098610c9a9596979899610c78604051986101208a526101208a0190611cb7565b95602089015260408801526060870152608086015284830360a0860152611e08565b9160c082015260a43591821515809303610b4057610a4982917fd90f94752d2b12f364f4a2237ebe1aff24ba6127585376bf4935f6a7be17dd2a9460e08401528281036101008401523395611f1f565b959697985090506020853d602011610d21575b81610d0a60209383611bb1565b81010312610a8b5793518997969594610c9a610c57565b3d9150610cfd565b6040513d8b823e3d90fd5b87610d4d8a610d456044948a611d75565b919050611da7565b63cd6f4e6d60e01b8252600452610800602452fd5b6360ee124760e01b8852600488fd5b8580fd5b50346102c457806003193601126102c457602060ff60008051602061275b83398151915254166040519015158152f35b50346102c457806003193601126102c4577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610dfe57602060405160008051602061271b8339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126102c457610e22611c4a565b906024356001600160401b0381116107b657610e42903690600401611bed565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611011575b506110025781805260008051602061273b83398151915260209081526040808420336000908152925290205460ff1615610fea576040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa80958596610fb6575b50610ef057634c9c8ce360e01b84526004839052602484fd5b90918460008051602061271b8339815191528103610fa45750813b15610f925760008051602061271b83398151915280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a28151839015610f78578083602061033995519101845af4610f7261201b565b91612699565b50505034610f835780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011610fe2575b81610fd260209383611bb1565b81010312610b4057519438610ed7565b3d9150610fc5565b63e2517d3f60e01b8252336004526024829052604482fd5b63703e46dd60e11b8252600482fd5b60008051602061271b833981519152546001600160a01b03161415905038610e77565b50346102c45760403660031901126102c45761104e611c4a565b611056611c34565b60008051602061279b833981519152549160ff8360401c1615926001600160401b038116801590816111f5575b60011490816111eb575b1590816111e2575b506111d35767ffffffffffffffff19811660011760008051602061279b83398151915255836111a6575b506001600160a01b03169081158015611195575b61029557611124906110e361262b565b6110eb61262b565b6110f361262b565b6110fb61262b565b61110361262b565b600160008051602061277b8339815191525561111e81612107565b506121b9565b5082546001600160a01b03191617825561113b5780f35b68ff00000000000000001960008051602061279b833981519152541660008051602061279b833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b506001600160a01b038116156110d3565b68ffffffffffffffffff1916680100000000000000011760008051602061279b83398151915255386110bf565b63f92ee8a960e01b8552600485fd5b90501538611095565b303b15915061108d565b859150611083565b50346102c457806003193601126102c45761121661204b565b60008051602061275b8339815191525460ff8116156112705760ff191660008051602061275b833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346102c45760403660031901126102c457611299611c34565b336001600160a01b038216036112b55761033990600435612330565b63334bd91960e11b8252600482fd5b50346102c45760403660031901126102c4576103396004356112e4611c34565b906112f161032f82611efe565b612287565b50346102c45760e03660031901126102c4576004356001600160401b0381116107b657611327903690600401611bed565b506064356001600160401b0381116107b657611347903690600401611c8a565b505060403660831901126102c45760c4356001600160401b0381116107b65760a09060031990360301126102c4576004906107aa611f8e565b50346102c457806003193601126102c45760206040516000805160206126fb8339815191528152f35b50346102c45760203660031901126102c45760206113c8600435611efe565b604051908152f35b50346102c457806003193601126102c457546040516001600160a01b039091168152602090f35b50346102c45760803660031901126102c457600435906001600160401b0382116102c457606060031983360301126102c457602435611434611c60565b926064356001600160401b03811161072c57611454903690600401611c8a565b61145f929192611fdf565b6000805160206126fb83398151915233036115d55761147c611f8e565b6001600160a01b03861695861561053b5784156115c6576000805160206126fb833981519152871480156115bd575b6106d65785546114c9908690309033906001600160a01b03166125d9565b156115a55785546001600160a01b0316803b1561043f5786808092602460405180958193632e1a7d4d60e01b83528c60048401525af19182611590575b505061152357604486868963793cd7bf60e11b8352600452602452fd5b858080878194989697985af161153761201b565b50156115795794849560018060a01b0386541690823b1561043f5786946103fa869260405198899788968795632de7eb0b60e11b875260040160048701611e8e565b604485838863793cd7bf60e11b8352600452602452fd5b8161159a91611bb1565b61043f578638611506565b63793cd7bf60e11b8652306004526024859052604486fd5b503087146114ab565b6319c08f4960e01b8652600486fd5b632160203f60e11b8552600485fd5b50346102c45760403660031901126102c4576115fe611c4a565b90602435916001600160401b0383116107b657826004019060c060031985360301126117155761162c611fdf565b6000805160206126fb83398151915233036102b557611649611f8e565b6001600160a01b0316908115611706578293823b15611701576103fa926116ef858094604051968795869485936316a67dbf60e11b85526020600486015260a46116a76116968380611dd7565b60c060248a015260e4890191611e08565b936001600160a01b036116bc60248301611c76565b166044880152604481013560648801526116d860648201611dca565b151560848801526084810135828801520190611dd7565b8483036023190160c486015290611e08565b505050fd5b63d92e233d60e01b8352600483fd5b8280fd5b50346102c45760403660031901126102c457611733611c4a565b90602435916001600160401b0383116107b657608060031984360301126107b65761175c611fdf565b6000805160206126fb833981519152330361180957611779611f8e565b6001600160a01b03169182156117fa578282933b156106b8576117b98392918392604051958680948193636481451b60e11b835260040160048301611e29565b03925af180156117ed576117dd575b600160008051602061277b8339815191525580f35b6117e691611bb1565b38816117c8565b50604051903d90823e3d90fd5b63d92e233d60e01b8252600482fd5b632160203f60e11b8252600482fd5b50346102c45760c03660031901126102c4576004356001600160401b0381116107b657611849903690600401611bed565b611851611c34565b6044356001600160401b03811161072c57611870903690600401611c8a565b90916040366063190112610b405760a435926001600160401b038411610d7157836004019260a0600319863603011261043f576118ab611f8e565b606435938415610d625760648601926108006118d26118ca8685611d75565b905085611da7565b11611b1a57604051956118e487611b80565b86526084358015158103611b165760208701526040519160a083018381106001600160401b03821117611b025760405261191d90611c76565b825261192b60248801611dca565b926020830193845261193f60448901611c76565b9460408401958652356001600160401b038111611afe5761196690600436918b0101611bed565b95606084019687526084608085019901358952895115611aef5787516040805163fc5fecd560e01b815260048101929092526001600160a01b03929092169a91816024818e5afa908115611ae4578c908d92611ab2575b506119c982338361257d565b15611a8257505093611a7493611a3c611a2660a099957f306ee13f48319a123b222c69908e44dcf91abffc20cacc502e3cf5a4ff23e0e49b9995611a1860809a6040519d8e8181520190611cb7565b8c810360208e015291611e08565b885160408b0152602090980151151560608a0152565b87870386890152516001600160a01b03908116875290511515602087015290511660408501525160a060608501819052840190611cb7565b94519101528033930390a380f35b633338088960e11b8d526001600160a01b03166004526000805160206126fb83398151915260245260445260648bfd5b9050611ad6915060403d604011611add575b611ace8183611bb1565b810190611fb8565b90386119bd565b503d611ac4565b6040513d8e823e3d90fd5b63d92e233d60e01b8b5260048bfd5b8a80fd5b634e487b7160e01b8b52604160045260248bfd5b8980fd5b604489610d4d85610d458887611d75565b9050346107b65760203660031901126107b65760043563ffffffff60e01b81168091036117155760209250637965db0b60e01b8114908115611b6f575b5015158152f35b6301ffc9a760e01b14905038611b68565b604081019081106001600160401b03821117611b9b57604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b03821117611b9b57604052565b6001600160401b038111611b9b57601f01601f191660200190565b81601f82011215610a8b57803590611c0482611bd2565b92611c126040519485611bb1565b82845260208383010111610a8b57816000926020809301838601378301015290565b602435906001600160a01b0382168203610a8b57565b600435906001600160a01b0382168203610a8b57565b604435906001600160a01b0382168203610a8b57565b35906001600160a01b0382168203610a8b57565b9181601f84011215610a8b578235916001600160401b038311610a8b5760208381860195010111610a8b57565b919082519283825260005b848110611ce3575050826000602080949584010152601f8019910116010190565b80602080928401015182828601015201611cc2565b60a0600319820112610a8b576004356001600160401b038111610a8b5760608183036003190112610a8b57600401916024356001600160a01b0381168103610a8b5791604435916064356001600160a01b0381168103610a8b5791608435906001600160401b038211610a8b57611d7191600401611c8a565b9091565b903590601e1981360301821215610a8b57018035906001600160401b038211610a8b57602001918136038313610a8b57565b91908201809211611db457565b634e487b7160e01b600052601160045260246000fd5b35908115158203610a8b57565b9035601e1982360301811215610a8b5701602081359101916001600160401b038211610a8b578136038313610a8b57565b908060209392818452848401376000828201840152601f01601f1916010190565b60208152611e8b9160a090611e7b906001600160a01b03611e4982611c76565b166020850152600180841b03611e6160208301611c76565b166040850152604081013560608501526060810190611dd7565b9190926080808201520191611e08565b90565b90939192611e8b9593608083526040611ebb611eaa8880611dd7565b6060608088015260e0870191611e08565b966001600160a01b03611ed060208301611c76565b1660a0860152013560c08401526001600160a01b031660208301526040820152808403606090910152611e08565b60005260008051602061273b83398151915260205260016040600020015490565b906001600160a01b03611f3183611c76565b168152611f4060208301611dca565b151560208201526001600160a01b03611f5b60408401611c76565b166040820152608080611f85611f746060860186611dd7565b60a0606087015260a0860191611e08565b93013591015290565b60ff60008051602061275b8339815191525416611fa757565b63d93c066560e01b60005260046000fd5b9190826040910312610a8b5781516001600160a01b0381168103610a8b5760209092015190565b600260008051602061277b833981519152541461200a57600260008051602061277b83398151915255565b633ee5aeb560e01b60005260046000fd5b3d15612046573d9061202c82611bd2565b9161203a6040519384611bb1565b82523d6000602084013e565b606090565b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561208457565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b600081815260008051602061273b8339815191526020908152604080832033845290915290205460ff16156120ef5750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff166121b3576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50600090565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff166121b3576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b600081815260008051602061273b833981519152602090815260408083206001600160a01b038616845290915290205460ff1661232957600081815260008051602061273b833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b5050600090565b600081815260008051602061273b833981519152602090815260408083206001600160a01b038616845290915290205460ff161561232957600081815260008051602061273b833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6040805163fc5fecd560e01b8152600481019490945290916001600160a01b0381169184602481855afa9384156124df576000906000956124bb575b5061241885338361257d565b15612484575061242a833033846125d9565b1561245a578261243991612659565b1561244357505090565b637112ae7760e01b60005260045260245260446000fd5b506084916040519163489ca9b760e01b835260048301523360248301523060448301526064820152fd5b633338088960e11b60009081526001600160a01b039091166004526000805160206126fb8339815191526024526044859052606490fd5b90506124d791945060403d604011611add57611ace8183611bb1565b93903861240c565b6040513d6000823e3d90fd5b90816020910312610a8b57518015158103610a8b5790565b6040516311f9fbc960e21b81526001600160a01b039283166004820152602481019390935260209183916044918391600091165af16000918161254c575b50611e8b5750600090565b61256f91925060203d602011612576575b6125678183611bb1565b8101906124eb565b9038612541565b503d61255d565b6040516323b872dd60e01b81526001600160a01b0392831660048201526000805160206126fb8339815191526024820152604481019390935260209183916064918391600091165af16000918161254c5750611e8b5750600090565b6040516323b872dd60e01b81526001600160a01b03928316600482015292821660248401526044830193909352909160209183916064918391600091165af16000918161254c5750611e8b5750600090565b60ff60008051602061279b8339815191525460401c161561264857565b631afcd79f60e31b60005260046000fd5b604051630852cd8d60e31b81526004810192909252602090829060249082906000906001600160a01b03165af16000918161254c5750611e8b5750600090565b906126bf57508051156126ae57805190602001fd5b63d6bda27560e01b60005260046000fd5b815115806126f1575b6126d0575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b156126c856fe000000000000000000000000735b14bb79463307aacbed86daf3322b1e6226ab360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220542941658a96d6dd4010b90beba1b2fc5ed2076ef97c9889b30ab9ceda5036f064736f6c634300081a003360c03461010057601f610b3a38819003918201601f19168301916001600160401b0383118484101761010557808492606094604052833981010312610100576100478161011b565b9061006060406100596020840161011b565b920161011b565b9173735b14bb79463307aacbed86daf3322b1e6226ab33036100ef57600380546001600160a01b0319166001600160a01b039290921691909117905560805260a0526040517f80699e81136d69cb8367ad52a994e25c722a86da654b561d0c14b61a777e7ac5600080a1610a0a9081610130823960805181818161018a015261065d015260a051816106d70152f35b632b2add3d60e01b60005260046000fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036101005756fe608080604052600436101561001357600080fd5b600090813560e01c9081630be1554714610817575080631f0e251b146107915780633ce4a5bc14610762578063513a9c051461072f578063569541b914610706578063842da36d146106c157806391dd645f146105f057806397770dff1461054c578063a7cb0507146104da578063c39aca3714610263578063c62178ac1461023a578063c63585cc146101e2578063d7fd7afb146101b9578063d936a012146101745763ee2815ba146100c657600080fd5b34610171576040366003190112610171576004356100e2610864565b9073735b14bb79463307aacbed86daf3322b1e6226ab33036101625780835260016020908152604080852080546001600160a01b0319166001600160a01b0390951694851790558051928352908201929092527fd1b36d30f6248e97c473b4d1348ca164a4ef6759022f54a58ec200326c39c45d91819081015b0390a180f35b632b2add3d60e01b8352600483fd5b80fd5b50346101715780600319360112610171576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461017157602036600319011261017157604060209160043581528083522054604051908152f35b5034610171576060366003190112610171576101fc610849565b610204610864565b604435929091906001600160a01b03841684036101715760206102288585856108d3565b6040516001600160a01b039091168152f35b50346101715780600319360112610171576004546040516001600160a01b039091168152602090f35b50346101715760a0366003190112610171576004359067ffffffffffffffff82116101715781360360606003198201126104d65761029f610864565b92604435906064356001600160a01b038116908190036104d25760843567ffffffffffffffff81116104ce57366023820112156104ce5780600401359367ffffffffffffffff85116104615736602486840101116104615773735b14bb79463307aacbed86daf3322b1e6226ab33036104bf5773735b14bb79463307aacbed86daf3322b1e6226ab831480156104b6575b6104a7576040516311f9fbc960e21b815260048101849052602481018290529697959688966001600160a01b0316906020816044818b865af1801561049c57610465575b50833b156104615760405197636f218ab760e11b8952608060048a01528560040135906022190181121561045d57850160246004820135910167ffffffffffffffff8211610459578136038113610459576103da91606060848c015260e48b01916108b2565b60248601356001600160a01b038116919082900361045957889760248b98968a968a989660448a9861042d9860a48b0152013560c4890152838801526044870152600319868503016064870152016108b2565b03925af1801561044c5761043e5780f35b6104479161087a565b388180f35b50604051903d90823e3d90fd5b8880fd5b8780fd5b8680fd5b6020813d602011610494575b8161047e6020938361087a565b8101031261045d57518015158114610374578780fd5b3d9150610471565b6040513d8a823e3d90fd5b63416aebb560e11b8752600487fd5b50308314610330565b632b2add3d60e01b8752600487fd5b8580fd5b8480fd5b5080fd5b50346101715760403660031901126101715760043560243573735b14bb79463307aacbed86daf3322b1e6226ab330361016257816040917f49f492222906ac486c3c1401fa545626df1f0c0e5a77a05597ea2ed66af9850d93855284602052808386205582519182526020820152a180f35b503461017157602036600319011261017157610566610849565b73735b14bb79463307aacbed86daf3322b1e6226ab33036105e1576001600160a01b031680156105d2576020817fdba79d534382d1a8ae108e4c8ecb27c6ae42ab8b91d44eedf88bd329f3868d5e926001600160601b0360a01b6003541617600355604051908152a180f35b63d92e233d60e01b8252600482fd5b632b2add3d60e01b8252600482fd5b50346101715760403660031901126101715760043561060d610864565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610162576003547f0ecec485166da6139b13bb7e033e9446e2d35348e80ebf1180d4afe2dba1704e9291610681916001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006108d3565b81845260026020908152604080862080546001600160a01b0319166001600160a01b0390941693841790558051938452908301919091528190810161015c565b50346101715780600319360112610171576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101715780600319360112610171576003546040516001600160a01b039091168152602090f35b503461017157602036600319011261017157602090600435815260028252604060018060a01b0391205416604051908152f35b5034610171578060031936011261017157602060405173735b14bb79463307aacbed86daf3322b1e6226ab8152f35b5034610171576020366003190112610171576107ab610849565b73735b14bb79463307aacbed86daf3322b1e6226ab33036105e1576001600160a01b031680156105d2576020817f3ade88e3922d64780e1bf4460d364c2970b69da813f9c0c07a1c187b5647636c926001600160601b0360a01b6004541617600455604051908152a180f35b9050346104d65760203660031901126104d6576004358252600160209081526040909220546001600160a01b03168152f35b600435906001600160a01b038216820361085f57565b600080fd5b602435906001600160a01b038216820361085f57565b90601f8019910116810190811067ffffffffffffffff82111761089c57604052565b634e487b7160e01b600052604160045260246000fd5b908060209392818452848401376000828201840152601f01601f1916010190565b91906001600160a01b038083169082168082146109c35710156109be57905b6001600160a01b038216156109ad576040519060208201926001600160601b03199060601b1683526001600160601b03199060601b1660348201526028815261093c60488261087a565b5190209060405191602083019160ff60f81b83526001600160601b03199060601b16602184015260358301527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f60558301526055825261099d60758361087a565b905190206001600160a01b031690565b633c5a83ed60e11b60005260046000fd5b6108f2565b63658f3e7f60e11b60005260046000fdfea26469706673582212203d5f24fd62859186e7d8a9f41a0e370a08bd7cbc34344f0eb46593f3ba299ff564736f6c634300081a003360806040523461011457610014600054610119565b601f81116100cb575b507f577261707065642045746865720000000000000000000000000000000000001a60005560015461004e90610119565b601f8111610081575b6008630ae8aa8960e31b016001556002805460ff1916601217905560405161073190816101548239f35b6001600052601f0160051c7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6908101905b8181106100bf5750610057565b600081556001016100b2565b60008052601f0160051c7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563908101905b818110610108575061001d565b600081556001016100fb565b600080fd5b90600182811c92168015610149575b602083101461013357565b634e487b7160e01b600052602260045260246000fd5b91607f169161012856fe60806040526004361015610023575b361561001957600080fd5b6100216106b2565b005b60003560e01c806306fdde0314610423578063095ea7b3146103a957806318160ddd1461038d57806323b872dd1461035e5780632e1a7d4d146102b9578063313ce5671461029857806370a082311461025e57806395d89b411461013d578063a9059cbb1461010b578063d0e30db0146100f75763dd62ed3e0361000e57346100f25760403660031901126100f2576100ba610526565b6100c261053c565b6001600160a01b039182166000908152600460209081526040808320949093168252928352819020549051908152f35b600080fd5b60003660031901126100f2576100216106b2565b346100f25760403660031901126100f2576020610133610129610526565b60243590336105a8565b6040519015158152f35b346100f25760003660031901126100f2576000604051816001548060011c90600181168015610254575b6020831081146102405782855290811561022457506001146101d0575b50819003601f01601f1916810167ffffffffffffffff8111828210176101bc576101b89250604052604051918291826104dd565b0390f35b634e487b7160e01b83526041600452602483fd5b600184529050827fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b82821061020e57506020915082010183610184565b60018160209254838588010152019101906101f9565b90506020925060ff191682840152151560051b82010183610184565b634e487b7160e01b86526022600452602486fd5b91607f1691610167565b346100f25760203660031901126100f2576001600160a01b0361027f610526565b1660005260036020526020604060002054604051908152f35b346100f25760003660031901126100f257602060ff60025416604051908152f35b346100f25760203660031901126100f2576004353360005260036020526102e7816040600020541015610552565b3360005260036020526040600020610300828254610578565b90558060008115610355575b600080809381933390f115610349576040519081527f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b6560203392a2005b6040513d6000823e3d90fd5b506108fc61030c565b346100f25760603660031901126100f257602061013361037c610526565b61038461053c565b604435916105a8565b346100f25760003660031901126100f257602047604051908152f35b346100f25760403660031901126100f2576103c2610526565b3360008181526004602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b346100f25760003660031901126100f25760006040518182548060011c906001811680156104d3575b60208310811461024057828552908115610224575060011461049c5750819003601f01601f1916810167ffffffffffffffff8111828210176101bc576101b89250604052604051918291826104dd565b90508280526020832083905b8282106104bd57506020915082010183610184565b60018160209254838588010152019101906104a8565b91607f169161044c565b91909160208152825180602083015260005b818110610510575060409293506000838284010152601f8019910116010190565b80602080928701015160408286010152016104ef565b600435906001600160a01b03821682036100f257565b602435906001600160a01b03821682036100f257565b1561055957565b60405162461bcd60e51b81526020600482015260006024820152604490fd5b9190820391821161058557565b634e487b7160e01b600052601160045260246000fd5b9190820180921161058557565b60207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9160018060a01b03169283600052600382526105ee856040600020541015610552565b3384141580610691575b610646575b83600052600382526040600020610615868254610578565b905560018060a01b0316938460005260038252604060002061063882825461059b565b9055604051908152a3600190565b6000848152600483526040808220338352845290205461066890861115610552565b600084815260048352604080822033835284529020805461068a908790610578565b90556105fd565b506000848152600483526040808220338352845290205460001914156105f8565b33600052600360205260406000206106cb34825461059b565b90556040513481527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a256fea26469706673582212209e220afc3d58f06e9fcfb74d0eadc71ef1ec14a29eb328f69f1935849690effe64736f6c634300081a003360808060405234602f57600160ff19600c541617600c55600160ff19601f541617601f556192a490816100358239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c8062173d46146102465780631ed7831c146102415780632558fcec1461023c5780632ade38801461023757806332030cef14610232578063347f3a7c1461022d5780633e5e3c23146102285780633f7286f41461022357806366d9a9a01461021e578063735de9f7146102195780638016f22b146102145780638327f7901461020f57806385226c811461020a5780638c52853c14610205578063916a17c614610200578063944a3ba4146101fb578063acfdc212146101f6578063ad82a627146101f1578063b0464fdc146101ec578063b184b87c146101e7578063b1c388b8146101e2578063b5508aa9146101dd578063b8969900146101d8578063ba414fa6146101d3578063bea9849e146101ce578063cc5ad8b6146101c9578063ced6e793146101c4578063d333abf6146101bf578063d7b3eeaf146101ba578063e20c9f71146101b5578063ebcff1c6146101b0578063f51a071d146101ab578063f59e8a67146101a6578063f9a41697146101a15763fa7626d41461019c57600080fd5b6116ef565b6116b5565b61165c565b6115ec565b6112b0565b611230565b611217565b6111e3565b61117e565b611151565b611112565b6110ed565b6110ae565b611021565b611004565b610f68565b610ebc565b610e35565b610d99565b610d06565b610c5a565b610b95565b610b08565b610a33565b6108a8565b61087f565b6107d3565b610695565b610615565b6105c2565b610586565b6104a9565b610365565b6102d5565b61025b565b600091031261025657565b600080fd5b34610256576000366003190112610256576026546040516001600160a01b039091168152602090f35b906020808351928381520192019060005b8181106102a25750505090565b82516001600160a01b0316845260209384019390920191600101610295565b9060206102d2928181520190610284565b90565b346102565760003660031901126102565760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b818110610346576103428561033681870382610966565b604051918291826102c1565b0390f35b82546001600160a01b031684526020909301926001928301920161031f565b34610256576020366003190112610256576004356000526022602052602060018060a01b0360406000205416604051908152f35b60005b8381106103ac5750506000910152565b818101518382015260200161039c565b906020916103d581518092818552858086019101610399565b601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061041457505050505090565b9091929394603f198282030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b85010194019260005b82811061047e57505050505060208060019297019301930191939290610405565b909192939460208061049c600193605f1987820301895289516103bc565b970195019392910161045d565b3461025657600036600319011261025657601e546104c681611712565b906104d46040519283610966565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061051a576040518061034287826103e1565b6002602060019260405161052d8161090f565b848060a01b0386541681526105438587016117f3565b83820152815201920192019190610505565b6001600160a01b0381160361025657565b6064359061057382610555565b565b9060206102d29281815201906103bc565b34610256576020366003190112610256576103426105ae6004356105a981610555565b61184b565b6040519182916020835260208301906103bc565b34610256576040366003190112610256576106136024356004356105e582610555565b600052602260205260406000209060018060a01b03166bffffffffffffffffffffffff60a01b825416179055565b005b346102565760003660031901126102565760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b818110610676576103428561033681870382610966565b82546001600160a01b031684526020909301926001928301920161065f565b346102565760003660031901126102565760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b8181106106f6576103428561033681870382610966565b82546001600160a01b03168452602090930192600192830192016106df565b906020808351928381520192019060005b8181106107335750505090565b82516001600160e01b031916845260209384019390920191600101610726565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061078657505050505090565b90919293946020806107c4600193603f19868203018752895190836107b483516040845260408401906103bc565b9201519084818403910152610715565b97019301930191939290610777565b3461025657600036600319011261025657601b546107f081611712565b906107fe6040519283610966565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b83831061084457604051806103428782610753565b600260206001926040516108578161090f565b61086086611729565b815261086d858701611883565b8382015281520192019201919061082f565b34610256576000366003190112610256576025546040516001600160a01b039091168152602090f35b34610256576040366003190112610256576106136024356004356108cb82610555565b600090815260216020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761092a57604052565b6108f9565b61010081019081106001600160401b0382111761092a57604052565b606081019081106001600160401b0382111761092a57604052565b90601f801991011681019081106001600160401b0382111761092a57604052565b60405190610573602083610966565b60405190610573606083610966565b60405190610573608083610966565b6040519061057360c083610966565b6001600160401b03811161092a57601f01601f191660200190565b81601f82011215610256578035906109f5826109c3565b92610a036040519485610966565b8284526020838301011161025657816000926020809301838601378301015290565b908160a09103126102565790565b346102565760a036600319011261025657600435610a5081610555565b6024356001600160401b03811161025657610a6f9036906004016109de565b90606435604435610a7f82610555565b608435936001600160401b03851161025657610aa2610613953690600401610a25565b93611f79565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610adb57505050505090565b9091929394602080610af9600193603f1986820301875289516103bc565b97019301930191939290610acc565b3461025657600036600319011261025657601a54610b2581611712565b90610b336040519283610966565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310610b7857604051806103428782610aa8565b600160208192610b8785611729565b815201920192019190610b63565b34610256576040366003190112610256576020602435600435610bb782610555565b60009081526023835260408082206001600160a01b03938416835260205290205b5416604051908152f35b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610c1557505050505090565b9091929394602080610c4b600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610715565b97019301930191939290610c06565b3461025657600036600319011261025657601d54610c7781611712565b90610c856040519283610966565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b838310610ccb57604051806103428782610be2565b60026020600192604051610cde8161090f565b848060a01b038654168152610cf4858701611883565b83820152815201920192019190610cb6565b3461025657602036600319011261025657600435610d2381610555565b601f8054610100600160a81b03191660089290921b610100600160a81b0316919091179055005b9181601f84011215610256578235916001600160401b038311610256576020838186019501011161025657565b60409060a31901126102565760a490565b604090608319011261025657608490565b346102565761010036600319011261025657600435610db781610555565b6024356001600160401b03811161025657610dd69036906004016109de565b90604435610de2610566565b6084356001600160401b03811161025657610e01903690600401610d4a565b91610e0b36610d77565b9360e435966001600160401b03881161025657610e2f610613983690600401610a25565b96612b04565b346102565760e036600319011261025657602435600435610e5582610555565b604435610e6181610555565b60643590608435610e7181610555565b60a4356001600160401b03811161025657610e90903690600401610d4a565b93909260c435966001600160401b03881161025657610eb6610613983690600401610a25565b96613476565b3461025657600036600319011261025657601c54610ed981611712565b90610ee76040519283610966565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b838310610f2d57604051806103428782610be2565b60026020600192604051610f408161090f565b848060a01b038654168152610f56858701611883565b83820152815201920192019190610f18565b346102565760e036600319011261025657600435610f8581610555565b6024356001600160401b03811161025657610fa49036906004016109de565b90604435610fb181610555565b6064356001600160401b03811161025657610fd0903690600401610d4a565b90610fda36610d88565b9260c435956001600160401b03871161025657610ffe610613973690600401610a25565b956138d4565b346102565760003660031901126102565760208054604051908152f35b346102565760003660031901126102565760195461103e81611712565b9061104c6040519283610966565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b83831061109157604051806103428782610aa8565b6001602081926110a085611729565b81520192019201919061107c565b34610256576020366003190112610256576004356110cb81610555565b602680546001600160a01b0319166001600160a01b0392909216919091179055005b34610256576000366003190112610256576020611108613d3b565b6040519015158152f35b346102565760203660031901126102565760043561112f81610555565b602580546001600160a01b0319166001600160a01b0392909216919091179055005b3461025657600036600319011261025657601f5460405160089190911c6001600160a01b03168152602090f35b346102565760c03660031901126102565760243560043561119e82610555565b6044356111aa81610555565b606435608435916111ba83610555565b60a435946001600160401b038611610256576111dd610613963690600401610a25565b94613e3f565b34610256576020366003190112610256576004356000526021602052602060018060a01b0360406000205416604051908152f35b3461025657602036600319011261025657600435602055005b346102565760003660031901126102565760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b818110611291576103428561033681870382610966565b82546001600160a01b031684526020909301926001928301920161127a565b346102565760a0366003190112610256576004356024356112d081610555565b604435916112dd83610555565b6064356001600160401b038111610256576112fc903690600401610d4a565b6084356001600160401b0381116102565761131b903690600401610a25565b601f549095906004906020906113449060081c6001600160a01b03165b6001600160a01b031690565b6040516313917f7760e11b815292839182905afa90811561151d576000916115bd575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d576115a8575b50601f546113d79060081c6001600160a01b0316611338565b604051606087901b6001600160601b03191660208201529261140684603481015b03601f198101865285610966565b61140e610996565b9384526001600160a01b038716602085015285604085015261144a61143d876000526022602052604060002090565b546001600160a01b031690565b90823b156102565760009461147786926040519889978896879563bcf7f32b60e01b875260048701614072565b03926216e360f1908161158d575b5061152257611492611d28565b60205460405163348051d760e11b8152600481019190915290919060008160248160008051602061924f8339815191525afa801561151d57610613956114ef6114ea866040946114f5966000916114fa575b5061413d565b6141c7565b016141bd565b616213565b61151791503d806000833e61150f8183610966565b810190611b3b565b386114e4565b611afa565b505060205460405163348051d760e11b81526004810191909152905060008160248160008051602061924f8339815191525afa90811561151d57610613916114ea91600091611572575b506140b9565b61158791503d806000833e61150f8183610966565b3861156c565b8061159c60006115a293610966565b8061024b565b38611485565b8061159c60006115b793610966565b386113be565b6115df915060203d6020116115e5575b6115d78183610966565b810190611c26565b38611367565b503d6115cd565b3461025657604036600319011261025657602060243560043561160e82610555565b60009081526024835260408082206001600160a01b0393841683526020529020610bd8565b6060906003190112610256576004359060243561164f81610555565b906044356102d281610555565b346102565761061361169661167036611633565b9291600052602360205260406000209060018060a01b0316600052602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b34610256576106136116966116c936611633565b9291600052602460205260406000209060018060a01b0316600052602052604060002090565b3461025657600036600319011261025657602060ff601f54166040519015158152f35b6001600160401b03811161092a5760051b60200190565b9060405191600081548060011c92600182169182156117e9575b6020851083146117d55784875286939260208501929181156117b85750600114611776575b505061057392500383610966565b611787919250600052602060002090565b906000915b8483106117a157506105739350013880611768565b80548284015286935060209092019160010161178c565b9150506105739491925060ff19168252151560051b013880611768565b634e487b7160e01b84526022600452602484fd5b93607f1693611743565b9081546117ff81611712565b9261180d6040519485610966565b818452602084019060005260206000206000915b83831061182e5750505050565b60016020819261183d85611729565b815201920192019190611821565b90813b6000611859826109c3565b6118666040519182610966565b828152611872836109c3565b602082019190601f1901368337943c565b604051815480825290929183906118a36020830191600052602060002090565b926000905b8060078301106119eb576105739454918181106119cc575b8181106119ad575b81811061198e575b81811061196f575b818110611950575b818110611931575b818110611913575b106118fe575b500383610966565b6001600160e01b0319168152602001386118f6565b602083811b6001600160e01b031916855290936001910193016118f0565b604083901b6001600160e01b03191684529260019060200193016118e8565b606083901b6001600160e01b03191684529260019060200193016118e0565b608083901b6001600160e01b03191684529260019060200193016118d8565b60a083901b6001600160e01b03191684529260019060200193016118d0565b60c083901b6001600160e01b03191684529260019060200193016118c8565b6001600160e01b031960e084901b1684529260019060200193016118c0565b916008919350610100600191611a9a8754611a11838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b0194019201859293916118a8565b60405190611ab58261092f565b606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b90816020910312610256575190565b6040513d6000823e3d90fd5b90929192611b13816109c3565b91611b216040519384610966565b829482845282820111610256576020610573930190610399565b602081830312610256578051906001600160401b03821161025657019080601f830112156102565781516102d292602001611b06565b90610573601b602960405180956802db1b430b4b724b2160bd1b6020830152611ba38151809260208686019101610399565b81017f5d205b4552524f525d2047617465776179206e6f7420666f756e640000000000838201520301600419810185520183610966565b9060208251920151916bffffffffffffffffffffffff1983169260148210611c00575050565b6001600160601b031960149290920360031b82901b16169150565b519061057382610555565b9081602091031261025657516102d281610555565b90610573601b602960405180956802db1b430b4b724b2160bd1b6020830152611c6d8151809260208686019101610399565b81017f5d205b4552524f525d20437573746f6479206e6f7420666f756e640000000000838201520301600419810185520183610966565b906105736033602960405180956802db1b430b4b724b2160bd1b6020830152611cd68151809260208686019101610399565b81017f5d205b494e464f5d2045524332302f5a45544120776974686472617720636f6d8382015272706c65746564207375636365737366756c6c7960681b604982015203016013810185520183610966565b3d15611d53573d90611d39826109c3565b91611d476040519384610966565b82523d6000602084013e565b606090565b60266105739193929360296040519586926802db1b430b4b724b2160bd1b6020850152611d8e8151809260208688019101610399565b83017f5d205b4552524f525d2045524332302f5a4554412077697468647261772066618382015265034b632b21d160d51b6049820152611dd8825180936020604f85019101610399565b01010301601f198101845283610966565b8015150361025657565b91909160a081840312610256576040519060a082018281106001600160401b0382111761092a5760405281938135611e2a81610555565b83526020820135611e3a81611de9565b60208401526040820135611e4d81610555565b60408401526060820135916001600160401b03831161025657611e7660809392849383016109de565b60608501520135910152565b906105736023602960405180956802db1b430b4b724b2160bd1b6020830152611eb48151809260208686019101610399565b81017f5d205b4552524f525d2047617320746f6b656e207472616e736665722066616983820152621b195960ea1b604982015203016003810185520183610966565b906105736032602960405180956802db1b430b4b724b2160bd1b6020830152611f288151809260208686019101610399565b81017f5d205b494e464f5d2047617320746f6b656e207472616e7366657220636f6d7083820152716c65746564207375636365737366756c6c7960701b604982015203016012810185520183610966565b9293919093611f86611aa8565b60405163085e1f4d60e41b81529095906001600160a01b03831690602081600481855afa90811561151d57611fd59161143d91600091612657575b50808a526000526021602052604060002090565b6001600160a01b0390811660208901818152929190611ff390611338565b16156125df5761203761203161204f9261201e61133861143d8d516000526022602052604060002090565b1460408b0190815294611bda565b611bda565b60601c90565b6001600160a01b031660608901908152925b51151590565b1561223f57516004919060209061206e906001600160a01b0316611338565b604051635b11259160e01b815293849182905afa91821561151d5760009261221e575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af191821561151d57600080866121068295839561211f9861220a575b50516001600160a01b031690565b5af1612110611d28565b50151560c08701908152612049565b15612190575050915160405163348051d760e11b815260048101919091529150600090508160248160008051602061924f8339815191525afa90811561151d57610573916114ea91600091612175575b50611ef6565b61218a91503d806000833e61150f8183610966565b3861216f565b845160405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa95861561151d576121e16114ea610573986121ea946000916121ef575b50611e82565b51933690611df3565b614ddf565b61220491503d806000833e61150f8183610966565b386121db565b8061159c8661221893610966565b386120f8565b61223891925060203d6020116115e5576115d78183610966565b9038612091565b80516004919060209061225a906001600160a01b0316611338565b60405163dda79b7560e01b815293849182905afa91821561151d576000926125be575b506001600160a01b03919091166080880181815291906122ad906122a090611338565b1560a08a01908152612049565b6125465751600491906020906122cb906001600160a01b0316611338565b604051635b11259160e01b815293849182905afa91821561151d57600092612525575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af191821561151d576113386123629261133892612370956125165750516001600160a01b031690565b91516001600160a01b031690565b6123a361143d8461238c8a516000526024602052604060002090565b9060018060a01b0316600052602052604060002090565b90823b1561025657604051636ce5768960e11b81526001600160a01b0391821660048201529116602482015260448101849052906000908290606490829084905af19081612501575b5061247f5761242e946123fd611d28565b90600060c08201528160e0820152600081516040518099819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d576114ea6121ea936121e1926105739a600091612464575b50611d58565b61247991503d806000833e61150f8183610966565b3861245e565b5050505060008161249660c06124b6940160019052565b516040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea916000916124e6575b50611ca4565b6124fb91503d806000833e61150f8183610966565b386124e0565b8061159c600061251093610966565b386123ec565b8061159c600061221893610966565b61253f91925060203d6020116115e5576115d78183610966565b90386122ee565b50505050505050600061257391516040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea916000916125a3575b50611c3b565b6125b891503d806000833e61150f8183610966565b3861259d565b6125d891925060203d6020116115e5576115d78183610966565b903861227d565b50505050505050600061260c91516040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea9160009161263c575b50611b71565b61265191503d806000833e61150f8183610966565b38612636565b612679915060203d60201161267f575b6126718183610966565b810190611aeb565b38611fc1565b503d612667565b6040519061014082018281106001600160401b0382111761092a5760405260606101208360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201528260e082015260006101008201520152565b356102d281611de9565b908060209392818452848401376000828201840152601f01601f1916010190565b90516001600160a01b039081168252918216602082015291166040820152606081019190915260a0608082018190526102d2939101916126f3565b90610573603c602960405180956802db1b430b4b724b2160bd1b60208301526127818151809260208686019101610399565b81017f5d205b494e464f5d2045524332302f5a45544120776974686472617720616e64838201527f2063616c6c20636f6d706c65746564207375636365737366756c6c790000000060498201520301601c810185520183610966565b602f6105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526128138151809260208688019101610399565b83017f5d205b4552524f525d2045524332302f5a45544120776974686472617720616e838201526e0321031b0b636103330b4b632b21d1608d1b6049820152611dd8825180936020605885019101610399565b906004116102565790600490565b356001600160e01b031981169291906004821061288f575050565b6001600160e01b031960049290920360031b82901b16169150565b90610573605a60405180947f526563656976657220636f6e747261637420646f6573206e6f7420636f6e746160208301527f696e2066756e6374696f6e20776974682073656c6563746f722000000000000060408301526129148151809260208686019101610399565b81010301601f198101845283610966565b600a6105739193929360296040519586926802db1b430b4b724b2160bd1b602085015261295b8151809260208688019101610399565b83016902e902da2a92927a92e960b51b83820152611dd8825180936020603385019101610399565b9080601f830112156102565781516102d292602001611b06565b906020828203126102565781516001600160401b038111610256576102d29201612983565b90516001600160a01b03908116825290911660208201526060604082018190526102d2939101916126f3565b90610573603b602960405180956802db1b430b4b724b2160bd1b6020830152612a208151809260208686019101610399565b81017f5d205b494e464f5d2047617320746f6b656e207472616e7366657220616e6420838201527f63616c6c20636f6d706c65746564207375636365737366756c6c79000000000060498201520301601b810185520183610966565b602e6105739193929360296040519586926802db1b430b4b724b2160bd1b6020850152612ab28151809260208688019101610399565b83017f5d205b4552524f525d2047617320746f6b656e207472616e7366657220616e64838201526d01031b0b636103330b4b632b21d160951b6049820152611dd8825180936020605785019101610399565b95969491939096612b13612686565b60405163085e1f4d60e41b815290986001600160a01b03861691602081600481865afa90811561151d57612b619161143d916000916132d0575b50808d526000526021602052604060002090565b6001600160a01b0390811660208c01818152939190612b7f90611338565b16156132a057612bba6120318c949361202c6040612bd095612bb261133861143d8b516000526022602052604060002090565b149701968752565b6001600160a01b031660608c0190815292612049565b15612f8957612be1602084016126e9565b612e34575b805160049493929190602090612c04906001600160a01b0316611338565b604051635b11259160e01b815296879182905afa94851561151d57600095612e13575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039590951660048601526000856024818360008051602061924f8339815191525af194851561151d576113388992612c9892600098612e055750516001600160a01b031690565b923592612cc1612ca6610987565b6001600160a01b038d168152935b516001600160a01b031690565b92612ce2604051988997889687946338e2252760e01b8652600486016129c2565b0393f19081612de4575b50612d8157612d3094612cfd611d28565b90600061010082015281610120820152600081516040518099819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d576114ea6121ea936121e1926105739a600091612d66575b50612a7c565b612d7b91503d806000833e61150f8183610966565b38612d60565b50505050600081612496610100612d99940160019052565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091612dc9575b506129ee565b612dde91503d806000833e61150f8183610966565b38612dc3565b612e00903d806000833e612df88183610966565b81019061299d565b612cec565b8061159c8a61221893610966565b612e2d91955060203d6020116115e5576115d78183610966565b9338612c27565b612e47612e418686612866565b90612874565b8251612e6e90612e6a908390612e65906001600160a01b031661184b565b61544d565b1590565b612e785750612be6565b9250505087925060009150612e9360c0612ebd990160019052565b604051631623433d60e31b81526001600160e01b0319909116600482015296879081906024820190565b038160008051602061924f8339815191525afa95861561151d57612f1896612eed91600091612f6e575b506128aa565b9060e08101918252600081516040518099819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d576114ea6121ea936121e1926105739a600092612f51575b505190612925565b612f679192503d806000833e61150f8183610966565b9038612f49565b612f8391503d806000833e61150f8183610966565b38612ee7565b80519194929160049190602090612fa8906001600160a01b0316611338565b60405163dda79b7560e01b815293849182905afa91821561151d5760009261327f575b506001600160a01b039190911660808b018181529190612fff908c906120499060a090612ff790611338565b159201918252565b61324f57516004919060209061301d906001600160a01b0316611338565b604051635b11259160e01b815293849182905afa91821561151d5760009261322e575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af191821561151d576113386130b292611338928e956125165750516001600160a01b031690565b92868a6130c36020863596016126e9565b1561321a575061143d6131069161238c6130f460009a5b612cb46130e5610987565b6001600160a01b03909d168d52565b95516000526024602052604060002090565b93803b156102565788966131366000979388946040519a8b998a9889966356840c2960e11b885260048801612714565b0393f19081613205575b506131a25761315194612cfd611d28565b038160008051602061924f8339815191525afa801561151d576114ea6121ea936121e1926105739a600091613187575b506127dd565b61319c91503d806000833e61150f8183610966565b38613181565b505050506000816124966101006131ba940160019052565b038160008051602061924f8339815191525afa90811561151d57610573916114ea916000916131ea575b5061274f565b6131ff91503d806000833e61150f8183610966565b386131e4565b8061159c600061321493610966565b38613140565b6131069161238c6130f461143d939a6130da565b61324891925060203d6020116115e5576115d78183610966565b9038613040565b50505050505050505050600061257391516040518093819263348051d760e11b8352600483019190602083019252565b61329991925060203d6020116115e5576115d78183610966565b9038612fcb565b50505050505050505050600061260c91516040518093819263348051d760e11b8352600483019190602083019252565b6132e9915060203d60201161267f576126718183610966565b38612b4d565b60256105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526133258151809260208688019101610399565b83017f5d205b4552524f525d205a52433230206e6f7420666f756e6420666f722061738382015264039b2ba1d160dd1b6049820152611dd8825180936020604e85019101610399565b9060408061338584516060855260608501906103bc565b6020808601516001600160a01b03169085015293015191015290565b9194926133bb6102d297959260a0855260a085019061336e565b6001600160a01b0396871660208501526040840191909152941660608201528084036080909101526126f3565b90610573603a602960405180956802db1b430b4b724b2160bd1b602083015261341a8151809260208686019101610399565b81017f5d205b494e464f5d205a657461436861696e206465706f73697420616e642063838201527f616c6c20636f6d706c65746564207375636365737366756c6c7900000000000060498201520301601a810185520183610966565b95969491909661349761143d8661238c8a6000526023602052604060002090565b926001600160a01b038416156136b457601f546004906020906134c59060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091613695575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57613680575b50601f546135589060081c6001600160a01b0316611338565b6040516001600160601b031960608c901b166020820152601481529161357f603484610966565b613587610996565b9283526001600160a01b038b166020840152896040840152813b1561025657600087936135ce82968994604051998a988997889663c39aca3760e01b8852600488016133a1565b03926216e360f1908161366b575b506135f357610573956135ed611d28565b95615710565b50505050505061362060006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091613650575b506133e8565b61366591503d806000833e61150f8183610966565b3861364a565b8061159c600061367a93610966565b386135dc565b8061159c600061368f93610966565b3861353f565b6136ae915060203d6020116115e5576115d78183610966565b386134e8565b50505050509150506136e5915060006020546040518094819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d5760009261377a575b50604051632b65311f60e11b81526001600160a01b03909116600482015260008180602481015b038160008051602061924f8339815191525afa801561151d57610573926114ea9260009261375d575b506132ef565b6137739192503d806000833e61150f8183610966565b9038613757565b61372e9192506137956000913d8084833e61150f8183610966565b929150613707565b6040519060e082018281106001600160401b0382111761092a57604052606060c083600081526000602082015260006040820152600083820152826080820152600060a08201520152565b90610573602d602960405180956802db1b430b4b724b2160bd1b602083015261381a8151809260208686019101610399565b81017f5d205b494e464f5d2045564d20657865637574696f6e20636f6d706c65746564838201526c207375636365737366756c6c7960981b60498201520301600d810185520183610966565b60206105739193929360296040519586926802db1b430b4b724b2160bd1b8585015261389a81518092878688019101610399565b83017f5d205b4552524f525d2045564d20657865637574696f6e206661696c65643a2083820152611dd88251809387604985019101610399565b939194959290600460206138e661379d565b60405163085e1f4d60e41b815290989092839182906001600160a01b03165afa90811561151d576139319161143d91600091613d1c575b508089526000526021602052604060002090565b6001600160a01b039081166020880181815292919061394f90611338565b1615613ced5761203161396191611bda565b6001600160a01b031660408701908152602088019161397f836126e9565b613be3575b6004949596979860206139a0611338845160018060a01b031690565b604051635b11259160e01b815297889182905afa95861561151d57600096613bc2575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039690961660048701526000866024818360008051602061924f8339815191525af191821561151d57613a37611338613a3f926000998a96613bb45750516001600160a01b031690565b9135946126e9565b8214613baa57613a6582935b612cb4613a56610987565b6001600160a01b039096168652565b92613a86604051988997889687946338e2252760e01b8652600486016129c2565b0393f19081613b91575b50613b3157613ad292613aa1611d28565b90600060a08201528160c0820152600081516040518097819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d576114ea613b1193613b089261057398600091613b16575b50613866565b51913690611df3565b6146df565b613b2b91503d806000833e61150f8183610966565b38613b02565b505060008161249660a0613b46940160019052565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091613b76575b506137e8565b613b8b91503d806000833e61150f8183610966565b38613b70565b613ba5903d806000833e612df88183610966565b613a90565b613a658993613a4b565b8061159c8861221893610966565b613bdc91965060203d6020116115e5576115d78183610966565b94386139c3565b613bf0612e418686612866565b98613c0b612e6a8b612e656105a9875160018060a01b031690565b613c16579850613984565b50505050505090916000613c5b94613c316060840160019052565b604051631623433d60e31b81526001600160e01b0319909116600482015294859081906024820190565b038160008051602061924f8339815191525afa93841561151d57613cb594613c8a91600091612f6e57506128aa565b9060808101918252600081516040518097819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d576114ea613b1193613b089261057398600092612f5157505190612925565b5050935160405163348051d760e11b81526004810191909152945060009350849250829150506024810161260c565b613d35915060203d60201161267f576126718183610966565b3861391d565b60085460ff168015613d4a5790565b50604051630667f9d760e41b815260008051602061924f833981519152600482018190526519985a5b195960d21b6024830152602090829060449082905afa90811561151d57600091613d9e575b50151590565b613db7915060203d60201161267f576126718183610966565b38613d98565b906105736031602960405180956802db1b430b4b724b2160bd1b6020830152613def8151809260208686019101610399565b81017f5d205b494e464f5d205a657461436861696e206465706f73697420636f6d706c838201527065746564207375636365737366756c6c7960781b604982015203016011810185520183610966565b939194929094613e6061143d8461238c886000526023602052604060002090565b906001600160a01b0382161561404257601f54600490602090613e8e9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091614023575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d5761400e575b50601f54613f219060081c6001600160a01b0316611338565b803b1561025657604051633d14d1b760e21b81526001600160a01b038481166004830152602482018690529290921660448301526000908290606490829084905af19081613ff9575b50613f815761057395613f7b611d28565b95615db5565b505050505050613fae60006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091613fde575b50613dbd565b613ff391503d806000833e61150f8183610966565b38613fd8565b8061159c600061400893610966565b38613f6a565b8061159c600061401d93610966565b38613f08565b61403c915060203d6020116115e5576115d78183610966565b38613eb1565b505060205460405163348051d760e11b8152600481019190915294509092506000915083905080602481016136e5565b909261408d6102d2969495939560a0845260a084019061336e565b6001600160a01b03958616602084015260006040840152941660608201528084036080909101526126f3565b906105736033602960405180956802db1b430b4b724b2160bd1b60208301526140eb8151809260208686019101610399565b81017f5d205b494e464f5d205a657461436861696e20657865637574696f6e20636f6d8382015272706c65746564207375636365737366756c6c7960681b604982015203016013810185520183610966565b60266105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526141738151809260208688019101610399565b83017f5d205b4552524f525d205a657461436861696e20657865637574696f6e2066618382015265034b632b21d160d51b6049820152611dd8825180936020604f85019101610399565b356102d281610555565b6141f46142026105739260405192839163104c13eb60e21b602084015260206024840181815201906103bc565b03601f198101835282610966565b617fe7565b90610573601e602960405180956802db1b430b4b724b2160bd1b60208301526142398151809260208686019101610399565b81017f5d205b494e464f5d2063616c6c4f6e5265766572742069732066616c73650000838201520301600119810185520183610966565b90610573601f602960405180956802db1b430b4b724b2160bd1b60208301526142a28151809260208686019101610399565b81017f5d205b4552524f525d2072657665727441646472657373206973207a65726f00838201520301600019810185520183610966565b90608060606102d29360018060a01b03815116845260018060a01b0360208201511660208501526040810151604085015201519181606082015201906103bc565b9060206102d29281815201906142d9565b600b90602d61057393959460296040519788946802db1b430b4b724b2160bd1b6020870152614363815180926020868a019101610399565b85017f5d205b494e464f5d20457865637574696e67206f6e526576657274206f6e2072838201526c032bb32b93a20b2323932b9b99609d1b60498201526143b4825180936020605685019101610399565b01016a0161031b7b73a32bc3a1d160ad1b83820152611dd8825180936020603885019101610399565b6001600160a01b039182168152602081019290925290911660408201526080606082018190526102d2929101906142d9565b6001600160a01b0390911681526040602082018190526102d2929101906142d9565b602081830312610256578051906001600160401b03821161025657019080601f830112156102565781519161446583611712565b926144736040519485610966565b80845260208085019160051b830101918383116102565760208101915b83831061449f57505050505090565b82516001600160401b038111610256578201906060828703601f19011261025657604051906144cd8261094b565b60208301516001600160401b0381116102565760209084010187601f82011215610256578051906144fd82611712565b9161450b6040519384610966565b80835260208084019160051b830101918a831161025657602001905b8282106145795750505082526040830151916001600160401b0383116102565761456960608561455f8b602080999881990101612983565b8685015201611c1b565b6040820152815201920191614490565b8151815260209182019101614527565b634e487b7160e01b600052603260045260246000fd5b8051156145ac5760200190565b614589565b8051600110156145ac5760400190565b8051600210156145ac5760600190565b80518210156145ac5760209160051b010190565b90610573601d602960405180956802db1b430b4b724b2160bd1b60208301526146178151809260208686019101610399565b81017f5d205b494e464f5d204576656e742066726f6d206f6e5265766572743a000000838201520301600219810185520183610966565b6040519061465d604083610966565b600a825269101032b6b4ba3a32b91d60b11b6020830152565b60405190614685604083610966565b600782526610103230ba309d60c91b6020830152565b604051906146aa604083610966565b60078252662020746f70696360c81b6020830152565b604051906146cf604083610966565b60018252601d60f91b6020830152565b9190606083019081516146f06109a5565b6001600160a01b03851681529060006020830152600060408301526060820152602085015115614d705760008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57614d5b575b5084516001600160a01b031615614cda5760405163348051d760e11b81526004810183905260008160248160008051602061924f8339815191525afa90811561151d57600091614cbf575b5085516147e7906000906001600160a01b03165b604051632b65311f60e11b81526001600160a01b03909116600482015291829081906024820190565b038160008051602061924f8339815191525afa801561151d5761483d91600091614ca4575b506000604051614823816141f4886020830161431a565b604051809481926371aad10d60e01b835260048301610575565b038160008051602061924f8339815191525afa90811561151d5761486d936114ea93600093614c87575b5061432b565b601f5460049060209061488b9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091614c68575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57614c53575b50601f5461491e9060081c6001600160a01b0316611338565b85519091906001600160a01b031690823b1561025657614958926000928360405180968195829463184b079360e01b84526004840161440f565b03926216e360f19081614c3e575b5061498c57600080614984604061057397015160018060a01b031690565b935193616ba4565b9150506040519163064554e960e21b83526000836004818360008051602061924f8339815191525af192831561151d57600093614c1b575b5060005b8351811015614c15576149ef60406149e083876145d1565b5101516001600160a01b031690565b6040830151614a06906001600160a01b0316611338565b6001600160a01b0390911614614a1f575b6001016149c8565b60405163348051d760e11b815260048101849052909491929060008160248160008051602061924f8339815191525afa90811561151d57614a6c916114ea91600091614bfc575b506145e5565b614a8060006147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d57614ab391600091614be3575b50614aae61464e565b618002565b614ae160006020614ac488886145d1565b510151604051809381926371aad10d60e01b835260048301610575565b038160008051602061924f8339815191525afa801561151d57614b0f91600091614bca575b50614aae614676565b60005b614b1c86866145d1565b515151811015614bc157806000614b41614b6193614b3a8a8a6145d1565b51516145d1565b5160405180948192631623433d60e31b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d57600192614ba291600091614ba8575b50614b9361469b565b83614b9c6146c0565b91618046565b01614b12565b614bbb913d8091833e61150f8183610966565b38614b8a565b50919093614a17565b614bdd913d8091833e61150f8183610966565b38614b06565b614bf6913d8091833e61150f8183610966565b38614aa5565b614c0f913d8091833e61150f8183610966565b38614a66565b50505050565b614c3791933d8091833e614c2f8183610966565b810190614431565b91386149c4565b8061159c6000614c4d93610966565b38614966565b8061159c6000614c6293610966565b38614905565b614c81915060203d6020116115e5576115d78183610966565b386148ae565b614c9d9193503d806000833e61150f8183610966565b9138614867565b614cb991503d806000833e61150f8183610966565b3861480c565b614cd491503d806000833e61150f8183610966565b386147aa565b5060205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa94851561151d57614984604060009392614d336114ea6105739a87968791614d41575b50614270565b01516001600160a01b031690565b614d5591503d8089833e61150f8183610966565b38614d2d565b8061159c6000614d6a93610966565b3861475f565b5060405163348051d760e11b81526004810182905260008160248160008051602061924f8339815191525afa94851561151d57614984604060009392614d336114ea6105739a87968791614dc5575b50614207565b614dd991503d8089833e61150f8183610966565b38614dbf565b93929060608501928351614df16109a5565b6001600160a01b0387168152906001600160a01b03841660208301528260408301526060820152614e256020880151151590565b156153bd5760008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d576153a8575b5086516001600160a01b03161561533e5760405163348051d760e11b81526004810185905260008160248160008051602061924f8339815191525afa90811561151d57600091615323575b508751614ed2906000906001600160a01b03166147be565b038160008051602061924f8339815191525afa801561151d57614f0d91600091614ca457506000604051614823816141f4886020830161431a565b038160008051602061924f8339815191525afa90811561151d57614f3c936114ea93600093614c87575061432b565b601f54600490602090614f5a9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091615304575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d576152ef575b506001600160a01b03831661524f57601f54614ffb9060081c6001600160a01b0316611338565b87519091906001600160a01b031690823b1561025657615035926000928360405180968195829463184b079360e01b84526004840161440f565b03926216e360f1908161523a575b50615062576040959095015161057395906001600160a01b0316614984565b50509150505b60405163064554e960e21b8152916000836004818360008051602061924f8339815191525af192831561151d5760009361521f575b5060005b8351811015614c15576150b960406149e083876145d1565b60408301516150d0906001600160a01b0316611338565b6001600160a01b03909116146150e9575b6001016150a1565b60405163348051d760e11b815260048101849052909491929060008160248160008051602061924f8339815191525afa90811561151d57615135916114ea91600091614bfc57506145e5565b61514960006147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d5761517691600091614be35750614aae61464e565b61518760006020614ac488886145d1565b038160008051602061924f8339815191525afa801561151d576151b491600091614bca5750614aae614676565b60005b6151c186866145d1565b51515181101561521657806000614b416151df93614b3a8a8a6145d1565b038160008051602061924f8339815191525afa91821561151d5760019261521091600091614ba85750614b9361469b565b016151b7565b509190936150e1565b61523391933d8091833e614c2f8183610966565b913861509d565b8061159c600061524993610966565b38615043565b601f546152679060081c6001600160a01b0316611338565b87519091906001600160a01b031690823b15610256576152a39260009283604051809681958294639d4ba46560e01b84528a8c600486016143dd565b03926216e360f190816152da575b506152d0576040959095015161057395906001600160a01b0316614984565b5050915050615068565b8061159c60006152e993610966565b386152b1565b8061159c60006152fe93610966565b38614fd4565b61531d915060203d6020116115e5576115d78183610966565b38614f7d565b61533891503d806000833e61150f8183610966565b38614eba565b5060205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d5761057397614d336114ea614984946040946000916153935750614270565b614d5591503d806000833e61150f8183610966565b8061159c60006153b793610966565b38614e6f565b5060405163348051d760e11b81526004810184905260008160248160008051602061924f8339815191525afa90811561151d5761057397614d336114ea6149849460409460009161540e5750614207565b614dd991503d806000833e61150f8183610966565b634e487b7160e01b600052601160045260246000fd5b906104b0820180921161544857565b615423565b919060005b600481018082116154485784511061549757602081850101516001600160e01b031983811691161461548f57600019811461544857600101615452565b506001925050565b506000925050565b604051906154ac8261092f565b600060e083606081528260208201528260408201528260608201528260808201528260a08201528260c08201520152565b604051906154ec604083610966565b600782526619195c1bdcda5d60ca1b6020830152565b60405190615511604083610966565b601082526f19195c1bdcda5d08185b990818d85b1b60821b6020830152565b600990601461057393959460296040519788946802db1b430b4b724b2160bd1b6020870152615568815180926020868a019101610399565b85017302e902da2a92927a92e902d32ba30a1b430b4b7160651b8382015261559a825180936020603d85019101610399565b0101680103330b4b632b21d160bd1b83820152611dd8825180936020601d85019101610399565b919082604091031261025657602082516155da81610555565b92015190565b9081602091031261025657516102d281611de9565b90610573603a602960405180956802db1b430b4b724b2160bd1b60208301526156278151809260208686019101610399565b81017f5d205b4552524f525d204661696c656420746f206d696e74205a524332302074838201527f6f6b656e7320666f722070726f746f636f6c206164647265737300000000000060498201520301601a810185520183610966565b9190820391821161544857565b90610573602f602960405180956802db1b430b4b724b2160bd1b60208301526156c28151809260208686019101610399565b81017f5d205b4552524f525d204661696c656420746f206275726e2072656d61696e69838201526e6e67205a5243323020746f6b656e7360881b60498201520301600f810185520183610966565b9094939195615751939661572261549f565b9161572b615502565b835260006020546040518098819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa95861561151d576114ea826157b99861578893600091615d9a575b50865190615530565b6040805163fc5fecd560e01b815260808901356004820152966001600160a01b038416939190889081906024820190565b0381865afa801561151d57600097600091615d65575b50604085019081526001600160a01b039097166020850190815296601f546004906020906158089060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091615d46575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03821660048201526000816024818360008051602061924f8339815191525af1801561151d57615d31575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018d905260208160448160008a5af190811561151d57600091615d12575b5015156060870190815260008051602061924f8339815191523b15610256576040516303223eab60e11b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af190811561151d5761592e92612e6a92615cfd575b5051151590565b615c805780519060a0860191825260c086019861594b8a60019052565b805161595f906001600160a01b0316611338565b8603615bf8575b505060008051602061924f8339815191523b15610256576040516390c5013b60e01b8152906000826004818360008051602061924f8339815191525af191821561151d576159bb92615be3575b50518b615683565b608085018181529a9015615bc4575050601f54600491506020906159ea9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091615ba5575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57600092602092615a9292615b91575b508a51604051948580948193630852cd8d60e31b8352600483019190602083019252565b03925af1801561151d57615abd92612e6a92600092615b59575b5060e0612049910191829015159052565b615ae157615adb615ad361057397519451151590565b943690611df3565b90618832565b505050505050615b0e60006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091615b3e575b50615690565b615b5391503d806000833e61150f8183610966565b38615b38565b612049919250615b8260e09160203d602011615b8a575b615b7a8183610966565b8101906155e0565b929150615aac565b503d615b70565b8061159c86615b9f93610966565b38615a6e565b615bbe915060203d6020116115e5576115d78183610966565b38615a0d565b9496509450956105739850615bde925060409150016141bd565b61788e565b8061159c6000615bf293610966565b386159b3565b60008a52516001600160a01b03169051601f54600490602090615c269060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa91821561151d57615c56938f92600094615c5f575b5086618362565b81523880615966565b615c7991945060203d6020116115e5576115d78183610966565b9238615c4f565b5050505050505050505050615cb260006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091615ce2575b506155f5565b615cf791503d806000833e61150f8183610966565b38615cdc565b8061159c6000615d0c93610966565b38615927565b615d2b915060203d602011615b8a57615b7a8183610966565b386158be565b8061159c6000615d4093610966565b38615880565b615d5f915060203d6020116115e5576115d78183610966565b3861582b565b9050615d8a91975060403d604011615d93575b615d828183610966565b8101906155c1565b969096386157cf565b503d615d78565b615daf91503d806000833e61150f8183610966565b3861577f565b90949391956157519396615dc761549f565b9161572b6154dd565b90610573601e602960405180956802db1b430b4b724b2160bd1b6020830152615e028151809260208686019101610399565b81017f5d205b4552524f525d2061626f727441646472657373206973207a65726f0000838201520301600119810185520183610966565b6007600461057392949394602f6040519687926e021b0b713ba103a3930b739b332b91608d1b6020850152615e778151809260208688019101610399565b83016301037b3160e51b83820152615e99825180936020603385019101610399565b01016620746f6b656e7360c81b838201520301601819810185520183610966565b600460129295946017610573956029604051998a966802db1b430b4b724b2160bd1b6020890152615ef4815180926020868c019101610399565b87017f5d205b4552524f525d205472616e7366657272696e672000000000000000000083820152615f2f825180936020604085019101610399565b01016301037b3160e51b83820152615f51825180936020601b85019101610399565b0101710103a37b5b2b739903a379039b2b73232b9160751b83820152611dd8825180936020601685019101610399565b602d6105739193929360296040519586926802db1b430b4b724b2160bd1b6020850152615fb78151809260208688019101610399565b83017f5d205b494e464f5d205472616e7366657272696e6720746f6b656e7320746f20838201526c030b137b93a20b2323932b9b99609d1b6049820152611dd8825180936020605685019101610399565b6102d29160a0616021835160c0845260c08401906103bc565b92600180831b036020820151166020840152604081015160408401526060810151151560608401526080810151608084015201519060a08184039101526103bc565b9060206102d2928181520190616008565b601d90601261057393959460296040519788946802db1b430b4b724b2160bd1b60208701526160ac815180926020868a019101610399565b85017102e902da4a72327ae9021b7b73a3930b1ba160751b838201526160dc825180936020603b85019101610399565b01017f20657865637574696e67206f6e41626f72742c20636f6e746578743a2000000083820152611dd8825180936020602f85019101610399565b6001600160a01b0390911681526040602082018190526102d292910190616008565b90610573601c602960405180956802db1b430b4b724b2160bd1b602083015261616b8151809260208686019101610399565b81017f5d205b494e464f5d204576656e742066726f6d206f6e41626f72743a00000000838201520301600319810185520183610966565b601a6105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526161d88151809260208688019101610399565b83017f5d205b4552524f525d206f6e41626f7274206661696c65643a2000000000000083820152611dd8825180936020604385019101610399565b6001600160a01b0381169360009390928515616a625760205460405163348051d760e11b81526004810191909152858160248160008051602061924f8339815191525afa90811561151d578691616a48575b50604051632b65311f60e11b81526001600160a01b038516600482015290868260248160008051602061924f8339815191525afa91821561151d5787926162b7926114ea928592616a2c575b50615f81565b616836575b604080516001600160a01b0390951660208601526162dd90859081016113f8565b6162e56109b4565b9384526001600160a01b0385166020850152604084018590528415156060850152608084015260a083015260205460405163348051d760e11b8152600481019190915283818060248101038160008051602061924f8339815191525afa90811561151d57849161681c575b50604051632b65311f60e11b81526001600160a01b0383166004820152848160248160008051602061924f8339815191525afa801561151d576163aa918691616802575b5085604051614823816141f48960208301616063565b038160008051602061924f8339815191525afa90811561151d576163d9936114ea9388936167e6575b50616074565b601f546004906020906163f79060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d5784916167c7575b5060008051602061924f8339815191523b156167975760405163ca669fa760e01b81526001600160a01b0391909116600482015283816024818360008051602061924f8339815191525af1801561151d576167b3575b5060008051602061924f8339815191523b156167af576040516320d797a960e11b815283816004818360008051602061924f8339815191525af1801561151d5761679b575b50601f546164cd9060081c6001600160a01b0316611338565b90813b15616797579183916164f99383604051809681958294632095dedb60e01b845260048401616117565b03925af19081616783575b50616583576165399150616516611d28565b816020546040518095819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d5761057393836114ea9492616568575b50506161a2565b61657c92503d8091833e61150f8183610966565b3880616561565b60405163064554e960e21b81529181836004818360008051602061924f8339815191525af192831561151d578293616767575b50815b8351811015614c1557816165d561133860406149e085896145d1565b146165e3575b6001016165b9565b60205460405163348051d760e11b81526004810191909152909490838160248160008051602061924f8339815191525afa90811561151d57616630916114ea91869161674d575b50616139565b616643836147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d5761666f9185916167395750614aae61464e565b61667f836020614ac488886145d1565b038160008051602061924f8339815191525afa801561151d576166ab9185916167255750614aae614676565b825b6166b786866145d1565b51515181101561671e578084614b416166d493614b3a8a8a6145d1565b038160008051602061924f8339815191525afa91821561151d5760019261670491879161670a5750614b9361469b565b016166ad565b614bbb91503d8089833e61150f8183610966565b50936165db565b614bdd91503d8087833e61150f8183610966565b614bf691503d8087833e61150f8183610966565b61676191503d8088833e61150f8183610966565b3861662a565b61677c9193503d8084833e614c2f8183610966565b91386165b6565b8061159c8461679193610966565b38616504565b8380fd5b8061159c856167a993610966565b386164b4565b8280fd5b8061159c856167c193610966565b3861646f565b6167e0915060203d6020116115e5576115d78183610966565b38616419565b6167fb9193503d808a833e61150f8183610966565b91386163d3565b61681691503d8088833e61150f8183610966565b38616394565b61683091503d8086833e61150f8183610966565b38616350565b601f546004906020906168549060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d578691616a0d575b5060008051602061924f8339815191523b156169d85760405163ca669fa760e01b81526001600160a01b038216600482015286816024818360008051602061924f8339815191525af1801561151d576169f9575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018790526020816044818a805af1801561151d576169dc575b5060008051602061924f8339815191523b156169d85760405163ca669fa760e01b81526001600160a01b0391909116600482015285816024818360008051602061924f8339815191525af1801561151d576169c4575b5060405163a9059cbb60e01b81526001600160a01b0384166004820152602481018690529360208560448189805af190811561151d576113f8956162dd926169a5575b509450506162bc565b6169bd9060203d602011615b8a57615b7a8183610966565b503861699c565b8061159c876169d293610966565b38616959565b8580fd5b6169f49060203d602011615b8a57615b7a8183610966565b616903565b8061159c88616a0793610966565b386168ca565b616a26915060203d6020116115e5576115d78183610966565b38616876565b616a419192503d8087833e61150f8183610966565b90386162b1565b616a5c91503d8088833e61150f8183610966565b38616265565b60205460405163348051d760e11b815260048101919091528590818160248160008051602061924f8339815191525afa90811561151d57616aae916114ea918491616b8a575b50615dd0565b5060405163348051d760e11b81526000600482018190528160248160008051602061924f8339815191525afa90811561151d57600091616b6f575b50604051632b65311f60e11b81526000600482018190528180602481015b038160008051602061924f8339815191525afa801561151d57616b4e92616b3692600092616b52575b50615e39565b60405162461bcd60e51b815291829160048301610575565b0390fd5b616b689192503d806000833e61150f8183610966565b9084616b30565b616b8491503d806000833e61150f8183610966565b81616ae9565b616b9e91503d8086833e61150f8183610966565b84616aa8565b6001600160a01b03811695949093909290919086156173e95760205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d576000916173ce575b50604051632b65311f60e11b81526001600160a01b038716600482015260008160248160008051602061924f8339815191525afa801561151d57616c4a926114ea926000926173b85750615f81565b6001600160a01b038116801515806173af575b6171ab575b50604080516001600160a01b039097166020880152616cae9190616c9390889081015b03601f198101895288610966565b616c9b6109b4565b9687526001600160a01b03166020870152565b604085015260016060850152608084015260a083015260205460405163348051d760e11b815260048101919091526000818060248101038160008051602061924f8339815191525afa90811561151d57600091617190575b50604051632b65311f60e11b81526001600160a01b038316600482015260008160248160008051602061924f8339815191525afa801561151d57616d6391600091617175575b506000604051614823816141f48960208301616063565b038160008051602061924f8339815191525afa90811561151d57616d92936114ea9360009361715f5750616074565b601f54600490602090616db09060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617140575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d5761712b575b5060008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57617116575b50601f54616e899060081c6001600160a01b0316611338565b91823b1561025657616eb59260009283604051809681958294632095dedb60e01b845260048401616117565b03925af19081617101575b50616f355750616ece611d28565b60205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa91821561151d57610573926114ea92600091616f1a575b506161a2565b616f2f91503d806000833e61150f8183610966565b38616f14565b60405163064554e960e21b8152906000826004818360008051602061924f8339815191525af191821561151d576000926170e6575b5060005b82518110156170e15781616f8a61133860406149e085886145d1565b14616f98575b600101616f6e565b60205460405163348051d760e11b8152600481019190915290939060008160248160008051602061924f8339815191525afa90811561151d57616fe6916114ea916000916170ce5750616139565b616ffa60006147be60406149e088886145d1565b038160008051602061924f8339815191525afa801561151d5761702791600091614be35750614aae61464e565b61703860006020614ac487876145d1565b038160008051602061924f8339815191525afa801561151d5761706591600091614bca5750614aae614676565b60005b61707285856145d1565b5151518110156170c757806000614b4161709093614b3a89896145d1565b038160008051602061924f8339815191525afa91821561151d576001926170c191600091614ba85750614b9361469b565b01617068565b5092616f90565b616761913d8091833e61150f8183610966565b505050565b6170fa91923d8091833e614c2f8183610966565b9038616f6a565b8061159c600061711093610966565b38616ec0565b8061159c600061712593610966565b38616e70565b8061159c600061713a93610966565b38616e2a565b617159915060203d6020116115e5576115d78183610966565b38616dd3565b6167fb9193503d806000833e61150f8183610966565b61718a91503d806000833e61150f8183610966565b38616d4c565b6171a591503d806000833e61150f8183610966565b38616d06565b601f549091906004906020906171cc9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617390575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03821660048201526000816024818360008051602061924f8339815191525af1801561151d5761737b575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018590526020816044816000885af1801561151d5761735e575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57617349575b5060405163a9059cbb60e01b81526001600160a01b03871660048201526024810184905291602090839060449082906000905af1801561151d57616c8597616cae93616c939261732a575b5097505090616c62565b6173429060203d602011615b8a57615b7a8183610966565b5038617320565b8061159c600061735893610966565b386172d5565b6173769060203d602011615b8a57615b7a8183610966565b61727e565b8061159c600061738a93610966565b38617244565b6173a9915060203d6020116115e5576115d78183610966565b386171ef565b50821515616c5d565b616a419192503d806000833e61150f8183610966565b6173e391503d806000833e61150f8183610966565b38616bfb565b95509250505060205460405163348051d760e11b81526000818061741585600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57617444916114ea916000916178735750615dd0565b6001600160a01b038416908115158061786a575b156177e15760405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d576000916177c6575b5060405163348051d760e11b8152600481018490529460008660248160008051602061924f8339815191525afa95861561151d576000966177a3575b50604051632b65311f60e11b81526001600160a01b03909116600482015260008180602481015b038160008051602061924f8339815191525afa90811561151d57600091617788575b50604051632b65311f60e11b81526001600160a01b03861660048201529060008260248160008051602061924f8339815191525afa90811561151d57600497617572946114ea9460009461776b575b50615eba565b601f5460209061758d9060081c6001600160a01b0316611338565b6040516313917f7760e11b815295869182905afa93841561151d5760009461774a575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03851660048201526000816024818360008051602061924f8339815191525af1801561151d57617735575b506040516311f9fbc960e21b81526001600160a01b0385166004820152602481018390526020816044816000865af1801561151d57617718575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039490941660048501526000846024818360008051602061924f8339815191525af192831561151d576176d794602094617703575b5060405163a9059cbb60e01b81526001600160a01b03909116600482015260248101929092529092839190829060009082906044820190565b03925af1801561151d576176e85750565b6177009060203d602011615b8a57615b7a8183610966565b50565b8061159c600061771293610966565b3861769e565b6177309060203d602011615b8a57615b7a8183610966565b61763f565b8061159c600061774493610966565b38617605565b61776491945060203d6020116115e5576115d78183610966565b92386175b0565b6177819194503d806000833e61150f8183610966565b923861756c565b61779d91503d806000833e61150f8183610966565b3861751d565b6174fb9196506177be6000913d8084833e61150f8183610966565b9691506174d4565b6177db91503d806000833e61150f8183610966565b38617498565b60405163348051d760e11b8152600481018490528560008260248160008051602061924f8339815191525afa91821561151d57600092617847575b50604051632b65311f60e11b81526001600160a01b0390911660048201526000818060248101616b07565b616b079192506178626000913d8084833e61150f8183610966565b92915061781c565b50821515617458565b61788891503d806000833e61150f8183610966565b38616aa8565b6001600160a01b03811695949093909290919086156173e95760205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d57600091617fcc575b50604051632b65311f60e11b81526001600160a01b038716600482015260008160248160008051602061924f8339815191525afa801561151d57617934926114ea926000926173b85750615f81565b6001600160a01b03811680151580617fc3575b617dbf575b50604080516001600160a01b0390971660208801526179739190616c939088908101616c85565b604085015260006060850152608084015260a083015260205460405163348051d760e11b815260048101919091526000818060248101038160008051602061924f8339815191525afa90811561151d57600091617da4575b50604051632b65311f60e11b81526001600160a01b038316600482015260008160248160008051602061924f8339815191525afa801561151d57617a279160009161717557506000604051614823816141f48960208301616063565b038160008051602061924f8339815191525afa90811561151d57617a56936114ea9360009361715f5750616074565b601f54600490602090617a749060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617d85575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57617d70575b5060008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57617d5b575b50601f54617b4d9060081c6001600160a01b0316611338565b91823b1561025657617b799260009283604051809681958294632095dedb60e01b845260048401616117565b03925af19081617d46575b50617b925750616ece611d28565b60405163064554e960e21b8152906000826004818360008051602061924f8339815191525af191821561151d57600092617d2b575b5060005b82518110156170e15781617be761133860406149e085886145d1565b14617bf5575b600101617bcb565b60205460405163348051d760e11b8152600481019190915290939060008160248160008051602061924f8339815191525afa90811561151d57617c43916114ea916000916170ce5750616139565b617c5760006147be60406149e088886145d1565b038160008051602061924f8339815191525afa801561151d57617c8491600091614be35750614aae61464e565b617c9560006020614ac487876145d1565b038160008051602061924f8339815191525afa801561151d57617cc291600091614bca5750614aae614676565b60005b617ccf85856145d1565b515151811015617d2457806000614b41617ced93614b3a89896145d1565b038160008051602061924f8339815191525afa91821561151d57600192617d1e91600091614ba85750614b9361469b565b01617cc5565b5092617bed565b617d3f91923d8091833e614c2f8183610966565b9038617bc7565b8061159c6000617d5593610966565b38617b84565b8061159c6000617d6a93610966565b38617b34565b8061159c6000617d7f93610966565b38617aee565b617d9e915060203d6020116115e5576115d78183610966565b38617a97565b617db991503d806000833e61150f8183610966565b386179cb565b601f54909190600490602090617de09060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617fa4575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03821660048201526000816024818360008051602061924f8339815191525af1801561151d57617f8f575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018590526020816044816000885af1801561151d57617f72575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57617f5d575b5060405163a9059cbb60e01b81526001600160a01b03871660048201526024810184905291602090839060449082906000905af1801561151d57616c859761797393616c9392617f3e575b509750509061794c565b617f569060203d602011615b8a57615b7a8183610966565b5038617f34565b8061159c6000617f6c93610966565b38617ee9565b617f8a9060203d602011615b8a57615b7a8183610966565b617e92565b8061159c6000617f9e93610966565b38617e58565b617fbd915060203d6020116115e5576115d78183610966565b38617e03565b50821515617947565b617fe191503d806000833e61150f8183610966565b386178e5565b600080916020815191016a636f6e736f6c652e6c6f675afa50565b614202618034916141f461057394604051948593634b5c427760e01b60208601526040602486015260648501906103bc565b838103602319016044850152906103bc565b6141f4610573946180936142029461807c96604051978896635ab84e1f60e01b60208901526080602489015260a48801906103bc565b9160448701526023198683030160648701526103bc565b838103602319016084850152906103bc565b156180ac57565b60405162461bcd60e51b8152602060048201526016602482015275155b9a5cddd85c081c9bdd5d195c881b9bdd081cd95d60521b6044820152606490fd5b156180f157565b60405162461bcd60e51b815260206004820152600d60248201526c15d6915510481b9bdd081cd95d609a1b6044820152606490fd5b604051608091906181378382610966565b6003815291601f1901366020840137565b604051606091906181598382610966565b6002815291601f1901366020840137565b602081830312610256578051906001600160401b03821161025657019080601f8301121561025657815161819d81611712565b926181ab6040519485610966565b81845260208085019260051b82010192831161025657602001905b8282106181d35750505090565b81518152602091820191016181c6565b919260809361820892979695978452602084015260a0604084015260a0830190610284565b6001600160a01b0390951660608201520152565b6040519061822b604083610966565b600282526134b760f11b6020830152565b6001600791601a61057394969560296040519889946802db1b430b4b724b2160bd1b6020870152618276815180926020868a019101610399565b85017f5d205b494e464f5d2053776170207375636365737366756c3a20000000000000838201526182b1825180936020604385019101610399565b0101600160fd1b838201526182d0825180936020601b85019101610399565b010166081b995959195960ca1b838201520301601819810185520183610966565b601f6105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526183278151809260208688019101610399565b83017f5d205b4552524f525d20556e69737761702073776170206661696c65643a200083820152611dd8825180936020604885019101610399565b60255493946001600160a01b0390941693909291906183828515156180a5565b6026546183a29061839b906001600160a01b0316611338565b15156180ea565b60405163095ea7b360e01b81526001600160a01b039586166004820152602481018790529484169460208160448160008a5af1801561151d5761869b575b5060006183eb618126565b91618408866183f98561459f565b6001600160a01b039091169052565b602654618422906001600160a01b03165b6183f9856145b1565b61842f846183f9856145c1565b61843842615439565b60255490939061845290611338906001600160a01b031681565b90838a61847660405197889687958694634401edf760e11b86528d600487016181e3565b03925af1908161867a575b506184f95750505050618492611d28565b60205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa91821561151d576102d2926114ea926000916184de575b506182f1565b6184f391503d806000833e61150f8183610966565b386184d8565b60265461851991906001600160a01b0316809361851461821c565b61916f565b918251156186735761852d6185369361459f565b5161851461821c565b9081511561866e5760205460405163348051d760e11b81526004810191909152925060008360248160008051602061924f8339815191525afa90811561151d576185ae93600092618651575b50600061858e8461459f565b516040518096819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa93841561151d5760009461862f575b506000600491604051928380926306fdde0360e01b82525afa801561151d5761860e94618609936114ea93600093618612575b5061823c565b61459f565b5190565b6186289193503d806000833e61150f8183610966565b9138618603565b60049194506186496000913d8084833e61150f8183610966565b9491506185d0565b6186679192503d806000833e61150f8183610966565b9038618582565b505090565b5050505090565b618696903d806000833e61868e8183610966565b81019061816a565b618481565b6186b39060203d602011615b8a57615b7a8183610966565b6183e0565b604051906186c7604083610966565b600382526267617360e81b6020830152565b60046012929594602e610573956029604051998a966802db1b430b4b724b2160bd1b6020890152618713815180926020868c019101610399565b87017f5d205b4552524f525d2072657665727441646472657373206973207a65726f2c838201526d0103a3930b739b332b93934b733960951b6049820152618765825180936020605785019101610399565b01016301037b3160e51b83820152615f51825180936020603285019101610399565b1561878e57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b6001600160a01b03918216815291166020820152604081019190915260a06060820181905260009082015260c0608082018190526102d2929101906142d9565b6080906102d2939260018060a01b03168152606060208201526000606082015281604082015201906142d9565b93949190946060860151926188456109a5565b6001600160a01b0382168152936001600160a01b038416602086015285604086015260608501526188796020880151151590565b15618e15575060008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57618e00575b5060405163348051d760e11b81526004810186905260008160248160008051602061924f8339815191525afa90811561151d57600091618de5575b508651618917906000906001600160a01b03166147be565b038160008051602061924f8339815191525afa801561151d5761895391600091618dca575b506000604051614823816141f48a6020830161431a565b038160008051602061924f8339815191525afa90811561151d57618982936114ea93600093614c87575061432b565b600460206189a061133861143d896000526021602052604060002090565b604051635b11259160e01b815292839182905afa90811561151d57600091618dab575b5060008051602061924f8339815191523b15610256576040516303223eab60e11b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57618d96575b5015618cc85750618a3b61133861143d856000526021602052604060002090565b608085015185519192916001600160a01b0316833b156102565760405163cb7ba8e560e01b815294600094869485938491618a799160048401618805565b0393f1801561151d57618cb3575b505b60008051602061924f8339815191523b15610256576040516390c5013b60e01b81526000816004818360008051602061924f8339815191525af1801561151d57618c9e575b5060405163064554e960e21b8152916000836004818360008051602061924f8339815191525af192831561151d57600093618c83575b5060005b8351811015614c1557618b2060406149e083876145d1565b8251618b34906001600160a01b0316611338565b6001600160a01b0390911614618b4d575b600101618b08565b60405163348051d760e11b815260048101849052909491929060008160248160008051602061924f8339815191525afa90811561151d57618b99916114ea91600091614bfc57506145e5565b618bad60006147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d57618bda91600091614be35750614aae61464e565b618beb60006020614ac488886145d1565b038160008051602061924f8339815191525afa801561151d57618c1891600091614bca5750614aae614676565b60005b618c2586866145d1565b515151811015618c7a57806000614b41618c4393614b3a8a8a6145d1565b038160008051602061924f8339815191525afa91821561151d57600192618c7491600091614ba85750614b9361469b565b01618c1b565b50919093618b45565b618c9791933d8091833e614c2f8183610966565b9138618b04565b8061159c6000618cad93610966565b38618ace565b8061159c6000618cc293610966565b38618a87565b909160046020618ce861133861143d886000526021602052604060002090565b60405163dda79b7560e01b815292839182905afa90811561151d57600091618d77575b50608086015186516001600160a01b0392831694919216843b15610256576000948591618d4e60405198899788968794634cd1e1ab60e11b8652600486016187c5565b0393f1801561151d57618d62575b50618a89565b8061159c6000618d7193610966565b38618d5c565b618d90915060203d6020116115e5576115d78183610966565b38618d0b565b8061159c6000618da593610966565b38618a1a565b618dc4915060203d6020116115e5576115d78183610966565b386189c3565b618ddf91503d806000833e61150f8183610966565b3861893c565b618dfa91503d806000833e61150f8183610966565b386188ff565b8061159c6000618e0f93610966565b386188c4565b60405163348051d760e11b81526004810187905294969095929491935060008260248160008051602061924f8339815191525afa801561151d576114ea612cb491618e679460009161540e5750614207565b936001600160a01b03851615618fa8575b506020618e9761133861143d6004946000526021602052604060002090565b604051635b11259160e01b815292839182905afa90811561151d57600091618f89575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57618f74575b5015618f325750600080806105739481945af1618f2c611d28565b50618787565b60405163a9059cbb60e01b81526001600160a01b039283166004820152602481019390935260209183916044918391600091165af1801561151d576176e85750565b8061159c6000618f8393610966565b38618f11565b618fa2915060203d6020116115e5576115d78183610966565b38618eba565b60405163348051d760e11b81526004810183905291945060008260248160008051602061924f8339815191525afa91821561151d5760009261913b575b5060405163348051d760e11b8152600481018790529060008260248160008051602061924f8339815191525afa91821561151d5760009261911e575b50600084156190bc57506190336186b8565b604051632b65311f60e11b81526001600160a01b03831660048201529260008460248160008051602061924f8339815191525afa92831561151d576190946114ea618e97956113389561143d9560049a60209a60009461909f575b506186d9565b979450505050618e78565b6190b59194503d806000833e61150f8183610966565b923861908e565b604051632b65311f60e11b81526001600160a01b0387166004820152818160248160008051602061924f8339815191525afa91821561151d578092619103575b5050619033565b61911792503d8091833e61150f8183610966565b38806190fc565b6191349192503d806000833e61150f8183610966565b9038619021565b6191519192503d806000833e61150f8183610966565b9038618fe5565b6040906102d2939281528160208201520190610284565b90919261918b90618419619181618148565b956183f98761459f565b6020815191012061919a61821c565b6020815191012014600014619211576025546191e69260009290916191c990611338906001600160a01b031681565b906040518095819482936307c0329d60e21b845260048401619158565b03915afa90811561151d576000916191fc575090565b6102d291503d806000833e61868e8183610966565b6025546191e692600092909161923190611338906001600160a01b031681565b9060405180958194829363d06ca61f60e01b84526004840161915856fe0000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da26469706673582212201fce51ed1ff9d0f5f4ea6ac5dba002558bc8864b5d87779ba4c2fa367c0a470364736f6c634300081a003360c034608d57601f61094c38819003918201601f19168301916001600160401b038311848410176092578084926040948552833981010312608d57604b602060458360a8565b920160a8565b9060805260a05260405161089090816100bc8239608051818181603d015261012d015260a0518181816084015281816106960152818161074e01526107db0152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203608d5756fe6080604052600436106101185760003560e01c8063ced52b40146100715763d9d2f07403610118573461006c57600036600319011261006c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b600080fd5b3461006c57600036600319011261006c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b600091031261006c57565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b038211176100f857604052565b6100c1565b6001600160401b0381116100f857601f01601f191660200190565b600080604051368282378036810183815203907f00000000000000000000000000000000000000000000000000000000000000005af43d156101d3573d9061015f826100fd565b9161016d60405193846100d7565b82523d6000602084013e5b1561018e576101863661065f565b602081519101f35b60405162461bcd60e51b815260206004820152601f60248201527f476174657761795a45564d2064656c656761746563616c6c206661696c6564006044820152606490fd5b606090610178565b909291928360041161006c57831161006c57600401916003190190565b81601f8201121561006c5780359061020f826100fd565b9261021d60405194856100d7565b8284526020838301011161006c57816000926020809301838601378301015290565b6001600160a01b0381160361006c57565b3590811515820361006c57565b919082604091031261006c57604051604081018181106001600160401b038211176100f85760405260206102978183958035855201610250565b910152565b91909160a08184031261006c576040519060a082018281106001600160401b038211176100f857604052819381356102d38161023f565b83526102e160208301610250565b602084015260408201356102f48161023f565b60408401526060820135916001600160401b03831161006c5761031d60809392849383016101f8565b60608501520135910152565b9160e08383031261006c5782356001600160401b03811161006c57826103509185016101f8565b9260208101359260408201356103658161023f565b9260608301356001600160401b03811161006c57826103859185016101f8565b92610393836080830161025d565b9260c08201356001600160401b03811161006c576103b1920161029c565b90565b919082519283825260005b8481106103e0575050826000602080949584010152601f8019910116010190565b806020809284010151828286010152016103bf565b9060018060a01b03825116815260208201511515602082015260018060a01b03604083015116604082015260808061043c606085015160a0606086015260a08501906103b4565b93015191015290565b93946103b19795610475610498946104ae969460018060a01b0316885261010060208901526101008801906103b4565b60408701939093526001600160a01b0316606086015284820360808601526103b4565b845160a0840152602090940151151560c0830152565b60e08184039101526103f5565b6040513d6000823e3d90fd5b9060808282031261006c5781356001600160401b03811161006c57816104ee9184016101f8565b9260208301359260408101356105038161023f565b9260608201356001600160401b03811161006c576103b1920161029c565b6001600160a01b03909116815260a0602082018190526103b1959394919261054b918401906103b4565b60408301949094526001600160a01b031660608201528083036080909101526103f5565b91909160c08184031261006c5780356001600160401b03811161006c57836105989183016101f8565b9260208201356105a78161023f565b9260408301356001600160401b03811161006c57826105c79185016101f8565b926105d5836060830161025d565b9260a08201356001600160401b03811161006c576103b1920161029c565b926103b1969461061f6106529461063c9460018060a01b0316875260e0602088015260e08701906103b4565b6001600160a01b03909216604086015284820360608601526103b4565b84516080840152602090940151151560a0830152565b60c08184039101526103f5565b6000356001600160e01b0319166306cb898360e01b8103610723575061068a816106929260006101db565b81019061056f565b90937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561006c576000946106f5869260405198899788968795632c612e1f60e21b875260018060a01b03169033600488016105f3565b03925af1801561071e57610707575b50565b80610716600061071c936100d7565b806100b6565b565b6104bb565b637c0dcb5f60e01b81036107ac5750610741816107499260006101db565b8101906104c7565b9290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b1561006c57600080946106f5604051978896879586946308327f7960e41b865260018060a01b0316913360048701610521565b637b15118b60e01b146107bc5750565b6107cb816107d39260006101db565b810190610329565b9194909390927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169290833b1561006c5761083c600096928793604051998a988997889663567ee10960e11b885260018060a01b0316913360048901610445565b03925af1801561071e57156107045780610716600061071c936100d756fea2646970667358221220c3b911f522f83c8ee9102b4245bed2a13c90092e91b0140cf5e5b3a0b9aa0c6f64736f6c634300081a00330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da26469706673582212203f694ab51e5f913424b6717e51b1a640475332aae62978b7605f0d4ee97dccf764736f6c634300081a0033"; + "0x60803460a357601f62010d3938819003918201601f19168301916001600160401b0383118484101760a857808492604094855283398101031260a3576001604e602060488460be565b930160be565b918160ff19600c541617600c55601f54906101008360a81b039060081b1690828060a81b0319161717601f5560018060a01b031660018060a01b0319602054161760205560405162010c679081620000d28239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820360a35756fe6080604052600436101561001257600080fd5b60003560e01c8062173d46146101b65780631694505e146101b15780631ed7831c146101ac5780632ade3880146101a75780632c76d7a6146101a2578063342a30c31461019d5780633ce4a5bc146101985780633e5e3c23146101935780633f7286f41461018e57806351976f441461018957806352dc56b81461018457806359d0f7131461017f5780635b5491821461017a57806366141ce21461017557806366d9a9a01461017057806385226c811461016b578063916a17c614610166578063a0d788b714610161578063b0464fdc1461015c578063b5508aa914610157578063ba414fa614610152578063bb88b7691461014d578063d5f3948814610148578063e20c9f7114610143578063f04ab5341461013e5763fa7626d41461013957600080fd5b611c24565b611bfb565b611b7b565b611b4e565b611b25565b611b00565b611a73565b6119c7565b6116c8565b61161c565b611517565b61140b565b611324565b6112fb565b6112d2565b610684565b610636565b6105a5565b610525565b6104fe565b6104d5565b6104ac565b610400565b610260565b6101f4565b6101cb565b60009103126101c657565b600080fd5b346101c65760003660031901126101c6576021546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c6576024546040516001600160a01b039091168152602090f35b602060408183019282815284518094520192019060005b8181106102415750505090565b82516001600160a01b0316845260209384019390920191600101610234565b346101c65760003660031901126101c65760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b8181106102d1576102cd856102c181870382611c79565b6040519182918261021d565b0390f35b82546001600160a01b03168452602090930192600192830192016102aa565b60005b8381106103035750506000910152565b81810151838201526020016102f3565b9060209161032c815180928185528580860191016102f0565b601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061036b57505050505090565b9091929394603f198282030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b85010194019260005b8281106103d55750505050506020806001929701930193019193929061035c565b90919293946020806103f3600193605f198782030189528951610313565b97019501939291016103b4565b346101c65760003660031901126101c657601e5461041d81611c9b565b9061042b6040519283611c79565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061047157604051806102cd8782610338565b6002602060019260405161048481611c5d565b848060a01b03865416815261049a858701611d7f565b8382015281520192019201919061045c565b346101c65760003660031901126101c6576026546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c6576027546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c657602080546040516001600160a01b039091168152f35b346101c65760003660031901126101c65760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b818110610586576102cd856102c181870382611c79565b82546001600160a01b031684526020909301926001928301920161056f565b346101c65760003660031901126101c65760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b818110610606576102cd856102c181870382611c79565b82546001600160a01b03168452602090930192600192830192016105ef565b6001600160a01b038116036101c657565b346101c65760403660031901126101c65761066860043561065681610625565b6024359061066382610625565b611ea1565b604080516001600160a01b039384168152919092166020820152f35b346101c65760003660031901126101c657601f5460081c6001600160a01b031660008051602062010c128339815191523b156101c6576040516303223eab60e11b81526001600160a01b039190911660048201526000816024818360008051602062010c128339815191525af18015611104576112bd575b5060405161088580820182811067ffffffffffffffff8211176111bc57829162006768833903906000f0801561110457602180546001600160a01b0319166001600160a01b0390921691909117905560008051602062010c128339815191523b156101c6576040516390c5013b60e01b81526000816004818360008051602062010c128339815191525af18015611104576112a8575b506020546001600160a01b031660008051602062010c128339815191523b156101c6576040516303223eab60e11b81526001600160a01b039190911660048201526000816024818360008051602062010c128339815191525af1801561110457611293575b506020546001600160a01b031660008051602062010c128339815191523b156101c65760405163c88a5e6d60e01b81526001600160a01b03919091166004820152678ac7230489e8000060248201526000816044818360008051602062010c128339815191525af180156111045761127e575b5060215461088e90610882906001600160a01b031681565b6001600160a01b031690565b803b156101c6576000678ac7230489e8000091600460405180948193630d0e30db60e41b83525af1801561110457611269575b5060008051602062010c128339815191523b156101c6576040516390c5013b60e01b81526000816004818360008051602062010c128339815191525af1801561110457611254575b50601f5460081c6001600160a01b031660008051602062010c128339815191523b156101c6576040516303223eab60e11b81526001600160a01b039190911660048201526000816024818360008051602062010c128339815191525af180156111045761123f575b50601f5460081c6001600160a01b031660008051602062010c128339815191523b156101c65760405163c88a5e6d60e01b81526001600160a01b03919091166004820152678ac7230489e8000060248201526000816044818360008051602062010c128339815191525af180156111045761122a575b506021546109ff90610882906001600160a01b031681565b803b156101c6576000678ac7230489e8000091600460405180948193630d0e30db60e41b83525af1801561110457611215575b5060008051602062010c128339815191523b156101c6576040516390c5013b60e01b81526000816004818360008051602062010c128339815191525af1801561110457611200575b50601f54610af090610ad390610ab19060081c6001600160a01b0316602154610aab906001600160a01b0316610882565b90611ea1565b602480546001600160a01b0319166001600160a01b0390921691909117905590565b60018060a01b03166001600160601b0360a01b6023541617602355565b601f54610b8790610b4d90610b6a90610b2a9060081c6001600160a01b0316602154610b24906001600160a01b0316610882565b906125b2565b602780546001600160a01b0319166001600160a01b039092169190911790559092565b60018060a01b03166001600160601b0360a01b6026541617602655565b60018060a01b03166001600160601b0360a01b6025541617602555565b6020546001600160a01b031660008051602062010c128339815191523b156101c6576040516303223eab60e11b81526001600160a01b039190911660048201526000816024818360008051602062010c128339815191525af18015611104576111eb575b506021546001600160a01b03166023546001600160a01b03166024549091906001600160a01b03169160405192610b3a918285019385851067ffffffffffffffff8611176111bc578594610c629462005c2e87396001600160a01b0391821681529181166020830152909116604082015260600190565b03906000f0801561110457602280546001600160a01b0319166001600160a01b0390921691909117905560405161322180820182811067ffffffffffffffff8211176111bc57829162002a0d833903906000f080156111045760008051602062010c128339815191523b156101c6576040516390c5013b60e01b81526000816004818360008051602062010c128339815191525af18015611104576111d6575b50601f5460081c6001600160a01b031660008051602062010c128339815191523b156101c6576040516303223eab60e11b81526001600160a01b039190911660048201526000816024818360008051602062010c128339815191525af18015611104576111c1575b506040516192d980820182811067ffffffffffffffff8211176111bc57829162006fed833903906000f0801561110457602880546001600160a01b0319166001600160a01b03929092169182179055610dc290610882565b906040519161094c9081840184811067ffffffffffffffff8211176111bc578493610e0993620102c686396001600160a01b03908116825291909116602082015260400190565b03906000f0801561110457602980546001600160a01b0319166001600160a01b03929092169182179055610e3c90610882565b6021546001600160a01b0316601f5460081c6001600160a01b0316823b156101c65760405163485cc95560e01b81526001600160a01b03928316600482015291166024820152906000908290604490829084905af18015611104576111a7575b5060008051602062010c128339815191523b156101c6576040516390c5013b60e01b81526000816004818360008051602062010c128339815191525af1801561110457611192575b506020546001600160a01b031660008051602062010c128339815191523b156101c6576040516303223eab60e11b81526001600160a01b039190911660048201526000816024818360008051602062010c128339815191525af180156111045761117d575b5060006020610fb7610f6861088261088260215460018060a01b031690565b602954610f7d906001600160a01b0316610882565b60405163095ea7b360e01b81526001600160a01b039091166004820152678ac7230489e80000602482015293849283919082906044820190565b03925af1801561110457611160575b5060008051602062010c128339815191523b156101c6576040516390c5013b60e01b81526000816004818360008051602062010c128339815191525af180156111045761114b575b50601f5460081c6001600160a01b031660008051602062010c128339815191523b156101c6576040516303223eab60e11b81526001600160a01b039190911660048201526000816024818360008051602062010c128339815191525af1801561110457611136575b5060006020611095610f6861088261088260215460018060a01b031690565b03925af1801561110457611109575b5060008051602062010c128339815191523b156101c6576040516390c5013b60e01b81526000816004818360008051602062010c128339815191525af18015611104576110ed57005b806110fc600061110293611c79565b806101bb565b005b611dd7565b61112a9060203d60201161112f575b6111228183611c79565b8101906121e1565b6110a4565b503d611118565b806110fc600061114593611c79565b38611076565b806110fc600061115a93611c79565b3861100e565b6111789060203d60201161112f576111228183611c79565b610fc6565b806110fc600061118c93611c79565b38610f49565b806110fc60006111a193611c79565b38610ee4565b806110fc60006111b693611c79565b38610e9c565b611c47565b806110fc60006111d093611c79565b38610d6a565b806110fc60006111e593611c79565b38610d02565b806110fc60006111fa93611c79565b38610beb565b806110fc600061120f93611c79565b38610a7a565b806110fc600061122493611c79565b38610a32565b806110fc600061123993611c79565b386109e7565b806110fc600061124e93611c79565b38610971565b806110fc600061126393611c79565b38610909565b806110fc600061127893611c79565b386108c1565b806110fc600061128d93611c79565b3861086a565b806110fc60006112a293611c79565b386107f7565b806110fc60006112b793611c79565b38610792565b806110fc60006112cc93611c79565b386106fc565b346101c65760003660031901126101c6576023546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c6576025546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c6576028546040516001600160a01b039091168152602090f35b906020808351928381520192019060005b81811061136b5750505090565b82516001600160e01b03191684526020938401939092019160010161135e565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106113be57505050505090565b90919293946020806113fc600193603f19868203018752895190836113ec8351604084526040840190610313565b920151908481840391015261134d565b970193019301919392906113af565b346101c65760003660031901126101c657601b5461142881611c9b565b906114366040519283611c79565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b83831061147c57604051806102cd878261138b565b6002602060019260405161148f81611c5d565b61149886611cb3565b81526114a58587016121f9565b83820152815201920192019190611467565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106114ea57505050505090565b9091929394602080611508600193603f198682030187528951610313565b970193019301919392906114db565b346101c65760003660031901126101c657601a5461153481611c9b565b906115426040519283611c79565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b83831061158757604051806102cd87826114b7565b60016020819261159685611cb3565b815201920192019190611572565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106115d757505050505090565b909192939460208061160d600193603f198682030187526040838b51878060a01b0381511684520151918185820152019061134d565b970193019301919392906115c8565b346101c65760003660031901126101c657601d5461163981611c9b565b906116476040519283611c79565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b83831061168d57604051806102cd87826115a4565b600260206001926040516116a081611c5d565b848060a01b0386541681526116b68587016121f9565b83820152815201920192019190611678565b346101c65760e03660031901126101c6576004356116e581610625565b602435906116f282610625565b6044356116fe81610625565b6064359161170b83610625565b6084359261171884610625565b60a4359260c4359560008051602062010c128339815191523b156101c6576040516303223eab60e11b81526001600160a01b03871660048201526000816024818360008051602062010c128339815191525af18015611104576119b2575b506040516364e329cb60e11b81526001600160a01b0383811660048301528481166024830152909160209183916044918391600091165af1801561110457611985575b5060405163095ea7b360e01b81526001600160a01b0384166004820152602481018590526020818060448101038160006001600160a01b0387165af1801561110457611968575b5060405163095ea7b360e01b81526001600160a01b038416600482015260248101879052906020828060448101038160006001600160a01b0388165af18015611104576060966000936118bc9261194b575b5061185c42612433565b60405162e8e33760e81b81526001600160a01b03948516600482015295841660248701526044860197909752606485019890985260006084850181905260a4850152961660c483015260e482019390935293849283918290610104820190565b03926001600160a01b03165af180156111045761191c575060008051602062010c128339815191523b156101c6576040516390c5013b60e01b81526000816004818360008051602062010c128339815191525af18015611104576110ed57005b61193d9060603d606011611944575b6119358183611c79565b810190612458565b50506110a4565b503d61192b565b6119639060203d60201161112f576111228183611c79565b611852565b6119809060203d60201161112f576111228183611c79565b611800565b6119a69060203d6020116119ab575b61199e8183611c79565b81019061241e565b6117b9565b503d611994565b806110fc60006119c193611c79565b38611776565b346101c65760003660031901126101c657601c546119e481611c9b565b906119f26040519283611c79565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b838310611a3857604051806102cd87826115a4565b60026020600192604051611a4b81611c5d565b848060a01b038654168152611a618587016121f9565b83820152815201920192019190611a23565b346101c65760003660031901126101c657601954611a9081611c9b565b90611a9e6040519283611c79565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b838310611ae357604051806102cd87826114b7565b600160208192611af285611cb3565b815201920192019190611ace565b346101c65760003660031901126101c6576020611b1b612482565b6040519015158152f35b346101c65760003660031901126101c6576022546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c657601f5460405160089190911c6001600160a01b03168152602090f35b346101c65760003660031901126101c65760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b818110611bdc576102cd856102c181870382611c79565b82546001600160a01b0316845260209093019260019283019201611bc5565b346101c65760003660031901126101c6576029546040516001600160a01b039091168152602090f35b346101c65760003660031901126101c657602060ff601f54166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176111bc57604052565b90601f8019910116810190811067ffffffffffffffff8211176111bc57604052565b67ffffffffffffffff81116111bc5760051b60200190565b9060405191600081548060011c9260018216918215611d75575b602085108314611d61578487528693926020850192918115611d445750600114611d02575b5050611d0092500383611c79565b565b611d13919250600052602060002090565b906000915b848310611d2d5750611d009350013880611cf2565b805482840152869350602090920191600101611d18565b915050611d009491925060ff19168252151560051b013880611cf2565b634e487b7160e01b84526022600452602484fd5b93607f1693611ccd565b908154611d8b81611c9b565b92611d996040519485611c79565b818452602084019060005260206000206000915b838310611dba5750505050565b600160208192611dc985611cb3565b815201920192019190611dad565b6040513d6000823e3d90fd5b67ffffffffffffffff81116111bc57601f01601f191660200190565b6020818303126101c65780519067ffffffffffffffff82116101c6570181601f820112156101c65760208151910190611e3781611de3565b92611e456040519485611c79565b818452818301116101c657611e5e9160208401906102f0565b90565b611e7360409283835283830190610313565b90602081830391015260148152730b995d9b4b989e5d1958dbd9194b9bd89a9958dd60621b60208201520190565b91909160008051602062010c128339815191523b156101c6576040516303223eab60e11b81526001600160a01b03821660048201526000816024818360008051602062010c128339815191525af18015611104576121cc575b506040516360f9bb1160e01b815260206004820152603960248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76322d636f72652f627560448201527f696c642f556e69737761705632466163746f72792e6a736f6e00000000000000606482015260008160848160008051602062010c128339815191525afa90811561110457611faa916000918291612191575b5060405180938192631fb2437d60e31b835260048301611e61565b038160008051602062010c128339815191525afa80156111045761200a92611ff7926000926121ab575b50604080516001600160a01b039092166020830152909261200591849190820190565b03601f198101845283611c79565b612515565b6040516360f9bb1160e01b815260206004820152603f60248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76322d7065726970686560448201527f72792f6275696c642f556e69737761705632526f7574657230322e6a736f6e00606482015290929060008160848160008051602062010c128339815191525afa908115611104576120bb916000918291612191575060405180938192631fb2437d60e31b835260048301611e61565b038160008051602062010c128339815191525afa80156111045761210f92611ff792600092612168575b50604080516001600160a01b03808916602083015290921690820152916120059083906060820190565b9060008051602062010c128339815191523b156101c6576040516390c5013b60e01b81526000816004818360008051602062010c128339815191525af18015611104576121595750565b806110fc6000611d0093611c79565b61200591925061218a903d806000833e6121828183611c79565b810190611dff565b91906120e5565b6121a591503d8084833e6121828183611c79565b38611f8f565b6120059192506121c5903d806000833e6121828183611c79565b9190611fd4565b806110fc60006121db93611c79565b38611efa565b908160209103126101c6575180151581036101c65790565b604051815480825290929183906122196020830191600052602060002090565b926000905b80600783011061236157611d00945491818110612342575b818110612323575b818110612304575b8181106122e5575b8181106122c6575b8181106122a7575b818110612289575b10612274575b500383611c79565b6001600160e01b03191681526020013861226c565b602083811b6001600160e01b03191685529093600191019301612266565b604083901b6001600160e01b031916845292600190602001930161225e565b606083901b6001600160e01b0319168452926001906020019301612256565b608083901b6001600160e01b031916845292600190602001930161224e565b60a083901b6001600160e01b0319168452926001906020019301612246565b60c083901b6001600160e01b031916845292600190602001930161223e565b6001600160e01b031960e084901b168452926001906020019301612236565b9160089193506101006001916124108754612387838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b01940192018592939161221e565b908160209103126101c65751611e5e81610625565b90610384820180921161244257565b634e487b7160e01b600052601160045260246000fd5b908160609103126101c6578051916040602083015192015190565b908160209103126101c6575190565b60085460ff1680156124915790565b50604051630667f9d760e41b815260008051602062010c12833981519152600482018190526519985a5b195960d21b6024830152602090829060449082905afa908115611104576000916124e6575b50151590565b612508915060203d60201161250e575b6125008183611c79565b810190612473565b386124e0565b503d6124f6565b9061255a6020916040519283918161253681850197888151938492016102f0565b830161254a825180938580850191016102f0565b010103601f198101835282611c79565b51906000f09081156101c657565b61257a60409283835283830190610313565b90602081830391015260098152682e62797465636f646560b81b60208201520190565b604051906125ac602083611c79565b60008252565b60008051602062010c128339815191523b156101c6576040516303223eab60e11b81526001600160a01b039190911660048201526000816024818360008051602062010c128339815191525af18015611104576129f7575b506040516360f9bb1160e01b815260206004820152605c60248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76332d636f72652f617260448201527f746966616374732f636f6e7472616374732f556e69737761705633466163746f60648201527f72792e736f6c2f556e69737761705633466163746f72792e6a736f6e00000000608482015260008160a48160008051602062010c128339815191525afa908115611104576126e09160009182916129a7575b5060405180938192631fb2437d60e31b835260048301612568565b038160008051602062010c128339815191525afa801561110457612715916000916129dc575b5061270f61259d565b90612515565b6040516360f9bb1160e01b815260206004820152605560248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76332d7065726970686560448201527f72792f6172746966616374732f636f6e7472616374732f53776170526f757465606482015274391739b7b617a9bbb0b82937baba32b9173539b7b760591b608482015290929060008160a48160008051602062010c128339815191525afa908115611104576127e49160009182916129a7575060405180938192631fb2437d60e31b835260048301612568565b038160008051602062010c128339815191525afa801561110457612836916000916129c1575b50604080516001600160a01b038088166020830152861691810191909152906120058260608101611ff7565b6040516360f9bb1160e01b815260206004820152607560248201527f6e6f64655f6d6f64756c65732f40756e69737761702f76332d7065726970686560448201527f72792f6172746966616374732f636f6e7472616374732f4e6f6e66756e67696260648201527f6c65506f736974696f6e4d616e616765722e736f6c2f4e6f6e66756e6769626c60848201527432a837b9b4ba34b7b726b0b730b3b2b9173539b7b760591b60a482015290929060008160c48160008051602062010c128339815191525afa9081156111045761292b9160009182916129a7575060405180938192631fb2437d60e31b835260048301612568565b038160008051602062010c128339815191525afa80156111045761210f928592600092612986575b50604080516001600160a01b03808a16602083015292831691810191909152921660608301526120058260808101611ff7565b6120059192506129a0903d806000833e6121828183611c79565b9190612953565b6129bb91503d8084833e6121828183611c79565b386126c5565b6129d691503d806000833e6121828183611c79565b3861280a565b6129f191503d806000833e6121828183611c79565b38612706565b806110fc6000612a0693611c79565b3861260a56fe60a080604052346100ea57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b60405161313190816100f082396080518181816110ea015261117e0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880610054565b63f92ee8a960e01b60005260046000fd5b600080fdfe6080806040526004361015610067575b50361561001b57600080fd5b6100236125ec565b6000546001600160a01b03163314158061004f575b61003e57005b63b3af013760e01b60005260046000fd5b5060008051602061303c833981519152331415610038565b600090813560e01c90816301ffc9a7146120665750806306433b1b1461203757806306cb898314611d92578063184b079314611cdb5780632095dedb14611bb857806321e093b114611b91578063248a9ca314611b6a5780632722feee14611b415780632810ae63146117255780632f2ff15d146116f357806330b103421461160557806336568abe146115c05780633f4ba83a1461153e578063485cc955146113665780634f1ef2861461113f57806352d1902d146110d75780635c975abb146110a75780637b15118b14610f1e5780637c0dcb5f14610d055780638456cb5914610c9057806391d1485414610c3757806397a1cef11461082a5780639d4ba46514610705578063a217fddf146106e9578063ad3cb1cc1461069c578063bcbe93651461067f578063bcf7f32b146105fb578063c39aca37146104ea578063d547741f146104af578063e279a72a14610491578063e63ab1e914610456578063e90b9e5e1461038d578063edc5b62e1461036f578063f340fa01146102b35763f45346dc0361000f57346102b05760603660031901126102b05761020a612185565b9060243561021661219b565b60008051602061303c83398151915233036102a1576102336125ec565b61023c84612684565b61024581612684565b8115610292576102553082612f1f565b610260828286612d49565b15610269578280f35b632050a1dd60e11b83526001600160a01b03938416600452909216602452604491909152606490fd5b632ca2f52b60e11b8352600483fd5b632160203f60e11b8352600483fd5b80fd5b5060203660031901126102b0576102c8612185565b6102d0612648565b60008051602061303c8339815191523303610360576102ed6125ec565b6102f681612684565b3415610351576103063082612f1f565b8180808034855af16103166125bc565b5015610332575060016000805160206130bc8339815191525580f35b63793cd7bf60e11b82526001600160a01b031660045234602452604490fd5b632ca2f52b60e11b8252600482fd5b632160203f60e11b8252600482fd5b50346102b057806003193601126102b0576020604051621e84808152f35b50610397366121f2565b6103a2929192612648565b60008051602061303c8339815191523303610360576103bf6125ec565b6103c883612684565b34156103515781926103da3082612f1f565b6001600160a01b0316803b156104525761040b9183916040518080958194636481451b60e11b83526004830161235e565b039134905af1801561044757610432575b5060016000805160206130bc8339815191525580f35b8161043c916120ec565b6102b057803861041c565b6040513d84823e3d90fd5b5050fd5b50346102b057806003193601126102b05760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346102b057806003193601126102b0576020604051620186a08152f35b50346102b05760403660031901126102b0576104e66004356104cf61216f565b906104e16104dc826123c3565b61293a565b612bad565b5080f35b50346102b0576104f936612282565b909395949291610507612648565b60008051602061303c83398151915233036105ec576105246125ec565b61052d87612684565b61053681612684565b82156105dd576105463082612f1f565b610551838289612d49565b156105b757949586956001600160a01b031691823b156105b357869461058f869260405198899788968795632de7eb0b60e11b87526004870161257e565b03925af1801561044757610432575060016000805160206130bc8339815191525580f35b8680fd5b632050a1dd60e11b86526001600160a01b03808816600452166024526044829052606485fd5b632ca2f52b60e11b8652600486fd5b632160203f60e11b8652600486fd5b50346102b05761060a36612282565b90936106199695939296612648565b60008051602061303c83398151915233036105ec5785966106386125ec565b61064182612684565b61064a81612684565b6001600160a01b031691823b156105b357869461058f869260405198899788968795632de7eb0b60e11b87526004870161257e565b50346102b057806003193601126102b0576020604051610b408152f35b50346102b057806003193601126102b057506106e56040516106bf6040826120ec565b60058152640352e302e360dc1b602082015260405191829160208352602083019061225d565b0390f35b50346102b057806003193601126102b057602090604051908152f35b50346102b05760803660031901126102b05761071f612185565b906024359161072c61219b565b606435916001600160401b038311610826576080600319843603011261082657610754612648565b60008051602061303c8339815191523303610817576107716125ec565b61077a81612684565b61078382612684565b8415610808576107933083612f1f565b61079e858383612d49565b156107e0575091925082916001600160a01b0316803b156104525761058f8392918392604051948580948193636481451b60e11b83526004016004830161235e565b632050a1dd60e11b84526001600160a01b039081166004521660245250604491909152606490fd5b632ca2f52b60e11b8452600484fd5b632160203f60e11b8452600484fd5b8380fd5b50346102b05760803660031901126102b0576004356001600160401b038111610c335761085b903690600401612128565b604435906024356064356001600160401b038111610c2f5760a081600401916003199036030112610c2f5761088e6125ec565b610899818385612cd4565b604051632013a8cd60e21b815260048101859052908582602481737cce3eb018bf23e1fe2a32692f2c77592d1103945afa918215610c24578692610bd2575b506040516379220d9960e11b8152916020836004816001600160a01b0385165afa928315610b88578793610b93575b5060405163d7fd7afb60e01b81526004810187905292602090849060249082906001600160a01b03165afa928315610b88578793610b54575b508215610b4557604051637066b18d60e01b815286600482015260406024820152600860448201526719d85cd31a5b5a5d60c21b60648201528781608481737cce3eb018bf23e1fe2a32692f2c77592d1103945afa889181610b29575b50610afc5750620186a0925b604051637066b18d60e01b815287600482015260406024820152600f60448201526e70726f746f636f6c466c617446656560881b60648201528881608481737cce3eb018bf23e1fe2a32692f2c77592d1103945afa899181610ad8575b50610aa9575087935b80820291820403610a955791610a8f91610a56610a4f867f07bf64173efd8f3dfb9e4eb3834bab9d5b85a3d89a1c6425797329de0668502c9897966127ad565b8092612e86565b610a5f856127d0565b60018060a01b038954169360405191610a77836120bb565b8a835260016020840152604051968796339a8861250f565b0390a380f35b634e487b7160e01b88526011600452602488fd5b8051908115610acf5760208082019282019190910312610aca575193610a0f565b600080fd5b50508793610a0f565b610af59192503d808c833e610aed81836120ec565b810190612e61565b9038610a06565b8051908115610b1d5760208082019282019190910312610aca5751926109a9565b5050620186a0926109a9565b610b3e9192503d808b833e610aed81836120ec565b903861099d565b630e661aed60e41b8752600487fd5b9092506020813d602011610b80575b81610b70602093836120ec565b81010312610aca57519138610940565b3d9150610b63565b6040513d89823e3d90fd5b92506020833d602011610bca575b81610bae602093836120ec565b810103126105b3576020610bc3602494612757565b9350610907565b3d9150610ba1565b9091503d8087833e610be481836120ec565b8101906040818303126105b357610bfa81612757565b9160208201516001600160401b038111610c2057610c18920161276b565b5090386108d8565b8880fd5b6040513d88823e3d90fd5b8480fd5b5080fd5b50346102b05760403660031901126102b0576040610c5361216f565b91600435815260008051602061307c833981519152602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346102b057806003193601126102b057610ca96128c8565b610cb16125ec565b600160ff1960008051602061309c83398151915254161760008051602061309c833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346102b05760803660031901126102b0576004356001600160401b038111610c3357610d36903690600401612128565b8160243591610d4361219b565b92606435936001600160401b0385116108265760a08560040195600319903603011261082657610d716125ec565b610d7c858385612cd4565b604051630123a4f160e31b81526001600160a01b03821695906020816004818a5afa908115610c24578691610ee6575b50610db8908385612c4d565b604051634d8943bb60e01b81529096602082600481845afa918215610b88578792610eaf575b5090602060049260405193848092630123a4f160e31b82525afa918215610b88578792610e55575b5090610a8f92917f07bf64173efd8f3dfb9e4eb3834bab9d5b85a3d89a1c6425797329de0668502c96979860405192610e3e846120bb565b835260016020840152604051968796339a8861250f565b9291509495506020823d602011610ea7575b81610e74602093836120ec565b81010312610aca5790518795947f07bf64173efd8f3dfb9e4eb3834bab9d5b85a3d89a1c6425797329de0668502c610e06565b3d9150610e67565b915095506020813d602011610ede575b81610ecc602093836120ec565b81010312610aca575187956020610dde565b3d9150610ebf565b9550506020853d602011610f16575b81610f02602093836120ec565b81010312610aca57610db887955190610dac565b3d9150610ef5565b50346102b05760e03660031901126102b0576004356001600160401b038111610c3357610f4f903690600401612128565b8160243591610f5c61219b565b926064356001600160401b03811161082657610f7c9036906004016121c5565b9094906040366083190112610c2f5760c435906001600160401b0382116110a35760a0826004019260031990360301126110a357610fb86125ec565b610fc582828987896126a5565b610fd26084358486612c4d565b604051634d8943bb60e01b8152906020826004816001600160a01b0389165afa91821561109857889261103a575b5097610a8f9392917fd90f94752d2b12f364f4a2237ebe1aff24ba6127585376bf4935f6a7be17dd2a979899604051978897339b89612453565b939291509596506020833d602011611090575b8161105a602093836120ec565b81010312610aca5791518896959192917fd90f94752d2b12f364f4a2237ebe1aff24ba6127585376bf4935f6a7be17dd2a611000565b3d915061104d565b6040513d8a823e3d90fd5b8580fd5b50346102b057806003193601126102b057602060ff60008051602061309c83398151915254166040519015158152f35b50346102b057806003193601126102b0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316300361113057602060405160008051602061305c8339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126102b057611154612185565b906024356001600160401b038111610c3357611174903690600401612128565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611343575b506113345781805260008051602061307c83398151915260209081526040808420336000908152925290205460ff161561131c576040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa809585966112e8575b5061122257634c9c8ce360e01b84526004839052602484fd5b90918460008051602061305c83398151915281036112d65750813b156112c45760008051602061305c83398151915280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a281518390156112aa57808360206104e695519101845af46112a46125bc565b91612fda565b505050346112b55780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011611314575b81611304602093836120ec565b81010312610c2f57519438611209565b3d91506112f7565b63e2517d3f60e01b8252336004526024829052604482fd5b63703e46dd60e11b8252600482fd5b60008051602061305c833981519152546001600160a01b031614159050386111a9565b50346102b05760403660031901126102b057611380612185565b61138861216f565b6000805160206130dc833981519152549160ff8360401c1615926001600160401b03811680159081611536575b600114908161152c575b159081611523575b506115145767ffffffffffffffff1981166001176000805160206130dc83398151915255836114e7575b506001600160a01b031690811580156114d6575b6114c75761145690611415612f6c565b61141d612f6c565b611425612f6c565b61142d612f6c565b611435612f6c565b60016000805160206130bc8339815191525561145081612984565b50612a36565b5082546001600160a01b03191617825561146d5780f35b68ff0000000000000000196000805160206130dc83398151915254166000805160206130dc833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b637138356f60e01b8452600484fd5b506001600160a01b03811615611405565b68ffffffffffffffffff191668010000000000000001176000805160206130dc83398151915255386113f1565b63f92ee8a960e01b8552600485fd5b905015386113c7565b303b1591506113bf565b8591506113b5565b50346102b057806003193601126102b0576115576128c8565b60008051602061309c8339815191525460ff8116156115b15760ff191660008051602061309c833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346102b05760403660031901126102b0576115da61216f565b336001600160a01b038216036115f6576104e690600435612bad565b63334bd91960e11b8252600482fd5b5060603660031901126102b057600435906001600160401b0382116102b057606060031983360301126102b05761163a61216f565b916044356001600160401b0381116116ef5761165a9036906004016121c5565b611665929192612648565b60008051602061303c8339815191523303610817576116826125ec565b61168b85612684565b341561080857839461169d3082612f1f565b6001600160a01b0316803b15610c2f576116dd859361040b604051968795869485946375fcd95560e11b86526040600487015260448601906004016124cd565b8481036003190160248601529161233d565b8280fd5b50346102b05760403660031901126102b0576104e660043561171361216f565b906117206104dc826123c3565b612b04565b50346102b05760e03660031901126102b0576004356001600160401b038111610c3357611756903690600401612128565b604435906024356064356001600160401b038111610c2f5761177c9036906004016121c5565b60403660831901126110a35760c435906001600160401b0382116105b35760a0826004019260031990360301126105b3576117b56125ec565b6117c282828587896126a5565b604051632013a8cd60e21b815260048101879052926084358885602481737cce3eb018bf23e1fe2a32692f2c77592d1103945afa948515611b36578995611ae4575b506040516379220d9960e11b81526020816004816001600160a01b038a165afa908115611a96578a91611aa1575b5060405163d7fd7afb60e01b8152600481018a905290602090829060249082906001600160a01b03165afa908115611a96578a91611a64575b508015611a555781156119a5575b604051637066b18d60e01b815289600482015260406024820152600f60448201526e70726f746f636f6c466c617446656560881b60648201528a81608481737cce3eb018bf23e1fe2a32692f2c77592d1103945afa8b9181611988575b5061195e575089915b8082029182040361194a579181611928611921610a8f96947fd90f94752d2b12f364f4a2237ebe1aff24ba6127585376bf4935f6a7be17dd2a9a9998966127ad565b8097612e86565b611931876127d0565b60018060a01b038b541695604051978897339b89612453565b634e487b7160e01b8a52601160045260248afd5b805190811561197f5760208082019282019190910312610aca5751916118df565b505089916118df565b61199e9192508c3d8091833e610aed81836120ec565b90386118d6565b9050604051637066b18d60e01b815288600482015260406024820152600860448201526719d85cd31a5b5a5d60c21b60648201528981608481737cce3eb018bf23e1fe2a32692f2c77592d1103945afa8a9181611a39575b50611a0e5750620186a05b90611879565b8051908115611a2e5760208082019282019190910312610aca5751611a08565b5050620186a0611a08565b611a4e9192503d808d833e610aed81836120ec565b90386119fd565b630e661aed60e41b8a5260048afd5b90506020813d602011611a8e575b81611a7f602093836120ec565b81010312610aca57513861186b565b3d9150611a72565b6040513d8c823e3d90fd5b90506020813d602011611adc575b81611abc602093836120ec565b81010312611ad8576020611ad1602492612757565b9150611832565b8980fd5b3d9150611aaf565b9094503d808a833e611af681836120ec565b810190604081830312611ad857611b0c81612757565b9160208201516001600160401b038111611b3257611b2a920161276b565b509338611804565b8b80fd5b6040513d8b823e3d90fd5b50346102b057806003193601126102b057602060405160008051602061303c8339815191528152f35b50346102b05760203660031901126102b0576020611b896004356123c3565b604051908152f35b50346102b057806003193601126102b057546040516001600160a01b039091168152602090f35b50346102b05760403660031901126102b057611bd2612185565b906024356001600160401b038111610c33578060040160c060031983360301126116ef57611bfe612648565b60008051602061303c83398151915233036102a1578293611c1d6125ec565b611c2681612684565b6001600160a01b031691823b15611cd65761058f92611cc4858094604051968795869485936316a67dbf60e11b85526020600486015260a4611c7c611c6b838061230c565b60c060248a015260e489019161233d565b936001600160a01b03611c91602483016121b1565b16604488015260448101356064880152611cad606482016122ff565b15156084880152608481013582880152019061230c565b8483036023190160c48601529061233d565b505050fd5b50346102b057611cea366121f2565b611cf5929192612648565b60008051602061303c8339815191523303610360578192611d146125ec565b611d1d81612684565b6001600160a01b0316803b1561045257611d518392918392604051958680948193636481451b60e11b83526004830161235e565b03925af18015611d8557611d75575b60016000805160206130bc8339815191525580f35b611d7e916120ec565b3881611d60565b50604051903d90823e3d90fd5b50346102b05760c03660031901126102b0576004356001600160401b038111610c3357611dc3903690600401612128565b611dcb61216f565b6044356001600160401b03811161082657611dea9036906004016121c5565b9091906040366063190112610c2f5760a435906001600160401b0382116110a3578160040160a060031984360301126105b357611e256125ec565b60643592620186a08410612028576064810191611e428382612616565b9050610b40611e5182876127ad565b116120065750608482013596621e84808811611feb5760405195611e74876120bb565b86526084358015158103611fe75760208701526040519160a083018381106001600160401b03821117611fd357604052611ead906121b1565b8252611ebb602484016122ff565b9260208301938452611ecf604482016121b1565b9460408401958652356001600160401b038111611b325736910160040190611ef691612128565b946060830195865260808301988952611f0e8a612dc3565b8651611f1a9089612dcb565b506040519960a08b5260a08b01611f309161225d565b908a820360208c0152611f429261233d565b855160408a0152602090950151151560608901528785036080890152516001600160a01b03908116855290511515602085015290511660408301525160a060608301819052611f94919083019061225d565b92516080909101526001600160a01b03169133917f306ee13f48319a123b222c69908e44dcf91abffc20cacc502e3cf5a4ff23e0e4919081900390a380f35b634e487b7160e01b8c52604160045260248cfd5b8a80fd5b637643390f60e11b8a526004889052621e848060245260448afd5b89612013604492876127ad565b63cd6f4e6d60e01b8252600452610b40602452fd5b6360ee124760e01b8852600488fd5b50346102b057806003193601126102b0576020604051737cce3eb018bf23e1fe2a32692f2c77592d1103948152f35b905034610c33576020366003190112610c335760043563ffffffff60e01b81168091036116ef5760209250637965db0b60e01b81149081156120aa575b5015158152f35b6301ffc9a760e01b149050386120a3565b604081019081106001600160401b038211176120d657604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b038211176120d657604052565b6001600160401b0381116120d657601f01601f191660200190565b81601f82011215610aca5780359061213f8261210d565b9261214d60405194856120ec565b82845260208383010111610aca57816000926020809301838601378301015290565b602435906001600160a01b0382168203610aca57565b600435906001600160a01b0382168203610aca57565b604435906001600160a01b0382168203610aca57565b35906001600160a01b0382168203610aca57565b9181601f84011215610aca578235916001600160401b038311610aca5760208381860195010111610aca57565b906040600319830112610aca576004356001600160a01b0381168103610aca5791602435906001600160401b038211610aca576080908290036003190112610aca5760040190565b60005b83811061224d5750506000910152565b818101518382015260200161223d565b906020916122768151809281855285808601910161223a565b601f01601f1916010190565b60a0600319820112610aca576004356001600160401b038111610aca5760608183036003190112610aca57600401916024356001600160a01b0381168103610aca5791604435916064356001600160a01b0381168103610aca5791608435906001600160401b038211610aca576122fb916004016121c5565b9091565b35908115158203610aca57565b9035601e1982360301811215610aca5701602081359101916001600160401b038211610aca578136038313610aca57565b908060209392818452848401376000828201840152601f01601f1916010190565b602081526123c09160a0906123b0906001600160a01b0361237e826121b1565b166020850152600180841b03612396602083016121b1565b16604085015260408101356060850152606081019061230c565b919092608080820152019161233d565b90565b60005260008051602061307c83398151915260205260016040600020015490565b906001600160a01b036123f6836121b1565b168152612405602083016122ff565b151560208201526001600160a01b03612420604084016121b1565b16604082015260808061244a612439606086018661230c565b60a0606087015260a086019161233d565b93013591015290565b979693909261247361249f97949693966101208b526101208b019061225d565b6001600160a01b0390961660208a015260408901526060880152608087015285830360a087015261233d565b9060843560c084015260a43592831515809403610aca576123c09360e08201526101008184039101526123e4565b906040806124ec6124de858061230c565b60608652606086019161233d565b936001600160a01b03612501602083016121b1565b166020850152013591015290565b929560209561010093956123c099986125338995610120895261012089019061225d565b6001600160a01b039098168786015260408701526060860152608085015283850360a0850181905260008652815160c0860152602090910151151560e08501520191015201906123e4565b90926125996123c096949593956080845260808401906124cd565b6001600160a01b039095166020830152604082015280840360609091015261233d565b3d156125e7573d906125cd8261210d565b916125db60405193846120ec565b82523d6000602084013e565b606090565b60ff60008051602061309c833981519152541661260557565b63d93c066560e01b60005260046000fd5b903590601e1981360301821215610aca57018035906001600160401b038211610aca57602001918136038313610aca57565b60026000805160206130bc83398151915254146126735760026000805160206130bc83398151915255565b633ee5aeb560e01b60005260046000fd5b6001600160a01b03161561269457565b637138356f60e01b60005260046000fd5b6126b0919250612dc3565b1561274657620186a060843510612735576126ce6060830183612616565b919050610b406126de83836127ad565b1161271157505060800135621e848081116126f65750565b637643390f60e11b600052600452621e848060245260446000fd5b61271b92506127ad565b63cd6f4e6d60e01b600052600452610b4060245260446000fd5b6360ee124760e01b60005260046000fd5b632ca2f52b60e11b60005260046000fd5b51906001600160a01b0382168203610aca57565b81601f82011215610aca5780516127818161210d565b9261278f60405194856120ec565b81845260208284010111610aca576123c0916020808501910161223a565b919082018092116127ba57565b634e487b7160e01b600052601160045260246000fd5b6000906127ea8160018060a01b0384541630903390612ecd565b156128b15781546001600160a01b0316803b156116ef57828091602460405180948193632e1a7d4d60e01b83528760048401525af1908161289d575b506128505763793cd7bf60e11b825260008051602061303c83398151915260045260245260449150fd5b818080808460008051602061303c8339815191525af161286e6125bc565b5015612878575050565b63793cd7bf60e11b825260008051602061303c83398151915260045260245260449150fd5b836128aa919492946120ec565b9138612826565b63793cd7bf60e11b82523060045260245260449150fd5b3360009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561290157565b63e2517d3f60e01b600052336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260446000fd5b600081815260008051602061307c8339815191526020908152604080832033845290915290205460ff161561296c5750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16612a30576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50600090565b6001600160a01b03811660009081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff16612a30576001600160a01b031660008181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b60205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b600081815260008051602061307c833981519152602090815260408083206001600160a01b038616845290915290205460ff16612ba657600081815260008051602061307c833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b5050600090565b600081815260008051602061307c833981519152602090815260408083206001600160a01b038616845290915290205460ff1615612ba657600081815260008051602061307c833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b9091612c599083612dcb565b91612c6682303384612ecd565b15612c9e57612c758282612f9a565b15612c7f57505090565b637112ae7760e01b60005260018060a01b031660045260245260446000fd5b60405163489ca9b760e01b81526001600160a01b0390911660048201523360248201523060448201526064810191909152608490fd5b612cdd90612dc3565b156127465760608101610b40612cf38284612616565b905011612d0c575060800135621e848081116126f65750565b612d1591612616565b905063cd6f4e6d60e01b600052600452610b4060245260446000fd5b90816020910312610aca57518015158103610aca5790565b6040516311f9fbc960e21b81526001600160a01b039283166004820152602481019390935260209183916044918391600091165af160009181612d92575b506123c05750600090565b612db591925060203d602011612dbc575b612dad81836120ec565b810190612d31565b9038612d87565b503d612da3565b511561269457565b6040805163fc5fecd560e01b8152600481019390935290829060249082906001600160a01b03165afa908115612e5557600090600092612e11575b50816123c091612e86565b9150506040813d604011612e4d575b81612e2d604093836120ec565b81010312610aca576123c06020612e4383612757565b9201519190612e06565b3d9150612e20565b6040513d6000823e3d90fd5b90602082820312610aca5781516001600160401b038111610aca576123c0920161276b565b612e9282303384612ecd565b15612eaa57612ea18282612f9a565b15612c7f575050565b633338088960e11b60005260018060a01b03166004523060245260445260646000fd5b6040516323b872dd60e01b81526001600160a01b03928316600482015292821660248401526044830193909352909160209183916064918391600091165af160009181612d9257506123c05750600090565b60018060a01b031660008051602061303c8339815191528114918215612f59575b5050612f4857565b63416aebb560e11b60005260046000fd5b6001600160a01b03161490503880612f40565b60ff6000805160206130dc8339815191525460401c1615612f8957565b631afcd79f60e31b60005260046000fd5b604051630852cd8d60e31b81526004810192909252602090829060249082906000906001600160a01b03165af160009181612d9257506123c05750600090565b906130005750805115612fef57805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580613032575b613011575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b1561300956fe000000000000000000000000735b14bb79463307aacbed86daf3322b1e6226ab360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220dcfd9538ada3c73069acb60b3e0be5cfe0a45f6b61d299719994330d7b9593bc64736f6c634300081a003360c03461010057601f610b3a38819003918201601f19168301916001600160401b0383118484101761010557808492606094604052833981010312610100576100478161011b565b9061006060406100596020840161011b565b920161011b565b9173735b14bb79463307aacbed86daf3322b1e6226ab33036100ef57600380546001600160a01b0319166001600160a01b039290921691909117905560805260a0526040517f80699e81136d69cb8367ad52a994e25c722a86da654b561d0c14b61a777e7ac5600080a1610a0a9081610130823960805181818161018a015261065d015260a051816106d70152f35b632b2add3d60e01b60005260046000fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036101005756fe608080604052600436101561001357600080fd5b600090813560e01c9081630be1554714610817575080631f0e251b146107915780633ce4a5bc14610762578063513a9c051461072f578063569541b914610706578063842da36d146106c157806391dd645f146105f057806397770dff1461054c578063a7cb0507146104da578063c39aca3714610263578063c62178ac1461023a578063c63585cc146101e2578063d7fd7afb146101b9578063d936a012146101745763ee2815ba146100c657600080fd5b34610171576040366003190112610171576004356100e2610864565b9073735b14bb79463307aacbed86daf3322b1e6226ab33036101625780835260016020908152604080852080546001600160a01b0319166001600160a01b0390951694851790558051928352908201929092527fd1b36d30f6248e97c473b4d1348ca164a4ef6759022f54a58ec200326c39c45d91819081015b0390a180f35b632b2add3d60e01b8352600483fd5b80fd5b50346101715780600319360112610171576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461017157602036600319011261017157604060209160043581528083522054604051908152f35b5034610171576060366003190112610171576101fc610849565b610204610864565b604435929091906001600160a01b03841684036101715760206102288585856108d3565b6040516001600160a01b039091168152f35b50346101715780600319360112610171576004546040516001600160a01b039091168152602090f35b50346101715760a0366003190112610171576004359067ffffffffffffffff82116101715781360360606003198201126104d65761029f610864565b92604435906064356001600160a01b038116908190036104d25760843567ffffffffffffffff81116104ce57366023820112156104ce5780600401359367ffffffffffffffff85116104615736602486840101116104615773735b14bb79463307aacbed86daf3322b1e6226ab33036104bf5773735b14bb79463307aacbed86daf3322b1e6226ab831480156104b6575b6104a7576040516311f9fbc960e21b815260048101849052602481018290529697959688966001600160a01b0316906020816044818b865af1801561049c57610465575b50833b156104615760405197636f218ab760e11b8952608060048a01528560040135906022190181121561045d57850160246004820135910167ffffffffffffffff8211610459578136038113610459576103da91606060848c015260e48b01916108b2565b60248601356001600160a01b038116919082900361045957889760248b98968a968a989660448a9861042d9860a48b0152013560c4890152838801526044870152600319868503016064870152016108b2565b03925af1801561044c5761043e5780f35b6104479161087a565b388180f35b50604051903d90823e3d90fd5b8880fd5b8780fd5b8680fd5b6020813d602011610494575b8161047e6020938361087a565b8101031261045d57518015158114610374578780fd5b3d9150610471565b6040513d8a823e3d90fd5b63416aebb560e11b8752600487fd5b50308314610330565b632b2add3d60e01b8752600487fd5b8580fd5b8480fd5b5080fd5b50346101715760403660031901126101715760043560243573735b14bb79463307aacbed86daf3322b1e6226ab330361016257816040917f49f492222906ac486c3c1401fa545626df1f0c0e5a77a05597ea2ed66af9850d93855284602052808386205582519182526020820152a180f35b503461017157602036600319011261017157610566610849565b73735b14bb79463307aacbed86daf3322b1e6226ab33036105e1576001600160a01b031680156105d2576020817fdba79d534382d1a8ae108e4c8ecb27c6ae42ab8b91d44eedf88bd329f3868d5e926001600160601b0360a01b6003541617600355604051908152a180f35b63d92e233d60e01b8252600482fd5b632b2add3d60e01b8252600482fd5b50346101715760403660031901126101715760043561060d610864565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610162576003547f0ecec485166da6139b13bb7e033e9446e2d35348e80ebf1180d4afe2dba1704e9291610681916001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006108d3565b81845260026020908152604080862080546001600160a01b0319166001600160a01b0390941693841790558051938452908301919091528190810161015c565b50346101715780600319360112610171576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101715780600319360112610171576003546040516001600160a01b039091168152602090f35b503461017157602036600319011261017157602090600435815260028252604060018060a01b0391205416604051908152f35b5034610171578060031936011261017157602060405173735b14bb79463307aacbed86daf3322b1e6226ab8152f35b5034610171576020366003190112610171576107ab610849565b73735b14bb79463307aacbed86daf3322b1e6226ab33036105e1576001600160a01b031680156105d2576020817f3ade88e3922d64780e1bf4460d364c2970b69da813f9c0c07a1c187b5647636c926001600160601b0360a01b6004541617600455604051908152a180f35b9050346104d65760203660031901126104d6576004358252600160209081526040909220546001600160a01b03168152f35b600435906001600160a01b038216820361085f57565b600080fd5b602435906001600160a01b038216820361085f57565b90601f8019910116810190811067ffffffffffffffff82111761089c57604052565b634e487b7160e01b600052604160045260246000fd5b908060209392818452848401376000828201840152601f01601f1916010190565b91906001600160a01b038083169082168082146109c35710156109be57905b6001600160a01b038216156109ad576040519060208201926001600160601b03199060601b1683526001600160601b03199060601b1660348201526028815261093c60488261087a565b5190209060405191602083019160ff60f81b83526001600160601b03199060601b16602184015260358301527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f60558301526055825261099d60758361087a565b905190206001600160a01b031690565b633c5a83ed60e11b60005260046000fd5b6108f2565b63658f3e7f60e11b60005260046000fdfea2646970667358221220731883ff6e0ceb2606a746c8c954b8de749575b0c5816517e955a814399784bd64736f6c634300081a003360806040523461011457610014600054610119565b601f81116100cb575b507f577261707065642045746865720000000000000000000000000000000000001a60005560015461004e90610119565b601f8111610081575b6008630ae8aa8960e31b016001556002805460ff1916601217905560405161073190816101548239f35b6001600052601f0160051c7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6908101905b8181106100bf5750610057565b600081556001016100b2565b60008052601f0160051c7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563908101905b818110610108575061001d565b600081556001016100fb565b600080fd5b90600182811c92168015610149575b602083101461013357565b634e487b7160e01b600052602260045260246000fd5b91607f169161012856fe60806040526004361015610023575b361561001957600080fd5b6100216106b2565b005b60003560e01c806306fdde0314610423578063095ea7b3146103a957806318160ddd1461038d57806323b872dd1461035e5780632e1a7d4d146102b9578063313ce5671461029857806370a082311461025e57806395d89b411461013d578063a9059cbb1461010b578063d0e30db0146100f75763dd62ed3e0361000e57346100f25760403660031901126100f2576100ba610526565b6100c261053c565b6001600160a01b039182166000908152600460209081526040808320949093168252928352819020549051908152f35b600080fd5b60003660031901126100f2576100216106b2565b346100f25760403660031901126100f2576020610133610129610526565b60243590336105a8565b6040519015158152f35b346100f25760003660031901126100f2576000604051816001548060011c90600181168015610254575b6020831081146102405782855290811561022457506001146101d0575b50819003601f01601f1916810167ffffffffffffffff8111828210176101bc576101b89250604052604051918291826104dd565b0390f35b634e487b7160e01b83526041600452602483fd5b600184529050827fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b82821061020e57506020915082010183610184565b60018160209254838588010152019101906101f9565b90506020925060ff191682840152151560051b82010183610184565b634e487b7160e01b86526022600452602486fd5b91607f1691610167565b346100f25760203660031901126100f2576001600160a01b0361027f610526565b1660005260036020526020604060002054604051908152f35b346100f25760003660031901126100f257602060ff60025416604051908152f35b346100f25760203660031901126100f2576004353360005260036020526102e7816040600020541015610552565b3360005260036020526040600020610300828254610578565b90558060008115610355575b600080809381933390f115610349576040519081527f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b6560203392a2005b6040513d6000823e3d90fd5b506108fc61030c565b346100f25760603660031901126100f257602061013361037c610526565b61038461053c565b604435916105a8565b346100f25760003660031901126100f257602047604051908152f35b346100f25760403660031901126100f2576103c2610526565b3360008181526004602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b346100f25760003660031901126100f25760006040518182548060011c906001811680156104d3575b60208310811461024057828552908115610224575060011461049c5750819003601f01601f1916810167ffffffffffffffff8111828210176101bc576101b89250604052604051918291826104dd565b90508280526020832083905b8282106104bd57506020915082010183610184565b60018160209254838588010152019101906104a8565b91607f169161044c565b91909160208152825180602083015260005b818110610510575060409293506000838284010152601f8019910116010190565b80602080928701015160408286010152016104ef565b600435906001600160a01b03821682036100f257565b602435906001600160a01b03821682036100f257565b1561055957565b60405162461bcd60e51b81526020600482015260006024820152604490fd5b9190820391821161058557565b634e487b7160e01b600052601160045260246000fd5b9190820180921161058557565b60207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9160018060a01b03169283600052600382526105ee856040600020541015610552565b3384141580610691575b610646575b83600052600382526040600020610615868254610578565b905560018060a01b0316938460005260038252604060002061063882825461059b565b9055604051908152a3600190565b6000848152600483526040808220338352845290205461066890861115610552565b600084815260048352604080822033835284529020805461068a908790610578565b90556105fd565b506000848152600483526040808220338352845290205460001914156105f8565b33600052600360205260406000206106cb34825461059b565b90556040513481527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a256fea26469706673582212209e220afc3d58f06e9fcfb74d0eadc71ef1ec14a29eb328f69f1935849690effe64736f6c634300081a003360808060405234602f57600160ff19600c541617600c55600160ff19601f541617601f556192a490816100358239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c8062173d46146102465780631ed7831c146102415780632558fcec1461023c5780632ade38801461023757806332030cef14610232578063347f3a7c1461022d5780633e5e3c23146102285780633f7286f41461022357806366d9a9a01461021e578063735de9f7146102195780638016f22b146102145780638327f7901461020f57806385226c811461020a5780638c52853c14610205578063916a17c614610200578063944a3ba4146101fb578063acfdc212146101f6578063ad82a627146101f1578063b0464fdc146101ec578063b184b87c146101e7578063b1c388b8146101e2578063b5508aa9146101dd578063b8969900146101d8578063ba414fa6146101d3578063bea9849e146101ce578063cc5ad8b6146101c9578063ced6e793146101c4578063d333abf6146101bf578063d7b3eeaf146101ba578063e20c9f71146101b5578063ebcff1c6146101b0578063f51a071d146101ab578063f59e8a67146101a6578063f9a41697146101a15763fa7626d41461019c57600080fd5b6116ef565b6116b5565b61165c565b6115ec565b6112b0565b611230565b611217565b6111e3565b61117e565b611151565b611112565b6110ed565b6110ae565b611021565b611004565b610f68565b610ebc565b610e35565b610d99565b610d06565b610c5a565b610b95565b610b08565b610a33565b6108a8565b61087f565b6107d3565b610695565b610615565b6105c2565b610586565b6104a9565b610365565b6102d5565b61025b565b600091031261025657565b600080fd5b34610256576000366003190112610256576026546040516001600160a01b039091168152602090f35b906020808351928381520192019060005b8181106102a25750505090565b82516001600160a01b0316845260209384019390920191600101610295565b9060206102d2928181520190610284565b90565b346102565760003660031901126102565760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b818110610346576103428561033681870382610966565b604051918291826102c1565b0390f35b82546001600160a01b031684526020909301926001928301920161031f565b34610256576020366003190112610256576004356000526022602052602060018060a01b0360406000205416604051908152f35b60005b8381106103ac5750506000910152565b818101518382015260200161039c565b906020916103d581518092818552858086019101610399565b601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061041457505050505090565b9091929394603f198282030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b85010194019260005b82811061047e57505050505060208060019297019301930191939290610405565b909192939460208061049c600193605f1987820301895289516103bc565b970195019392910161045d565b3461025657600036600319011261025657601e546104c681611712565b906104d46040519283610966565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061051a576040518061034287826103e1565b6002602060019260405161052d8161090f565b848060a01b0386541681526105438587016117f3565b83820152815201920192019190610505565b6001600160a01b0381160361025657565b6064359061057382610555565b565b9060206102d29281815201906103bc565b34610256576020366003190112610256576103426105ae6004356105a981610555565b61184b565b6040519182916020835260208301906103bc565b34610256576040366003190112610256576106136024356004356105e582610555565b600052602260205260406000209060018060a01b03166bffffffffffffffffffffffff60a01b825416179055565b005b346102565760003660031901126102565760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b818110610676576103428561033681870382610966565b82546001600160a01b031684526020909301926001928301920161065f565b346102565760003660031901126102565760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b8181106106f6576103428561033681870382610966565b82546001600160a01b03168452602090930192600192830192016106df565b906020808351928381520192019060005b8181106107335750505090565b82516001600160e01b031916845260209384019390920191600101610726565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061078657505050505090565b90919293946020806107c4600193603f19868203018752895190836107b483516040845260408401906103bc565b9201519084818403910152610715565b97019301930191939290610777565b3461025657600036600319011261025657601b546107f081611712565b906107fe6040519283610966565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b83831061084457604051806103428782610753565b600260206001926040516108578161090f565b61086086611729565b815261086d858701611883565b8382015281520192019201919061082f565b34610256576000366003190112610256576025546040516001600160a01b039091168152602090f35b34610256576040366003190112610256576106136024356004356108cb82610555565b600090815260216020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761092a57604052565b6108f9565b61010081019081106001600160401b0382111761092a57604052565b606081019081106001600160401b0382111761092a57604052565b90601f801991011681019081106001600160401b0382111761092a57604052565b60405190610573602083610966565b60405190610573606083610966565b60405190610573608083610966565b6040519061057360c083610966565b6001600160401b03811161092a57601f01601f191660200190565b81601f82011215610256578035906109f5826109c3565b92610a036040519485610966565b8284526020838301011161025657816000926020809301838601378301015290565b908160a09103126102565790565b346102565760a036600319011261025657600435610a5081610555565b6024356001600160401b03811161025657610a6f9036906004016109de565b90606435604435610a7f82610555565b608435936001600160401b03851161025657610aa2610613953690600401610a25565b93611f79565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610adb57505050505090565b9091929394602080610af9600193603f1986820301875289516103bc565b97019301930191939290610acc565b3461025657600036600319011261025657601a54610b2581611712565b90610b336040519283610966565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310610b7857604051806103428782610aa8565b600160208192610b8785611729565b815201920192019190610b63565b34610256576040366003190112610256576020602435600435610bb782610555565b60009081526023835260408082206001600160a01b03938416835260205290205b5416604051908152f35b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610c1557505050505090565b9091929394602080610c4b600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610715565b97019301930191939290610c06565b3461025657600036600319011261025657601d54610c7781611712565b90610c856040519283610966565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b838310610ccb57604051806103428782610be2565b60026020600192604051610cde8161090f565b848060a01b038654168152610cf4858701611883565b83820152815201920192019190610cb6565b3461025657602036600319011261025657600435610d2381610555565b601f8054610100600160a81b03191660089290921b610100600160a81b0316919091179055005b9181601f84011215610256578235916001600160401b038311610256576020838186019501011161025657565b60409060a31901126102565760a490565b604090608319011261025657608490565b346102565761010036600319011261025657600435610db781610555565b6024356001600160401b03811161025657610dd69036906004016109de565b90604435610de2610566565b6084356001600160401b03811161025657610e01903690600401610d4a565b91610e0b36610d77565b9360e435966001600160401b03881161025657610e2f610613983690600401610a25565b96612b04565b346102565760e036600319011261025657602435600435610e5582610555565b604435610e6181610555565b60643590608435610e7181610555565b60a4356001600160401b03811161025657610e90903690600401610d4a565b93909260c435966001600160401b03881161025657610eb6610613983690600401610a25565b96613476565b3461025657600036600319011261025657601c54610ed981611712565b90610ee76040519283610966565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b838310610f2d57604051806103428782610be2565b60026020600192604051610f408161090f565b848060a01b038654168152610f56858701611883565b83820152815201920192019190610f18565b346102565760e036600319011261025657600435610f8581610555565b6024356001600160401b03811161025657610fa49036906004016109de565b90604435610fb181610555565b6064356001600160401b03811161025657610fd0903690600401610d4a565b90610fda36610d88565b9260c435956001600160401b03871161025657610ffe610613973690600401610a25565b956138d4565b346102565760003660031901126102565760208054604051908152f35b346102565760003660031901126102565760195461103e81611712565b9061104c6040519283610966565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b83831061109157604051806103428782610aa8565b6001602081926110a085611729565b81520192019201919061107c565b34610256576020366003190112610256576004356110cb81610555565b602680546001600160a01b0319166001600160a01b0392909216919091179055005b34610256576000366003190112610256576020611108613d3b565b6040519015158152f35b346102565760203660031901126102565760043561112f81610555565b602580546001600160a01b0319166001600160a01b0392909216919091179055005b3461025657600036600319011261025657601f5460405160089190911c6001600160a01b03168152602090f35b346102565760c03660031901126102565760243560043561119e82610555565b6044356111aa81610555565b606435608435916111ba83610555565b60a435946001600160401b038611610256576111dd610613963690600401610a25565b94613e3f565b34610256576020366003190112610256576004356000526021602052602060018060a01b0360406000205416604051908152f35b3461025657602036600319011261025657600435602055005b346102565760003660031901126102565760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b818110611291576103428561033681870382610966565b82546001600160a01b031684526020909301926001928301920161127a565b346102565760a0366003190112610256576004356024356112d081610555565b604435916112dd83610555565b6064356001600160401b038111610256576112fc903690600401610d4a565b6084356001600160401b0381116102565761131b903690600401610a25565b601f549095906004906020906113449060081c6001600160a01b03165b6001600160a01b031690565b6040516313917f7760e11b815292839182905afa90811561151d576000916115bd575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d576115a8575b50601f546113d79060081c6001600160a01b0316611338565b604051606087901b6001600160601b03191660208201529261140684603481015b03601f198101865285610966565b61140e610996565b9384526001600160a01b038716602085015285604085015261144a61143d876000526022602052604060002090565b546001600160a01b031690565b90823b156102565760009461147786926040519889978896879563bcf7f32b60e01b875260048701614072565b03926216e360f1908161158d575b5061152257611492611d28565b60205460405163348051d760e11b8152600481019190915290919060008160248160008051602061924f8339815191525afa801561151d57610613956114ef6114ea866040946114f5966000916114fa575b5061413d565b6141c7565b016141bd565b616213565b61151791503d806000833e61150f8183610966565b810190611b3b565b386114e4565b611afa565b505060205460405163348051d760e11b81526004810191909152905060008160248160008051602061924f8339815191525afa90811561151d57610613916114ea91600091611572575b506140b9565b61158791503d806000833e61150f8183610966565b3861156c565b8061159c60006115a293610966565b8061024b565b38611485565b8061159c60006115b793610966565b386113be565b6115df915060203d6020116115e5575b6115d78183610966565b810190611c26565b38611367565b503d6115cd565b3461025657604036600319011261025657602060243560043561160e82610555565b60009081526024835260408082206001600160a01b0393841683526020529020610bd8565b6060906003190112610256576004359060243561164f81610555565b906044356102d281610555565b346102565761061361169661167036611633565b9291600052602360205260406000209060018060a01b0316600052602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b34610256576106136116966116c936611633565b9291600052602460205260406000209060018060a01b0316600052602052604060002090565b3461025657600036600319011261025657602060ff601f54166040519015158152f35b6001600160401b03811161092a5760051b60200190565b9060405191600081548060011c92600182169182156117e9575b6020851083146117d55784875286939260208501929181156117b85750600114611776575b505061057392500383610966565b611787919250600052602060002090565b906000915b8483106117a157506105739350013880611768565b80548284015286935060209092019160010161178c565b9150506105739491925060ff19168252151560051b013880611768565b634e487b7160e01b84526022600452602484fd5b93607f1693611743565b9081546117ff81611712565b9261180d6040519485610966565b818452602084019060005260206000206000915b83831061182e5750505050565b60016020819261183d85611729565b815201920192019190611821565b90813b6000611859826109c3565b6118666040519182610966565b828152611872836109c3565b602082019190601f1901368337943c565b604051815480825290929183906118a36020830191600052602060002090565b926000905b8060078301106119eb576105739454918181106119cc575b8181106119ad575b81811061198e575b81811061196f575b818110611950575b818110611931575b818110611913575b106118fe575b500383610966565b6001600160e01b0319168152602001386118f6565b602083811b6001600160e01b031916855290936001910193016118f0565b604083901b6001600160e01b03191684529260019060200193016118e8565b606083901b6001600160e01b03191684529260019060200193016118e0565b608083901b6001600160e01b03191684529260019060200193016118d8565b60a083901b6001600160e01b03191684529260019060200193016118d0565b60c083901b6001600160e01b03191684529260019060200193016118c8565b6001600160e01b031960e084901b1684529260019060200193016118c0565b916008919350610100600191611a9a8754611a11838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b0194019201859293916118a8565b60405190611ab58261092f565b606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b90816020910312610256575190565b6040513d6000823e3d90fd5b90929192611b13816109c3565b91611b216040519384610966565b829482845282820111610256576020610573930190610399565b602081830312610256578051906001600160401b03821161025657019080601f830112156102565781516102d292602001611b06565b90610573601b602960405180956802db1b430b4b724b2160bd1b6020830152611ba38151809260208686019101610399565b81017f5d205b4552524f525d2047617465776179206e6f7420666f756e640000000000838201520301600419810185520183610966565b9060208251920151916bffffffffffffffffffffffff1983169260148210611c00575050565b6001600160601b031960149290920360031b82901b16169150565b519061057382610555565b9081602091031261025657516102d281610555565b90610573601b602960405180956802db1b430b4b724b2160bd1b6020830152611c6d8151809260208686019101610399565b81017f5d205b4552524f525d20437573746f6479206e6f7420666f756e640000000000838201520301600419810185520183610966565b906105736033602960405180956802db1b430b4b724b2160bd1b6020830152611cd68151809260208686019101610399565b81017f5d205b494e464f5d2045524332302f5a45544120776974686472617720636f6d8382015272706c65746564207375636365737366756c6c7960681b604982015203016013810185520183610966565b3d15611d53573d90611d39826109c3565b91611d476040519384610966565b82523d6000602084013e565b606090565b60266105739193929360296040519586926802db1b430b4b724b2160bd1b6020850152611d8e8151809260208688019101610399565b83017f5d205b4552524f525d2045524332302f5a4554412077697468647261772066618382015265034b632b21d160d51b6049820152611dd8825180936020604f85019101610399565b01010301601f198101845283610966565b8015150361025657565b91909160a081840312610256576040519060a082018281106001600160401b0382111761092a5760405281938135611e2a81610555565b83526020820135611e3a81611de9565b60208401526040820135611e4d81610555565b60408401526060820135916001600160401b03831161025657611e7660809392849383016109de565b60608501520135910152565b906105736023602960405180956802db1b430b4b724b2160bd1b6020830152611eb48151809260208686019101610399565b81017f5d205b4552524f525d2047617320746f6b656e207472616e736665722066616983820152621b195960ea1b604982015203016003810185520183610966565b906105736032602960405180956802db1b430b4b724b2160bd1b6020830152611f288151809260208686019101610399565b81017f5d205b494e464f5d2047617320746f6b656e207472616e7366657220636f6d7083820152716c65746564207375636365737366756c6c7960701b604982015203016012810185520183610966565b9293919093611f86611aa8565b60405163085e1f4d60e41b81529095906001600160a01b03831690602081600481855afa90811561151d57611fd59161143d91600091612657575b50808a526000526021602052604060002090565b6001600160a01b0390811660208901818152929190611ff390611338565b16156125df5761203761203161204f9261201e61133861143d8d516000526022602052604060002090565b1460408b0190815294611bda565b611bda565b60601c90565b6001600160a01b031660608901908152925b51151590565b1561223f57516004919060209061206e906001600160a01b0316611338565b604051635b11259160e01b815293849182905afa91821561151d5760009261221e575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af191821561151d57600080866121068295839561211f9861220a575b50516001600160a01b031690565b5af1612110611d28565b50151560c08701908152612049565b15612190575050915160405163348051d760e11b815260048101919091529150600090508160248160008051602061924f8339815191525afa90811561151d57610573916114ea91600091612175575b50611ef6565b61218a91503d806000833e61150f8183610966565b3861216f565b845160405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa95861561151d576121e16114ea610573986121ea946000916121ef575b50611e82565b51933690611df3565b614ddf565b61220491503d806000833e61150f8183610966565b386121db565b8061159c8661221893610966565b386120f8565b61223891925060203d6020116115e5576115d78183610966565b9038612091565b80516004919060209061225a906001600160a01b0316611338565b60405163dda79b7560e01b815293849182905afa91821561151d576000926125be575b506001600160a01b03919091166080880181815291906122ad906122a090611338565b1560a08a01908152612049565b6125465751600491906020906122cb906001600160a01b0316611338565b604051635b11259160e01b815293849182905afa91821561151d57600092612525575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af191821561151d576113386123629261133892612370956125165750516001600160a01b031690565b91516001600160a01b031690565b6123a361143d8461238c8a516000526024602052604060002090565b9060018060a01b0316600052602052604060002090565b90823b1561025657604051636ce5768960e11b81526001600160a01b0391821660048201529116602482015260448101849052906000908290606490829084905af19081612501575b5061247f5761242e946123fd611d28565b90600060c08201528160e0820152600081516040518099819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d576114ea6121ea936121e1926105739a600091612464575b50611d58565b61247991503d806000833e61150f8183610966565b3861245e565b5050505060008161249660c06124b6940160019052565b516040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea916000916124e6575b50611ca4565b6124fb91503d806000833e61150f8183610966565b386124e0565b8061159c600061251093610966565b386123ec565b8061159c600061221893610966565b61253f91925060203d6020116115e5576115d78183610966565b90386122ee565b50505050505050600061257391516040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea916000916125a3575b50611c3b565b6125b891503d806000833e61150f8183610966565b3861259d565b6125d891925060203d6020116115e5576115d78183610966565b903861227d565b50505050505050600061260c91516040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea9160009161263c575b50611b71565b61265191503d806000833e61150f8183610966565b38612636565b612679915060203d60201161267f575b6126718183610966565b810190611aeb565b38611fc1565b503d612667565b6040519061014082018281106001600160401b0382111761092a5760405260606101208360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201528260e082015260006101008201520152565b356102d281611de9565b908060209392818452848401376000828201840152601f01601f1916010190565b90516001600160a01b039081168252918216602082015291166040820152606081019190915260a0608082018190526102d2939101916126f3565b90610573603c602960405180956802db1b430b4b724b2160bd1b60208301526127818151809260208686019101610399565b81017f5d205b494e464f5d2045524332302f5a45544120776974686472617720616e64838201527f2063616c6c20636f6d706c65746564207375636365737366756c6c790000000060498201520301601c810185520183610966565b602f6105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526128138151809260208688019101610399565b83017f5d205b4552524f525d2045524332302f5a45544120776974686472617720616e838201526e0321031b0b636103330b4b632b21d1608d1b6049820152611dd8825180936020605885019101610399565b906004116102565790600490565b356001600160e01b031981169291906004821061288f575050565b6001600160e01b031960049290920360031b82901b16169150565b90610573605a60405180947f526563656976657220636f6e747261637420646f6573206e6f7420636f6e746160208301527f696e2066756e6374696f6e20776974682073656c6563746f722000000000000060408301526129148151809260208686019101610399565b81010301601f198101845283610966565b600a6105739193929360296040519586926802db1b430b4b724b2160bd1b602085015261295b8151809260208688019101610399565b83016902e902da2a92927a92e960b51b83820152611dd8825180936020603385019101610399565b9080601f830112156102565781516102d292602001611b06565b906020828203126102565781516001600160401b038111610256576102d29201612983565b90516001600160a01b03908116825290911660208201526060604082018190526102d2939101916126f3565b90610573603b602960405180956802db1b430b4b724b2160bd1b6020830152612a208151809260208686019101610399565b81017f5d205b494e464f5d2047617320746f6b656e207472616e7366657220616e6420838201527f63616c6c20636f6d706c65746564207375636365737366756c6c79000000000060498201520301601b810185520183610966565b602e6105739193929360296040519586926802db1b430b4b724b2160bd1b6020850152612ab28151809260208688019101610399565b83017f5d205b4552524f525d2047617320746f6b656e207472616e7366657220616e64838201526d01031b0b636103330b4b632b21d160951b6049820152611dd8825180936020605785019101610399565b95969491939096612b13612686565b60405163085e1f4d60e41b815290986001600160a01b03861691602081600481865afa90811561151d57612b619161143d916000916132d0575b50808d526000526021602052604060002090565b6001600160a01b0390811660208c01818152939190612b7f90611338565b16156132a057612bba6120318c949361202c6040612bd095612bb261133861143d8b516000526022602052604060002090565b149701968752565b6001600160a01b031660608c0190815292612049565b15612f8957612be1602084016126e9565b612e34575b805160049493929190602090612c04906001600160a01b0316611338565b604051635b11259160e01b815296879182905afa94851561151d57600095612e13575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039590951660048601526000856024818360008051602061924f8339815191525af194851561151d576113388992612c9892600098612e055750516001600160a01b031690565b923592612cc1612ca6610987565b6001600160a01b038d168152935b516001600160a01b031690565b92612ce2604051988997889687946338e2252760e01b8652600486016129c2565b0393f19081612de4575b50612d8157612d3094612cfd611d28565b90600061010082015281610120820152600081516040518099819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d576114ea6121ea936121e1926105739a600091612d66575b50612a7c565b612d7b91503d806000833e61150f8183610966565b38612d60565b50505050600081612496610100612d99940160019052565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091612dc9575b506129ee565b612dde91503d806000833e61150f8183610966565b38612dc3565b612e00903d806000833e612df88183610966565b81019061299d565b612cec565b8061159c8a61221893610966565b612e2d91955060203d6020116115e5576115d78183610966565b9338612c27565b612e47612e418686612866565b90612874565b8251612e6e90612e6a908390612e65906001600160a01b031661184b565b61544d565b1590565b612e785750612be6565b9250505087925060009150612e9360c0612ebd990160019052565b604051631623433d60e31b81526001600160e01b0319909116600482015296879081906024820190565b038160008051602061924f8339815191525afa95861561151d57612f1896612eed91600091612f6e575b506128aa565b9060e08101918252600081516040518099819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d576114ea6121ea936121e1926105739a600092612f51575b505190612925565b612f679192503d806000833e61150f8183610966565b9038612f49565b612f8391503d806000833e61150f8183610966565b38612ee7565b80519194929160049190602090612fa8906001600160a01b0316611338565b60405163dda79b7560e01b815293849182905afa91821561151d5760009261327f575b506001600160a01b039190911660808b018181529190612fff908c906120499060a090612ff790611338565b159201918252565b61324f57516004919060209061301d906001600160a01b0316611338565b604051635b11259160e01b815293849182905afa91821561151d5760009261322e575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af191821561151d576113386130b292611338928e956125165750516001600160a01b031690565b92868a6130c36020863596016126e9565b1561321a575061143d6131069161238c6130f460009a5b612cb46130e5610987565b6001600160a01b03909d168d52565b95516000526024602052604060002090565b93803b156102565788966131366000979388946040519a8b998a9889966356840c2960e11b885260048801612714565b0393f19081613205575b506131a25761315194612cfd611d28565b038160008051602061924f8339815191525afa801561151d576114ea6121ea936121e1926105739a600091613187575b506127dd565b61319c91503d806000833e61150f8183610966565b38613181565b505050506000816124966101006131ba940160019052565b038160008051602061924f8339815191525afa90811561151d57610573916114ea916000916131ea575b5061274f565b6131ff91503d806000833e61150f8183610966565b386131e4565b8061159c600061321493610966565b38613140565b6131069161238c6130f461143d939a6130da565b61324891925060203d6020116115e5576115d78183610966565b9038613040565b50505050505050505050600061257391516040518093819263348051d760e11b8352600483019190602083019252565b61329991925060203d6020116115e5576115d78183610966565b9038612fcb565b50505050505050505050600061260c91516040518093819263348051d760e11b8352600483019190602083019252565b6132e9915060203d60201161267f576126718183610966565b38612b4d565b60256105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526133258151809260208688019101610399565b83017f5d205b4552524f525d205a52433230206e6f7420666f756e6420666f722061738382015264039b2ba1d160dd1b6049820152611dd8825180936020604e85019101610399565b9060408061338584516060855260608501906103bc565b6020808601516001600160a01b03169085015293015191015290565b9194926133bb6102d297959260a0855260a085019061336e565b6001600160a01b0396871660208501526040840191909152941660608201528084036080909101526126f3565b90610573603a602960405180956802db1b430b4b724b2160bd1b602083015261341a8151809260208686019101610399565b81017f5d205b494e464f5d205a657461436861696e206465706f73697420616e642063838201527f616c6c20636f6d706c65746564207375636365737366756c6c7900000000000060498201520301601a810185520183610966565b95969491909661349761143d8661238c8a6000526023602052604060002090565b926001600160a01b038416156136b457601f546004906020906134c59060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091613695575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57613680575b50601f546135589060081c6001600160a01b0316611338565b6040516001600160601b031960608c901b166020820152601481529161357f603484610966565b613587610996565b9283526001600160a01b038b166020840152896040840152813b1561025657600087936135ce82968994604051998a988997889663c39aca3760e01b8852600488016133a1565b03926216e360f1908161366b575b506135f357610573956135ed611d28565b95615710565b50505050505061362060006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091613650575b506133e8565b61366591503d806000833e61150f8183610966565b3861364a565b8061159c600061367a93610966565b386135dc565b8061159c600061368f93610966565b3861353f565b6136ae915060203d6020116115e5576115d78183610966565b386134e8565b50505050509150506136e5915060006020546040518094819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d5760009261377a575b50604051632b65311f60e11b81526001600160a01b03909116600482015260008180602481015b038160008051602061924f8339815191525afa801561151d57610573926114ea9260009261375d575b506132ef565b6137739192503d806000833e61150f8183610966565b9038613757565b61372e9192506137956000913d8084833e61150f8183610966565b929150613707565b6040519060e082018281106001600160401b0382111761092a57604052606060c083600081526000602082015260006040820152600083820152826080820152600060a08201520152565b90610573602d602960405180956802db1b430b4b724b2160bd1b602083015261381a8151809260208686019101610399565b81017f5d205b494e464f5d2045564d20657865637574696f6e20636f6d706c65746564838201526c207375636365737366756c6c7960981b60498201520301600d810185520183610966565b60206105739193929360296040519586926802db1b430b4b724b2160bd1b8585015261389a81518092878688019101610399565b83017f5d205b4552524f525d2045564d20657865637574696f6e206661696c65643a2083820152611dd88251809387604985019101610399565b939194959290600460206138e661379d565b60405163085e1f4d60e41b815290989092839182906001600160a01b03165afa90811561151d576139319161143d91600091613d1c575b508089526000526021602052604060002090565b6001600160a01b039081166020880181815292919061394f90611338565b1615613ced5761203161396191611bda565b6001600160a01b031660408701908152602088019161397f836126e9565b613be3575b6004949596979860206139a0611338845160018060a01b031690565b604051635b11259160e01b815297889182905afa95861561151d57600096613bc2575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039690961660048701526000866024818360008051602061924f8339815191525af191821561151d57613a37611338613a3f926000998a96613bb45750516001600160a01b031690565b9135946126e9565b8214613baa57613a6582935b612cb4613a56610987565b6001600160a01b039096168652565b92613a86604051988997889687946338e2252760e01b8652600486016129c2565b0393f19081613b91575b50613b3157613ad292613aa1611d28565b90600060a08201528160c0820152600081516040518097819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d576114ea613b1193613b089261057398600091613b16575b50613866565b51913690611df3565b6146df565b613b2b91503d806000833e61150f8183610966565b38613b02565b505060008161249660a0613b46940160019052565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091613b76575b506137e8565b613b8b91503d806000833e61150f8183610966565b38613b70565b613ba5903d806000833e612df88183610966565b613a90565b613a658993613a4b565b8061159c8861221893610966565b613bdc91965060203d6020116115e5576115d78183610966565b94386139c3565b613bf0612e418686612866565b98613c0b612e6a8b612e656105a9875160018060a01b031690565b613c16579850613984565b50505050505090916000613c5b94613c316060840160019052565b604051631623433d60e31b81526001600160e01b0319909116600482015294859081906024820190565b038160008051602061924f8339815191525afa93841561151d57613cb594613c8a91600091612f6e57506128aa565b9060808101918252600081516040518097819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d576114ea613b1193613b089261057398600092612f5157505190612925565b5050935160405163348051d760e11b81526004810191909152945060009350849250829150506024810161260c565b613d35915060203d60201161267f576126718183610966565b3861391d565b60085460ff168015613d4a5790565b50604051630667f9d760e41b815260008051602061924f833981519152600482018190526519985a5b195960d21b6024830152602090829060449082905afa90811561151d57600091613d9e575b50151590565b613db7915060203d60201161267f576126718183610966565b38613d98565b906105736031602960405180956802db1b430b4b724b2160bd1b6020830152613def8151809260208686019101610399565b81017f5d205b494e464f5d205a657461436861696e206465706f73697420636f6d706c838201527065746564207375636365737366756c6c7960781b604982015203016011810185520183610966565b939194929094613e6061143d8461238c886000526023602052604060002090565b906001600160a01b0382161561404257601f54600490602090613e8e9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091614023575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d5761400e575b50601f54613f219060081c6001600160a01b0316611338565b803b1561025657604051633d14d1b760e21b81526001600160a01b038481166004830152602482018690529290921660448301526000908290606490829084905af19081613ff9575b50613f815761057395613f7b611d28565b95615db5565b505050505050613fae60006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091613fde575b50613dbd565b613ff391503d806000833e61150f8183610966565b38613fd8565b8061159c600061400893610966565b38613f6a565b8061159c600061401d93610966565b38613f08565b61403c915060203d6020116115e5576115d78183610966565b38613eb1565b505060205460405163348051d760e11b8152600481019190915294509092506000915083905080602481016136e5565b909261408d6102d2969495939560a0845260a084019061336e565b6001600160a01b03958616602084015260006040840152941660608201528084036080909101526126f3565b906105736033602960405180956802db1b430b4b724b2160bd1b60208301526140eb8151809260208686019101610399565b81017f5d205b494e464f5d205a657461436861696e20657865637574696f6e20636f6d8382015272706c65746564207375636365737366756c6c7960681b604982015203016013810185520183610966565b60266105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526141738151809260208688019101610399565b83017f5d205b4552524f525d205a657461436861696e20657865637574696f6e2066618382015265034b632b21d160d51b6049820152611dd8825180936020604f85019101610399565b356102d281610555565b6141f46142026105739260405192839163104c13eb60e21b602084015260206024840181815201906103bc565b03601f198101835282610966565b617fe7565b90610573601e602960405180956802db1b430b4b724b2160bd1b60208301526142398151809260208686019101610399565b81017f5d205b494e464f5d2063616c6c4f6e5265766572742069732066616c73650000838201520301600119810185520183610966565b90610573601f602960405180956802db1b430b4b724b2160bd1b60208301526142a28151809260208686019101610399565b81017f5d205b4552524f525d2072657665727441646472657373206973207a65726f00838201520301600019810185520183610966565b90608060606102d29360018060a01b03815116845260018060a01b0360208201511660208501526040810151604085015201519181606082015201906103bc565b9060206102d29281815201906142d9565b600b90602d61057393959460296040519788946802db1b430b4b724b2160bd1b6020870152614363815180926020868a019101610399565b85017f5d205b494e464f5d20457865637574696e67206f6e526576657274206f6e2072838201526c032bb32b93a20b2323932b9b99609d1b60498201526143b4825180936020605685019101610399565b01016a0161031b7b73a32bc3a1d160ad1b83820152611dd8825180936020603885019101610399565b6001600160a01b039182168152602081019290925290911660408201526080606082018190526102d2929101906142d9565b6001600160a01b0390911681526040602082018190526102d2929101906142d9565b602081830312610256578051906001600160401b03821161025657019080601f830112156102565781519161446583611712565b926144736040519485610966565b80845260208085019160051b830101918383116102565760208101915b83831061449f57505050505090565b82516001600160401b038111610256578201906060828703601f19011261025657604051906144cd8261094b565b60208301516001600160401b0381116102565760209084010187601f82011215610256578051906144fd82611712565b9161450b6040519384610966565b80835260208084019160051b830101918a831161025657602001905b8282106145795750505082526040830151916001600160401b0383116102565761456960608561455f8b602080999881990101612983565b8685015201611c1b565b6040820152815201920191614490565b8151815260209182019101614527565b634e487b7160e01b600052603260045260246000fd5b8051156145ac5760200190565b614589565b8051600110156145ac5760400190565b8051600210156145ac5760600190565b80518210156145ac5760209160051b010190565b90610573601d602960405180956802db1b430b4b724b2160bd1b60208301526146178151809260208686019101610399565b81017f5d205b494e464f5d204576656e742066726f6d206f6e5265766572743a000000838201520301600219810185520183610966565b6040519061465d604083610966565b600a825269101032b6b4ba3a32b91d60b11b6020830152565b60405190614685604083610966565b600782526610103230ba309d60c91b6020830152565b604051906146aa604083610966565b60078252662020746f70696360c81b6020830152565b604051906146cf604083610966565b60018252601d60f91b6020830152565b9190606083019081516146f06109a5565b6001600160a01b03851681529060006020830152600060408301526060820152602085015115614d705760008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57614d5b575b5084516001600160a01b031615614cda5760405163348051d760e11b81526004810183905260008160248160008051602061924f8339815191525afa90811561151d57600091614cbf575b5085516147e7906000906001600160a01b03165b604051632b65311f60e11b81526001600160a01b03909116600482015291829081906024820190565b038160008051602061924f8339815191525afa801561151d5761483d91600091614ca4575b506000604051614823816141f4886020830161431a565b604051809481926371aad10d60e01b835260048301610575565b038160008051602061924f8339815191525afa90811561151d5761486d936114ea93600093614c87575b5061432b565b601f5460049060209061488b9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091614c68575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57614c53575b50601f5461491e9060081c6001600160a01b0316611338565b85519091906001600160a01b031690823b1561025657614958926000928360405180968195829463184b079360e01b84526004840161440f565b03926216e360f19081614c3e575b5061498c57600080614984604061057397015160018060a01b031690565b935193616ba4565b9150506040519163064554e960e21b83526000836004818360008051602061924f8339815191525af192831561151d57600093614c1b575b5060005b8351811015614c15576149ef60406149e083876145d1565b5101516001600160a01b031690565b6040830151614a06906001600160a01b0316611338565b6001600160a01b0390911614614a1f575b6001016149c8565b60405163348051d760e11b815260048101849052909491929060008160248160008051602061924f8339815191525afa90811561151d57614a6c916114ea91600091614bfc575b506145e5565b614a8060006147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d57614ab391600091614be3575b50614aae61464e565b618002565b614ae160006020614ac488886145d1565b510151604051809381926371aad10d60e01b835260048301610575565b038160008051602061924f8339815191525afa801561151d57614b0f91600091614bca575b50614aae614676565b60005b614b1c86866145d1565b515151811015614bc157806000614b41614b6193614b3a8a8a6145d1565b51516145d1565b5160405180948192631623433d60e31b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d57600192614ba291600091614ba8575b50614b9361469b565b83614b9c6146c0565b91618046565b01614b12565b614bbb913d8091833e61150f8183610966565b38614b8a565b50919093614a17565b614bdd913d8091833e61150f8183610966565b38614b06565b614bf6913d8091833e61150f8183610966565b38614aa5565b614c0f913d8091833e61150f8183610966565b38614a66565b50505050565b614c3791933d8091833e614c2f8183610966565b810190614431565b91386149c4565b8061159c6000614c4d93610966565b38614966565b8061159c6000614c6293610966565b38614905565b614c81915060203d6020116115e5576115d78183610966565b386148ae565b614c9d9193503d806000833e61150f8183610966565b9138614867565b614cb991503d806000833e61150f8183610966565b3861480c565b614cd491503d806000833e61150f8183610966565b386147aa565b5060205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa94851561151d57614984604060009392614d336114ea6105739a87968791614d41575b50614270565b01516001600160a01b031690565b614d5591503d8089833e61150f8183610966565b38614d2d565b8061159c6000614d6a93610966565b3861475f565b5060405163348051d760e11b81526004810182905260008160248160008051602061924f8339815191525afa94851561151d57614984604060009392614d336114ea6105739a87968791614dc5575b50614207565b614dd991503d8089833e61150f8183610966565b38614dbf565b93929060608501928351614df16109a5565b6001600160a01b0387168152906001600160a01b03841660208301528260408301526060820152614e256020880151151590565b156153bd5760008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d576153a8575b5086516001600160a01b03161561533e5760405163348051d760e11b81526004810185905260008160248160008051602061924f8339815191525afa90811561151d57600091615323575b508751614ed2906000906001600160a01b03166147be565b038160008051602061924f8339815191525afa801561151d57614f0d91600091614ca457506000604051614823816141f4886020830161431a565b038160008051602061924f8339815191525afa90811561151d57614f3c936114ea93600093614c87575061432b565b601f54600490602090614f5a9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091615304575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d576152ef575b506001600160a01b03831661524f57601f54614ffb9060081c6001600160a01b0316611338565b87519091906001600160a01b031690823b1561025657615035926000928360405180968195829463184b079360e01b84526004840161440f565b03926216e360f1908161523a575b50615062576040959095015161057395906001600160a01b0316614984565b50509150505b60405163064554e960e21b8152916000836004818360008051602061924f8339815191525af192831561151d5760009361521f575b5060005b8351811015614c15576150b960406149e083876145d1565b60408301516150d0906001600160a01b0316611338565b6001600160a01b03909116146150e9575b6001016150a1565b60405163348051d760e11b815260048101849052909491929060008160248160008051602061924f8339815191525afa90811561151d57615135916114ea91600091614bfc57506145e5565b61514960006147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d5761517691600091614be35750614aae61464e565b61518760006020614ac488886145d1565b038160008051602061924f8339815191525afa801561151d576151b491600091614bca5750614aae614676565b60005b6151c186866145d1565b51515181101561521657806000614b416151df93614b3a8a8a6145d1565b038160008051602061924f8339815191525afa91821561151d5760019261521091600091614ba85750614b9361469b565b016151b7565b509190936150e1565b61523391933d8091833e614c2f8183610966565b913861509d565b8061159c600061524993610966565b38615043565b601f546152679060081c6001600160a01b0316611338565b87519091906001600160a01b031690823b15610256576152a39260009283604051809681958294639d4ba46560e01b84528a8c600486016143dd565b03926216e360f190816152da575b506152d0576040959095015161057395906001600160a01b0316614984565b5050915050615068565b8061159c60006152e993610966565b386152b1565b8061159c60006152fe93610966565b38614fd4565b61531d915060203d6020116115e5576115d78183610966565b38614f7d565b61533891503d806000833e61150f8183610966565b38614eba565b5060205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d5761057397614d336114ea614984946040946000916153935750614270565b614d5591503d806000833e61150f8183610966565b8061159c60006153b793610966565b38614e6f565b5060405163348051d760e11b81526004810184905260008160248160008051602061924f8339815191525afa90811561151d5761057397614d336114ea6149849460409460009161540e5750614207565b614dd991503d806000833e61150f8183610966565b634e487b7160e01b600052601160045260246000fd5b906104b0820180921161544857565b615423565b919060005b600481018082116154485784511061549757602081850101516001600160e01b031983811691161461548f57600019811461544857600101615452565b506001925050565b506000925050565b604051906154ac8261092f565b600060e083606081528260208201528260408201528260608201528260808201528260a08201528260c08201520152565b604051906154ec604083610966565b600782526619195c1bdcda5d60ca1b6020830152565b60405190615511604083610966565b601082526f19195c1bdcda5d08185b990818d85b1b60821b6020830152565b600990601461057393959460296040519788946802db1b430b4b724b2160bd1b6020870152615568815180926020868a019101610399565b85017302e902da2a92927a92e902d32ba30a1b430b4b7160651b8382015261559a825180936020603d85019101610399565b0101680103330b4b632b21d160bd1b83820152611dd8825180936020601d85019101610399565b919082604091031261025657602082516155da81610555565b92015190565b9081602091031261025657516102d281611de9565b90610573603a602960405180956802db1b430b4b724b2160bd1b60208301526156278151809260208686019101610399565b81017f5d205b4552524f525d204661696c656420746f206d696e74205a524332302074838201527f6f6b656e7320666f722070726f746f636f6c206164647265737300000000000060498201520301601a810185520183610966565b9190820391821161544857565b90610573602f602960405180956802db1b430b4b724b2160bd1b60208301526156c28151809260208686019101610399565b81017f5d205b4552524f525d204661696c656420746f206275726e2072656d61696e69838201526e6e67205a5243323020746f6b656e7360881b60498201520301600f810185520183610966565b9094939195615751939661572261549f565b9161572b615502565b835260006020546040518098819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa95861561151d576114ea826157b99861578893600091615d9a575b50865190615530565b6040805163fc5fecd560e01b815260808901356004820152966001600160a01b038416939190889081906024820190565b0381865afa801561151d57600097600091615d65575b50604085019081526001600160a01b039097166020850190815296601f546004906020906158089060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091615d46575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03821660048201526000816024818360008051602061924f8339815191525af1801561151d57615d31575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018d905260208160448160008a5af190811561151d57600091615d12575b5015156060870190815260008051602061924f8339815191523b15610256576040516303223eab60e11b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af190811561151d5761592e92612e6a92615cfd575b5051151590565b615c805780519060a0860191825260c086019861594b8a60019052565b805161595f906001600160a01b0316611338565b8603615bf8575b505060008051602061924f8339815191523b15610256576040516390c5013b60e01b8152906000826004818360008051602061924f8339815191525af191821561151d576159bb92615be3575b50518b615683565b608085018181529a9015615bc4575050601f54600491506020906159ea9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091615ba5575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57600092602092615a9292615b91575b508a51604051948580948193630852cd8d60e31b8352600483019190602083019252565b03925af1801561151d57615abd92612e6a92600092615b59575b5060e0612049910191829015159052565b615ae157615adb615ad361057397519451151590565b943690611df3565b90618832565b505050505050615b0e60006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091615b3e575b50615690565b615b5391503d806000833e61150f8183610966565b38615b38565b612049919250615b8260e09160203d602011615b8a575b615b7a8183610966565b8101906155e0565b929150615aac565b503d615b70565b8061159c86615b9f93610966565b38615a6e565b615bbe915060203d6020116115e5576115d78183610966565b38615a0d565b9496509450956105739850615bde925060409150016141bd565b61788e565b8061159c6000615bf293610966565b386159b3565b60008a52516001600160a01b03169051601f54600490602090615c269060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa91821561151d57615c56938f92600094615c5f575b5086618362565b81523880615966565b615c7991945060203d6020116115e5576115d78183610966565b9238615c4f565b5050505050505050505050615cb260006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091615ce2575b506155f5565b615cf791503d806000833e61150f8183610966565b38615cdc565b8061159c6000615d0c93610966565b38615927565b615d2b915060203d602011615b8a57615b7a8183610966565b386158be565b8061159c6000615d4093610966565b38615880565b615d5f915060203d6020116115e5576115d78183610966565b3861582b565b9050615d8a91975060403d604011615d93575b615d828183610966565b8101906155c1565b969096386157cf565b503d615d78565b615daf91503d806000833e61150f8183610966565b3861577f565b90949391956157519396615dc761549f565b9161572b6154dd565b90610573601e602960405180956802db1b430b4b724b2160bd1b6020830152615e028151809260208686019101610399565b81017f5d205b4552524f525d2061626f727441646472657373206973207a65726f0000838201520301600119810185520183610966565b6007600461057392949394602f6040519687926e021b0b713ba103a3930b739b332b91608d1b6020850152615e778151809260208688019101610399565b83016301037b3160e51b83820152615e99825180936020603385019101610399565b01016620746f6b656e7360c81b838201520301601819810185520183610966565b600460129295946017610573956029604051998a966802db1b430b4b724b2160bd1b6020890152615ef4815180926020868c019101610399565b87017f5d205b4552524f525d205472616e7366657272696e672000000000000000000083820152615f2f825180936020604085019101610399565b01016301037b3160e51b83820152615f51825180936020601b85019101610399565b0101710103a37b5b2b739903a379039b2b73232b9160751b83820152611dd8825180936020601685019101610399565b602d6105739193929360296040519586926802db1b430b4b724b2160bd1b6020850152615fb78151809260208688019101610399565b83017f5d205b494e464f5d205472616e7366657272696e6720746f6b656e7320746f20838201526c030b137b93a20b2323932b9b99609d1b6049820152611dd8825180936020605685019101610399565b6102d29160a0616021835160c0845260c08401906103bc565b92600180831b036020820151166020840152604081015160408401526060810151151560608401526080810151608084015201519060a08184039101526103bc565b9060206102d2928181520190616008565b601d90601261057393959460296040519788946802db1b430b4b724b2160bd1b60208701526160ac815180926020868a019101610399565b85017102e902da4a72327ae9021b7b73a3930b1ba160751b838201526160dc825180936020603b85019101610399565b01017f20657865637574696e67206f6e41626f72742c20636f6e746578743a2000000083820152611dd8825180936020602f85019101610399565b6001600160a01b0390911681526040602082018190526102d292910190616008565b90610573601c602960405180956802db1b430b4b724b2160bd1b602083015261616b8151809260208686019101610399565b81017f5d205b494e464f5d204576656e742066726f6d206f6e41626f72743a00000000838201520301600319810185520183610966565b601a6105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526161d88151809260208688019101610399565b83017f5d205b4552524f525d206f6e41626f7274206661696c65643a2000000000000083820152611dd8825180936020604385019101610399565b6001600160a01b0381169360009390928515616a625760205460405163348051d760e11b81526004810191909152858160248160008051602061924f8339815191525afa90811561151d578691616a48575b50604051632b65311f60e11b81526001600160a01b038516600482015290868260248160008051602061924f8339815191525afa91821561151d5787926162b7926114ea928592616a2c575b50615f81565b616836575b604080516001600160a01b0390951660208601526162dd90859081016113f8565b6162e56109b4565b9384526001600160a01b0385166020850152604084018590528415156060850152608084015260a083015260205460405163348051d760e11b8152600481019190915283818060248101038160008051602061924f8339815191525afa90811561151d57849161681c575b50604051632b65311f60e11b81526001600160a01b0383166004820152848160248160008051602061924f8339815191525afa801561151d576163aa918691616802575b5085604051614823816141f48960208301616063565b038160008051602061924f8339815191525afa90811561151d576163d9936114ea9388936167e6575b50616074565b601f546004906020906163f79060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d5784916167c7575b5060008051602061924f8339815191523b156167975760405163ca669fa760e01b81526001600160a01b0391909116600482015283816024818360008051602061924f8339815191525af1801561151d576167b3575b5060008051602061924f8339815191523b156167af576040516320d797a960e11b815283816004818360008051602061924f8339815191525af1801561151d5761679b575b50601f546164cd9060081c6001600160a01b0316611338565b90813b15616797579183916164f99383604051809681958294632095dedb60e01b845260048401616117565b03925af19081616783575b50616583576165399150616516611d28565b816020546040518095819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d5761057393836114ea9492616568575b50506161a2565b61657c92503d8091833e61150f8183610966565b3880616561565b60405163064554e960e21b81529181836004818360008051602061924f8339815191525af192831561151d578293616767575b50815b8351811015614c1557816165d561133860406149e085896145d1565b146165e3575b6001016165b9565b60205460405163348051d760e11b81526004810191909152909490838160248160008051602061924f8339815191525afa90811561151d57616630916114ea91869161674d575b50616139565b616643836147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d5761666f9185916167395750614aae61464e565b61667f836020614ac488886145d1565b038160008051602061924f8339815191525afa801561151d576166ab9185916167255750614aae614676565b825b6166b786866145d1565b51515181101561671e578084614b416166d493614b3a8a8a6145d1565b038160008051602061924f8339815191525afa91821561151d5760019261670491879161670a5750614b9361469b565b016166ad565b614bbb91503d8089833e61150f8183610966565b50936165db565b614bdd91503d8087833e61150f8183610966565b614bf691503d8087833e61150f8183610966565b61676191503d8088833e61150f8183610966565b3861662a565b61677c9193503d8084833e614c2f8183610966565b91386165b6565b8061159c8461679193610966565b38616504565b8380fd5b8061159c856167a993610966565b386164b4565b8280fd5b8061159c856167c193610966565b3861646f565b6167e0915060203d6020116115e5576115d78183610966565b38616419565b6167fb9193503d808a833e61150f8183610966565b91386163d3565b61681691503d8088833e61150f8183610966565b38616394565b61683091503d8086833e61150f8183610966565b38616350565b601f546004906020906168549060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d578691616a0d575b5060008051602061924f8339815191523b156169d85760405163ca669fa760e01b81526001600160a01b038216600482015286816024818360008051602061924f8339815191525af1801561151d576169f9575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018790526020816044818a805af1801561151d576169dc575b5060008051602061924f8339815191523b156169d85760405163ca669fa760e01b81526001600160a01b0391909116600482015285816024818360008051602061924f8339815191525af1801561151d576169c4575b5060405163a9059cbb60e01b81526001600160a01b0384166004820152602481018690529360208560448189805af190811561151d576113f8956162dd926169a5575b509450506162bc565b6169bd9060203d602011615b8a57615b7a8183610966565b503861699c565b8061159c876169d293610966565b38616959565b8580fd5b6169f49060203d602011615b8a57615b7a8183610966565b616903565b8061159c88616a0793610966565b386168ca565b616a26915060203d6020116115e5576115d78183610966565b38616876565b616a419192503d8087833e61150f8183610966565b90386162b1565b616a5c91503d8088833e61150f8183610966565b38616265565b60205460405163348051d760e11b815260048101919091528590818160248160008051602061924f8339815191525afa90811561151d57616aae916114ea918491616b8a575b50615dd0565b5060405163348051d760e11b81526000600482018190528160248160008051602061924f8339815191525afa90811561151d57600091616b6f575b50604051632b65311f60e11b81526000600482018190528180602481015b038160008051602061924f8339815191525afa801561151d57616b4e92616b3692600092616b52575b50615e39565b60405162461bcd60e51b815291829160048301610575565b0390fd5b616b689192503d806000833e61150f8183610966565b9084616b30565b616b8491503d806000833e61150f8183610966565b81616ae9565b616b9e91503d8086833e61150f8183610966565b84616aa8565b6001600160a01b03811695949093909290919086156173e95760205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d576000916173ce575b50604051632b65311f60e11b81526001600160a01b038716600482015260008160248160008051602061924f8339815191525afa801561151d57616c4a926114ea926000926173b85750615f81565b6001600160a01b038116801515806173af575b6171ab575b50604080516001600160a01b039097166020880152616cae9190616c9390889081015b03601f198101895288610966565b616c9b6109b4565b9687526001600160a01b03166020870152565b604085015260016060850152608084015260a083015260205460405163348051d760e11b815260048101919091526000818060248101038160008051602061924f8339815191525afa90811561151d57600091617190575b50604051632b65311f60e11b81526001600160a01b038316600482015260008160248160008051602061924f8339815191525afa801561151d57616d6391600091617175575b506000604051614823816141f48960208301616063565b038160008051602061924f8339815191525afa90811561151d57616d92936114ea9360009361715f5750616074565b601f54600490602090616db09060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617140575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d5761712b575b5060008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57617116575b50601f54616e899060081c6001600160a01b0316611338565b91823b1561025657616eb59260009283604051809681958294632095dedb60e01b845260048401616117565b03925af19081617101575b50616f355750616ece611d28565b60205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa91821561151d57610573926114ea92600091616f1a575b506161a2565b616f2f91503d806000833e61150f8183610966565b38616f14565b60405163064554e960e21b8152906000826004818360008051602061924f8339815191525af191821561151d576000926170e6575b5060005b82518110156170e15781616f8a61133860406149e085886145d1565b14616f98575b600101616f6e565b60205460405163348051d760e11b8152600481019190915290939060008160248160008051602061924f8339815191525afa90811561151d57616fe6916114ea916000916170ce5750616139565b616ffa60006147be60406149e088886145d1565b038160008051602061924f8339815191525afa801561151d5761702791600091614be35750614aae61464e565b61703860006020614ac487876145d1565b038160008051602061924f8339815191525afa801561151d5761706591600091614bca5750614aae614676565b60005b61707285856145d1565b5151518110156170c757806000614b4161709093614b3a89896145d1565b038160008051602061924f8339815191525afa91821561151d576001926170c191600091614ba85750614b9361469b565b01617068565b5092616f90565b616761913d8091833e61150f8183610966565b505050565b6170fa91923d8091833e614c2f8183610966565b9038616f6a565b8061159c600061711093610966565b38616ec0565b8061159c600061712593610966565b38616e70565b8061159c600061713a93610966565b38616e2a565b617159915060203d6020116115e5576115d78183610966565b38616dd3565b6167fb9193503d806000833e61150f8183610966565b61718a91503d806000833e61150f8183610966565b38616d4c565b6171a591503d806000833e61150f8183610966565b38616d06565b601f549091906004906020906171cc9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617390575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03821660048201526000816024818360008051602061924f8339815191525af1801561151d5761737b575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018590526020816044816000885af1801561151d5761735e575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57617349575b5060405163a9059cbb60e01b81526001600160a01b03871660048201526024810184905291602090839060449082906000905af1801561151d57616c8597616cae93616c939261732a575b5097505090616c62565b6173429060203d602011615b8a57615b7a8183610966565b5038617320565b8061159c600061735893610966565b386172d5565b6173769060203d602011615b8a57615b7a8183610966565b61727e565b8061159c600061738a93610966565b38617244565b6173a9915060203d6020116115e5576115d78183610966565b386171ef565b50821515616c5d565b616a419192503d806000833e61150f8183610966565b6173e391503d806000833e61150f8183610966565b38616bfb565b95509250505060205460405163348051d760e11b81526000818061741585600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57617444916114ea916000916178735750615dd0565b6001600160a01b038416908115158061786a575b156177e15760405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d576000916177c6575b5060405163348051d760e11b8152600481018490529460008660248160008051602061924f8339815191525afa95861561151d576000966177a3575b50604051632b65311f60e11b81526001600160a01b03909116600482015260008180602481015b038160008051602061924f8339815191525afa90811561151d57600091617788575b50604051632b65311f60e11b81526001600160a01b03861660048201529060008260248160008051602061924f8339815191525afa90811561151d57600497617572946114ea9460009461776b575b50615eba565b601f5460209061758d9060081c6001600160a01b0316611338565b6040516313917f7760e11b815295869182905afa93841561151d5760009461774a575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03851660048201526000816024818360008051602061924f8339815191525af1801561151d57617735575b506040516311f9fbc960e21b81526001600160a01b0385166004820152602481018390526020816044816000865af1801561151d57617718575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039490941660048501526000846024818360008051602061924f8339815191525af192831561151d576176d794602094617703575b5060405163a9059cbb60e01b81526001600160a01b03909116600482015260248101929092529092839190829060009082906044820190565b03925af1801561151d576176e85750565b6177009060203d602011615b8a57615b7a8183610966565b50565b8061159c600061771293610966565b3861769e565b6177309060203d602011615b8a57615b7a8183610966565b61763f565b8061159c600061774493610966565b38617605565b61776491945060203d6020116115e5576115d78183610966565b92386175b0565b6177819194503d806000833e61150f8183610966565b923861756c565b61779d91503d806000833e61150f8183610966565b3861751d565b6174fb9196506177be6000913d8084833e61150f8183610966565b9691506174d4565b6177db91503d806000833e61150f8183610966565b38617498565b60405163348051d760e11b8152600481018490528560008260248160008051602061924f8339815191525afa91821561151d57600092617847575b50604051632b65311f60e11b81526001600160a01b0390911660048201526000818060248101616b07565b616b079192506178626000913d8084833e61150f8183610966565b92915061781c565b50821515617458565b61788891503d806000833e61150f8183610966565b38616aa8565b6001600160a01b03811695949093909290919086156173e95760205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d57600091617fcc575b50604051632b65311f60e11b81526001600160a01b038716600482015260008160248160008051602061924f8339815191525afa801561151d57617934926114ea926000926173b85750615f81565b6001600160a01b03811680151580617fc3575b617dbf575b50604080516001600160a01b0390971660208801526179739190616c939088908101616c85565b604085015260006060850152608084015260a083015260205460405163348051d760e11b815260048101919091526000818060248101038160008051602061924f8339815191525afa90811561151d57600091617da4575b50604051632b65311f60e11b81526001600160a01b038316600482015260008160248160008051602061924f8339815191525afa801561151d57617a279160009161717557506000604051614823816141f48960208301616063565b038160008051602061924f8339815191525afa90811561151d57617a56936114ea9360009361715f5750616074565b601f54600490602090617a749060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617d85575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57617d70575b5060008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57617d5b575b50601f54617b4d9060081c6001600160a01b0316611338565b91823b1561025657617b799260009283604051809681958294632095dedb60e01b845260048401616117565b03925af19081617d46575b50617b925750616ece611d28565b60405163064554e960e21b8152906000826004818360008051602061924f8339815191525af191821561151d57600092617d2b575b5060005b82518110156170e15781617be761133860406149e085886145d1565b14617bf5575b600101617bcb565b60205460405163348051d760e11b8152600481019190915290939060008160248160008051602061924f8339815191525afa90811561151d57617c43916114ea916000916170ce5750616139565b617c5760006147be60406149e088886145d1565b038160008051602061924f8339815191525afa801561151d57617c8491600091614be35750614aae61464e565b617c9560006020614ac487876145d1565b038160008051602061924f8339815191525afa801561151d57617cc291600091614bca5750614aae614676565b60005b617ccf85856145d1565b515151811015617d2457806000614b41617ced93614b3a89896145d1565b038160008051602061924f8339815191525afa91821561151d57600192617d1e91600091614ba85750614b9361469b565b01617cc5565b5092617bed565b617d3f91923d8091833e614c2f8183610966565b9038617bc7565b8061159c6000617d5593610966565b38617b84565b8061159c6000617d6a93610966565b38617b34565b8061159c6000617d7f93610966565b38617aee565b617d9e915060203d6020116115e5576115d78183610966565b38617a97565b617db991503d806000833e61150f8183610966565b386179cb565b601f54909190600490602090617de09060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617fa4575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03821660048201526000816024818360008051602061924f8339815191525af1801561151d57617f8f575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018590526020816044816000885af1801561151d57617f72575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57617f5d575b5060405163a9059cbb60e01b81526001600160a01b03871660048201526024810184905291602090839060449082906000905af1801561151d57616c859761797393616c9392617f3e575b509750509061794c565b617f569060203d602011615b8a57615b7a8183610966565b5038617f34565b8061159c6000617f6c93610966565b38617ee9565b617f8a9060203d602011615b8a57615b7a8183610966565b617e92565b8061159c6000617f9e93610966565b38617e58565b617fbd915060203d6020116115e5576115d78183610966565b38617e03565b50821515617947565b617fe191503d806000833e61150f8183610966565b386178e5565b600080916020815191016a636f6e736f6c652e6c6f675afa50565b614202618034916141f461057394604051948593634b5c427760e01b60208601526040602486015260648501906103bc565b838103602319016044850152906103bc565b6141f4610573946180936142029461807c96604051978896635ab84e1f60e01b60208901526080602489015260a48801906103bc565b9160448701526023198683030160648701526103bc565b838103602319016084850152906103bc565b156180ac57565b60405162461bcd60e51b8152602060048201526016602482015275155b9a5cddd85c081c9bdd5d195c881b9bdd081cd95d60521b6044820152606490fd5b156180f157565b60405162461bcd60e51b815260206004820152600d60248201526c15d6915510481b9bdd081cd95d609a1b6044820152606490fd5b604051608091906181378382610966565b6003815291601f1901366020840137565b604051606091906181598382610966565b6002815291601f1901366020840137565b602081830312610256578051906001600160401b03821161025657019080601f8301121561025657815161819d81611712565b926181ab6040519485610966565b81845260208085019260051b82010192831161025657602001905b8282106181d35750505090565b81518152602091820191016181c6565b919260809361820892979695978452602084015260a0604084015260a0830190610284565b6001600160a01b0390951660608201520152565b6040519061822b604083610966565b600282526134b760f11b6020830152565b6001600791601a61057394969560296040519889946802db1b430b4b724b2160bd1b6020870152618276815180926020868a019101610399565b85017f5d205b494e464f5d2053776170207375636365737366756c3a20000000000000838201526182b1825180936020604385019101610399565b0101600160fd1b838201526182d0825180936020601b85019101610399565b010166081b995959195960ca1b838201520301601819810185520183610966565b601f6105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526183278151809260208688019101610399565b83017f5d205b4552524f525d20556e69737761702073776170206661696c65643a200083820152611dd8825180936020604885019101610399565b60255493946001600160a01b0390941693909291906183828515156180a5565b6026546183a29061839b906001600160a01b0316611338565b15156180ea565b60405163095ea7b360e01b81526001600160a01b039586166004820152602481018790529484169460208160448160008a5af1801561151d5761869b575b5060006183eb618126565b91618408866183f98561459f565b6001600160a01b039091169052565b602654618422906001600160a01b03165b6183f9856145b1565b61842f846183f9856145c1565b61843842615439565b60255490939061845290611338906001600160a01b031681565b90838a61847660405197889687958694634401edf760e11b86528d600487016181e3565b03925af1908161867a575b506184f95750505050618492611d28565b60205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa91821561151d576102d2926114ea926000916184de575b506182f1565b6184f391503d806000833e61150f8183610966565b386184d8565b60265461851991906001600160a01b0316809361851461821c565b61916f565b918251156186735761852d6185369361459f565b5161851461821c565b9081511561866e5760205460405163348051d760e11b81526004810191909152925060008360248160008051602061924f8339815191525afa90811561151d576185ae93600092618651575b50600061858e8461459f565b516040518096819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa93841561151d5760009461862f575b506000600491604051928380926306fdde0360e01b82525afa801561151d5761860e94618609936114ea93600093618612575b5061823c565b61459f565b5190565b6186289193503d806000833e61150f8183610966565b9138618603565b60049194506186496000913d8084833e61150f8183610966565b9491506185d0565b6186679192503d806000833e61150f8183610966565b9038618582565b505090565b5050505090565b618696903d806000833e61868e8183610966565b81019061816a565b618481565b6186b39060203d602011615b8a57615b7a8183610966565b6183e0565b604051906186c7604083610966565b600382526267617360e81b6020830152565b60046012929594602e610573956029604051998a966802db1b430b4b724b2160bd1b6020890152618713815180926020868c019101610399565b87017f5d205b4552524f525d2072657665727441646472657373206973207a65726f2c838201526d0103a3930b739b332b93934b733960951b6049820152618765825180936020605785019101610399565b01016301037b3160e51b83820152615f51825180936020603285019101610399565b1561878e57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b6001600160a01b03918216815291166020820152604081019190915260a06060820181905260009082015260c0608082018190526102d2929101906142d9565b6080906102d2939260018060a01b03168152606060208201526000606082015281604082015201906142d9565b93949190946060860151926188456109a5565b6001600160a01b0382168152936001600160a01b038416602086015285604086015260608501526188796020880151151590565b15618e15575060008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57618e00575b5060405163348051d760e11b81526004810186905260008160248160008051602061924f8339815191525afa90811561151d57600091618de5575b508651618917906000906001600160a01b03166147be565b038160008051602061924f8339815191525afa801561151d5761895391600091618dca575b506000604051614823816141f48a6020830161431a565b038160008051602061924f8339815191525afa90811561151d57618982936114ea93600093614c87575061432b565b600460206189a061133861143d896000526021602052604060002090565b604051635b11259160e01b815292839182905afa90811561151d57600091618dab575b5060008051602061924f8339815191523b15610256576040516303223eab60e11b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57618d96575b5015618cc85750618a3b61133861143d856000526021602052604060002090565b608085015185519192916001600160a01b0316833b156102565760405163cb7ba8e560e01b815294600094869485938491618a799160048401618805565b0393f1801561151d57618cb3575b505b60008051602061924f8339815191523b15610256576040516390c5013b60e01b81526000816004818360008051602061924f8339815191525af1801561151d57618c9e575b5060405163064554e960e21b8152916000836004818360008051602061924f8339815191525af192831561151d57600093618c83575b5060005b8351811015614c1557618b2060406149e083876145d1565b8251618b34906001600160a01b0316611338565b6001600160a01b0390911614618b4d575b600101618b08565b60405163348051d760e11b815260048101849052909491929060008160248160008051602061924f8339815191525afa90811561151d57618b99916114ea91600091614bfc57506145e5565b618bad60006147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d57618bda91600091614be35750614aae61464e565b618beb60006020614ac488886145d1565b038160008051602061924f8339815191525afa801561151d57618c1891600091614bca5750614aae614676565b60005b618c2586866145d1565b515151811015618c7a57806000614b41618c4393614b3a8a8a6145d1565b038160008051602061924f8339815191525afa91821561151d57600192618c7491600091614ba85750614b9361469b565b01618c1b565b50919093618b45565b618c9791933d8091833e614c2f8183610966565b9138618b04565b8061159c6000618cad93610966565b38618ace565b8061159c6000618cc293610966565b38618a87565b909160046020618ce861133861143d886000526021602052604060002090565b60405163dda79b7560e01b815292839182905afa90811561151d57600091618d77575b50608086015186516001600160a01b0392831694919216843b15610256576000948591618d4e60405198899788968794634cd1e1ab60e11b8652600486016187c5565b0393f1801561151d57618d62575b50618a89565b8061159c6000618d7193610966565b38618d5c565b618d90915060203d6020116115e5576115d78183610966565b38618d0b565b8061159c6000618da593610966565b38618a1a565b618dc4915060203d6020116115e5576115d78183610966565b386189c3565b618ddf91503d806000833e61150f8183610966565b3861893c565b618dfa91503d806000833e61150f8183610966565b386188ff565b8061159c6000618e0f93610966565b386188c4565b60405163348051d760e11b81526004810187905294969095929491935060008260248160008051602061924f8339815191525afa801561151d576114ea612cb491618e679460009161540e5750614207565b936001600160a01b03851615618fa8575b506020618e9761133861143d6004946000526021602052604060002090565b604051635b11259160e01b815292839182905afa90811561151d57600091618f89575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57618f74575b5015618f325750600080806105739481945af1618f2c611d28565b50618787565b60405163a9059cbb60e01b81526001600160a01b039283166004820152602481019390935260209183916044918391600091165af1801561151d576176e85750565b8061159c6000618f8393610966565b38618f11565b618fa2915060203d6020116115e5576115d78183610966565b38618eba565b60405163348051d760e11b81526004810183905291945060008260248160008051602061924f8339815191525afa91821561151d5760009261913b575b5060405163348051d760e11b8152600481018790529060008260248160008051602061924f8339815191525afa91821561151d5760009261911e575b50600084156190bc57506190336186b8565b604051632b65311f60e11b81526001600160a01b03831660048201529260008460248160008051602061924f8339815191525afa92831561151d576190946114ea618e97956113389561143d9560049a60209a60009461909f575b506186d9565b979450505050618e78565b6190b59194503d806000833e61150f8183610966565b923861908e565b604051632b65311f60e11b81526001600160a01b0387166004820152818160248160008051602061924f8339815191525afa91821561151d578092619103575b5050619033565b61911792503d8091833e61150f8183610966565b38806190fc565b6191349192503d806000833e61150f8183610966565b9038619021565b6191519192503d806000833e61150f8183610966565b9038618fe5565b6040906102d2939281528160208201520190610284565b90919261918b90618419619181618148565b956183f98761459f565b6020815191012061919a61821c565b6020815191012014600014619211576025546191e69260009290916191c990611338906001600160a01b031681565b906040518095819482936307c0329d60e21b845260048401619158565b03915afa90811561151d576000916191fc575090565b6102d291503d806000833e61868e8183610966565b6025546191e692600092909161923190611338906001600160a01b031681565b9060405180958194829363d06ca61f60e01b84526004840161915856fe0000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da26469706673582212204ac5191fd2a56935eb2a626b6c057e5076df68c41286e115979311c7e2e30aed64736f6c634300081a003360c034608d57601f61094c38819003918201601f19168301916001600160401b038311848410176092578084926040948552833981010312608d57604b602060458360a8565b920160a8565b9060805260a05260405161089090816100bc8239608051818181603d015261012d015260a0518181816084015281816106960152818161074e01526107db0152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203608d5756fe6080604052600436106101185760003560e01c8063ced52b40146100715763d9d2f07403610118573461006c57600036600319011261006c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b600080fd5b3461006c57600036600319011261006c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b600091031261006c57565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b038211176100f857604052565b6100c1565b6001600160401b0381116100f857601f01601f191660200190565b600080604051368282378036810183815203907f00000000000000000000000000000000000000000000000000000000000000005af43d156101d3573d9061015f826100fd565b9161016d60405193846100d7565b82523d6000602084013e5b1561018e576101863661065f565b602081519101f35b60405162461bcd60e51b815260206004820152601f60248201527f476174657761795a45564d2064656c656761746563616c6c206661696c6564006044820152606490fd5b606090610178565b909291928360041161006c57831161006c57600401916003190190565b81601f8201121561006c5780359061020f826100fd565b9261021d60405194856100d7565b8284526020838301011161006c57816000926020809301838601378301015290565b6001600160a01b0381160361006c57565b3590811515820361006c57565b919082604091031261006c57604051604081018181106001600160401b038211176100f85760405260206102978183958035855201610250565b910152565b91909160a08184031261006c576040519060a082018281106001600160401b038211176100f857604052819381356102d38161023f565b83526102e160208301610250565b602084015260408201356102f48161023f565b60408401526060820135916001600160401b03831161006c5761031d60809392849383016101f8565b60608501520135910152565b9160e08383031261006c5782356001600160401b03811161006c57826103509185016101f8565b9260208101359260408201356103658161023f565b9260608301356001600160401b03811161006c57826103859185016101f8565b92610393836080830161025d565b9260c08201356001600160401b03811161006c576103b1920161029c565b90565b919082519283825260005b8481106103e0575050826000602080949584010152601f8019910116010190565b806020809284010151828286010152016103bf565b9060018060a01b03825116815260208201511515602082015260018060a01b03604083015116604082015260808061043c606085015160a0606086015260a08501906103b4565b93015191015290565b93946103b19795610475610498946104ae969460018060a01b0316885261010060208901526101008801906103b4565b60408701939093526001600160a01b0316606086015284820360808601526103b4565b845160a0840152602090940151151560c0830152565b60e08184039101526103f5565b6040513d6000823e3d90fd5b9060808282031261006c5781356001600160401b03811161006c57816104ee9184016101f8565b9260208301359260408101356105038161023f565b9260608201356001600160401b03811161006c576103b1920161029c565b6001600160a01b03909116815260a0602082018190526103b1959394919261054b918401906103b4565b60408301949094526001600160a01b031660608201528083036080909101526103f5565b91909160c08184031261006c5780356001600160401b03811161006c57836105989183016101f8565b9260208201356105a78161023f565b9260408301356001600160401b03811161006c57826105c79185016101f8565b926105d5836060830161025d565b9260a08201356001600160401b03811161006c576103b1920161029c565b926103b1969461061f6106529461063c9460018060a01b0316875260e0602088015260e08701906103b4565b6001600160a01b03909216604086015284820360608601526103b4565b84516080840152602090940151151560a0830152565b60c08184039101526103f5565b6000356001600160e01b0319166306cb898360e01b8103610723575061068a816106929260006101db565b81019061056f565b90937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561006c576000946106f5869260405198899788968795632c612e1f60e21b875260018060a01b03169033600488016105f3565b03925af1801561071e57610707575b50565b80610716600061071c936100d7565b806100b6565b565b6104bb565b637c0dcb5f60e01b81036107ac5750610741816107499260006101db565b8101906104c7565b9290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b1561006c57600080946106f5604051978896879586946308327f7960e41b865260018060a01b0316913360048701610521565b637b15118b60e01b146107bc5750565b6107cb816107d39260006101db565b810190610329565b9194909390927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169290833b1561006c5761083c600096928793604051998a988997889663567ee10960e11b885260018060a01b0316913360048901610445565b03925af1801561071e57156107045780610716600061071c936100d756fea2646970667358221220133391b00c7d02fadba0abecf2ff0ca588b7e0be6358eaeb9ed28b58db011a3a64736f6c634300081a00330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da264697066735822122037cccbb610aca877ad465a2ed0d43f73921e1639da5087cd8e0ebfd926563f6e64736f6c634300081a0033"; type ZetaSetupConstructorParams = | [signer?: Signer] diff --git a/typechain-types/factories/contracts/testing/mock/ZRC20Mock.sol/IZRC20Mock__factory.ts b/typechain-types/factories/contracts/testing/mock/ZRC20Mock.sol/IZRC20Mock__factory.ts index 51996bef..9e1109b9 100644 --- a/typechain-types/factories/contracts/testing/mock/ZRC20Mock.sol/IZRC20Mock__factory.ts +++ b/typechain-types/factories/contracts/testing/mock/ZRC20Mock.sol/IZRC20Mock__factory.ts @@ -35,6 +35,19 @@ const _abi = [ stateMutability: "view", type: "function", }, + { + inputs: [], + name: "SYSTEM_CONTRACT_ADDRESS", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, { inputs: [ { diff --git a/typechain-types/factories/contracts/testing/mock/ZRC20Mock.sol/ZRC20Mock__factory.ts b/typechain-types/factories/contracts/testing/mock/ZRC20Mock.sol/ZRC20Mock__factory.ts index ba755827..4eb2f842 100644 --- a/typechain-types/factories/contracts/testing/mock/ZRC20Mock.sol/ZRC20Mock__factory.ts +++ b/typechain-types/factories/contracts/testing/mock/ZRC20Mock.sol/ZRC20Mock__factory.ts @@ -760,7 +760,7 @@ const _abi = [ ] as const; const _bytecode = - "0x60c06040523461041a576118e5803803806100198161041f565b92833981016101008282031261041a5781516001600160401b03811161041a5781610045918401610444565b602083015190916001600160401b03821161041a57610065918401610444565b9160408101519160ff831680930361041a576060820151936080830151600381101561041a5760a0840151916100a960e06100a260c088016104af565b96016104af565b946001600160a01b03169384158015610409575b6103f8578051906001600160401b0382116102f55760065490600182811c921680156103ee575b60208310146102d55781601f84931161037e575b50602090601f83116001146103165760009261030b575b50508160011b916000199060031b1c1916176006555b8051906001600160401b0382116102f55760075490600182811c921680156102eb575b60208310146102d55781601f849311610265575b50602090601f83116001146101fd576000926101f2575b50508160011b916000199060031b1c1916176007555b6008549560805260a05260015560018060a01b03196000541617600055610100600160a81b039060081b169160018060a81b031916171760085560405161142190816104c4823960805181818161018101528181610b7b01526110d8015260a051816109fa0152f35b015190503880610173565b600760009081528281209350601f198516905b81811061024d5750908460019594939210610234575b505050811b01600755610189565b015160001960f88460031b161c19169055388080610226565b92936020600181928786015181550195019301610210565b60076000529091507fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688601f840160051c810191602085106102cb575b90601f859493920160051c01905b8181106102bc575061015c565b600081558493506001016102af565b90915081906102a1565b634e487b7160e01b600052602260045260246000fd5b91607f1691610148565b634e487b7160e01b600052604160045260246000fd5b01519050388061010f565b600660009081528281209350601f198516905b818110610366575090846001959493921061034d575b505050811b01600655610125565b015160001960f88460031b161c1916905538808061033f565b92936020600181928786015181550195019301610329565b60066000529091507ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f601f840160051c810191602085106103e4575b90601f859493920160051c01905b8181106103d557506100f8565b600081558493506001016103c8565b90915081906103ba565b91607f16916100e4565b63d92e233d60e01b60005260046000fd5b506001600160a01b038616156100bd565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176102f557604052565b81601f8201121561041a578051906001600160401b0382116102f557610473601f8301601f191660200161041f565b928284526020838301011161041a5760005b82811061049a57505060206000918301015290565b80602080928401015182828701015201610485565b51906001600160a01b038216820361041a5756fe608080604052600436101561001357600080fd5b60003560e01c90816306fdde0314610e8157508063091d278814610e63578063095ea7b314610e3d57806318160ddd14610e1f57806323b872dd14610d9e578063313ce56714610d7d5780633ce4a5bc14610d4e57806340c10f1914610d2957806342966c6814610d0c57806347e7ef2414610bf65780634d8943bb14610bd857806370a0823114610b9e57806385e1f4d014610b635780638b851b9514610b3957806395d89b4114610a695780639dc29fac14610a42578063a3413d03146109e7578063a9059cbb146109b6578063b84c824614610851578063c47f0027146106d6578063c701262614610574578063c835d7cc146104eb578063ccc7759914610445578063d9eeebed1461042c578063dd62ed3e146103db578063eddeb1231461037b578063f2441b3214610352578063f687d12a146102e15763fc5fecd51461015e57600080fd5b346102dc5760203660031901126102dc57600054604051630be1554760e01b81527f00000000000000000000000000000000000000000000000000000000000000006004820181905290916001600160a01b031690602083602481855afa92831561028e576000936102ab575b506001600160a01b0383161561029a5760209060246040518094819363d7fd7afb60e01b835260048301525afa90811561028e57600091610259575b5080156102485761021e61022791600435906110a6565b600254906110b9565b604080516001600160a01b03939093168352602083019190915290f35b0390f35b630e661aed60e41b60005260046000fd5b906020823d602011610286575b8161027360209383610f82565b8101031261028357505138610207565b80fd5b3d9150610266565b6040513d6000823e3d90fd5b633c7ff9cb60e11b60005260046000fd5b6102ce91935060203d6020116102d5575b6102c68183610f82565b810190611087565b91386101cb565b503d6102bc565b600080fd5b346102dc5760203660031901126102dc5760043573735b14bb79463307aacbed86daf3322b1e6226ab3303610341576020817fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a92600155604051908152a1005b632b2add3d60e01b60005260046000fd5b346102dc5760003660031901126102dc576000546040516001600160a01b039091168152602090f35b346102dc5760203660031901126102dc5760043573735b14bb79463307aacbed86daf3322b1e6226ab3303610341576020817fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f92600255604051908152a1005b346102dc5760403660031901126102dc576103f4610f56565b6103fc610f6c565b6001600160a01b039182166000908152600460209081526040808320949093168252928352819020549051908152f35b346102dc5760003660031901126102dc576102276110c6565b346102dc5760203660031901126102dc5761045e610f56565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610341576001600160a01b0381169081156104da5760088054610100600160a81b03191691811b610100600160a81b03169190911790556040519081527f88815d964e380677e86d817e7d65dea59cb7b4c3b5b7a0c8ec7ea4a74f90a38790602090a1005b63d92e233d60e01b60005260046000fd5b346102dc5760203660031901126102dc57610504610f56565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610341576001600160a01b031680156104da576020817fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae926bffffffffffffffffffffffff60a01b6000541617600055604051908152a1005b346102dc5760403660031901126102dc5760043567ffffffffffffffff81116102dc57366023820112156102dc576105b6903690602481600401359101610fa4565b60206024359160006105c66110c6565b93906064604051809481936323b872dd60e01b835233600484015273735b14bb79463307aacbed86daf3322b1e6226ab602484015288604484015260018060a01b03165af190811561028e57600091610697575b5015610686577f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d9559161064c8433611331565b6002549061066560405193608085526080850190610f15565b946020840152604083015260608201528033930390a2602060405160018152f35b63053e6b6b60e11b60005260046000fd5b6020813d6020116106ce575b816106b060209383610f82565b810103126106ca575190811515820361028357508461061a565b5080fd5b3d91506106a3565b346102dc576106e436610feb565b73735b14bb79463307aacbed86daf3322b1e6226ab330361034157805167ffffffffffffffff811161083b5761071b60065461102a565b601f81116107ce575b50602091601f821160011461076257918192600092610757575b5050600019600383901b1c191660019190911b17600655005b01519050828061073e565b601f1982169260066000526000805160206113cc8339815191529160005b8581106107b65750836001951061079d575b505050811b01600655005b015160001960f88460031b161c19169055828080610792565b91926020600181928685015181550194019201610780565b6006600052601f820160051c6000805160206113cc833981519152019060208310610825575b601f0160051c6000805160206113cc83398151915201905b8181106108195750610724565b6000815560010161080c565b6000805160206113cc83398151915291506107f4565b634e487b7160e01b600052604160045260246000fd5b346102dc5761085f36610feb565b73735b14bb79463307aacbed86daf3322b1e6226ab330361034157805167ffffffffffffffff811161083b5761089660075461102a565b601f8111610949575b50602091601f82116001146108dd579181926000926108d2575b5050600019600383901b1c191660019190911b17600755005b0151905082806108b9565b601f1982169260076000526000805160206113ac8339815191529160005b85811061093157508360019510610918575b505050811b01600755005b015160001960f88460031b161c1916905582808061090d565b919260206001819286850151815501940192016108fb565b6007600052601f820160051c6000805160206113ac8339815191520190602083106109a0575b601f0160051c6000805160206113ac83398151915201905b818110610994575061089f565b60008155600101610987565b6000805160206113ac833981519152915061096f565b346102dc5760403660031901126102dc576109dc6109d2610f56565b6024359033611230565b602060405160018152f35b346102dc5760003660031901126102dc577f00000000000000000000000000000000000000000000000000000000000000006040516003821015610a2c576020918152f35b634e487b7160e01b600052602160045260246000fd5b346102dc5760403660031901126102dc57610a67610a5e610f56565b60243590611331565b005b346102dc5760003660031901126102dc576040516000600754610a8b8161102a565b8084529060018116908115610b155750600114610ac7575b61024483610ab381850382610f82565b604051918291602083526020830190610f15565b91905060076000526000805160206113ac833981519152916000905b808210610afb57509091508101602001610ab3610aa3565b919260018160209254838588010152019101909291610ae3565b60ff191660208086019190915291151560051b84019091019150610ab39050610aa3565b346102dc5760003660031901126102dc5760088054604051911c6001600160a01b03168152602090f35b346102dc5760003660031901126102dc5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346102dc5760203660031901126102dc576001600160a01b03610bbf610f56565b1660005260036020526020604060002054604051908152f35b346102dc5760003660031901126102dc576020600254604051908152f35b346102dc5760403660031901126102dc57610c0f610f56565b6024359073735b14bb79463307aacbed86daf3322b1e6226ab33141580610cf7575b80610cdf575b610cce57610cae81610c6a847f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab3946112d6565b60405173735b14bb79463307aacbed86daf3322b1e6226ab60601b60208201526014815290610c9a603483610f82565b604051928392604084526040840190610f15565b60208301959095526001600160a01b0316930390a2602060405160018152f35b636edaef2f60e11b60005260046000fd5b506008805433911c6001600160a01b03161415610c37565b506000546001600160a01b0316331415610c31565b346102dc5760203660031901126102dc576109dc60043533611331565b346102dc5760403660031901126102dc57610a67610d45610f56565b602435906112d6565b346102dc5760003660031901126102dc57602060405173735b14bb79463307aacbed86daf3322b1e6226ab8152f35b346102dc5760003660031901126102dc57602060ff60085416604051908152f35b346102dc5760603660031901126102dc57610db7610f56565b610dbf610f6c565b90610dce604435809383611230565b6001600160a01b0381166000908152600460209081526040808320338452909152902054828110610e0e576109dc92610e0691611064565b9033906111c9565b6310bad14760e01b60005260046000fd5b346102dc5760003660031901126102dc576020600554604051908152f35b346102dc5760403660031901126102dc576109dc610e59610f56565b60243590336111c9565b346102dc5760003660031901126102dc576020600154604051908152f35b346102dc5760003660031901126102dc576000600654610ea08161102a565b8084529060018116908115610b155750600114610ec75761024483610ab381850382610f82565b91905060066000526000805160206113cc833981519152916000905b808210610efb57509091508101602001610ab3610aa3565b919260018160209254838588010152019101909291610ee3565b919082519283825260005b848110610f41575050826000602080949584010152601f8019910116010190565b80602080928401015182828601015201610f20565b600435906001600160a01b03821682036102dc57565b602435906001600160a01b03821682036102dc57565b90601f8019910116810190811067ffffffffffffffff82111761083b57604052565b92919267ffffffffffffffff821161083b5760405191610fce601f8201601f191660200184610f82565b8294818452818301116102dc578281602093846000960137010152565b60206003198201126102dc576004359067ffffffffffffffff82116102dc57806023830112156102dc5781602461102793600401359101610fa4565b90565b90600182811c9216801561105a575b602083101461104457565b634e487b7160e01b600052602260045260246000fd5b91607f1691611039565b9190820391821161107157565b634e487b7160e01b600052601160045260246000fd5b908160209103126102dc57516001600160a01b03811681036102dc5790565b8181029291811591840414171561107157565b9190820180921161107157565b600054604051630be1554760e01b81527f0000000000000000000000000000000000000000000000000000000000000000600482018190529092916001600160a01b031690602084602481855afa93841561028e576000946111a8575b506001600160a01b0384161561029a5760209060246040518094819363d7fd7afb60e01b835260048301525afa90811561028e57600091611176575b5080156102485761021e61102791600154906110a6565b906020823d6020116111a0575b8161119060209383610f82565b810103126102835750513861115f565b3d9150611183565b6111c291945060203d6020116102d5576102c68183610f82565b9238611123565b6001600160a01b03169081156104da576001600160a01b03169182156104da5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260048252604060002085600052825280604060002055604051908152a3565b6001600160a01b03169081156104da576001600160a01b03169182156104da578160005260036020526040600020548181106112c557816112947fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93602093611064565b8460005260038352604060002055846000526003825260406000206112ba8282546110b9565b9055604051908152a3565b63fe382aa760e01b60005260046000fd5b6001600160a01b03169081156104da577fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020826113186000946005546110b9565b60055584845260038252604084206112ba8282546110b9565b6001600160a01b031680156104da57806000526003602052604060002054918083106112c5576020816113877fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93600096611064565b84865260038352604086205561139f81600554611064565b600555604051908152a356fea66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688f652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3fa2646970667358221220143426ebea1dd98ec97cac7a50bf56d05abc5cfb38e424354c050953db17fb6764736f6c634300081a0033"; + "0x60c06040523461041a576118e5803803806100198161041f565b92833981016101008282031261041a5781516001600160401b03811161041a5781610045918401610444565b602083015190916001600160401b03821161041a57610065918401610444565b9160408101519160ff831680930361041a576060820151936080830151600381101561041a5760a0840151916100a960e06100a260c088016104af565b96016104af565b946001600160a01b03169384158015610409575b6103f8578051906001600160401b0382116102f55760065490600182811c921680156103ee575b60208310146102d55781601f84931161037e575b50602090601f83116001146103165760009261030b575b50508160011b916000199060031b1c1916176006555b8051906001600160401b0382116102f55760075490600182811c921680156102eb575b60208310146102d55781601f849311610265575b50602090601f83116001146101fd576000926101f2575b50508160011b916000199060031b1c1916176007555b6008549560805260a05260015560018060a01b03196000541617600055610100600160a81b039060081b169160018060a81b031916171760085560405161142190816104c4823960805181818161018101528181610b7b01526110d8015260a051816109fa0152f35b015190503880610173565b600760009081528281209350601f198516905b81811061024d5750908460019594939210610234575b505050811b01600755610189565b015160001960f88460031b161c19169055388080610226565b92936020600181928786015181550195019301610210565b60076000529091507fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688601f840160051c810191602085106102cb575b90601f859493920160051c01905b8181106102bc575061015c565b600081558493506001016102af565b90915081906102a1565b634e487b7160e01b600052602260045260246000fd5b91607f1691610148565b634e487b7160e01b600052604160045260246000fd5b01519050388061010f565b600660009081528281209350601f198516905b818110610366575090846001959493921061034d575b505050811b01600655610125565b015160001960f88460031b161c1916905538808061033f565b92936020600181928786015181550195019301610329565b60066000529091507ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f601f840160051c810191602085106103e4575b90601f859493920160051c01905b8181106103d557506100f8565b600081558493506001016103c8565b90915081906103ba565b91607f16916100e4565b63d92e233d60e01b60005260046000fd5b506001600160a01b038616156100bd565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176102f557604052565b81601f8201121561041a578051906001600160401b0382116102f557610473601f8301601f191660200161041f565b928284526020838301011161041a5760005b82811061049a57505060206000918301015290565b80602080928401015182828701015201610485565b51906001600160a01b038216820361041a5756fe608080604052600436101561001357600080fd5b60003560e01c90816306fdde0314610e8157508063091d278814610e63578063095ea7b314610e3d57806318160ddd14610e1f57806323b872dd14610d9e578063313ce56714610d7d5780633ce4a5bc14610d4e57806340c10f1914610d2957806342966c6814610d0c57806347e7ef2414610bf65780634d8943bb14610bd857806370a0823114610b9e57806385e1f4d014610b635780638b851b9514610b3957806395d89b4114610a695780639dc29fac14610a42578063a3413d03146109e7578063a9059cbb146109b6578063b84c824614610851578063c47f0027146106d6578063c701262614610574578063c835d7cc146104eb578063ccc7759914610445578063d9eeebed1461042c578063dd62ed3e146103db578063eddeb1231461037b578063f2441b3214610352578063f687d12a146102e15763fc5fecd51461015e57600080fd5b346102dc5760203660031901126102dc57600054604051630be1554760e01b81527f00000000000000000000000000000000000000000000000000000000000000006004820181905290916001600160a01b031690602083602481855afa92831561028e576000936102ab575b506001600160a01b0383161561029a5760209060246040518094819363d7fd7afb60e01b835260048301525afa90811561028e57600091610259575b5080156102485761021e61022791600435906110a6565b600254906110b9565b604080516001600160a01b03939093168352602083019190915290f35b0390f35b630e661aed60e41b60005260046000fd5b906020823d602011610286575b8161027360209383610f82565b8101031261028357505138610207565b80fd5b3d9150610266565b6040513d6000823e3d90fd5b633c7ff9cb60e11b60005260046000fd5b6102ce91935060203d6020116102d5575b6102c68183610f82565b810190611087565b91386101cb565b503d6102bc565b600080fd5b346102dc5760203660031901126102dc5760043573735b14bb79463307aacbed86daf3322b1e6226ab3303610341576020817fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a92600155604051908152a1005b632b2add3d60e01b60005260046000fd5b346102dc5760003660031901126102dc576000546040516001600160a01b039091168152602090f35b346102dc5760203660031901126102dc5760043573735b14bb79463307aacbed86daf3322b1e6226ab3303610341576020817fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f92600255604051908152a1005b346102dc5760403660031901126102dc576103f4610f56565b6103fc610f6c565b6001600160a01b039182166000908152600460209081526040808320949093168252928352819020549051908152f35b346102dc5760003660031901126102dc576102276110c6565b346102dc5760203660031901126102dc5761045e610f56565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610341576001600160a01b0381169081156104da5760088054610100600160a81b03191691811b610100600160a81b03169190911790556040519081527f88815d964e380677e86d817e7d65dea59cb7b4c3b5b7a0c8ec7ea4a74f90a38790602090a1005b63d92e233d60e01b60005260046000fd5b346102dc5760203660031901126102dc57610504610f56565b73735b14bb79463307aacbed86daf3322b1e6226ab3303610341576001600160a01b031680156104da576020817fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae926bffffffffffffffffffffffff60a01b6000541617600055604051908152a1005b346102dc5760403660031901126102dc5760043567ffffffffffffffff81116102dc57366023820112156102dc576105b6903690602481600401359101610fa4565b60206024359160006105c66110c6565b93906064604051809481936323b872dd60e01b835233600484015273735b14bb79463307aacbed86daf3322b1e6226ab602484015288604484015260018060a01b03165af190811561028e57600091610697575b5015610686577f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d9559161064c8433611331565b6002549061066560405193608085526080850190610f15565b946020840152604083015260608201528033930390a2602060405160018152f35b63053e6b6b60e11b60005260046000fd5b6020813d6020116106ce575b816106b060209383610f82565b810103126106ca575190811515820361028357508461061a565b5080fd5b3d91506106a3565b346102dc576106e436610feb565b73735b14bb79463307aacbed86daf3322b1e6226ab330361034157805167ffffffffffffffff811161083b5761071b60065461102a565b601f81116107ce575b50602091601f821160011461076257918192600092610757575b5050600019600383901b1c191660019190911b17600655005b01519050828061073e565b601f1982169260066000526000805160206113cc8339815191529160005b8581106107b65750836001951061079d575b505050811b01600655005b015160001960f88460031b161c19169055828080610792565b91926020600181928685015181550194019201610780565b6006600052601f820160051c6000805160206113cc833981519152019060208310610825575b601f0160051c6000805160206113cc83398151915201905b8181106108195750610724565b6000815560010161080c565b6000805160206113cc83398151915291506107f4565b634e487b7160e01b600052604160045260246000fd5b346102dc5761085f36610feb565b73735b14bb79463307aacbed86daf3322b1e6226ab330361034157805167ffffffffffffffff811161083b5761089660075461102a565b601f8111610949575b50602091601f82116001146108dd579181926000926108d2575b5050600019600383901b1c191660019190911b17600755005b0151905082806108b9565b601f1982169260076000526000805160206113ac8339815191529160005b85811061093157508360019510610918575b505050811b01600755005b015160001960f88460031b161c1916905582808061090d565b919260206001819286850151815501940192016108fb565b6007600052601f820160051c6000805160206113ac8339815191520190602083106109a0575b601f0160051c6000805160206113ac83398151915201905b818110610994575061089f565b60008155600101610987565b6000805160206113ac833981519152915061096f565b346102dc5760403660031901126102dc576109dc6109d2610f56565b6024359033611230565b602060405160018152f35b346102dc5760003660031901126102dc577f00000000000000000000000000000000000000000000000000000000000000006040516003821015610a2c576020918152f35b634e487b7160e01b600052602160045260246000fd5b346102dc5760403660031901126102dc57610a67610a5e610f56565b60243590611331565b005b346102dc5760003660031901126102dc576040516000600754610a8b8161102a565b8084529060018116908115610b155750600114610ac7575b61024483610ab381850382610f82565b604051918291602083526020830190610f15565b91905060076000526000805160206113ac833981519152916000905b808210610afb57509091508101602001610ab3610aa3565b919260018160209254838588010152019101909291610ae3565b60ff191660208086019190915291151560051b84019091019150610ab39050610aa3565b346102dc5760003660031901126102dc5760088054604051911c6001600160a01b03168152602090f35b346102dc5760003660031901126102dc5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346102dc5760203660031901126102dc576001600160a01b03610bbf610f56565b1660005260036020526020604060002054604051908152f35b346102dc5760003660031901126102dc576020600254604051908152f35b346102dc5760403660031901126102dc57610c0f610f56565b6024359073735b14bb79463307aacbed86daf3322b1e6226ab33141580610cf7575b80610cdf575b610cce57610cae81610c6a847f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab3946112d6565b60405173735b14bb79463307aacbed86daf3322b1e6226ab60601b60208201526014815290610c9a603483610f82565b604051928392604084526040840190610f15565b60208301959095526001600160a01b0316930390a2602060405160018152f35b636edaef2f60e11b60005260046000fd5b506008805433911c6001600160a01b03161415610c37565b506000546001600160a01b0316331415610c31565b346102dc5760203660031901126102dc576109dc60043533611331565b346102dc5760403660031901126102dc57610a67610d45610f56565b602435906112d6565b346102dc5760003660031901126102dc57602060405173735b14bb79463307aacbed86daf3322b1e6226ab8152f35b346102dc5760003660031901126102dc57602060ff60085416604051908152f35b346102dc5760603660031901126102dc57610db7610f56565b610dbf610f6c565b90610dce604435809383611230565b6001600160a01b0381166000908152600460209081526040808320338452909152902054828110610e0e576109dc92610e0691611064565b9033906111c9565b6310bad14760e01b60005260046000fd5b346102dc5760003660031901126102dc576020600554604051908152f35b346102dc5760403660031901126102dc576109dc610e59610f56565b60243590336111c9565b346102dc5760003660031901126102dc576020600154604051908152f35b346102dc5760003660031901126102dc576000600654610ea08161102a565b8084529060018116908115610b155750600114610ec75761024483610ab381850382610f82565b91905060066000526000805160206113cc833981519152916000905b808210610efb57509091508101602001610ab3610aa3565b919260018160209254838588010152019101909291610ee3565b919082519283825260005b848110610f41575050826000602080949584010152601f8019910116010190565b80602080928401015182828601015201610f20565b600435906001600160a01b03821682036102dc57565b602435906001600160a01b03821682036102dc57565b90601f8019910116810190811067ffffffffffffffff82111761083b57604052565b92919267ffffffffffffffff821161083b5760405191610fce601f8201601f191660200184610f82565b8294818452818301116102dc578281602093846000960137010152565b60206003198201126102dc576004359067ffffffffffffffff82116102dc57806023830112156102dc5781602461102793600401359101610fa4565b90565b90600182811c9216801561105a575b602083101461104457565b634e487b7160e01b600052602260045260246000fd5b91607f1691611039565b9190820391821161107157565b634e487b7160e01b600052601160045260246000fd5b908160209103126102dc57516001600160a01b03811681036102dc5790565b8181029291811591840414171561107157565b9190820180921161107157565b600054604051630be1554760e01b81527f0000000000000000000000000000000000000000000000000000000000000000600482018190529092916001600160a01b031690602084602481855afa93841561028e576000946111a8575b506001600160a01b0384161561029a5760209060246040518094819363d7fd7afb60e01b835260048301525afa90811561028e57600091611176575b5080156102485761021e61102791600154906110a6565b906020823d6020116111a0575b8161119060209383610f82565b810103126102835750513861115f565b3d9150611183565b6111c291945060203d6020116102d5576102c68183610f82565b9238611123565b6001600160a01b03169081156104da576001600160a01b03169182156104da5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260048252604060002085600052825280604060002055604051908152a3565b6001600160a01b03169081156104da576001600160a01b03169182156104da578160005260036020526040600020548181106112c557816112947fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93602093611064565b8460005260038352604060002055846000526003825260406000206112ba8282546110b9565b9055604051908152a3565b63fe382aa760e01b60005260046000fd5b6001600160a01b03169081156104da577fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020826113186000946005546110b9565b60055584845260038252604084206112ba8282546110b9565b6001600160a01b031680156104da57806000526003602052604060002054918083106112c5576020816113877fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93600096611064565b84865260038352604086205561139f81600554611064565b600555604051908152a356fea66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688f652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3fa2646970667358221220de2afd89f9562d881a6037e1b595c5b924ecf9024c4a393e54fbc8e66db522b864736f6c634300081a0033"; type ZRC20MockConstructorParams = | [signer?: Signer] diff --git a/typechain-types/factories/contracts/testing/mockGateway/NodeLogicMock__factory.ts b/typechain-types/factories/contracts/testing/mockGateway/NodeLogicMock__factory.ts index f8234771..a4217a95 100644 --- a/typechain-types/factories/contracts/testing/mockGateway/NodeLogicMock__factory.ts +++ b/typechain-types/factories/contracts/testing/mockGateway/NodeLogicMock__factory.ts @@ -1291,7 +1291,7 @@ const _abi = [ ] as const; const _bytecode = - "0x60808060405234602f57600160ff19600c541617600c55600160ff19601f541617601f556192a490816100358239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c8062173d46146102465780631ed7831c146102415780632558fcec1461023c5780632ade38801461023757806332030cef14610232578063347f3a7c1461022d5780633e5e3c23146102285780633f7286f41461022357806366d9a9a01461021e578063735de9f7146102195780638016f22b146102145780638327f7901461020f57806385226c811461020a5780638c52853c14610205578063916a17c614610200578063944a3ba4146101fb578063acfdc212146101f6578063ad82a627146101f1578063b0464fdc146101ec578063b184b87c146101e7578063b1c388b8146101e2578063b5508aa9146101dd578063b8969900146101d8578063ba414fa6146101d3578063bea9849e146101ce578063cc5ad8b6146101c9578063ced6e793146101c4578063d333abf6146101bf578063d7b3eeaf146101ba578063e20c9f71146101b5578063ebcff1c6146101b0578063f51a071d146101ab578063f59e8a67146101a6578063f9a41697146101a15763fa7626d41461019c57600080fd5b6116ef565b6116b5565b61165c565b6115ec565b6112b0565b611230565b611217565b6111e3565b61117e565b611151565b611112565b6110ed565b6110ae565b611021565b611004565b610f68565b610ebc565b610e35565b610d99565b610d06565b610c5a565b610b95565b610b08565b610a33565b6108a8565b61087f565b6107d3565b610695565b610615565b6105c2565b610586565b6104a9565b610365565b6102d5565b61025b565b600091031261025657565b600080fd5b34610256576000366003190112610256576026546040516001600160a01b039091168152602090f35b906020808351928381520192019060005b8181106102a25750505090565b82516001600160a01b0316845260209384019390920191600101610295565b9060206102d2928181520190610284565b90565b346102565760003660031901126102565760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b818110610346576103428561033681870382610966565b604051918291826102c1565b0390f35b82546001600160a01b031684526020909301926001928301920161031f565b34610256576020366003190112610256576004356000526022602052602060018060a01b0360406000205416604051908152f35b60005b8381106103ac5750506000910152565b818101518382015260200161039c565b906020916103d581518092818552858086019101610399565b601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061041457505050505090565b9091929394603f198282030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b85010194019260005b82811061047e57505050505060208060019297019301930191939290610405565b909192939460208061049c600193605f1987820301895289516103bc565b970195019392910161045d565b3461025657600036600319011261025657601e546104c681611712565b906104d46040519283610966565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061051a576040518061034287826103e1565b6002602060019260405161052d8161090f565b848060a01b0386541681526105438587016117f3565b83820152815201920192019190610505565b6001600160a01b0381160361025657565b6064359061057382610555565b565b9060206102d29281815201906103bc565b34610256576020366003190112610256576103426105ae6004356105a981610555565b61184b565b6040519182916020835260208301906103bc565b34610256576040366003190112610256576106136024356004356105e582610555565b600052602260205260406000209060018060a01b03166bffffffffffffffffffffffff60a01b825416179055565b005b346102565760003660031901126102565760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b818110610676576103428561033681870382610966565b82546001600160a01b031684526020909301926001928301920161065f565b346102565760003660031901126102565760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b8181106106f6576103428561033681870382610966565b82546001600160a01b03168452602090930192600192830192016106df565b906020808351928381520192019060005b8181106107335750505090565b82516001600160e01b031916845260209384019390920191600101610726565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061078657505050505090565b90919293946020806107c4600193603f19868203018752895190836107b483516040845260408401906103bc565b9201519084818403910152610715565b97019301930191939290610777565b3461025657600036600319011261025657601b546107f081611712565b906107fe6040519283610966565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b83831061084457604051806103428782610753565b600260206001926040516108578161090f565b61086086611729565b815261086d858701611883565b8382015281520192019201919061082f565b34610256576000366003190112610256576025546040516001600160a01b039091168152602090f35b34610256576040366003190112610256576106136024356004356108cb82610555565b600090815260216020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761092a57604052565b6108f9565b61010081019081106001600160401b0382111761092a57604052565b606081019081106001600160401b0382111761092a57604052565b90601f801991011681019081106001600160401b0382111761092a57604052565b60405190610573602083610966565b60405190610573606083610966565b60405190610573608083610966565b6040519061057360c083610966565b6001600160401b03811161092a57601f01601f191660200190565b81601f82011215610256578035906109f5826109c3565b92610a036040519485610966565b8284526020838301011161025657816000926020809301838601378301015290565b908160a09103126102565790565b346102565760a036600319011261025657600435610a5081610555565b6024356001600160401b03811161025657610a6f9036906004016109de565b90606435604435610a7f82610555565b608435936001600160401b03851161025657610aa2610613953690600401610a25565b93611f79565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610adb57505050505090565b9091929394602080610af9600193603f1986820301875289516103bc565b97019301930191939290610acc565b3461025657600036600319011261025657601a54610b2581611712565b90610b336040519283610966565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310610b7857604051806103428782610aa8565b600160208192610b8785611729565b815201920192019190610b63565b34610256576040366003190112610256576020602435600435610bb782610555565b60009081526023835260408082206001600160a01b03938416835260205290205b5416604051908152f35b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610c1557505050505090565b9091929394602080610c4b600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610715565b97019301930191939290610c06565b3461025657600036600319011261025657601d54610c7781611712565b90610c856040519283610966565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b838310610ccb57604051806103428782610be2565b60026020600192604051610cde8161090f565b848060a01b038654168152610cf4858701611883565b83820152815201920192019190610cb6565b3461025657602036600319011261025657600435610d2381610555565b601f8054610100600160a81b03191660089290921b610100600160a81b0316919091179055005b9181601f84011215610256578235916001600160401b038311610256576020838186019501011161025657565b60409060a31901126102565760a490565b604090608319011261025657608490565b346102565761010036600319011261025657600435610db781610555565b6024356001600160401b03811161025657610dd69036906004016109de565b90604435610de2610566565b6084356001600160401b03811161025657610e01903690600401610d4a565b91610e0b36610d77565b9360e435966001600160401b03881161025657610e2f610613983690600401610a25565b96612b04565b346102565760e036600319011261025657602435600435610e5582610555565b604435610e6181610555565b60643590608435610e7181610555565b60a4356001600160401b03811161025657610e90903690600401610d4a565b93909260c435966001600160401b03881161025657610eb6610613983690600401610a25565b96613476565b3461025657600036600319011261025657601c54610ed981611712565b90610ee76040519283610966565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b838310610f2d57604051806103428782610be2565b60026020600192604051610f408161090f565b848060a01b038654168152610f56858701611883565b83820152815201920192019190610f18565b346102565760e036600319011261025657600435610f8581610555565b6024356001600160401b03811161025657610fa49036906004016109de565b90604435610fb181610555565b6064356001600160401b03811161025657610fd0903690600401610d4a565b90610fda36610d88565b9260c435956001600160401b03871161025657610ffe610613973690600401610a25565b956138d4565b346102565760003660031901126102565760208054604051908152f35b346102565760003660031901126102565760195461103e81611712565b9061104c6040519283610966565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b83831061109157604051806103428782610aa8565b6001602081926110a085611729565b81520192019201919061107c565b34610256576020366003190112610256576004356110cb81610555565b602680546001600160a01b0319166001600160a01b0392909216919091179055005b34610256576000366003190112610256576020611108613d3b565b6040519015158152f35b346102565760203660031901126102565760043561112f81610555565b602580546001600160a01b0319166001600160a01b0392909216919091179055005b3461025657600036600319011261025657601f5460405160089190911c6001600160a01b03168152602090f35b346102565760c03660031901126102565760243560043561119e82610555565b6044356111aa81610555565b606435608435916111ba83610555565b60a435946001600160401b038611610256576111dd610613963690600401610a25565b94613e3f565b34610256576020366003190112610256576004356000526021602052602060018060a01b0360406000205416604051908152f35b3461025657602036600319011261025657600435602055005b346102565760003660031901126102565760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b818110611291576103428561033681870382610966565b82546001600160a01b031684526020909301926001928301920161127a565b346102565760a0366003190112610256576004356024356112d081610555565b604435916112dd83610555565b6064356001600160401b038111610256576112fc903690600401610d4a565b6084356001600160401b0381116102565761131b903690600401610a25565b601f549095906004906020906113449060081c6001600160a01b03165b6001600160a01b031690565b6040516313917f7760e11b815292839182905afa90811561151d576000916115bd575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d576115a8575b50601f546113d79060081c6001600160a01b0316611338565b604051606087901b6001600160601b03191660208201529261140684603481015b03601f198101865285610966565b61140e610996565b9384526001600160a01b038716602085015285604085015261144a61143d876000526022602052604060002090565b546001600160a01b031690565b90823b156102565760009461147786926040519889978896879563bcf7f32b60e01b875260048701614072565b03926216e360f1908161158d575b5061152257611492611d28565b60205460405163348051d760e11b8152600481019190915290919060008160248160008051602061924f8339815191525afa801561151d57610613956114ef6114ea866040946114f5966000916114fa575b5061413d565b6141c7565b016141bd565b616213565b61151791503d806000833e61150f8183610966565b810190611b3b565b386114e4565b611afa565b505060205460405163348051d760e11b81526004810191909152905060008160248160008051602061924f8339815191525afa90811561151d57610613916114ea91600091611572575b506140b9565b61158791503d806000833e61150f8183610966565b3861156c565b8061159c60006115a293610966565b8061024b565b38611485565b8061159c60006115b793610966565b386113be565b6115df915060203d6020116115e5575b6115d78183610966565b810190611c26565b38611367565b503d6115cd565b3461025657604036600319011261025657602060243560043561160e82610555565b60009081526024835260408082206001600160a01b0393841683526020529020610bd8565b6060906003190112610256576004359060243561164f81610555565b906044356102d281610555565b346102565761061361169661167036611633565b9291600052602360205260406000209060018060a01b0316600052602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b34610256576106136116966116c936611633565b9291600052602460205260406000209060018060a01b0316600052602052604060002090565b3461025657600036600319011261025657602060ff601f54166040519015158152f35b6001600160401b03811161092a5760051b60200190565b9060405191600081548060011c92600182169182156117e9575b6020851083146117d55784875286939260208501929181156117b85750600114611776575b505061057392500383610966565b611787919250600052602060002090565b906000915b8483106117a157506105739350013880611768565b80548284015286935060209092019160010161178c565b9150506105739491925060ff19168252151560051b013880611768565b634e487b7160e01b84526022600452602484fd5b93607f1693611743565b9081546117ff81611712565b9261180d6040519485610966565b818452602084019060005260206000206000915b83831061182e5750505050565b60016020819261183d85611729565b815201920192019190611821565b90813b6000611859826109c3565b6118666040519182610966565b828152611872836109c3565b602082019190601f1901368337943c565b604051815480825290929183906118a36020830191600052602060002090565b926000905b8060078301106119eb576105739454918181106119cc575b8181106119ad575b81811061198e575b81811061196f575b818110611950575b818110611931575b818110611913575b106118fe575b500383610966565b6001600160e01b0319168152602001386118f6565b602083811b6001600160e01b031916855290936001910193016118f0565b604083901b6001600160e01b03191684529260019060200193016118e8565b606083901b6001600160e01b03191684529260019060200193016118e0565b608083901b6001600160e01b03191684529260019060200193016118d8565b60a083901b6001600160e01b03191684529260019060200193016118d0565b60c083901b6001600160e01b03191684529260019060200193016118c8565b6001600160e01b031960e084901b1684529260019060200193016118c0565b916008919350610100600191611a9a8754611a11838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b0194019201859293916118a8565b60405190611ab58261092f565b606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b90816020910312610256575190565b6040513d6000823e3d90fd5b90929192611b13816109c3565b91611b216040519384610966565b829482845282820111610256576020610573930190610399565b602081830312610256578051906001600160401b03821161025657019080601f830112156102565781516102d292602001611b06565b90610573601b602960405180956802db1b430b4b724b2160bd1b6020830152611ba38151809260208686019101610399565b81017f5d205b4552524f525d2047617465776179206e6f7420666f756e640000000000838201520301600419810185520183610966565b9060208251920151916bffffffffffffffffffffffff1983169260148210611c00575050565b6001600160601b031960149290920360031b82901b16169150565b519061057382610555565b9081602091031261025657516102d281610555565b90610573601b602960405180956802db1b430b4b724b2160bd1b6020830152611c6d8151809260208686019101610399565b81017f5d205b4552524f525d20437573746f6479206e6f7420666f756e640000000000838201520301600419810185520183610966565b906105736033602960405180956802db1b430b4b724b2160bd1b6020830152611cd68151809260208686019101610399565b81017f5d205b494e464f5d2045524332302f5a45544120776974686472617720636f6d8382015272706c65746564207375636365737366756c6c7960681b604982015203016013810185520183610966565b3d15611d53573d90611d39826109c3565b91611d476040519384610966565b82523d6000602084013e565b606090565b60266105739193929360296040519586926802db1b430b4b724b2160bd1b6020850152611d8e8151809260208688019101610399565b83017f5d205b4552524f525d2045524332302f5a4554412077697468647261772066618382015265034b632b21d160d51b6049820152611dd8825180936020604f85019101610399565b01010301601f198101845283610966565b8015150361025657565b91909160a081840312610256576040519060a082018281106001600160401b0382111761092a5760405281938135611e2a81610555565b83526020820135611e3a81611de9565b60208401526040820135611e4d81610555565b60408401526060820135916001600160401b03831161025657611e7660809392849383016109de565b60608501520135910152565b906105736023602960405180956802db1b430b4b724b2160bd1b6020830152611eb48151809260208686019101610399565b81017f5d205b4552524f525d2047617320746f6b656e207472616e736665722066616983820152621b195960ea1b604982015203016003810185520183610966565b906105736032602960405180956802db1b430b4b724b2160bd1b6020830152611f288151809260208686019101610399565b81017f5d205b494e464f5d2047617320746f6b656e207472616e7366657220636f6d7083820152716c65746564207375636365737366756c6c7960701b604982015203016012810185520183610966565b9293919093611f86611aa8565b60405163085e1f4d60e41b81529095906001600160a01b03831690602081600481855afa90811561151d57611fd59161143d91600091612657575b50808a526000526021602052604060002090565b6001600160a01b0390811660208901818152929190611ff390611338565b16156125df5761203761203161204f9261201e61133861143d8d516000526022602052604060002090565b1460408b0190815294611bda565b611bda565b60601c90565b6001600160a01b031660608901908152925b51151590565b1561223f57516004919060209061206e906001600160a01b0316611338565b604051635b11259160e01b815293849182905afa91821561151d5760009261221e575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af191821561151d57600080866121068295839561211f9861220a575b50516001600160a01b031690565b5af1612110611d28565b50151560c08701908152612049565b15612190575050915160405163348051d760e11b815260048101919091529150600090508160248160008051602061924f8339815191525afa90811561151d57610573916114ea91600091612175575b50611ef6565b61218a91503d806000833e61150f8183610966565b3861216f565b845160405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa95861561151d576121e16114ea610573986121ea946000916121ef575b50611e82565b51933690611df3565b614ddf565b61220491503d806000833e61150f8183610966565b386121db565b8061159c8661221893610966565b386120f8565b61223891925060203d6020116115e5576115d78183610966565b9038612091565b80516004919060209061225a906001600160a01b0316611338565b60405163dda79b7560e01b815293849182905afa91821561151d576000926125be575b506001600160a01b03919091166080880181815291906122ad906122a090611338565b1560a08a01908152612049565b6125465751600491906020906122cb906001600160a01b0316611338565b604051635b11259160e01b815293849182905afa91821561151d57600092612525575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af191821561151d576113386123629261133892612370956125165750516001600160a01b031690565b91516001600160a01b031690565b6123a361143d8461238c8a516000526024602052604060002090565b9060018060a01b0316600052602052604060002090565b90823b1561025657604051636ce5768960e11b81526001600160a01b0391821660048201529116602482015260448101849052906000908290606490829084905af19081612501575b5061247f5761242e946123fd611d28565b90600060c08201528160e0820152600081516040518099819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d576114ea6121ea936121e1926105739a600091612464575b50611d58565b61247991503d806000833e61150f8183610966565b3861245e565b5050505060008161249660c06124b6940160019052565b516040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea916000916124e6575b50611ca4565b6124fb91503d806000833e61150f8183610966565b386124e0565b8061159c600061251093610966565b386123ec565b8061159c600061221893610966565b61253f91925060203d6020116115e5576115d78183610966565b90386122ee565b50505050505050600061257391516040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea916000916125a3575b50611c3b565b6125b891503d806000833e61150f8183610966565b3861259d565b6125d891925060203d6020116115e5576115d78183610966565b903861227d565b50505050505050600061260c91516040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea9160009161263c575b50611b71565b61265191503d806000833e61150f8183610966565b38612636565b612679915060203d60201161267f575b6126718183610966565b810190611aeb565b38611fc1565b503d612667565b6040519061014082018281106001600160401b0382111761092a5760405260606101208360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201528260e082015260006101008201520152565b356102d281611de9565b908060209392818452848401376000828201840152601f01601f1916010190565b90516001600160a01b039081168252918216602082015291166040820152606081019190915260a0608082018190526102d2939101916126f3565b90610573603c602960405180956802db1b430b4b724b2160bd1b60208301526127818151809260208686019101610399565b81017f5d205b494e464f5d2045524332302f5a45544120776974686472617720616e64838201527f2063616c6c20636f6d706c65746564207375636365737366756c6c790000000060498201520301601c810185520183610966565b602f6105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526128138151809260208688019101610399565b83017f5d205b4552524f525d2045524332302f5a45544120776974686472617720616e838201526e0321031b0b636103330b4b632b21d1608d1b6049820152611dd8825180936020605885019101610399565b906004116102565790600490565b356001600160e01b031981169291906004821061288f575050565b6001600160e01b031960049290920360031b82901b16169150565b90610573605a60405180947f526563656976657220636f6e747261637420646f6573206e6f7420636f6e746160208301527f696e2066756e6374696f6e20776974682073656c6563746f722000000000000060408301526129148151809260208686019101610399565b81010301601f198101845283610966565b600a6105739193929360296040519586926802db1b430b4b724b2160bd1b602085015261295b8151809260208688019101610399565b83016902e902da2a92927a92e960b51b83820152611dd8825180936020603385019101610399565b9080601f830112156102565781516102d292602001611b06565b906020828203126102565781516001600160401b038111610256576102d29201612983565b90516001600160a01b03908116825290911660208201526060604082018190526102d2939101916126f3565b90610573603b602960405180956802db1b430b4b724b2160bd1b6020830152612a208151809260208686019101610399565b81017f5d205b494e464f5d2047617320746f6b656e207472616e7366657220616e6420838201527f63616c6c20636f6d706c65746564207375636365737366756c6c79000000000060498201520301601b810185520183610966565b602e6105739193929360296040519586926802db1b430b4b724b2160bd1b6020850152612ab28151809260208688019101610399565b83017f5d205b4552524f525d2047617320746f6b656e207472616e7366657220616e64838201526d01031b0b636103330b4b632b21d160951b6049820152611dd8825180936020605785019101610399565b95969491939096612b13612686565b60405163085e1f4d60e41b815290986001600160a01b03861691602081600481865afa90811561151d57612b619161143d916000916132d0575b50808d526000526021602052604060002090565b6001600160a01b0390811660208c01818152939190612b7f90611338565b16156132a057612bba6120318c949361202c6040612bd095612bb261133861143d8b516000526022602052604060002090565b149701968752565b6001600160a01b031660608c0190815292612049565b15612f8957612be1602084016126e9565b612e34575b805160049493929190602090612c04906001600160a01b0316611338565b604051635b11259160e01b815296879182905afa94851561151d57600095612e13575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039590951660048601526000856024818360008051602061924f8339815191525af194851561151d576113388992612c9892600098612e055750516001600160a01b031690565b923592612cc1612ca6610987565b6001600160a01b038d168152935b516001600160a01b031690565b92612ce2604051988997889687946338e2252760e01b8652600486016129c2565b0393f19081612de4575b50612d8157612d3094612cfd611d28565b90600061010082015281610120820152600081516040518099819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d576114ea6121ea936121e1926105739a600091612d66575b50612a7c565b612d7b91503d806000833e61150f8183610966565b38612d60565b50505050600081612496610100612d99940160019052565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091612dc9575b506129ee565b612dde91503d806000833e61150f8183610966565b38612dc3565b612e00903d806000833e612df88183610966565b81019061299d565b612cec565b8061159c8a61221893610966565b612e2d91955060203d6020116115e5576115d78183610966565b9338612c27565b612e47612e418686612866565b90612874565b8251612e6e90612e6a908390612e65906001600160a01b031661184b565b61544d565b1590565b612e785750612be6565b9250505087925060009150612e9360c0612ebd990160019052565b604051631623433d60e31b81526001600160e01b0319909116600482015296879081906024820190565b038160008051602061924f8339815191525afa95861561151d57612f1896612eed91600091612f6e575b506128aa565b9060e08101918252600081516040518099819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d576114ea6121ea936121e1926105739a600092612f51575b505190612925565b612f679192503d806000833e61150f8183610966565b9038612f49565b612f8391503d806000833e61150f8183610966565b38612ee7565b80519194929160049190602090612fa8906001600160a01b0316611338565b60405163dda79b7560e01b815293849182905afa91821561151d5760009261327f575b506001600160a01b039190911660808b018181529190612fff908c906120499060a090612ff790611338565b159201918252565b61324f57516004919060209061301d906001600160a01b0316611338565b604051635b11259160e01b815293849182905afa91821561151d5760009261322e575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af191821561151d576113386130b292611338928e956125165750516001600160a01b031690565b92868a6130c36020863596016126e9565b1561321a575061143d6131069161238c6130f460009a5b612cb46130e5610987565b6001600160a01b03909d168d52565b95516000526024602052604060002090565b93803b156102565788966131366000979388946040519a8b998a9889966356840c2960e11b885260048801612714565b0393f19081613205575b506131a25761315194612cfd611d28565b038160008051602061924f8339815191525afa801561151d576114ea6121ea936121e1926105739a600091613187575b506127dd565b61319c91503d806000833e61150f8183610966565b38613181565b505050506000816124966101006131ba940160019052565b038160008051602061924f8339815191525afa90811561151d57610573916114ea916000916131ea575b5061274f565b6131ff91503d806000833e61150f8183610966565b386131e4565b8061159c600061321493610966565b38613140565b6131069161238c6130f461143d939a6130da565b61324891925060203d6020116115e5576115d78183610966565b9038613040565b50505050505050505050600061257391516040518093819263348051d760e11b8352600483019190602083019252565b61329991925060203d6020116115e5576115d78183610966565b9038612fcb565b50505050505050505050600061260c91516040518093819263348051d760e11b8352600483019190602083019252565b6132e9915060203d60201161267f576126718183610966565b38612b4d565b60256105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526133258151809260208688019101610399565b83017f5d205b4552524f525d205a52433230206e6f7420666f756e6420666f722061738382015264039b2ba1d160dd1b6049820152611dd8825180936020604e85019101610399565b9060408061338584516060855260608501906103bc565b6020808601516001600160a01b03169085015293015191015290565b9194926133bb6102d297959260a0855260a085019061336e565b6001600160a01b0396871660208501526040840191909152941660608201528084036080909101526126f3565b90610573603a602960405180956802db1b430b4b724b2160bd1b602083015261341a8151809260208686019101610399565b81017f5d205b494e464f5d205a657461436861696e206465706f73697420616e642063838201527f616c6c20636f6d706c65746564207375636365737366756c6c7900000000000060498201520301601a810185520183610966565b95969491909661349761143d8661238c8a6000526023602052604060002090565b926001600160a01b038416156136b457601f546004906020906134c59060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091613695575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57613680575b50601f546135589060081c6001600160a01b0316611338565b6040516001600160601b031960608c901b166020820152601481529161357f603484610966565b613587610996565b9283526001600160a01b038b166020840152896040840152813b1561025657600087936135ce82968994604051998a988997889663c39aca3760e01b8852600488016133a1565b03926216e360f1908161366b575b506135f357610573956135ed611d28565b95615710565b50505050505061362060006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091613650575b506133e8565b61366591503d806000833e61150f8183610966565b3861364a565b8061159c600061367a93610966565b386135dc565b8061159c600061368f93610966565b3861353f565b6136ae915060203d6020116115e5576115d78183610966565b386134e8565b50505050509150506136e5915060006020546040518094819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d5760009261377a575b50604051632b65311f60e11b81526001600160a01b03909116600482015260008180602481015b038160008051602061924f8339815191525afa801561151d57610573926114ea9260009261375d575b506132ef565b6137739192503d806000833e61150f8183610966565b9038613757565b61372e9192506137956000913d8084833e61150f8183610966565b929150613707565b6040519060e082018281106001600160401b0382111761092a57604052606060c083600081526000602082015260006040820152600083820152826080820152600060a08201520152565b90610573602d602960405180956802db1b430b4b724b2160bd1b602083015261381a8151809260208686019101610399565b81017f5d205b494e464f5d2045564d20657865637574696f6e20636f6d706c65746564838201526c207375636365737366756c6c7960981b60498201520301600d810185520183610966565b60206105739193929360296040519586926802db1b430b4b724b2160bd1b8585015261389a81518092878688019101610399565b83017f5d205b4552524f525d2045564d20657865637574696f6e206661696c65643a2083820152611dd88251809387604985019101610399565b939194959290600460206138e661379d565b60405163085e1f4d60e41b815290989092839182906001600160a01b03165afa90811561151d576139319161143d91600091613d1c575b508089526000526021602052604060002090565b6001600160a01b039081166020880181815292919061394f90611338565b1615613ced5761203161396191611bda565b6001600160a01b031660408701908152602088019161397f836126e9565b613be3575b6004949596979860206139a0611338845160018060a01b031690565b604051635b11259160e01b815297889182905afa95861561151d57600096613bc2575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039690961660048701526000866024818360008051602061924f8339815191525af191821561151d57613a37611338613a3f926000998a96613bb45750516001600160a01b031690565b9135946126e9565b8214613baa57613a6582935b612cb4613a56610987565b6001600160a01b039096168652565b92613a86604051988997889687946338e2252760e01b8652600486016129c2565b0393f19081613b91575b50613b3157613ad292613aa1611d28565b90600060a08201528160c0820152600081516040518097819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d576114ea613b1193613b089261057398600091613b16575b50613866565b51913690611df3565b6146df565b613b2b91503d806000833e61150f8183610966565b38613b02565b505060008161249660a0613b46940160019052565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091613b76575b506137e8565b613b8b91503d806000833e61150f8183610966565b38613b70565b613ba5903d806000833e612df88183610966565b613a90565b613a658993613a4b565b8061159c8861221893610966565b613bdc91965060203d6020116115e5576115d78183610966565b94386139c3565b613bf0612e418686612866565b98613c0b612e6a8b612e656105a9875160018060a01b031690565b613c16579850613984565b50505050505090916000613c5b94613c316060840160019052565b604051631623433d60e31b81526001600160e01b0319909116600482015294859081906024820190565b038160008051602061924f8339815191525afa93841561151d57613cb594613c8a91600091612f6e57506128aa565b9060808101918252600081516040518097819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d576114ea613b1193613b089261057398600092612f5157505190612925565b5050935160405163348051d760e11b81526004810191909152945060009350849250829150506024810161260c565b613d35915060203d60201161267f576126718183610966565b3861391d565b60085460ff168015613d4a5790565b50604051630667f9d760e41b815260008051602061924f833981519152600482018190526519985a5b195960d21b6024830152602090829060449082905afa90811561151d57600091613d9e575b50151590565b613db7915060203d60201161267f576126718183610966565b38613d98565b906105736031602960405180956802db1b430b4b724b2160bd1b6020830152613def8151809260208686019101610399565b81017f5d205b494e464f5d205a657461436861696e206465706f73697420636f6d706c838201527065746564207375636365737366756c6c7960781b604982015203016011810185520183610966565b939194929094613e6061143d8461238c886000526023602052604060002090565b906001600160a01b0382161561404257601f54600490602090613e8e9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091614023575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d5761400e575b50601f54613f219060081c6001600160a01b0316611338565b803b1561025657604051633d14d1b760e21b81526001600160a01b038481166004830152602482018690529290921660448301526000908290606490829084905af19081613ff9575b50613f815761057395613f7b611d28565b95615db5565b505050505050613fae60006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091613fde575b50613dbd565b613ff391503d806000833e61150f8183610966565b38613fd8565b8061159c600061400893610966565b38613f6a565b8061159c600061401d93610966565b38613f08565b61403c915060203d6020116115e5576115d78183610966565b38613eb1565b505060205460405163348051d760e11b8152600481019190915294509092506000915083905080602481016136e5565b909261408d6102d2969495939560a0845260a084019061336e565b6001600160a01b03958616602084015260006040840152941660608201528084036080909101526126f3565b906105736033602960405180956802db1b430b4b724b2160bd1b60208301526140eb8151809260208686019101610399565b81017f5d205b494e464f5d205a657461436861696e20657865637574696f6e20636f6d8382015272706c65746564207375636365737366756c6c7960681b604982015203016013810185520183610966565b60266105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526141738151809260208688019101610399565b83017f5d205b4552524f525d205a657461436861696e20657865637574696f6e2066618382015265034b632b21d160d51b6049820152611dd8825180936020604f85019101610399565b356102d281610555565b6141f46142026105739260405192839163104c13eb60e21b602084015260206024840181815201906103bc565b03601f198101835282610966565b617fe7565b90610573601e602960405180956802db1b430b4b724b2160bd1b60208301526142398151809260208686019101610399565b81017f5d205b494e464f5d2063616c6c4f6e5265766572742069732066616c73650000838201520301600119810185520183610966565b90610573601f602960405180956802db1b430b4b724b2160bd1b60208301526142a28151809260208686019101610399565b81017f5d205b4552524f525d2072657665727441646472657373206973207a65726f00838201520301600019810185520183610966565b90608060606102d29360018060a01b03815116845260018060a01b0360208201511660208501526040810151604085015201519181606082015201906103bc565b9060206102d29281815201906142d9565b600b90602d61057393959460296040519788946802db1b430b4b724b2160bd1b6020870152614363815180926020868a019101610399565b85017f5d205b494e464f5d20457865637574696e67206f6e526576657274206f6e2072838201526c032bb32b93a20b2323932b9b99609d1b60498201526143b4825180936020605685019101610399565b01016a0161031b7b73a32bc3a1d160ad1b83820152611dd8825180936020603885019101610399565b6001600160a01b039182168152602081019290925290911660408201526080606082018190526102d2929101906142d9565b6001600160a01b0390911681526040602082018190526102d2929101906142d9565b602081830312610256578051906001600160401b03821161025657019080601f830112156102565781519161446583611712565b926144736040519485610966565b80845260208085019160051b830101918383116102565760208101915b83831061449f57505050505090565b82516001600160401b038111610256578201906060828703601f19011261025657604051906144cd8261094b565b60208301516001600160401b0381116102565760209084010187601f82011215610256578051906144fd82611712565b9161450b6040519384610966565b80835260208084019160051b830101918a831161025657602001905b8282106145795750505082526040830151916001600160401b0383116102565761456960608561455f8b602080999881990101612983565b8685015201611c1b565b6040820152815201920191614490565b8151815260209182019101614527565b634e487b7160e01b600052603260045260246000fd5b8051156145ac5760200190565b614589565b8051600110156145ac5760400190565b8051600210156145ac5760600190565b80518210156145ac5760209160051b010190565b90610573601d602960405180956802db1b430b4b724b2160bd1b60208301526146178151809260208686019101610399565b81017f5d205b494e464f5d204576656e742066726f6d206f6e5265766572743a000000838201520301600219810185520183610966565b6040519061465d604083610966565b600a825269101032b6b4ba3a32b91d60b11b6020830152565b60405190614685604083610966565b600782526610103230ba309d60c91b6020830152565b604051906146aa604083610966565b60078252662020746f70696360c81b6020830152565b604051906146cf604083610966565b60018252601d60f91b6020830152565b9190606083019081516146f06109a5565b6001600160a01b03851681529060006020830152600060408301526060820152602085015115614d705760008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57614d5b575b5084516001600160a01b031615614cda5760405163348051d760e11b81526004810183905260008160248160008051602061924f8339815191525afa90811561151d57600091614cbf575b5085516147e7906000906001600160a01b03165b604051632b65311f60e11b81526001600160a01b03909116600482015291829081906024820190565b038160008051602061924f8339815191525afa801561151d5761483d91600091614ca4575b506000604051614823816141f4886020830161431a565b604051809481926371aad10d60e01b835260048301610575565b038160008051602061924f8339815191525afa90811561151d5761486d936114ea93600093614c87575b5061432b565b601f5460049060209061488b9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091614c68575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57614c53575b50601f5461491e9060081c6001600160a01b0316611338565b85519091906001600160a01b031690823b1561025657614958926000928360405180968195829463184b079360e01b84526004840161440f565b03926216e360f19081614c3e575b5061498c57600080614984604061057397015160018060a01b031690565b935193616ba4565b9150506040519163064554e960e21b83526000836004818360008051602061924f8339815191525af192831561151d57600093614c1b575b5060005b8351811015614c15576149ef60406149e083876145d1565b5101516001600160a01b031690565b6040830151614a06906001600160a01b0316611338565b6001600160a01b0390911614614a1f575b6001016149c8565b60405163348051d760e11b815260048101849052909491929060008160248160008051602061924f8339815191525afa90811561151d57614a6c916114ea91600091614bfc575b506145e5565b614a8060006147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d57614ab391600091614be3575b50614aae61464e565b618002565b614ae160006020614ac488886145d1565b510151604051809381926371aad10d60e01b835260048301610575565b038160008051602061924f8339815191525afa801561151d57614b0f91600091614bca575b50614aae614676565b60005b614b1c86866145d1565b515151811015614bc157806000614b41614b6193614b3a8a8a6145d1565b51516145d1565b5160405180948192631623433d60e31b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d57600192614ba291600091614ba8575b50614b9361469b565b83614b9c6146c0565b91618046565b01614b12565b614bbb913d8091833e61150f8183610966565b38614b8a565b50919093614a17565b614bdd913d8091833e61150f8183610966565b38614b06565b614bf6913d8091833e61150f8183610966565b38614aa5565b614c0f913d8091833e61150f8183610966565b38614a66565b50505050565b614c3791933d8091833e614c2f8183610966565b810190614431565b91386149c4565b8061159c6000614c4d93610966565b38614966565b8061159c6000614c6293610966565b38614905565b614c81915060203d6020116115e5576115d78183610966565b386148ae565b614c9d9193503d806000833e61150f8183610966565b9138614867565b614cb991503d806000833e61150f8183610966565b3861480c565b614cd491503d806000833e61150f8183610966565b386147aa565b5060205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa94851561151d57614984604060009392614d336114ea6105739a87968791614d41575b50614270565b01516001600160a01b031690565b614d5591503d8089833e61150f8183610966565b38614d2d565b8061159c6000614d6a93610966565b3861475f565b5060405163348051d760e11b81526004810182905260008160248160008051602061924f8339815191525afa94851561151d57614984604060009392614d336114ea6105739a87968791614dc5575b50614207565b614dd991503d8089833e61150f8183610966565b38614dbf565b93929060608501928351614df16109a5565b6001600160a01b0387168152906001600160a01b03841660208301528260408301526060820152614e256020880151151590565b156153bd5760008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d576153a8575b5086516001600160a01b03161561533e5760405163348051d760e11b81526004810185905260008160248160008051602061924f8339815191525afa90811561151d57600091615323575b508751614ed2906000906001600160a01b03166147be565b038160008051602061924f8339815191525afa801561151d57614f0d91600091614ca457506000604051614823816141f4886020830161431a565b038160008051602061924f8339815191525afa90811561151d57614f3c936114ea93600093614c87575061432b565b601f54600490602090614f5a9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091615304575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d576152ef575b506001600160a01b03831661524f57601f54614ffb9060081c6001600160a01b0316611338565b87519091906001600160a01b031690823b1561025657615035926000928360405180968195829463184b079360e01b84526004840161440f565b03926216e360f1908161523a575b50615062576040959095015161057395906001600160a01b0316614984565b50509150505b60405163064554e960e21b8152916000836004818360008051602061924f8339815191525af192831561151d5760009361521f575b5060005b8351811015614c15576150b960406149e083876145d1565b60408301516150d0906001600160a01b0316611338565b6001600160a01b03909116146150e9575b6001016150a1565b60405163348051d760e11b815260048101849052909491929060008160248160008051602061924f8339815191525afa90811561151d57615135916114ea91600091614bfc57506145e5565b61514960006147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d5761517691600091614be35750614aae61464e565b61518760006020614ac488886145d1565b038160008051602061924f8339815191525afa801561151d576151b491600091614bca5750614aae614676565b60005b6151c186866145d1565b51515181101561521657806000614b416151df93614b3a8a8a6145d1565b038160008051602061924f8339815191525afa91821561151d5760019261521091600091614ba85750614b9361469b565b016151b7565b509190936150e1565b61523391933d8091833e614c2f8183610966565b913861509d565b8061159c600061524993610966565b38615043565b601f546152679060081c6001600160a01b0316611338565b87519091906001600160a01b031690823b15610256576152a39260009283604051809681958294639d4ba46560e01b84528a8c600486016143dd565b03926216e360f190816152da575b506152d0576040959095015161057395906001600160a01b0316614984565b5050915050615068565b8061159c60006152e993610966565b386152b1565b8061159c60006152fe93610966565b38614fd4565b61531d915060203d6020116115e5576115d78183610966565b38614f7d565b61533891503d806000833e61150f8183610966565b38614eba565b5060205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d5761057397614d336114ea614984946040946000916153935750614270565b614d5591503d806000833e61150f8183610966565b8061159c60006153b793610966565b38614e6f565b5060405163348051d760e11b81526004810184905260008160248160008051602061924f8339815191525afa90811561151d5761057397614d336114ea6149849460409460009161540e5750614207565b614dd991503d806000833e61150f8183610966565b634e487b7160e01b600052601160045260246000fd5b906104b0820180921161544857565b615423565b919060005b600481018082116154485784511061549757602081850101516001600160e01b031983811691161461548f57600019811461544857600101615452565b506001925050565b506000925050565b604051906154ac8261092f565b600060e083606081528260208201528260408201528260608201528260808201528260a08201528260c08201520152565b604051906154ec604083610966565b600782526619195c1bdcda5d60ca1b6020830152565b60405190615511604083610966565b601082526f19195c1bdcda5d08185b990818d85b1b60821b6020830152565b600990601461057393959460296040519788946802db1b430b4b724b2160bd1b6020870152615568815180926020868a019101610399565b85017302e902da2a92927a92e902d32ba30a1b430b4b7160651b8382015261559a825180936020603d85019101610399565b0101680103330b4b632b21d160bd1b83820152611dd8825180936020601d85019101610399565b919082604091031261025657602082516155da81610555565b92015190565b9081602091031261025657516102d281611de9565b90610573603a602960405180956802db1b430b4b724b2160bd1b60208301526156278151809260208686019101610399565b81017f5d205b4552524f525d204661696c656420746f206d696e74205a524332302074838201527f6f6b656e7320666f722070726f746f636f6c206164647265737300000000000060498201520301601a810185520183610966565b9190820391821161544857565b90610573602f602960405180956802db1b430b4b724b2160bd1b60208301526156c28151809260208686019101610399565b81017f5d205b4552524f525d204661696c656420746f206275726e2072656d61696e69838201526e6e67205a5243323020746f6b656e7360881b60498201520301600f810185520183610966565b9094939195615751939661572261549f565b9161572b615502565b835260006020546040518098819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa95861561151d576114ea826157b99861578893600091615d9a575b50865190615530565b6040805163fc5fecd560e01b815260808901356004820152966001600160a01b038416939190889081906024820190565b0381865afa801561151d57600097600091615d65575b50604085019081526001600160a01b039097166020850190815296601f546004906020906158089060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091615d46575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03821660048201526000816024818360008051602061924f8339815191525af1801561151d57615d31575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018d905260208160448160008a5af190811561151d57600091615d12575b5015156060870190815260008051602061924f8339815191523b15610256576040516303223eab60e11b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af190811561151d5761592e92612e6a92615cfd575b5051151590565b615c805780519060a0860191825260c086019861594b8a60019052565b805161595f906001600160a01b0316611338565b8603615bf8575b505060008051602061924f8339815191523b15610256576040516390c5013b60e01b8152906000826004818360008051602061924f8339815191525af191821561151d576159bb92615be3575b50518b615683565b608085018181529a9015615bc4575050601f54600491506020906159ea9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091615ba5575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57600092602092615a9292615b91575b508a51604051948580948193630852cd8d60e31b8352600483019190602083019252565b03925af1801561151d57615abd92612e6a92600092615b59575b5060e0612049910191829015159052565b615ae157615adb615ad361057397519451151590565b943690611df3565b90618832565b505050505050615b0e60006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091615b3e575b50615690565b615b5391503d806000833e61150f8183610966565b38615b38565b612049919250615b8260e09160203d602011615b8a575b615b7a8183610966565b8101906155e0565b929150615aac565b503d615b70565b8061159c86615b9f93610966565b38615a6e565b615bbe915060203d6020116115e5576115d78183610966565b38615a0d565b9496509450956105739850615bde925060409150016141bd565b61788e565b8061159c6000615bf293610966565b386159b3565b60008a52516001600160a01b03169051601f54600490602090615c269060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa91821561151d57615c56938f92600094615c5f575b5086618362565b81523880615966565b615c7991945060203d6020116115e5576115d78183610966565b9238615c4f565b5050505050505050505050615cb260006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091615ce2575b506155f5565b615cf791503d806000833e61150f8183610966565b38615cdc565b8061159c6000615d0c93610966565b38615927565b615d2b915060203d602011615b8a57615b7a8183610966565b386158be565b8061159c6000615d4093610966565b38615880565b615d5f915060203d6020116115e5576115d78183610966565b3861582b565b9050615d8a91975060403d604011615d93575b615d828183610966565b8101906155c1565b969096386157cf565b503d615d78565b615daf91503d806000833e61150f8183610966565b3861577f565b90949391956157519396615dc761549f565b9161572b6154dd565b90610573601e602960405180956802db1b430b4b724b2160bd1b6020830152615e028151809260208686019101610399565b81017f5d205b4552524f525d2061626f727441646472657373206973207a65726f0000838201520301600119810185520183610966565b6007600461057392949394602f6040519687926e021b0b713ba103a3930b739b332b91608d1b6020850152615e778151809260208688019101610399565b83016301037b3160e51b83820152615e99825180936020603385019101610399565b01016620746f6b656e7360c81b838201520301601819810185520183610966565b600460129295946017610573956029604051998a966802db1b430b4b724b2160bd1b6020890152615ef4815180926020868c019101610399565b87017f5d205b4552524f525d205472616e7366657272696e672000000000000000000083820152615f2f825180936020604085019101610399565b01016301037b3160e51b83820152615f51825180936020601b85019101610399565b0101710103a37b5b2b739903a379039b2b73232b9160751b83820152611dd8825180936020601685019101610399565b602d6105739193929360296040519586926802db1b430b4b724b2160bd1b6020850152615fb78151809260208688019101610399565b83017f5d205b494e464f5d205472616e7366657272696e6720746f6b656e7320746f20838201526c030b137b93a20b2323932b9b99609d1b6049820152611dd8825180936020605685019101610399565b6102d29160a0616021835160c0845260c08401906103bc565b92600180831b036020820151166020840152604081015160408401526060810151151560608401526080810151608084015201519060a08184039101526103bc565b9060206102d2928181520190616008565b601d90601261057393959460296040519788946802db1b430b4b724b2160bd1b60208701526160ac815180926020868a019101610399565b85017102e902da4a72327ae9021b7b73a3930b1ba160751b838201526160dc825180936020603b85019101610399565b01017f20657865637574696e67206f6e41626f72742c20636f6e746578743a2000000083820152611dd8825180936020602f85019101610399565b6001600160a01b0390911681526040602082018190526102d292910190616008565b90610573601c602960405180956802db1b430b4b724b2160bd1b602083015261616b8151809260208686019101610399565b81017f5d205b494e464f5d204576656e742066726f6d206f6e41626f72743a00000000838201520301600319810185520183610966565b601a6105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526161d88151809260208688019101610399565b83017f5d205b4552524f525d206f6e41626f7274206661696c65643a2000000000000083820152611dd8825180936020604385019101610399565b6001600160a01b0381169360009390928515616a625760205460405163348051d760e11b81526004810191909152858160248160008051602061924f8339815191525afa90811561151d578691616a48575b50604051632b65311f60e11b81526001600160a01b038516600482015290868260248160008051602061924f8339815191525afa91821561151d5787926162b7926114ea928592616a2c575b50615f81565b616836575b604080516001600160a01b0390951660208601526162dd90859081016113f8565b6162e56109b4565b9384526001600160a01b0385166020850152604084018590528415156060850152608084015260a083015260205460405163348051d760e11b8152600481019190915283818060248101038160008051602061924f8339815191525afa90811561151d57849161681c575b50604051632b65311f60e11b81526001600160a01b0383166004820152848160248160008051602061924f8339815191525afa801561151d576163aa918691616802575b5085604051614823816141f48960208301616063565b038160008051602061924f8339815191525afa90811561151d576163d9936114ea9388936167e6575b50616074565b601f546004906020906163f79060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d5784916167c7575b5060008051602061924f8339815191523b156167975760405163ca669fa760e01b81526001600160a01b0391909116600482015283816024818360008051602061924f8339815191525af1801561151d576167b3575b5060008051602061924f8339815191523b156167af576040516320d797a960e11b815283816004818360008051602061924f8339815191525af1801561151d5761679b575b50601f546164cd9060081c6001600160a01b0316611338565b90813b15616797579183916164f99383604051809681958294632095dedb60e01b845260048401616117565b03925af19081616783575b50616583576165399150616516611d28565b816020546040518095819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d5761057393836114ea9492616568575b50506161a2565b61657c92503d8091833e61150f8183610966565b3880616561565b60405163064554e960e21b81529181836004818360008051602061924f8339815191525af192831561151d578293616767575b50815b8351811015614c1557816165d561133860406149e085896145d1565b146165e3575b6001016165b9565b60205460405163348051d760e11b81526004810191909152909490838160248160008051602061924f8339815191525afa90811561151d57616630916114ea91869161674d575b50616139565b616643836147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d5761666f9185916167395750614aae61464e565b61667f836020614ac488886145d1565b038160008051602061924f8339815191525afa801561151d576166ab9185916167255750614aae614676565b825b6166b786866145d1565b51515181101561671e578084614b416166d493614b3a8a8a6145d1565b038160008051602061924f8339815191525afa91821561151d5760019261670491879161670a5750614b9361469b565b016166ad565b614bbb91503d8089833e61150f8183610966565b50936165db565b614bdd91503d8087833e61150f8183610966565b614bf691503d8087833e61150f8183610966565b61676191503d8088833e61150f8183610966565b3861662a565b61677c9193503d8084833e614c2f8183610966565b91386165b6565b8061159c8461679193610966565b38616504565b8380fd5b8061159c856167a993610966565b386164b4565b8280fd5b8061159c856167c193610966565b3861646f565b6167e0915060203d6020116115e5576115d78183610966565b38616419565b6167fb9193503d808a833e61150f8183610966565b91386163d3565b61681691503d8088833e61150f8183610966565b38616394565b61683091503d8086833e61150f8183610966565b38616350565b601f546004906020906168549060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d578691616a0d575b5060008051602061924f8339815191523b156169d85760405163ca669fa760e01b81526001600160a01b038216600482015286816024818360008051602061924f8339815191525af1801561151d576169f9575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018790526020816044818a805af1801561151d576169dc575b5060008051602061924f8339815191523b156169d85760405163ca669fa760e01b81526001600160a01b0391909116600482015285816024818360008051602061924f8339815191525af1801561151d576169c4575b5060405163a9059cbb60e01b81526001600160a01b0384166004820152602481018690529360208560448189805af190811561151d576113f8956162dd926169a5575b509450506162bc565b6169bd9060203d602011615b8a57615b7a8183610966565b503861699c565b8061159c876169d293610966565b38616959565b8580fd5b6169f49060203d602011615b8a57615b7a8183610966565b616903565b8061159c88616a0793610966565b386168ca565b616a26915060203d6020116115e5576115d78183610966565b38616876565b616a419192503d8087833e61150f8183610966565b90386162b1565b616a5c91503d8088833e61150f8183610966565b38616265565b60205460405163348051d760e11b815260048101919091528590818160248160008051602061924f8339815191525afa90811561151d57616aae916114ea918491616b8a575b50615dd0565b5060405163348051d760e11b81526000600482018190528160248160008051602061924f8339815191525afa90811561151d57600091616b6f575b50604051632b65311f60e11b81526000600482018190528180602481015b038160008051602061924f8339815191525afa801561151d57616b4e92616b3692600092616b52575b50615e39565b60405162461bcd60e51b815291829160048301610575565b0390fd5b616b689192503d806000833e61150f8183610966565b9084616b30565b616b8491503d806000833e61150f8183610966565b81616ae9565b616b9e91503d8086833e61150f8183610966565b84616aa8565b6001600160a01b03811695949093909290919086156173e95760205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d576000916173ce575b50604051632b65311f60e11b81526001600160a01b038716600482015260008160248160008051602061924f8339815191525afa801561151d57616c4a926114ea926000926173b85750615f81565b6001600160a01b038116801515806173af575b6171ab575b50604080516001600160a01b039097166020880152616cae9190616c9390889081015b03601f198101895288610966565b616c9b6109b4565b9687526001600160a01b03166020870152565b604085015260016060850152608084015260a083015260205460405163348051d760e11b815260048101919091526000818060248101038160008051602061924f8339815191525afa90811561151d57600091617190575b50604051632b65311f60e11b81526001600160a01b038316600482015260008160248160008051602061924f8339815191525afa801561151d57616d6391600091617175575b506000604051614823816141f48960208301616063565b038160008051602061924f8339815191525afa90811561151d57616d92936114ea9360009361715f5750616074565b601f54600490602090616db09060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617140575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d5761712b575b5060008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57617116575b50601f54616e899060081c6001600160a01b0316611338565b91823b1561025657616eb59260009283604051809681958294632095dedb60e01b845260048401616117565b03925af19081617101575b50616f355750616ece611d28565b60205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa91821561151d57610573926114ea92600091616f1a575b506161a2565b616f2f91503d806000833e61150f8183610966565b38616f14565b60405163064554e960e21b8152906000826004818360008051602061924f8339815191525af191821561151d576000926170e6575b5060005b82518110156170e15781616f8a61133860406149e085886145d1565b14616f98575b600101616f6e565b60205460405163348051d760e11b8152600481019190915290939060008160248160008051602061924f8339815191525afa90811561151d57616fe6916114ea916000916170ce5750616139565b616ffa60006147be60406149e088886145d1565b038160008051602061924f8339815191525afa801561151d5761702791600091614be35750614aae61464e565b61703860006020614ac487876145d1565b038160008051602061924f8339815191525afa801561151d5761706591600091614bca5750614aae614676565b60005b61707285856145d1565b5151518110156170c757806000614b4161709093614b3a89896145d1565b038160008051602061924f8339815191525afa91821561151d576001926170c191600091614ba85750614b9361469b565b01617068565b5092616f90565b616761913d8091833e61150f8183610966565b505050565b6170fa91923d8091833e614c2f8183610966565b9038616f6a565b8061159c600061711093610966565b38616ec0565b8061159c600061712593610966565b38616e70565b8061159c600061713a93610966565b38616e2a565b617159915060203d6020116115e5576115d78183610966565b38616dd3565b6167fb9193503d806000833e61150f8183610966565b61718a91503d806000833e61150f8183610966565b38616d4c565b6171a591503d806000833e61150f8183610966565b38616d06565b601f549091906004906020906171cc9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617390575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03821660048201526000816024818360008051602061924f8339815191525af1801561151d5761737b575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018590526020816044816000885af1801561151d5761735e575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57617349575b5060405163a9059cbb60e01b81526001600160a01b03871660048201526024810184905291602090839060449082906000905af1801561151d57616c8597616cae93616c939261732a575b5097505090616c62565b6173429060203d602011615b8a57615b7a8183610966565b5038617320565b8061159c600061735893610966565b386172d5565b6173769060203d602011615b8a57615b7a8183610966565b61727e565b8061159c600061738a93610966565b38617244565b6173a9915060203d6020116115e5576115d78183610966565b386171ef565b50821515616c5d565b616a419192503d806000833e61150f8183610966565b6173e391503d806000833e61150f8183610966565b38616bfb565b95509250505060205460405163348051d760e11b81526000818061741585600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57617444916114ea916000916178735750615dd0565b6001600160a01b038416908115158061786a575b156177e15760405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d576000916177c6575b5060405163348051d760e11b8152600481018490529460008660248160008051602061924f8339815191525afa95861561151d576000966177a3575b50604051632b65311f60e11b81526001600160a01b03909116600482015260008180602481015b038160008051602061924f8339815191525afa90811561151d57600091617788575b50604051632b65311f60e11b81526001600160a01b03861660048201529060008260248160008051602061924f8339815191525afa90811561151d57600497617572946114ea9460009461776b575b50615eba565b601f5460209061758d9060081c6001600160a01b0316611338565b6040516313917f7760e11b815295869182905afa93841561151d5760009461774a575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03851660048201526000816024818360008051602061924f8339815191525af1801561151d57617735575b506040516311f9fbc960e21b81526001600160a01b0385166004820152602481018390526020816044816000865af1801561151d57617718575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039490941660048501526000846024818360008051602061924f8339815191525af192831561151d576176d794602094617703575b5060405163a9059cbb60e01b81526001600160a01b03909116600482015260248101929092529092839190829060009082906044820190565b03925af1801561151d576176e85750565b6177009060203d602011615b8a57615b7a8183610966565b50565b8061159c600061771293610966565b3861769e565b6177309060203d602011615b8a57615b7a8183610966565b61763f565b8061159c600061774493610966565b38617605565b61776491945060203d6020116115e5576115d78183610966565b92386175b0565b6177819194503d806000833e61150f8183610966565b923861756c565b61779d91503d806000833e61150f8183610966565b3861751d565b6174fb9196506177be6000913d8084833e61150f8183610966565b9691506174d4565b6177db91503d806000833e61150f8183610966565b38617498565b60405163348051d760e11b8152600481018490528560008260248160008051602061924f8339815191525afa91821561151d57600092617847575b50604051632b65311f60e11b81526001600160a01b0390911660048201526000818060248101616b07565b616b079192506178626000913d8084833e61150f8183610966565b92915061781c565b50821515617458565b61788891503d806000833e61150f8183610966565b38616aa8565b6001600160a01b03811695949093909290919086156173e95760205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d57600091617fcc575b50604051632b65311f60e11b81526001600160a01b038716600482015260008160248160008051602061924f8339815191525afa801561151d57617934926114ea926000926173b85750615f81565b6001600160a01b03811680151580617fc3575b617dbf575b50604080516001600160a01b0390971660208801526179739190616c939088908101616c85565b604085015260006060850152608084015260a083015260205460405163348051d760e11b815260048101919091526000818060248101038160008051602061924f8339815191525afa90811561151d57600091617da4575b50604051632b65311f60e11b81526001600160a01b038316600482015260008160248160008051602061924f8339815191525afa801561151d57617a279160009161717557506000604051614823816141f48960208301616063565b038160008051602061924f8339815191525afa90811561151d57617a56936114ea9360009361715f5750616074565b601f54600490602090617a749060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617d85575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57617d70575b5060008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57617d5b575b50601f54617b4d9060081c6001600160a01b0316611338565b91823b1561025657617b799260009283604051809681958294632095dedb60e01b845260048401616117565b03925af19081617d46575b50617b925750616ece611d28565b60405163064554e960e21b8152906000826004818360008051602061924f8339815191525af191821561151d57600092617d2b575b5060005b82518110156170e15781617be761133860406149e085886145d1565b14617bf5575b600101617bcb565b60205460405163348051d760e11b8152600481019190915290939060008160248160008051602061924f8339815191525afa90811561151d57617c43916114ea916000916170ce5750616139565b617c5760006147be60406149e088886145d1565b038160008051602061924f8339815191525afa801561151d57617c8491600091614be35750614aae61464e565b617c9560006020614ac487876145d1565b038160008051602061924f8339815191525afa801561151d57617cc291600091614bca5750614aae614676565b60005b617ccf85856145d1565b515151811015617d2457806000614b41617ced93614b3a89896145d1565b038160008051602061924f8339815191525afa91821561151d57600192617d1e91600091614ba85750614b9361469b565b01617cc5565b5092617bed565b617d3f91923d8091833e614c2f8183610966565b9038617bc7565b8061159c6000617d5593610966565b38617b84565b8061159c6000617d6a93610966565b38617b34565b8061159c6000617d7f93610966565b38617aee565b617d9e915060203d6020116115e5576115d78183610966565b38617a97565b617db991503d806000833e61150f8183610966565b386179cb565b601f54909190600490602090617de09060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617fa4575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03821660048201526000816024818360008051602061924f8339815191525af1801561151d57617f8f575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018590526020816044816000885af1801561151d57617f72575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57617f5d575b5060405163a9059cbb60e01b81526001600160a01b03871660048201526024810184905291602090839060449082906000905af1801561151d57616c859761797393616c9392617f3e575b509750509061794c565b617f569060203d602011615b8a57615b7a8183610966565b5038617f34565b8061159c6000617f6c93610966565b38617ee9565b617f8a9060203d602011615b8a57615b7a8183610966565b617e92565b8061159c6000617f9e93610966565b38617e58565b617fbd915060203d6020116115e5576115d78183610966565b38617e03565b50821515617947565b617fe191503d806000833e61150f8183610966565b386178e5565b600080916020815191016a636f6e736f6c652e6c6f675afa50565b614202618034916141f461057394604051948593634b5c427760e01b60208601526040602486015260648501906103bc565b838103602319016044850152906103bc565b6141f4610573946180936142029461807c96604051978896635ab84e1f60e01b60208901526080602489015260a48801906103bc565b9160448701526023198683030160648701526103bc565b838103602319016084850152906103bc565b156180ac57565b60405162461bcd60e51b8152602060048201526016602482015275155b9a5cddd85c081c9bdd5d195c881b9bdd081cd95d60521b6044820152606490fd5b156180f157565b60405162461bcd60e51b815260206004820152600d60248201526c15d6915510481b9bdd081cd95d609a1b6044820152606490fd5b604051608091906181378382610966565b6003815291601f1901366020840137565b604051606091906181598382610966565b6002815291601f1901366020840137565b602081830312610256578051906001600160401b03821161025657019080601f8301121561025657815161819d81611712565b926181ab6040519485610966565b81845260208085019260051b82010192831161025657602001905b8282106181d35750505090565b81518152602091820191016181c6565b919260809361820892979695978452602084015260a0604084015260a0830190610284565b6001600160a01b0390951660608201520152565b6040519061822b604083610966565b600282526134b760f11b6020830152565b6001600791601a61057394969560296040519889946802db1b430b4b724b2160bd1b6020870152618276815180926020868a019101610399565b85017f5d205b494e464f5d2053776170207375636365737366756c3a20000000000000838201526182b1825180936020604385019101610399565b0101600160fd1b838201526182d0825180936020601b85019101610399565b010166081b995959195960ca1b838201520301601819810185520183610966565b601f6105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526183278151809260208688019101610399565b83017f5d205b4552524f525d20556e69737761702073776170206661696c65643a200083820152611dd8825180936020604885019101610399565b60255493946001600160a01b0390941693909291906183828515156180a5565b6026546183a29061839b906001600160a01b0316611338565b15156180ea565b60405163095ea7b360e01b81526001600160a01b039586166004820152602481018790529484169460208160448160008a5af1801561151d5761869b575b5060006183eb618126565b91618408866183f98561459f565b6001600160a01b039091169052565b602654618422906001600160a01b03165b6183f9856145b1565b61842f846183f9856145c1565b61843842615439565b60255490939061845290611338906001600160a01b031681565b90838a61847660405197889687958694634401edf760e11b86528d600487016181e3565b03925af1908161867a575b506184f95750505050618492611d28565b60205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa91821561151d576102d2926114ea926000916184de575b506182f1565b6184f391503d806000833e61150f8183610966565b386184d8565b60265461851991906001600160a01b0316809361851461821c565b61916f565b918251156186735761852d6185369361459f565b5161851461821c565b9081511561866e5760205460405163348051d760e11b81526004810191909152925060008360248160008051602061924f8339815191525afa90811561151d576185ae93600092618651575b50600061858e8461459f565b516040518096819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa93841561151d5760009461862f575b506000600491604051928380926306fdde0360e01b82525afa801561151d5761860e94618609936114ea93600093618612575b5061823c565b61459f565b5190565b6186289193503d806000833e61150f8183610966565b9138618603565b60049194506186496000913d8084833e61150f8183610966565b9491506185d0565b6186679192503d806000833e61150f8183610966565b9038618582565b505090565b5050505090565b618696903d806000833e61868e8183610966565b81019061816a565b618481565b6186b39060203d602011615b8a57615b7a8183610966565b6183e0565b604051906186c7604083610966565b600382526267617360e81b6020830152565b60046012929594602e610573956029604051998a966802db1b430b4b724b2160bd1b6020890152618713815180926020868c019101610399565b87017f5d205b4552524f525d2072657665727441646472657373206973207a65726f2c838201526d0103a3930b739b332b93934b733960951b6049820152618765825180936020605785019101610399565b01016301037b3160e51b83820152615f51825180936020603285019101610399565b1561878e57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b6001600160a01b03918216815291166020820152604081019190915260a06060820181905260009082015260c0608082018190526102d2929101906142d9565b6080906102d2939260018060a01b03168152606060208201526000606082015281604082015201906142d9565b93949190946060860151926188456109a5565b6001600160a01b0382168152936001600160a01b038416602086015285604086015260608501526188796020880151151590565b15618e15575060008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57618e00575b5060405163348051d760e11b81526004810186905260008160248160008051602061924f8339815191525afa90811561151d57600091618de5575b508651618917906000906001600160a01b03166147be565b038160008051602061924f8339815191525afa801561151d5761895391600091618dca575b506000604051614823816141f48a6020830161431a565b038160008051602061924f8339815191525afa90811561151d57618982936114ea93600093614c87575061432b565b600460206189a061133861143d896000526021602052604060002090565b604051635b11259160e01b815292839182905afa90811561151d57600091618dab575b5060008051602061924f8339815191523b15610256576040516303223eab60e11b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57618d96575b5015618cc85750618a3b61133861143d856000526021602052604060002090565b608085015185519192916001600160a01b0316833b156102565760405163cb7ba8e560e01b815294600094869485938491618a799160048401618805565b0393f1801561151d57618cb3575b505b60008051602061924f8339815191523b15610256576040516390c5013b60e01b81526000816004818360008051602061924f8339815191525af1801561151d57618c9e575b5060405163064554e960e21b8152916000836004818360008051602061924f8339815191525af192831561151d57600093618c83575b5060005b8351811015614c1557618b2060406149e083876145d1565b8251618b34906001600160a01b0316611338565b6001600160a01b0390911614618b4d575b600101618b08565b60405163348051d760e11b815260048101849052909491929060008160248160008051602061924f8339815191525afa90811561151d57618b99916114ea91600091614bfc57506145e5565b618bad60006147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d57618bda91600091614be35750614aae61464e565b618beb60006020614ac488886145d1565b038160008051602061924f8339815191525afa801561151d57618c1891600091614bca5750614aae614676565b60005b618c2586866145d1565b515151811015618c7a57806000614b41618c4393614b3a8a8a6145d1565b038160008051602061924f8339815191525afa91821561151d57600192618c7491600091614ba85750614b9361469b565b01618c1b565b50919093618b45565b618c9791933d8091833e614c2f8183610966565b9138618b04565b8061159c6000618cad93610966565b38618ace565b8061159c6000618cc293610966565b38618a87565b909160046020618ce861133861143d886000526021602052604060002090565b60405163dda79b7560e01b815292839182905afa90811561151d57600091618d77575b50608086015186516001600160a01b0392831694919216843b15610256576000948591618d4e60405198899788968794634cd1e1ab60e11b8652600486016187c5565b0393f1801561151d57618d62575b50618a89565b8061159c6000618d7193610966565b38618d5c565b618d90915060203d6020116115e5576115d78183610966565b38618d0b565b8061159c6000618da593610966565b38618a1a565b618dc4915060203d6020116115e5576115d78183610966565b386189c3565b618ddf91503d806000833e61150f8183610966565b3861893c565b618dfa91503d806000833e61150f8183610966565b386188ff565b8061159c6000618e0f93610966565b386188c4565b60405163348051d760e11b81526004810187905294969095929491935060008260248160008051602061924f8339815191525afa801561151d576114ea612cb491618e679460009161540e5750614207565b936001600160a01b03851615618fa8575b506020618e9761133861143d6004946000526021602052604060002090565b604051635b11259160e01b815292839182905afa90811561151d57600091618f89575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57618f74575b5015618f325750600080806105739481945af1618f2c611d28565b50618787565b60405163a9059cbb60e01b81526001600160a01b039283166004820152602481019390935260209183916044918391600091165af1801561151d576176e85750565b8061159c6000618f8393610966565b38618f11565b618fa2915060203d6020116115e5576115d78183610966565b38618eba565b60405163348051d760e11b81526004810183905291945060008260248160008051602061924f8339815191525afa91821561151d5760009261913b575b5060405163348051d760e11b8152600481018790529060008260248160008051602061924f8339815191525afa91821561151d5760009261911e575b50600084156190bc57506190336186b8565b604051632b65311f60e11b81526001600160a01b03831660048201529260008460248160008051602061924f8339815191525afa92831561151d576190946114ea618e97956113389561143d9560049a60209a60009461909f575b506186d9565b979450505050618e78565b6190b59194503d806000833e61150f8183610966565b923861908e565b604051632b65311f60e11b81526001600160a01b0387166004820152818160248160008051602061924f8339815191525afa91821561151d578092619103575b5050619033565b61911792503d8091833e61150f8183610966565b38806190fc565b6191349192503d806000833e61150f8183610966565b9038619021565b6191519192503d806000833e61150f8183610966565b9038618fe5565b6040906102d2939281528160208201520190610284565b90919261918b90618419619181618148565b956183f98761459f565b6020815191012061919a61821c565b6020815191012014600014619211576025546191e69260009290916191c990611338906001600160a01b031681565b906040518095819482936307c0329d60e21b845260048401619158565b03915afa90811561151d576000916191fc575090565b6102d291503d806000833e61868e8183610966565b6025546191e692600092909161923190611338906001600160a01b031681565b9060405180958194829363d06ca61f60e01b84526004840161915856fe0000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da26469706673582212201fce51ed1ff9d0f5f4ea6ac5dba002558bc8864b5d87779ba4c2fa367c0a470364736f6c634300081a0033"; + "0x60808060405234602f57600160ff19600c541617600c55600160ff19601f541617601f556192a490816100358239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c8062173d46146102465780631ed7831c146102415780632558fcec1461023c5780632ade38801461023757806332030cef14610232578063347f3a7c1461022d5780633e5e3c23146102285780633f7286f41461022357806366d9a9a01461021e578063735de9f7146102195780638016f22b146102145780638327f7901461020f57806385226c811461020a5780638c52853c14610205578063916a17c614610200578063944a3ba4146101fb578063acfdc212146101f6578063ad82a627146101f1578063b0464fdc146101ec578063b184b87c146101e7578063b1c388b8146101e2578063b5508aa9146101dd578063b8969900146101d8578063ba414fa6146101d3578063bea9849e146101ce578063cc5ad8b6146101c9578063ced6e793146101c4578063d333abf6146101bf578063d7b3eeaf146101ba578063e20c9f71146101b5578063ebcff1c6146101b0578063f51a071d146101ab578063f59e8a67146101a6578063f9a41697146101a15763fa7626d41461019c57600080fd5b6116ef565b6116b5565b61165c565b6115ec565b6112b0565b611230565b611217565b6111e3565b61117e565b611151565b611112565b6110ed565b6110ae565b611021565b611004565b610f68565b610ebc565b610e35565b610d99565b610d06565b610c5a565b610b95565b610b08565b610a33565b6108a8565b61087f565b6107d3565b610695565b610615565b6105c2565b610586565b6104a9565b610365565b6102d5565b61025b565b600091031261025657565b600080fd5b34610256576000366003190112610256576026546040516001600160a01b039091168152602090f35b906020808351928381520192019060005b8181106102a25750505090565b82516001600160a01b0316845260209384019390920191600101610295565b9060206102d2928181520190610284565b90565b346102565760003660031901126102565760405180602060165491828152019060166000527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899060005b818110610346576103428561033681870382610966565b604051918291826102c1565b0390f35b82546001600160a01b031684526020909301926001928301920161031f565b34610256576020366003190112610256576004356000526022602052602060018060a01b0360406000205416604051908152f35b60005b8381106103ac5750506000910152565b818101518382015260200161039c565b906020916103d581518092818552858086019101610399565b601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061041457505050505090565b9091929394603f198282030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b85010194019260005b82811061047e57505050505060208060019297019301930191939290610405565b909192939460208061049c600193605f1987820301895289516103bc565b970195019392910161045d565b3461025657600036600319011261025657601e546104c681611712565b906104d46040519283610966565b80825260208201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3506000915b83831061051a576040518061034287826103e1565b6002602060019260405161052d8161090f565b848060a01b0386541681526105438587016117f3565b83820152815201920192019190610505565b6001600160a01b0381160361025657565b6064359061057382610555565b565b9060206102d29281815201906103bc565b34610256576020366003190112610256576103426105ae6004356105a981610555565b61184b565b6040519182916020835260208301906103bc565b34610256576040366003190112610256576106136024356004356105e582610555565b600052602260205260406000209060018060a01b03166bffffffffffffffffffffffff60a01b825416179055565b005b346102565760003660031901126102565760405180602060185491828152019060186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e9060005b818110610676576103428561033681870382610966565b82546001600160a01b031684526020909301926001928301920161065f565b346102565760003660031901126102565760405180602060175491828152019060176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159060005b8181106106f6576103428561033681870382610966565b82546001600160a01b03168452602090930192600192830192016106df565b906020808351928381520192019060005b8181106107335750505090565b82516001600160e01b031916845260209384019390920191600101610726565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061078657505050505090565b90919293946020806107c4600193603f19868203018752895190836107b483516040845260408401906103bc565b9201519084818403910152610715565b97019301930191939290610777565b3461025657600036600319011261025657601b546107f081611712565b906107fe6040519283610966565b80825260208201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc16000915b83831061084457604051806103428782610753565b600260206001926040516108578161090f565b61086086611729565b815261086d858701611883565b8382015281520192019201919061082f565b34610256576000366003190112610256576025546040516001600160a01b039091168152602090f35b34610256576040366003190112610256576106136024356004356108cb82610555565b600090815260216020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761092a57604052565b6108f9565b61010081019081106001600160401b0382111761092a57604052565b606081019081106001600160401b0382111761092a57604052565b90601f801991011681019081106001600160401b0382111761092a57604052565b60405190610573602083610966565b60405190610573606083610966565b60405190610573608083610966565b6040519061057360c083610966565b6001600160401b03811161092a57601f01601f191660200190565b81601f82011215610256578035906109f5826109c3565b92610a036040519485610966565b8284526020838301011161025657816000926020809301838601378301015290565b908160a09103126102565790565b346102565760a036600319011261025657600435610a5081610555565b6024356001600160401b03811161025657610a6f9036906004016109de565b90606435604435610a7f82610555565b608435936001600160401b03851161025657610aa2610613953690600401610a25565b93611f79565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610adb57505050505090565b9091929394602080610af9600193603f1986820301875289516103bc565b97019301930191939290610acc565b3461025657600036600319011261025657601a54610b2581611712565b90610b336040519283610966565b808252601a60009081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310610b7857604051806103428782610aa8565b600160208192610b8785611729565b815201920192019190610b63565b34610256576040366003190112610256576020602435600435610bb782610555565b60009081526023835260408082206001600160a01b03938416835260205290205b5416604051908152f35b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610c1557505050505090565b9091929394602080610c4b600193603f198682030187526040838b51878060a01b03815116845201519181858201520190610715565b97019301930191939290610c06565b3461025657600036600319011261025657601d54610c7781611712565b90610c856040519283610966565b80825260208201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f6000915b838310610ccb57604051806103428782610be2565b60026020600192604051610cde8161090f565b848060a01b038654168152610cf4858701611883565b83820152815201920192019190610cb6565b3461025657602036600319011261025657600435610d2381610555565b601f8054610100600160a81b03191660089290921b610100600160a81b0316919091179055005b9181601f84011215610256578235916001600160401b038311610256576020838186019501011161025657565b60409060a31901126102565760a490565b604090608319011261025657608490565b346102565761010036600319011261025657600435610db781610555565b6024356001600160401b03811161025657610dd69036906004016109de565b90604435610de2610566565b6084356001600160401b03811161025657610e01903690600401610d4a565b91610e0b36610d77565b9360e435966001600160401b03881161025657610e2f610613983690600401610a25565b96612b04565b346102565760e036600319011261025657602435600435610e5582610555565b604435610e6181610555565b60643590608435610e7181610555565b60a4356001600160401b03811161025657610e90903690600401610d4a565b93909260c435966001600160401b03881161025657610eb6610613983690600401610a25565b96613476565b3461025657600036600319011261025657601c54610ed981611712565b90610ee76040519283610966565b80825260208201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2116000915b838310610f2d57604051806103428782610be2565b60026020600192604051610f408161090f565b848060a01b038654168152610f56858701611883565b83820152815201920192019190610f18565b346102565760e036600319011261025657600435610f8581610555565b6024356001600160401b03811161025657610fa49036906004016109de565b90604435610fb181610555565b6064356001600160401b03811161025657610fd0903690600401610d4a565b90610fda36610d88565b9260c435956001600160401b03871161025657610ffe610613973690600401610a25565b956138d4565b346102565760003660031901126102565760208054604051908152f35b346102565760003660031901126102565760195461103e81611712565b9061104c6040519283610966565b808252601960009081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b83831061109157604051806103428782610aa8565b6001602081926110a085611729565b81520192019201919061107c565b34610256576020366003190112610256576004356110cb81610555565b602680546001600160a01b0319166001600160a01b0392909216919091179055005b34610256576000366003190112610256576020611108613d3b565b6040519015158152f35b346102565760203660031901126102565760043561112f81610555565b602580546001600160a01b0319166001600160a01b0392909216919091179055005b3461025657600036600319011261025657601f5460405160089190911c6001600160a01b03168152602090f35b346102565760c03660031901126102565760243560043561119e82610555565b6044356111aa81610555565b606435608435916111ba83610555565b60a435946001600160401b038611610256576111dd610613963690600401610a25565b94613e3f565b34610256576020366003190112610256576004356000526021602052602060018060a01b0360406000205416604051908152f35b3461025657602036600319011261025657600435602055005b346102565760003660031901126102565760405180602060155491828152019060156000527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4759060005b818110611291576103428561033681870382610966565b82546001600160a01b031684526020909301926001928301920161127a565b346102565760a0366003190112610256576004356024356112d081610555565b604435916112dd83610555565b6064356001600160401b038111610256576112fc903690600401610d4a565b6084356001600160401b0381116102565761131b903690600401610a25565b601f549095906004906020906113449060081c6001600160a01b03165b6001600160a01b031690565b6040516313917f7760e11b815292839182905afa90811561151d576000916115bd575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d576115a8575b50601f546113d79060081c6001600160a01b0316611338565b604051606087901b6001600160601b03191660208201529261140684603481015b03601f198101865285610966565b61140e610996565b9384526001600160a01b038716602085015285604085015261144a61143d876000526022602052604060002090565b546001600160a01b031690565b90823b156102565760009461147786926040519889978896879563bcf7f32b60e01b875260048701614072565b03926216e360f1908161158d575b5061152257611492611d28565b60205460405163348051d760e11b8152600481019190915290919060008160248160008051602061924f8339815191525afa801561151d57610613956114ef6114ea866040946114f5966000916114fa575b5061413d565b6141c7565b016141bd565b616213565b61151791503d806000833e61150f8183610966565b810190611b3b565b386114e4565b611afa565b505060205460405163348051d760e11b81526004810191909152905060008160248160008051602061924f8339815191525afa90811561151d57610613916114ea91600091611572575b506140b9565b61158791503d806000833e61150f8183610966565b3861156c565b8061159c60006115a293610966565b8061024b565b38611485565b8061159c60006115b793610966565b386113be565b6115df915060203d6020116115e5575b6115d78183610966565b810190611c26565b38611367565b503d6115cd565b3461025657604036600319011261025657602060243560043561160e82610555565b60009081526024835260408082206001600160a01b0393841683526020529020610bd8565b6060906003190112610256576004359060243561164f81610555565b906044356102d281610555565b346102565761061361169661167036611633565b9291600052602360205260406000209060018060a01b0316600052602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b34610256576106136116966116c936611633565b9291600052602460205260406000209060018060a01b0316600052602052604060002090565b3461025657600036600319011261025657602060ff601f54166040519015158152f35b6001600160401b03811161092a5760051b60200190565b9060405191600081548060011c92600182169182156117e9575b6020851083146117d55784875286939260208501929181156117b85750600114611776575b505061057392500383610966565b611787919250600052602060002090565b906000915b8483106117a157506105739350013880611768565b80548284015286935060209092019160010161178c565b9150506105739491925060ff19168252151560051b013880611768565b634e487b7160e01b84526022600452602484fd5b93607f1693611743565b9081546117ff81611712565b9261180d6040519485610966565b818452602084019060005260206000206000915b83831061182e5750505050565b60016020819261183d85611729565b815201920192019190611821565b90813b6000611859826109c3565b6118666040519182610966565b828152611872836109c3565b602082019190601f1901368337943c565b604051815480825290929183906118a36020830191600052602060002090565b926000905b8060078301106119eb576105739454918181106119cc575b8181106119ad575b81811061198e575b81811061196f575b818110611950575b818110611931575b818110611913575b106118fe575b500383610966565b6001600160e01b0319168152602001386118f6565b602083811b6001600160e01b031916855290936001910193016118f0565b604083901b6001600160e01b03191684529260019060200193016118e8565b606083901b6001600160e01b03191684529260019060200193016118e0565b608083901b6001600160e01b03191684529260019060200193016118d8565b60a083901b6001600160e01b03191684529260019060200193016118d0565b60c083901b6001600160e01b03191684529260019060200193016118c8565b6001600160e01b031960e084901b1684529260019060200193016118c0565b916008919350610100600191611a9a8754611a11838260e01b63ffffffff60e01b169052565b60c081901b6001600160e01b031916602084015260a081901b6001600160e01b0319166040840152608081901b6001600160e01b0319166060840152606081901b6001600160e01b0319166080840152604081901b6001600160e01b03191660a0840152602081901b6001600160e01b03191660c08401526001600160e01b03191660e0830152565b0194019201859293916118a8565b60405190611ab58261092f565b606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b90816020910312610256575190565b6040513d6000823e3d90fd5b90929192611b13816109c3565b91611b216040519384610966565b829482845282820111610256576020610573930190610399565b602081830312610256578051906001600160401b03821161025657019080601f830112156102565781516102d292602001611b06565b90610573601b602960405180956802db1b430b4b724b2160bd1b6020830152611ba38151809260208686019101610399565b81017f5d205b4552524f525d2047617465776179206e6f7420666f756e640000000000838201520301600419810185520183610966565b9060208251920151916bffffffffffffffffffffffff1983169260148210611c00575050565b6001600160601b031960149290920360031b82901b16169150565b519061057382610555565b9081602091031261025657516102d281610555565b90610573601b602960405180956802db1b430b4b724b2160bd1b6020830152611c6d8151809260208686019101610399565b81017f5d205b4552524f525d20437573746f6479206e6f7420666f756e640000000000838201520301600419810185520183610966565b906105736033602960405180956802db1b430b4b724b2160bd1b6020830152611cd68151809260208686019101610399565b81017f5d205b494e464f5d2045524332302f5a45544120776974686472617720636f6d8382015272706c65746564207375636365737366756c6c7960681b604982015203016013810185520183610966565b3d15611d53573d90611d39826109c3565b91611d476040519384610966565b82523d6000602084013e565b606090565b60266105739193929360296040519586926802db1b430b4b724b2160bd1b6020850152611d8e8151809260208688019101610399565b83017f5d205b4552524f525d2045524332302f5a4554412077697468647261772066618382015265034b632b21d160d51b6049820152611dd8825180936020604f85019101610399565b01010301601f198101845283610966565b8015150361025657565b91909160a081840312610256576040519060a082018281106001600160401b0382111761092a5760405281938135611e2a81610555565b83526020820135611e3a81611de9565b60208401526040820135611e4d81610555565b60408401526060820135916001600160401b03831161025657611e7660809392849383016109de565b60608501520135910152565b906105736023602960405180956802db1b430b4b724b2160bd1b6020830152611eb48151809260208686019101610399565b81017f5d205b4552524f525d2047617320746f6b656e207472616e736665722066616983820152621b195960ea1b604982015203016003810185520183610966565b906105736032602960405180956802db1b430b4b724b2160bd1b6020830152611f288151809260208686019101610399565b81017f5d205b494e464f5d2047617320746f6b656e207472616e7366657220636f6d7083820152716c65746564207375636365737366756c6c7960701b604982015203016012810185520183610966565b9293919093611f86611aa8565b60405163085e1f4d60e41b81529095906001600160a01b03831690602081600481855afa90811561151d57611fd59161143d91600091612657575b50808a526000526021602052604060002090565b6001600160a01b0390811660208901818152929190611ff390611338565b16156125df5761203761203161204f9261201e61133861143d8d516000526022602052604060002090565b1460408b0190815294611bda565b611bda565b60601c90565b6001600160a01b031660608901908152925b51151590565b1561223f57516004919060209061206e906001600160a01b0316611338565b604051635b11259160e01b815293849182905afa91821561151d5760009261221e575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af191821561151d57600080866121068295839561211f9861220a575b50516001600160a01b031690565b5af1612110611d28565b50151560c08701908152612049565b15612190575050915160405163348051d760e11b815260048101919091529150600090508160248160008051602061924f8339815191525afa90811561151d57610573916114ea91600091612175575b50611ef6565b61218a91503d806000833e61150f8183610966565b3861216f565b845160405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa95861561151d576121e16114ea610573986121ea946000916121ef575b50611e82565b51933690611df3565b614ddf565b61220491503d806000833e61150f8183610966565b386121db565b8061159c8661221893610966565b386120f8565b61223891925060203d6020116115e5576115d78183610966565b9038612091565b80516004919060209061225a906001600160a01b0316611338565b60405163dda79b7560e01b815293849182905afa91821561151d576000926125be575b506001600160a01b03919091166080880181815291906122ad906122a090611338565b1560a08a01908152612049565b6125465751600491906020906122cb906001600160a01b0316611338565b604051635b11259160e01b815293849182905afa91821561151d57600092612525575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af191821561151d576113386123629261133892612370956125165750516001600160a01b031690565b91516001600160a01b031690565b6123a361143d8461238c8a516000526024602052604060002090565b9060018060a01b0316600052602052604060002090565b90823b1561025657604051636ce5768960e11b81526001600160a01b0391821660048201529116602482015260448101849052906000908290606490829084905af19081612501575b5061247f5761242e946123fd611d28565b90600060c08201528160e0820152600081516040518099819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d576114ea6121ea936121e1926105739a600091612464575b50611d58565b61247991503d806000833e61150f8183610966565b3861245e565b5050505060008161249660c06124b6940160019052565b516040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea916000916124e6575b50611ca4565b6124fb91503d806000833e61150f8183610966565b386124e0565b8061159c600061251093610966565b386123ec565b8061159c600061221893610966565b61253f91925060203d6020116115e5576115d78183610966565b90386122ee565b50505050505050600061257391516040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea916000916125a3575b50611c3b565b6125b891503d806000833e61150f8183610966565b3861259d565b6125d891925060203d6020116115e5576115d78183610966565b903861227d565b50505050505050600061260c91516040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea9160009161263c575b50611b71565b61265191503d806000833e61150f8183610966565b38612636565b612679915060203d60201161267f575b6126718183610966565b810190611aeb565b38611fc1565b503d612667565b6040519061014082018281106001600160401b0382111761092a5760405260606101208360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201528260e082015260006101008201520152565b356102d281611de9565b908060209392818452848401376000828201840152601f01601f1916010190565b90516001600160a01b039081168252918216602082015291166040820152606081019190915260a0608082018190526102d2939101916126f3565b90610573603c602960405180956802db1b430b4b724b2160bd1b60208301526127818151809260208686019101610399565b81017f5d205b494e464f5d2045524332302f5a45544120776974686472617720616e64838201527f2063616c6c20636f6d706c65746564207375636365737366756c6c790000000060498201520301601c810185520183610966565b602f6105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526128138151809260208688019101610399565b83017f5d205b4552524f525d2045524332302f5a45544120776974686472617720616e838201526e0321031b0b636103330b4b632b21d1608d1b6049820152611dd8825180936020605885019101610399565b906004116102565790600490565b356001600160e01b031981169291906004821061288f575050565b6001600160e01b031960049290920360031b82901b16169150565b90610573605a60405180947f526563656976657220636f6e747261637420646f6573206e6f7420636f6e746160208301527f696e2066756e6374696f6e20776974682073656c6563746f722000000000000060408301526129148151809260208686019101610399565b81010301601f198101845283610966565b600a6105739193929360296040519586926802db1b430b4b724b2160bd1b602085015261295b8151809260208688019101610399565b83016902e902da2a92927a92e960b51b83820152611dd8825180936020603385019101610399565b9080601f830112156102565781516102d292602001611b06565b906020828203126102565781516001600160401b038111610256576102d29201612983565b90516001600160a01b03908116825290911660208201526060604082018190526102d2939101916126f3565b90610573603b602960405180956802db1b430b4b724b2160bd1b6020830152612a208151809260208686019101610399565b81017f5d205b494e464f5d2047617320746f6b656e207472616e7366657220616e6420838201527f63616c6c20636f6d706c65746564207375636365737366756c6c79000000000060498201520301601b810185520183610966565b602e6105739193929360296040519586926802db1b430b4b724b2160bd1b6020850152612ab28151809260208688019101610399565b83017f5d205b4552524f525d2047617320746f6b656e207472616e7366657220616e64838201526d01031b0b636103330b4b632b21d160951b6049820152611dd8825180936020605785019101610399565b95969491939096612b13612686565b60405163085e1f4d60e41b815290986001600160a01b03861691602081600481865afa90811561151d57612b619161143d916000916132d0575b50808d526000526021602052604060002090565b6001600160a01b0390811660208c01818152939190612b7f90611338565b16156132a057612bba6120318c949361202c6040612bd095612bb261133861143d8b516000526022602052604060002090565b149701968752565b6001600160a01b031660608c0190815292612049565b15612f8957612be1602084016126e9565b612e34575b805160049493929190602090612c04906001600160a01b0316611338565b604051635b11259160e01b815296879182905afa94851561151d57600095612e13575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039590951660048601526000856024818360008051602061924f8339815191525af194851561151d576113388992612c9892600098612e055750516001600160a01b031690565b923592612cc1612ca6610987565b6001600160a01b038d168152935b516001600160a01b031690565b92612ce2604051988997889687946338e2252760e01b8652600486016129c2565b0393f19081612de4575b50612d8157612d3094612cfd611d28565b90600061010082015281610120820152600081516040518099819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d576114ea6121ea936121e1926105739a600091612d66575b50612a7c565b612d7b91503d806000833e61150f8183610966565b38612d60565b50505050600081612496610100612d99940160019052565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091612dc9575b506129ee565b612dde91503d806000833e61150f8183610966565b38612dc3565b612e00903d806000833e612df88183610966565b81019061299d565b612cec565b8061159c8a61221893610966565b612e2d91955060203d6020116115e5576115d78183610966565b9338612c27565b612e47612e418686612866565b90612874565b8251612e6e90612e6a908390612e65906001600160a01b031661184b565b61544d565b1590565b612e785750612be6565b9250505087925060009150612e9360c0612ebd990160019052565b604051631623433d60e31b81526001600160e01b0319909116600482015296879081906024820190565b038160008051602061924f8339815191525afa95861561151d57612f1896612eed91600091612f6e575b506128aa565b9060e08101918252600081516040518099819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d576114ea6121ea936121e1926105739a600092612f51575b505190612925565b612f679192503d806000833e61150f8183610966565b9038612f49565b612f8391503d806000833e61150f8183610966565b38612ee7565b80519194929160049190602090612fa8906001600160a01b0316611338565b60405163dda79b7560e01b815293849182905afa91821561151d5760009261327f575b506001600160a01b039190911660808b018181529190612fff908c906120499060a090612ff790611338565b159201918252565b61324f57516004919060209061301d906001600160a01b0316611338565b604051635b11259160e01b815293849182905afa91821561151d5760009261322e575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af191821561151d576113386130b292611338928e956125165750516001600160a01b031690565b92868a6130c36020863596016126e9565b1561321a575061143d6131069161238c6130f460009a5b612cb46130e5610987565b6001600160a01b03909d168d52565b95516000526024602052604060002090565b93803b156102565788966131366000979388946040519a8b998a9889966356840c2960e11b885260048801612714565b0393f19081613205575b506131a25761315194612cfd611d28565b038160008051602061924f8339815191525afa801561151d576114ea6121ea936121e1926105739a600091613187575b506127dd565b61319c91503d806000833e61150f8183610966565b38613181565b505050506000816124966101006131ba940160019052565b038160008051602061924f8339815191525afa90811561151d57610573916114ea916000916131ea575b5061274f565b6131ff91503d806000833e61150f8183610966565b386131e4565b8061159c600061321493610966565b38613140565b6131069161238c6130f461143d939a6130da565b61324891925060203d6020116115e5576115d78183610966565b9038613040565b50505050505050505050600061257391516040518093819263348051d760e11b8352600483019190602083019252565b61329991925060203d6020116115e5576115d78183610966565b9038612fcb565b50505050505050505050600061260c91516040518093819263348051d760e11b8352600483019190602083019252565b6132e9915060203d60201161267f576126718183610966565b38612b4d565b60256105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526133258151809260208688019101610399565b83017f5d205b4552524f525d205a52433230206e6f7420666f756e6420666f722061738382015264039b2ba1d160dd1b6049820152611dd8825180936020604e85019101610399565b9060408061338584516060855260608501906103bc565b6020808601516001600160a01b03169085015293015191015290565b9194926133bb6102d297959260a0855260a085019061336e565b6001600160a01b0396871660208501526040840191909152941660608201528084036080909101526126f3565b90610573603a602960405180956802db1b430b4b724b2160bd1b602083015261341a8151809260208686019101610399565b81017f5d205b494e464f5d205a657461436861696e206465706f73697420616e642063838201527f616c6c20636f6d706c65746564207375636365737366756c6c7900000000000060498201520301601a810185520183610966565b95969491909661349761143d8661238c8a6000526023602052604060002090565b926001600160a01b038416156136b457601f546004906020906134c59060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091613695575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57613680575b50601f546135589060081c6001600160a01b0316611338565b6040516001600160601b031960608c901b166020820152601481529161357f603484610966565b613587610996565b9283526001600160a01b038b166020840152896040840152813b1561025657600087936135ce82968994604051998a988997889663c39aca3760e01b8852600488016133a1565b03926216e360f1908161366b575b506135f357610573956135ed611d28565b95615710565b50505050505061362060006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091613650575b506133e8565b61366591503d806000833e61150f8183610966565b3861364a565b8061159c600061367a93610966565b386135dc565b8061159c600061368f93610966565b3861353f565b6136ae915060203d6020116115e5576115d78183610966565b386134e8565b50505050509150506136e5915060006020546040518094819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d5760009261377a575b50604051632b65311f60e11b81526001600160a01b03909116600482015260008180602481015b038160008051602061924f8339815191525afa801561151d57610573926114ea9260009261375d575b506132ef565b6137739192503d806000833e61150f8183610966565b9038613757565b61372e9192506137956000913d8084833e61150f8183610966565b929150613707565b6040519060e082018281106001600160401b0382111761092a57604052606060c083600081526000602082015260006040820152600083820152826080820152600060a08201520152565b90610573602d602960405180956802db1b430b4b724b2160bd1b602083015261381a8151809260208686019101610399565b81017f5d205b494e464f5d2045564d20657865637574696f6e20636f6d706c65746564838201526c207375636365737366756c6c7960981b60498201520301600d810185520183610966565b60206105739193929360296040519586926802db1b430b4b724b2160bd1b8585015261389a81518092878688019101610399565b83017f5d205b4552524f525d2045564d20657865637574696f6e206661696c65643a2083820152611dd88251809387604985019101610399565b939194959290600460206138e661379d565b60405163085e1f4d60e41b815290989092839182906001600160a01b03165afa90811561151d576139319161143d91600091613d1c575b508089526000526021602052604060002090565b6001600160a01b039081166020880181815292919061394f90611338565b1615613ced5761203161396191611bda565b6001600160a01b031660408701908152602088019161397f836126e9565b613be3575b6004949596979860206139a0611338845160018060a01b031690565b604051635b11259160e01b815297889182905afa95861561151d57600096613bc2575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039690961660048701526000866024818360008051602061924f8339815191525af191821561151d57613a37611338613a3f926000998a96613bb45750516001600160a01b031690565b9135946126e9565b8214613baa57613a6582935b612cb4613a56610987565b6001600160a01b039096168652565b92613a86604051988997889687946338e2252760e01b8652600486016129c2565b0393f19081613b91575b50613b3157613ad292613aa1611d28565b90600060a08201528160c0820152600081516040518097819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d576114ea613b1193613b089261057398600091613b16575b50613866565b51913690611df3565b6146df565b613b2b91503d806000833e61150f8183610966565b38613b02565b505060008161249660a0613b46940160019052565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091613b76575b506137e8565b613b8b91503d806000833e61150f8183610966565b38613b70565b613ba5903d806000833e612df88183610966565b613a90565b613a658993613a4b565b8061159c8861221893610966565b613bdc91965060203d6020116115e5576115d78183610966565b94386139c3565b613bf0612e418686612866565b98613c0b612e6a8b612e656105a9875160018060a01b031690565b613c16579850613984565b50505050505090916000613c5b94613c316060840160019052565b604051631623433d60e31b81526001600160e01b0319909116600482015294859081906024820190565b038160008051602061924f8339815191525afa93841561151d57613cb594613c8a91600091612f6e57506128aa565b9060808101918252600081516040518097819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d576114ea613b1193613b089261057398600092612f5157505190612925565b5050935160405163348051d760e11b81526004810191909152945060009350849250829150506024810161260c565b613d35915060203d60201161267f576126718183610966565b3861391d565b60085460ff168015613d4a5790565b50604051630667f9d760e41b815260008051602061924f833981519152600482018190526519985a5b195960d21b6024830152602090829060449082905afa90811561151d57600091613d9e575b50151590565b613db7915060203d60201161267f576126718183610966565b38613d98565b906105736031602960405180956802db1b430b4b724b2160bd1b6020830152613def8151809260208686019101610399565b81017f5d205b494e464f5d205a657461436861696e206465706f73697420636f6d706c838201527065746564207375636365737366756c6c7960781b604982015203016011810185520183610966565b939194929094613e6061143d8461238c886000526023602052604060002090565b906001600160a01b0382161561404257601f54600490602090613e8e9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091614023575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d5761400e575b50601f54613f219060081c6001600160a01b0316611338565b803b1561025657604051633d14d1b760e21b81526001600160a01b038481166004830152602482018690529290921660448301526000908290606490829084905af19081613ff9575b50613f815761057395613f7b611d28565b95615db5565b505050505050613fae60006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091613fde575b50613dbd565b613ff391503d806000833e61150f8183610966565b38613fd8565b8061159c600061400893610966565b38613f6a565b8061159c600061401d93610966565b38613f08565b61403c915060203d6020116115e5576115d78183610966565b38613eb1565b505060205460405163348051d760e11b8152600481019190915294509092506000915083905080602481016136e5565b909261408d6102d2969495939560a0845260a084019061336e565b6001600160a01b03958616602084015260006040840152941660608201528084036080909101526126f3565b906105736033602960405180956802db1b430b4b724b2160bd1b60208301526140eb8151809260208686019101610399565b81017f5d205b494e464f5d205a657461436861696e20657865637574696f6e20636f6d8382015272706c65746564207375636365737366756c6c7960681b604982015203016013810185520183610966565b60266105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526141738151809260208688019101610399565b83017f5d205b4552524f525d205a657461436861696e20657865637574696f6e2066618382015265034b632b21d160d51b6049820152611dd8825180936020604f85019101610399565b356102d281610555565b6141f46142026105739260405192839163104c13eb60e21b602084015260206024840181815201906103bc565b03601f198101835282610966565b617fe7565b90610573601e602960405180956802db1b430b4b724b2160bd1b60208301526142398151809260208686019101610399565b81017f5d205b494e464f5d2063616c6c4f6e5265766572742069732066616c73650000838201520301600119810185520183610966565b90610573601f602960405180956802db1b430b4b724b2160bd1b60208301526142a28151809260208686019101610399565b81017f5d205b4552524f525d2072657665727441646472657373206973207a65726f00838201520301600019810185520183610966565b90608060606102d29360018060a01b03815116845260018060a01b0360208201511660208501526040810151604085015201519181606082015201906103bc565b9060206102d29281815201906142d9565b600b90602d61057393959460296040519788946802db1b430b4b724b2160bd1b6020870152614363815180926020868a019101610399565b85017f5d205b494e464f5d20457865637574696e67206f6e526576657274206f6e2072838201526c032bb32b93a20b2323932b9b99609d1b60498201526143b4825180936020605685019101610399565b01016a0161031b7b73a32bc3a1d160ad1b83820152611dd8825180936020603885019101610399565b6001600160a01b039182168152602081019290925290911660408201526080606082018190526102d2929101906142d9565b6001600160a01b0390911681526040602082018190526102d2929101906142d9565b602081830312610256578051906001600160401b03821161025657019080601f830112156102565781519161446583611712565b926144736040519485610966565b80845260208085019160051b830101918383116102565760208101915b83831061449f57505050505090565b82516001600160401b038111610256578201906060828703601f19011261025657604051906144cd8261094b565b60208301516001600160401b0381116102565760209084010187601f82011215610256578051906144fd82611712565b9161450b6040519384610966565b80835260208084019160051b830101918a831161025657602001905b8282106145795750505082526040830151916001600160401b0383116102565761456960608561455f8b602080999881990101612983565b8685015201611c1b565b6040820152815201920191614490565b8151815260209182019101614527565b634e487b7160e01b600052603260045260246000fd5b8051156145ac5760200190565b614589565b8051600110156145ac5760400190565b8051600210156145ac5760600190565b80518210156145ac5760209160051b010190565b90610573601d602960405180956802db1b430b4b724b2160bd1b60208301526146178151809260208686019101610399565b81017f5d205b494e464f5d204576656e742066726f6d206f6e5265766572743a000000838201520301600219810185520183610966565b6040519061465d604083610966565b600a825269101032b6b4ba3a32b91d60b11b6020830152565b60405190614685604083610966565b600782526610103230ba309d60c91b6020830152565b604051906146aa604083610966565b60078252662020746f70696360c81b6020830152565b604051906146cf604083610966565b60018252601d60f91b6020830152565b9190606083019081516146f06109a5565b6001600160a01b03851681529060006020830152600060408301526060820152602085015115614d705760008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57614d5b575b5084516001600160a01b031615614cda5760405163348051d760e11b81526004810183905260008160248160008051602061924f8339815191525afa90811561151d57600091614cbf575b5085516147e7906000906001600160a01b03165b604051632b65311f60e11b81526001600160a01b03909116600482015291829081906024820190565b038160008051602061924f8339815191525afa801561151d5761483d91600091614ca4575b506000604051614823816141f4886020830161431a565b604051809481926371aad10d60e01b835260048301610575565b038160008051602061924f8339815191525afa90811561151d5761486d936114ea93600093614c87575b5061432b565b601f5460049060209061488b9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091614c68575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57614c53575b50601f5461491e9060081c6001600160a01b0316611338565b85519091906001600160a01b031690823b1561025657614958926000928360405180968195829463184b079360e01b84526004840161440f565b03926216e360f19081614c3e575b5061498c57600080614984604061057397015160018060a01b031690565b935193616ba4565b9150506040519163064554e960e21b83526000836004818360008051602061924f8339815191525af192831561151d57600093614c1b575b5060005b8351811015614c15576149ef60406149e083876145d1565b5101516001600160a01b031690565b6040830151614a06906001600160a01b0316611338565b6001600160a01b0390911614614a1f575b6001016149c8565b60405163348051d760e11b815260048101849052909491929060008160248160008051602061924f8339815191525afa90811561151d57614a6c916114ea91600091614bfc575b506145e5565b614a8060006147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d57614ab391600091614be3575b50614aae61464e565b618002565b614ae160006020614ac488886145d1565b510151604051809381926371aad10d60e01b835260048301610575565b038160008051602061924f8339815191525afa801561151d57614b0f91600091614bca575b50614aae614676565b60005b614b1c86866145d1565b515151811015614bc157806000614b41614b6193614b3a8a8a6145d1565b51516145d1565b5160405180948192631623433d60e31b8352600483019190602083019252565b038160008051602061924f8339815191525afa91821561151d57600192614ba291600091614ba8575b50614b9361469b565b83614b9c6146c0565b91618046565b01614b12565b614bbb913d8091833e61150f8183610966565b38614b8a565b50919093614a17565b614bdd913d8091833e61150f8183610966565b38614b06565b614bf6913d8091833e61150f8183610966565b38614aa5565b614c0f913d8091833e61150f8183610966565b38614a66565b50505050565b614c3791933d8091833e614c2f8183610966565b810190614431565b91386149c4565b8061159c6000614c4d93610966565b38614966565b8061159c6000614c6293610966565b38614905565b614c81915060203d6020116115e5576115d78183610966565b386148ae565b614c9d9193503d806000833e61150f8183610966565b9138614867565b614cb991503d806000833e61150f8183610966565b3861480c565b614cd491503d806000833e61150f8183610966565b386147aa565b5060205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa94851561151d57614984604060009392614d336114ea6105739a87968791614d41575b50614270565b01516001600160a01b031690565b614d5591503d8089833e61150f8183610966565b38614d2d565b8061159c6000614d6a93610966565b3861475f565b5060405163348051d760e11b81526004810182905260008160248160008051602061924f8339815191525afa94851561151d57614984604060009392614d336114ea6105739a87968791614dc5575b50614207565b614dd991503d8089833e61150f8183610966565b38614dbf565b93929060608501928351614df16109a5565b6001600160a01b0387168152906001600160a01b03841660208301528260408301526060820152614e256020880151151590565b156153bd5760008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d576153a8575b5086516001600160a01b03161561533e5760405163348051d760e11b81526004810185905260008160248160008051602061924f8339815191525afa90811561151d57600091615323575b508751614ed2906000906001600160a01b03166147be565b038160008051602061924f8339815191525afa801561151d57614f0d91600091614ca457506000604051614823816141f4886020830161431a565b038160008051602061924f8339815191525afa90811561151d57614f3c936114ea93600093614c87575061432b565b601f54600490602090614f5a9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091615304575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d576152ef575b506001600160a01b03831661524f57601f54614ffb9060081c6001600160a01b0316611338565b87519091906001600160a01b031690823b1561025657615035926000928360405180968195829463184b079360e01b84526004840161440f565b03926216e360f1908161523a575b50615062576040959095015161057395906001600160a01b0316614984565b50509150505b60405163064554e960e21b8152916000836004818360008051602061924f8339815191525af192831561151d5760009361521f575b5060005b8351811015614c15576150b960406149e083876145d1565b60408301516150d0906001600160a01b0316611338565b6001600160a01b03909116146150e9575b6001016150a1565b60405163348051d760e11b815260048101849052909491929060008160248160008051602061924f8339815191525afa90811561151d57615135916114ea91600091614bfc57506145e5565b61514960006147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d5761517691600091614be35750614aae61464e565b61518760006020614ac488886145d1565b038160008051602061924f8339815191525afa801561151d576151b491600091614bca5750614aae614676565b60005b6151c186866145d1565b51515181101561521657806000614b416151df93614b3a8a8a6145d1565b038160008051602061924f8339815191525afa91821561151d5760019261521091600091614ba85750614b9361469b565b016151b7565b509190936150e1565b61523391933d8091833e614c2f8183610966565b913861509d565b8061159c600061524993610966565b38615043565b601f546152679060081c6001600160a01b0316611338565b87519091906001600160a01b031690823b15610256576152a39260009283604051809681958294639d4ba46560e01b84528a8c600486016143dd565b03926216e360f190816152da575b506152d0576040959095015161057395906001600160a01b0316614984565b5050915050615068565b8061159c60006152e993610966565b386152b1565b8061159c60006152fe93610966565b38614fd4565b61531d915060203d6020116115e5576115d78183610966565b38614f7d565b61533891503d806000833e61150f8183610966565b38614eba565b5060205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d5761057397614d336114ea614984946040946000916153935750614270565b614d5591503d806000833e61150f8183610966565b8061159c60006153b793610966565b38614e6f565b5060405163348051d760e11b81526004810184905260008160248160008051602061924f8339815191525afa90811561151d5761057397614d336114ea6149849460409460009161540e5750614207565b614dd991503d806000833e61150f8183610966565b634e487b7160e01b600052601160045260246000fd5b906104b0820180921161544857565b615423565b919060005b600481018082116154485784511061549757602081850101516001600160e01b031983811691161461548f57600019811461544857600101615452565b506001925050565b506000925050565b604051906154ac8261092f565b600060e083606081528260208201528260408201528260608201528260808201528260a08201528260c08201520152565b604051906154ec604083610966565b600782526619195c1bdcda5d60ca1b6020830152565b60405190615511604083610966565b601082526f19195c1bdcda5d08185b990818d85b1b60821b6020830152565b600990601461057393959460296040519788946802db1b430b4b724b2160bd1b6020870152615568815180926020868a019101610399565b85017302e902da2a92927a92e902d32ba30a1b430b4b7160651b8382015261559a825180936020603d85019101610399565b0101680103330b4b632b21d160bd1b83820152611dd8825180936020601d85019101610399565b919082604091031261025657602082516155da81610555565b92015190565b9081602091031261025657516102d281611de9565b90610573603a602960405180956802db1b430b4b724b2160bd1b60208301526156278151809260208686019101610399565b81017f5d205b4552524f525d204661696c656420746f206d696e74205a524332302074838201527f6f6b656e7320666f722070726f746f636f6c206164647265737300000000000060498201520301601a810185520183610966565b9190820391821161544857565b90610573602f602960405180956802db1b430b4b724b2160bd1b60208301526156c28151809260208686019101610399565b81017f5d205b4552524f525d204661696c656420746f206275726e2072656d61696e69838201526e6e67205a5243323020746f6b656e7360881b60498201520301600f810185520183610966565b9094939195615751939661572261549f565b9161572b615502565b835260006020546040518098819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa95861561151d576114ea826157b99861578893600091615d9a575b50865190615530565b6040805163fc5fecd560e01b815260808901356004820152966001600160a01b038416939190889081906024820190565b0381865afa801561151d57600097600091615d65575b50604085019081526001600160a01b039097166020850190815296601f546004906020906158089060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091615d46575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03821660048201526000816024818360008051602061924f8339815191525af1801561151d57615d31575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018d905260208160448160008a5af190811561151d57600091615d12575b5015156060870190815260008051602061924f8339815191523b15610256576040516303223eab60e11b81526001600160a01b039290921660048301526000826024818360008051602061924f8339815191525af190811561151d5761592e92612e6a92615cfd575b5051151590565b615c805780519060a0860191825260c086019861594b8a60019052565b805161595f906001600160a01b0316611338565b8603615bf8575b505060008051602061924f8339815191523b15610256576040516390c5013b60e01b8152906000826004818360008051602061924f8339815191525af191821561151d576159bb92615be3575b50518b615683565b608085018181529a9015615bc4575050601f54600491506020906159ea9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091615ba5575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57600092602092615a9292615b91575b508a51604051948580948193630852cd8d60e31b8352600483019190602083019252565b03925af1801561151d57615abd92612e6a92600092615b59575b5060e0612049910191829015159052565b615ae157615adb615ad361057397519451151590565b943690611df3565b90618832565b505050505050615b0e60006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091615b3e575b50615690565b615b5391503d806000833e61150f8183610966565b38615b38565b612049919250615b8260e09160203d602011615b8a575b615b7a8183610966565b8101906155e0565b929150615aac565b503d615b70565b8061159c86615b9f93610966565b38615a6e565b615bbe915060203d6020116115e5576115d78183610966565b38615a0d565b9496509450956105739850615bde925060409150016141bd565b61788e565b8061159c6000615bf293610966565b386159b3565b60008a52516001600160a01b03169051601f54600490602090615c269060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa91821561151d57615c56938f92600094615c5f575b5086618362565b81523880615966565b615c7991945060203d6020116115e5576115d78183610966565b9238615c4f565b5050505050505050505050615cb260006020546040518093819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57610573916114ea91600091615ce2575b506155f5565b615cf791503d806000833e61150f8183610966565b38615cdc565b8061159c6000615d0c93610966565b38615927565b615d2b915060203d602011615b8a57615b7a8183610966565b386158be565b8061159c6000615d4093610966565b38615880565b615d5f915060203d6020116115e5576115d78183610966565b3861582b565b9050615d8a91975060403d604011615d93575b615d828183610966565b8101906155c1565b969096386157cf565b503d615d78565b615daf91503d806000833e61150f8183610966565b3861577f565b90949391956157519396615dc761549f565b9161572b6154dd565b90610573601e602960405180956802db1b430b4b724b2160bd1b6020830152615e028151809260208686019101610399565b81017f5d205b4552524f525d2061626f727441646472657373206973207a65726f0000838201520301600119810185520183610966565b6007600461057392949394602f6040519687926e021b0b713ba103a3930b739b332b91608d1b6020850152615e778151809260208688019101610399565b83016301037b3160e51b83820152615e99825180936020603385019101610399565b01016620746f6b656e7360c81b838201520301601819810185520183610966565b600460129295946017610573956029604051998a966802db1b430b4b724b2160bd1b6020890152615ef4815180926020868c019101610399565b87017f5d205b4552524f525d205472616e7366657272696e672000000000000000000083820152615f2f825180936020604085019101610399565b01016301037b3160e51b83820152615f51825180936020601b85019101610399565b0101710103a37b5b2b739903a379039b2b73232b9160751b83820152611dd8825180936020601685019101610399565b602d6105739193929360296040519586926802db1b430b4b724b2160bd1b6020850152615fb78151809260208688019101610399565b83017f5d205b494e464f5d205472616e7366657272696e6720746f6b656e7320746f20838201526c030b137b93a20b2323932b9b99609d1b6049820152611dd8825180936020605685019101610399565b6102d29160a0616021835160c0845260c08401906103bc565b92600180831b036020820151166020840152604081015160408401526060810151151560608401526080810151608084015201519060a08184039101526103bc565b9060206102d2928181520190616008565b601d90601261057393959460296040519788946802db1b430b4b724b2160bd1b60208701526160ac815180926020868a019101610399565b85017102e902da4a72327ae9021b7b73a3930b1ba160751b838201526160dc825180936020603b85019101610399565b01017f20657865637574696e67206f6e41626f72742c20636f6e746578743a2000000083820152611dd8825180936020602f85019101610399565b6001600160a01b0390911681526040602082018190526102d292910190616008565b90610573601c602960405180956802db1b430b4b724b2160bd1b602083015261616b8151809260208686019101610399565b81017f5d205b494e464f5d204576656e742066726f6d206f6e41626f72743a00000000838201520301600319810185520183610966565b601a6105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526161d88151809260208688019101610399565b83017f5d205b4552524f525d206f6e41626f7274206661696c65643a2000000000000083820152611dd8825180936020604385019101610399565b6001600160a01b0381169360009390928515616a625760205460405163348051d760e11b81526004810191909152858160248160008051602061924f8339815191525afa90811561151d578691616a48575b50604051632b65311f60e11b81526001600160a01b038516600482015290868260248160008051602061924f8339815191525afa91821561151d5787926162b7926114ea928592616a2c575b50615f81565b616836575b604080516001600160a01b0390951660208601526162dd90859081016113f8565b6162e56109b4565b9384526001600160a01b0385166020850152604084018590528415156060850152608084015260a083015260205460405163348051d760e11b8152600481019190915283818060248101038160008051602061924f8339815191525afa90811561151d57849161681c575b50604051632b65311f60e11b81526001600160a01b0383166004820152848160248160008051602061924f8339815191525afa801561151d576163aa918691616802575b5085604051614823816141f48960208301616063565b038160008051602061924f8339815191525afa90811561151d576163d9936114ea9388936167e6575b50616074565b601f546004906020906163f79060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d5784916167c7575b5060008051602061924f8339815191523b156167975760405163ca669fa760e01b81526001600160a01b0391909116600482015283816024818360008051602061924f8339815191525af1801561151d576167b3575b5060008051602061924f8339815191523b156167af576040516320d797a960e11b815283816004818360008051602061924f8339815191525af1801561151d5761679b575b50601f546164cd9060081c6001600160a01b0316611338565b90813b15616797579183916164f99383604051809681958294632095dedb60e01b845260048401616117565b03925af19081616783575b50616583576165399150616516611d28565b816020546040518095819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa801561151d5761057393836114ea9492616568575b50506161a2565b61657c92503d8091833e61150f8183610966565b3880616561565b60405163064554e960e21b81529181836004818360008051602061924f8339815191525af192831561151d578293616767575b50815b8351811015614c1557816165d561133860406149e085896145d1565b146165e3575b6001016165b9565b60205460405163348051d760e11b81526004810191909152909490838160248160008051602061924f8339815191525afa90811561151d57616630916114ea91869161674d575b50616139565b616643836147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d5761666f9185916167395750614aae61464e565b61667f836020614ac488886145d1565b038160008051602061924f8339815191525afa801561151d576166ab9185916167255750614aae614676565b825b6166b786866145d1565b51515181101561671e578084614b416166d493614b3a8a8a6145d1565b038160008051602061924f8339815191525afa91821561151d5760019261670491879161670a5750614b9361469b565b016166ad565b614bbb91503d8089833e61150f8183610966565b50936165db565b614bdd91503d8087833e61150f8183610966565b614bf691503d8087833e61150f8183610966565b61676191503d8088833e61150f8183610966565b3861662a565b61677c9193503d8084833e614c2f8183610966565b91386165b6565b8061159c8461679193610966565b38616504565b8380fd5b8061159c856167a993610966565b386164b4565b8280fd5b8061159c856167c193610966565b3861646f565b6167e0915060203d6020116115e5576115d78183610966565b38616419565b6167fb9193503d808a833e61150f8183610966565b91386163d3565b61681691503d8088833e61150f8183610966565b38616394565b61683091503d8086833e61150f8183610966565b38616350565b601f546004906020906168549060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d578691616a0d575b5060008051602061924f8339815191523b156169d85760405163ca669fa760e01b81526001600160a01b038216600482015286816024818360008051602061924f8339815191525af1801561151d576169f9575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018790526020816044818a805af1801561151d576169dc575b5060008051602061924f8339815191523b156169d85760405163ca669fa760e01b81526001600160a01b0391909116600482015285816024818360008051602061924f8339815191525af1801561151d576169c4575b5060405163a9059cbb60e01b81526001600160a01b0384166004820152602481018690529360208560448189805af190811561151d576113f8956162dd926169a5575b509450506162bc565b6169bd9060203d602011615b8a57615b7a8183610966565b503861699c565b8061159c876169d293610966565b38616959565b8580fd5b6169f49060203d602011615b8a57615b7a8183610966565b616903565b8061159c88616a0793610966565b386168ca565b616a26915060203d6020116115e5576115d78183610966565b38616876565b616a419192503d8087833e61150f8183610966565b90386162b1565b616a5c91503d8088833e61150f8183610966565b38616265565b60205460405163348051d760e11b815260048101919091528590818160248160008051602061924f8339815191525afa90811561151d57616aae916114ea918491616b8a575b50615dd0565b5060405163348051d760e11b81526000600482018190528160248160008051602061924f8339815191525afa90811561151d57600091616b6f575b50604051632b65311f60e11b81526000600482018190528180602481015b038160008051602061924f8339815191525afa801561151d57616b4e92616b3692600092616b52575b50615e39565b60405162461bcd60e51b815291829160048301610575565b0390fd5b616b689192503d806000833e61150f8183610966565b9084616b30565b616b8491503d806000833e61150f8183610966565b81616ae9565b616b9e91503d8086833e61150f8183610966565b84616aa8565b6001600160a01b03811695949093909290919086156173e95760205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d576000916173ce575b50604051632b65311f60e11b81526001600160a01b038716600482015260008160248160008051602061924f8339815191525afa801561151d57616c4a926114ea926000926173b85750615f81565b6001600160a01b038116801515806173af575b6171ab575b50604080516001600160a01b039097166020880152616cae9190616c9390889081015b03601f198101895288610966565b616c9b6109b4565b9687526001600160a01b03166020870152565b604085015260016060850152608084015260a083015260205460405163348051d760e11b815260048101919091526000818060248101038160008051602061924f8339815191525afa90811561151d57600091617190575b50604051632b65311f60e11b81526001600160a01b038316600482015260008160248160008051602061924f8339815191525afa801561151d57616d6391600091617175575b506000604051614823816141f48960208301616063565b038160008051602061924f8339815191525afa90811561151d57616d92936114ea9360009361715f5750616074565b601f54600490602090616db09060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617140575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d5761712b575b5060008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57617116575b50601f54616e899060081c6001600160a01b0316611338565b91823b1561025657616eb59260009283604051809681958294632095dedb60e01b845260048401616117565b03925af19081617101575b50616f355750616ece611d28565b60205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa91821561151d57610573926114ea92600091616f1a575b506161a2565b616f2f91503d806000833e61150f8183610966565b38616f14565b60405163064554e960e21b8152906000826004818360008051602061924f8339815191525af191821561151d576000926170e6575b5060005b82518110156170e15781616f8a61133860406149e085886145d1565b14616f98575b600101616f6e565b60205460405163348051d760e11b8152600481019190915290939060008160248160008051602061924f8339815191525afa90811561151d57616fe6916114ea916000916170ce5750616139565b616ffa60006147be60406149e088886145d1565b038160008051602061924f8339815191525afa801561151d5761702791600091614be35750614aae61464e565b61703860006020614ac487876145d1565b038160008051602061924f8339815191525afa801561151d5761706591600091614bca5750614aae614676565b60005b61707285856145d1565b5151518110156170c757806000614b4161709093614b3a89896145d1565b038160008051602061924f8339815191525afa91821561151d576001926170c191600091614ba85750614b9361469b565b01617068565b5092616f90565b616761913d8091833e61150f8183610966565b505050565b6170fa91923d8091833e614c2f8183610966565b9038616f6a565b8061159c600061711093610966565b38616ec0565b8061159c600061712593610966565b38616e70565b8061159c600061713a93610966565b38616e2a565b617159915060203d6020116115e5576115d78183610966565b38616dd3565b6167fb9193503d806000833e61150f8183610966565b61718a91503d806000833e61150f8183610966565b38616d4c565b6171a591503d806000833e61150f8183610966565b38616d06565b601f549091906004906020906171cc9060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617390575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03821660048201526000816024818360008051602061924f8339815191525af1801561151d5761737b575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018590526020816044816000885af1801561151d5761735e575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57617349575b5060405163a9059cbb60e01b81526001600160a01b03871660048201526024810184905291602090839060449082906000905af1801561151d57616c8597616cae93616c939261732a575b5097505090616c62565b6173429060203d602011615b8a57615b7a8183610966565b5038617320565b8061159c600061735893610966565b386172d5565b6173769060203d602011615b8a57615b7a8183610966565b61727e565b8061159c600061738a93610966565b38617244565b6173a9915060203d6020116115e5576115d78183610966565b386171ef565b50821515616c5d565b616a419192503d806000833e61150f8183610966565b6173e391503d806000833e61150f8183610966565b38616bfb565b95509250505060205460405163348051d760e11b81526000818061741585600483019190602083019252565b038160008051602061924f8339815191525afa90811561151d57617444916114ea916000916178735750615dd0565b6001600160a01b038416908115158061786a575b156177e15760405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d576000916177c6575b5060405163348051d760e11b8152600481018490529460008660248160008051602061924f8339815191525afa95861561151d576000966177a3575b50604051632b65311f60e11b81526001600160a01b03909116600482015260008180602481015b038160008051602061924f8339815191525afa90811561151d57600091617788575b50604051632b65311f60e11b81526001600160a01b03861660048201529060008260248160008051602061924f8339815191525afa90811561151d57600497617572946114ea9460009461776b575b50615eba565b601f5460209061758d9060081c6001600160a01b0316611338565b6040516313917f7760e11b815295869182905afa93841561151d5760009461774a575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03851660048201526000816024818360008051602061924f8339815191525af1801561151d57617735575b506040516311f9fbc960e21b81526001600160a01b0385166004820152602481018390526020816044816000865af1801561151d57617718575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039490941660048501526000846024818360008051602061924f8339815191525af192831561151d576176d794602094617703575b5060405163a9059cbb60e01b81526001600160a01b03909116600482015260248101929092529092839190829060009082906044820190565b03925af1801561151d576176e85750565b6177009060203d602011615b8a57615b7a8183610966565b50565b8061159c600061771293610966565b3861769e565b6177309060203d602011615b8a57615b7a8183610966565b61763f565b8061159c600061774493610966565b38617605565b61776491945060203d6020116115e5576115d78183610966565b92386175b0565b6177819194503d806000833e61150f8183610966565b923861756c565b61779d91503d806000833e61150f8183610966565b3861751d565b6174fb9196506177be6000913d8084833e61150f8183610966565b9691506174d4565b6177db91503d806000833e61150f8183610966565b38617498565b60405163348051d760e11b8152600481018490528560008260248160008051602061924f8339815191525afa91821561151d57600092617847575b50604051632b65311f60e11b81526001600160a01b0390911660048201526000818060248101616b07565b616b079192506178626000913d8084833e61150f8183610966565b92915061781c565b50821515617458565b61788891503d806000833e61150f8183610966565b38616aa8565b6001600160a01b03811695949093909290919086156173e95760205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa90811561151d57600091617fcc575b50604051632b65311f60e11b81526001600160a01b038716600482015260008160248160008051602061924f8339815191525afa801561151d57617934926114ea926000926173b85750615f81565b6001600160a01b03811680151580617fc3575b617dbf575b50604080516001600160a01b0390971660208801526179739190616c939088908101616c85565b604085015260006060850152608084015260a083015260205460405163348051d760e11b815260048101919091526000818060248101038160008051602061924f8339815191525afa90811561151d57600091617da4575b50604051632b65311f60e11b81526001600160a01b038316600482015260008160248160008051602061924f8339815191525afa801561151d57617a279160009161717557506000604051614823816141f48960208301616063565b038160008051602061924f8339815191525afa90811561151d57617a56936114ea9360009361715f5750616074565b601f54600490602090617a749060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617d85575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57617d70575b5060008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57617d5b575b50601f54617b4d9060081c6001600160a01b0316611338565b91823b1561025657617b799260009283604051809681958294632095dedb60e01b845260048401616117565b03925af19081617d46575b50617b925750616ece611d28565b60405163064554e960e21b8152906000826004818360008051602061924f8339815191525af191821561151d57600092617d2b575b5060005b82518110156170e15781617be761133860406149e085886145d1565b14617bf5575b600101617bcb565b60205460405163348051d760e11b8152600481019190915290939060008160248160008051602061924f8339815191525afa90811561151d57617c43916114ea916000916170ce5750616139565b617c5760006147be60406149e088886145d1565b038160008051602061924f8339815191525afa801561151d57617c8491600091614be35750614aae61464e565b617c9560006020614ac487876145d1565b038160008051602061924f8339815191525afa801561151d57617cc291600091614bca5750614aae614676565b60005b617ccf85856145d1565b515151811015617d2457806000614b41617ced93614b3a89896145d1565b038160008051602061924f8339815191525afa91821561151d57600192617d1e91600091614ba85750614b9361469b565b01617cc5565b5092617bed565b617d3f91923d8091833e614c2f8183610966565b9038617bc7565b8061159c6000617d5593610966565b38617b84565b8061159c6000617d6a93610966565b38617b34565b8061159c6000617d7f93610966565b38617aee565b617d9e915060203d6020116115e5576115d78183610966565b38617a97565b617db991503d806000833e61150f8183610966565b386179cb565b601f54909190600490602090617de09060081c6001600160a01b0316611338565b6040516313917f7760e11b815292839182905afa90811561151d57600091617fa4575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b03821660048201526000816024818360008051602061924f8339815191525af1801561151d57617f8f575b506040516311f9fbc960e21b81526001600160a01b0382166004820152602481018590526020816044816000885af1801561151d57617f72575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57617f5d575b5060405163a9059cbb60e01b81526001600160a01b03871660048201526024810184905291602090839060449082906000905af1801561151d57616c859761797393616c9392617f3e575b509750509061794c565b617f569060203d602011615b8a57615b7a8183610966565b5038617f34565b8061159c6000617f6c93610966565b38617ee9565b617f8a9060203d602011615b8a57615b7a8183610966565b617e92565b8061159c6000617f9e93610966565b38617e58565b617fbd915060203d6020116115e5576115d78183610966565b38617e03565b50821515617947565b617fe191503d806000833e61150f8183610966565b386178e5565b600080916020815191016a636f6e736f6c652e6c6f675afa50565b614202618034916141f461057394604051948593634b5c427760e01b60208601526040602486015260648501906103bc565b838103602319016044850152906103bc565b6141f4610573946180936142029461807c96604051978896635ab84e1f60e01b60208901526080602489015260a48801906103bc565b9160448701526023198683030160648701526103bc565b838103602319016084850152906103bc565b156180ac57565b60405162461bcd60e51b8152602060048201526016602482015275155b9a5cddd85c081c9bdd5d195c881b9bdd081cd95d60521b6044820152606490fd5b156180f157565b60405162461bcd60e51b815260206004820152600d60248201526c15d6915510481b9bdd081cd95d609a1b6044820152606490fd5b604051608091906181378382610966565b6003815291601f1901366020840137565b604051606091906181598382610966565b6002815291601f1901366020840137565b602081830312610256578051906001600160401b03821161025657019080601f8301121561025657815161819d81611712565b926181ab6040519485610966565b81845260208085019260051b82010192831161025657602001905b8282106181d35750505090565b81518152602091820191016181c6565b919260809361820892979695978452602084015260a0604084015260a0830190610284565b6001600160a01b0390951660608201520152565b6040519061822b604083610966565b600282526134b760f11b6020830152565b6001600791601a61057394969560296040519889946802db1b430b4b724b2160bd1b6020870152618276815180926020868a019101610399565b85017f5d205b494e464f5d2053776170207375636365737366756c3a20000000000000838201526182b1825180936020604385019101610399565b0101600160fd1b838201526182d0825180936020601b85019101610399565b010166081b995959195960ca1b838201520301601819810185520183610966565b601f6105739193929360296040519586926802db1b430b4b724b2160bd1b60208501526183278151809260208688019101610399565b83017f5d205b4552524f525d20556e69737761702073776170206661696c65643a200083820152611dd8825180936020604885019101610399565b60255493946001600160a01b0390941693909291906183828515156180a5565b6026546183a29061839b906001600160a01b0316611338565b15156180ea565b60405163095ea7b360e01b81526001600160a01b039586166004820152602481018790529484169460208160448160008a5af1801561151d5761869b575b5060006183eb618126565b91618408866183f98561459f565b6001600160a01b039091169052565b602654618422906001600160a01b03165b6183f9856145b1565b61842f846183f9856145c1565b61843842615439565b60255490939061845290611338906001600160a01b031681565b90838a61847660405197889687958694634401edf760e11b86528d600487016181e3565b03925af1908161867a575b506184f95750505050618492611d28565b60205460405163348051d760e11b8152600481019190915260008160248160008051602061924f8339815191525afa91821561151d576102d2926114ea926000916184de575b506182f1565b6184f391503d806000833e61150f8183610966565b386184d8565b60265461851991906001600160a01b0316809361851461821c565b61916f565b918251156186735761852d6185369361459f565b5161851461821c565b9081511561866e5760205460405163348051d760e11b81526004810191909152925060008360248160008051602061924f8339815191525afa90811561151d576185ae93600092618651575b50600061858e8461459f565b516040518096819263348051d760e11b8352600483019190602083019252565b038160008051602061924f8339815191525afa93841561151d5760009461862f575b506000600491604051928380926306fdde0360e01b82525afa801561151d5761860e94618609936114ea93600093618612575b5061823c565b61459f565b5190565b6186289193503d806000833e61150f8183610966565b9138618603565b60049194506186496000913d8084833e61150f8183610966565b9491506185d0565b6186679192503d806000833e61150f8183610966565b9038618582565b505090565b5050505090565b618696903d806000833e61868e8183610966565b81019061816a565b618481565b6186b39060203d602011615b8a57615b7a8183610966565b6183e0565b604051906186c7604083610966565b600382526267617360e81b6020830152565b60046012929594602e610573956029604051998a966802db1b430b4b724b2160bd1b6020890152618713815180926020868c019101610399565b87017f5d205b4552524f525d2072657665727441646472657373206973207a65726f2c838201526d0103a3930b739b332b93934b733960951b6049820152618765825180936020605785019101610399565b01016301037b3160e51b83820152615f51825180936020603285019101610399565b1561878e57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b6001600160a01b03918216815291166020820152604081019190915260a06060820181905260009082015260c0608082018190526102d2929101906142d9565b6080906102d2939260018060a01b03168152606060208201526000606082015281604082015201906142d9565b93949190946060860151926188456109a5565b6001600160a01b0382168152936001600160a01b038416602086015285604086015260608501526188796020880151151590565b15618e15575060008051602061924f8339815191523b15610256576040516320d797a960e11b81526000816004818360008051602061924f8339815191525af1801561151d57618e00575b5060405163348051d760e11b81526004810186905260008160248160008051602061924f8339815191525afa90811561151d57600091618de5575b508651618917906000906001600160a01b03166147be565b038160008051602061924f8339815191525afa801561151d5761895391600091618dca575b506000604051614823816141f48a6020830161431a565b038160008051602061924f8339815191525afa90811561151d57618982936114ea93600093614c87575061432b565b600460206189a061133861143d896000526021602052604060002090565b604051635b11259160e01b815292839182905afa90811561151d57600091618dab575b5060008051602061924f8339815191523b15610256576040516303223eab60e11b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57618d96575b5015618cc85750618a3b61133861143d856000526021602052604060002090565b608085015185519192916001600160a01b0316833b156102565760405163cb7ba8e560e01b815294600094869485938491618a799160048401618805565b0393f1801561151d57618cb3575b505b60008051602061924f8339815191523b15610256576040516390c5013b60e01b81526000816004818360008051602061924f8339815191525af1801561151d57618c9e575b5060405163064554e960e21b8152916000836004818360008051602061924f8339815191525af192831561151d57600093618c83575b5060005b8351811015614c1557618b2060406149e083876145d1565b8251618b34906001600160a01b0316611338565b6001600160a01b0390911614618b4d575b600101618b08565b60405163348051d760e11b815260048101849052909491929060008160248160008051602061924f8339815191525afa90811561151d57618b99916114ea91600091614bfc57506145e5565b618bad60006147be60406149e089896145d1565b038160008051602061924f8339815191525afa801561151d57618bda91600091614be35750614aae61464e565b618beb60006020614ac488886145d1565b038160008051602061924f8339815191525afa801561151d57618c1891600091614bca5750614aae614676565b60005b618c2586866145d1565b515151811015618c7a57806000614b41618c4393614b3a8a8a6145d1565b038160008051602061924f8339815191525afa91821561151d57600192618c7491600091614ba85750614b9361469b565b01618c1b565b50919093618b45565b618c9791933d8091833e614c2f8183610966565b9138618b04565b8061159c6000618cad93610966565b38618ace565b8061159c6000618cc293610966565b38618a87565b909160046020618ce861133861143d886000526021602052604060002090565b60405163dda79b7560e01b815292839182905afa90811561151d57600091618d77575b50608086015186516001600160a01b0392831694919216843b15610256576000948591618d4e60405198899788968794634cd1e1ab60e11b8652600486016187c5565b0393f1801561151d57618d62575b50618a89565b8061159c6000618d7193610966565b38618d5c565b618d90915060203d6020116115e5576115d78183610966565b38618d0b565b8061159c6000618da593610966565b38618a1a565b618dc4915060203d6020116115e5576115d78183610966565b386189c3565b618ddf91503d806000833e61150f8183610966565b3861893c565b618dfa91503d806000833e61150f8183610966565b386188ff565b8061159c6000618e0f93610966565b386188c4565b60405163348051d760e11b81526004810187905294969095929491935060008260248160008051602061924f8339815191525afa801561151d576114ea612cb491618e679460009161540e5750614207565b936001600160a01b03851615618fa8575b506020618e9761133861143d6004946000526021602052604060002090565b604051635b11259160e01b815292839182905afa90811561151d57600091618f89575b5060008051602061924f8339815191523b156102565760405163ca669fa760e01b81526001600160a01b039190911660048201526000816024818360008051602061924f8339815191525af1801561151d57618f74575b5015618f325750600080806105739481945af1618f2c611d28565b50618787565b60405163a9059cbb60e01b81526001600160a01b039283166004820152602481019390935260209183916044918391600091165af1801561151d576176e85750565b8061159c6000618f8393610966565b38618f11565b618fa2915060203d6020116115e5576115d78183610966565b38618eba565b60405163348051d760e11b81526004810183905291945060008260248160008051602061924f8339815191525afa91821561151d5760009261913b575b5060405163348051d760e11b8152600481018790529060008260248160008051602061924f8339815191525afa91821561151d5760009261911e575b50600084156190bc57506190336186b8565b604051632b65311f60e11b81526001600160a01b03831660048201529260008460248160008051602061924f8339815191525afa92831561151d576190946114ea618e97956113389561143d9560049a60209a60009461909f575b506186d9565b979450505050618e78565b6190b59194503d806000833e61150f8183610966565b923861908e565b604051632b65311f60e11b81526001600160a01b0387166004820152818160248160008051602061924f8339815191525afa91821561151d578092619103575b5050619033565b61911792503d8091833e61150f8183610966565b38806190fc565b6191349192503d806000833e61150f8183610966565b9038619021565b6191519192503d806000833e61150f8183610966565b9038618fe5565b6040906102d2939281528160208201520190610284565b90919261918b90618419619181618148565b956183f98761459f565b6020815191012061919a61821c565b6020815191012014600014619211576025546191e69260009290916191c990611338906001600160a01b031681565b906040518095819482936307c0329d60e21b845260048401619158565b03915afa90811561151d576000916191fc575090565b6102d291503d806000833e61868e8183610966565b6025546191e692600092909161923190611338906001600160a01b031681565b9060405180958194829363d06ca61f60e01b84526004840161915856fe0000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da26469706673582212204ac5191fd2a56935eb2a626b6c057e5076df68c41286e115979311c7e2e30aed64736f6c634300081a0033"; type NodeLogicMockConstructorParams = | [signer?: Signer] diff --git a/typechain-types/factories/contracts/testing/mockGateway/WrapGatewayEVM__factory.ts b/typechain-types/factories/contracts/testing/mockGateway/WrapGatewayEVM__factory.ts index 1248d3e6..bdf6a4da 100644 --- a/typechain-types/factories/contracts/testing/mockGateway/WrapGatewayEVM__factory.ts +++ b/typechain-types/factories/contracts/testing/mockGateway/WrapGatewayEVM__factory.ts @@ -88,7 +88,7 @@ const _abi = [ ] as const; const _bytecode = - "0x60e0346100d757601f610bd638819003918201601f19168301916001600160401b038311848410176100dc578084926060946040528339810103126100d757610047816100f2565b906040610056602083016100f2565b9101519160805260a05260c052604051610acf90816101078239608051818181608a0152610196015260a05181818160dd0152818161070a015281816107e5015281816108990152818161094901526109f9015260c051818181604f0152818161076701528181610846015281816108f5015281816109ac0152610a530152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036100d75756fe6080604052600436106101815760003560e01c8063589dd5da1461007757806385e1f4d0146100375763ced52b4003610181576100c7565b346100725760003660031901126100725760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b600080fd5b34610072576000366003190112610072577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b600091031261007257565b34610072576000366003190112610072576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761013e57604052565b61010c565b90601f8019910116810190811067ffffffffffffffff82111761013e57604052565b67ffffffffffffffff811161013e57601f01601f191660200190565b600080604051368282378036810183815203907f00000000000000000000000000000000000000000000000000000000000000005af43d1561023c573d906101c882610165565b916101d66040519384610143565b82523d6000602084013e5b156101f7576101ef366106c3565b602081519101f35b60405162461bcd60e51b815260206004820152601b60248201527f476174657761792064656c656761746563616c6c206661696c656400000000006044820152606490fd5b6060906101e1565b906004116100725790600490565b909291928360041161007257831161007257600401916003190190565b356001600160e01b031981169291906004821061028a575050565b6001600160e01b031960049290920360031b82901b16169150565b6001600160a01b0381160361007257565b81601f82011215610072578035906102cd82610165565b926102db6040519485610143565b8284526020838301011161007257816000926020809301838601378301015290565b3590610308826102a5565b565b91909160a081840312610072576040519061032482610122565b81938135610331816102a5565b835260208201358015158103610072576020840152610352604083016102fd565b604084015260608201359167ffffffffffffffff83116100725761037c60809392849383016102b6565b60608501520135910152565b9160608383031261007257823561039e816102a5565b92602081013567ffffffffffffffff811161007257836103bf9183016102b6565b92604082013567ffffffffffffffff8111610072576103de920161030a565b90565b919082519283825260005b84811061040d575050826000602080949584010152601f8019910116010190565b806020809284010151828286010152016103ec565b9060018060a01b03825116815260208201511515602082015260018060a01b036040830151166040820152608080610469606085015160a0606086015260a08501906103e1565b93015191015290565b9081526001600160a01b0391821660208201529116604082015260a0606082018190526103de9391926104a7918401906103e1565b916080818403910152610422565b6040513d6000823e3d90fd5b91909160a0818403126100725780356104d9816102a5565b9260208201359260408301356104ee816102a5565b92606081013567ffffffffffffffff8111610072578361050f9183016102b6565b92608082013567ffffffffffffffff8111610072576103de920161030a565b9081526001600160a01b0391821660208201529116604082015260608101919091526000608082015260e060a082018190526103de939192610572918401906103e1565b9160c0818403910152610422565b9081526001600160a01b039182166020820152918116604083015260608201929092529116608082015260e060a082018190526103de939192610572918401906103e1565b906080828203126100725781356105db816102a5565b9260208301359260408101356105f0816102a5565b92606082013567ffffffffffffffff8111610072576103de920161030a565b9081526001600160a01b0391821660208201529116604082015260608101919091526000608082015260c060a082018190526103de92910190610422565b9081526001600160a01b039182166020820152918116604083015260608201929092529116608082015260c060a082018190526103de92910190610422565b9190916040818403126100725780356106a4816102a5565b92602082013567ffffffffffffffff8111610072576103de920161030a565b6106e16106d1826000610244565b6001600160e01b0319929161026f565b16631c9ab25f60e21b81036107ba575061070081610708926000610252565b81019061068c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169190823b156100725760405163ced6e79360e01b815292600092849283918591839161078f919034906001600160a01b0316337f00000000000000000000000000000000000000000000000000000000000000006004870161060f565b03925af180156107b5576107a05750565b806107af600061030893610143565b806100bc565b6104b5565b630102614b60e41b810361086e57506107d8816107e0926000610252565b8101906105c5565b9290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b156100725760405163ced6e79360e01b815294600094869485938793859361078f9391926001600160a01b0391821692909116337f00000000000000000000000000000000000000000000000000000000000000006004880161064d565b63744b9b8b60e01b810361091d575061088c81610894926000610252565b810190610388565b9091907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156100725760405163ad82a62760e01b815293600093859384928692849261078f92909134906001600160a01b0316337f00000000000000000000000000000000000000000000000000000000000000006004880161052e565b631a13c76f60e31b81036109d4575061093b81610943926000610252565b8101906104c1565b909391927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b156100725760405163ad82a62760e01b815295600095879586948894869461078f94919390926001600160a01b0392831692909116337f000000000000000000000000000000000000000000000000000000000000000060048901610580565b6306fb33ad60e21b146109e5575b50565b61088c816109f4926000610252565b9091907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b15610072576040516375e7f8e360e11b8152936000938593849286928492610a7b9290916001600160a01b0316337f000000000000000000000000000000000000000000000000000000000000000060048701610472565b03925af180156107b557156109e257806107af60006103089361014356fea2646970667358221220a71cbde33d0601ceacd47bd11f54cc311e513e7ffbb3ec6ec289e9912d3be94b64736f6c634300081a0033"; + "0x60e0346100d757601f610bd638819003918201601f19168301916001600160401b038311848410176100dc578084926060946040528339810103126100d757610047816100f2565b906040610056602083016100f2565b9101519160805260a05260c052604051610acf90816101078239608051818181608a0152610196015260a05181818160dd0152818161070a015281816107e5015281816108990152818161094901526109f9015260c051818181604f0152818161076701528181610846015281816108f5015281816109ac0152610a530152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036100d75756fe6080604052600436106101815760003560e01c8063589dd5da1461007757806385e1f4d0146100375763ced52b4003610181576100c7565b346100725760003660031901126100725760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b600080fd5b34610072576000366003190112610072577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b600091031261007257565b34610072576000366003190112610072576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761013e57604052565b61010c565b90601f8019910116810190811067ffffffffffffffff82111761013e57604052565b67ffffffffffffffff811161013e57601f01601f191660200190565b600080604051368282378036810183815203907f00000000000000000000000000000000000000000000000000000000000000005af43d1561023c573d906101c882610165565b916101d66040519384610143565b82523d6000602084013e5b156101f7576101ef366106c3565b602081519101f35b60405162461bcd60e51b815260206004820152601b60248201527f476174657761792064656c656761746563616c6c206661696c656400000000006044820152606490fd5b6060906101e1565b906004116100725790600490565b909291928360041161007257831161007257600401916003190190565b356001600160e01b031981169291906004821061028a575050565b6001600160e01b031960049290920360031b82901b16169150565b6001600160a01b0381160361007257565b81601f82011215610072578035906102cd82610165565b926102db6040519485610143565b8284526020838301011161007257816000926020809301838601378301015290565b3590610308826102a5565b565b91909160a081840312610072576040519061032482610122565b81938135610331816102a5565b835260208201358015158103610072576020840152610352604083016102fd565b604084015260608201359167ffffffffffffffff83116100725761037c60809392849383016102b6565b60608501520135910152565b9160608383031261007257823561039e816102a5565b92602081013567ffffffffffffffff811161007257836103bf9183016102b6565b92604082013567ffffffffffffffff8111610072576103de920161030a565b90565b919082519283825260005b84811061040d575050826000602080949584010152601f8019910116010190565b806020809284010151828286010152016103ec565b9060018060a01b03825116815260208201511515602082015260018060a01b036040830151166040820152608080610469606085015160a0606086015260a08501906103e1565b93015191015290565b9081526001600160a01b0391821660208201529116604082015260a0606082018190526103de9391926104a7918401906103e1565b916080818403910152610422565b6040513d6000823e3d90fd5b91909160a0818403126100725780356104d9816102a5565b9260208201359260408301356104ee816102a5565b92606081013567ffffffffffffffff8111610072578361050f9183016102b6565b92608082013567ffffffffffffffff8111610072576103de920161030a565b9081526001600160a01b0391821660208201529116604082015260608101919091526000608082015260e060a082018190526103de939192610572918401906103e1565b9160c0818403910152610422565b9081526001600160a01b039182166020820152918116604083015260608201929092529116608082015260e060a082018190526103de939192610572918401906103e1565b906080828203126100725781356105db816102a5565b9260208301359260408101356105f0816102a5565b92606082013567ffffffffffffffff8111610072576103de920161030a565b9081526001600160a01b0391821660208201529116604082015260608101919091526000608082015260c060a082018190526103de92910190610422565b9081526001600160a01b039182166020820152918116604083015260608201929092529116608082015260c060a082018190526103de92910190610422565b9190916040818403126100725780356106a4816102a5565b92602082013567ffffffffffffffff8111610072576103de920161030a565b6106e16106d1826000610244565b6001600160e01b0319929161026f565b16631c9ab25f60e21b81036107ba575061070081610708926000610252565b81019061068c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169190823b156100725760405163ced6e79360e01b815292600092849283918591839161078f919034906001600160a01b0316337f00000000000000000000000000000000000000000000000000000000000000006004870161060f565b03925af180156107b5576107a05750565b806107af600061030893610143565b806100bc565b6104b5565b630102614b60e41b810361086e57506107d8816107e0926000610252565b8101906105c5565b9290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b156100725760405163ced6e79360e01b815294600094869485938793859361078f9391926001600160a01b0391821692909116337f00000000000000000000000000000000000000000000000000000000000000006004880161064d565b63744b9b8b60e01b810361091d575061088c81610894926000610252565b810190610388565b9091907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156100725760405163ad82a62760e01b815293600093859384928692849261078f92909134906001600160a01b0316337f00000000000000000000000000000000000000000000000000000000000000006004880161052e565b631a13c76f60e31b81036109d4575061093b81610943926000610252565b8101906104c1565b909391927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b156100725760405163ad82a62760e01b815295600095879586948894869461078f94919390926001600160a01b0392831692909116337f000000000000000000000000000000000000000000000000000000000000000060048901610580565b6306fb33ad60e21b146109e5575b50565b61088c816109f4926000610252565b9091907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b15610072576040516375e7f8e360e11b8152936000938593849286928492610a7b9290916001600160a01b0316337f000000000000000000000000000000000000000000000000000000000000000060048701610472565b03925af180156107b557156109e257806107af60006103089361014356fea2646970667358221220aaf6392076304ab7496b470bf7926c119cc3618f0adc327d7f143786b22e658464736f6c634300081a0033"; type WrapGatewayEVMConstructorParams = | [signer?: Signer] diff --git a/typechain-types/factories/contracts/testing/mockGateway/WrapGatewayZEVM__factory.ts b/typechain-types/factories/contracts/testing/mockGateway/WrapGatewayZEVM__factory.ts index bf66d86b..77316dfd 100644 --- a/typechain-types/factories/contracts/testing/mockGateway/WrapGatewayZEVM__factory.ts +++ b/typechain-types/factories/contracts/testing/mockGateway/WrapGatewayZEVM__factory.ts @@ -69,7 +69,7 @@ const _abi = [ ] as const; const _bytecode = - "0x60c034608d57601f61094c38819003918201601f19168301916001600160401b038311848410176092578084926040948552833981010312608d57604b602060458360a8565b920160a8565b9060805260a05260405161089090816100bc8239608051818181603d015261012d015260a0518181816084015281816106960152818161074e01526107db0152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203608d5756fe6080604052600436106101185760003560e01c8063ced52b40146100715763d9d2f07403610118573461006c57600036600319011261006c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b600080fd5b3461006c57600036600319011261006c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b600091031261006c57565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b038211176100f857604052565b6100c1565b6001600160401b0381116100f857601f01601f191660200190565b600080604051368282378036810183815203907f00000000000000000000000000000000000000000000000000000000000000005af43d156101d3573d9061015f826100fd565b9161016d60405193846100d7565b82523d6000602084013e5b1561018e576101863661065f565b602081519101f35b60405162461bcd60e51b815260206004820152601f60248201527f476174657761795a45564d2064656c656761746563616c6c206661696c6564006044820152606490fd5b606090610178565b909291928360041161006c57831161006c57600401916003190190565b81601f8201121561006c5780359061020f826100fd565b9261021d60405194856100d7565b8284526020838301011161006c57816000926020809301838601378301015290565b6001600160a01b0381160361006c57565b3590811515820361006c57565b919082604091031261006c57604051604081018181106001600160401b038211176100f85760405260206102978183958035855201610250565b910152565b91909160a08184031261006c576040519060a082018281106001600160401b038211176100f857604052819381356102d38161023f565b83526102e160208301610250565b602084015260408201356102f48161023f565b60408401526060820135916001600160401b03831161006c5761031d60809392849383016101f8565b60608501520135910152565b9160e08383031261006c5782356001600160401b03811161006c57826103509185016101f8565b9260208101359260408201356103658161023f565b9260608301356001600160401b03811161006c57826103859185016101f8565b92610393836080830161025d565b9260c08201356001600160401b03811161006c576103b1920161029c565b90565b919082519283825260005b8481106103e0575050826000602080949584010152601f8019910116010190565b806020809284010151828286010152016103bf565b9060018060a01b03825116815260208201511515602082015260018060a01b03604083015116604082015260808061043c606085015160a0606086015260a08501906103b4565b93015191015290565b93946103b19795610475610498946104ae969460018060a01b0316885261010060208901526101008801906103b4565b60408701939093526001600160a01b0316606086015284820360808601526103b4565b845160a0840152602090940151151560c0830152565b60e08184039101526103f5565b6040513d6000823e3d90fd5b9060808282031261006c5781356001600160401b03811161006c57816104ee9184016101f8565b9260208301359260408101356105038161023f565b9260608201356001600160401b03811161006c576103b1920161029c565b6001600160a01b03909116815260a0602082018190526103b1959394919261054b918401906103b4565b60408301949094526001600160a01b031660608201528083036080909101526103f5565b91909160c08184031261006c5780356001600160401b03811161006c57836105989183016101f8565b9260208201356105a78161023f565b9260408301356001600160401b03811161006c57826105c79185016101f8565b926105d5836060830161025d565b9260a08201356001600160401b03811161006c576103b1920161029c565b926103b1969461061f6106529461063c9460018060a01b0316875260e0602088015260e08701906103b4565b6001600160a01b03909216604086015284820360608601526103b4565b84516080840152602090940151151560a0830152565b60c08184039101526103f5565b6000356001600160e01b0319166306cb898360e01b8103610723575061068a816106929260006101db565b81019061056f565b90937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561006c576000946106f5869260405198899788968795632c612e1f60e21b875260018060a01b03169033600488016105f3565b03925af1801561071e57610707575b50565b80610716600061071c936100d7565b806100b6565b565b6104bb565b637c0dcb5f60e01b81036107ac5750610741816107499260006101db565b8101906104c7565b9290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b1561006c57600080946106f5604051978896879586946308327f7960e41b865260018060a01b0316913360048701610521565b637b15118b60e01b146107bc5750565b6107cb816107d39260006101db565b810190610329565b9194909390927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169290833b1561006c5761083c600096928793604051998a988997889663567ee10960e11b885260018060a01b0316913360048901610445565b03925af1801561071e57156107045780610716600061071c936100d756fea2646970667358221220c3b911f522f83c8ee9102b4245bed2a13c90092e91b0140cf5e5b3a0b9aa0c6f64736f6c634300081a0033"; + "0x60c034608d57601f61094c38819003918201601f19168301916001600160401b038311848410176092578084926040948552833981010312608d57604b602060458360a8565b920160a8565b9060805260a05260405161089090816100bc8239608051818181603d015261012d015260a0518181816084015281816106960152818161074e01526107db0152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203608d5756fe6080604052600436106101185760003560e01c8063ced52b40146100715763d9d2f07403610118573461006c57600036600319011261006c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b600080fd5b3461006c57600036600319011261006c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b600091031261006c57565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b038211176100f857604052565b6100c1565b6001600160401b0381116100f857601f01601f191660200190565b600080604051368282378036810183815203907f00000000000000000000000000000000000000000000000000000000000000005af43d156101d3573d9061015f826100fd565b9161016d60405193846100d7565b82523d6000602084013e5b1561018e576101863661065f565b602081519101f35b60405162461bcd60e51b815260206004820152601f60248201527f476174657761795a45564d2064656c656761746563616c6c206661696c6564006044820152606490fd5b606090610178565b909291928360041161006c57831161006c57600401916003190190565b81601f8201121561006c5780359061020f826100fd565b9261021d60405194856100d7565b8284526020838301011161006c57816000926020809301838601378301015290565b6001600160a01b0381160361006c57565b3590811515820361006c57565b919082604091031261006c57604051604081018181106001600160401b038211176100f85760405260206102978183958035855201610250565b910152565b91909160a08184031261006c576040519060a082018281106001600160401b038211176100f857604052819381356102d38161023f565b83526102e160208301610250565b602084015260408201356102f48161023f565b60408401526060820135916001600160401b03831161006c5761031d60809392849383016101f8565b60608501520135910152565b9160e08383031261006c5782356001600160401b03811161006c57826103509185016101f8565b9260208101359260408201356103658161023f565b9260608301356001600160401b03811161006c57826103859185016101f8565b92610393836080830161025d565b9260c08201356001600160401b03811161006c576103b1920161029c565b90565b919082519283825260005b8481106103e0575050826000602080949584010152601f8019910116010190565b806020809284010151828286010152016103bf565b9060018060a01b03825116815260208201511515602082015260018060a01b03604083015116604082015260808061043c606085015160a0606086015260a08501906103b4565b93015191015290565b93946103b19795610475610498946104ae969460018060a01b0316885261010060208901526101008801906103b4565b60408701939093526001600160a01b0316606086015284820360808601526103b4565b845160a0840152602090940151151560c0830152565b60e08184039101526103f5565b6040513d6000823e3d90fd5b9060808282031261006c5781356001600160401b03811161006c57816104ee9184016101f8565b9260208301359260408101356105038161023f565b9260608201356001600160401b03811161006c576103b1920161029c565b6001600160a01b03909116815260a0602082018190526103b1959394919261054b918401906103b4565b60408301949094526001600160a01b031660608201528083036080909101526103f5565b91909160c08184031261006c5780356001600160401b03811161006c57836105989183016101f8565b9260208201356105a78161023f565b9260408301356001600160401b03811161006c57826105c79185016101f8565b926105d5836060830161025d565b9260a08201356001600160401b03811161006c576103b1920161029c565b926103b1969461061f6106529461063c9460018060a01b0316875260e0602088015260e08701906103b4565b6001600160a01b03909216604086015284820360608601526103b4565b84516080840152602090940151151560a0830152565b60c08184039101526103f5565b6000356001600160e01b0319166306cb898360e01b8103610723575061068a816106929260006101db565b81019061056f565b90937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561006c576000946106f5869260405198899788968795632c612e1f60e21b875260018060a01b03169033600488016105f3565b03925af1801561071e57610707575b50565b80610716600061071c936100d7565b806100b6565b565b6104bb565b637c0dcb5f60e01b81036107ac5750610741816107499260006101db565b8101906104c7565b9290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b1561006c57600080946106f5604051978896879586946308327f7960e41b865260018060a01b0316913360048701610521565b637b15118b60e01b146107bc5750565b6107cb816107d39260006101db565b810190610329565b9194909390927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169290833b1561006c5761083c600096928793604051998a988997889663567ee10960e11b885260018060a01b0316913360048901610445565b03925af1801561071e57156107045780610716600061071c936100d756fea2646970667358221220133391b00c7d02fadba0abecf2ff0ca588b7e0be6358eaeb9ed28b58db011a3a64736f6c634300081a0033"; type WrapGatewayZEVMConstructorParams = | [signer?: Signer] diff --git a/typechain-types/hardhat.d.ts b/typechain-types/hardhat.d.ts index 31f8910b..fbef67e9 100644 --- a/typechain-types/hardhat.d.ts +++ b/typechain-types/hardhat.d.ts @@ -233,6 +233,18 @@ declare module "hardhat/types/runtime" { name: "ZetaConnectorNonNative", signerOrOptions?: ethers.Signer | FactoryOptions ): Promise; + getContractFactory( + name: "IBaseRegistry", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IBaseRegistryErrors", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IBaseRegistryEvents", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; getContractFactory( name: "Abortable", signerOrOptions?: ethers.Signer | FactoryOptions @@ -245,6 +257,10 @@ declare module "hardhat/types/runtime" { name: "GatewayZEVM", signerOrOptions?: ethers.Signer | FactoryOptions ): Promise; + getContractFactory( + name: "ICoreRegistry", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; getContractFactory( name: "IGatewayZEVM", signerOrOptions?: ethers.Signer | FactoryOptions @@ -285,6 +301,10 @@ declare module "hardhat/types/runtime" { name: "ZContract", signerOrOptions?: ethers.Signer | FactoryOptions ): Promise; + getContractFactory( + name: "GatewayZEVMValidations", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; getContractFactory( name: "SystemContract", signerOrOptions?: ethers.Signer | FactoryOptions @@ -773,6 +793,21 @@ declare module "hardhat/types/runtime" { address: string | ethers.Addressable, signer?: ethers.Signer ): Promise; + getContractAt( + name: "IBaseRegistry", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IBaseRegistryErrors", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IBaseRegistryEvents", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; getContractAt( name: "Abortable", address: string | ethers.Addressable, @@ -788,6 +823,11 @@ declare module "hardhat/types/runtime" { address: string | ethers.Addressable, signer?: ethers.Signer ): Promise; + getContractAt( + name: "ICoreRegistry", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; getContractAt( name: "IGatewayZEVM", address: string | ethers.Addressable, @@ -838,6 +878,11 @@ declare module "hardhat/types/runtime" { address: string | ethers.Addressable, signer?: ethers.Signer ): Promise; + getContractAt( + name: "GatewayZEVMValidations", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; getContractAt( name: "SystemContract", address: string | ethers.Addressable, @@ -1324,6 +1369,18 @@ declare module "hardhat/types/runtime" { name: "ZetaConnectorNonNative", signerOrOptions?: ethers.Signer | DeployContractOptions ): Promise; + deployContract( + name: "IBaseRegistry", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IBaseRegistryErrors", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IBaseRegistryEvents", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; deployContract( name: "Abortable", signerOrOptions?: ethers.Signer | DeployContractOptions @@ -1336,6 +1393,10 @@ declare module "hardhat/types/runtime" { name: "GatewayZEVM", signerOrOptions?: ethers.Signer | DeployContractOptions ): Promise; + deployContract( + name: "ICoreRegistry", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; deployContract( name: "IGatewayZEVM", signerOrOptions?: ethers.Signer | DeployContractOptions @@ -1376,6 +1437,10 @@ declare module "hardhat/types/runtime" { name: "ZContract", signerOrOptions?: ethers.Signer | DeployContractOptions ): Promise; + deployContract( + name: "GatewayZEVMValidations", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; deployContract( name: "SystemContract", signerOrOptions?: ethers.Signer | DeployContractOptions @@ -1864,6 +1929,21 @@ declare module "hardhat/types/runtime" { args: any[], signerOrOptions?: ethers.Signer | DeployContractOptions ): Promise; + deployContract( + name: "IBaseRegistry", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IBaseRegistryErrors", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IBaseRegistryEvents", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; deployContract( name: "Abortable", args: any[], @@ -1879,6 +1959,11 @@ declare module "hardhat/types/runtime" { args: any[], signerOrOptions?: ethers.Signer | DeployContractOptions ): Promise; + deployContract( + name: "ICoreRegistry", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; deployContract( name: "IGatewayZEVM", args: any[], @@ -1929,6 +2014,11 @@ declare module "hardhat/types/runtime" { args: any[], signerOrOptions?: ethers.Signer | DeployContractOptions ): Promise; + deployContract( + name: "GatewayZEVMValidations", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; deployContract( name: "SystemContract", args: any[], diff --git a/typechain-types/index.ts b/typechain-types/index.ts index c69db839..6df1510c 100644 --- a/typechain-types/index.ts +++ b/typechain-types/index.ts @@ -118,12 +118,20 @@ export type { ZetaConnectorNative } from "./@zetachain/protocol-contracts/contra export { ZetaConnectorNative__factory } from "./factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNative__factory"; export type { ZetaConnectorNonNative } from "./@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNonNative"; export { ZetaConnectorNonNative__factory } from "./factories/@zetachain/protocol-contracts/contracts/evm/ZetaConnectorNonNative__factory"; +export type { IBaseRegistry } from "./@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/IBaseRegistry"; +export { IBaseRegistry__factory } from "./factories/@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/IBaseRegistry__factory"; +export type { IBaseRegistryErrors } from "./@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/IBaseRegistryErrors"; +export { IBaseRegistryErrors__factory } from "./factories/@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/IBaseRegistryErrors__factory"; +export type { IBaseRegistryEvents } from "./@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/IBaseRegistryEvents"; +export { IBaseRegistryEvents__factory } from "./factories/@zetachain/protocol-contracts/contracts/helpers/interfaces/IBaseRegistry.sol/IBaseRegistryEvents__factory"; export type { Abortable } from "./@zetachain/protocol-contracts/contracts/Revert.sol/Abortable"; export { Abortable__factory } from "./factories/@zetachain/protocol-contracts/contracts/Revert.sol/Abortable__factory"; export type { Revertable } from "./@zetachain/protocol-contracts/contracts/Revert.sol/Revertable"; export { Revertable__factory } from "./factories/@zetachain/protocol-contracts/contracts/Revert.sol/Revertable__factory"; export type { GatewayZEVM } from "./@zetachain/protocol-contracts/contracts/zevm/GatewayZEVM"; export { GatewayZEVM__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/GatewayZEVM__factory"; +export type { ICoreRegistry } from "./@zetachain/protocol-contracts/contracts/zevm/interfaces/ICoreRegistry"; +export { ICoreRegistry__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/ICoreRegistry__factory"; export type { IGatewayZEVM } from "./@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVM"; export { IGatewayZEVM__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVM__factory"; export type { IGatewayZEVMErrors } from "./@zetachain/protocol-contracts/contracts/zevm/interfaces/IGatewayZEVM.sol/IGatewayZEVMErrors"; @@ -144,6 +152,8 @@ export type { UniversalContract } from "./@zetachain/protocol-contracts/contract export { UniversalContract__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/UniversalContract__factory"; export type { ZContract } from "./@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/ZContract"; export { ZContract__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/interfaces/UniversalContract.sol/ZContract__factory"; +export type { GatewayZEVMValidations } from "./@zetachain/protocol-contracts/contracts/zevm/libraries/GatewayZEVMValidations"; +export { GatewayZEVMValidations__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/libraries/GatewayZEVMValidations__factory"; export type { SystemContract } from "./@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContract"; export { SystemContract__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContract__factory"; export type { SystemContractErrors } from "./@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContractErrors"; diff --git a/types/bitcoin.constants.ts b/types/bitcoin.constants.ts index 67da66d9..93813f92 100644 --- a/types/bitcoin.constants.ts +++ b/types/bitcoin.constants.ts @@ -3,23 +3,6 @@ export const DEFAULT_BITCOIN_API = "https://mempool.space/signet/api"; export const DEFAULT_GAS_PRICE_API = "https://zetachain-athens.blockpi.network/lcd/v1/public/zeta-chain/crosschain/gasPrice/18333"; -/** - * Bitcoin network constants - */ -export const BITCOIN_NETWORKS = { - SIGNET: { - BECH32: "tb", - BIP32: { - PRIVATE: 0x04358394, - PUBLIC: 0x043587cf, - }, - MESSAGE_PREFIX: "\x18Bitcoin Signed Message:\n", - PUBKEY_HASH: 0x6f, - SCRIPT_HASH: 0xc4, - WIF: 0xef, - }, -}; - /** * Bitcoin script and transaction constants */ @@ -65,3 +48,9 @@ export const BITCOIN_FEES = { export const ESTIMATED_VIRTUAL_SIZE = 68; export const EVM_ADDRESS_LENGTH = 20; export const MAX_MEMO_LENGTH = 80; + +// In Bitcoin's Taproot upgrade (BIP 340), public keys are represented in a compressed +// format that only stores the x-coordinate of the elliptic curve point, hence "x-only". +// This is different from traditional Bitcoin public keys which store both x and y coordinates. +export const X_ONLY_PUBKEY_START_INDEX = 1; +export const X_ONLY_PUBKEY_END_INDEX = 33; diff --git a/types/bitcoin.types.ts b/types/bitcoin.types.ts index fbc61294..14346e3e 100644 --- a/types/bitcoin.types.ts +++ b/types/bitcoin.types.ts @@ -1,8 +1,9 @@ import * as bitcoin from "bitcoinjs-lib"; import { z } from "zod"; -import { EncodingFormat } from "../utils/bitcoinEncode"; +import { EncodingFormat } from "../src/chains/bitcoin/inscription/encode"; import { + BITCOIN_FEES, DEFAULT_BITCOIN_API, DEFAULT_GAS_PRICE_API, } from "./bitcoin.constants"; @@ -93,8 +94,14 @@ export const baseBitcoinOptionsSchema = z.object({ export const baseBitcoinInscriptionOptionsSchema = baseBitcoinOptionsSchema.extend({ + commitFee: z + .string() + .optional() + .default(BITCOIN_FEES.DEFAULT_COMMIT_FEE_SAT.toString()) + .transform((val) => Number(val)), data: hexStringSchema.optional(), format: encodingFormatSchema, + network: z.enum(["signet", "mainnet"]).default("signet"), receiver: evmAddressSchema.optional(), revertAddress: z.string().optional(), }); @@ -138,6 +145,7 @@ export const inscriptionCallOptionsSchema = withCommonBitcoinInscriptionRefines( ); export const baseBitcoinMemoOptionsSchema = baseBitcoinOptionsSchema.extend({ + network: z.enum(["signet", "mainnet"]).default("signet"), networkFee: z.string(), receiver: evmAddressSchema, }); diff --git a/types/faucet.types.ts b/types/faucet.types.ts new file mode 100644 index 00000000..096a7063 --- /dev/null +++ b/types/faucet.types.ts @@ -0,0 +1,8 @@ +import { z } from "zod"; + +import { evmAddressSchema } from "./shared.schema"; + +export const faucetOptionsSchema = z.object({ + address: evmAddressSchema.optional(), + name: z.string().optional(), +}); diff --git a/utils/bitcoin.command.helpers.ts b/utils/bitcoin.command.helpers.ts index ee526998..32c49663 100644 --- a/utils/bitcoin.command.helpers.ts +++ b/utils/bitcoin.command.helpers.ts @@ -6,22 +6,16 @@ import ECPairFactory, { ECPairInterface } from "ecpair"; import { ethers } from "ethers"; import * as ecc from "tiny-secp256k1"; +import { EncodingFormat } from "../src/chains/bitcoin/inscription/encode"; import { BitcoinAccountData } from "../types/accounts.types"; import { - BITCOIN_FEES, DEFAULT_BITCOIN_API, DEFAULT_GAS_PRICE_API, DEFAULT_GATEWAY, } from "../types/bitcoin.constants"; import { type BtcUtxo, formatEncodingChoices } from "../types/bitcoin.types"; import { DEFAULT_ACCOUNT_NAME } from "../types/shared.constants"; -import { EncodingFormat } from "../utils/bitcoinEncode"; import { getAccountData } from "./accounts"; -import { - makeCommitTransaction, - makeRevealTransaction, - SIGNET, -} from "./bitcoin.helpers"; import { handleError } from "./handleError"; export interface BitcoinKeyPair { @@ -31,16 +25,16 @@ export interface BitcoinKeyPair { export interface TransactionInfo { amount: string; + commitFee: number; depositFee: number; encodedMessage?: string; - encodingFormat: EncodingFormat; + format: EncodingFormat; gateway: string; - inscriptionCommitFee: number; - inscriptionRevealFee: number; network: string; operation: string; rawInscriptionData: string; receiver?: string; + revealFee: number; revertAddress?: string; sender: string; } @@ -50,7 +44,8 @@ export interface TransactionInfo { */ export const setupBitcoinKeyPair = ( privateKey: string | undefined, - name: string + name: string, + network: bitcoin.Network ): BitcoinKeyPair => { const keyPrivateKey = privateKey || @@ -72,11 +67,11 @@ export const setupBitcoinKeyPair = ( // Set up Bitcoin key pair const ECPair = ECPairFactory(ecc); const key = ECPair.fromPrivateKey(Buffer.from(keyPrivateKey, "hex"), { - network: SIGNET, + network, }); const { address } = bitcoin.payments.p2wpkh({ - network: SIGNET, + network, pubkey: key.publicKey, }); @@ -104,20 +99,13 @@ export const displayAndConfirmTransaction = async (info: TransactionInfo) => { ? Number(ethers.parseUnits(info.amount, 8)) : 0; const totalSats = - amountInSats + - info.inscriptionCommitFee + - info.inscriptionRevealFee + - info.depositFee; + amountInSats + info.commitFee + info.revealFee + info.depositFee; console.log(` Network: ${info.network} ${info.amount ? `Amount: ${info.amount} BTC (${amountInSats} sats)` : ""} -Inscription Commit Fee: ${info.inscriptionCommitFee} sats (${formatBTC( - info.inscriptionCommitFee - )} BTC) -Inscription Reveal Fee: ${info.inscriptionRevealFee} sats (${formatBTC( - info.inscriptionRevealFee - )} BTC) +Commit Fee: ${info.commitFee} sats (${formatBTC(info.commitFee)} BTC) +Reveal Fee: ${info.revealFee} sats (${formatBTC(info.revealFee)} BTC) Deposit Fee: ${info.depositFee} sats (${formatBTC(info.depositFee)} BTC) Total: ${totalSats} sats (${formatBTC(totalSats)} BTC) Gateway: ${info.gateway} @@ -126,7 +114,7 @@ Receiver: ${info.receiver || notApplicable} Revert Address: ${info.revertAddress || notApplicable} Operation: ${info.operation} ${info.encodedMessage ? `Encoded Message: ${info.encodedMessage}` : ""} -Encoding Format: ${info.encodingFormat} +Encoding Format: ${info.format} Raw Inscription Data: ${info.rawInscriptionData} `); await confirm({ message: "Proceed?" }, { clearPromptOnDone: true }); @@ -141,12 +129,13 @@ export const displayAndConfirmMemoTransaction = async ( depositFee: number, gateway: string, sender: string, - memo: string + memo: string, + network: "signet" | "mainnet" ) => { const totalAmount = amount + depositFee; console.log(` -Network: Signet +Network: ${network === "signet" ? "Signet" : "Mainnet"} Gateway: ${gateway} Sender: ${sender} Operation: Memo Transaction @@ -174,57 +163,13 @@ export const broadcastBtcTransaction = async ( return data; }; -/** - * Creates and broadcasts both commit and reveal transactions for Bitcoin inscriptions - */ -export const createAndBroadcastTransactions = async ( - key: ECPairInterface, - utxos: BtcUtxo[], - address: string, - data: Buffer, - api: string, - amount: number, - gateway: string -) => { - // Create and broadcast commit transaction - const commit = await makeCommitTransaction( - key, - utxos, - address, - data, - api, - amount - ); - - const commitTxid = await broadcastBtcTransaction(commit.txHex, api); - console.log("Commit TXID:", commitTxid); - - // Create and broadcast reveal transaction - const revealHex = makeRevealTransaction( - commitTxid, - 0, - amount, - gateway, - BITCOIN_FEES.DEFAULT_REVEAL_FEE_RATE, - { - controlBlock: commit.controlBlock, - internalKey: commit.internalKey, - leafScript: commit.leafScript, - }, - key - ); - const revealTxid = await broadcastBtcTransaction(revealHex, api); - console.log("Reveal TXID:", revealTxid); - - return { commitTxid, revealTxid }; -}; - export const createBitcoinCommandWithCommonOptions = ( name: string ): Command => { return new Command(name) .option("--yes", "Skip confirmation prompt", false) .option("-r, --receiver
", "ZetaChain receiver address") + .option("--commit-fee ", "Commit fee (in sats)", "15000") .requiredOption( "-g, --gateway
", "Bitcoin gateway (TSS) address", @@ -247,7 +192,14 @@ export const createBitcoinMemoCommandWithCommonOptions = ( ): Command => { return createBitcoinCommandWithCommonOptions(name) .option("-d, --data ", "Pass raw data") - .option("--network-fee ", "Network fee (in sats)", "1750"); + .option("--network-fee ", "Network fee (in sats)", "1750") + .addOption( + new Option("--network ", "Network") + .choices(["signet", "mainnet"]) + .default("signet") + ) + .option("--bitcoin-api ", "Bitcoin API", DEFAULT_BITCOIN_API) + .option("--gas-price-api ", "ZetaChain API", DEFAULT_GAS_PRICE_API); }; export const createBitcoinInscriptionCommandWithCommonOptions = ( @@ -255,6 +207,11 @@ export const createBitcoinInscriptionCommandWithCommonOptions = ( ): Command => { return createBitcoinCommandWithCommonOptions(name) .option("--revert-address
", "Revert address") + .addOption( + new Option("--network ", "Network") + .choices(["signet", "mainnet"]) + .default("signet") + ) .addOption( new Option("--format ", "Encoding format") .choices(formatEncodingChoices) diff --git a/utils/bitcoin.helpers.ts b/utils/bitcoin.helpers.ts index bac7cfcd..987530f6 100644 --- a/utils/bitcoin.helpers.ts +++ b/utils/bitcoin.helpers.ts @@ -5,31 +5,15 @@ import { ethers } from "ethers"; import { BITCOIN_FEES, BITCOIN_LIMITS, - BITCOIN_NETWORKS, BITCOIN_SCRIPT, BITCOIN_TX, ESTIMATED_VIRTUAL_SIZE, } from "../types/bitcoin.constants"; import type { BtcTxById, BtcUtxo } from "../types/bitcoin.types"; -import { getDepositFee } from "./bitcoinMemo.helpers"; - -/** - * Bitcoin Signet network parameters - * Used for creating Signet-compatible transactions - */ -export const SIGNET = { - bech32: BITCOIN_NETWORKS.SIGNET.BECH32, - bip32: { - private: BITCOIN_NETWORKS.SIGNET.BIP32.PRIVATE, - public: BITCOIN_NETWORKS.SIGNET.BIP32.PUBLIC, - }, - messagePrefix: BITCOIN_NETWORKS.SIGNET.MESSAGE_PREFIX, - pubKeyHash: BITCOIN_NETWORKS.SIGNET.PUBKEY_HASH, - scriptHash: BITCOIN_NETWORKS.SIGNET.SCRIPT_HASH, - wif: BITCOIN_NETWORKS.SIGNET.WIF, -}; export const LEAF_VERSION_TAPSCRIPT = BITCOIN_SCRIPT.LEAF_VERSION_TAPSCRIPT; +import type { PreparedUtxo } from "../src/chains/bitcoin/inscription/makeCommitPsbt"; +import { fetchUtxos } from "./bitcoin.command.helpers"; /** * Encodes a number as a Bitcoin compact size. @@ -103,6 +87,7 @@ export const makeCommitTransaction = async ( inscriptionData: Buffer, api: string, amount: number, + network: bitcoin.Network, feeSat = BITCOIN_FEES.DEFAULT_COMMIT_FEE_SAT ) => { const scriptItems = [ @@ -128,7 +113,7 @@ export const makeCommitTransaction = async ( /* p2tr */ const { output: commitScript, witness } = bitcoin.payments.p2tr({ internalPubkey: key.publicKey.slice(1, 33), - network: SIGNET, + network, redeem: { output: leafScript, redeemVersion: LEAF_VERSION_TAPSCRIPT }, scriptTree: { output: leafScript }, }); @@ -161,7 +146,7 @@ export const makeCommitTransaction = async ( if (!commitScript) throw new Error("taproot build failed"); - const psbt = new bitcoin.Psbt({ network: SIGNET }); + const psbt = new bitcoin.Psbt({ network }); psbt.addOutput({ script: commitScript, value: amountSat }); if (changeSat > 0) psbt.addOutput({ address: changeAddress, value: changeSat }); @@ -188,6 +173,30 @@ export const makeCommitTransaction = async ( }; }; +/** + * Converts BtcUtxo[] to PreparedUtxo[] by fetching transaction details for each UTXO + * to get the scriptPubKey information needed for PSBT creation. + */ +export const prepareUtxos = async ( + address: string, + api: string +): Promise => { + const utxos = await fetchUtxos(address, api); + const preparedUtxos: PreparedUtxo[] = []; + + for (const utxo of utxos) { + const tx = (await axios.get(`${api}/tx/${utxo.txid}`)).data; + preparedUtxos.push({ + scriptPubKey: Buffer.from(tx.vout[utxo.vout].scriptpubkey, "hex"), + txid: utxo.txid, + value: utxo.value, + vout: utxo.vout, + }); + } + + return preparedUtxos; +}; + export const calculateRevealFee = ( commitData: { controlBlock: Buffer; internalKey: Buffer; leafScript: Buffer }, feeRate: number @@ -235,12 +244,13 @@ export const makeRevealTransaction = ( to: string, feeRate: number, commitData: { controlBlock: Buffer; internalKey: Buffer; leafScript: Buffer }, - key: bitcoin.Signer + key: bitcoin.Signer, + network: bitcoin.Network ) => { - const psbt = new bitcoin.Psbt({ network: SIGNET }); + const psbt = new bitcoin.Psbt({ network }); const { output: commitScript } = bitcoin.payments.p2tr({ internalPubkey: commitData.internalKey, - network: SIGNET, + network, scriptTree: { output: commitData.leafScript }, }); psbt.addInput({ @@ -273,29 +283,6 @@ export const makeRevealTransaction = ( return psbt.extractTransaction(true).toHex(); }; -/** - * Calculates the total fees for a Bitcoin inscription transaction - * @param data - The inscription data buffer - * @returns Object containing commit fee, reveal fee, deposit fee, and total fee - */ -export const calculateFees = async (data: Buffer, api: string) => { - const commitFee = BITCOIN_FEES.DEFAULT_COMMIT_FEE_SAT; - const revealFee = Math.ceil( - (BITCOIN_TX.TX_OVERHEAD + - 36 + - 1 + - 43 + - Math.ceil(data.length / 4) + - BITCOIN_TX.P2WPKH_OUTPUT_VBYTES) * - BITCOIN_FEES.DEFAULT_REVEAL_FEE_RATE - ); - - const depositFee = await getDepositFee(api); - - const totalFee = commitFee + revealFee + depositFee; - return { commitFee, depositFee, revealFee, totalFee }; -}; - /** * Safely converts a Bitcoin amount from string to number. * Validates that the amount doesn't exceed JavaScript's safe integer limit. diff --git a/utils/getAddress.ts b/utils/getAddress.ts index e3caa32a..fa2101a2 100644 --- a/utils/getAddress.ts +++ b/utils/getAddress.ts @@ -36,7 +36,9 @@ export const getAddress = ( return address.address; }; -export const getGatewayAddressFromSigner = async (signer: ethers.Wallet) => { +export const getGatewayAddressFromSigner = async ( + signer: ethers.AbstractSigner +) => { const provider = signer.provider; if (!provider) { throw new Error("Signer does not have a valid provider"); diff --git a/utils/index.ts b/utils/index.ts index 90ad4936..0f9a24ef 100644 --- a/utils/index.ts +++ b/utils/index.ts @@ -1,5 +1,5 @@ +export * from "../src/chains/bitcoin/inscription/encode"; export * from "./api"; -export * from "./bitcoinEncode"; export * from "./bitsize"; export * from "./compareBigIntAndNumber"; export * from "./exactlyOneOf"; diff --git a/utils/validateSigner.ts b/utils/validateSigner.ts index 413ce258..ba3cdef0 100644 --- a/utils/validateSigner.ts +++ b/utils/validateSigner.ts @@ -18,3 +18,12 @@ export const validateSigner = ( return signer; }; + +export const isValidEthersSigner = (val: unknown): val is ethers.Signer => { + try { + validateSigner(val as ethers.Signer | SignerWithAddress | undefined); + return true; + } catch { + return false; + } +}; diff --git a/yarn.lock b/yarn.lock index 23d12832..ee2ab846 100644 --- a/yarn.lock +++ b/yarn.lock @@ -460,24 +460,9 @@ "@ethereumjs/rlp" "^5.0.2" ethereum-cryptography "^2.2.1" -"@ethersproject/abi@5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" - integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA== - dependencies: - "@ethersproject/address" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/constants" "^5.7.0" - "@ethersproject/hash" "^5.7.0" - "@ethersproject/keccak256" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - -"@ethersproject/abi@5.8.0", "@ethersproject/abi@^5.0.9", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.4.7", "@ethersproject/abi@^5.5.0", "@ethersproject/abi@^5.7.0", "@ethersproject/abi@^5.8.0": +"@ethersproject/abi@5.8.0", "@ethersproject/abi@^5.0.9", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.4.7", "@ethersproject/abi@^5.5.0", "@ethersproject/abi@^5.8.0": version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.8.0.tgz#e79bb51940ac35fe6f3262d7fe2cdb25ad5f07d9" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.8.0.tgz#e79bb51940ac35fe6f3262d7fe2cdb25ad5f07d9" integrity sha512-b9YS/43ObplgyV6SlyQsG53/vkSal0MNA1fskSC4mbnCMi8R+NkcH8K9FPYNESf6jUefBUniE4SOKms0E/KK1Q== dependencies: "@ethersproject/address" "^5.8.0" @@ -490,20 +475,7 @@ "@ethersproject/properties" "^5.8.0" "@ethersproject/strings" "^5.8.0" -"@ethersproject/abstract-provider@5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz#b0a8550f88b6bf9d51f90e4795d48294630cb9ef" - integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw== - dependencies: - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/networks" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/transactions" "^5.7.0" - "@ethersproject/web" "^5.7.0" - -"@ethersproject/abstract-provider@5.8.0", "@ethersproject/abstract-provider@^5.7.0", "@ethersproject/abstract-provider@^5.8.0": +"@ethersproject/abstract-provider@5.8.0", "@ethersproject/abstract-provider@^5.8.0": version "5.8.0" resolved "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.8.0.tgz#7581f9be601afa1d02b95d26b9d9840926a35b0c" integrity sha512-wC9SFcmh4UK0oKuLJQItoQdzS/qZ51EJegK6EmAWlh+OptpQ/npECOR3QqECd8iGHC0RJb4WKbVdSfif4ammrg== @@ -516,18 +488,7 @@ "@ethersproject/transactions" "^5.8.0" "@ethersproject/web" "^5.8.0" -"@ethersproject/abstract-signer@5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz#13f4f32117868452191a4649723cb086d2b596b2" - integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== - dependencies: - "@ethersproject/abstract-provider" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - -"@ethersproject/abstract-signer@5.8.0", "@ethersproject/abstract-signer@^5.7.0", "@ethersproject/abstract-signer@^5.8.0": +"@ethersproject/abstract-signer@5.8.0", "@ethersproject/abstract-signer@^5.8.0": version "5.8.0" resolved "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.8.0.tgz#8d7417e95e4094c1797a9762e6789c7356db0754" integrity sha512-N0XhZTswXcmIZQdYtUnd79VJzvEwXQw6PK0dTl9VoYrEBxxCPXqS0Eod7q5TNKRxe1/5WUMuR0u0nqTF/avdCA== @@ -549,18 +510,7 @@ "@ethersproject/logger" "^5.6.0" "@ethersproject/rlp" "^5.6.1" -"@ethersproject/address@5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37" - integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== - dependencies: - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/keccak256" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/rlp" "^5.7.0" - -"@ethersproject/address@5.8.0", "@ethersproject/address@^5.0.2", "@ethersproject/address@^5.7.0", "@ethersproject/address@^5.8.0": +"@ethersproject/address@5.8.0", "@ethersproject/address@^5.0.2", "@ethersproject/address@^5.8.0": version "5.8.0" resolved "https://registry.npmjs.org/@ethersproject/address/-/address-5.8.0.tgz#3007a2c352eee566ad745dca1dbbebdb50a6a983" integrity sha512-GhH/abcC46LJwshoN+uBNoKVFPxUuZm6dA257z0vZkKmU1+t8xTn8oK7B9qrj8W2rFRMch4gbJl6PmVxjxBEBA== @@ -571,46 +521,22 @@ "@ethersproject/logger" "^5.8.0" "@ethersproject/rlp" "^5.8.0" -"@ethersproject/base64@5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz#ac4ee92aa36c1628173e221d0d01f53692059e1c" - integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ== - dependencies: - "@ethersproject/bytes" "^5.7.0" - -"@ethersproject/base64@5.8.0", "@ethersproject/base64@^5.7.0", "@ethersproject/base64@^5.8.0": +"@ethersproject/base64@5.8.0", "@ethersproject/base64@^5.8.0": version "5.8.0" resolved "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.8.0.tgz#61c669c648f6e6aad002c228465d52ac93ee83eb" integrity sha512-lN0oIwfkYj9LbPx4xEkie6rAMJtySbpOAFXSDVQaBnAzYfB4X2Qr+FXJGxMoc3Bxp2Sm8OwvzMrywxyw0gLjIQ== dependencies: "@ethersproject/bytes" "^5.8.0" -"@ethersproject/basex@5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz#97034dc7e8938a8ca943ab20f8a5e492ece4020b" - integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - -"@ethersproject/basex@5.8.0", "@ethersproject/basex@^5.7.0", "@ethersproject/basex@^5.8.0": +"@ethersproject/basex@5.8.0", "@ethersproject/basex@^5.8.0": version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.8.0.tgz#1d279a90c4be84d1c1139114a1f844869e57d03a" + resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.8.0.tgz#1d279a90c4be84d1c1139114a1f844869e57d03a" integrity sha512-PIgTszMlDRmNwW9nhS6iqtVfdTAKosA7llYXNmGPw4YAI1PUyMv28988wAb41/gHF/WqGdoLv0erHaRcHRKW2Q== dependencies: "@ethersproject/bytes" "^5.8.0" "@ethersproject/properties" "^5.8.0" -"@ethersproject/bignumber@5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2" - integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - bn.js "^5.2.1" - -"@ethersproject/bignumber@5.8.0", "@ethersproject/bignumber@^5.6.2", "@ethersproject/bignumber@^5.7.0", "@ethersproject/bignumber@^5.8.0": +"@ethersproject/bignumber@5.8.0", "@ethersproject/bignumber@^5.6.2", "@ethersproject/bignumber@^5.8.0": version "5.8.0" resolved "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.8.0.tgz#c381d178f9eeb370923d389284efa19f69efa5d7" integrity sha512-ZyaT24bHaSeJon2tGPKIiHszWjD/54Sz8t57Toch475lCLljC6MgPmxk7Gtzz+ddNN5LuHea9qhAe0x3D+uYPA== @@ -619,13 +545,6 @@ "@ethersproject/logger" "^5.8.0" bn.js "^5.2.1" -"@ethersproject/bytes@5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d" - integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== - dependencies: - "@ethersproject/logger" "^5.7.0" - "@ethersproject/bytes@5.8.0", "@ethersproject/bytes@^5.6.1", "@ethersproject/bytes@^5.7.0", "@ethersproject/bytes@^5.8.0": version "5.8.0" resolved "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.8.0.tgz#9074820e1cac7507a34372cadeb035461463be34" @@ -633,13 +552,6 @@ dependencies: "@ethersproject/logger" "^5.8.0" -"@ethersproject/constants@5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e" - integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== - dependencies: - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/constants@5.8.0", "@ethersproject/constants@^5.7.0", "@ethersproject/constants@^5.8.0": version "5.8.0" resolved "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.8.0.tgz#12f31c2f4317b113a4c19de94e50933648c90704" @@ -647,22 +559,6 @@ dependencies: "@ethersproject/bignumber" "^5.8.0" -"@ethersproject/contracts@5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz#c305e775abd07e48aa590e1a877ed5c316f8bd1e" - integrity sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg== - dependencies: - "@ethersproject/abi" "^5.7.0" - "@ethersproject/abstract-provider" "^5.7.0" - "@ethersproject/abstract-signer" "^5.7.0" - "@ethersproject/address" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/constants" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/transactions" "^5.7.0" - "@ethersproject/contracts@5.8.0": version "5.8.0" resolved "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.8.0.tgz#243a38a2e4aa3e757215ea64e276f8a8c9d8ed73" @@ -679,22 +575,7 @@ "@ethersproject/properties" "^5.8.0" "@ethersproject/transactions" "^5.8.0" -"@ethersproject/hash@5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7" - integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== - dependencies: - "@ethersproject/abstract-signer" "^5.7.0" - "@ethersproject/address" "^5.7.0" - "@ethersproject/base64" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/keccak256" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - -"@ethersproject/hash@5.8.0", "@ethersproject/hash@^5.7.0", "@ethersproject/hash@^5.8.0": +"@ethersproject/hash@5.8.0", "@ethersproject/hash@^5.8.0": version "5.8.0" resolved "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.8.0.tgz#b8893d4629b7f8462a90102572f8cd65a0192b4c" integrity sha512-ac/lBcTbEWW/VGJij0CNSw/wPcw9bSRgCB0AIBz8CvED/jfvDoV9hsIIiWfvWmFEi8RcXtlNwp2jv6ozWOsooA== @@ -709,27 +590,9 @@ "@ethersproject/properties" "^5.8.0" "@ethersproject/strings" "^5.8.0" -"@ethersproject/hdnode@5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz#e627ddc6b466bc77aebf1a6b9e47405ca5aef9cf" - integrity sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg== - dependencies: - "@ethersproject/abstract-signer" "^5.7.0" - "@ethersproject/basex" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/pbkdf2" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/sha2" "^5.7.0" - "@ethersproject/signing-key" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - "@ethersproject/transactions" "^5.7.0" - "@ethersproject/wordlists" "^5.7.0" - -"@ethersproject/hdnode@5.8.0", "@ethersproject/hdnode@^5.7.0", "@ethersproject/hdnode@^5.8.0": +"@ethersproject/hdnode@5.8.0", "@ethersproject/hdnode@^5.8.0": version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.8.0.tgz#a51ae2a50bcd48ef6fd108c64cbae5e6ff34a761" + resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.8.0.tgz#a51ae2a50bcd48ef6fd108c64cbae5e6ff34a761" integrity sha512-4bK1VF6E83/3/Im0ERnnUeWOY3P1BZml4ZD3wcH8Ys0/d1h1xaFt6Zc+Dh9zXf9TapGro0T4wvO71UTCp3/uoA== dependencies: "@ethersproject/abstract-signer" "^5.8.0" @@ -745,28 +608,9 @@ "@ethersproject/transactions" "^5.8.0" "@ethersproject/wordlists" "^5.8.0" -"@ethersproject/json-wallets@5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz#5e3355287b548c32b368d91014919ebebddd5360" - integrity sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g== - dependencies: - "@ethersproject/abstract-signer" "^5.7.0" - "@ethersproject/address" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/hdnode" "^5.7.0" - "@ethersproject/keccak256" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/pbkdf2" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/random" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - "@ethersproject/transactions" "^5.7.0" - aes-js "3.0.0" - scrypt-js "3.0.1" - -"@ethersproject/json-wallets@5.8.0", "@ethersproject/json-wallets@^5.7.0", "@ethersproject/json-wallets@^5.8.0": +"@ethersproject/json-wallets@5.8.0", "@ethersproject/json-wallets@^5.8.0": version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.8.0.tgz#d18de0a4cf0f185f232eb3c17d5e0744d97eb8c9" + resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.8.0.tgz#d18de0a4cf0f185f232eb3c17d5e0744d97eb8c9" integrity sha512-HxblNck8FVUtNxS3VTEYJAcwiKYsBIF77W15HufqlBF9gGfhmYOJtYZp8fSDZtn9y5EaXTE87zDwzxRoTFk11w== dependencies: "@ethersproject/abstract-signer" "^5.8.0" @@ -785,13 +629,13 @@ "@ethersproject/keccak256@5.7.0": version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a" + resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a" integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== dependencies: "@ethersproject/bytes" "^5.7.0" js-sha3 "0.8.0" -"@ethersproject/keccak256@5.8.0", "@ethersproject/keccak256@^5.6.1", "@ethersproject/keccak256@^5.7.0", "@ethersproject/keccak256@^5.8.0": +"@ethersproject/keccak256@5.8.0", "@ethersproject/keccak256@^5.6.1", "@ethersproject/keccak256@^5.8.0": version "5.8.0" resolved "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.8.0.tgz#d2123a379567faf2d75d2aaea074ffd4df349e6a" integrity sha512-A1pkKLZSz8pDaQ1ftutZoaN46I6+jvuqugx5KYNeQOPqq+JZ0Txm7dlWesCHB5cndJSu5vP2VKptKf7cksERng== @@ -799,39 +643,19 @@ "@ethersproject/bytes" "^5.8.0" js-sha3 "0.8.0" -"@ethersproject/logger@5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892" - integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== - "@ethersproject/logger@5.8.0", "@ethersproject/logger@^5.6.0", "@ethersproject/logger@^5.7.0", "@ethersproject/logger@^5.8.0": version "5.8.0" resolved "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.8.0.tgz#f0232968a4f87d29623a0481690a2732662713d6" integrity sha512-Qe6knGmY+zPPWTC+wQrpitodgBfH7XoceCGL5bJVejmH+yCS3R8jJm8iiWuvWbG76RUmyEG53oqv6GMVWqunjA== -"@ethersproject/networks@5.7.1": - version "5.7.1" - resolved "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz#118e1a981d757d45ccea6bb58d9fd3d9db14ead6" - integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ== - dependencies: - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/networks@5.8.0", "@ethersproject/networks@^5.7.0", "@ethersproject/networks@^5.8.0": +"@ethersproject/networks@5.8.0", "@ethersproject/networks@^5.8.0": version "5.8.0" resolved "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.8.0.tgz#8b4517a3139380cba9fb00b63ffad0a979671fde" integrity sha512-egPJh3aPVAzbHwq8DD7Po53J4OUSsA1MjQp8Vf/OZPav5rlmWUaFLiq8cvQiGK0Z5K6LYzm29+VA/p4RL1FzNg== dependencies: "@ethersproject/logger" "^5.8.0" -"@ethersproject/pbkdf2@5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz#d2267d0a1f6e123f3771007338c47cccd83d3102" - integrity sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/sha2" "^5.7.0" - -"@ethersproject/pbkdf2@5.8.0", "@ethersproject/pbkdf2@^5.7.0", "@ethersproject/pbkdf2@^5.8.0": +"@ethersproject/pbkdf2@5.8.0", "@ethersproject/pbkdf2@^5.8.0": version "5.8.0" resolved "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.8.0.tgz#cd2621130e5dd51f6a0172e63a6e4a0c0a0ec37e" integrity sha512-wuHiv97BrzCmfEaPbUFpMjlVg/IDkZThp9Ri88BpjRleg4iePJaj2SW8AIyE8cXn5V1tuAaMj6lzvsGJkGWskg== @@ -839,46 +663,13 @@ "@ethersproject/bytes" "^5.8.0" "@ethersproject/sha2" "^5.8.0" -"@ethersproject/properties@5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30" - integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== - dependencies: - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/properties@5.8.0", "@ethersproject/properties@^5.7.0", "@ethersproject/properties@^5.8.0": +"@ethersproject/properties@5.8.0", "@ethersproject/properties@^5.8.0": version "5.8.0" resolved "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.8.0.tgz#405a8affb6311a49a91dabd96aeeae24f477020e" integrity sha512-PYuiEoQ+FMaZZNGrStmN7+lWjlsoufGIHdww7454FIaGdbe/p5rnaCXTr5MtBYl3NkeoVhHZuyzChPeGeKIpQw== dependencies: "@ethersproject/logger" "^5.8.0" -"@ethersproject/providers@5.7.2": - version "5.7.2" - resolved "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz#f8b1a4f275d7ce58cf0a2eec222269a08beb18cb" - integrity sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg== - dependencies: - "@ethersproject/abstract-provider" "^5.7.0" - "@ethersproject/abstract-signer" "^5.7.0" - "@ethersproject/address" "^5.7.0" - "@ethersproject/base64" "^5.7.0" - "@ethersproject/basex" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/constants" "^5.7.0" - "@ethersproject/hash" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/networks" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/random" "^5.7.0" - "@ethersproject/rlp" "^5.7.0" - "@ethersproject/sha2" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - "@ethersproject/transactions" "^5.7.0" - "@ethersproject/web" "^5.7.0" - bech32 "1.1.4" - ws "7.4.6" - "@ethersproject/providers@5.8.0", "@ethersproject/providers@^5.4.7": version "5.8.0" resolved "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.8.0.tgz#6c2ae354f7f96ee150439f7de06236928bc04cb4" @@ -905,31 +696,15 @@ bech32 "1.1.4" ws "8.18.0" -"@ethersproject/random@5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz#af19dcbc2484aae078bb03656ec05df66253280c" - integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/random@5.8.0", "@ethersproject/random@^5.7.0", "@ethersproject/random@^5.8.0": +"@ethersproject/random@5.8.0", "@ethersproject/random@^5.8.0": version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/random/-/random-5.8.0.tgz#1bced04d49449f37c6437c701735a1a022f0057a" + resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.8.0.tgz#1bced04d49449f37c6437c701735a1a022f0057a" integrity sha512-E4I5TDl7SVqyg4/kkA/qTfuLWAQGXmSOgYyO01So8hLfwgKvYK5snIlzxJMk72IFdG/7oh8yuSqY2KX7MMwg+A== dependencies: "@ethersproject/bytes" "^5.8.0" "@ethersproject/logger" "^5.8.0" -"@ethersproject/rlp@5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz#de39e4d5918b9d74d46de93af80b7685a9c21304" - integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/rlp@5.8.0", "@ethersproject/rlp@^5.6.1", "@ethersproject/rlp@^5.7.0", "@ethersproject/rlp@^5.8.0": +"@ethersproject/rlp@5.8.0", "@ethersproject/rlp@^5.6.1", "@ethersproject/rlp@^5.8.0": version "5.8.0" resolved "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.8.0.tgz#5a0d49f61bc53e051532a5179472779141451de5" integrity sha512-LqZgAznqDbiEunaUvykH2JAoXTT9NV0Atqk8rQN9nx9SEgThA/WMx5DnW8a9FOufo//6FZOCHZ+XiClzgbqV9Q== @@ -937,37 +712,16 @@ "@ethersproject/bytes" "^5.8.0" "@ethersproject/logger" "^5.8.0" -"@ethersproject/sha2@5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz#9a5f7a7824ef784f7f7680984e593a800480c9fb" - integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - hash.js "1.1.7" - -"@ethersproject/sha2@5.8.0", "@ethersproject/sha2@^5.7.0", "@ethersproject/sha2@^5.8.0": +"@ethersproject/sha2@5.8.0", "@ethersproject/sha2@^5.8.0": version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.8.0.tgz#8954a613bb78dac9b46829c0a95de561ef74e5e1" + resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.8.0.tgz#8954a613bb78dac9b46829c0a95de561ef74e5e1" integrity sha512-dDOUrXr9wF/YFltgTBYS0tKslPEKr6AekjqDW2dbn1L1xmjGR+9GiKu4ajxovnrDbwxAKdHjW8jNcwfz8PAz4A== dependencies: "@ethersproject/bytes" "^5.8.0" "@ethersproject/logger" "^5.8.0" hash.js "1.1.7" -"@ethersproject/signing-key@5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz#06b2df39411b00bc57c7c09b01d1e41cf1b16ab3" - integrity sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - bn.js "^5.2.1" - elliptic "6.5.4" - hash.js "1.1.7" - -"@ethersproject/signing-key@5.8.0", "@ethersproject/signing-key@^5.7.0", "@ethersproject/signing-key@^5.8.0": +"@ethersproject/signing-key@5.8.0", "@ethersproject/signing-key@^5.8.0": version "5.8.0" resolved "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.8.0.tgz#9797e02c717b68239c6349394ea85febf8893119" integrity sha512-LrPW2ZxoigFi6U6aVkFN/fa9Yx/+4AtIUe4/HACTvKJdhm0eeb107EVCIQcrLZkxaSIgc/eCrX8Q1GtbH+9n3w== @@ -979,21 +733,9 @@ elliptic "6.6.1" hash.js "1.1.7" -"@ethersproject/solidity@5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz#5e9c911d8a2acce2a5ebb48a5e2e0af20b631cb8" - integrity sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA== - dependencies: - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/keccak256" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/sha2" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - "@ethersproject/solidity@5.8.0", "@ethersproject/solidity@^5.0.9": version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.8.0.tgz#429bb9fcf5521307a9448d7358c26b93695379b9" + resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.8.0.tgz#429bb9fcf5521307a9448d7358c26b93695379b9" integrity sha512-4CxFeCgmIWamOHwYN9d+QWGxye9qQLilpgTU0XhYs1OahkclF+ewO+3V1U0mvpiuQxm5EHHmv8f7ClVII8EHsA== dependencies: "@ethersproject/bignumber" "^5.8.0" @@ -1005,14 +747,14 @@ "@ethersproject/strings@5.7.0": version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2" + resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2" integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== dependencies: "@ethersproject/bytes" "^5.7.0" "@ethersproject/constants" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/strings@5.8.0", "@ethersproject/strings@^5.7.0", "@ethersproject/strings@^5.8.0": +"@ethersproject/strings@5.8.0", "@ethersproject/strings@^5.8.0": version "5.8.0" resolved "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.8.0.tgz#ad79fafbf0bd272d9765603215ac74fd7953908f" integrity sha512-qWEAk0MAvl0LszjdfnZ2uC8xbR2wdv4cDabyHiBh3Cldq/T8dPH3V4BbBsAYJUeonwD+8afVXld274Ls+Y1xXg== @@ -1021,22 +763,7 @@ "@ethersproject/constants" "^5.8.0" "@ethersproject/logger" "^5.8.0" -"@ethersproject/transactions@5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b" - integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== - dependencies: - "@ethersproject/address" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/constants" "^5.7.0" - "@ethersproject/keccak256" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/rlp" "^5.7.0" - "@ethersproject/signing-key" "^5.7.0" - -"@ethersproject/transactions@5.8.0", "@ethersproject/transactions@^5.7.0", "@ethersproject/transactions@^5.8.0": +"@ethersproject/transactions@5.8.0", "@ethersproject/transactions@^5.8.0": version "5.8.0" resolved "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.8.0.tgz#1e518822403abc99def5a043d1c6f6fe0007e46b" integrity sha512-UglxSDjByHG0TuU17bDfCemZ3AnKO2vYrL5/2n2oXvKzvb7Cz+W9gOWXKARjp2URVwcWlQlPOEQyAviKwT4AHg== @@ -1051,15 +778,6 @@ "@ethersproject/rlp" "^5.8.0" "@ethersproject/signing-key" "^5.8.0" -"@ethersproject/units@5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz#637b563d7e14f42deeee39245275d477aae1d8b1" - integrity sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg== - dependencies: - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/constants" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/units@5.8.0", "@ethersproject/units@^5.8.0": version "5.8.0" resolved "https://registry.npmjs.org/@ethersproject/units/-/units-5.8.0.tgz#c12f34ba7c3a2de0e9fa0ed0ee32f3e46c5c2c6a" @@ -1069,27 +787,6 @@ "@ethersproject/constants" "^5.8.0" "@ethersproject/logger" "^5.8.0" -"@ethersproject/wallet@5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz#4e5d0790d96fe21d61d38fb40324e6c7ef350b2d" - integrity sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA== - dependencies: - "@ethersproject/abstract-provider" "^5.7.0" - "@ethersproject/abstract-signer" "^5.7.0" - "@ethersproject/address" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/hash" "^5.7.0" - "@ethersproject/hdnode" "^5.7.0" - "@ethersproject/json-wallets" "^5.7.0" - "@ethersproject/keccak256" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/random" "^5.7.0" - "@ethersproject/signing-key" "^5.7.0" - "@ethersproject/transactions" "^5.7.0" - "@ethersproject/wordlists" "^5.7.0" - "@ethersproject/wallet@5.8.0": version "5.8.0" resolved "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.8.0.tgz#49c300d10872e6986d953e8310dc33d440da8127" @@ -1111,18 +808,7 @@ "@ethersproject/transactions" "^5.8.0" "@ethersproject/wordlists" "^5.8.0" -"@ethersproject/web@5.7.1": - version "5.7.1" - resolved "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae" - integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== - dependencies: - "@ethersproject/base64" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - -"@ethersproject/web@5.8.0", "@ethersproject/web@^5.7.0", "@ethersproject/web@^5.8.0": +"@ethersproject/web@5.8.0", "@ethersproject/web@^5.8.0": version "5.8.0" resolved "https://registry.npmjs.org/@ethersproject/web/-/web-5.8.0.tgz#3e54badc0013b7a801463a7008a87988efce8a37" integrity sha512-j7+Ksi/9KfGviws6Qtf9Q7KCqRhpwrYKQPs+JBA/rKVFF/yaWLHJEH3zfVP2plVu+eys0d2DlFmhoQJayFewcw== @@ -1133,18 +819,7 @@ "@ethersproject/properties" "^5.8.0" "@ethersproject/strings" "^5.8.0" -"@ethersproject/wordlists@5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz#8fb2c07185d68c3e09eb3bfd6e779ba2774627f5" - integrity sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/hash" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - -"@ethersproject/wordlists@5.8.0", "@ethersproject/wordlists@^5.7.0", "@ethersproject/wordlists@^5.8.0": +"@ethersproject/wordlists@5.8.0", "@ethersproject/wordlists@^5.8.0": version "5.8.0" resolved "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.8.0.tgz#7a5654ee8d1bb1f4dbe43f91d217356d650ad821" integrity sha512-2df9bbXicZws2Sb5S6ET493uJ0Z84Fjr3pC4tu/qlnZERibZCeUVuqdtt+7Tv9xxhUxHoIekIA7avrKUWHrezg== @@ -3514,20 +3189,6 @@ dependencies: "@wallet-standard/base" "^1.1.0" -"@zetachain/faucet-cli@^4.1.1": - version "4.1.1" - resolved "https://registry.npmjs.org/@zetachain/faucet-cli/-/faucet-cli-4.1.1.tgz#57645e9b7f7bb8483d25605053383c531ab04961" - integrity sha512-tvpw/oHYVj+FliBX1MhqCIpvE3n/vNVUmncN4V1xUaeeLcCZcSH8MAtp4PeMPzYI1ym/ecDAWPl8QqelIGaQAw== - dependencies: - axios "1.7.4" - commander "10.0.1" - dayjs "1.11.10" - ethers "5.7.2" - figlet "1.7.0" - launchdarkly-node-client-sdk "3.0.2" - typescript "5.5.4" - zod "3.22.4" - "@zetachain/networks@14.0.0-rc1": version "14.0.0-rc1" resolved "https://registry.npmjs.org/@zetachain/networks/-/networks-14.0.0-rc1.tgz#b1085778136d0cdeea6a707e38869efadc0ab204" @@ -3571,67 +3232,11 @@ "@zetachain/networks" "^10.0.0" ethers "6.13.5" -"@zetachain/protocol-contracts@13.1.0-rc3": - version "13.1.0-rc3" - resolved "https://registry.npmjs.org/@zetachain/protocol-contracts/-/protocol-contracts-13.1.0-rc3.tgz#23e637dd53147701033f50079ce0b93f8c14cf37" - integrity sha512-8nrIOOBl2PXt6TNkrSDjqZxJwd2u8PmQKY3vJo0a4gQgCoKYT44gGvLk8TVp8cjnP/OJStbmIQt/NKZhk1188g== - dependencies: - "@openzeppelin/contracts" "^5.0.2" - "@openzeppelin/contracts-upgradeable" "^5.0.2" - "@zetachain/networks" "^10.0.0" - ethers "6.13.5" - "@zetachain/standard-contracts@^2.0.1": version "2.0.1" resolved "https://registry.npmjs.org/@zetachain/standard-contracts/-/standard-contracts-2.0.1.tgz#aefd28bb81f1f05b183bd73dc62bd68e456a6ebf" integrity sha512-SHV9a1bSgy8litI/LRZ4VIus7Gsjy0wj3n9bZeIsEydn0C5NNZxYO4XW+P06dlEyDQjtcVJQHoQOyHkodBoVsQ== -"@zetachain/toolkit@^15.0.2": - version "15.0.2" - resolved "https://registry.npmjs.org/@zetachain/toolkit/-/toolkit-15.0.2.tgz#d62b2ab7bf618cfb2ba566861b39969e0a63a1b6" - integrity sha512-mkaMXTGFKGDBL4Fh2ZDpMznf73eaWaBYVNmXbyKgIR0nOk+DtY8HEwLoy6J/quha/mNwV25D1Db7mI2ieRCgew== - dependencies: - "@coral-xyz/anchor" "^0.30.1" - "@ethersproject/units" "^5.8.0" - "@inquirer/prompts" "^2.1.1" - "@inquirer/select" "1.1.3" - "@mysten/sui" "^1.28.2" - "@nomiclabs/hardhat-ethers" "^2.2.3" - "@openzeppelin/contracts" "^5.0.2" - "@openzeppelin/contracts-upgradeable" "^5.0.2" - "@solana/wallet-adapter-react" "^0.15.35" - "@solana/web3.js" "1.95.8" - "@ton/core" "^0.60.1" - "@ton/crypto" "^3.3.0" - "@ton/ton" "^15.2.1" - "@uniswap/v2-periphery" "^1.1.0-beta.0" - "@uniswap/v3-periphery" "^1.4.4" - "@zetachain/faucet-cli" "^4.1.1" - "@zetachain/networks" "14.0.0-rc1" - "@zetachain/protocol-contracts" "13.1.0-rc3" - "@zetachain/protocol-contracts-solana" "^5.0.0" - "@zetachain/protocol-contracts-ton" "1.0.0-rc4" - axios "^1.4.0" - bech32 "^2.0.0" - bip39 "^3.1.0" - bitcoinjs-lib "^6.1.7" - bs58 "^6.0.0" - commander "^13.1.0" - dotenv "16.0.3" - ecpair "^2.1.0" - envfile "^6.18.0" - ethers "^6.13.2" - eventemitter3 "^5.0.1" - form-data "^4.0.0" - handlebars "4.7.7" - hardhat "^2.22.8" - lodash "^4.17.21" - ora "5.4.1" - spinnies "^0.5.1" - tiny-secp256k1 "^2.2.3" - web3 "^4.15.0" - zod "^3.24.2" - abbrev@1: version "1.1.1" resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" @@ -4024,15 +3629,6 @@ available-typed-arrays@^1.0.7: dependencies: possible-typed-array-names "^1.0.0" -axios@1.7.4: - version "1.7.4" - resolved "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz#4c8ded1b43683c8dd362973c393f3ede24052aa2" - integrity sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw== - dependencies: - follow-redirects "^1.15.6" - form-data "^4.0.0" - proxy-from-env "^1.1.0" - axios@^1.4.0, axios@^1.5.1, axios@^1.6.7: version "1.10.0" resolved "https://registry.npmjs.org/axios/-/axios-1.10.0.tgz#af320aee8632eaf2a400b6a1979fa75856f38d54" @@ -4135,7 +3731,7 @@ base-x@^5.0.0: resolved "https://registry.npmjs.org/base-x/-/base-x-5.0.1.tgz#16bf35254be1df8aca15e36b7c1dda74b2aa6b03" integrity sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg== -base64-js@^1.3.0, base64-js@^1.3.1: +base64-js@^1.3.1: version "1.5.1" resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== @@ -4822,9 +4418,9 @@ command-line-usage@^6.1.0: table-layout "^1.0.2" typical "^5.2.0" -commander@10.0.1, commander@^10.0.0: +commander@^10.0.0: version "10.0.1" - resolved "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== commander@^12.1.0: @@ -5045,10 +4641,10 @@ dataloader@^2.0.0: resolved "https://registry.npmjs.org/dataloader/-/dataloader-2.2.3.tgz#42d10b4913515f5b37c6acedcb4960d6ae1b1517" integrity sha512-y2krtASINtPFS1rSDjacrFgn1dcUuoREVabwlOGOe4SdxenREqwjwjElAdwvbGM7kgZz9a3KVicWR7vcz8rnzA== -dayjs@1.11.10: - version "1.11.10" - resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz#68acea85317a6e164457d6d6947564029a6a16a0" - integrity sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ== +dayjs@^1.11.13: + version "1.11.13" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.13.tgz#92430b0139055c3ebb60150aa13e860a4b5a366c" + integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg== death@^1.1.0: version "1.1.0" @@ -5301,19 +4897,6 @@ electron-to-chromium@^1.5.173: resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.179.tgz#453d53f360014a2604d40ccd41c4ea0a6e31b99a" integrity sha512-UWKi/EbBopgfFsc5k61wFpV7WrnnSlSzW/e2XcBmS6qKYTivZlLtoll5/rdqRTxGglGHkmkW0j0pFNJG10EUIQ== -elliptic@6.5.4: - version "6.5.4" - resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" - integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - elliptic@6.6.1, elliptic@^6.5.7, elliptic@^6.6.1: version "6.6.1" resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz#3b8ffb02670bf69e382c7f65bf524c97c5405c06" @@ -5824,42 +5407,6 @@ ethereumjs-util@^7.1.4, ethereumjs-util@^7.1.5: ethereum-cryptography "^0.1.3" rlp "^2.2.4" -ethers@5.7.2: - version "5.7.2" - resolved "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" - integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== - dependencies: - "@ethersproject/abi" "5.7.0" - "@ethersproject/abstract-provider" "5.7.0" - "@ethersproject/abstract-signer" "5.7.0" - "@ethersproject/address" "5.7.0" - "@ethersproject/base64" "5.7.0" - "@ethersproject/basex" "5.7.0" - "@ethersproject/bignumber" "5.7.0" - "@ethersproject/bytes" "5.7.0" - "@ethersproject/constants" "5.7.0" - "@ethersproject/contracts" "5.7.0" - "@ethersproject/hash" "5.7.0" - "@ethersproject/hdnode" "5.7.0" - "@ethersproject/json-wallets" "5.7.0" - "@ethersproject/keccak256" "5.7.0" - "@ethersproject/logger" "5.7.0" - "@ethersproject/networks" "5.7.1" - "@ethersproject/pbkdf2" "5.7.0" - "@ethersproject/properties" "5.7.0" - "@ethersproject/providers" "5.7.2" - "@ethersproject/random" "5.7.0" - "@ethersproject/rlp" "5.7.0" - "@ethersproject/sha2" "5.7.0" - "@ethersproject/signing-key" "5.7.0" - "@ethersproject/solidity" "5.7.0" - "@ethersproject/strings" "5.7.0" - "@ethersproject/transactions" "5.7.0" - "@ethersproject/units" "5.7.0" - "@ethersproject/wallet" "5.7.0" - "@ethersproject/web" "5.7.1" - "@ethersproject/wordlists" "5.7.0" - ethers@6.13.5: version "6.13.5" resolved "https://registry.npmjs.org/ethers/-/ethers-6.13.5.tgz#8c1d6ac988ac08abc3c1d8fabbd4b8b602851ac4" @@ -6056,11 +5603,6 @@ eyes@^0.1.8: resolved "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== -fast-deep-equal@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" - integrity sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w== - fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -6121,11 +5663,6 @@ fdir@^6.4.4: resolved "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz#2b268c0232697063111bbf3f64810a2a741ba281" integrity sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w== -figlet@1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/figlet/-/figlet-1.7.0.tgz#46903a04603fd19c3e380358418bb2703587a72e" - integrity sha512-gO8l3wvqo0V7wEFLXPbkX83b7MVjRrk1oRLfYlZXol8nEpb/ON9pcKLI4qpBv5YtOTfrINtqb7b40iYY2FTWFg== - figures@^3.2.0: version "3.2.0" resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" @@ -8089,31 +7626,6 @@ kleur@^3.0.3: resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== -launchdarkly-eventsource@1.4.3: - version "1.4.3" - resolved "https://registry.npmjs.org/launchdarkly-eventsource/-/launchdarkly-eventsource-1.4.3.tgz#48811a970bf01c9d34ea7d2b4c9f9c10fa15ea61" - integrity sha512-taeidSNMbF4AuUXjoFStT5CSTknicaKqu+0vrw7gYEMrpQgG74BEzlS0BGYmxW20JdGm2gpm7jtZ542ZG/h8tA== - dependencies: - original "^1.0.2" - -launchdarkly-js-sdk-common@5.0.3: - version "5.0.3" - resolved "https://registry.npmjs.org/launchdarkly-js-sdk-common/-/launchdarkly-js-sdk-common-5.0.3.tgz#345f899f5779be8b03d6599978c855eb838d8b7f" - integrity sha512-wKG8UsVbPVq8+7eavgAm5CVmulQWN6Ddod2ZoA3euZ1zPvJPwIQ2GrOYaCJr3cFrrMIX+nQyBJHBHYxUAPcM+Q== - dependencies: - base64-js "^1.3.0" - fast-deep-equal "^2.0.1" - uuid "^8.0.0" - -launchdarkly-node-client-sdk@3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/launchdarkly-node-client-sdk/-/launchdarkly-node-client-sdk-3.0.2.tgz#209278cc7923a1b57327ae32ce234647ea8f38c1" - integrity sha512-qMUqrd6jWL3QD5YTtsJl7ZBNlZnyT2FkUw6Jk1Dl9P9RDq5SUZtLwslASk34uj146x5bHFCd2i4aDj2vxx0sPw== - dependencies: - launchdarkly-eventsource "1.4.3" - launchdarkly-js-sdk-common "5.0.3" - node-localstorage "^1.3.1" - leven@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" @@ -8655,13 +8167,6 @@ node-int64@^0.4.0: resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== -node-localstorage@^1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/node-localstorage/-/node-localstorage-1.3.1.tgz#3177ef42837f398aee5dd75e319b281e40704243" - integrity sha512-NMWCSWWc6JbHT5PyWlNT2i8r7PgGYXVntmKawY83k/M0UJScZ5jirb61TLnqKwd815DfBQu+lR3sRw08SPzIaQ== - dependencies: - write-file-atomic "^1.1.4" - node-releases@^2.0.19: version "2.0.19" resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz#9e445a52950951ec4d177d843af370b411caf314" @@ -8861,13 +8366,6 @@ ordinal@^1.0.3: resolved "https://registry.npmjs.org/ordinal/-/ordinal-1.0.3.tgz#1a3c7726a61728112f50944ad7c35c06ae3a0d4d" integrity sha512-cMddMgb2QElm8G7vdaa02jhUNbTSrhsgAGUz1OokD83uJTwSUn+nKoNoKVVaRa08yF6sgfO7Maou1+bgLd9rdQ== -original@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" - integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== - dependencies: - url-parse "^1.4.3" - os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -9208,11 +8706,6 @@ qs@^6.4.0: dependencies: side-channel "^1.1.0" -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" - integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== - queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" @@ -9867,11 +9360,6 @@ slice-ansi@^4.0.0: astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" -slide@^1.1.5: - version "1.1.6" - resolved "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" - integrity sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw== - snake-case@^3.0.4: version "3.0.4" resolved "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" @@ -10730,11 +10218,6 @@ typeforce@^1.11.3, typeforce@^1.18.0: resolved "https://registry.npmjs.org/typeforce/-/typeforce-1.18.0.tgz#d7416a2c5845e085034d70fcc5b6cc4a90edbfdc" integrity sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g== -typescript@5.5.4: - version "5.5.4" - resolved "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" - integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== - typescript@>=4.5.0: version "5.8.3" resolved "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz#92f8a3e5e3cf497356f4178c34cd65a7f5e8440e" @@ -10889,14 +10372,6 @@ url-join@^4.0.1: resolved "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz#b642e21a2646808ffa178c4c5fda39844e12cde7" integrity sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA== -url-parse@^1.4.3: - version "1.5.10" - resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" - integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - use@^3.1.0: version "3.1.1" resolved "https://registry.npmjs.org/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" @@ -10930,7 +10405,7 @@ util@^0.12.5: is-typed-array "^1.1.3" which-typed-array "^1.1.2" -uuid@^8.0.0, uuid@^8.3.2: +uuid@^8.3.2: version "8.3.2" resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== @@ -11386,15 +10861,6 @@ wrappy@1: resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -write-file-atomic@^1.1.4: - version "1.3.4" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f" - integrity sha512-SdrHoC/yVBPpV0Xq/mUZQIpW2sWXAShb/V4pomcJXh92RuaO+f3UTWItiR3Px+pLnV2PvC2/bfn5cwr5X6Vfxw== - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - slide "^1.1.5" - write-file-atomic@^4.0.2: version "4.0.2" resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" @@ -11403,11 +10869,6 @@ write-file-atomic@^4.0.2: imurmurhash "^0.1.4" signal-exit "^3.0.7" -ws@7.4.6: - version "7.4.6" - resolved "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" - integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== - ws@8.17.1: version "8.17.1" resolved "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b" @@ -11531,14 +10992,9 @@ yocto-queue@^0.1.0: yoctocolors-cjs@^2.1.2: version "2.1.2" - resolved "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz#f4b905a840a37506813a7acaa28febe97767a242" + resolved "https://registry.yarnpkg.com/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz#f4b905a840a37506813a7acaa28febe97767a242" integrity sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA== -zod@3.22.4: - version "3.22.4" - resolved "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz#f31c3a9386f61b1f228af56faa9255e845cf3fff" - integrity sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg== - zod@^3.21.4, zod@^3.24.2: version "3.25.74" resolved "https://registry.npmjs.org/zod/-/zod-3.25.74.tgz#9368a3986fe756bd94b9a5baad9919660ff3f250" From e01d06fc565ade21a0fb8a662b0a2d449ff1f3b3 Mon Sep 17 00:00:00 2001 From: Hernan Clich Date: Thu, 31 Jul 2025 19:28:08 -0300 Subject: [PATCH 42/44] Type fixes --- .../src/zetachain/pools/liquidity/add.ts | 195 ++++++++++++++---- test/uniswap.test.ts | 42 ++-- types/pools.ts | 13 +- utils/uniswap.ts | 15 +- 4 files changed, 195 insertions(+), 70 deletions(-) diff --git a/packages/commands/src/zetachain/pools/liquidity/add.ts b/packages/commands/src/zetachain/pools/liquidity/add.ts index 063d1520..5c9b48fe 100644 --- a/packages/commands/src/zetachain/pools/liquidity/add.ts +++ b/packages/commands/src/zetachain/pools/liquidity/add.ts @@ -1,9 +1,28 @@ import * as UniswapV3Factory from "@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json"; import * as NonfungiblePositionManager from "@uniswap/v3-periphery/artifacts/contracts/NonfungiblePositionManager.sol/NonfungiblePositionManager.json"; import { Command } from "commander"; -import { Contract, ethers, JsonRpcProvider, Log, Wallet } from "ethers"; +import { + Contract, + ContractTransactionReceipt, + ContractTransactionResponse, + ethers, + JsonRpcProvider, + Log, + Wallet, +} from "ethers"; import inquirer from "inquirer"; +// Type definitions for better type safety +type Slot0Result = { + feeProtocol: number; + observationCardinality: number; + observationCardinalityNext: number; + observationIndex: number; + sqrtPriceX96: bigint; + tick: bigint; + unlocked: boolean; +}; + import { DEFAULT_FACTORY, DEFAULT_FEE, @@ -39,7 +58,7 @@ const main = async (options: AddLiquidityOptions): Promise => { ); /** - * 4. Locate (or verify) the pool — order agnostic + * 4. Locate (or verify) the pool — order agnostic */ const factory = new Contract( DEFAULT_FACTORY, @@ -60,7 +79,7 @@ const main = async (options: AddLiquidityOptions): Promise => { } /** - * 5. Read canonical token ordering from the pool + * 5. Read canonical token ordering and current state from the pool */ const pool = new Contract( poolAddress, @@ -68,12 +87,17 @@ const main = async (options: AddLiquidityOptions): Promise => { "function token0() view returns (address)", "function token1() view returns (address)", "function tickSpacing() view returns (int24)", + "function liquidity() view returns (uint128)", + "function slot0() view returns (uint160 sqrtPriceX96, int24 tick, uint16 observationIndex, uint16 observationCardinality, uint16 observationCardinalityNext, uint8 feeProtocol, bool unlocked)", ], provider ); - const poolToken0 = ethers.getAddress(await pool.token0()); - const poolToken1 = ethers.getAddress(await pool.token1()); - const tickSpacing = Number(await pool.tickSpacing()); + + const poolToken0 = ethers.getAddress((await pool.token0()) as string); + const poolToken1 = ethers.getAddress((await pool.token1()) as string); + const tickSpacing = Number((await pool.tickSpacing()) as bigint); + const slot0 = (await pool.slot0()) as Slot0Result; + const currentTick = Number(slot0.tick); /** * 6. Build token helpers (decimals, symbol, balances, approve) @@ -97,14 +121,14 @@ const main = async (options: AddLiquidityOptions): Promise => { }; const [decA, symA] = await Promise.all([ - getTokenContract(inputTokenA).decimals(), - getTokenContract(inputTokenA).symbol(), - ]).then(([d, s]) => [Number(d), s as string]); + getTokenContract(inputTokenA).decimals() as Promise, + getTokenContract(inputTokenA).symbol() as Promise, + ]).then(([d, s]) => [Number(d), s]); const [decB, symB] = await Promise.all([ - getTokenContract(inputTokenB).decimals(), - getTokenContract(inputTokenB).symbol(), - ]).then(([d, s]) => [Number(d), s as string]); + getTokenContract(inputTokenB).decimals() as Promise, + getTokenContract(inputTokenB).symbol() as Promise, + ]).then(([d, s]) => [Number(d), s]); /** * 7. Parse user-entered amounts (aligned with the order the user typed) @@ -158,22 +182,93 @@ const main = async (options: AddLiquidityOptions): Promise => { } /** - * 10. Tick range sanity & alignment + * 10. Smart tick range calculation and validation */ + let tickLower: number; + let tickUpper: number; + if (!validatedOptions.tickLower || !validatedOptions.tickUpper) { - throw new Error("tickLower and tickUpper must be provided"); - } + console.log( + "\n⚠️ No tick range specified. Calculating default range..." + ); + + // Use a moderate range around current price + const rangeWidth = 600; // Reasonable default range + const rawLower = currentTick - rangeWidth; + const rawUpper = currentTick + rangeWidth; + + tickLower = Math.floor(rawLower / tickSpacing) * tickSpacing; + tickUpper = Math.ceil(rawUpper / tickSpacing) * tickSpacing; + + console.log( + `✅ Using range: [${tickLower}, ${tickUpper}] (${ + tickUpper - tickLower + } ticks)` + ); + console.log(` Current tick: ${currentTick}`); + } else { + const rawLower = Number(validatedOptions.tickLower); + const rawUpper = Number(validatedOptions.tickUpper); - const rawLower = Number(validatedOptions.tickLower); - const rawUpper = Number(validatedOptions.tickUpper); + tickLower = Math.floor(rawLower / tickSpacing) * tickSpacing; + tickUpper = Math.floor(rawUpper / tickSpacing) * tickSpacing; - const tickLower = Math.floor(rawLower / tickSpacing) * tickSpacing; - const tickUpper = Math.floor(rawUpper / tickSpacing) * tickSpacing; + // Validate user-provided range + const rangeTicks = tickUpper - tickLower; + const priceRangeFactor = Math.pow(1.0001, rangeTicks); + + if (priceRangeFactor > 10) { + console.log(`\n🚨 WARNING: Extremely wide tick range detected!`); + console.log( + ` Range: [${tickLower}, ${tickUpper}] (${rangeTicks} ticks)` + ); + console.log(` Price range factor: ${priceRangeFactor.toFixed(2)}x`); + console.log(` This will heavily favor one token over the other!`); + console.log( + ` Consider using a smaller range around current tick: ${currentTick}\n` + ); + + if (validatedOptions.yes) { + console.log("Proceeding with wide range (--yes flag set)"); + } else { + const { continueAnyway } = (await inquirer.prompt([ + { + default: false, + message: "Continue with this wide range anyway?", + name: "continueAnyway", + type: "confirm", + }, + ])) as { continueAnyway: boolean }; + + if (!continueAnyway) { + console.log("Cancelled. Please specify a narrower tick range."); + return; + } + } + } + } if (tickLower >= tickUpper) { throw new Error("tickLower must be smaller than tickUpper"); } + // Check for low liquidity and warn user + const poolLiquidity = (await pool.liquidity()) as bigint; + const liquidityAmount = Number(poolLiquidity); + + if (liquidityAmount < 1000) { + console.log( + `\n⚠️ WARNING: This pool has very low liquidity (${liquidityAmount} units)` + ); + console.log( + ` • Token ratios may be heavily skewed until more liquidity is added` + ); + console.log( + ` • Your position will still earn fees and can be withdrawn later` + ); + console.log(` • Consider this normal for new/empty pools\n`); + } + /** * 11. Recipient & summary */ @@ -197,42 +292,49 @@ const main = async (options: AddLiquidityOptions): Promise => { console.log(`Tick range: [${tickLower}, ${tickUpper}]`); console.log(`Recipient: ${recipient}`); - const { confirm } = await inquirer.prompt([ - { message: "Proceed?", name: "confirm", type: "confirm" }, - ]); - if (!confirm) { - console.log("Cancelled by user"); - return; + if (validatedOptions.yes) { + console.log("Proceeding with transaction (--yes flag set)"); + } else { + const { confirm } = (await inquirer.prompt([ + { message: "Proceed?", name: "confirm", type: "confirm" }, + ])) as { confirm: boolean }; + if (!confirm) { + console.log("Cancelled by user"); + return; + } } /** * 12. Approvals */ console.log("Approving tokens..."); - const approve0Tx = await getTokenContract(finalToken0).approve( + const approve0Tx = (await getTokenContract(finalToken0).approve( DEFAULT_POSITION_MANAGER, finalAmount0 - ); - const approve1Tx = await getTokenContract(finalToken1).approve( + )) as ContractTransactionResponse; + const approve1Tx = (await getTokenContract(finalToken1).approve( DEFAULT_POSITION_MANAGER, finalAmount1 - ); + )) as ContractTransactionResponse; await Promise.all([approve0Tx.wait(), approve1Tx.wait()]); console.log("Tokens approved"); /** - * 13. Mint + * 13. Set minimum amounts and mint position */ + const amount0Min = 1n; // Minimal slippage protection + const amount1Min = 1n; // Minimal slippage protection + const params: MintParams = { amount0Desired: finalAmount0, - amount0Min: 0n, + amount0Min, amount1Desired: finalAmount1, - amount1Min: 0n, + amount1Min, deadline: Math.floor(Date.now() / 1000) + 60 * 20, - fee, + fee: BigInt(fee), recipient, - tickLower, - tickUpper, + tickLower: BigInt(tickLower), + tickUpper: BigInt(tickUpper), token0: finalToken0, token1: finalToken1, }; @@ -244,8 +346,10 @@ const main = async (options: AddLiquidityOptions): Promise => { ); console.log("Minting position..."); - const mintTx = await positionManager.mint(params); - const receipt = await mintTx.wait(); + const mintTx = (await positionManager.mint( + params + )) as ContractTransactionResponse; + const receipt = (await mintTx.wait()) as ContractTransactionReceipt; /** * 14. Extract NFT token ID from Transfer event @@ -261,7 +365,8 @@ const main = async (options: AddLiquidityOptions): Promise => { }); const tokenId = transferLog - ? iface.parseLog(transferLog)?.args[2] ?? "" + ? (iface.parseLog(transferLog as Log)?.args?.[2] as bigint)?.toString() ?? + "" : ""; console.log("\nLiquidity added successfully!"); @@ -275,12 +380,22 @@ const main = async (options: AddLiquidityOptions): Promise => { export const addCommand = new Command("add") .summary("Add liquidity to a Uniswap V3 pool") + .description( + "Add liquidity to a Uniswap V3 pool. If tick range is not specified, a reasonable default range around the current price will be calculated automatically." + ) .requiredOption("--private-key ", "Private key") .requiredOption("--tokens ", "Token addresses (2)") .requiredOption("--amounts ", "Token amounts (2)") .option("--rpc ", "JSON-RPC endpoint", DEFAULT_RPC) - .option("--tick-lower ", "Lower tick") - .option("--tick-upper ", "Upper tick") + .option( + "--tick-lower ", + "Lower tick (optional, auto-calculated if not provided)" + ) + .option( + "--tick-upper ", + "Upper tick (optional, auto-calculated if not provided)" + ) .option("--fee ", "Fee tier", "3000") .option("--recipient
", "Recipient address") + .option("--yes", "Skip confirmation prompts", false) .action(main); diff --git a/test/uniswap.test.ts b/test/uniswap.test.ts index 880db6ef..49a3ca19 100644 --- a/test/uniswap.test.ts +++ b/test/uniswap.test.ts @@ -1,3 +1,5 @@ +import { ethers } from "ethers"; + import { ForeignCoin } from "../types/foreignCoins.types"; import { Pool } from "../types/pools.types"; import { @@ -63,6 +65,7 @@ describe("generateUniquePairs", () => { describe("formatPoolsWithTokenDetails", () => { const mockZetaTokenAddress = "0xZETA"; + const mockProvider = new ethers.JsonRpcProvider("http://localhost:8545"); const mockForeignCoins: ForeignCoin[] = [ { @@ -89,6 +92,18 @@ describe("formatPoolsWithTokenDetails", () => { symbol: "TOKB", zrc20_contract_address: "0xB", }, + { + asset: "wzeta", + coin_type: "ERC20", + decimals: 18, + foreign_chain_id: "zetachain", + gas_limit: "100000", + liquidity_cap: "1000000", + name: "Wrapped Zeta", + paused: false, + symbol: "WZETA", + zrc20_contract_address: mockZetaTokenAddress, + }, ]; const mockPools: Pool[] = [ @@ -116,11 +131,12 @@ describe("formatPoolsWithTokenDetails", () => { }, ]; - it("should format pools with token details", () => { - const result = formatPoolsWithTokenDetails( + it("should format pools with token details", async () => { + const result = await formatPoolsWithTokenDetails( mockPools, mockForeignCoins, - mockZetaTokenAddress + mockZetaTokenAddress, + mockProvider ); // Check that token details are added for all tokens @@ -145,7 +161,7 @@ describe("formatPoolsWithTokenDetails", () => { expect(result[1].t1.reserve).toBe(BigInt(4000000)); }); - it("should handle unknown tokens without crashing", () => { + it("should handle unknown tokens without crashing", async () => { const poolsWithUnknownToken: Pool[] = [ { pair: "0xPAIR3", @@ -160,25 +176,26 @@ describe("formatPoolsWithTokenDetails", () => { }, ]; - const result = formatPoolsWithTokenDetails( + const result = await formatPoolsWithTokenDetails( poolsWithUnknownToken, mockForeignCoins, - mockZetaTokenAddress + mockZetaTokenAddress, + mockProvider ); // Should still return a result expect(result).toHaveLength(1); - // Unknown token should have empty details - expect(result[0].t0.symbol).toBeUndefined(); - expect(result[0].t0.decimals).toBeUndefined(); + // Unknown token should have fallback details + expect(result[0].t0.symbol).toBe("UNKNOWN"); + expect(result[0].t0.decimals).toBe(18); // Default fallback // Known token should have details expect(result[0].t1.symbol).toBe("TOKA"); expect(result[0].t1.decimals).toBe(6); }); - it("should handle case sensitivity in addresses", () => { + it("should handle case sensitivity in addresses", async () => { const poolsWithMixedCaseAddresses: Pool[] = [ { pair: "0xPAIR4", @@ -193,10 +210,11 @@ describe("formatPoolsWithTokenDetails", () => { }, ]; - const result = formatPoolsWithTokenDetails( + const result = await formatPoolsWithTokenDetails( poolsWithMixedCaseAddresses, mockForeignCoins, - mockZetaTokenAddress + mockZetaTokenAddress, + mockProvider ); // Should correctly match tokens despite case differences diff --git a/types/pools.ts b/types/pools.ts index 3ab61647..f0954438 100644 --- a/types/pools.ts +++ b/types/pools.ts @@ -14,10 +14,10 @@ export interface MintParams { amount1Desired: bigint; amount1Min: bigint; deadline: number; - fee: number; + fee: bigint; recipient: string; - tickLower: number; - tickUpper: number; + tickLower: bigint; + tickUpper: bigint; token0: string; token1: string; } @@ -59,19 +59,20 @@ export const showPoolOptionsSchema = z.object({ export const addLiquidityOptionsSchema = z.object({ amounts: z.array(z.string()).min(2).max(2), - fee: z.string().default("500"), + fee: z.string().default("3000"), privateKey: z.string(), recipient: z.string().optional(), rpc: z.string().default(DEFAULT_RPC), tickLower: z .string() .transform((val) => Number(val)) - .default("361450"), + .optional(), tickUpper: z .string() .transform((val) => Number(val)) - .default("361550"), + .optional(), tokens: z.array(z.string()).min(2).max(2), + yes: z.boolean().default(false), }); export const removeLiquidityOptionsSchema = z.object({ diff --git a/utils/uniswap.ts b/utils/uniswap.ts index 76b6b651..e1eaa077 100644 --- a/utils/uniswap.ts +++ b/utils/uniswap.ts @@ -304,24 +304,15 @@ export const formatPoolsWithTokenDetails = async ( return acc; }, {} as Zrc20Details); - // ZETA token details - const zetaDetails = { decimals: 18, symbol: "WZETA" }; const zetaAddressLower = zetaTokenAddress.toLowerCase(); const poolsWithBasicDetails = pools.map((pool) => { const t0AddressLower = pool.t0.address.toLowerCase(); const t1AddressLower = pool.t1.address.toLowerCase(); - // Get token details, prioritizing ZRC20 details and falling back to ZETA if it's the ZETA token - const t0Details = - t0AddressLower === zetaAddressLower - ? zetaDetails - : zrc20Details[t0AddressLower]; - - const t1Details = - t1AddressLower === zetaAddressLower - ? zetaDetails - : zrc20Details[t1AddressLower]; + // Get token details from the ZRC20 details mapping + const t0Details = zrc20Details[t0AddressLower]; + const t1Details = zrc20Details[t1AddressLower]; return { ...pool, From 4cfa44231bf58180e55f9210275d529cb0fdf2aa Mon Sep 17 00:00:00 2001 From: Hernan Clich Date: Thu, 31 Jul 2025 19:35:25 -0300 Subject: [PATCH 43/44] Lint fixes --- .../commands/src/zetachain/pools/create.ts | 44 ++++++++++++------- .../src/zetachain/pools/liquidity/remove.ts | 39 +++++++++------- .../src/zetachain/pools/liquidity/show.ts | 29 ++++++++---- utils/uniswap.ts | 2 - 4 files changed, 72 insertions(+), 42 deletions(-) diff --git a/packages/commands/src/zetachain/pools/create.ts b/packages/commands/src/zetachain/pools/create.ts index 637559ea..6b39c88a 100644 --- a/packages/commands/src/zetachain/pools/create.ts +++ b/packages/commands/src/zetachain/pools/create.ts @@ -4,7 +4,13 @@ import * as UniswapV3Factory from "@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json"; import * as UniswapV3Pool from "@uniswap/v3-core/artifacts/contracts/UniswapV3Pool.sol/UniswapV3Pool.json"; import { Command } from "commander"; -import { Contract, ethers, JsonRpcProvider, Wallet } from "ethers"; +import { + Contract, + ContractTransactionResponse, + ethers, + JsonRpcProvider, + Wallet, +} from "ethers"; import { DEFAULT_FACTORY, @@ -19,9 +25,7 @@ import { } from "../../../../../types/pools"; /* ─── helpers ---------------------------------------------------- */ -const SCALE = 1_000_000_000_000_000_000n; // 1e18 -const TWO_192 = 1n << 192n; -function sqrtBig(n: bigint): bigint { +const sqrtBig = (n: bigint): bigint => { // integer √ if (n < 2n) return n; let x = n, @@ -31,15 +35,16 @@ function sqrtBig(n: bigint): bigint { y = (x + n / x) >> 1n; } return x; -} +}; + /** sqrtPriceX96 = √(price₁ / price₀) × 2⁹⁶ (token1/token0) */ -function buildSqrtPriceX96( +const buildSqrtPriceX96 = ( usd0: number, usd1: number, dec0: number, dec1: number, cliToken0: boolean -): bigint { +): bigint => { // USD prices mapped to factory order const pTok0 = BigInt(Math.round((cliToken0 ? usd0 : usd1) * 1e18)); const pTok1 = BigInt(Math.round((cliToken0 ? usd1 : usd0) * 1e18)); @@ -52,7 +57,7 @@ function buildSqrtPriceX96( /* integer √ → Q64.96 */ return sqrtBig(ratioX192); -} +}; /* ─── main ------------------------------------------------------- */ const main = async (raw: CreatePoolOptions) => { @@ -70,25 +75,25 @@ const main = async (raw: CreatePoolOptions) => { signer ); - let poolAddr = await factory.getPool( + let poolAddr = (await factory.getPool( o.tokens[0], o.tokens[1], o.fee ?? DEFAULT_FEE - ); + )) as string; if (poolAddr === ethers.ZeroAddress) { console.log("Creating pool …"); - const tx = await factory.createPool( + const tx = (await factory.createPool( o.tokens[0], o.tokens[1], o.fee ?? DEFAULT_FEE - ); + )) as ContractTransactionResponse; await tx.wait(); - poolAddr = await factory.getPool( + poolAddr = (await factory.getPool( o.tokens[0], o.tokens[1], o.fee ?? DEFAULT_FEE - ); + )) as string; console.log("✦ createPool tx:", tx.hash); } else { console.log("Pool already exists:", poolAddr); @@ -96,7 +101,10 @@ const main = async (raw: CreatePoolOptions) => { /* pool contract -------------------------------------------- */ const pool = new Contract(poolAddr, UniswapV3Pool.abi, signer); - const [token0, token1] = await Promise.all([pool.token0(), pool.token1()]); + const [token0, token1] = await Promise.all([ + pool.token0() as Promise, + pool.token1() as Promise, + ]); const [dec0, dec1] = await Promise.all([ IERC20Metadata__factory.connect(token0, provider).decimals(), IERC20Metadata__factory.connect(token1, provider).decimals(), @@ -115,7 +123,7 @@ const main = async (raw: CreatePoolOptions) => { /* check if initialised ------------------------------------- */ let needInit = false; try { - const slot0 = await pool.slot0(); + const slot0 = (await pool.slot0()) as { sqrtPriceX96: bigint }; needInit = slot0.sqrtPriceX96 === 0n; } catch { needInit = true; // slot0() reverted → not initialised @@ -123,7 +131,9 @@ const main = async (raw: CreatePoolOptions) => { if (needInit) { console.log("Initialising pool …"); - const tx = await pool.initialize(sqrtPriceX96); + const tx = (await pool.initialize( + sqrtPriceX96 + )) as ContractTransactionResponse; await tx.wait(); console.log("✓ Pool initialised (tx:", tx.hash, ")"); } else { diff --git a/packages/commands/src/zetachain/pools/liquidity/remove.ts b/packages/commands/src/zetachain/pools/liquidity/remove.ts index d74fd46f..f4ba9ae2 100644 --- a/packages/commands/src/zetachain/pools/liquidity/remove.ts +++ b/packages/commands/src/zetachain/pools/liquidity/remove.ts @@ -1,7 +1,12 @@ // src/cli/commands/pools/liquidity/remove.ts import * as NonfungiblePositionManager from "@uniswap/v3-periphery/artifacts/contracts/NonfungiblePositionManager.sol/NonfungiblePositionManager.json"; import { Command } from "commander"; -import { Contract, ethers, JsonRpcProvider, Wallet } from "ethers"; +import { + Contract, + ContractTransactionResponse, + JsonRpcProvider, + Wallet, +} from "ethers"; import inquirer from "inquirer"; import { @@ -31,47 +36,51 @@ const main = async (options: RemoveLiquidityOptions): Promise => { /* ─── 2. Select a position NFT ─────────────────────────────────────────── */ let tokenId = o.tokenId; if (!tokenId) { - const bal = await pm.balanceOf(signer.address); + const bal = (await pm.balanceOf(signer.address)) as bigint; if (bal === 0n) throw new Error("Signer owns no liquidity positions"); const ids: bigint[] = []; for (let i = 0n; i < bal; i++) { - ids.push(await pm.tokenOfOwnerByIndex(signer.address, i)); + ids.push((await pm.tokenOfOwnerByIndex(signer.address, i)) as bigint); } - const { chosen } = await inquirer.prompt([ + const { chosen } = (await inquirer.prompt([ { choices: ids.map((id) => ({ name: id.toString(), value: id })), message: "Select position to remove liquidity from", name: "chosen", type: "list", }, - ]); + ])) as { chosen: bigint }; tokenId = chosen.toString(); } /* ─── 3. Fetch position info ───────────────────────────────────────────── */ - const pos = await pm.positions(tokenId); - const liquidity = pos.liquidity as bigint; + const pos = (await pm.positions(tokenId)) as { + liquidity: bigint; + token0: string; + token1: string; + }; + const liquidity = pos.liquidity; if (liquidity === 0n) { console.log("Position already has zero liquidity"); return; } - console.log("\nPosition", tokenId!.toString()); + console.log("\nPosition", tokenId.toString()); console.log("Liquidity:", liquidity.toString()); console.log("Token0:", pos.token0); console.log("Token1:", pos.token1); if ( !( - await inquirer.prompt([ + (await inquirer.prompt([ { default: false, message: "Remove ALL liquidity and collect the tokens?", name: "ok", type: "confirm", }, - ]) + ])) as { ok: boolean } ).ok ) { process.exit(0); @@ -79,29 +88,29 @@ const main = async (options: RemoveLiquidityOptions): Promise => { /* ─── 4. decreaseLiquidity ─────────────────────────────────────────────── */ const deadline = Math.floor(Date.now() / 1e3) + 60 * 20; - const decTx = await pm.decreaseLiquidity({ + const decTx = (await pm.decreaseLiquidity({ amount0Min: 0, amount1Min: 0, deadline, liquidity, tokenId, - }); + })) as ContractTransactionResponse; await decTx.wait(); console.log("✓ Liquidity removed (tx:", decTx.hash + ")"); /* ─── 5. collect ───────────────────────────────────────────────────────── */ - const colTx = await pm.collect({ + const colTx = (await pm.collect({ amount0Max: MaxUint128, amount1Max: MaxUint128, recipient: signer.address, tokenId, - }); + })) as ContractTransactionResponse; await colTx.wait(); console.log("✓ Fees + principal collected (tx:", colTx.hash + ")"); /* ─── 6. burn (optional) ───────────────────────────────────────────────── */ if (o.burn) { - const burnTx = await pm.burn(tokenId); + const burnTx = (await pm.burn(tokenId)) as ContractTransactionResponse; await burnTx.wait(); console.log("✓ Empty NFT burned (tx:", burnTx.hash + ")"); } diff --git a/packages/commands/src/zetachain/pools/liquidity/show.ts b/packages/commands/src/zetachain/pools/liquidity/show.ts index 0fd9d6ec..6278b1e6 100644 --- a/packages/commands/src/zetachain/pools/liquidity/show.ts +++ b/packages/commands/src/zetachain/pools/liquidity/show.ts @@ -1,7 +1,7 @@ import * as UniswapV3Factory from "@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json"; import * as NonfungiblePositionManager from "@uniswap/v3-periphery/artifacts/contracts/NonfungiblePositionManager.sol/NonfungiblePositionManager.json"; import { Command } from "commander"; -import { Contract, ethers, JsonRpcProvider, Wallet } from "ethers"; +import { Contract, JsonRpcProvider, Wallet } from "ethers"; import { DEFAULT_FACTORY, @@ -31,7 +31,7 @@ const main = async (raw: ShowLiquidityOptions) => { const fac = new Contract(DEFAULT_FACTORY, UniswapV3Factory.abi, provider); /* ─── 3. Enumerate NFTs ──────────────────────────────────────────────── */ - const bal = await pm.balanceOf(addr); + const bal = (await pm.balanceOf(addr)) as bigint; if (bal === 0n) { console.log("No liquidity positions found for", addr); return; @@ -39,8 +39,17 @@ const main = async (raw: ShowLiquidityOptions) => { console.log(`\n${bal.toString()} Uniswap V3 position(s) for ${addr}\n`); for (let i = 0n; i < bal; i++) { - const id = await pm.tokenOfOwnerByIndex(addr, i); - const pos = await pm.positions(id); + const id = (await pm.tokenOfOwnerByIndex(addr, i)) as bigint; + const pos = (await pm.positions(id)) as { + fee: bigint; + liquidity: bigint; + tickLower: bigint; + tickUpper: bigint; + token0: string; + token1: string; + tokensOwed0: bigint; + tokensOwed1: bigint; + }; const [ token0, @@ -64,7 +73,7 @@ const main = async (raw: ShowLiquidityOptions) => { /* symbols (fail-safe to address if call reverts) */ const [sym0, sym1] = await Promise.all( - [token0, token1].map(async (t) => { + [token0, token1].map(async (t: string) => { try { return await IERC20Metadata__factory.connect(t, provider).symbol(); } catch { @@ -74,15 +83,19 @@ const main = async (raw: ShowLiquidityOptions) => { ); /* derive pool address (handy for UI links / debugging) */ - const pool = await fac.getPool(token0, token1, fee); + const pool = (await fac.getPool(token0, token1, fee)) as string; console.log(`• NFT #${id.toString()}`); console.log(` Pool : ${pool}`); console.log(` Pair : ${sym0}/${sym1}`); console.log(` Fee Tier : ${Number(fee) / 1e4}%`); - console.log(` Ticks : [${tickLower}, ${tickUpper}]`); + console.log( + ` Ticks : [${tickLower.toString()}, ${tickUpper.toString()}]` + ); console.log(` Liquidity : ${liquidity.toString()}`); - console.log(` Owed0/Owed1: ${tokensOwed0} / ${tokensOwed1}`); + console.log( + ` Owed0/Owed1: ${tokensOwed0.toString()} / ${tokensOwed1.toString()}` + ); console.log(""); } } catch (e) { diff --git a/utils/uniswap.ts b/utils/uniswap.ts index e1eaa077..4bda21ad 100644 --- a/utils/uniswap.ts +++ b/utils/uniswap.ts @@ -304,8 +304,6 @@ export const formatPoolsWithTokenDetails = async ( return acc; }, {} as Zrc20Details); - const zetaAddressLower = zetaTokenAddress.toLowerCase(); - const poolsWithBasicDetails = pools.map((pool) => { const t0AddressLower = pool.t0.address.toLowerCase(); const t1AddressLower = pool.t1.address.toLowerCase(); From 66e1330982d7cce9bae048d092dbb981b26755ee Mon Sep 17 00:00:00 2001 From: Hernan Clich Date: Fri, 1 Aug 2025 13:19:54 -0300 Subject: [PATCH 44/44] Swapped places in array destructuring --- .../commands/src/zetachain/pools/create.ts | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/packages/commands/src/zetachain/pools/create.ts b/packages/commands/src/zetachain/pools/create.ts index 6b39c88a..2ccd9ff5 100644 --- a/packages/commands/src/zetachain/pools/create.ts +++ b/packages/commands/src/zetachain/pools/create.ts @@ -42,12 +42,11 @@ const buildSqrtPriceX96 = ( usd0: number, usd1: number, dec0: number, - dec1: number, - cliToken0: boolean + dec1: number ): bigint => { // USD prices mapped to factory order - const pTok0 = BigInt(Math.round((cliToken0 ? usd0 : usd1) * 1e18)); - const pTok1 = BigInt(Math.round((cliToken0 ? usd1 : usd0) * 1e18)); + const pTok0 = BigInt(Math.round(usd0 * 1e18)); + const pTok1 = BigInt(Math.round(usd1 * 1e18)); // token1/token0 ratio in base-units, scaled by 2¹⁹² const num = pTok1 * 10n ** BigInt(dec0); // p₁ × 10^dec₀ @@ -63,7 +62,7 @@ const buildSqrtPriceX96 = ( const main = async (raw: CreatePoolOptions) => { try { const o = createPoolOptionsSchema.parse(raw); - const [usdB, usdA] = o.prices.map(Number); + const [usdA, usdB] = o.prices.map(Number); const provider = new JsonRpcProvider(o.rpc ?? DEFAULT_RPC); const signer = new Wallet(o.privateKey, provider); @@ -111,13 +110,17 @@ const main = async (raw: CreatePoolOptions) => { ]); /* compute initial sqrtPriceX96 ----------------------------- */ - const cliToken0 = token0.toLowerCase() === o.tokens[0].toLowerCase(); + const isUserToken0EqualPoolToken0 = + token0.toLowerCase() === o.tokens[0].toLowerCase(); + const [priceToken0, priceToken1] = isUserToken0EqualPoolToken0 + ? [usdA, usdB] // matches pool order already + : [usdB, usdA]; // swap + const sqrtPriceX96 = buildSqrtPriceX96( - usdA, - usdB, + priceToken0, + priceToken1, Number(dec0), - Number(dec1), - cliToken0 + Number(dec1) ); /* check if initialised ------------------------------------- */